From 5c499c87abe4e661054eaf9d7336a6b4dc56bee0 Mon Sep 17 00:00:00 2001 From: Tobias Stadler <28538704+devtobi@users.noreply.github.com> Date: Sat, 9 Sep 2023 00:46:43 +0200 Subject: [PATCH 01/62] =?UTF-8?q?=F0=9F=A9=BA=20=20Added=20healthcheck=20t?= =?UTF-8?q?o=20image=20and=20ARG=20for=20port?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6b154294..68fa85489 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ FROM node:20-alpine WORKDIR /app +ARG PORT=7575 + ENV NEXT_TELEMETRY_DISABLED 1 ENV NODE_ENV production ENV NODE_OPTIONS '--no-experimental-fetch' @@ -14,8 +16,10 @@ COPY package.json ./package.json COPY .next/standalone ./ COPY .next/static ./.next/static -EXPOSE 7575 +EXPOSE $PORT +ENV PORT=${PORT} -ENV PORT 7575 +HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \ + CMD wget --no-verbose --tries=1 --spider http://localhost:${PORT} || exit 1 -CMD ["node", "server.js"] +CMD ["node", "server.js"] \ No newline at end of file From 4c67ee29027fb2adb1e82f28930cf235364c2068 Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:11:40 +0200 Subject: [PATCH 02/62] =?UTF-8?q?=F0=9F=92=84=20Added=20modal=20on=20usene?= =?UTF-8?q?t=20widget=20(#1398)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/useNet/UsenetHistoryList.tsx | 82 +++++++++----- src/widgets/useNet/UsenetQueueList.tsx | 136 ++++++++++++++--------- 2 files changed, 138 insertions(+), 80 deletions(-) diff --git a/src/widgets/useNet/UsenetHistoryList.tsx b/src/widgets/useNet/UsenetHistoryList.tsx index 7d57e6e10..b68ad89ab 100644 --- a/src/widgets/useNet/UsenetHistoryList.tsx +++ b/src/widgets/useNet/UsenetHistoryList.tsx @@ -3,25 +3,26 @@ import { Center, Code, Group, + List, Pagination, + Popover, Skeleton, Stack, Table, Text, Title, - Tooltip, } from '@mantine/core'; import { useElementSize } from '@mantine/hooks'; -import { IconAlertCircle } from '@tabler/icons-react'; +import { IconAlertCircle, IconClock, IconFileDownload, IconFileInfo } from '@tabler/icons-react'; import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { useTranslation } from 'next-i18next'; import { FunctionComponent, useState } from 'react'; - -import { useGetUsenetHistory } from '../dashDot/api'; import { parseDuration } from '~/tools/client/parseDuration'; import { humanFileSize } from '~/tools/humanFileSize'; +import { useGetUsenetHistory } from '../dashDot/api'; + dayjs.extend(duration); interface UsenetHistoryListProps { @@ -87,37 +88,58 @@ export const UsenetHistoryList: FunctionComponent = ({ a {t('modules/usenet:history.header.name')} {t('modules/usenet:history.header.size')} - {durationBreakpoint < width ? ( + {durationBreakpoint < width && ( {t('modules/usenet:history.header.duration')} - ) : null} + )} {data.items.map((history) => ( - - - - - {history.name} - - - - - {humanFileSize(history.size)} - - {durationBreakpoint < width ? ( - - {parseDuration(history.time, t)} - - ) : null} - + + + + + + {history.name} + + + + {humanFileSize(history.size)} + + {durationBreakpoint < width && ( + + {parseDuration(history.time, t)} + + )} + + + + + }>{history.name} + }> + {parseDuration(history.time, t)} + + }> + {humanFileSize(history.size)} + + + + ))} diff --git a/src/widgets/useNet/UsenetQueueList.tsx b/src/widgets/useNet/UsenetQueueList.tsx index 136a999a5..dcb590769 100644 --- a/src/widgets/useNet/UsenetQueueList.tsx +++ b/src/widgets/useNet/UsenetQueueList.tsx @@ -1,27 +1,35 @@ import { - ActionIcon, Alert, Center, Code, Group, + List, Pagination, + Popover, Progress, Skeleton, Stack, Table, Text, Title, - Tooltip, useMantineTheme, } from '@mantine/core'; import { useElementSize } from '@mantine/hooks'; -import { IconAlertCircle, IconPlayerPause, IconPlayerPlay } from '@tabler/icons-react'; +import { + IconAlertCircle, + IconClock, + IconClockPause, + IconFileDownload, + IconFileInfo, + IconPercentage, +} from '@tabler/icons-react'; import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { useTranslation } from 'next-i18next'; import { FunctionComponent, useState } from 'react'; - +import { parseDuration } from '~/tools/client/parseDuration'; import { humanFileSize } from '~/tools/humanFileSize'; + import { useGetUsenetDownloads } from '../dashDot/api'; dayjs.extend(duration); @@ -105,53 +113,81 @@ export const UsenetQueueList: FunctionComponent = ({ appId {data.items.map((nzb) => ( - - - - - {nzb.name} - - - - {sizeBreakpoint < width ? ( - - {humanFileSize(nzb.size)} - - ) : null} - - {nzb.eta <= 0 ? ( - - {t('queue.paused')} - - ) : ( - {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} - )} - - {progressBreakpoint < width ? ( - - - {nzb.progress.toFixed(1)}% - - {width > progressbarBreakpoint ? ( - 0 ? theme.primaryColor : 'lightgrey'} - value={nzb.progress} - size="lg" - style={{ width: '100%' }} - /> + + + + + + {nzb.name} + + + {sizeBreakpoint < width ? ( + + {humanFileSize(nzb.size)} + ) : null} - - ) : null} - + + {nzb.eta <= 0 ? ( + + {t('queue.paused')} + + ) : ( + {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} + )} + + {progressBreakpoint < width ? ( + + + {nzb.progress.toFixed(1)}% + + {width > progressbarBreakpoint ? ( + 0 ? theme.primaryColor : 'lightgrey'} + value={nzb.progress} + size="lg" + style={{ width: '100%' }} + /> + ) : null} + + ) : null} + + + + + }>{nzb.name} + }> + {nzb.progress.toFixed(1)}% + + {nzb.state === 'downloading' ? ( + }> + {parseDuration(nzb.eta, t)} + + ) : ( + }>{t('queue.paused')} + )} + }> + {humanFileSize(nzb.size)} + + + + ))} From 9b8263b8ec47042326a798dbee8c11ae7ead2b5c Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:12:42 +0200 Subject: [PATCH 03/62] =?UTF-8?q?=F0=9F=92=84=20Replace=20hover=20with=20c?= =?UTF-8?q?lick=20and=20on=20the=20full=20row=20(#1397)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/torrent/TorrentQueueItem.tsx | 142 ++++++++++++----------- 1 file changed, 72 insertions(+), 70 deletions(-) diff --git a/src/widgets/torrent/TorrentQueueItem.tsx b/src/widgets/torrent/TorrentQueueItem.tsx index a29862bfb..17cc61c03 100644 --- a/src/widgets/torrent/TorrentQueueItem.tsx +++ b/src/widgets/torrent/TorrentQueueItem.tsx @@ -13,7 +13,6 @@ import { createStyles, useMantineTheme, } from '@mantine/core'; -import { useDisclosure } from '@mantine/hooks'; import { IconAffiliate, IconDatabase, @@ -26,7 +25,6 @@ import { } from '@tabler/icons-react'; import { useTranslation } from 'next-i18next'; import { MIN_WIDTH_MOBILE } from '~/constants/constants'; - import { calculateETA } from '~/tools/client/calculateEta'; import { humanFileSize } from '~/tools/humanFileSize'; import { AppType } from '~/types/app'; @@ -38,7 +36,6 @@ interface TorrentQueueItemProps { } export const BitTorrentQueueItem = ({ torrent, width, app }: TorrentQueueItemProps) => { - const [popoverOpened, { open: openPopover, close: closePopover }] = useDisclosure(false); const { classes } = useStyles(); const { t } = useTranslation('modules/torrents-status'); @@ -46,71 +43,79 @@ export const BitTorrentQueueItem = ({ torrent, width, app }: TorrentQueueItemPro const uploadSpeed = torrent.uploadSpeed / 1024 / 1024; const size = torrent.totalSelected; return ( - - - - - - - -
- - {torrent.name} + + + + + + {torrent.name} + + {app && ( + + {t('card.table.item.text', { + appName: app.name, + ratio: torrent.ratio.toFixed(2), + })} - {app && ( - - {t('card.table.item.text', { - appName: app.name, - ratio: torrent.ratio.toFixed(2), - })} - - )} -
-
-
- - - - {humanFileSize(size, false)} - - - {width > MIN_WIDTH_MOBILE && ( - - - {downloadSpeed > 0 ? `${downloadSpeed.toFixed(1)} Mb/s` : '-'} - - - )} - {width > MIN_WIDTH_MOBILE && ( - - - {uploadSpeed > 0 ? `${uploadSpeed.toFixed(1)} Mb/s` : '-'} - - - )} - {width > MIN_WIDTH_MOBILE && ( - - - {torrent.eta <= 0 ? '∞' : calculateETA(torrent.eta)} - - - )} - - {(torrent.progress * 100).toFixed(1)}% - - - + )} + + + + {humanFileSize(size, false)} + + + {width > MIN_WIDTH_MOBILE && ( + + + {downloadSpeed > 0 ? `${downloadSpeed.toFixed(1)} Mb/s` : '-'} + + + )} + {width > MIN_WIDTH_MOBILE && ( + + + {uploadSpeed > 0 ? `${uploadSpeed.toFixed(1)} Mb/s` : '-'} + + + )} + {width > MIN_WIDTH_MOBILE && ( + + + {torrent.eta <= 0 ? '∞' : calculateETA(torrent.eta)} + + + )} + + {(torrent.progress * 100).toFixed(1)}% + + + + + + + + ); }; @@ -234,7 +239,4 @@ const useStyles = createStyles(() => ({ noTextBreak: { whiteSpace: 'nowrap', }, - transparentBackground: { - backgroundColor: 'transparent !important', - }, })); From 47e46a3a30e00ab77dc0e808e34019226fd8984f Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:15:25 +0200 Subject: [PATCH 04/62] =?UTF-8?q?=F0=9F=92=84=20Calendar=20close=20modal?= =?UTF-8?q?=20on=20click=20when=20opened=20(#1396)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/calendar/CalendarDay.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/calendar/CalendarDay.tsx b/src/widgets/calendar/CalendarDay.tsx index 2460a2a0c..660e53894 100644 --- a/src/widgets/calendar/CalendarDay.tsx +++ b/src/widgets/calendar/CalendarDay.tsx @@ -65,7 +65,7 @@ export const CalendarDay = ({ date, medias, size }: CalendarDayProps) => { > 0 ? open : undefined} + onClick={medias.totalCount > 0 && !opened ? open : close} h="100%" w="100%" sx={{ From a3f364e67d862095744dcaecda91a903e885fa2f Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:16:10 +0200 Subject: [PATCH 05/62] =?UTF-8?q?=F0=9F=92=84=20Change=20media-server=20mo?= =?UTF-8?q?dal=20to=20popover=20(#1395)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../media-server/DetailCollapseable.tsx | 62 +++++++------- src/widgets/media-server/TableRow.tsx | 80 +++++++++---------- 2 files changed, 73 insertions(+), 69 deletions(-) diff --git a/src/widgets/media-server/DetailCollapseable.tsx b/src/widgets/media-server/DetailCollapseable.tsx index 2aa6a2105..beba658c0 100644 --- a/src/widgets/media-server/DetailCollapseable.tsx +++ b/src/widgets/media-server/DetailCollapseable.tsx @@ -1,6 +1,5 @@ -import { Card, Divider, Flex, Grid, Group, Text } from '@mantine/core'; +import { Card, Divider, Flex, Group, Stack, Text } from '@mantine/core'; import { IconDeviceMobile, IconId } from '@tabler/icons-react'; - import { GenericSessionInfo } from '~/types/api/media-server/session-info'; export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) => { @@ -11,18 +10,18 @@ export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) details = [ ...details, { - title: "Video", + title: 'Video', metrics: [ { - name: "Resolution", + name: 'Resolution', value: `${session.currentlyPlaying.metadata.video.width}x${session.currentlyPlaying.metadata.video.height}`, }, { - name: "Framerate", + name: 'Framerate', value: session.currentlyPlaying.metadata.video.videoFrameRate, }, { - name: "Video Codec", + name: 'Video Codec', value: session.currentlyPlaying.metadata.video.videoCodec, }, { @@ -39,14 +38,14 @@ export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) details = [ ...details, { - title: "Audio", + title: 'Audio', metrics: [ { - name: "Audio Channels", + name: 'Audio Channels', value: `${session.currentlyPlaying.metadata.audio.audioChannels}`, }, { - name: "Audio Codec", + name: 'Audio Codec', value: session.currentlyPlaying.metadata.audio.audioCodec, }, ], @@ -58,24 +57,24 @@ export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) details = [ ...details, { - title: "Transcoding", + title: 'Transcoding', metrics: [ { - name: "Resolution", + name: 'Resolution', value: `${session.currentlyPlaying.metadata.transcoding.width}x${session.currentlyPlaying.metadata.transcoding.height}`, }, { - name: "Context", + name: 'Context', value: session.currentlyPlaying.metadata.transcoding.context, }, { - name: "Hardware Encoding Requested", + name: 'Hardware Encoding Requested', value: session.currentlyPlaying.metadata.transcoding.transcodeHwRequested ? 'yes' : 'no', }, { - name: "Source Codec", + name: 'Source Codec', value: session.currentlyPlaying.metadata.transcoding.sourceAudioCodec || session.currentlyPlaying.metadata.transcoding.sourceVideoCodec @@ -83,7 +82,7 @@ export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) : undefined, }, { - name: "Target Codec", + name: 'Target Codec', value: `${session.currentlyPlaying.metadata.transcoding.videoCodec} ${session.currentlyPlaying.metadata.transcoding.audioCodec}`, }, ], @@ -109,23 +108,28 @@ export const DetailCollapseable = ({ session }: { session: GenericSessionInfo }) {session.sessionName} {details.length > 0 && ( - + )} - + {details.map((detail, index) => ( - - {detail.title} - {detail.metrics - .filter((x) => x.value !== undefined) - .map((metric, index2) => ( - - {metric.name} - {metric.value} - - ))} - + <> + + {detail.title} + {detail.metrics + .filter((x) => x.value !== undefined) + .map((metric, index2) => ( + + {metric.name} + {metric.value} + + ))} + + {index < details.length - 1 && ( + + )} + ))} - + ); }; diff --git a/src/widgets/media-server/TableRow.tsx b/src/widgets/media-server/TableRow.tsx index c9a795786..3795e674f 100644 --- a/src/widgets/media-server/TableRow.tsx +++ b/src/widgets/media-server/TableRow.tsx @@ -1,9 +1,8 @@ -import { Avatar, Collapse, Flex, Text, createStyles } from '@mantine/core'; -import { useState } from 'react'; - +import { Avatar, Flex, Popover, Text, createStyles } from '@mantine/core'; import { AppAvatar } from '~/components/AppAvatar'; import { GenericSessionInfo } from '~/types/api/media-server/session-info'; import { AppType } from '~/types/app'; + import { DetailCollapseable } from './DetailCollapseable'; import { NowPlayingDisplay } from './NowPlayingDisplay'; @@ -13,42 +12,47 @@ interface TableRowProps { } export const TableRow = ({ session, app }: TableRowProps) => { - const [collapseOpen, setCollapseOpen] = useState(false); const hasUserThumb = session.userProfilePicture !== undefined; const { classes } = useStyles(); return ( - <> - setCollapseOpen(!collapseOpen)}> - - - {app?.appearance.iconUrl && } - {session.sessionName} - - - - - {hasUserThumb ? ( - - ) : ( - - {session.username?.at(0)?.toUpperCase()} - - )} - {session.username} - - - - - - - - - - - - - - + + + + + + {app?.appearance.iconUrl && } + {session.sessionName} + + + + + {hasUserThumb ? ( + + ) : ( + + {session.username?.at(0)?.toUpperCase()} + + )} + {session.username} + + + + + + + + + + + ); }; @@ -56,8 +60,4 @@ const useStyles = createStyles(() => ({ dataRow: { cursor: 'pointer', }, - collapseTableDataCell: { - border: 'none !important', - padding: '0 !important', - }, })); From c777a774f72a3039ba64475b21874deae10691cd Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:17:46 +0200 Subject: [PATCH 06/62] =?UTF-8?q?=E2=9C=A8=20Hide=20DNS-Hole=20control=20b?= =?UTF-8?q?uttons=20option=20(#1384)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locales/en/modules/dns-hole-controls.json | 8 +- src/widgets/dnshole/DnsHoleControls.tsx | 131 ++++++++++-------- 2 files changed, 84 insertions(+), 55 deletions(-) diff --git a/public/locales/en/modules/dns-hole-controls.json b/public/locales/en/modules/dns-hole-controls.json index 1215356b0..279931f04 100644 --- a/public/locales/en/modules/dns-hole-controls.json +++ b/public/locales/en/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS hole controls", - "description": "Control PiHole or AdGuard from your dashboard" + "description": "Control PiHole or AdGuard from your dashboard", + "settings": { + "title": "DNS hole controls settings", + "showToggleAllButtons": { + "label": "Show 'Enable/Disable All' Buttons" + } + } } } \ No newline at end of file diff --git a/src/widgets/dnshole/DnsHoleControls.tsx b/src/widgets/dnshole/DnsHoleControls.tsx index 7f2835035..748a55e39 100644 --- a/src/widgets/dnshole/DnsHoleControls.tsx +++ b/src/widgets/dnshole/DnsHoleControls.tsx @@ -24,7 +24,12 @@ import { useDnsHoleSummeryQuery } from './DnsHoleSummary'; const definition = defineWidget({ id: 'dns-hole-controls', icon: IconDeviceGamepad, - options: {}, + options: { + showToggleAllButtons: { + type: 'switch', + defaultValue: true, + }, + }, gridstack: { minWidth: 2, minHeight: 1, @@ -102,51 +107,66 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { }; return ( - - 275 ? 2 : 1} spacing="0.25rem"> - - - + + {widget.properties.showToggleAllButtons && ( + 275 ? 2 : 1} spacing="0.25rem"> + + + + )} - + {data.status.map((dnsHole, index) => { const app = config?.apps.find((x) => x.id === dnsHole.appId); @@ -155,7 +175,7 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { } return ( - + ({ @@ -172,15 +192,18 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { {app.name} { - await mutateAsync({ - action: dnsHole.status === 'enabled' ? 'disable' : 'enable', - configName, - appsToChange: [app.id], - },{ - onSettled: () => { - reFetchSummaryDns(); + await mutateAsync( + { + action: dnsHole.status === 'enabled' ? 'disable' : 'enable', + configName, + appsToChange: [app.id], + }, + { + onSettled: () => { + reFetchSummaryDns(); + }, } - }); + ); }} disabled={fetchingDnsSummary || changingStatus} > From 4a30e327a3249d72d72151955759c8194292d47b Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Sun, 17 Sep 2023 16:17:28 +0200 Subject: [PATCH 07/62] =?UTF-8?q?=F0=9F=90=9B=20Calendar=20indicator=20ove?= =?UTF-8?q?r=20header=20bar=20fix=20(#1401)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/calendar/CalendarDay.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/calendar/CalendarDay.tsx b/src/widgets/calendar/CalendarDay.tsx index 660e53894..e3b6563fc 100644 --- a/src/widgets/calendar/CalendarDay.tsx +++ b/src/widgets/calendar/CalendarDay.tsx @@ -131,7 +131,7 @@ const DayIndicator = ({ size, offset, color, medias, children, position }: DayIn if (medias.length === 0) return children; return ( - + {children} ); From 141c27cda7b8aed155b9c9b793c531bd56f3b8e9 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Mon, 18 Sep 2023 19:30:22 +0200 Subject: [PATCH 08/62] =?UTF-8?q?=E2=9C=A8=20Add=20autofocus=20for=20searc?= =?UTF-8?q?hbar=20(#1408)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prisma/schema.prisma | 1 + public/locales/en/user/preferences.json | 4 ++++ .../User/Preferences/SearchEngineSelector.tsx | 5 +++++ .../layout/Templates/BoardLayout.tsx | 7 ++++++- src/components/layout/Templates/MainLayout.tsx | 18 ++++++++++++++++-- src/components/layout/header/Header.tsx | 4 +++- src/components/layout/header/Search.tsx | 4 +++- src/pages/user/preferences.tsx | 1 + src/server/api/routers/user.ts | 1 + src/server/auth.ts | 6 ++++++ src/validations/user.ts | 1 + 11 files changed, 47 insertions(+), 5 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 63ea23a40..b94360604 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -86,6 +86,7 @@ model UserSettings { disablePingPulse Boolean @default(false) replacePingWithIcons Boolean @default(false) useDebugLanguage Boolean @default(false) + autoFocusSearch Boolean @default(false) user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@unique([userId]) diff --git a/public/locales/en/user/preferences.json b/public/locales/en/user/preferences.json index 069cd7065..d1bbf2171 100644 --- a/public/locales/en/user/preferences.json +++ b/public/locales/en/user/preferences.json @@ -36,6 +36,10 @@ "newTab": { "label": "Open search results in a new tab" }, + "autoFocus": { + "label": "Focus search bar on page load.", + "description": "This will automatically focus the search bar, when you navigate to the board pages. It will only work on desktop devices." + }, "template": { "label": "Query URL", "description": "Use %s as a placeholder for the query" diff --git a/src/components/User/Preferences/SearchEngineSelector.tsx b/src/components/User/Preferences/SearchEngineSelector.tsx index 6c34f4fa0..d8e301ca2 100644 --- a/src/components/User/Preferences/SearchEngineSelector.tsx +++ b/src/components/User/Preferences/SearchEngineSelector.tsx @@ -31,6 +31,11 @@ export const SearchEngineSettings = () => { label={t('searchEngine.newTab.label')} {...form.getInputProps('openSearchInNewTab', { type: 'checkbox' })} /> + { const { config } = useConfigContext(); + const { data: session } = useSession(); return ( - }> + } + > {children} diff --git a/src/components/layout/Templates/MainLayout.tsx b/src/components/layout/Templates/MainLayout.tsx index 4a648650c..af3c8bbad 100644 --- a/src/components/layout/Templates/MainLayout.tsx +++ b/src/components/layout/Templates/MainLayout.tsx @@ -6,9 +6,16 @@ type MainLayoutProps = { headerActions?: React.ReactNode; contentComponents?: React.ReactNode; children: React.ReactNode; + autoFocusSearch?: boolean; }; -export const MainLayout = ({ showExperimental, headerActions, contentComponents, children }: MainLayoutProps) => { +export const MainLayout = ({ + showExperimental, + headerActions, + contentComponents, + children, + autoFocusSearch, +}: MainLayoutProps) => { const theme = useMantineTheme(); return ( @@ -18,7 +25,14 @@ export const MainLayout = ({ showExperimental, headerActions, contentComponents, background: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[1], }, }} - header={} + header={ + + } className="dashboard-app-shell" > {children} diff --git a/src/components/layout/header/Header.tsx b/src/components/layout/header/Header.tsx index 5ecd9256f..0bc301db7 100644 --- a/src/components/layout/header/Header.tsx +++ b/src/components/layout/header/Header.tsx @@ -23,6 +23,7 @@ type MainHeaderProps = { headerActions?: React.ReactNode; contentComponents?: React.ReactNode; leftIcon?: React.ReactNode; + autoFocusSearch?: boolean; }; export const MainHeader = ({ @@ -31,6 +32,7 @@ export const MainHeader = ({ headerActions, leftIcon, contentComponents, + autoFocusSearch, }: MainHeaderProps) => { const { breakpoints } = useMantineTheme(); const isSmallerThanMd = useMediaQuery(`(max-width: ${breakpoints.sm})`); @@ -51,7 +53,7 @@ export const MainHeader = ({ - {!isSmallerThanMd && } + {!isSmallerThanMd && } diff --git a/src/components/layout/header/Search.tsx b/src/components/layout/header/Search.tsx index d4e2d73fd..e0de950b2 100644 --- a/src/components/layout/header/Search.tsx +++ b/src/components/layout/header/Search.tsx @@ -19,9 +19,10 @@ import { MovieModal } from './Search/MovieModal'; type SearchProps = { isMobile?: boolean; + autoFocus?: boolean; }; -export const Search = ({ isMobile }: SearchProps) => { +export const Search = ({ isMobile, autoFocus }: SearchProps) => { const { t } = useTranslation('layout/header'); const [search, setSearch] = useState(''); const ref = useRef(null); @@ -62,6 +63,7 @@ export const Search = ({ isMobile }: SearchProps) => { variant="filled" placeholder={`${t('search.label')}...`} hoverOnSearchChange + autoFocus={autoFocus} rightSection={ ref.current?.focus()} diff --git a/src/pages/user/preferences.tsx b/src/pages/user/preferences.tsx index c6a12e897..2dcef24e0 100644 --- a/src/pages/user/preferences.tsx +++ b/src/pages/user/preferences.tsx @@ -89,6 +89,7 @@ const SettingsComponent = ({ replaceDotsWithIcons: settings.replacePingWithIcons, searchTemplate: settings.searchTemplate, openSearchInNewTab: settings.openSearchInNewTab, + autoFocusSearch: settings.autoFocusSearch, }, validate: i18nZodResolver(updateSettingsValidationSchema), validateInputOnBlur: true, diff --git a/src/server/api/routers/user.ts b/src/server/api/routers/user.ts index 6b8db0a3f..1287d1d95 100644 --- a/src/server/api/routers/user.ts +++ b/src/server/api/routers/user.ts @@ -221,6 +221,7 @@ export const userRouter = createTRPCRouter({ firstDayOfWeek: input.firstDayOfWeek, searchTemplate: input.searchTemplate, openSearchInNewTab: input.openSearchInNewTab, + autoFocusSearch: input.autoFocusSearch, }, }, }, diff --git a/src/server/auth.ts b/src/server/auth.ts index 70ba1f873..770af0f10 100644 --- a/src/server/auth.ts +++ b/src/server/auth.ts @@ -24,6 +24,7 @@ declare module 'next-auth' { id: string; isAdmin: boolean; colorScheme: 'light' | 'dark' | 'environment'; + autoFocusSearch: boolean; language: string; // ...other properties // role: UserRole; @@ -33,6 +34,7 @@ declare module 'next-auth' { interface User { isAdmin: boolean; colorScheme: 'light' | 'dark' | 'environment'; + autoFocusSearch: boolean; language: string; // ...other properties // role: UserRole; @@ -75,6 +77,7 @@ export const constructAuthOptions = ( select: { colorScheme: true, language: true, + autoFocusSearch: true, }, }, }, @@ -83,6 +86,7 @@ export const constructAuthOptions = ( session.user.isAdmin = userFromDatabase.isAdmin; session.user.colorScheme = colorSchemeParser.parse(userFromDatabase.settings?.colorScheme); session.user.language = userFromDatabase.settings?.language ?? 'en'; + session.user.autoFocusSearch = userFromDatabase.settings?.autoFocusSearch ?? false; } return session; @@ -148,6 +152,7 @@ export const constructAuthOptions = ( select: { colorScheme: true, language: true, + autoFocusSearch: true, }, }, }, @@ -173,6 +178,7 @@ export const constructAuthOptions = ( isAdmin: false, colorScheme: colorSchemeParser.parse(user.settings?.colorScheme), language: user.settings?.language ?? 'en', + autoFocusSearch: user.settings?.autoFocusSearch ?? false, }; }, }), diff --git a/src/validations/user.ts b/src/validations/user.ts index c44679a49..c88bcc99a 100644 --- a/src/validations/user.ts +++ b/src/validations/user.ts @@ -49,4 +49,5 @@ export const updateSettingsValidationSchema = z.object({ replaceDotsWithIcons: z.boolean(), searchTemplate: z.string().nonempty().max(256), openSearchInNewTab: z.boolean(), + autoFocusSearch: z.boolean(), }); From b49d021dafa31d7fb82826b4105362b23d584d09 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:45:30 +0200 Subject: [PATCH 09/62] :sparkles: Add allow anonymous switch --- package.json | 2 +- .../en/settings/customization/access.json | 6 + .../en/settings/customization/general.json | 4 + .../Customize/Access/AccessCustomization.tsx | 13 + .../Appearance/AppearanceCustomization.tsx | 1 - src/components/Board/Customize/form.ts | 1 - src/pages/board/[slug].tsx | 43 ++- src/pages/board/[slug]/customize.tsx | 13 +- src/pages/board/index.tsx | 11 + src/server/api/routers/config.ts | 4 + src/tools/config/getConfig.ts | 6 + src/tools/config/getFallbackConfig.ts | 5 +- src/types/settings.ts | 5 + src/validations/boards.ts | 3 + tests/pages/board/[slug].spec.ts | 172 ++++++++++++ vitest.config.ts | 2 +- yarn.lock | 253 +++++++++++------- 17 files changed, 437 insertions(+), 107 deletions(-) create mode 100644 public/locales/en/settings/customization/access.json create mode 100644 src/components/Board/Customize/Access/AccessCustomization.tsx create mode 100644 tests/pages/board/[slug].spec.ts diff --git a/package.json b/package.json index 21da14528..aeea86ea4 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitest/coverage-c8": "^0.33.0", - "@vitest/ui": "^0.33.0", + "@vitest/ui": "^0.34.4", "eslint": "^8.0.1", "eslint-config-next": "^13.4.5", "eslint-plugin-promise": "^6.0.0", diff --git a/public/locales/en/settings/customization/access.json b/public/locales/en/settings/customization/access.json new file mode 100644 index 000000000..1d49bfc83 --- /dev/null +++ b/public/locales/en/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Allow anonymous", + "description": "Allow users that are not logged in to view your board" + } +} \ No newline at end of file diff --git a/public/locales/en/settings/customization/general.json b/public/locales/en/settings/customization/general.json index 358b5158b..adbbfadaf 100644 --- a/public/locales/en/settings/customization/general.json +++ b/public/locales/en/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibility", "description": "Configure Homarr for disabled and handicapped users" + }, + "access": { + "name": "Acccess", + "description": "Configure who has access to your board" } } } diff --git a/src/components/Board/Customize/Access/AccessCustomization.tsx b/src/components/Board/Customize/Access/AccessCustomization.tsx new file mode 100644 index 000000000..8ff4f3f3b --- /dev/null +++ b/src/components/Board/Customize/Access/AccessCustomization.tsx @@ -0,0 +1,13 @@ +import { Stack, Switch } from '@mantine/core'; +import { useTranslation } from 'next-i18next'; +import { useBoardCustomizationFormContext } from '~/components/Board/Customize/form'; + +export const AccessCustomization = () => { + const { t } = useTranslation('settings/customization/access'); + const form = useBoardCustomizationFormContext(); + return ( + + + + ) +} \ No newline at end of file diff --git a/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx index 748599d04..248f4e855 100644 --- a/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx +++ b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx @@ -15,7 +15,6 @@ import { import { useTranslation } from 'next-i18next'; import { highlight, languages } from 'prismjs'; import Editor from 'react-simple-code-editor'; -import { useColorScheme } from '~/hooks/use-colorscheme'; import { useColorTheme } from '~/tools/color'; import { useBoardCustomizationFormContext } from '../form'; diff --git a/src/components/Board/Customize/form.ts b/src/components/Board/Customize/form.ts index eee8c6976..141eb1af4 100644 --- a/src/components/Board/Customize/form.ts +++ b/src/components/Board/Customize/form.ts @@ -1,4 +1,3 @@ -import { DEFAULT_THEME, MANTINE_COLORS, MantineColor } from '@mantine/core'; import { createFormContext } from '@mantine/form'; import { z } from 'zod'; import { boardCustomizationSchema } from '~/validations/boards'; diff --git a/src/pages/board/[slug].tsx b/src/pages/board/[slug].tsx index ebb300a72..f473a3b36 100644 --- a/src/pages/board/[slug].tsx +++ b/src/pages/board/[slug].tsx @@ -10,6 +10,7 @@ import { getFrontendConfig } from '~/tools/config/getFrontendConfig'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; import { boardNamespaces } from '~/tools/server/translation-namespaces'; import { ConfigType } from '~/types/config'; +import { getServerAuthSession } from '~/server/auth'; export default function BoardPage({ config: initialConfig, @@ -57,14 +58,36 @@ export const getServerSideProps: GetServerSideProps = a const config = await getFrontendConfig(routeParams.data.slug); const translations = await getServerSideTranslations(boardNamespaces, locale, req, res); - return { - props: { - config, - primaryColor: config.settings.customization.colors.primary, - secondaryColor: config.settings.customization.colors.secondary, - primaryShade: config.settings.customization.colors.shade, - dockerEnabled: !!env.DOCKER_HOST && !!env.DOCKER_PORT, - ...translations, - }, - }; + const getSuccessResponse = () => { + return { + props: { + config, + primaryColor: config.settings.customization.colors.primary, + secondaryColor: config.settings.customization.colors.secondary, + primaryShade: config.settings.customization.colors.shade, + dockerEnabled: !!env.DOCKER_HOST && !!env.DOCKER_PORT, + ...translations, + }, + }; + } + + + if (!config.settings.access.allowGuests) { + const session = await getServerAuthSession({ req, res }); + + if (session?.user) { + return getSuccessResponse(); + } + + return { + notFound: true, + props: { + primaryColor: config.settings.customization.colors.primary, + secondaryColor: config.settings.customization.colors.secondary, + primaryShade: config.settings.customization.colors.shade, + } + }; + } + + return getSuccessResponse(); }; diff --git a/src/pages/board/[slug]/customize.tsx b/src/pages/board/[slug]/customize.tsx index 6b23dce0e..b027098be 100644 --- a/src/pages/board/[slug]/customize.tsx +++ b/src/pages/board/[slug]/customize.tsx @@ -18,7 +18,7 @@ import { IconChartCandle, IconCheck, IconDragDrop, - IconLayout, + IconLayout, IconLock, IconX, TablerIconsProps, } from '@tabler/icons-react'; @@ -46,6 +46,7 @@ import { firstUpperCase } from '~/tools/shared/strings'; import { api } from '~/utils/api'; import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; import { boardCustomizationSchema } from '~/validations/boards'; +import { AccessCustomization } from '~/components/Board/Customize/Access/AccessCustomization'; const notificationId = 'board-customization-notification'; @@ -58,6 +59,9 @@ export default function CustomizationPage() { const { t } = useTranslation('boards/customize'); const form = useBoardCustomizationForm({ initialValues: { + access: { + allowGuests: config?.settings.access.allowGuests ?? false + }, layout: { leftSidebarEnabled: config?.settings.customization.layout.enabledLeftSidebar ?? false, rightSidebarEnabled: config?.settings.customization.layout.enabledRightSidebar ?? false, @@ -210,6 +214,10 @@ export default function CustomizationPage() { + + + + @@ -232,7 +240,7 @@ export default function CustomizationPage() { } type SectionTitleProps = { - type: 'layout' | 'gridstack' | 'pageMetadata' | 'appereance'; + type: 'layout' | 'gridstack' | 'pageMetadata' | 'appereance' | 'access'; icon: (props: TablerIconsProps) => ReactNode; }; @@ -282,6 +290,7 @@ export const getServerSideProps: GetServerSideProps = async ({ req, res, locale, 'settings/customization/shade-selector', 'settings/customization/opacity-selector', 'settings/customization/gridstack', + 'settings/customization/access' ], locale, req, diff --git a/src/pages/board/index.tsx b/src/pages/board/index.tsx index 8bb2ae230..3736c31dc 100644 --- a/src/pages/board/index.tsx +++ b/src/pages/board/index.tsx @@ -47,6 +47,17 @@ export const getServerSideProps: GetServerSideProps = a const boardName = currentUserSettings?.defaultBoard ?? 'default'; const config = await getFrontendConfig(boardName); + if (!config.settings.access.allowGuests && !session?.user) { + return { + notFound: true, + props: { + primaryColor: config.settings.customization.colors.primary, + secondaryColor: config.settings.customization.colors.secondary, + primaryShade: config.settings.customization.colors.shade, + } + }; + } + return { props: { config, diff --git a/src/server/api/routers/config.ts b/src/server/api/routers/config.ts index a7e0e063e..25b22bc83 100644 --- a/src/server/api/routers/config.ts +++ b/src/server/api/routers/config.ts @@ -191,6 +191,10 @@ export const configRouter = createTRPCRouter({ ...previousConfig, settings: { ...previousConfig.settings, + access: { + ...previousConfig.settings.access, + allowGuests: input.access.allowGuests, + }, customization: { ...previousConfig.settings.customization, appOpacity: input.appearance.opacity, diff --git a/src/tools/config/getConfig.ts b/src/tools/config/getConfig.ts index 1866a5480..8659c61d5 100644 --- a/src/tools/config/getConfig.ts +++ b/src/tools/config/getConfig.ts @@ -36,5 +36,11 @@ export const getConfig = (name: string): BackendConfigType => { writeConfig(backendConfig); } + if (!backendConfig.settings.access) { + backendConfig.settings.access = { + allowGuests: false, + }; + } + return backendConfig; }; diff --git a/src/tools/config/getFallbackConfig.ts b/src/tools/config/getFallbackConfig.ts index 5cc72bf09..d5ca11750 100644 --- a/src/tools/config/getFallbackConfig.ts +++ b/src/tools/config/getFallbackConfig.ts @@ -11,7 +11,7 @@ export const getFallbackConfig = (name?: string) => ({ export const getStaticFallbackConfig = (name: string): ConfigType => ({ schemaVersion: 1, configProperties: { - name: name, + name: name }, categories: [ { @@ -33,6 +33,9 @@ export const getStaticFallbackConfig = (name: string): ConfigType => ({ apps: [], widgets: [], settings: { + access: { + allowGuests: false, + }, common: { searchEngine: { type: 'google', diff --git a/src/types/settings.ts b/src/types/settings.ts index d09764d3f..1d4ba5cf2 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -3,6 +3,11 @@ import { MantineTheme } from '@mantine/core'; export interface SettingsType { common: CommonSettingsType; customization: CustomizationSettingsType; + access: BoardAccessSettingsType; +} + +export interface BoardAccessSettingsType { + allowGuests: boolean; } export interface CommonSettingsType { diff --git a/src/validations/boards.ts b/src/validations/boards.ts index 35c7e707c..9868e2072 100644 --- a/src/validations/boards.ts +++ b/src/validations/boards.ts @@ -6,6 +6,9 @@ export const createBoardSchemaValidation = z.object({ }); export const boardCustomizationSchema = z.object({ + access: z.object({ + allowGuests: z.boolean() + }), layout: z.object({ leftSidebarEnabled: z.boolean(), rightSidebarEnabled: z.boolean(), diff --git a/tests/pages/board/[slug].spec.ts b/tests/pages/board/[slug].spec.ts new file mode 100644 index 000000000..ad8549026 --- /dev/null +++ b/tests/pages/board/[slug].spec.ts @@ -0,0 +1,172 @@ +import { NextApiRequest, NextApiResponse } from 'next'; + +import { SSRConfig } from 'next-i18next'; + +import { ParsedUrlQuery } from 'querystring'; + +import { describe, expect, it, vitest } from 'vitest'; + +import { getServerSideProps } from '../../../src/pages/board/[slug]'; + +import * as configExistsModule from '../../../src/tools/config/configExists'; +import * as getFrontendConfigModule from '../../../src/tools/config/getFrontendConfig'; +import * as getServerSideTranslationsModule from '../../../src/tools/server/getServerSideTranslations'; + +import * as serverAuthModule from '~/server/auth'; +import { ConfigType } from '~/types/config'; + +vitest.mock('./../../server/auth.ts', () => ({ + getServerAuthSession: () => null, +})); + +vitest.mock('./../../tools/config/getFrontendConfig.ts', () => ({ + getFrontendConfig: (board: string) => null, +})); + +vitest.mock('./../../tools/config/configExists.ts', () => ({ + configExists: (board: string) => null, +})); + +vitest.mock('./../../env.js', () => import.meta); + +vitest.mock('./../../tools/server/getServerSideTranslations.ts', () => ({ + getServerSideTranslations: () => null, +})); + +describe('[slug] page', () => { + it('getServerSideProps should return not found when no params', async () => { + // arrange + vitest.spyOn(configExistsModule, 'configExists').mockReturnValue(false); + vitest + .spyOn(getFrontendConfigModule, 'getFrontendConfig') + .mockReturnValue(Promise.resolve(null as unknown as ConfigType)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve(null as unknown as SSRConfig)); + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + + // act + const response = await getServerSideProps({ + req: {} as NextApiRequest, + res: {} as NextApiResponse, + query: {} as ParsedUrlQuery, + resolvedUrl: '/board/testing-board', + }); + + // assert + expect(response).toStrictEqual({ + notFound: true, + }); + expect(configExistsModule.configExists).not.toHaveBeenCalled(); + expect(getFrontendConfigModule.getFrontendConfig).not.toHaveBeenCalled(); + }); + + it('getServerSideProps should return not found when invalid params', async () => { + // arrange + vitest.spyOn(configExistsModule, 'configExists').mockReturnValue(false); + vitest + .spyOn(getFrontendConfigModule, 'getFrontendConfig') + .mockReturnValue(Promise.resolve(null as unknown as ConfigType)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve(null as unknown as SSRConfig)); + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + + // act + const response = await getServerSideProps({ + req: {} as NextApiRequest, + res: {} as NextApiResponse, + query: { + test: 'test', + }, + resolvedUrl: '/board/testing-board', + }); + + expect(response).toStrictEqual({ + notFound: true, + }); + expect(configExistsModule.configExists).not.toHaveBeenCalled(); + expect(getFrontendConfigModule.getFrontendConfig).not.toHaveBeenCalled(); + }); + + it('getServerSideProps should return not found when valid params but no config with said name', async () => { + // arrange + vitest.spyOn(configExistsModule, 'configExists').mockReturnValue(false); + vitest + .spyOn(getFrontendConfigModule, 'getFrontendConfig') + .mockReturnValueOnce(Promise.resolve(null as unknown as ConfigType)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve(null as unknown as SSRConfig)); + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + + // act + const response = await getServerSideProps({ + req: {} as NextApiRequest, + res: {} as NextApiResponse, + query: {}, + params: { + slug: 'testing-board', + }, + resolvedUrl: '/board/testing-board', + }); + + // assert + expect(response).toStrictEqual({ + notFound: true, + }); + expect(configExistsModule.configExists).toHaveBeenCalledOnce(); + expect(getFrontendConfigModule.getFrontendConfig).not.toHaveBeenCalled(); + }); + + it('getServerSideProps should return when valid params and config', async () => { + // arrange + vitest.spyOn(configExistsModule, 'configExists').mockReturnValue(true); + vitest.spyOn(getFrontendConfigModule, 'getFrontendConfig').mockReturnValueOnce( + Promise.resolve({ + settings: { + access: { + allowGuests: false, + }, + customization: { + colors: { + primary: 'red', + secondary: 'blue', + shade: 'green', + }, + }, + }, + } as unknown as ConfigType) + ); + vitest + .spyOn(serverAuthModule, 'getServerAuthSession') + .mockReturnValueOnce(Promise.resolve(null)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve(null as unknown as SSRConfig)); + + // act + const response = await getServerSideProps({ + req: {} as NextApiRequest, + res: {} as NextApiResponse, + query: {}, + params: { + slug: 'my-authentication-board', + }, + resolvedUrl: '/board/my-authentication-board', + }); + + // assert + expect(response).toEqual({ + notFound: true, + props: { + primaryColor: 'red', + secondaryColor: 'blue', + primaryShade: 'green', + }, + }); + expect(serverAuthModule.getServerAuthSession).toHaveBeenCalledOnce(); + expect(configExistsModule.configExists).toHaveBeenCalledOnce(); + expect(getFrontendConfigModule.getFrontendConfig).toHaveBeenCalledOnce(); + }); +}); diff --git a/vitest.config.ts b/vitest.config.ts index 86a5337de..b98664c84 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,7 +8,7 @@ export default defineConfig({ test: { environment: 'happy-dom', coverage: { - provider: 'c8', + provider: 'v8', reporter: ['html'], all: true, exclude: ['.next/', '.yarn/', 'data/'], diff --git a/yarn.lock b/yarn.lock index ee149e8f6..6bd1d686a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -775,10 +775,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:^8.47.0": - version: 8.47.0 - resolution: "@eslint/js@npm:8.47.0" - checksum: 0ef57fe27b6d4c305b33f3b2d2fee1ab397a619006f1d6f4ce5ee4746b8f03d11a4e098805a7d78601ca534cf72917d37f0ac19896c992a32e26299ecb9f9de1 +"@eslint/js@npm:8.49.0": + version: 8.49.0 + resolution: "@eslint/js@npm:8.49.0" + checksum: a6601807c8aeeefe866926ad92ed98007c034a735af20ff709009e39ad1337474243d47908500a3bde04e37bfba16bcf1d3452417f962e1345bc8756edd6b830 languageName: node linkType: hard @@ -834,14 +834,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" dependencies: "@humanwhocodes/object-schema": ^1.2.1 debug: ^4.1.1 minimatch: ^3.0.5 - checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19 languageName: node linkType: hard @@ -1507,10 +1507,10 @@ __metadata: languageName: node linkType: hard -"@prisma/engines@npm:5.2.0": - version: 5.2.0 - resolution: "@prisma/engines@npm:5.2.0" - checksum: c4d0a424b211ab5f02c977bd87e03a151a7d297d8448b08ef9de931a0dcebbbea76cdefc15a17fd06dacac692b164fd88b32c23eb84f7822dbaf3d0885b700a7 +"@prisma/engines@npm:5.3.1": + version: 5.3.1 + resolution: "@prisma/engines@npm:5.3.1" + checksum: a231adad60ac42569b560ea9782bc181818d8ad15e65283d1317bda5d7aa754e5b536a3f9365ce1eda8961e1eff4eca5978c456fa9764a867fe4339d123e7371 languageName: node linkType: hard @@ -2967,6 +2967,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:6.7.2": + version: 6.7.2 + resolution: "@typescript-eslint/scope-manager@npm:6.7.2" + dependencies: + "@typescript-eslint/types": 6.7.2 + "@typescript-eslint/visitor-keys": 6.7.2 + checksum: e35fa23ecb16252c3ad00b5f1ec05d9b8d33ee30d4c57543892f900443ed77926be9bd2836f06463c31b483f5f0f79070273bc51c4a606f55ac3cd1d9c9cd542 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:6.4.1": version: 6.4.1 resolution: "@typescript-eslint/type-utils@npm:6.4.1" @@ -2998,6 +3008,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:6.7.2": + version: 6.7.2 + resolution: "@typescript-eslint/types@npm:6.7.2" + checksum: 5a7c4cd456f721649757d2edb4cae71d1405c1c2c35672031f012b27007b9d49b7118297eec746dc3351370e6aa414e5d2c493fb658c7b910154b7998c0278e1 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" @@ -3034,7 +3051,25 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.4.1, @typescript-eslint/utils@npm:^6.2.0": +"@typescript-eslint/typescript-estree@npm:6.7.2": + version: 6.7.2 + resolution: "@typescript-eslint/typescript-estree@npm:6.7.2" + dependencies: + "@typescript-eslint/types": 6.7.2 + "@typescript-eslint/visitor-keys": 6.7.2 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: c30b9803567c37527e2806badd98f3083ae125db9a430d8a28647b153e446e6a4b830833f229cca27d5aa0ff5497c149aaa524aa3a6dbf932b557c60d0bfd4f9 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.4.1": version: 6.4.1 resolution: "@typescript-eslint/utils@npm:6.4.1" dependencies: @@ -3069,6 +3104,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^6.2.0": + version: 6.7.2 + resolution: "@typescript-eslint/utils@npm:6.7.2" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.7.2 + "@typescript-eslint/types": 6.7.2 + "@typescript-eslint/typescript-estree": 6.7.2 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: 97f950562dba2bda63ffe64672f643ef940123cf74007bc878afcf31c75f905c99934a3ad77da3d5a4fe7807d5d69c791b20c429712ad5a5525e331ebc313756 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -3089,6 +3141,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:6.7.2": + version: 6.7.2 + resolution: "@typescript-eslint/visitor-keys@npm:6.7.2" + dependencies: + "@typescript-eslint/types": 6.7.2 + eslint-visitor-keys: ^3.4.1 + checksum: b4915fbc0f3d44c81b92b7151830b698e8b6ed2dee8587bb65540c888c7a84300d3fd6b0c159e2131c7c6df1bebe49fb0d21c347ecdbf7f3e4aec05acebbb0bc + languageName: node + linkType: hard + "@videojs/http-streaming@npm:3.5.3": version: 3.5.3 resolution: "@videojs/http-streaming@npm:3.5.3" @@ -3211,11 +3273,11 @@ __metadata: languageName: node linkType: hard -"@vitest/ui@npm:^0.33.0": - version: 0.33.0 - resolution: "@vitest/ui@npm:0.33.0" +"@vitest/ui@npm:^0.34.4": + version: 0.34.4 + resolution: "@vitest/ui@npm:0.34.4" dependencies: - "@vitest/utils": 0.33.0 + "@vitest/utils": 0.34.4 fast-glob: ^3.3.0 fflate: ^0.8.0 flatted: ^3.2.7 @@ -3224,7 +3286,7 @@ __metadata: sirv: ^2.0.3 peerDependencies: vitest: ">=0.30.1 <1" - checksum: 46e9bd9529d9cb8a7c3b9d7e1a4d56ef74a43efd35d33283305e837d411e267ef72b78481546605a605f89962271f02f6c63638941fe542177d00e9d192b1255 + checksum: 64e8a67bd4eafedc659b99d5b64d3b7af981652574622f4f9e2d27d6ff2904b8463fac76b77b9196a70295cefdb0a6dc05e218ef3698218837acdec06a119638 languageName: node linkType: hard @@ -3239,6 +3301,17 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:0.34.4": + version: 0.34.4 + resolution: "@vitest/utils@npm:0.34.4" + dependencies: + diff-sequences: ^29.4.3 + loupe: ^2.3.6 + pretty-format: ^29.5.0 + checksum: 5ec5e9d6de14fff0520a61843f54a90690c10c0cd8d54439d4e9f5ac1508aa27d2c4b78ab332c222ca3199999f0d006cf938fe1a0c63c317c297af12983c5499 + languageName: node + linkType: hard + "@xmldom/xmldom@npm:^0.8.3": version: 0.8.10 resolution: "@xmldom/xmldom@npm:0.8.10" @@ -3693,13 +3766,13 @@ __metadata: linkType: hard "axios@npm:^1.0.0": - version: 1.4.0 - resolution: "axios@npm:1.4.0" + version: 1.5.0 + resolution: "axios@npm:1.5.0" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 7fb6a4313bae7f45e89d62c70a800913c303df653f19eafec88e56cea2e3821066b8409bc68be1930ecca80e861c52aa787659df0ffec6ad4d451c7816b9386b + checksum: e7405a5dbbea97760d0e6cd58fecba311b0401ddb4a8efbc4108f5537da9b3f278bde566deb777935a960beec4fa18e7b8353881f2f465e4f2c0e949fead35be languageName: node linkType: hard @@ -5883,14 +5956,14 @@ __metadata: linkType: hard "eslint@npm:^8.0.1": - version: 8.47.0 - resolution: "eslint@npm:8.47.0" + version: 8.49.0 + resolution: "eslint@npm:8.49.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 "@eslint/eslintrc": ^2.1.2 - "@eslint/js": ^8.47.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint/js": 8.49.0 + "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 ajv: ^6.12.4 @@ -5925,7 +5998,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 1988617f703eadc5c7540468d54dc8e5171cf2bb9483f6172799cd1ff54a9a5e4470f003784e8cef92687eaa14de37172732787040e67817581a20bcb9c15970 + checksum: 4dfe257e1e42da2f9da872b05aaaf99b0f5aa022c1a91eee8f2af1ab72651b596366320c575ccd4e0469f7b4c97aff5bb85ae3323ebd6a293c3faef4028b0d81 languageName: node linkType: hard @@ -6149,9 +6222,9 @@ __metadata: linkType: hard "flag-icons@npm:^6.9.2": - version: 6.11.0 - resolution: "flag-icons@npm:6.11.0" - checksum: 859c4dfa104bbaa3bf49484764e1d9144d644c8acfff581591e925733d5b4731226be065b91ccac4b0e30a49fda6ba3c1468af4d5e35642dcefd03f468040efe + version: 6.11.1 + resolution: "flag-icons@npm:6.11.1" + checksum: 72f93fa261f0c345633af9e106ece7bbabe4de75e3b150509228465ac2a156b8d3b5d9373bc3fe00f4f259b9f24790a4b3617c45fb436b565d794f30a44a7fef languageName: node linkType: hard @@ -6247,8 +6320,8 @@ __metadata: linkType: hard "framer-motion@npm:^10.0.0": - version: 10.16.1 - resolution: "framer-motion@npm:10.16.1" + version: 10.16.4 + resolution: "framer-motion@npm:10.16.4" dependencies: "@emotion/is-prop-valid": ^0.8.2 tslib: ^2.4.0 @@ -6263,7 +6336,7 @@ __metadata: optional: true react-dom: optional: true - checksum: cce24975992020dbbdf426058a2a067ead262f7f264d28d2ed7570cb59e0f175267d7a05d0a1c1335c7bee486bc9dcf1f3940f474e4ba6fc47bb19eebb9f79d2 + checksum: 57eb252f25a2c4ee14b024295c6a1162a53a05e0321bdb9c8a22ec266fbe777832823eaa0309e42854170fcde16c42915c6c5d0208b628fd000d6fab013c501f languageName: node linkType: hard @@ -6694,8 +6767,8 @@ __metadata: linkType: hard "happy-dom@npm:^10.0.0": - version: 10.11.0 - resolution: "happy-dom@npm:10.11.0" + version: 10.11.2 + resolution: "happy-dom@npm:10.11.2" dependencies: css.escape: ^1.5.1 entities: ^4.5.0 @@ -6703,7 +6776,7 @@ __metadata: webidl-conversions: ^7.0.0 whatwg-encoding: ^2.0.0 whatwg-mimetype: ^3.0.0 - checksum: 78231580e3d7aee8dcd809a00adb404a2779236aef04358a7e68e860abafd0503fd8dc5829a411a26328966e9c8a17603f5881e47c949fd1e105786db9e987ba + checksum: 5781985c594f216fc8c6ae1d673aec2ef8c2eaa57b79036775ce42a55537486321bed9e1e3fc994a6a7ee9cc8729097486877f39d796ab9e440a7ba6e82e2401 languageName: node linkType: hard @@ -6875,7 +6948,7 @@ __metadata: "@typescript-eslint/parser": ^6.0.0 "@vitejs/plugin-react": ^4.0.0 "@vitest/coverage-c8": ^0.33.0 - "@vitest/ui": ^0.33.0 + "@vitest/ui": ^0.34.4 axios: ^1.0.0 bcryptjs: ^2.4.3 browser-geo-tz: ^0.0.4 @@ -8750,8 +8823,8 @@ __metadata: linkType: hard "next-i18next@npm:^14.0.0": - version: 14.0.0 - resolution: "next-i18next@npm:14.0.0" + version: 14.0.3 + resolution: "next-i18next@npm:14.0.3" dependencies: "@babel/runtime": ^7.20.13 "@types/hoist-non-react-statics": ^3.3.1 @@ -8759,11 +8832,11 @@ __metadata: hoist-non-react-statics: ^3.3.2 i18next-fs-backend: ^2.1.5 peerDependencies: - i18next: ^23.0.1 + i18next: ^23.4.6 next: ">= 12.0.0" react: ">= 17.0.2" - react-i18next: ^13.0.0 - checksum: a699f6fdee650a2456c463d59910bf38d9f891d224c00de639b15740e8cbf939a2469c8c733007b4f1c2fe0f85c18d43b6f1e814f2127ef30a0d3a28a354dc1d + react-i18next: ^13.2.1 + checksum: 96905e9f800e8536f07d5b6f134e529cc71f02e9a380f4dae4dd07a792be9e943946546f5ba171f6224b6039a3f547cb9f09313ef617339d9d8e68d775da2806 languageName: node linkType: hard @@ -9523,11 +9596,11 @@ __metadata: linkType: hard "prettier@npm:^3.0.0": - version: 3.0.2 - resolution: "prettier@npm:3.0.2" + version: 3.0.3 + resolution: "prettier@npm:3.0.3" bin: prettier: bin/prettier.cjs - checksum: 118b59ddb6c80abe2315ab6d0f4dd1b253be5cfdb20622fa5b65bb1573dcd362e6dd3dcf2711dd3ebfe64aecf7bdc75de8a69dc2422dcd35bdde7610586b677a + checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0 languageName: node linkType: hard @@ -9570,13 +9643,13 @@ __metadata: linkType: hard "prisma@npm:^5.0.0": - version: 5.2.0 - resolution: "prisma@npm:5.2.0" + version: 5.3.1 + resolution: "prisma@npm:5.3.1" dependencies: - "@prisma/engines": 5.2.0 + "@prisma/engines": 5.3.1 bin: prisma: build/index.js - checksum: 8b99ab5a5f801c72b2eb1809db980bd104dfd699cb14c5d5db5b675566c89e46501267399bb2f02bc3ea8fb86fc2f029cccd7178768109dc4d198bc93552b1da + checksum: e825adbcb4eec81de276de5507fb7e5486db7788c8c9de36ba6ed73f9e87d9f56b64d0e183a31dc6b80f6737ae1fbcdb110aac44ab89299af646aeb966655bef languageName: node linkType: hard @@ -10552,15 +10625,15 @@ __metadata: linkType: hard "sass@npm:^1.56.1": - version: 1.66.1 - resolution: "sass@npm:1.66.1" + version: 1.67.0 + resolution: "sass@npm:1.67.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 74fc11d0fcd5e16c5331b57dd59865705a299c64e89f2b99646869caeb011dc8d0b6144a6c74a90c264e9ef70654207dbf44fc9b7e3393f8bd14809b904c8a52 + checksum: 9e7566e8b7386cf265dddcdb266a023fb5759c5a8f48a11da199c8bf419e5f08f4ff6404d85d6bf5eac01e1f7c7061fdb6b7b65cbfda164e59b0a06b72ac8567 languageName: node linkType: hard @@ -11608,58 +11681,58 @@ __metadata: languageName: node linkType: hard -"turbo-darwin-64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-darwin-64@npm:1.10.13" +"turbo-darwin-64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-darwin-64@npm:1.10.14" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"turbo-darwin-arm64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-darwin-arm64@npm:1.10.13" +"turbo-darwin-arm64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-darwin-arm64@npm:1.10.14" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"turbo-linux-64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-linux-64@npm:1.10.13" +"turbo-linux-64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-linux-64@npm:1.10.14" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"turbo-linux-arm64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-linux-arm64@npm:1.10.13" +"turbo-linux-arm64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-linux-arm64@npm:1.10.14" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"turbo-windows-64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-windows-64@npm:1.10.13" +"turbo-windows-64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-windows-64@npm:1.10.14" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"turbo-windows-arm64@npm:1.10.13": - version: 1.10.13 - resolution: "turbo-windows-arm64@npm:1.10.13" +"turbo-windows-arm64@npm:1.10.14": + version: 1.10.14 + resolution: "turbo-windows-arm64@npm:1.10.14" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard "turbo@npm:^1.10.12": - version: 1.10.13 - resolution: "turbo@npm:1.10.13" + version: 1.10.14 + resolution: "turbo@npm:1.10.14" dependencies: - turbo-darwin-64: 1.10.13 - turbo-darwin-arm64: 1.10.13 - turbo-linux-64: 1.10.13 - turbo-linux-arm64: 1.10.13 - turbo-windows-64: 1.10.13 - turbo-windows-arm64: 1.10.13 + turbo-darwin-64: 1.10.14 + turbo-darwin-arm64: 1.10.14 + turbo-linux-64: 1.10.14 + turbo-linux-arm64: 1.10.14 + turbo-windows-64: 1.10.14 + turbo-windows-arm64: 1.10.14 dependenciesMeta: turbo-darwin-64: optional: true @@ -11675,7 +11748,7 @@ __metadata: optional: true bin: turbo: bin/turbo - checksum: 0c000c671534c8c80270c6d1fc77646df0e44164c0db561a85b3fefadd4bda6d5920626d067abb09af38613024e3984fb8d8bc5be922dae6236eda6aab9447a2 + checksum: 219d245bb5cc32a9f76b136b81e86e179228d93a44cab4df3e3d487a55dd2688b5b85f4d585b66568ac53166145352399dd2d7ed0cd47f1aae63d08beb814ebb languageName: node linkType: hard @@ -11788,22 +11861,22 @@ __metadata: linkType: hard "typescript@npm:^5.1.0": - version: 5.1.6 - resolution: "typescript@npm:5.1.6" + version: 5.2.2 + resolution: "typescript@npm:5.2.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 + checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c languageName: node linkType: hard "typescript@patch:typescript@^5.1.0#~builtin": - version: 5.1.6 - resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=5da071" + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=5da071" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: f53bfe97f7c8b2b6d23cf572750d4e7d1e0c5fff1c36d859d0ec84556a827b8785077bc27676bf7e71fae538e517c3ecc0f37e7f593be913d884805d931bc8be + checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 languageName: node linkType: hard @@ -12046,11 +12119,11 @@ __metadata: linkType: hard "uuid@npm:^9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028 + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 languageName: node linkType: hard @@ -12138,8 +12211,8 @@ __metadata: linkType: hard "vite-tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "vite-tsconfig-paths@npm:4.2.0" + version: 4.2.1 + resolution: "vite-tsconfig-paths@npm:4.2.1" dependencies: debug: ^4.1.1 globrex: ^0.1.2 @@ -12149,7 +12222,7 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: 73a8467de72d7ac502328454fd00c19571cd4bad2dd5982643b24718bb95e449a3f4153cfc2d58a358bfc8f37e592fb442fc10884b59ae82138c1329160cd952 + checksum: 8cfbd314eb82a9db97e193aef826e72a112ca8b98e68ef0f9cd8f8538fd5163afe67652507bae41d4aab967ab9a8b24dcf95bd0a8900d388cd6c500c5a82d3b1 languageName: node linkType: hard From b44347311f4c4b34ebe346c03c20c47954ec7a83 Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Thu, 21 Sep 2023 19:45:58 +0200 Subject: [PATCH 10/62] =?UTF-8?q?=F0=9F=90=9B=20Return=20download=20speed?= =?UTF-8?q?=20instead=20of=200=20for=20NZBGET=20(#1400)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/routers/download.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/api/routers/download.ts b/src/server/api/routers/download.ts index 567e097bd..9c6a82359 100644 --- a/src/server/api/routers/download.ts +++ b/src/server/api/routers/download.ts @@ -206,7 +206,7 @@ const GetDataFromClient = async ( appId: app.id, nzbs: nzbgetItems, success: true, - totalDownload: 0, + totalDownload: nzbgetStatus.DownloadRate, }; } default: From 690c627f813f74a76d628d2def7bd8159df4d875 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sun, 24 Sep 2023 16:04:07 +0200 Subject: [PATCH 11/62] =?UTF-8?q?=E2=9C=A8=20Add=20login=20redirection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ Add login redirection * 🚑 Fix cross site scripting using server side regex validation * ✅ Add unit test --- .github/workflows/docker_dev.yml | 7 +- package.json | 1 + public/locales/en/authentication/login.json | 3 +- src/pages/auth/login.tsx | 28 ++++- src/pages/board/[slug].tsx | 68 +++++------ src/pages/manage/boards/index.tsx | 9 +- src/pages/manage/users/create.tsx | 8 +- src/tools/server/loginBuilder.ts | 34 ++++++ tests/pages/auth/login.spec.ts | 125 ++++++++++++++++++++ tests/pages/board/[slug].spec.ts | 9 +- vitest.config.ts | 2 +- yarn.lock | 46 ++++++- 12 files changed, 275 insertions(+), 65 deletions(-) create mode 100644 src/tools/server/loginBuilder.ts create mode 100644 tests/pages/auth/login.spec.ts diff --git a/.github/workflows/docker_dev.yml b/.github/workflows/docker_dev.yml index a61132e63..221fe189e 100644 --- a/.github/workflows/docker_dev.yml +++ b/.github/workflows/docker_dev.yml @@ -41,6 +41,7 @@ jobs: permissions: packages: write contents: read + pull-requests: write steps: - name: Setup @@ -74,7 +75,11 @@ jobs: - run: yarn turbo build - - run: yarn test:run + - run: yarn test:coverage + + - name: Report coverage + if: always() + uses: davelosert/vitest-coverage-report-action@v2 - name: Docker meta if: github.event_name != 'pull_request' diff --git a/package.json b/package.json index aeea86ea4..02ba07e21 100644 --- a/package.json +++ b/package.json @@ -120,6 +120,7 @@ "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.34.5", "@vitest/ui": "^0.34.4", "eslint": "^8.0.1", "eslint-config-next": "^13.4.5", diff --git a/public/locales/en/authentication/login.json b/public/locales/en/authentication/login.json index 434127630..33fcdd9d7 100644 --- a/public/locales/en/authentication/login.json +++ b/public/locales/en/authentication/login.json @@ -13,7 +13,8 @@ }, "buttons": { "submit": "Sign in" - } + }, + "afterLoginRedirection": "After login, you'll be redirected to {{url}}" }, "alert": "Your credentials are incorrect or this account doesn't exist. Please try again." } \ No newline at end of file diff --git a/src/pages/auth/login.tsx b/src/pages/auth/login.tsx index 5ce5bbd24..cc1b2a81a 100644 --- a/src/pages/auth/login.tsx +++ b/src/pages/auth/login.tsx @@ -12,7 +12,7 @@ import { } from '@mantine/core'; import { useForm } from '@mantine/form'; import { IconAlertTriangle } from '@tabler/icons-react'; -import { GetServerSideProps } from 'next'; +import { GetServerSideProps, InferGetServerSidePropsType } from 'next'; import { signIn } from 'next-auth/react'; import { useTranslation } from 'next-i18next'; import Head from 'next/head'; @@ -20,14 +20,16 @@ import Image from 'next/image'; import { useRouter } from 'next/router'; import { useState } from 'react'; import { z } from 'zod'; +import { ThemeSchemeToggle } from '~/components/ThemeSchemeToggle/ThemeSchemeToggle'; import { FloatingBackground } from '~/components/layout/Background/FloatingBackground'; import { getServerAuthSession } from '~/server/auth'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; import { signInSchema } from '~/validations/user'; -import { ThemeSchemeToggle } from '~/components/ThemeSchemeToggle/ThemeSchemeToggle'; -export default function LoginPage() { +export default function LoginPage({ + redirectAfterLogin, +}: InferGetServerSidePropsType) { const { t } = useTranslation('authentication/login'); const { i18nZodResolver } = useI18nZodResolver(); const router = useRouter(); @@ -54,7 +56,7 @@ export default function LoginPage() { setIsError(true); return; } - router.push('/manage'); + router.push(redirectAfterLogin ?? '/manage'); }); }; @@ -68,7 +70,7 @@ export default function LoginPage() { - + @@ -120,6 +122,12 @@ export default function LoginPage() { + + {redirectAfterLogin && ( + + {t('form.afterLoginRedirection', { url: redirectAfterLogin })} + + )} @@ -129,9 +137,16 @@ export default function LoginPage() { ); } -export const getServerSideProps: GetServerSideProps = async ({ locale, req, res }) => { +const regexExp = /^\/{1}[A-z\/]*$/; + +export const getServerSideProps: GetServerSideProps = async ({ locale, req, res, query }) => { const session = await getServerAuthSession({ req, res }); + const zodResult = await z + .object({ redirectAfterLogin: z.string().regex(regexExp) }) + .safeParseAsync(query); + const redirectAfterLogin = zodResult.success ? zodResult.data.redirectAfterLogin : null; + if (session) { return { redirect: { @@ -144,6 +159,7 @@ export const getServerSideProps: GetServerSideProps = async ({ locale, req, res return { props: { ...(await getServerSideTranslations(['authentication/login'], locale, req, res)), + redirectAfterLogin, }, }; }; diff --git a/src/pages/board/[slug].tsx b/src/pages/board/[slug].tsx index f473a3b36..567abd141 100644 --- a/src/pages/board/[slug].tsx +++ b/src/pages/board/[slug].tsx @@ -5,12 +5,13 @@ import { Dashboard } from '~/components/Dashboard/Dashboard'; import { BoardLayout } from '~/components/layout/Templates/BoardLayout'; import { useInitConfig } from '~/config/init'; import { env } from '~/env'; +import { getServerAuthSession } from '~/server/auth'; import { configExists } from '~/tools/config/configExists'; import { getFrontendConfig } from '~/tools/config/getFrontendConfig'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; +import { checkForSessionOrAskForLogin } from '~/tools/server/loginBuilder'; import { boardNamespaces } from '~/tools/server/translation-namespaces'; import { ConfigType } from '~/types/config'; -import { getServerAuthSession } from '~/server/auth'; export default function BoardPage({ config: initialConfig, @@ -35,13 +36,8 @@ const routeParamsSchema = z.object({ slug: z.string(), }); -export const getServerSideProps: GetServerSideProps = async ({ - params, - locale, - req, - res, -}) => { - const routeParams = routeParamsSchema.safeParse(params); +export const getServerSideProps: GetServerSideProps = async (ctx) => { + const routeParams = routeParamsSchema.safeParse(ctx.params); if (!routeParams.success) { return { notFound: true, @@ -56,38 +52,32 @@ export const getServerSideProps: GetServerSideProps = a } const config = await getFrontendConfig(routeParams.data.slug); - const translations = await getServerSideTranslations(boardNamespaces, locale, req, res); + const translations = await getServerSideTranslations( + boardNamespaces, + ctx.locale, + ctx.req, + ctx.res + ); - const getSuccessResponse = () => { - return { - props: { - config, - primaryColor: config.settings.customization.colors.primary, - secondaryColor: config.settings.customization.colors.secondary, - primaryShade: config.settings.customization.colors.shade, - dockerEnabled: !!env.DOCKER_HOST && !!env.DOCKER_PORT, - ...translations, - }, - }; + const session = await getServerAuthSession({ req: ctx.req, res: ctx.res }); + + const result = checkForSessionOrAskForLogin( + ctx, + session, + () => config.settings.access.allowGuests || !session?.user + ); + if (result) { + return result; } - - if (!config.settings.access.allowGuests) { - const session = await getServerAuthSession({ req, res }); - - if (session?.user) { - return getSuccessResponse(); - } - - return { - notFound: true, - props: { - primaryColor: config.settings.customization.colors.primary, - secondaryColor: config.settings.customization.colors.secondary, - primaryShade: config.settings.customization.colors.shade, - } - }; - } - - return getSuccessResponse(); + return { + props: { + config, + primaryColor: config.settings.customization.colors.primary, + secondaryColor: config.settings.customization.colors.secondary, + primaryShade: config.settings.customization.colors.shade, + dockerEnabled: !!env.DOCKER_HOST && !!env.DOCKER_PORT, + ...translations, + }, + }; }; diff --git a/src/pages/manage/boards/index.tsx b/src/pages/manage/boards/index.tsx index 84dcb9b73..d79e73947 100644 --- a/src/pages/manage/boards/index.tsx +++ b/src/pages/manage/boards/index.tsx @@ -12,7 +12,6 @@ import { Title, } from '@mantine/core'; import { useListState } from '@mantine/hooks'; -import { modals } from '@mantine/modals'; import { IconBox, IconCategory, @@ -35,6 +34,7 @@ import { ManageLayout } from '~/components/layout/Templates/ManageLayout'; import { getServerAuthSession } from '~/server/auth'; import { sleep } from '~/tools/client/time'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; +import { checkForSessionOrAskForLogin } from '~/tools/server/loginBuilder'; import { manageNamespaces } from '~/tools/server/translation-namespaces'; import { api } from '~/utils/api'; @@ -204,10 +204,9 @@ const BoardsPage = () => { export const getServerSideProps: GetServerSideProps = async (ctx) => { const session = await getServerAuthSession(ctx); - if (!session?.user) { - return { - notFound: true, - }; + const result = checkForSessionOrAskForLogin(ctx, session, () => true); + if (result) { + return result; } const translations = await getServerSideTranslations( diff --git a/src/pages/manage/users/create.tsx b/src/pages/manage/users/create.tsx index 421290cc8..f1c894c7f 100644 --- a/src/pages/manage/users/create.tsx +++ b/src/pages/manage/users/create.tsx @@ -19,6 +19,7 @@ import { import { ManageLayout } from '~/components/layout/Templates/ManageLayout'; import { getServerAuthSession } from '~/server/auth'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; +import { checkForSessionOrAskForLogin } from '~/tools/server/loginBuilder'; import { manageNamespaces } from '~/tools/server/translation-namespaces'; import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; @@ -132,10 +133,9 @@ export type CreateAccountSchema = z.infer; export const getServerSideProps: GetServerSideProps = async (ctx) => { const session = await getServerAuthSession(ctx); - if (!session?.user.isAdmin) { - return { - notFound: true, - }; + const result = checkForSessionOrAskForLogin(ctx, session, () => session?.user.isAdmin == true); + if (result) { + return result; } const translations = await getServerSideTranslations( diff --git a/src/tools/server/loginBuilder.ts b/src/tools/server/loginBuilder.ts new file mode 100644 index 000000000..5120a6dc9 --- /dev/null +++ b/src/tools/server/loginBuilder.ts @@ -0,0 +1,34 @@ +import { + GetServerSideProps, + GetServerSidePropsContext, + GetServerSidePropsResult, + PreviewData, +} from 'next'; +import { Session } from 'next-auth'; +import { ParsedUrlQuery } from 'querystring'; + +export const checkForSessionOrAskForLogin = ( + context: GetServerSidePropsContext, + session: Session | null, + accessCallback: () => boolean, +): GetServerSidePropsResult | undefined => { + if (!session?.user) { + console.log('detected logged out user!'); + return { + props: {}, + redirect: { + destination: `/auth/login?redirectAfterLogin=${context.resolvedUrl}`, + permanent: false, + }, + }; + } + + if (!accessCallback()) { + return { + props: {}, + notFound: true + } + } + + return undefined; +}; diff --git a/tests/pages/auth/login.spec.ts b/tests/pages/auth/login.spec.ts new file mode 100644 index 000000000..8fb9c2be9 --- /dev/null +++ b/tests/pages/auth/login.spec.ts @@ -0,0 +1,125 @@ +import { IncomingMessage } from 'http'; +import { ServerResponse } from 'http'; +import { GetServerSidePropsContext } from 'next'; +import { SSRConfig } from 'next-i18next'; +import { ParsedUrlQuery } from 'querystring'; +import { describe, expect, it, vitest } from 'vitest'; +import { getServerSideProps } from '~/pages/auth/login'; +import * as serverAuthModule from '~/server/auth'; + +import * as getServerSideTranslationsModule from '../../../src/tools/server/getServerSideTranslations'; + +vitest.mock('./../../server/auth.ts', () => ({ + getServerAuthSession: () => null, +})); + +vitest.mock('./../../tools/server/getServerSideTranslations.ts', () => ({ + getServerSideTranslations: () => null, +})); + +describe('login page', () => { + it('getServerSideProps should return null redirectAfterLogin when no query value', async () => { + // arrange + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve({ _i18Next: 'hello' } as unknown as SSRConfig)); + + // act + const response = await getServerSideProps({ + query: {}, + locale: 'de-DE', + req: {}, + res: {}, + } as GetServerSidePropsContext); + + // assert + expect(response).toStrictEqual({ + props: { + redirectAfterLogin: null, + _i18Next: 'hello', + }, + }); + + expect(serverAuthModule.getServerAuthSession).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledWith( + ['authentication/login'], + 'de-DE', + {}, + {} + ); + }); + + it('getServerSideProps should return url when redirectAfterLogin is local and valid', async () => { + // arrange + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve({ _i18Next: 'hello' } as unknown as SSRConfig)); + + // act + const response = await getServerSideProps({ + query: { + redirectAfterLogin: '/manage/users/create', + }, + locale: 'de-DE', + req: {} as IncomingMessage & { cookies: Partial<{ [key: string]: string }> }, + res: {} as ServerResponse, + resolvedUrl: '/auth/login', + } as GetServerSidePropsContext); + + // assert + expect(response).toStrictEqual({ + props: { + redirectAfterLogin: '/manage/users/create', + _i18Next: 'hello', + }, + }); + + expect(serverAuthModule.getServerAuthSession).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledWith( + ['authentication/login'], + 'de-DE', + {}, + {} + ); + }); + + it('getServerSideProps should return null when url does not match regex', async () => { + // arrange + vitest.spyOn(serverAuthModule, 'getServerAuthSession').mockReturnValue(Promise.resolve(null)); + vitest + .spyOn(getServerSideTranslationsModule, 'getServerSideTranslations') + .mockReturnValue(Promise.resolve({ _i18Next: 'hello' } as unknown as SSRConfig)); + + // act + const response = await getServerSideProps({ + query: { + redirectAfterLogin: "data:text/html,", + }, + locale: 'de-DE', + req: {} as IncomingMessage & { cookies: Partial<{ [key: string]: string }> }, + res: {} as ServerResponse, + resolvedUrl: '/auth/login', + } as GetServerSidePropsContext); + + // assert + expect(response).toStrictEqual({ + props: { + redirectAfterLogin: null, + _i18Next: 'hello', + }, + }); + + expect(serverAuthModule.getServerAuthSession).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledOnce(); + expect(getServerSideTranslationsModule.getServerSideTranslations).toHaveBeenCalledWith( + ['authentication/login'], + 'de-DE', + {}, + {} + ); + }); +}); diff --git a/tests/pages/board/[slug].spec.ts b/tests/pages/board/[slug].spec.ts index ad8549026..16b7d8a6a 100644 --- a/tests/pages/board/[slug].spec.ts +++ b/tests/pages/board/[slug].spec.ts @@ -158,12 +158,11 @@ describe('[slug] page', () => { // assert expect(response).toEqual({ - notFound: true, - props: { - primaryColor: 'red', - secondaryColor: 'blue', - primaryShade: 'green', + redirect: { + destination: "/auth/login?redirectAfterLogin=/board/my-authentication-board", + permanent: false }, + props: {}, }); expect(serverAuthModule.getServerAuthSession).toHaveBeenCalledOnce(); expect(configExistsModule.configExists).toHaveBeenCalledOnce(); diff --git a/vitest.config.ts b/vitest.config.ts index b98664c84..5c0a50629 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,7 +9,7 @@ export default defineConfig({ environment: 'happy-dom', coverage: { provider: 'v8', - reporter: ['html'], + reporter: ['html', 'json-summary', 'json'], all: true, exclude: ['.next/', '.yarn/', 'data/'], }, diff --git a/yarn.lock b/yarn.lock index 6bd1d686a..414b33529 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3231,6 +3231,27 @@ __metadata: languageName: node linkType: hard +"@vitest/coverage-v8@npm:^0.34.5": + version: 0.34.5 + resolution: "@vitest/coverage-v8@npm:0.34.5" + dependencies: + "@ampproject/remapping": ^2.2.1 + "@bcoe/v8-coverage": ^0.2.3 + istanbul-lib-coverage: ^3.2.0 + istanbul-lib-report: ^3.0.1 + istanbul-lib-source-maps: ^4.0.1 + istanbul-reports: ^3.1.5 + magic-string: ^0.30.1 + picocolors: ^1.0.0 + std-env: ^3.3.3 + test-exclude: ^6.0.0 + v8-to-istanbul: ^9.1.0 + peerDependencies: + vitest: ">=0.32.0 <1" + checksum: 6ffbcbd0d992b535c7fbc5d8ad82f8939e11786e28a899d1b2ef60f51c192063738d60b0037f7c5fec5545130f671b408bc5f20432abb280bf9788214467c475 + languageName: node + linkType: hard + "@vitest/expect@npm:0.33.0": version: 0.33.0 resolution: "@vitest/expect@npm:0.33.0" @@ -6948,6 +6969,7 @@ __metadata: "@typescript-eslint/parser": ^6.0.0 "@vitejs/plugin-react": ^4.0.0 "@vitest/coverage-c8": ^0.33.0 + "@vitest/coverage-v8": ^0.34.5 "@vitest/ui": ^0.34.4 axios: ^1.0.0 bcryptjs: ^2.4.3 @@ -7729,7 +7751,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-report@npm:^3.0.0": +"istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" dependencies: @@ -7740,7 +7762,18 @@ __metadata: languageName: node linkType: hard -"istanbul-reports@npm:^3.1.4": +"istanbul-lib-source-maps@npm:^4.0.1": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + source-map: ^0.6.1 + checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.4, istanbul-reports@npm:^3.1.5": version: 3.1.6 resolution: "istanbul-reports@npm:3.1.6" dependencies: @@ -10904,6 +10937,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:^0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + "split-ca@npm:^1.0.1": version: 1.0.1 resolution: "split-ca@npm:1.0.1" @@ -12134,7 +12174,7 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.0": +"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.1.0": version: 9.1.0 resolution: "v8-to-istanbul@npm:9.1.0" dependencies: From 76008aa92b9ebc61153226dca66880fefd10a13a Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 24 Sep 2023 18:44:25 +0200 Subject: [PATCH 12/62] =?UTF-8?q?=F0=9F=94=92=EF=B8=8F=20Fix=20regex=20sec?= =?UTF-8?q?urity=20warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/auth/login.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/auth/login.tsx b/src/pages/auth/login.tsx index cc1b2a81a..159781426 100644 --- a/src/pages/auth/login.tsx +++ b/src/pages/auth/login.tsx @@ -137,7 +137,7 @@ export default function LoginPage({ ); } -const regexExp = /^\/{1}[A-z\/]*$/; +const regexExp = /^\/{1}[A-Za-z\/]*$/; export const getServerSideProps: GetServerSideProps = async ({ locale, req, res, query }) => { const session = await getServerAuthSession({ req, res }); From 17103f3f5be3492f9e9ed03d39f0e7bb821e74a3 Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Tue, 26 Sep 2023 21:17:55 +0200 Subject: [PATCH 13/62] =?UTF-8?q?=F0=9F=90=9B=20Change=20position=20select?= =?UTF-8?q?or's=20dropdown=20bug=20(#1429)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dashboard/Modals/ChangePosition/ChangePositionModal.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx b/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx index 5b19d3d52..ffb76505b 100644 --- a/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx +++ b/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx @@ -95,6 +95,7 @@ export const ChangePositionModal = ({ min: widthData.at(0)?.label, max: widthData.at(-1)?.label, })} + withinPortal {...form.getInputProps('width')} /> @@ -109,6 +110,7 @@ export const ChangePositionModal = ({ min: heightData.at(0)?.label, max: heightData.at(-1)?.label, })} + withinPortal {...form.getInputProps('height')} /> From 76090c848568b617db4c75ceb8da8ca7a745c441 Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Wed, 27 Sep 2023 13:30:15 +0200 Subject: [PATCH 14/62] New Crowdin updates (#1383) * New translations general.json (Latvian) * New translations zod.json (Latvian) * New translations preferences.json (Latvian) * New translations header.json (Latvian) * New translations common.json (Latvian) * New translations customize.json (Latvian) * New translations manage.json (Latvian) * New translations boards.json (Latvian) * New translations index.json (Latvian) * New translations invites.json (Latvian) * New translations invite.json (Latvian) * New translations create.json (Latvian) * New translations users.json (Latvian) * New translations docker.json (Latvian) * New translations password-requirements.json (Latvian) * New translations access.json (Latvian) * New translations common.json (LOLCAT) * New translations calendar.json (LOLCAT) * New translations page-appearance.json (LOLCAT) * New translations login.json (LOLCAT) * New translations general.json (LOLCAT) * New translations zod.json (LOLCAT) * New translations preferences.json (LOLCAT) * New translations header.json (LOLCAT) * New translations common.json (LOLCAT) * New translations customize.json (LOLCAT) * New translations manage.json (LOLCAT) * New translations boards.json (LOLCAT) * New translations index.json (LOLCAT) * New translations invites.json (LOLCAT) * New translations invite.json (LOLCAT) * New translations create.json (LOLCAT) * New translations users.json (LOLCAT) * New translations docker.json (LOLCAT) * New translations password-requirements.json (LOLCAT) * New translations access.json (LOLCAT) * New translations common.json (German) * New translations login.json (German) * New translations general.json (German) * New translations zod.json (German) * New translations preferences.json (German) * New translations header.json (German) * New translations common.json (German) * New translations customize.json (German) * New translations manage.json (German) * New translations boards.json (German) * New translations index.json (German) * New translations invites.json (German) * New translations invite.json (German) * New translations create.json (German) * New translations users.json (German) * New translations docker.json (German) * New translations password-requirements.json (German) * New translations common.json (Turkish) * New translations login.json (Turkish) * New translations general.json (Turkish) * New translations zod.json (Turkish) * New translations preferences.json (Turkish) * New translations header.json (Turkish) * New translations common.json (Turkish) * New translations customize.json (Turkish) * New translations manage.json (Turkish) * New translations boards.json (Turkish) * New translations index.json (Turkish) * New translations invites.json (Turkish) * New translations invite.json (Turkish) * New translations create.json (Turkish) * New translations users.json (Turkish) * New translations docker.json (Turkish) * New translations password-requirements.json (Turkish) * New translations access.json (Turkish) * New translations dns-hole-controls.json (Slovak) * New translations access.json (German) * New translations common.json (Slovak) * New translations login.json (Slovak) * New translations general.json (Slovak) * New translations zod.json (Slovak) * New translations preferences.json (Slovak) * New translations header.json (Slovak) * New translations common.json (Slovak) * New translations customize.json (Slovak) * New translations manage.json (Slovak) * New translations boards.json (Slovak) * New translations index.json (Slovak) * New translations invites.json (Slovak) * New translations invite.json (Slovak) * New translations create.json (Slovak) * New translations users.json (Slovak) * New translations docker.json (Slovak) * New translations password-requirements.json (Slovak) * New translations access.json (Slovak) * New translations login.json (French) * New translations header.json (French) * New translations customize.json (French) * New translations manage.json (French) * New translations boards.json (French) * New translations index.json (French) * New translations invites.json (French) * New translations invite.json (French) * New translations create.json (French) * New translations users.json (French) * New translations dns-hole-controls.json (Russian) * New translations login.json (Spanish) * New translations header.json (Spanish) * New translations common.json (Spanish) * New translations customize.json (Spanish) * New translations manage.json (Spanish) * New translations boards.json (Spanish) * New translations index.json (Spanish) * New translations invite.json (Spanish) * New translations create.json (Spanish) * New translations users.json (Spanish) * New translations calendar.json (Russian) * New translations login.json (Russian) * New translations general.json (Russian) * New translations zod.json (Russian) * New translations preferences.json (Russian) * New translations header.json (Russian) * New translations common.json (Russian) * New translations customize.json (Russian) * New translations manage.json (Russian) * New translations boards.json (Russian) * New translations index.json (Russian) * New translations invites.json (Russian) * New translations invite.json (Russian) * New translations create.json (Russian) * New translations users.json (Russian) * New translations docker.json (Russian) * New translations password-requirements.json (Russian) * New translations access.json (Russian) * New translations common.json (Swedish) * New translations login.json (Swedish) * New translations general.json (Swedish) * New translations zod.json (Swedish) * New translations header.json (Swedish) * New translations preferences.json (Spanish) * New translations header.json (Spanish) * New translations boards.json (Spanish) * New translations index.json (Spanish) * New translations invites.json (Spanish) * New translations create.json (Spanish) * New translations users.json (Spanish) * New translations access.json (Spanish) * New translations common.json (Chinese Simplified) * New translations login.json (Chinese Simplified) * New translations header.json (Chinese Simplified) * New translations common.json (Danish) * New translations login.json (Danish) * New translations general.json (Danish) * New translations zod.json (Danish) * New translations preferences.json (Danish) * New translations header.json (Danish) * New translations common.json (Danish) * New translations customize.json (Danish) * New translations manage.json (Danish) * New translations boards.json (Danish) * New translations index.json (Danish) * New translations invites.json (Danish) * New translations invite.json (Danish) * New translations create.json (Danish) * New translations users.json (Danish) * New translations docker.json (Danish) * New translations password-requirements.json (Danish) * New translations access.json (Danish) * New translations common.json (Hungarian) * New translations login.json (Hungarian) * New translations general.json (Hungarian) * New translations zod.json (Hungarian) * New translations preferences.json (Hungarian) * New translations header.json (Hungarian) * New translations common.json (Hungarian) * New translations customize.json (Hungarian) * New translations manage.json (Hungarian) * New translations boards.json (Hungarian) * New translations index.json (Hungarian) * New translations invites.json (Hungarian) * New translations invite.json (Hungarian) * New translations create.json (Hungarian) * New translations users.json (Hungarian) * New translations docker.json (Hungarian) * New translations password-requirements.json (Hungarian) * New translations selector.json (French) * New translations zod.json (French) * New translations preferences.json (French) * New translations header.json (French) * New translations common.json (French) * New translations customize.json (French) * New translations manage.json (French) * New translations boards.json (French) * New translations invites.json (French) * New translations create.json (French) * New translations docker.json (French) * New translations password-requirements.json (French) * New translations access.json (French) * New translations general.json (French) * New translations common.json (French) * New translations common-media-cards.json (French) * New translations zod.json (French) * New translations preferences.json (French) * New translations boards.json (French) * New translations index.json (French) * New translations invites.json (French) * New translations users.json (French) * New translations docker.json (French) * New translations invite.json (Chinese Simplified) * New translations create.json (Chinese Simplified) * New translations login.json (Chinese Simplified) * New translations general.json (Chinese Simplified) * New translations zod.json (Chinese Simplified) * New translations preferences.json (Chinese Simplified) * New translations header.json (Chinese Simplified) * New translations common.json (Chinese Simplified) * New translations customize.json (Chinese Simplified) * New translations manage.json (Chinese Simplified) * New translations boards.json (Chinese Simplified) * New translations index.json (Chinese Simplified) * New translations invites.json (Chinese Simplified) * New translations create.json (Chinese Simplified) * New translations users.json (Chinese Simplified) * New translations docker.json (Chinese Simplified) * New translations password-requirements.json (Chinese Simplified) * New translations access.json (Chinese Simplified) * New translations index.json (Spanish) * New translations users.json (Spanish) * New translations common.json (Spanish) * New translations general.json (Spanish) * New translations zod.json (Spanish) * New translations users.json (Spanish) * New translations docker.json (Spanish) * New translations password-requirements.json (Spanish) * New translations common.json (Hebrew) * New translations login.json (Hebrew) * New translations general.json (Hebrew) * New translations zod.json (Hebrew) * New translations header.json (Hebrew) * New translations boards.json (French) * New translations index.json (French) * New translations invites.json (French) * New translations zod.json (Hebrew) * New translations preferences.json (Hebrew) * New translations header.json (Hebrew) * New translations common.json (Hebrew) * New translations customize.json (Hebrew) * New translations manage.json (Hebrew) * New translations index.json (Hebrew) * New translations invites.json (Hebrew) * New translations invite.json (Hebrew) * New translations create.json (Hebrew) * New translations users.json (Hebrew) * New translations docker.json (Hebrew) --- public/locales/da/authentication/invite.json | 35 +++++++++++++ public/locales/da/authentication/login.json | 27 ++++------ public/locales/da/boards/common.json | 5 ++ public/locales/da/boards/customize.json | 29 +++++++++++ public/locales/da/common.json | 4 ++ public/locales/da/layout/header.json | 34 ++++++++++++ public/locales/da/layout/manage.json | 32 ++++++++++++ public/locales/da/manage/boards.json | 44 ++++++++++++++++ public/locales/da/manage/index.json | 23 ++++++++ public/locales/da/manage/users.json | 36 +++++++++++++ public/locales/da/manage/users/create.json | 52 +++++++++++++++++++ public/locales/da/manage/users/invites.json | 48 +++++++++++++++++ public/locales/da/modules/calendar.json | 3 -- .../locales/da/modules/dns-hole-controls.json | 8 ++- public/locales/da/password-requirements.json | 7 +++ .../da/settings/customization/access.json | 6 +++ .../da/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/da/tools/docker.json | 32 ++++++++++++ public/locales/da/user/preferences.json | 48 +++++++++++++++++ public/locales/da/zod.json | 22 ++++++++ public/locales/de/authentication/invite.json | 35 +++++++++++++ public/locales/de/authentication/login.json | 27 ++++------ public/locales/de/boards/common.json | 5 ++ public/locales/de/boards/customize.json | 29 +++++++++++ public/locales/de/common.json | 4 ++ public/locales/de/layout/header.json | 34 ++++++++++++ public/locales/de/layout/manage.json | 32 ++++++++++++ public/locales/de/manage/boards.json | 44 ++++++++++++++++ public/locales/de/manage/index.json | 23 ++++++++ public/locales/de/manage/users.json | 36 +++++++++++++ public/locales/de/manage/users/create.json | 52 +++++++++++++++++++ public/locales/de/manage/users/invites.json | 48 +++++++++++++++++ public/locales/de/modules/calendar.json | 3 -- .../locales/de/modules/dns-hole-controls.json | 8 ++- public/locales/de/password-requirements.json | 7 +++ .../de/settings/customization/access.json | 6 +++ .../de/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/de/tools/docker.json | 32 ++++++++++++ public/locales/de/user/preferences.json | 48 +++++++++++++++++ public/locales/de/zod.json | 22 ++++++++ public/locales/el/authentication/invite.json | 35 +++++++++++++ public/locales/el/authentication/login.json | 27 ++++------ public/locales/el/boards/common.json | 5 ++ public/locales/el/boards/customize.json | 29 +++++++++++ public/locales/el/common.json | 4 ++ public/locales/el/layout/header.json | 34 ++++++++++++ public/locales/el/layout/manage.json | 32 ++++++++++++ public/locales/el/manage/boards.json | 44 ++++++++++++++++ public/locales/el/manage/index.json | 23 ++++++++ public/locales/el/manage/users.json | 36 +++++++++++++ public/locales/el/manage/users/create.json | 52 +++++++++++++++++++ public/locales/el/manage/users/invites.json | 48 +++++++++++++++++ public/locales/el/modules/calendar.json | 5 +- .../locales/el/modules/dns-hole-controls.json | 8 ++- public/locales/el/password-requirements.json | 1 + .../el/settings/customization/access.json | 6 +++ .../el/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/el/tools/docker.json | 32 ++++++++++++ public/locales/el/user/preferences.json | 48 +++++++++++++++++ public/locales/el/zod.json | 22 ++++++++ public/locales/es/authentication/invite.json | 35 +++++++++++++ public/locales/es/authentication/login.json | 27 ++++------ public/locales/es/boards/common.json | 5 ++ public/locales/es/boards/customize.json | 29 +++++++++++ public/locales/es/common.json | 4 ++ public/locales/es/layout/header.json | 34 ++++++++++++ public/locales/es/layout/manage.json | 32 ++++++++++++ public/locales/es/manage/boards.json | 44 ++++++++++++++++ public/locales/es/manage/index.json | 23 ++++++++ public/locales/es/manage/users.json | 36 +++++++++++++ public/locales/es/manage/users/create.json | 52 +++++++++++++++++++ public/locales/es/manage/users/invites.json | 48 +++++++++++++++++ public/locales/es/modules/calendar.json | 3 -- .../locales/es/modules/dns-hole-controls.json | 8 ++- public/locales/es/modules/weather.json | 8 +-- public/locales/es/password-requirements.json | 7 +++ .../es/settings/customization/access.json | 6 +++ .../es/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/es/tools/docker.json | 32 ++++++++++++ public/locales/es/user/preferences.json | 48 +++++++++++++++++ public/locales/es/zod.json | 22 ++++++++ public/locales/fr/authentication/invite.json | 35 +++++++++++++ public/locales/fr/authentication/login.json | 27 ++++------ public/locales/fr/boards/common.json | 5 ++ public/locales/fr/boards/customize.json | 29 +++++++++++ public/locales/fr/common.json | 4 ++ public/locales/fr/layout/common.json | 2 +- .../fr/layout/element-selector/selector.json | 4 +- public/locales/fr/layout/header.json | 34 ++++++++++++ .../header/actions/toggle-edit-mode.json | 2 +- public/locales/fr/layout/manage.json | 32 ++++++++++++ public/locales/fr/layout/modals/about.json | 6 +-- public/locales/fr/layout/modals/add-app.json | 14 ++--- public/locales/fr/manage/boards.json | 44 ++++++++++++++++ public/locales/fr/manage/index.json | 23 ++++++++ public/locales/fr/manage/users.json | 36 +++++++++++++ public/locales/fr/manage/users/create.json | 52 +++++++++++++++++++ public/locales/fr/manage/users/invites.json | 48 +++++++++++++++++ public/locales/fr/modules/bookmark.json | 10 ++-- public/locales/fr/modules/calendar.json | 15 +++--- .../fr/modules/common-media-cards.json | 2 +- public/locales/fr/modules/date.json | 4 +- .../locales/fr/modules/dns-hole-controls.json | 10 +++- .../locales/fr/modules/dns-hole-summary.json | 14 ++--- public/locales/fr/modules/iframe.json | 6 +-- .../fr/modules/media-requests-list.json | 2 +- .../fr/modules/media-requests-stats.json | 18 +++---- public/locales/fr/modules/media-server.json | 2 +- .../locales/fr/modules/torrents-status.json | 8 +-- public/locales/fr/modules/video-stream.json | 2 +- public/locales/fr/password-requirements.json | 7 +++ .../fr/settings/customization/access.json | 6 +++ .../settings/customization/accessibility.json | 2 +- .../fr/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- .../fr/settings/general/cache-buttons.json | 24 ++++----- .../fr/settings/general/edit-mode-toggle.json | 16 +++--- .../fr/settings/general/search-engine.json | 2 +- public/locales/fr/tools/docker.json | 32 ++++++++++++ public/locales/fr/user/preferences.json | 48 +++++++++++++++++ public/locales/fr/zod.json | 22 ++++++++ public/locales/he/authentication/invite.json | 35 +++++++++++++ public/locales/he/authentication/login.json | 27 ++++------ public/locales/he/boards/common.json | 5 ++ public/locales/he/boards/customize.json | 29 +++++++++++ public/locales/he/common.json | 4 ++ public/locales/he/layout/header.json | 34 ++++++++++++ public/locales/he/layout/manage.json | 32 ++++++++++++ public/locales/he/manage/boards.json | 44 ++++++++++++++++ public/locales/he/manage/index.json | 23 ++++++++ public/locales/he/manage/users.json | 36 +++++++++++++ public/locales/he/manage/users/create.json | 52 +++++++++++++++++++ public/locales/he/manage/users/invites.json | 48 +++++++++++++++++ public/locales/he/modules/calendar.json | 3 -- .../locales/he/modules/dns-hole-controls.json | 8 ++- public/locales/he/password-requirements.json | 1 + .../he/settings/customization/access.json | 6 +++ .../he/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/he/tools/docker.json | 32 ++++++++++++ public/locales/he/user/preferences.json | 48 +++++++++++++++++ public/locales/he/zod.json | 22 ++++++++ public/locales/hr/authentication/invite.json | 35 +++++++++++++ public/locales/hr/authentication/login.json | 27 ++++------ public/locales/hr/boards/common.json | 5 ++ public/locales/hr/boards/customize.json | 29 +++++++++++ public/locales/hr/common.json | 4 ++ public/locales/hr/layout/header.json | 34 ++++++++++++ public/locales/hr/layout/manage.json | 32 ++++++++++++ public/locales/hr/manage/boards.json | 44 ++++++++++++++++ public/locales/hr/manage/index.json | 23 ++++++++ public/locales/hr/manage/users.json | 36 +++++++++++++ public/locales/hr/manage/users/create.json | 52 +++++++++++++++++++ public/locales/hr/manage/users/invites.json | 48 +++++++++++++++++ public/locales/hr/modules/calendar.json | 3 -- .../locales/hr/modules/dns-hole-controls.json | 8 ++- public/locales/hr/password-requirements.json | 1 + .../hr/settings/customization/access.json | 6 +++ .../hr/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/hr/tools/docker.json | 32 ++++++++++++ public/locales/hr/user/preferences.json | 48 +++++++++++++++++ public/locales/hr/zod.json | 22 ++++++++ public/locales/hu/authentication/invite.json | 35 +++++++++++++ public/locales/hu/authentication/login.json | 27 ++++------ public/locales/hu/boards/common.json | 5 ++ public/locales/hu/boards/customize.json | 29 +++++++++++ public/locales/hu/common.json | 4 ++ public/locales/hu/layout/header.json | 34 ++++++++++++ public/locales/hu/layout/manage.json | 32 ++++++++++++ public/locales/hu/layout/modals/about.json | 2 +- public/locales/hu/manage/boards.json | 44 ++++++++++++++++ public/locales/hu/manage/index.json | 23 ++++++++ public/locales/hu/manage/users.json | 36 +++++++++++++ public/locales/hu/manage/users/create.json | 52 +++++++++++++++++++ public/locales/hu/manage/users/invites.json | 48 +++++++++++++++++ public/locales/hu/modules/calendar.json | 5 +- .../locales/hu/modules/dns-hole-controls.json | 8 ++- public/locales/hu/password-requirements.json | 7 +++ .../hu/settings/customization/access.json | 6 +++ .../hu/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/hu/tools/docker.json | 32 ++++++++++++ public/locales/hu/user/preferences.json | 48 +++++++++++++++++ public/locales/hu/zod.json | 22 ++++++++ public/locales/it/authentication/invite.json | 35 +++++++++++++ public/locales/it/authentication/login.json | 27 ++++------ public/locales/it/boards/common.json | 5 ++ public/locales/it/boards/customize.json | 29 +++++++++++ public/locales/it/common.json | 4 ++ public/locales/it/layout/header.json | 34 ++++++++++++ public/locales/it/layout/manage.json | 32 ++++++++++++ public/locales/it/manage/boards.json | 44 ++++++++++++++++ public/locales/it/manage/index.json | 23 ++++++++ public/locales/it/manage/users.json | 36 +++++++++++++ public/locales/it/manage/users/create.json | 52 +++++++++++++++++++ public/locales/it/manage/users/invites.json | 48 +++++++++++++++++ public/locales/it/modules/calendar.json | 5 +- .../locales/it/modules/dns-hole-controls.json | 8 ++- public/locales/it/password-requirements.json | 1 + .../it/settings/customization/access.json | 6 +++ .../it/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/it/tools/docker.json | 32 ++++++++++++ public/locales/it/user/preferences.json | 48 +++++++++++++++++ public/locales/it/zod.json | 22 ++++++++ public/locales/ja/authentication/invite.json | 35 +++++++++++++ public/locales/ja/authentication/login.json | 27 ++++------ public/locales/ja/boards/common.json | 5 ++ public/locales/ja/boards/customize.json | 29 +++++++++++ public/locales/ja/common.json | 4 ++ public/locales/ja/layout/header.json | 34 ++++++++++++ public/locales/ja/layout/manage.json | 32 ++++++++++++ public/locales/ja/manage/boards.json | 44 ++++++++++++++++ public/locales/ja/manage/index.json | 23 ++++++++ public/locales/ja/manage/users.json | 36 +++++++++++++ public/locales/ja/manage/users/create.json | 52 +++++++++++++++++++ public/locales/ja/manage/users/invites.json | 48 +++++++++++++++++ public/locales/ja/modules/calendar.json | 3 -- .../locales/ja/modules/dns-hole-controls.json | 8 ++- public/locales/ja/password-requirements.json | 1 + .../ja/settings/customization/access.json | 6 +++ .../ja/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/ja/tools/docker.json | 32 ++++++++++++ public/locales/ja/user/preferences.json | 48 +++++++++++++++++ public/locales/ja/zod.json | 22 ++++++++ public/locales/ko/authentication/invite.json | 35 +++++++++++++ public/locales/ko/authentication/login.json | 25 ++++----- public/locales/ko/boards/common.json | 5 ++ public/locales/ko/boards/customize.json | 29 +++++++++++ public/locales/ko/common.json | 4 ++ public/locales/ko/layout/header.json | 34 ++++++++++++ public/locales/ko/layout/manage.json | 32 ++++++++++++ public/locales/ko/manage/boards.json | 44 ++++++++++++++++ public/locales/ko/manage/index.json | 23 ++++++++ public/locales/ko/manage/users.json | 36 +++++++++++++ public/locales/ko/manage/users/create.json | 52 +++++++++++++++++++ public/locales/ko/manage/users/invites.json | 48 +++++++++++++++++ public/locales/ko/modules/calendar.json | 3 -- .../locales/ko/modules/dns-hole-controls.json | 8 ++- public/locales/ko/password-requirements.json | 1 + .../ko/settings/customization/access.json | 6 +++ .../ko/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/ko/tools/docker.json | 32 ++++++++++++ public/locales/ko/user/preferences.json | 48 +++++++++++++++++ public/locales/ko/zod.json | 22 ++++++++ public/locales/lol/authentication/invite.json | 35 +++++++++++++ public/locales/lol/authentication/login.json | 27 ++++------ public/locales/lol/boards/common.json | 5 ++ public/locales/lol/boards/customize.json | 29 +++++++++++ public/locales/lol/common.json | 4 ++ public/locales/lol/layout/header.json | 34 ++++++++++++ public/locales/lol/layout/manage.json | 32 ++++++++++++ public/locales/lol/manage/boards.json | 44 ++++++++++++++++ public/locales/lol/manage/index.json | 23 ++++++++ public/locales/lol/manage/users.json | 36 +++++++++++++ public/locales/lol/manage/users/create.json | 52 +++++++++++++++++++ public/locales/lol/manage/users/invites.json | 48 +++++++++++++++++ public/locales/lol/modules/calendar.json | 3 -- .../lol/modules/dns-hole-controls.json | 8 ++- public/locales/lol/password-requirements.json | 1 + .../lol/settings/customization/access.json | 6 +++ .../lol/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/lol/tools/docker.json | 32 ++++++++++++ public/locales/lol/user/preferences.json | 48 +++++++++++++++++ public/locales/lol/zod.json | 22 ++++++++ public/locales/lv/authentication/invite.json | 35 +++++++++++++ public/locales/lv/authentication/login.json | 27 ++++------ public/locales/lv/boards/common.json | 5 ++ public/locales/lv/boards/customize.json | 29 +++++++++++ public/locales/lv/common.json | 4 ++ public/locales/lv/layout/common.json | 2 +- public/locales/lv/layout/header.json | 34 ++++++++++++ .../header/actions/toggle-edit-mode.json | 2 +- public/locales/lv/layout/manage.json | 32 ++++++++++++ public/locales/lv/layout/modals/about.json | 6 +-- public/locales/lv/layout/modals/add-app.json | 4 +- public/locales/lv/manage/boards.json | 44 ++++++++++++++++ public/locales/lv/manage/index.json | 23 ++++++++ public/locales/lv/manage/users.json | 36 +++++++++++++ public/locales/lv/manage/users/create.json | 52 +++++++++++++++++++ public/locales/lv/manage/users/invites.json | 48 +++++++++++++++++ public/locales/lv/modules/bookmark.json | 2 +- public/locales/lv/modules/calendar.json | 5 +- .../locales/lv/modules/dns-hole-controls.json | 8 ++- .../lv/modules/media-requests-list.json | 2 +- .../lv/modules/media-requests-stats.json | 14 ++--- public/locales/lv/password-requirements.json | 1 + .../lv/settings/customization/access.json | 6 +++ .../lv/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- .../lv/settings/general/cache-buttons.json | 24 ++++----- .../lv/settings/general/edit-mode-toggle.json | 16 +++--- public/locales/lv/tools/docker.json | 32 ++++++++++++ public/locales/lv/user/preferences.json | 48 +++++++++++++++++ public/locales/lv/zod.json | 22 ++++++++ public/locales/nl/authentication/invite.json | 35 +++++++++++++ public/locales/nl/authentication/login.json | 27 ++++------ public/locales/nl/boards/common.json | 5 ++ public/locales/nl/boards/customize.json | 29 +++++++++++ public/locales/nl/common.json | 4 ++ public/locales/nl/layout/header.json | 34 ++++++++++++ public/locales/nl/layout/manage.json | 32 ++++++++++++ public/locales/nl/manage/boards.json | 44 ++++++++++++++++ public/locales/nl/manage/index.json | 23 ++++++++ public/locales/nl/manage/users.json | 36 +++++++++++++ public/locales/nl/manage/users/create.json | 52 +++++++++++++++++++ public/locales/nl/manage/users/invites.json | 48 +++++++++++++++++ public/locales/nl/modules/calendar.json | 3 -- .../locales/nl/modules/dns-hole-controls.json | 8 ++- public/locales/nl/password-requirements.json | 1 + .../nl/settings/customization/access.json | 6 +++ .../nl/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/nl/tools/docker.json | 32 ++++++++++++ public/locales/nl/user/preferences.json | 48 +++++++++++++++++ public/locales/nl/zod.json | 22 ++++++++ public/locales/no/authentication/invite.json | 35 +++++++++++++ public/locales/no/authentication/login.json | 27 ++++------ public/locales/no/boards/common.json | 5 ++ public/locales/no/boards/customize.json | 29 +++++++++++ public/locales/no/common.json | 4 ++ public/locales/no/layout/header.json | 34 ++++++++++++ public/locales/no/layout/manage.json | 32 ++++++++++++ public/locales/no/manage/boards.json | 44 ++++++++++++++++ public/locales/no/manage/index.json | 23 ++++++++ public/locales/no/manage/users.json | 36 +++++++++++++ public/locales/no/manage/users/create.json | 52 +++++++++++++++++++ public/locales/no/manage/users/invites.json | 48 +++++++++++++++++ public/locales/no/modules/calendar.json | 3 -- .../locales/no/modules/dns-hole-controls.json | 8 ++- public/locales/no/password-requirements.json | 1 + .../no/settings/customization/access.json | 6 +++ .../no/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/no/tools/docker.json | 32 ++++++++++++ public/locales/no/user/preferences.json | 48 +++++++++++++++++ public/locales/no/zod.json | 22 ++++++++ public/locales/pl/authentication/invite.json | 35 +++++++++++++ public/locales/pl/authentication/login.json | 27 ++++------ public/locales/pl/boards/common.json | 5 ++ public/locales/pl/boards/customize.json | 29 +++++++++++ public/locales/pl/common.json | 4 ++ public/locales/pl/layout/header.json | 34 ++++++++++++ public/locales/pl/layout/manage.json | 32 ++++++++++++ public/locales/pl/manage/boards.json | 44 ++++++++++++++++ public/locales/pl/manage/index.json | 23 ++++++++ public/locales/pl/manage/users.json | 36 +++++++++++++ public/locales/pl/manage/users/create.json | 52 +++++++++++++++++++ public/locales/pl/manage/users/invites.json | 48 +++++++++++++++++ public/locales/pl/modules/calendar.json | 3 -- .../locales/pl/modules/dns-hole-controls.json | 8 ++- public/locales/pl/password-requirements.json | 1 + .../pl/settings/customization/access.json | 6 +++ .../pl/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/pl/tools/docker.json | 32 ++++++++++++ public/locales/pl/user/preferences.json | 48 +++++++++++++++++ public/locales/pl/zod.json | 22 ++++++++ public/locales/pt/authentication/invite.json | 35 +++++++++++++ public/locales/pt/authentication/login.json | 27 ++++------ public/locales/pt/boards/common.json | 5 ++ public/locales/pt/boards/customize.json | 29 +++++++++++ public/locales/pt/common.json | 4 ++ public/locales/pt/layout/header.json | 34 ++++++++++++ public/locales/pt/layout/manage.json | 32 ++++++++++++ public/locales/pt/manage/boards.json | 44 ++++++++++++++++ public/locales/pt/manage/index.json | 23 ++++++++ public/locales/pt/manage/users.json | 36 +++++++++++++ public/locales/pt/manage/users/create.json | 52 +++++++++++++++++++ public/locales/pt/manage/users/invites.json | 48 +++++++++++++++++ public/locales/pt/modules/calendar.json | 3 -- .../locales/pt/modules/dns-hole-controls.json | 8 ++- public/locales/pt/password-requirements.json | 1 + .../pt/settings/customization/access.json | 6 +++ .../pt/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/pt/tools/docker.json | 32 ++++++++++++ public/locales/pt/user/preferences.json | 48 +++++++++++++++++ public/locales/pt/zod.json | 22 ++++++++ public/locales/ru/authentication/invite.json | 35 +++++++++++++ public/locales/ru/authentication/login.json | 27 ++++------ public/locales/ru/boards/common.json | 5 ++ public/locales/ru/boards/customize.json | 29 +++++++++++ public/locales/ru/common.json | 4 ++ public/locales/ru/layout/header.json | 34 ++++++++++++ public/locales/ru/layout/manage.json | 32 ++++++++++++ public/locales/ru/manage/boards.json | 44 ++++++++++++++++ public/locales/ru/manage/index.json | 23 ++++++++ public/locales/ru/manage/users.json | 36 +++++++++++++ public/locales/ru/manage/users/create.json | 52 +++++++++++++++++++ public/locales/ru/manage/users/invites.json | 48 +++++++++++++++++ public/locales/ru/modules/calendar.json | 5 +- .../locales/ru/modules/dns-hole-controls.json | 8 ++- public/locales/ru/password-requirements.json | 7 +++ .../ru/settings/customization/access.json | 6 +++ .../ru/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/ru/tools/docker.json | 32 ++++++++++++ public/locales/ru/user/preferences.json | 48 +++++++++++++++++ public/locales/ru/zod.json | 22 ++++++++ public/locales/sk/authentication/invite.json | 35 +++++++++++++ public/locales/sk/authentication/login.json | 27 ++++------ public/locales/sk/boards/common.json | 5 ++ public/locales/sk/boards/customize.json | 29 +++++++++++ public/locales/sk/common.json | 4 ++ public/locales/sk/layout/header.json | 34 ++++++++++++ public/locales/sk/layout/manage.json | 32 ++++++++++++ public/locales/sk/manage/boards.json | 44 ++++++++++++++++ public/locales/sk/manage/index.json | 23 ++++++++ public/locales/sk/manage/users.json | 36 +++++++++++++ public/locales/sk/manage/users/create.json | 52 +++++++++++++++++++ public/locales/sk/manage/users/invites.json | 48 +++++++++++++++++ public/locales/sk/modules/calendar.json | 5 +- .../locales/sk/modules/dns-hole-controls.json | 8 ++- public/locales/sk/password-requirements.json | 7 +++ public/locales/sk/settings/common.json | 2 +- .../sk/settings/customization/access.json | 6 +++ .../sk/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/sk/tools/docker.json | 32 ++++++++++++ public/locales/sk/user/preferences.json | 48 +++++++++++++++++ public/locales/sk/zod.json | 22 ++++++++ public/locales/sl/authentication/invite.json | 35 +++++++++++++ public/locales/sl/authentication/login.json | 27 ++++------ public/locales/sl/boards/common.json | 5 ++ public/locales/sl/boards/customize.json | 29 +++++++++++ public/locales/sl/common.json | 4 ++ public/locales/sl/layout/header.json | 34 ++++++++++++ public/locales/sl/layout/manage.json | 32 ++++++++++++ public/locales/sl/manage/boards.json | 44 ++++++++++++++++ public/locales/sl/manage/index.json | 23 ++++++++ public/locales/sl/manage/users.json | 36 +++++++++++++ public/locales/sl/manage/users/create.json | 52 +++++++++++++++++++ public/locales/sl/manage/users/invites.json | 48 +++++++++++++++++ public/locales/sl/modules/calendar.json | 3 -- .../locales/sl/modules/dns-hole-controls.json | 8 ++- public/locales/sl/password-requirements.json | 1 + .../sl/settings/customization/access.json | 6 +++ .../sl/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/sl/tools/docker.json | 32 ++++++++++++ public/locales/sl/user/preferences.json | 48 +++++++++++++++++ public/locales/sl/zod.json | 22 ++++++++ public/locales/sv/authentication/invite.json | 35 +++++++++++++ public/locales/sv/authentication/login.json | 27 ++++------ public/locales/sv/boards/common.json | 5 ++ public/locales/sv/boards/customize.json | 29 +++++++++++ public/locales/sv/common.json | 4 ++ public/locales/sv/layout/header.json | 34 ++++++++++++ public/locales/sv/layout/manage.json | 32 ++++++++++++ public/locales/sv/layout/modals/add-app.json | 2 +- public/locales/sv/manage/boards.json | 44 ++++++++++++++++ public/locales/sv/manage/index.json | 23 ++++++++ public/locales/sv/manage/users.json | 36 +++++++++++++ public/locales/sv/manage/users/create.json | 52 +++++++++++++++++++ public/locales/sv/manage/users/invites.json | 48 +++++++++++++++++ public/locales/sv/modules/calendar.json | 3 -- .../locales/sv/modules/dns-hole-controls.json | 8 ++- public/locales/sv/password-requirements.json | 1 + .../sv/settings/customization/access.json | 6 +++ .../sv/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/sv/tools/docker.json | 32 ++++++++++++ public/locales/sv/user/preferences.json | 48 +++++++++++++++++ public/locales/sv/zod.json | 22 ++++++++ public/locales/tr/authentication/invite.json | 35 +++++++++++++ public/locales/tr/authentication/login.json | 27 ++++------ public/locales/tr/boards/common.json | 5 ++ public/locales/tr/boards/customize.json | 29 +++++++++++ public/locales/tr/common.json | 4 ++ public/locales/tr/layout/common.json | 4 +- .../tr/layout/element-selector/selector.json | 4 +- public/locales/tr/layout/header.json | 34 ++++++++++++ public/locales/tr/layout/manage.json | 32 ++++++++++++ public/locales/tr/manage/boards.json | 44 ++++++++++++++++ public/locales/tr/manage/index.json | 23 ++++++++ public/locales/tr/manage/users.json | 36 +++++++++++++ public/locales/tr/manage/users/create.json | 52 +++++++++++++++++++ public/locales/tr/manage/users/invites.json | 48 +++++++++++++++++ public/locales/tr/modules/calendar.json | 3 -- .../locales/tr/modules/dns-hole-controls.json | 8 ++- public/locales/tr/password-requirements.json | 7 +++ .../tr/settings/customization/access.json | 6 +++ .../tr/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- .../tr/settings/general/theme-selector.json | 2 +- public/locales/tr/tools/docker.json | 32 ++++++++++++ public/locales/tr/user/preferences.json | 48 +++++++++++++++++ public/locales/tr/zod.json | 22 ++++++++ public/locales/uk/authentication/invite.json | 35 +++++++++++++ public/locales/uk/authentication/login.json | 27 ++++------ public/locales/uk/boards/common.json | 5 ++ public/locales/uk/boards/customize.json | 29 +++++++++++ public/locales/uk/common.json | 4 ++ public/locales/uk/layout/header.json | 34 ++++++++++++ public/locales/uk/layout/manage.json | 32 ++++++++++++ public/locales/uk/manage/boards.json | 44 ++++++++++++++++ public/locales/uk/manage/index.json | 23 ++++++++ public/locales/uk/manage/users.json | 36 +++++++++++++ public/locales/uk/manage/users/create.json | 52 +++++++++++++++++++ public/locales/uk/manage/users/invites.json | 48 +++++++++++++++++ public/locales/uk/modules/calendar.json | 3 -- .../locales/uk/modules/dns-hole-controls.json | 8 ++- public/locales/uk/password-requirements.json | 1 + .../uk/settings/customization/access.json | 6 +++ .../uk/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/uk/tools/docker.json | 32 ++++++++++++ public/locales/uk/user/preferences.json | 48 +++++++++++++++++ public/locales/uk/zod.json | 22 ++++++++ public/locales/vi/authentication/invite.json | 35 +++++++++++++ public/locales/vi/authentication/login.json | 27 ++++------ public/locales/vi/boards/common.json | 5 ++ public/locales/vi/boards/customize.json | 29 +++++++++++ public/locales/vi/common.json | 4 ++ public/locales/vi/layout/header.json | 34 ++++++++++++ public/locales/vi/layout/manage.json | 32 ++++++++++++ public/locales/vi/manage/boards.json | 44 ++++++++++++++++ public/locales/vi/manage/index.json | 23 ++++++++ public/locales/vi/manage/users.json | 36 +++++++++++++ public/locales/vi/manage/users/create.json | 52 +++++++++++++++++++ public/locales/vi/manage/users/invites.json | 48 +++++++++++++++++ public/locales/vi/modules/calendar.json | 3 -- .../locales/vi/modules/dns-hole-controls.json | 8 ++- public/locales/vi/password-requirements.json | 1 + .../vi/settings/customization/access.json | 6 +++ .../vi/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/vi/tools/docker.json | 32 ++++++++++++ public/locales/vi/user/preferences.json | 48 +++++++++++++++++ public/locales/vi/zod.json | 22 ++++++++ public/locales/zh/authentication/invite.json | 35 +++++++++++++ public/locales/zh/authentication/login.json | 27 ++++------ public/locales/zh/boards/common.json | 5 ++ public/locales/zh/boards/customize.json | 29 +++++++++++ public/locales/zh/common.json | 4 ++ public/locales/zh/layout/common.json | 6 +-- public/locales/zh/layout/header.json | 34 ++++++++++++ public/locales/zh/layout/manage.json | 32 ++++++++++++ public/locales/zh/manage/boards.json | 44 ++++++++++++++++ public/locales/zh/manage/index.json | 23 ++++++++ public/locales/zh/manage/users.json | 36 +++++++++++++ public/locales/zh/manage/users/create.json | 52 +++++++++++++++++++ public/locales/zh/manage/users/invites.json | 48 +++++++++++++++++ public/locales/zh/modules/calendar.json | 3 -- .../locales/zh/modules/dns-hole-controls.json | 8 ++- public/locales/zh/password-requirements.json | 7 +++ .../zh/settings/customization/access.json | 6 +++ .../zh/settings/customization/general.json | 4 ++ .../customization/page-appearance.json | 5 +- public/locales/zh/tools/docker.json | 32 ++++++++++++ public/locales/zh/user/preferences.json | 48 +++++++++++++++++ public/locales/zh/zod.json | 22 ++++++++ 561 files changed, 12012 insertions(+), 758 deletions(-) create mode 100644 public/locales/da/authentication/invite.json create mode 100644 public/locales/da/boards/common.json create mode 100644 public/locales/da/boards/customize.json create mode 100644 public/locales/da/layout/header.json create mode 100644 public/locales/da/layout/manage.json create mode 100644 public/locales/da/manage/boards.json create mode 100644 public/locales/da/manage/index.json create mode 100644 public/locales/da/manage/users.json create mode 100644 public/locales/da/manage/users/create.json create mode 100644 public/locales/da/manage/users/invites.json create mode 100644 public/locales/da/password-requirements.json create mode 100644 public/locales/da/settings/customization/access.json create mode 100644 public/locales/da/tools/docker.json create mode 100644 public/locales/da/user/preferences.json create mode 100644 public/locales/da/zod.json create mode 100644 public/locales/de/authentication/invite.json create mode 100644 public/locales/de/boards/common.json create mode 100644 public/locales/de/boards/customize.json create mode 100644 public/locales/de/layout/header.json create mode 100644 public/locales/de/layout/manage.json create mode 100644 public/locales/de/manage/boards.json create mode 100644 public/locales/de/manage/index.json create mode 100644 public/locales/de/manage/users.json create mode 100644 public/locales/de/manage/users/create.json create mode 100644 public/locales/de/manage/users/invites.json create mode 100644 public/locales/de/password-requirements.json create mode 100644 public/locales/de/settings/customization/access.json create mode 100644 public/locales/de/tools/docker.json create mode 100644 public/locales/de/user/preferences.json create mode 100644 public/locales/de/zod.json create mode 100644 public/locales/el/authentication/invite.json create mode 100644 public/locales/el/boards/common.json create mode 100644 public/locales/el/boards/customize.json create mode 100644 public/locales/el/layout/header.json create mode 100644 public/locales/el/layout/manage.json create mode 100644 public/locales/el/manage/boards.json create mode 100644 public/locales/el/manage/index.json create mode 100644 public/locales/el/manage/users.json create mode 100644 public/locales/el/manage/users/create.json create mode 100644 public/locales/el/manage/users/invites.json create mode 100644 public/locales/el/password-requirements.json create mode 100644 public/locales/el/settings/customization/access.json create mode 100644 public/locales/el/tools/docker.json create mode 100644 public/locales/el/user/preferences.json create mode 100644 public/locales/el/zod.json create mode 100644 public/locales/es/authentication/invite.json create mode 100644 public/locales/es/boards/common.json create mode 100644 public/locales/es/boards/customize.json create mode 100644 public/locales/es/layout/header.json create mode 100644 public/locales/es/layout/manage.json create mode 100644 public/locales/es/manage/boards.json create mode 100644 public/locales/es/manage/index.json create mode 100644 public/locales/es/manage/users.json create mode 100644 public/locales/es/manage/users/create.json create mode 100644 public/locales/es/manage/users/invites.json create mode 100644 public/locales/es/password-requirements.json create mode 100644 public/locales/es/settings/customization/access.json create mode 100644 public/locales/es/tools/docker.json create mode 100644 public/locales/es/user/preferences.json create mode 100644 public/locales/es/zod.json create mode 100644 public/locales/fr/authentication/invite.json create mode 100644 public/locales/fr/boards/common.json create mode 100644 public/locales/fr/boards/customize.json create mode 100644 public/locales/fr/layout/header.json create mode 100644 public/locales/fr/layout/manage.json create mode 100644 public/locales/fr/manage/boards.json create mode 100644 public/locales/fr/manage/index.json create mode 100644 public/locales/fr/manage/users.json create mode 100644 public/locales/fr/manage/users/create.json create mode 100644 public/locales/fr/manage/users/invites.json create mode 100644 public/locales/fr/password-requirements.json create mode 100644 public/locales/fr/settings/customization/access.json create mode 100644 public/locales/fr/tools/docker.json create mode 100644 public/locales/fr/user/preferences.json create mode 100644 public/locales/fr/zod.json create mode 100644 public/locales/he/authentication/invite.json create mode 100644 public/locales/he/boards/common.json create mode 100644 public/locales/he/boards/customize.json create mode 100644 public/locales/he/layout/header.json create mode 100644 public/locales/he/layout/manage.json create mode 100644 public/locales/he/manage/boards.json create mode 100644 public/locales/he/manage/index.json create mode 100644 public/locales/he/manage/users.json create mode 100644 public/locales/he/manage/users/create.json create mode 100644 public/locales/he/manage/users/invites.json create mode 100644 public/locales/he/password-requirements.json create mode 100644 public/locales/he/settings/customization/access.json create mode 100644 public/locales/he/tools/docker.json create mode 100644 public/locales/he/user/preferences.json create mode 100644 public/locales/he/zod.json create mode 100644 public/locales/hr/authentication/invite.json create mode 100644 public/locales/hr/boards/common.json create mode 100644 public/locales/hr/boards/customize.json create mode 100644 public/locales/hr/layout/header.json create mode 100644 public/locales/hr/layout/manage.json create mode 100644 public/locales/hr/manage/boards.json create mode 100644 public/locales/hr/manage/index.json create mode 100644 public/locales/hr/manage/users.json create mode 100644 public/locales/hr/manage/users/create.json create mode 100644 public/locales/hr/manage/users/invites.json create mode 100644 public/locales/hr/password-requirements.json create mode 100644 public/locales/hr/settings/customization/access.json create mode 100644 public/locales/hr/tools/docker.json create mode 100644 public/locales/hr/user/preferences.json create mode 100644 public/locales/hr/zod.json create mode 100644 public/locales/hu/authentication/invite.json create mode 100644 public/locales/hu/boards/common.json create mode 100644 public/locales/hu/boards/customize.json create mode 100644 public/locales/hu/layout/header.json create mode 100644 public/locales/hu/layout/manage.json create mode 100644 public/locales/hu/manage/boards.json create mode 100644 public/locales/hu/manage/index.json create mode 100644 public/locales/hu/manage/users.json create mode 100644 public/locales/hu/manage/users/create.json create mode 100644 public/locales/hu/manage/users/invites.json create mode 100644 public/locales/hu/password-requirements.json create mode 100644 public/locales/hu/settings/customization/access.json create mode 100644 public/locales/hu/tools/docker.json create mode 100644 public/locales/hu/user/preferences.json create mode 100644 public/locales/hu/zod.json create mode 100644 public/locales/it/authentication/invite.json create mode 100644 public/locales/it/boards/common.json create mode 100644 public/locales/it/boards/customize.json create mode 100644 public/locales/it/layout/header.json create mode 100644 public/locales/it/layout/manage.json create mode 100644 public/locales/it/manage/boards.json create mode 100644 public/locales/it/manage/index.json create mode 100644 public/locales/it/manage/users.json create mode 100644 public/locales/it/manage/users/create.json create mode 100644 public/locales/it/manage/users/invites.json create mode 100644 public/locales/it/password-requirements.json create mode 100644 public/locales/it/settings/customization/access.json create mode 100644 public/locales/it/tools/docker.json create mode 100644 public/locales/it/user/preferences.json create mode 100644 public/locales/it/zod.json create mode 100644 public/locales/ja/authentication/invite.json create mode 100644 public/locales/ja/boards/common.json create mode 100644 public/locales/ja/boards/customize.json create mode 100644 public/locales/ja/layout/header.json create mode 100644 public/locales/ja/layout/manage.json create mode 100644 public/locales/ja/manage/boards.json create mode 100644 public/locales/ja/manage/index.json create mode 100644 public/locales/ja/manage/users.json create mode 100644 public/locales/ja/manage/users/create.json create mode 100644 public/locales/ja/manage/users/invites.json create mode 100644 public/locales/ja/password-requirements.json create mode 100644 public/locales/ja/settings/customization/access.json create mode 100644 public/locales/ja/tools/docker.json create mode 100644 public/locales/ja/user/preferences.json create mode 100644 public/locales/ja/zod.json create mode 100644 public/locales/ko/authentication/invite.json create mode 100644 public/locales/ko/boards/common.json create mode 100644 public/locales/ko/boards/customize.json create mode 100644 public/locales/ko/layout/header.json create mode 100644 public/locales/ko/layout/manage.json create mode 100644 public/locales/ko/manage/boards.json create mode 100644 public/locales/ko/manage/index.json create mode 100644 public/locales/ko/manage/users.json create mode 100644 public/locales/ko/manage/users/create.json create mode 100644 public/locales/ko/manage/users/invites.json create mode 100644 public/locales/ko/password-requirements.json create mode 100644 public/locales/ko/settings/customization/access.json create mode 100644 public/locales/ko/tools/docker.json create mode 100644 public/locales/ko/user/preferences.json create mode 100644 public/locales/ko/zod.json create mode 100644 public/locales/lol/authentication/invite.json create mode 100644 public/locales/lol/boards/common.json create mode 100644 public/locales/lol/boards/customize.json create mode 100644 public/locales/lol/layout/header.json create mode 100644 public/locales/lol/layout/manage.json create mode 100644 public/locales/lol/manage/boards.json create mode 100644 public/locales/lol/manage/index.json create mode 100644 public/locales/lol/manage/users.json create mode 100644 public/locales/lol/manage/users/create.json create mode 100644 public/locales/lol/manage/users/invites.json create mode 100644 public/locales/lol/password-requirements.json create mode 100644 public/locales/lol/settings/customization/access.json create mode 100644 public/locales/lol/tools/docker.json create mode 100644 public/locales/lol/user/preferences.json create mode 100644 public/locales/lol/zod.json create mode 100644 public/locales/lv/authentication/invite.json create mode 100644 public/locales/lv/boards/common.json create mode 100644 public/locales/lv/boards/customize.json create mode 100644 public/locales/lv/layout/header.json create mode 100644 public/locales/lv/layout/manage.json create mode 100644 public/locales/lv/manage/boards.json create mode 100644 public/locales/lv/manage/index.json create mode 100644 public/locales/lv/manage/users.json create mode 100644 public/locales/lv/manage/users/create.json create mode 100644 public/locales/lv/manage/users/invites.json create mode 100644 public/locales/lv/password-requirements.json create mode 100644 public/locales/lv/settings/customization/access.json create mode 100644 public/locales/lv/tools/docker.json create mode 100644 public/locales/lv/user/preferences.json create mode 100644 public/locales/lv/zod.json create mode 100644 public/locales/nl/authentication/invite.json create mode 100644 public/locales/nl/boards/common.json create mode 100644 public/locales/nl/boards/customize.json create mode 100644 public/locales/nl/layout/header.json create mode 100644 public/locales/nl/layout/manage.json create mode 100644 public/locales/nl/manage/boards.json create mode 100644 public/locales/nl/manage/index.json create mode 100644 public/locales/nl/manage/users.json create mode 100644 public/locales/nl/manage/users/create.json create mode 100644 public/locales/nl/manage/users/invites.json create mode 100644 public/locales/nl/password-requirements.json create mode 100644 public/locales/nl/settings/customization/access.json create mode 100644 public/locales/nl/tools/docker.json create mode 100644 public/locales/nl/user/preferences.json create mode 100644 public/locales/nl/zod.json create mode 100644 public/locales/no/authentication/invite.json create mode 100644 public/locales/no/boards/common.json create mode 100644 public/locales/no/boards/customize.json create mode 100644 public/locales/no/layout/header.json create mode 100644 public/locales/no/layout/manage.json create mode 100644 public/locales/no/manage/boards.json create mode 100644 public/locales/no/manage/index.json create mode 100644 public/locales/no/manage/users.json create mode 100644 public/locales/no/manage/users/create.json create mode 100644 public/locales/no/manage/users/invites.json create mode 100644 public/locales/no/password-requirements.json create mode 100644 public/locales/no/settings/customization/access.json create mode 100644 public/locales/no/tools/docker.json create mode 100644 public/locales/no/user/preferences.json create mode 100644 public/locales/no/zod.json create mode 100644 public/locales/pl/authentication/invite.json create mode 100644 public/locales/pl/boards/common.json create mode 100644 public/locales/pl/boards/customize.json create mode 100644 public/locales/pl/layout/header.json create mode 100644 public/locales/pl/layout/manage.json create mode 100644 public/locales/pl/manage/boards.json create mode 100644 public/locales/pl/manage/index.json create mode 100644 public/locales/pl/manage/users.json create mode 100644 public/locales/pl/manage/users/create.json create mode 100644 public/locales/pl/manage/users/invites.json create mode 100644 public/locales/pl/password-requirements.json create mode 100644 public/locales/pl/settings/customization/access.json create mode 100644 public/locales/pl/tools/docker.json create mode 100644 public/locales/pl/user/preferences.json create mode 100644 public/locales/pl/zod.json create mode 100644 public/locales/pt/authentication/invite.json create mode 100644 public/locales/pt/boards/common.json create mode 100644 public/locales/pt/boards/customize.json create mode 100644 public/locales/pt/layout/header.json create mode 100644 public/locales/pt/layout/manage.json create mode 100644 public/locales/pt/manage/boards.json create mode 100644 public/locales/pt/manage/index.json create mode 100644 public/locales/pt/manage/users.json create mode 100644 public/locales/pt/manage/users/create.json create mode 100644 public/locales/pt/manage/users/invites.json create mode 100644 public/locales/pt/password-requirements.json create mode 100644 public/locales/pt/settings/customization/access.json create mode 100644 public/locales/pt/tools/docker.json create mode 100644 public/locales/pt/user/preferences.json create mode 100644 public/locales/pt/zod.json create mode 100644 public/locales/ru/authentication/invite.json create mode 100644 public/locales/ru/boards/common.json create mode 100644 public/locales/ru/boards/customize.json create mode 100644 public/locales/ru/layout/header.json create mode 100644 public/locales/ru/layout/manage.json create mode 100644 public/locales/ru/manage/boards.json create mode 100644 public/locales/ru/manage/index.json create mode 100644 public/locales/ru/manage/users.json create mode 100644 public/locales/ru/manage/users/create.json create mode 100644 public/locales/ru/manage/users/invites.json create mode 100644 public/locales/ru/password-requirements.json create mode 100644 public/locales/ru/settings/customization/access.json create mode 100644 public/locales/ru/tools/docker.json create mode 100644 public/locales/ru/user/preferences.json create mode 100644 public/locales/ru/zod.json create mode 100644 public/locales/sk/authentication/invite.json create mode 100644 public/locales/sk/boards/common.json create mode 100644 public/locales/sk/boards/customize.json create mode 100644 public/locales/sk/layout/header.json create mode 100644 public/locales/sk/layout/manage.json create mode 100644 public/locales/sk/manage/boards.json create mode 100644 public/locales/sk/manage/index.json create mode 100644 public/locales/sk/manage/users.json create mode 100644 public/locales/sk/manage/users/create.json create mode 100644 public/locales/sk/manage/users/invites.json create mode 100644 public/locales/sk/password-requirements.json create mode 100644 public/locales/sk/settings/customization/access.json create mode 100644 public/locales/sk/tools/docker.json create mode 100644 public/locales/sk/user/preferences.json create mode 100644 public/locales/sk/zod.json create mode 100644 public/locales/sl/authentication/invite.json create mode 100644 public/locales/sl/boards/common.json create mode 100644 public/locales/sl/boards/customize.json create mode 100644 public/locales/sl/layout/header.json create mode 100644 public/locales/sl/layout/manage.json create mode 100644 public/locales/sl/manage/boards.json create mode 100644 public/locales/sl/manage/index.json create mode 100644 public/locales/sl/manage/users.json create mode 100644 public/locales/sl/manage/users/create.json create mode 100644 public/locales/sl/manage/users/invites.json create mode 100644 public/locales/sl/password-requirements.json create mode 100644 public/locales/sl/settings/customization/access.json create mode 100644 public/locales/sl/tools/docker.json create mode 100644 public/locales/sl/user/preferences.json create mode 100644 public/locales/sl/zod.json create mode 100644 public/locales/sv/authentication/invite.json create mode 100644 public/locales/sv/boards/common.json create mode 100644 public/locales/sv/boards/customize.json create mode 100644 public/locales/sv/layout/header.json create mode 100644 public/locales/sv/layout/manage.json create mode 100644 public/locales/sv/manage/boards.json create mode 100644 public/locales/sv/manage/index.json create mode 100644 public/locales/sv/manage/users.json create mode 100644 public/locales/sv/manage/users/create.json create mode 100644 public/locales/sv/manage/users/invites.json create mode 100644 public/locales/sv/password-requirements.json create mode 100644 public/locales/sv/settings/customization/access.json create mode 100644 public/locales/sv/tools/docker.json create mode 100644 public/locales/sv/user/preferences.json create mode 100644 public/locales/sv/zod.json create mode 100644 public/locales/tr/authentication/invite.json create mode 100644 public/locales/tr/boards/common.json create mode 100644 public/locales/tr/boards/customize.json create mode 100644 public/locales/tr/layout/header.json create mode 100644 public/locales/tr/layout/manage.json create mode 100644 public/locales/tr/manage/boards.json create mode 100644 public/locales/tr/manage/index.json create mode 100644 public/locales/tr/manage/users.json create mode 100644 public/locales/tr/manage/users/create.json create mode 100644 public/locales/tr/manage/users/invites.json create mode 100644 public/locales/tr/password-requirements.json create mode 100644 public/locales/tr/settings/customization/access.json create mode 100644 public/locales/tr/tools/docker.json create mode 100644 public/locales/tr/user/preferences.json create mode 100644 public/locales/tr/zod.json create mode 100644 public/locales/uk/authentication/invite.json create mode 100644 public/locales/uk/boards/common.json create mode 100644 public/locales/uk/boards/customize.json create mode 100644 public/locales/uk/layout/header.json create mode 100644 public/locales/uk/layout/manage.json create mode 100644 public/locales/uk/manage/boards.json create mode 100644 public/locales/uk/manage/index.json create mode 100644 public/locales/uk/manage/users.json create mode 100644 public/locales/uk/manage/users/create.json create mode 100644 public/locales/uk/manage/users/invites.json create mode 100644 public/locales/uk/password-requirements.json create mode 100644 public/locales/uk/settings/customization/access.json create mode 100644 public/locales/uk/tools/docker.json create mode 100644 public/locales/uk/user/preferences.json create mode 100644 public/locales/uk/zod.json create mode 100644 public/locales/vi/authentication/invite.json create mode 100644 public/locales/vi/boards/common.json create mode 100644 public/locales/vi/boards/customize.json create mode 100644 public/locales/vi/layout/header.json create mode 100644 public/locales/vi/layout/manage.json create mode 100644 public/locales/vi/manage/boards.json create mode 100644 public/locales/vi/manage/index.json create mode 100644 public/locales/vi/manage/users.json create mode 100644 public/locales/vi/manage/users/create.json create mode 100644 public/locales/vi/manage/users/invites.json create mode 100644 public/locales/vi/password-requirements.json create mode 100644 public/locales/vi/settings/customization/access.json create mode 100644 public/locales/vi/tools/docker.json create mode 100644 public/locales/vi/user/preferences.json create mode 100644 public/locales/vi/zod.json create mode 100644 public/locales/zh/authentication/invite.json create mode 100644 public/locales/zh/boards/common.json create mode 100644 public/locales/zh/boards/customize.json create mode 100644 public/locales/zh/layout/header.json create mode 100644 public/locales/zh/layout/manage.json create mode 100644 public/locales/zh/manage/boards.json create mode 100644 public/locales/zh/manage/index.json create mode 100644 public/locales/zh/manage/users.json create mode 100644 public/locales/zh/manage/users/create.json create mode 100644 public/locales/zh/manage/users/invites.json create mode 100644 public/locales/zh/password-requirements.json create mode 100644 public/locales/zh/settings/customization/access.json create mode 100644 public/locales/zh/tools/docker.json create mode 100644 public/locales/zh/user/preferences.json create mode 100644 public/locales/zh/zod.json diff --git a/public/locales/da/authentication/invite.json b/public/locales/da/authentication/invite.json new file mode 100644 index 000000000..2c17f73f2 --- /dev/null +++ b/public/locales/da/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Opret konto", + "title": "Opret konto", + "text": "Angiv venligst dine legitimationsoplysninger nedenfor", + "form": { + "fields": { + "username": { + "label": "Brugernavn" + }, + "password": { + "label": "Adgangskode" + }, + "passwordConfirmation": { + "label": "Bekræft kodeord" + } + }, + "buttons": { + "submit": "Opret konto" + } + }, + "notifications": { + "loading": { + "title": "Opretter konto", + "text": "Vent venligst" + }, + "success": { + "title": "Konto oprettet", + "text": "Din konto er blevet oprettet med succes" + }, + "error": { + "title": "Fejl", + "text": "Noget gik galt, fik følgende fejl: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/da/authentication/login.json b/public/locales/da/authentication/login.json index 8443dd103..c4d0d0812 100644 --- a/public/locales/da/authentication/login.json +++ b/public/locales/da/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Log ind", "title": "Velkommen tilbage!", - "text": "Indtast venligst din adgangskode", + "text": "Indtast venligst dine legitimationsoplysninger", "form": { "fields": { + "username": { + "label": "Brugernavn" + }, "password": { - "label": "Adgangskode", - "placeholder": "Din adgangskode" + "label": "Adgangskode" } }, "buttons": { "submit": "Log ind" - } + }, + "afterLoginRedirection": "Når du er logget ind, bliver du omdirigeret til {{url}}" }, - "notifications": { - "checking": { - "title": "Tjekker din adgangskode", - "message": "Din adgangskode er ved at blive tjekket..." - }, - "correct": { - "title": "Log ind vellykket, omdirigerer..." - }, - "wrong": { - "title": "Kodeordet du tastede ind, var forkert. Prøv venligst igen." - } - } -} + "alert": "Dine legitimationsoplysninger er forkerte, eller denne konto findes ikke. Prøv venligst igen." +} \ No newline at end of file diff --git a/public/locales/da/boards/common.json b/public/locales/da/boards/common.json new file mode 100644 index 000000000..6ce459a52 --- /dev/null +++ b/public/locales/da/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Tilpas board" + } +} \ No newline at end of file diff --git a/public/locales/da/boards/customize.json b/public/locales/da/boards/customize.json new file mode 100644 index 000000000..9d4350bc5 --- /dev/null +++ b/public/locales/da/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Tilpas {{name}} Board", + "pageTitle": "Tilpasning til {{name}} Board", + "backToBoard": "Tilbage til board", + "settings": { + "appearance": { + "primaryColor": "Primær farve", + "secondaryColor": "Sekundær farve" + } + }, + "save": { + "button": "Gem ændringer", + "note": "Pas på, du har ændringer, der ikke er gemt!" + }, + "notifications": { + "pending": { + "title": "Gemmer tilpasning", + "message": "Vent venligst, mens vi gemmer din tilpasning" + }, + "success": { + "title": "Tilpasning gemt", + "message": "Din tilpasning er blevet gemt med succes" + }, + "error": { + "title": "Fejl", + "message": "Kan ikke gemme ændringer" + } + } +} \ No newline at end of file diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 79ace3ae9..36799f36a 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -3,9 +3,13 @@ "about": "Om", "cancel": "Annuller", "close": "Luk", + "back": "Tilbage", "delete": "Slet", "ok": "OK", "edit": "Rediger", + "next": "Næste", + "previous": "Forrige", + "confirm": "Bekræft", "enabled": "Aktiveret", "disabled": "Deaktiveret", "enableAll": "Aktiver alle", diff --git a/public/locales/da/layout/header.json b/public/locales/da/layout/header.json new file mode 100644 index 000000000..9c5bece07 --- /dev/null +++ b/public/locales/da/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Dette er en eksperimentel funktion i Homarr. Rapporter venligst eventuelle problemer på GitHub eller Discord." + }, + "search": { + "label": "Søg", + "engines": { + "web": "Søg efter {{query}} på nettet", + "youtube": "Søg efter {{query}} på YouTube", + "torrent": "Søg efter {{query}} torrents", + "movie": "Søg efter {{query}} på {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Skift tema", + "preferences": "Brugerindstillinger", + "defaultBoard": "Standard dashboard", + "manage": "Administrer", + "about": { + "label": "Om", + "new": "Ny" + }, + "logout": "Log {{username}} ud", + "login": "Log ind" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} resultater for {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/da/layout/manage.json b/public/locales/da/layout/manage.json new file mode 100644 index 000000000..ac7167a82 --- /dev/null +++ b/public/locales/da/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Hjem" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Brugere", + "items": { + "manage": "Administrer", + "invites": "Invitationer" + } + }, + "help": { + "title": "Hjælp", + "items": { + "documentation": "Dokumentation", + "report": "Rapporter et problem / en fejl", + "discord": "Discordfællesskab", + "contribute": "Bidrag!" + } + }, + "tools": { + "title": "Værktøjer", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/manage/boards.json b/public/locales/da/manage/boards.json new file mode 100644 index 000000000..022208f71 --- /dev/null +++ b/public/locales/da/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Kategorier" + }, + "buttons": { + "view": "Se board" + }, + "menu": { + "setAsDefault": "Indstil som din standardboard", + "delete": { + "label": "Slet permanent", + "disabled": "Sletning deaktiveret, fordi ældre Homarr-komponenter ikke tillader sletning af standardkonfigurationen. Sletning vil være mulig i fremtiden." + } + }, + "badges": { + "fileSystem": "Filsystem", + "default": "Standard" + } + }, + "buttons": { + "create": "Opret nyt board" + }, + "modals": { + "delete": { + "title": "Slet board", + "text": "Er du sikker på, at du vil slette dette board? Denne handling kan ikke fortrydes, og dine data vil gå tabt permanent." + }, + "create": { + "title": "Opret et board", + "text": "Navnet kan ikke ændres, efter at et board er blevet oprettet.", + "form": { + "name": { + "label": "Navn" + }, + "submit": "Opret" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/manage/index.json b/public/locales/da/manage/index.json new file mode 100644 index 000000000..5505d9aad --- /dev/null +++ b/public/locales/da/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Administrer", + "hero": { + "title": "Velkommen tilbage, {{username}}", + "fallbackUsername": "Anonym", + "subtitle": "Velkommen til din applikationshub. Organiser, optimer og erobr!" + }, + "quickActions": { + "title": "Hurtige handlinger", + "boards": { + "title": "Dine boards", + "subtitle": "Opret og administrer dine boards" + }, + "inviteUsers": { + "title": "Inviter en ny bruger", + "subtitle": "Opret og send en invitation til registrering" + }, + "manageUsers": { + "title": "Administrér brugere", + "subtitle": "Slet og administrer dine brugere" + } + } +} \ No newline at end of file diff --git a/public/locales/da/manage/users.json b/public/locales/da/manage/users.json new file mode 100644 index 000000000..578b429ed --- /dev/null +++ b/public/locales/da/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Brugere", + "pageTitle": "Administrér brugere", + "text": "Ved hjælp af brugere kan du konfigurere, hvem der kan redigere dine dashboards. Fremtidige versioner af Homarr vil have endnu mere detaljeret kontrol over tilladelser og tavler.", + "buttons": { + "create": "Opret" + }, + "table": { + "header": { + "user": "Bruger" + } + }, + "tooltips": { + "deleteUser": "Slet bruger", + "demoteAdmin": "Degrader administrator", + "promoteToAdmin": "Promover til administrator" + }, + "modals": { + "delete": { + "title": "Slet brugeren {{name}}", + "text": "Er du sikker på, at du vil slette brugeren {{name}}? Dette vil slette data, der er knyttet til denne konto, men ikke dashboards, der er oprettet af denne bruger." + }, + "change-role": { + "promote": { + "title": "Forfrem brugeren {{name}} til administrator", + "text": "Er du sikker på, at du vil promovere brugeren {{name}} til administrator? Dette vil give brugeren adgang til alle ressourcer i din Homarr instans." + }, + "demote": { + "title": "Degrader bruger {{name}} til bruger", + "text": "Er du sikker på, at du vil degradere brugeren {{name}} til bruger? Dette vil fjerne brugerens adgang til alle ressourcer på din Homarr-instans." + }, + "confirm": "Bekræft" + } + }, + "searchDoesntMatch": "Din søgning matcher ikke nogen poster. Juster venligst dit filter." +} \ No newline at end of file diff --git a/public/locales/da/manage/users/create.json b/public/locales/da/manage/users/create.json new file mode 100644 index 000000000..55e87d29f --- /dev/null +++ b/public/locales/da/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Opret bruger", + "steps": { + "account": { + "title": "Første trin", + "text": "Opret konto", + "username": { + "label": "Brugernavn" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Andet trin", + "text": "Adgangskode", + "password": { + "label": "Adgangskode" + } + }, + "finish": { + "title": "Bekræftelse", + "text": "Gem i databasen", + "card": { + "title": "Gennemgå dine input", + "text": "Når du har sendt dine data til databasen, vil brugeren kunne logge ind. Er du sikker på, at du vil gemme denne bruger i databasen og aktivere login?" + }, + "table": { + "header": { + "property": "Egenskaber", + "value": "Værdi", + "username": "Brugernavn", + "email": "E-mail", + "password": "Adgangskode" + }, + "notSet": "Ikke angivet", + "valid": "Gyldig" + }, + "failed": "Brugeroprettelse er mislykkedes: {{error}}" + }, + "completed": { + "alert": { + "title": "Brugeren blev oprettet", + "text": "Brugeren blev oprettet i databasen. De kan nu logge ind." + } + } + }, + "buttons": { + "generateRandomPassword": "Generer tilfældig", + "createAnother": "Opret en anden" + } +} \ No newline at end of file diff --git a/public/locales/da/manage/users/invites.json b/public/locales/da/manage/users/invites.json new file mode 100644 index 000000000..9b9648427 --- /dev/null +++ b/public/locales/da/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Brugerinvitationer", + "pageTitle": "Administrer brugerinvitationer", + "description": "Ved hjælp af invitationer kan du invitere brugere til din Homarr-instans. En invitation vil kun være gyldig i et bestemt tidsrum og kan kun bruges én gang. Udløbsdatoen skal være mellem 5 minutter og 12 måneder ved oprettelsen.", + "button": { + "createInvite": "Opret invitation", + "deleteInvite": "Slet invitation" + }, + "table": { + "header": { + "id": "ID", + "creator": "Skaber", + "expires": "Udløber", + "action": "Handlinger" + }, + "data": { + "expiresAt": "udløb {{at}}", + "expiresIn": "i {{in}}" + } + }, + "modals": { + "create": { + "title": "Opret Invitation", + "description": "Efter udløb vil en invitation ikke længere være gyldig, og modtageren af invitationen vil ikke være i stand til at oprette en konto.", + "form": { + "expires": "Udløbsdato", + "submit": "Opret" + } + }, + "copy": { + "title": "Kopier invitation", + "description": "Din invitation er blevet genereret. Når denne modal lukker, vil du ikke længere kunne kopiere dette link. Hvis du ikke længere ønsker at invitere den pågældende person, kan du til enhver tid slette denne invitation.", + "invitationLink": "Invitationslink", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopier og afvis" + } + }, + "delete": { + "title": "Slet invitation", + "description": "Er du sikker på, at du vil slette denne invitation? Brugere med dette link vil ikke længere kunne oprette en konto ved hjælp af dette link." + } + }, + "noInvites": "Der er endnu ingen invitationer." +} \ No newline at end of file diff --git a/public/locales/da/modules/calendar.json b/public/locales/da/modules/calendar.json index dd63915bc..994fc833a 100644 --- a/public/locales/da/modules/calendar.json +++ b/public/locales/da/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Brug Sonarr v4 API" }, - "sundayStart": { - "label": "Søndag første ugedag" - }, "radarrReleaseType": { "label": "Radarr udgivelsestype", "data": { diff --git a/public/locales/da/modules/dns-hole-controls.json b/public/locales/da/modules/dns-hole-controls.json index c97b4b444..6e491e671 100644 --- a/public/locales/da/modules/dns-hole-controls.json +++ b/public/locales/da/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS hole kontrol", - "description": "Kontroller PiHole eller AdGuard fra dit dashboard" + "description": "Kontroller PiHole eller AdGuard fra dit dashboard", + "settings": { + "title": "Indstillinger for DNS hole", + "showToggleAllButtons": { + "label": "Vis 'Aktiver/deaktiver alle'-knapper" + } + } } } \ No newline at end of file diff --git a/public/locales/da/password-requirements.json b/public/locales/da/password-requirements.json new file mode 100644 index 000000000..d35675dc3 --- /dev/null +++ b/public/locales/da/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inkluderer nummer", + "lowercase": "Inkluderer små bogstaver", + "uppercase": "Inkluderer store bogstaver", + "special": "Inkluderer specialtegn", + "length": "Indeholder mindst {{count}} tegn" +} \ No newline at end of file diff --git a/public/locales/da/settings/customization/access.json b/public/locales/da/settings/customization/access.json new file mode 100644 index 000000000..0dd8fcd2d --- /dev/null +++ b/public/locales/da/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Tillad anonym", + "description": "Tillad brugere, der ikke er logget ind, at se dit board" + } +} \ No newline at end of file diff --git a/public/locales/da/settings/customization/general.json b/public/locales/da/settings/customization/general.json index 37c029979..56160fe2b 100644 --- a/public/locales/da/settings/customization/general.json +++ b/public/locales/da/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Hjælpefunktioner", "description": "Konfigurer Homarr for deaktiverede og handicappede brugere" + }, + "access": { + "name": "Adgang", + "description": "Konfigurer, hvem der har adgang til dit board" } } } diff --git a/public/locales/da/settings/customization/page-appearance.json b/public/locales/da/settings/customization/page-appearance.json index bd66eef79..6df6a8617 100644 --- a/public/locales/da/settings/customization/page-appearance.json +++ b/public/locales/da/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Yderligere, tilpasse dit dashboard ved hjælp af CSS, anbefales kun til erfarne brugere", "placeholder": "Brugerdefineret CSS vil blive anvendt sidst", "applying": "Anvender CSS..." - }, - "buttons": { - "submit": "Indsend" } -} +} \ No newline at end of file diff --git a/public/locales/da/tools/docker.json b/public/locales/da/tools/docker.json new file mode 100644 index 000000000..4ff6d913a --- /dev/null +++ b/public/locales/da/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Din Homarr-instans har ikke Docker konfigureret, eller den har fejlet i at hente containere. Se i dokumentationen, hvordan du sætter integrationen op." + } + }, + "modals": { + "selectBoard": { + "title": "Vælg et board", + "text": "Vælg det board, hvor du vil tilføje applikationer til de valgte Docker-containere.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Tilføj apps" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Tilføjede apps til board", + "message": "Apps til de valgte Docker-containere er blevet tilføjet til boardet." + }, + "error": { + "title": "Kunne ikke tilføje apps til board", + "message": "Apps til de valgte Docker-containere kunne ikke føjes til boardet." + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/user/preferences.json b/public/locales/da/user/preferences.json new file mode 100644 index 000000000..9769c5f14 --- /dev/null +++ b/public/locales/da/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Indstillinger", + "pageTitle": "Dine indstillinger", + "boards": { + "defaultBoard": { + "label": "Standard board" + } + }, + "accessibility": { + "title": "Hjælpefunktioner", + "disablePulse": { + "label": "Deaktiver ping-puls", + "description": "Som standard vil ping-indikatorerne i Homarr pulsere. Det kan være irriterende. Denne skyder vil deaktivere animationen" + }, + "replaceIconsWithDots": { + "label": "Udskift ping-prikker med ikoner", + "description": "For farveblinde brugere kan ping-prikker være uigenkendelige. Dette vil erstatte indikatorer med ikoner" + } + }, + "localization": { + "language": { + "label": "Sprog" + }, + "firstDayOfWeek": { + "label": "Første ugedag", + "options": { + "monday": "Mandag", + "saturday": "Lørdag", + "sunday": "Søndag" + } + } + }, + "searchEngine": { + "title": "Søgemaskine", + "custom": "Brugerdefineret", + "newTab": { + "label": "Åben søgeresultater i en ny fane" + }, + "autoFocus": { + "label": "Fokuser søgefeltet, når siden indlæses.", + "description": "Dette vil automatisk fokusere søgefeltet, når du navigerer til board sider. Det virker kun på desktop-enheder." + }, + "template": { + "label": "Forespørgsels URL", + "description": "Brug %s som pladsholder for forespørgslen" + } + } +} \ No newline at end of file diff --git a/public/locales/da/zod.json b/public/locales/da/zod.json new file mode 100644 index 000000000..79799bdee --- /dev/null +++ b/public/locales/da/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dette felt er ugyldigt", + "required": "Dette felt er påkrævet", + "string": { + "startsWith": "Dette felt skal starte med {{startsWith}}", + "endsWith": "Dette felt skal slutte med {{endsWith}}", + "includes": "Dette felt skal indeholde {{includes}}" + }, + "tooSmall": { + "string": "Dette felt skal være mindst {{minimum}} tegn langt", + "number": "Dette felt skal være større end eller lig med {{minimum}}" + }, + "tooBig": { + "string": "Dette felt må højst være på {{maximum}} tegn", + "number": "Dette felt skal være mindre end eller lig med {{maximum}}" + }, + "custom": { + "passwordMatch": "Adgangskoderne skal stemme overens" + } + } +} \ No newline at end of file diff --git a/public/locales/de/authentication/invite.json b/public/locales/de/authentication/invite.json new file mode 100644 index 000000000..3bb5bdbe2 --- /dev/null +++ b/public/locales/de/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Account erstellen", + "title": "Account erstellen", + "text": "Bitte geben Sie Ihre Anmeldedaten an", + "form": { + "fields": { + "username": { + "label": "Benutzername" + }, + "password": { + "label": "Passwort" + }, + "passwordConfirmation": { + "label": "Passwort bestätigen" + } + }, + "buttons": { + "submit": "Account erstellen" + } + }, + "notifications": { + "loading": { + "title": "Account wird erstellt", + "text": "Bitte warten" + }, + "success": { + "title": "Account erstellt", + "text": "Ihr Account wurde erfolgreich erstellt" + }, + "error": { + "title": "Fehler", + "text": "Etwas ist schiefgelaufen. Folgender Fehler ist aufgetreten: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/de/authentication/login.json b/public/locales/de/authentication/login.json index 72e0156d5..368b1c0b0 100644 --- a/public/locales/de/authentication/login.json +++ b/public/locales/de/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Anmelden", "title": "Willkommen zurück!", - "text": "Bitte geben Sie Ihr Kennwort ein", + "text": "Bitte geben Sie Ihre Anmeldedaten ein", "form": { "fields": { + "username": { + "label": "Benutzername" + }, "password": { - "label": "Passwort", - "placeholder": "Ihr Passwort" + "label": "Passwort" } }, "buttons": { "submit": "Anmelden" - } + }, + "afterLoginRedirection": "Nach der Anmeldung werden Sie zu {{url}} weitergeleitet" }, - "notifications": { - "checking": { - "title": "Ihr Passwort wird überprüft", - "message": "Ihr Passwort wird geprüft..." - }, - "correct": { - "title": "Anmeldung erfolgreich, Weiterleitung..." - }, - "wrong": { - "title": "Das von dir eingegebene Passwort ist nicht korrekt. Bitte versuche es noch mal." - } - } -} + "alert": "Ihre Anmeldedaten sind falsch oder dieses Konto existiert nicht. Bitte versuchen Sie es erneut." +} \ No newline at end of file diff --git a/public/locales/de/boards/common.json b/public/locales/de/boards/common.json new file mode 100644 index 000000000..1731c5450 --- /dev/null +++ b/public/locales/de/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Board anpassen" + } +} \ No newline at end of file diff --git a/public/locales/de/boards/customize.json b/public/locales/de/boards/customize.json new file mode 100644 index 000000000..3d3c485d9 --- /dev/null +++ b/public/locales/de/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} Board anpassen", + "pageTitle": "Anpassungen für {{name}} Board", + "backToBoard": "Zurück zum Board", + "settings": { + "appearance": { + "primaryColor": "Primärfarbe", + "secondaryColor": "Sekundärfarbe" + } + }, + "save": { + "button": "Änderungen speichern", + "note": "Vorsicht, Sie haben ungespeicherte Änderungen!" + }, + "notifications": { + "pending": { + "title": "Anpassungen werden gespeichert", + "message": "Bitte warten Sie, während wir Ihre Anpassungen speichern" + }, + "success": { + "title": "Anpassungen gespeichert", + "message": "Ihre Anpassungen wurden erfolgreich gespeichert" + }, + "error": { + "title": "Fehler", + "message": "Ihre Anpassungen konnten nicht gespeichert werden" + } + } +} \ No newline at end of file diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 796572b08..1aeeb9ede 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -3,9 +3,13 @@ "about": "Über", "cancel": "Abbrechen", "close": "Schließen", + "back": "Zurück", "delete": "Löschen", "ok": "OK", "edit": "Bearbeiten", + "next": "Weiter", + "previous": "Zurück", + "confirm": "Bestätigen", "enabled": "Aktiviert", "disabled": "Deaktiviert", "enableAll": "Alle aktivieren", diff --git a/public/locales/de/layout/header.json b/public/locales/de/layout/header.json new file mode 100644 index 000000000..667c722ae --- /dev/null +++ b/public/locales/de/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Dies ist eine experimentelle Funktion von Homarr. Bitte melde Probleme auf GitHub oder Discord." + }, + "search": { + "label": "Suchen", + "engines": { + "web": "Suche nach {{query}} im Internet", + "youtube": "Suche nach {{query}} auf YouTube", + "torrent": "Suche nach {{query}} torrents", + "movie": "Suche nach {{query}} auf {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Design wechseln", + "preferences": "Benutzereinstellungen", + "defaultBoard": "Standard-Dashboard", + "manage": "Verwalten", + "about": { + "label": "Über", + "new": "Neu" + }, + "logout": "{{username}} abmelden", + "login": "Anmelden" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Die ersten {{count}} Ergebnisse für {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/de/layout/manage.json b/public/locales/de/layout/manage.json new file mode 100644 index 000000000..df5158013 --- /dev/null +++ b/public/locales/de/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Startseite" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Benutzer", + "items": { + "manage": "Verwalten", + "invites": "Einladungen" + } + }, + "help": { + "title": "Hilfe", + "items": { + "documentation": "Dokumentation", + "report": "Ein Problem / einen Fehler melden", + "discord": "Community Discord", + "contribute": "Mitwirken" + } + }, + "tools": { + "title": "Werkzeuge", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/manage/boards.json b/public/locales/de/manage/boards.json new file mode 100644 index 000000000..e0d919854 --- /dev/null +++ b/public/locales/de/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Kategorien" + }, + "buttons": { + "view": "Board anzeigen" + }, + "menu": { + "setAsDefault": "Als Standard-Board festlegen", + "delete": { + "label": "Dauerhaft löschen", + "disabled": "Ein Löschen wurde deaktiviert, da ältere Homarr-Komponenten das Löschen der Standardkonfiguration nicht erlauben. Die Löschung wird in Zukunft möglich sein." + } + }, + "badges": { + "fileSystem": "Dateisystem", + "default": "Standard" + } + }, + "buttons": { + "create": "Neues Board erstellen" + }, + "modals": { + "delete": { + "title": "Board löschen", + "text": "Sind Sie sicher, dass Sie dieses Board löschen wollen? Diese Aktion kann nicht rückgängig gemacht werden und Ihre Daten gehen dauerhaft verloren." + }, + "create": { + "title": "Board erstellen", + "text": "Der Name kann nicht mehr geändert werden, nachdem ein Board erstellt wurde.", + "form": { + "name": { + "label": "Name" + }, + "submit": "Erstellen" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/manage/index.json b/public/locales/de/manage/index.json new file mode 100644 index 000000000..41b962445 --- /dev/null +++ b/public/locales/de/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Verwalten", + "hero": { + "title": "Willkommen zurück, {{username}}", + "fallbackUsername": "Anonym", + "subtitle": "Willkommen bei Ihrem Application Hub. Organisieren, Optimieren und Erobern!" + }, + "quickActions": { + "title": "Quick Actions", + "boards": { + "title": "Deine Boards", + "subtitle": "Erstellen und verwalten Sie Ihre Boards" + }, + "inviteUsers": { + "title": "Einen neuen Benutzer einladen", + "subtitle": "Erstellen und versenden Sie eine Einladung zur Registrierung" + }, + "manageUsers": { + "title": "Verwaltung von Benutzern", + "subtitle": "Löschen und Verwalten Ihrer Benutzer" + } + } +} \ No newline at end of file diff --git a/public/locales/de/manage/users.json b/public/locales/de/manage/users.json new file mode 100644 index 000000000..8e104a643 --- /dev/null +++ b/public/locales/de/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Benutzer", + "pageTitle": "Verwaltung von Benutzern", + "text": "Mit Benutzern können Sie konfigurieren, wer Ihre Dashboards bearbeiten kann. Zukünftige Versionen von Homarr werden eine noch detailliertere Kontrolle über Berechtigungen und Boards haben.", + "buttons": { + "create": "Erstellen" + }, + "table": { + "header": { + "user": "Benutzer" + } + }, + "tooltips": { + "deleteUser": "Benutzer löschen", + "demoteAdmin": "Administrator degradieren", + "promoteToAdmin": "Zum Administrator befördern" + }, + "modals": { + "delete": { + "title": "Benutzer \"{{name}}\" löschen", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} löschen möchten? Dadurch werden die mit diesem Konto verbundenen Daten gelöscht, nicht aber die von diesem Benutzer erstellten Dashboards." + }, + "change-role": { + "promote": { + "title": "Benutzer {{name}} zum Administrator ernennen", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Admin befördern wollen? Dadurch erhält der Benutzer Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz." + }, + "demote": { + "title": "Benutzer {{name}} zum Benutzer degradieren", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Benutzer degradieren wollen? Dadurch wird dem Benutzer der Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz entzogen." + }, + "confirm": "Bestätigen" + } + }, + "searchDoesntMatch": "Ihre Suche ergab keine Treffer. Bitte passen Sie Ihren Filter an." +} \ No newline at end of file diff --git a/public/locales/de/manage/users/create.json b/public/locales/de/manage/users/create.json new file mode 100644 index 000000000..2dfc8cfd2 --- /dev/null +++ b/public/locales/de/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Benutzer erstellen", + "steps": { + "account": { + "title": "Erster Schritt", + "text": "Account erstellen", + "username": { + "label": "Benutzername" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Zweiter Schritt", + "text": "Passwort", + "password": { + "label": "Passwort" + } + }, + "finish": { + "title": "Bestätigung", + "text": "In Datenbank speichern", + "card": { + "title": "Überprüfen Sie Ihre Eingaben", + "text": "Nachdem Sie Ihre Daten an die Datenbank übermittelt haben, kann sich der Benutzer anmelden. Sind Sie sicher, dass Sie diesen Benutzer in der Datenbank speichern und die Anmeldung aktivieren wollen?" + }, + "table": { + "header": { + "property": "Eigenschaft", + "value": "Wert", + "username": "Benutzername", + "email": "E-Mail", + "password": "Passwort" + }, + "notSet": "Nicht festgelegt", + "valid": "Gültig" + }, + "failed": "Die Erstellung eines Benutzers ist fehlgeschlagen: {{error}}" + }, + "completed": { + "alert": { + "title": "Benutzer wurde erstellt", + "text": "Der Benutzer wurde in der Datenbank angelegt. Er kann sich nun anmelden." + } + } + }, + "buttons": { + "generateRandomPassword": "Zufällig generieren", + "createAnother": "Weiteren erstellen" + } +} \ No newline at end of file diff --git a/public/locales/de/manage/users/invites.json b/public/locales/de/manage/users/invites.json new file mode 100644 index 000000000..0c7ac8665 --- /dev/null +++ b/public/locales/de/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Benutzereinladungen", + "pageTitle": "Verwalten von Benutzereinladungen", + "description": "Mit Einladungen können Sie Benutzer zu Ihrer Homarr-Instanz einladen. Eine Einladung ist nur für eine bestimmte Zeitspanne gültig und kann nur einmal verwendet werden. Die Gültigkeitsdauer muss bei der Erstellung zwischen 5 Minuten und 12 Monaten liegen.", + "button": { + "createInvite": "Einladung erstellen", + "deleteInvite": "Einladung löschen" + }, + "table": { + "header": { + "id": "ID", + "creator": "Ersteller", + "expires": "Endet", + "action": "Aktivitäten" + }, + "data": { + "expiresAt": "Abgelaufen {{at}}", + "expiresIn": "in {{in}}" + } + }, + "modals": { + "create": { + "title": "Einladung erstellen", + "description": "Nach Ablauf der Frist ist eine Einladung nicht mehr gültig und der Empfänger der Einladung kann kein Konto erstellen.", + "form": { + "expires": "Ablaufdatum", + "submit": "Erstellen" + } + }, + "copy": { + "title": "Einladung kopieren", + "description": "Ihre Einladung wurde erstellt. Nachdem dieses Modal geschlossen wurde, können Sie diesen Link nicht mehr kopieren. Wenn Sie die besagte Person nicht mehr einladen möchten, können Sie diese Einladung jederzeit löschen.", + "invitationLink": "Link zur Einladung", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopieren & Verwerfen" + } + }, + "delete": { + "title": "Einladung löschen", + "description": "Sind Sie sicher, dass Sie diese Einladung löschen möchten? Benutzer mit diesem Link können dann kein Konto mehr über diesen Link erstellen." + } + }, + "noInvites": "Es liegen noch keine Einladungen vor." +} \ No newline at end of file diff --git a/public/locales/de/modules/calendar.json b/public/locales/de/modules/calendar.json index 6a861d304..f6274b57c 100644 --- a/public/locales/de/modules/calendar.json +++ b/public/locales/de/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Sonarr v4 API verwenden" }, - "sundayStart": { - "label": "Wochenbeginn am Sonntag" - }, "radarrReleaseType": { "label": "Radarr Veröffentlichungs Typ", "data": { diff --git a/public/locales/de/modules/dns-hole-controls.json b/public/locales/de/modules/dns-hole-controls.json index 512267204..5e585ad72 100644 --- a/public/locales/de/modules/dns-hole-controls.json +++ b/public/locales/de/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS-Hole Steuerung", - "description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus" + "description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus", + "settings": { + "title": "Einstellungen für DNS-Kontrollen", + "showToggleAllButtons": { + "label": "Schaltflächen \"Alle aktivieren/deaktivieren\" anzeigen" + } + } } } \ No newline at end of file diff --git a/public/locales/de/password-requirements.json b/public/locales/de/password-requirements.json new file mode 100644 index 000000000..305484c53 --- /dev/null +++ b/public/locales/de/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Enthält Ziffern", + "lowercase": "Enthält Kleinbuchstaben", + "uppercase": "Enthält Großbuchstaben", + "special": "Enthält Sonderzeichen", + "length": "Enthält mindestens {{count}} Zeichen" +} \ No newline at end of file diff --git a/public/locales/de/settings/customization/access.json b/public/locales/de/settings/customization/access.json new file mode 100644 index 000000000..5e31bc32e --- /dev/null +++ b/public/locales/de/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonyme zulassen", + "description": "Benutzern die nicht eingeloggt sind, erlauben, Ihr Board anzusehen" + } +} \ No newline at end of file diff --git a/public/locales/de/settings/customization/general.json b/public/locales/de/settings/customization/general.json index 303d73d13..9b785be0c 100644 --- a/public/locales/de/settings/customization/general.json +++ b/public/locales/de/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Barrierefreiheit", "description": "Homarr für behinderte und gehandicapte Benutzer einrichten" + }, + "access": { + "name": "Zugriff", + "description": "Konfigurieren Sie, wer Zugriff auf Ihr Board hat" } } } diff --git a/public/locales/de/settings/customization/page-appearance.json b/public/locales/de/settings/customization/page-appearance.json index 123252c7c..b67918dac 100644 --- a/public/locales/de/settings/customization/page-appearance.json +++ b/public/locales/de/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Außerdem können Sie Ihr Dashboard mittels CSS anpassen, dies wird nur für erfahrene Benutzer empfohlen", "placeholder": "Benutzerdefiniertes CSS wird zuletzt angewendet", "applying": "CSS wird übernommen..." - }, - "buttons": { - "submit": "Absenden" } -} +} \ No newline at end of file diff --git a/public/locales/de/tools/docker.json b/public/locales/de/tools/docker.json new file mode 100644 index 000000000..622947e1f --- /dev/null +++ b/public/locales/de/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Auf Ihrer Homarr-Instanz ist Docker nicht konfiguriert oder es ist nicht möglich, Container zu erkennen. Bitte lesen Sie in der Dokumentation nach, wie Sie diese Integration einrichten können." + } + }, + "modals": { + "selectBoard": { + "title": "Board auswählen", + "text": "Wählen Sie das Board, dem Sie die Anwendungen für die ausgewählten Docker-Container hinzufügen möchten.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Apps hinzufügen" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Anwendungen zum Board hinzugefügt", + "message": "Die Anwendungen für die ausgewählten Docker-Container wurden dem Board hinzugefügt." + }, + "error": { + "title": "Anwendungen konnten nicht zum Board hinzugefügt werden", + "message": "Die Anwendungen für die ausgewählten Docker-Container konnten dem Board nicht hinzugefügt werden." + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/user/preferences.json b/public/locales/de/user/preferences.json new file mode 100644 index 000000000..8f1b9573c --- /dev/null +++ b/public/locales/de/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Einstellungen", + "pageTitle": "Ihre Einstellungen", + "boards": { + "defaultBoard": { + "label": "Standard-Board" + } + }, + "accessibility": { + "title": "Barrierefreiheit", + "disablePulse": { + "label": "Ping-Puls deaktivieren", + "description": "Standardmäßig pulsieren die Ping-Indikatoren in Homarr. Dies kann irritierend sein. Mit diesem Regler kann diese Animation deaktiviert werden" + }, + "replaceIconsWithDots": { + "label": "Ping Punkte mit Icons ersetzen", + "description": "Für farbenblinde Benutzer können Ping-Punkte nicht erkennbar sein. Dies ersetzt Indikatoren durch Icons" + } + }, + "localization": { + "language": { + "label": "Sprache" + }, + "firstDayOfWeek": { + "label": "Erster Tag der Woche", + "options": { + "monday": "Montag", + "saturday": "Samstag", + "sunday": "Sonntag" + } + } + }, + "searchEngine": { + "title": "Suchmaschine", + "custom": "Benutzerdefiniert", + "newTab": { + "label": "Suchergebnisse in neuem Tab öffnen" + }, + "autoFocus": { + "label": "Suchleiste beim Laden der Seite fokussieren.", + "description": "Dadurch wird die Suchleiste automatisch fokussiert, wenn Sie auf den Seiten des Boards navigieren. Dies funktioniert nur auf Desktop-Geräten." + }, + "template": { + "label": "Suchanfrage URL", + "description": "Verwenden Sie %s als Platzhalter für die Suchanfrage" + } + } +} \ No newline at end of file diff --git a/public/locales/de/zod.json b/public/locales/de/zod.json new file mode 100644 index 000000000..4f5b08ba1 --- /dev/null +++ b/public/locales/de/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dieses Feld ist ungültig", + "required": "Dieses Feld ist erforderlich", + "string": { + "startsWith": "Dieses Feld muss mit {{startsWith}} beginnen", + "endsWith": "Dieses Feld muss mit {{endsWith}} enden", + "includes": "Dieses Feld muss {{includes}} beinhalten" + }, + "tooSmall": { + "string": "Dieses Feld muss mindestens {{minimum}} Zeichen lang sein", + "number": "Dieses Feld muss größer oder gleich {{minimum}} sein" + }, + "tooBig": { + "string": "Dieses Feld muss mindestens {{maximum}} Zeichen lang sein", + "number": "Dieses Feld muss größer oder gleich {{maximum}} sein" + }, + "custom": { + "passwordMatch": "Die Passwörter müssen übereinstimmen" + } + } +} \ No newline at end of file diff --git a/public/locales/el/authentication/invite.json b/public/locales/el/authentication/invite.json new file mode 100644 index 000000000..3daebb90d --- /dev/null +++ b/public/locales/el/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Όνομα Χρήστη" + }, + "password": { + "label": "Κωδικός" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Σφάλμα", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/el/authentication/login.json b/public/locales/el/authentication/login.json index a3d52ba4d..bc6257e63 100644 --- a/public/locales/el/authentication/login.json +++ b/public/locales/el/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Καλώς ήρθατε!", - "text": "Παρακαλώ εισάγετε τον κωδικό σας", + "text": "", "form": { "fields": { + "username": { + "label": "Όνομα Χρήστη" + }, "password": { - "label": "Κωδικός", - "placeholder": "Ο κωδικός σας" + "label": "Κωδικός" } }, "buttons": { "submit": "Σύνδεση" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Έλεγχος κωδικού πρόσβασης", - "message": "Ο κωδικός πρόσβασής σας ελέγχεται..." - }, - "correct": { - "title": "Σύνδεση επιτυχής, ανακατεύθυνση..." - }, - "wrong": { - "title": "Ο κωδικός που εισαγάγατε είναι εσφαλμένος. Προσπαθήστε ξανά." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/el/boards/common.json b/public/locales/el/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/el/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/el/boards/customize.json b/public/locales/el/boards/customize.json new file mode 100644 index 000000000..cf7880317 --- /dev/null +++ b/public/locales/el/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Σφάλμα", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/el/common.json b/public/locales/el/common.json index c0eaa2b53..fed7fab4d 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -3,9 +3,13 @@ "about": "Σχετικά", "cancel": "Ακύρωση", "close": "Κλείσιμο", + "back": "", "delete": "Διαγραφή", "ok": "ΟΚ", "edit": "Επεξεργασία", + "next": "", + "previous": "", + "confirm": "Επιβεβαίωση", "enabled": "Ενεργοποιημένο", "disabled": "Απενεργοποιημένο", "enableAll": "Ενεργοποίηση όλων", diff --git a/public/locales/el/layout/header.json b/public/locales/el/layout/header.json new file mode 100644 index 000000000..7f911ef5b --- /dev/null +++ b/public/locales/el/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Σχετικά", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/el/layout/manage.json b/public/locales/el/layout/manage.json new file mode 100644 index 000000000..e697aaaad --- /dev/null +++ b/public/locales/el/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "Τεκμηρίωση", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/manage/boards.json b/public/locales/el/manage/boards.json new file mode 100644 index 000000000..00e1723ef --- /dev/null +++ b/public/locales/el/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Εφαρμογές", + "widgets": "Widgets", + "categories": "Κατηγορίες" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Όνομα" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/manage/index.json b/public/locales/el/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/el/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/el/manage/users.json b/public/locales/el/manage/users.json new file mode 100644 index 000000000..da017c3d0 --- /dev/null +++ b/public/locales/el/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Χρήστης" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Επιβεβαίωση" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/el/manage/users/create.json b/public/locales/el/manage/users/create.json new file mode 100644 index 000000000..e5c7960ff --- /dev/null +++ b/public/locales/el/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Όνομα Χρήστη" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Κωδικός", + "password": { + "label": "Κωδικός" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Όνομα Χρήστη", + "email": "", + "password": "Κωδικός" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/el/manage/users/invites.json b/public/locales/el/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/el/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/el/modules/calendar.json b/public/locales/el/modules/calendar.json index 89067bed6..b217127c3 100644 --- a/public/locales/el/modules/calendar.json +++ b/public/locales/el/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Χρήση του API Sonarr v4" }, - "sundayStart": { - "label": "Ξεκινήστε την εβδομάδα από την Κυριακή" - }, "radarrReleaseType": { "label": "Τύπος κυκλοφορίας Radarr", "data": { @@ -22,7 +19,7 @@ "label": "Απόκρυψη εργάσιμων" }, "showUnmonitored": { - "label": "" + "label": "Εμφάνιση αντικειμένων που δεν παρακολουθούνται" }, "fontSize": { "label": "Μέγεθος γραμματοσειράς", diff --git a/public/locales/el/modules/dns-hole-controls.json b/public/locales/el/modules/dns-hole-controls.json index 364ee4c06..86842377b 100644 --- a/public/locales/el/modules/dns-hole-controls.json +++ b/public/locales/el/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Στοιχεία ελέγχου DNS hole", - "description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας" + "description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας", + "settings": { + "title": "Ρυθμίσεις ελέγχου DNS hole", + "showToggleAllButtons": { + "label": "Εμφάνιση Κουμπιών 'Ενεργοποίηση/Απενεργοποίηση Όλων'" + } + } } } \ No newline at end of file diff --git a/public/locales/el/password-requirements.json b/public/locales/el/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/el/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/el/settings/customization/access.json b/public/locales/el/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/el/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/el/settings/customization/general.json b/public/locales/el/settings/customization/general.json index 1874010d1..d8970542e 100644 --- a/public/locales/el/settings/customization/general.json +++ b/public/locales/el/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Προσβασιμότητα", "description": "Διαμόρφωση του Homarr για χρήστες με αναπηρία και άτομα με ειδικές ανάγκες" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/el/settings/customization/page-appearance.json b/public/locales/el/settings/customization/page-appearance.json index c1339f472..7be2dfb8f 100644 --- a/public/locales/el/settings/customization/page-appearance.json +++ b/public/locales/el/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Περαιτέρω, προσαρμόστε τον πίνακα ελέγχου σας χρησιμοποιώντας CSS, συνιστάται μόνο για έμπειρους χρήστες", "placeholder": "Το προσαρμοσμένο CSS θα εφαρμοστεί τελευταίο", "applying": "Εφαρμογή CSS..." - }, - "buttons": { - "submit": "Υποβολή" } -} +} \ No newline at end of file diff --git a/public/locales/el/tools/docker.json b/public/locales/el/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/el/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/user/preferences.json b/public/locales/el/user/preferences.json new file mode 100644 index 000000000..d6a1d970a --- /dev/null +++ b/public/locales/el/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Προσβασιμότητα", + "disablePulse": { + "label": "Απενεργοποίηση παλμού ping", + "description": "Από προεπιλογή, οι δείκτες ping στο Homarr θα πάλλονται. Αυτό μπορεί να είναι ενοχλητικό. Αυτή η ρύθμιση θα απενεργοποιήσει το παλλόμενο εφέ" + }, + "replaceIconsWithDots": { + "label": "Αντικαταστήστε τις τελείες ping με εικονίδια", + "description": "Για τους χρήστες με αχρωματοψία, οι κουκκίδες ping μπορεί να μην είναι αναγνωρίσιμες. Αυτό θα αντικαταστήσει τις ενδείξεις με εικονίδια" + } + }, + "localization": { + "language": { + "label": "Γλώσσα" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Μηχανή αναζήτησης", + "custom": "Προσαρμοσμένη", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Ερώτημα URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/el/zod.json b/public/locales/el/zod.json new file mode 100644 index 000000000..3abe6cbd8 --- /dev/null +++ b/public/locales/el/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "Αυτό το πεδίο είναι υποχρεωτικό", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/es/authentication/invite.json b/public/locales/es/authentication/invite.json new file mode 100644 index 000000000..ae924564d --- /dev/null +++ b/public/locales/es/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Crear Cuenta", + "title": "Crear Cuenta", + "text": "Por favor, define tus credenciales abajo", + "form": { + "fields": { + "username": { + "label": "Nombre de usuario" + }, + "password": { + "label": "Contraseña" + }, + "passwordConfirmation": { + "label": "Confirmar contraseña" + } + }, + "buttons": { + "submit": "Crear cuenta" + } + }, + "notifications": { + "loading": { + "title": "Creando cuenta", + "text": "Por favor, espera" + }, + "success": { + "title": "Cuenta creada", + "text": "Tu cuenta ha sido creada correctamente" + }, + "error": { + "title": "Error", + "text": "Algo salió mal, se obtuvo el siguiente error: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/es/authentication/login.json b/public/locales/es/authentication/login.json index ef05ed3b2..c15a40531 100644 --- a/public/locales/es/authentication/login.json +++ b/public/locales/es/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Iniciar sesión", "title": "¡Bienvenido/a otra vez!", - "text": "Por favor, introduce tu contraseña", + "text": "Por favor, introduce tus credenciales", "form": { "fields": { + "username": { + "label": "Nombre de usuario" + }, "password": { - "label": "Contraseña", - "placeholder": "Tu contraseña" + "label": "Contraseña" } }, "buttons": { "submit": "Iniciar sesión" - } + }, + "afterLoginRedirection": "Después de iniciar sesión, serás redireccionado a {{url}}" }, - "notifications": { - "checking": { - "title": "Comprobando tu contraseña", - "message": "Tu contraseña está siendo comprobada..." - }, - "correct": { - "title": "Inicio de sesión satisfactorio, redirigiendo..." - }, - "wrong": { - "title": "La contraseña introducida es incorrecta, por favor, inténtalo de nuevo." - } - } -} + "alert": "Tus credenciales son incorrectas, o la cuenta no existe. Por favor, prueba otra vez." +} \ No newline at end of file diff --git a/public/locales/es/boards/common.json b/public/locales/es/boards/common.json new file mode 100644 index 000000000..a3158ddcb --- /dev/null +++ b/public/locales/es/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personalizado tablero" + } +} \ No newline at end of file diff --git a/public/locales/es/boards/customize.json b/public/locales/es/boards/customize.json new file mode 100644 index 000000000..8238885a6 --- /dev/null +++ b/public/locales/es/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personalizar tablero {{name}}", + "pageTitle": "Personalización para el tablero {{name}}", + "backToBoard": "Volver al tablero", + "settings": { + "appearance": { + "primaryColor": "Color primario", + "secondaryColor": "Color secundario" + } + }, + "save": { + "button": "Guardar cambios", + "note": "¡Cuidado, tienes cambios sin guardar!" + }, + "notifications": { + "pending": { + "title": "Guardando personalización", + "message": "Por favor, espera mientras guardamos tu personalización" + }, + "success": { + "title": "Personalización guardada", + "message": "Tu personalización ha sido guardada correctamente" + }, + "error": { + "title": "Error", + "message": "Imposible guardar cambios" + } + } +} \ No newline at end of file diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 52c035ab9..e1a31836f 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -3,9 +3,13 @@ "about": "Acerca de", "cancel": "Cancelar", "close": "Cerrar", + "back": "Atrás", "delete": "Eliminar", "ok": "OK", "edit": "Editar", + "next": "Siguiente", + "previous": "Anterior", + "confirm": "Confirmar", "enabled": "Activado", "disabled": "Desactivado", "enableAll": "Activar todo", diff --git a/public/locales/es/layout/header.json b/public/locales/es/layout/header.json new file mode 100644 index 000000000..0ae4e7386 --- /dev/null +++ b/public/locales/es/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Esta es una característica experimental de Homarr. Por favor, reporta cualquier problema en GitHub o Discord." + }, + "search": { + "label": "Buscar", + "engines": { + "web": "Buscar {{query}} en la web", + "youtube": "Buscar {{query}} en YouTube", + "torrent": "Buscar {{query}} torrents", + "movie": "Buscar {{query}} en {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Cambiar tema", + "preferences": "Preferencias de usuario", + "defaultBoard": "Dashboard por defecto", + "manage": "Administrar", + "about": { + "label": "Acerca de", + "new": "Nuevo" + }, + "logout": "Cerrar sesión de {{username}}", + "login": "Iniciar sesión" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Mejores {{count}} resultados para {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/es/layout/manage.json b/public/locales/es/layout/manage.json new file mode 100644 index 000000000..24569d4cb --- /dev/null +++ b/public/locales/es/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Inicio" + }, + "boards": { + "title": "Tableros" + }, + "users": { + "title": "Usuarios", + "items": { + "manage": "Administrar", + "invites": "Invitaciones" + } + }, + "help": { + "title": "Ayuda", + "items": { + "documentation": "Documentación", + "report": "Reportar un problema / error", + "discord": "Comunidad Discord", + "contribute": "Contribuir" + } + }, + "tools": { + "title": "Herramientas", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/manage/boards.json b/public/locales/es/manage/boards.json new file mode 100644 index 000000000..1c757680a --- /dev/null +++ b/public/locales/es/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tableros", + "pageTitle": "Tableros", + "cards": { + "statistics": { + "apps": "Aplicaciones", + "widgets": "Widgets", + "categories": "Categorías" + }, + "buttons": { + "view": "Ver tablero" + }, + "menu": { + "setAsDefault": "Establecer como tu tablero por defecto", + "delete": { + "label": "Eliminar permanentemente", + "disabled": "Eliminación desactivida, porque versiones antiguas de los componentes de Homarr no permiten la eliminación de la configuración por defecto. La eliminación será posible en el futuro." + } + }, + "badges": { + "fileSystem": "Sistema de archivos", + "default": "Por defecto" + } + }, + "buttons": { + "create": "Crear nuevo tablero" + }, + "modals": { + "delete": { + "title": "Eliminar tablero", + "text": "¿Seguro que quieres eliminar este tablero? Esta acción no puede ser deshecha, y tus datos se perderán de manera permanente." + }, + "create": { + "title": "Crear tablero", + "text": "El nombre no puede cambiarse después de que el tablero haya sido creado.", + "form": { + "name": { + "label": "Nombre" + }, + "submit": "Crear" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/manage/index.json b/public/locales/es/manage/index.json new file mode 100644 index 000000000..84028ee0b --- /dev/null +++ b/public/locales/es/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Administrar", + "hero": { + "title": "Bienvenido/a de nuevo, {{username}}", + "fallbackUsername": "Anónimo", + "subtitle": "Bienvenido/a a su centro de aplicaciones. ¡Organiza, optimiza y conquista!" + }, + "quickActions": { + "title": "Acciones rápidas", + "boards": { + "title": "Tus tableros", + "subtitle": "Crea y administra tus tableros" + }, + "inviteUsers": { + "title": "Invitar a un nuevo usuario", + "subtitle": "Crea y envía una invitación para el registro" + }, + "manageUsers": { + "title": "Administrar usuarios", + "subtitle": "Elimina y administra tus usuarios" + } + } +} \ No newline at end of file diff --git a/public/locales/es/manage/users.json b/public/locales/es/manage/users.json new file mode 100644 index 000000000..4b38059a8 --- /dev/null +++ b/public/locales/es/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Usuarios", + "pageTitle": "Administrar usuarios", + "text": "Usando usuarios, puedes configurar quien pueda editar tus dashboards. Versiones futuras de Homarr tendrán aún más control granular sobre los permisos y tableros.", + "buttons": { + "create": "Crear" + }, + "table": { + "header": { + "user": "Usuario" + } + }, + "tooltips": { + "deleteUser": "Eliminar usuario", + "demoteAdmin": "Relevar administrador", + "promoteToAdmin": "Ascender a administrador" + }, + "modals": { + "delete": { + "title": "Eliminar usuario {{name}}", + "text": "¿Seguro que quieres eliminar el usuario {{name}}? Esto eliminará todo dato asociado a dicha cuenta, pero no los dashboards creados por el usuario." + }, + "change-role": { + "promote": { + "title": "Ascender usuario {{name}} a administrador", + "text": "¿Seguro que quieres ascender al usuario {{name}} a administrador? Esto le dará acceso a todos los recursos de tu instancia de Homarr." + }, + "demote": { + "title": "Relevar usuario {{name}}, y volver a usuario", + "text": "¿Seguro que quieres relevar al usuario {{name}}, y volverlo a usuario? Esto eliminará el acceso de dicho usuario a todos los recursos de tu instancia de Homarr." + }, + "confirm": "Confirmar" + } + }, + "searchDoesntMatch": "Tu búsqueda no coincide con ningún registro. Por favor, ajusta tu filtro." +} \ No newline at end of file diff --git a/public/locales/es/manage/users/create.json b/public/locales/es/manage/users/create.json new file mode 100644 index 000000000..03e2f6fcf --- /dev/null +++ b/public/locales/es/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Crear usuario", + "steps": { + "account": { + "title": "Primer paso", + "text": "Crear cuenta", + "username": { + "label": "Nombre de usuario" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Segundo paso", + "text": "Contraseña", + "password": { + "label": "Contraseña" + } + }, + "finish": { + "title": "Confirmación", + "text": "Guardar en la base de datos", + "card": { + "title": "Revisar datos introducidos", + "text": "Después de enviar los datos a la base de datos, el usuario podrá iniciar sesión. ¿Estás seguro de que quieres almacenar este usuario en la base de datos y activar el inicio de sesión?" + }, + "table": { + "header": { + "property": "Propiedad", + "value": "Valor", + "username": "Nombre de usuario", + "email": "E-Mail", + "password": "Contraseña" + }, + "notSet": "No configurado", + "valid": "Válido" + }, + "failed": "La creación del usuario ha fallado: {{error}}" + }, + "completed": { + "alert": { + "title": "Usuario creado", + "text": "El usuario fue creado en la base de datos. Ahora pueden iniciar sesión." + } + } + }, + "buttons": { + "generateRandomPassword": "Generar aleatorio", + "createAnother": "Crear otro" + } +} \ No newline at end of file diff --git a/public/locales/es/manage/users/invites.json b/public/locales/es/manage/users/invites.json new file mode 100644 index 000000000..1886b6bfc --- /dev/null +++ b/public/locales/es/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Invitaciones de usuario", + "pageTitle": "Administrar invitaciones de usuario", + "description": "Al usar invitaciones, puedes invitar usuarios a tu instancia de Homarr. Una invitación solo será válida por un cierto periodo de tiempo, y puede ser usada una única vez. La expiración debe ser entre 5 minutos y 12 meses desde su creación.", + "button": { + "createInvite": "Crear invitación", + "deleteInvite": "Eliminar invitación" + }, + "table": { + "header": { + "id": "ID", + "creator": "Creador", + "expires": "Expira", + "action": "Acciones" + }, + "data": { + "expiresAt": "expirado el {{at}}", + "expiresIn": "en {{in}}" + } + }, + "modals": { + "create": { + "title": "Crear invitación", + "description": "Después de la expiración, una invitación ya no será válida, y el destinatario de la invitación no podrá crear una cuenta.", + "form": { + "expires": "Fecha de expiración", + "submit": "Crear" + } + }, + "copy": { + "title": "Copiar invitación", + "description": "Tu invitación se ha generado. Después de que este modal se cierre, no podrás copiar más este enlace. Si ya no deseas invitar a esta persona, puedes eliminar la invitación en cualquier momento.", + "invitationLink": "Link de invitación", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Copiar y Descartar" + } + }, + "delete": { + "title": "Eliminar invitación", + "description": "¿Seguro que quieres eliminar la invitación? Los usuarios con este enlace, no podrán crear una cuenta usando dicho enlace." + } + }, + "noInvites": "Sin invitaciones aún." +} \ No newline at end of file diff --git a/public/locales/es/modules/calendar.json b/public/locales/es/modules/calendar.json index 8bad682c0..75e52474f 100644 --- a/public/locales/es/modules/calendar.json +++ b/public/locales/es/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Usar la API de Sonarr v4" }, - "sundayStart": { - "label": "Marcar Domingo como primer día de la semana" - }, "radarrReleaseType": { "label": "Tipo de lanzamiento de Radarr", "data": { diff --git a/public/locales/es/modules/dns-hole-controls.json b/public/locales/es/modules/dns-hole-controls.json index 2adbcd72b..733a07698 100644 --- a/public/locales/es/modules/dns-hole-controls.json +++ b/public/locales/es/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Controles de agujeros DNS", - "description": "Controla Pihole o AdGuard desde tu panel" + "description": "Controla Pihole o AdGuard desde tu panel", + "settings": { + "title": "Ajustes del widget Agujero DNS", + "showToggleAllButtons": { + "label": "Mostrar botones 'Activar/Desactivar todos'" + } + } } } \ No newline at end of file diff --git a/public/locales/es/modules/weather.json b/public/locales/es/modules/weather.json index 4e93cce2c..e69470cc7 100644 --- a/public/locales/es/modules/weather.json +++ b/public/locales/es/modules/weather.json @@ -18,7 +18,7 @@ "card": { "weatherDescriptions": { "clear": "Despejado", - "mainlyClear": "Mayormente Despejado", + "mainlyClear": "Mayormente despejado", "fog": "Niebla", "drizzle": "Llovizna", "freezingDrizzle": "Llovizna helada", @@ -26,10 +26,10 @@ "freezingRain": "Lluvia helada", "snowFall": "Nevada", "snowGrains": "Granos de nieve", - "rainShowers": "Lluvia ligera", - "snowShowers": "Nevada Ligera", + "rainShowers": "Chubascos", + "snowShowers": "Chubascos de nieve", "thunderstorm": "Tormenta eléctrica", - "thunderstormWithHail": "Tormenta con Granizo", + "thunderstormWithHail": "Tormenta con granizo", "unknown": "Desconocido" } }, diff --git a/public/locales/es/password-requirements.json b/public/locales/es/password-requirements.json new file mode 100644 index 000000000..e37c813a2 --- /dev/null +++ b/public/locales/es/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Incluye número", + "lowercase": "Incluye letra minúscula", + "uppercase": "Incluye letra mayúscula", + "special": "Incluye carácter especial", + "length": "Incluye al menos {{count}} caracteres" +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/access.json b/public/locales/es/settings/customization/access.json new file mode 100644 index 000000000..2ceac7ba3 --- /dev/null +++ b/public/locales/es/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Permitir anónimos", + "description": "Permitir usuarios que no estén logeados para poder ver tu tablero" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/general.json b/public/locales/es/settings/customization/general.json index 9929a591a..89fead8fc 100644 --- a/public/locales/es/settings/customization/general.json +++ b/public/locales/es/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accesibilidad", "description": "Configura Homarr para usuarios con discapacidad y minusvalía" + }, + "access": { + "name": "Acceso", + "description": "Configura quien tiene acceso a tu tablero" } } } diff --git a/public/locales/es/settings/customization/page-appearance.json b/public/locales/es/settings/customization/page-appearance.json index 71b3340e2..b20a02e23 100644 --- a/public/locales/es/settings/customization/page-appearance.json +++ b/public/locales/es/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Además, personaliza tu panel usando CSS, solo recomendado para usuarios avanzados", "placeholder": "El CSS personalizado se aplicará en último lugar", "applying": "Aplicando CSS..." - }, - "buttons": { - "submit": "Aplicar" } -} +} \ No newline at end of file diff --git a/public/locales/es/tools/docker.json b/public/locales/es/tools/docker.json new file mode 100644 index 000000000..4ea7af848 --- /dev/null +++ b/public/locales/es/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Tu instancia de Homarr no tiene Docker configurado, o falló al obtener los contenedores. Por favor, comprueba la documentación sobre cómo configurar la integración." + } + }, + "modals": { + "selectBoard": { + "title": "Selecciona un tablero", + "text": "Selecciona el tablero donde quieres añadir las apps para los contenedores marcados.", + "form": { + "board": { + "label": "Tablero" + }, + "submit": "Añadir apps" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Apps añadidas al tablero", + "message": "Las apps de los contenedores Docker marcadas han sido añadidas al tablero." + }, + "error": { + "title": "Fallo al añadir las apps al tablero", + "message": "Las apps para los contenedores marcados no pudieron ser añadidas al tablero." + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/user/preferences.json b/public/locales/es/user/preferences.json new file mode 100644 index 000000000..fb043d288 --- /dev/null +++ b/public/locales/es/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Preferencias", + "pageTitle": "Tus preferencias", + "boards": { + "defaultBoard": { + "label": "Tablero por defecto" + } + }, + "accessibility": { + "title": "Accesibilidad", + "disablePulse": { + "label": "Desactivar pulso de ping", + "description": "Por defecto, los indicadores de ping en Homarr parpadean. Esto puede resultar irritante. Este deslizador desactivará la animación" + }, + "replaceIconsWithDots": { + "label": "Reemplazar los puntos de ping por iconos", + "description": "Para los usuarios daltónicos, los puntos de ping pueden ser irreconocibles. Esto reemplazará los indicadores por iconos" + } + }, + "localization": { + "language": { + "label": "Idioma" + }, + "firstDayOfWeek": { + "label": "Primer día de la semana", + "options": { + "monday": "Lunes", + "saturday": "Sábado", + "sunday": "Domingo" + } + } + }, + "searchEngine": { + "title": "Motor de búsqueda", + "custom": "Personalizado", + "newTab": { + "label": "Abrir resultados de búsqueda en nueva pestaña" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL de consulta", + "description": "Usar %s como marcador de posición de la consulta" + } + } +} \ No newline at end of file diff --git a/public/locales/es/zod.json b/public/locales/es/zod.json new file mode 100644 index 000000000..044027090 --- /dev/null +++ b/public/locales/es/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "El campo no es válido", + "required": "Este campo es obligatorio", + "string": { + "startsWith": "El campo debe empezar con {{startsWith}}", + "endsWith": "El campo debe acabar en {{endsWith}}", + "includes": "El campo debe incluir {{includes}}" + }, + "tooSmall": { + "string": "El campo debe ser de al menos {{minimum}} caracteres de largo", + "number": "El campo debe ser más grande, o igual a {{minimum}}" + }, + "tooBig": { + "string": "El campo debe ser al menos {{maximum}} caracteres de largo", + "number": "El campo debe menor o igual a {{maximum}}" + }, + "custom": { + "passwordMatch": "Las contraseñas deben coincidir" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/authentication/invite.json b/public/locales/fr/authentication/invite.json new file mode 100644 index 000000000..4a5a91998 --- /dev/null +++ b/public/locales/fr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Créer un compte", + "title": "Créer un compte", + "text": "Veuillez définir vos identifiants ci-dessous", + "form": { + "fields": { + "username": { + "label": "Nom d'utilisateur" + }, + "password": { + "label": "Mot de passe" + }, + "passwordConfirmation": { + "label": "Confirmation du mot de passe" + } + }, + "buttons": { + "submit": "Créer un compte" + } + }, + "notifications": { + "loading": { + "title": "Création du compte", + "text": "Un instant" + }, + "success": { + "title": "Compte créé", + "text": "Votre compte a bien été créé" + }, + "error": { + "title": "Erreur", + "text": "Quelque chose ne s'est pas bien passé, l'erreur obtenue est la suivante : {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/authentication/login.json b/public/locales/fr/authentication/login.json index 112db8720..fda4f1488 100644 --- a/public/locales/fr/authentication/login.json +++ b/public/locales/fr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Connexion", "title": "Bienvenue !", - "text": "Veuillez entrer votre mot de passe", + "text": "Veuillez saisir vos identifiants", "form": { "fields": { + "username": { + "label": "Nom d'utilisateur" + }, "password": { - "label": "Mot de passe", - "placeholder": "Votre mot de passe" + "label": "Mot de passe" } }, "buttons": { "submit": "Se connecter" - } + }, + "afterLoginRedirection": "Après la connexion, vous serez redirigé vers {{url}}" }, - "notifications": { - "checking": { - "title": "Vérification de votre mot de passe", - "message": "Votre mot de passe est en cours de vérification..." - }, - "correct": { - "title": "Inscription réussie, redirection..." - }, - "wrong": { - "title": "Le mot de passe saisi est incorrect, veuillez réessayer." - } - } -} + "alert": "Vos identifiants sont incorrects ou ce compte n'existe pas. Veuillez réessayer." +} \ No newline at end of file diff --git a/public/locales/fr/boards/common.json b/public/locales/fr/boards/common.json new file mode 100644 index 000000000..8a907e2a5 --- /dev/null +++ b/public/locales/fr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personnaliser le tableau de bord" + } +} \ No newline at end of file diff --git a/public/locales/fr/boards/customize.json b/public/locales/fr/boards/customize.json new file mode 100644 index 000000000..548ca7342 --- /dev/null +++ b/public/locales/fr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personnaliser le tableau de bord {{name}}", + "pageTitle": "Personnalisation du tableau de bord {{name}}", + "backToBoard": "Retour au tableau de bord", + "settings": { + "appearance": { + "primaryColor": "Couleur primaire", + "secondaryColor": "Couleur secondaire" + } + }, + "save": { + "button": "Sauvegarder les modifications", + "note": "Attention, vous avez des modifications non enregistrées !" + }, + "notifications": { + "pending": { + "title": "Enregistrement de la personnalisation", + "message": "Veuillez patienter pendant que nous enregistrons votre personnalisation" + }, + "success": { + "title": "Personnalisation sauvegardée", + "message": "Votre personnalisation a bien été sauvegardée" + }, + "error": { + "title": "Erreur", + "message": "Impossible d’enregistrer les modifications" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 1470cfb26..93691eb54 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -3,9 +3,13 @@ "about": "À propos", "cancel": "Annuler", "close": "Fermer", + "back": "Retour", "delete": "Supprimer", "ok": "OK", "edit": "Modifier", + "next": "Suivant", + "previous": "Précédent", + "confirm": "Confirmer", "enabled": "Activé", "disabled": "Désactivé", "enableAll": "Activer tout", diff --git a/public/locales/fr/layout/common.json b/public/locales/fr/layout/common.json index ebff5b6e5..c43d2de7e 100644 --- a/public/locales/fr/layout/common.json +++ b/public/locales/fr/layout/common.json @@ -18,7 +18,7 @@ "menu": { "moveUp": "Monter", "moveDown": "Descendre", - "addCategory": "", + "addCategory": "Ajouter une catégorie {{location}}", "addAbove": "au-dessus", "addBelow": "en dessous" } diff --git a/public/locales/fr/layout/element-selector/selector.json b/public/locales/fr/layout/element-selector/selector.json index 20a90ed8f..33da03480 100644 --- a/public/locales/fr/layout/element-selector/selector.json +++ b/public/locales/fr/layout/element-selector/selector.json @@ -10,7 +10,7 @@ }, "apps": "Applications", "app": { - "defaultName": "Votre Application" + "defaultName": "Votre application" }, "widgets": "Widgets", "categories": "Catégories", @@ -19,7 +19,7 @@ "defaultName": "Nouvelle catégorie", "created": { "title": "Catégorie créée", - "message": "La catégorie \"{{name}}\" a été créée" + "message": "La catégorie « {{name}} » a été créée" } } } diff --git a/public/locales/fr/layout/header.json b/public/locales/fr/layout/header.json new file mode 100644 index 000000000..a58ce7c1b --- /dev/null +++ b/public/locales/fr/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Ceci est une fonctionnalité expérimentale de Homarr. Veuilez signaler tout problème sur GitHub ou sur Discord." + }, + "search": { + "label": "Rechercher", + "engines": { + "web": "Rechercher {{query}} sur le web", + "youtube": "Rechercher {{query}} sur YouTube", + "torrent": "Rechercher {{query}} parmi les torrents", + "movie": "Rechercher {{query}} sur {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Changer de thème", + "preferences": "Préférences utilisateur", + "defaultBoard": "Tableau de bord par défaut", + "manage": "", + "about": { + "label": "À propos", + "new": "" + }, + "logout": "Se déconnecter de {{username}}", + "login": "Connexion" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} premiers résultats pour {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/header/actions/toggle-edit-mode.json b/public/locales/fr/layout/header/actions/toggle-edit-mode.json index 4cb19e219..1d520b21b 100644 --- a/public/locales/fr/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/fr/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Le mode d'édition est activé pour la taille de <1>{{size}}", "text": "Vous pouvez désormais ajuster et configurer vos applications. Les modifications ne sont pas enregistrées jusqu'à ce que vous quittiez le mode édition" }, - "unloadEvent": "" + "unloadEvent": "Quittez le mode d'édition pour enregistrer vos modifications" } diff --git a/public/locales/fr/layout/manage.json b/public/locales/fr/layout/manage.json new file mode 100644 index 000000000..d6aa8e65b --- /dev/null +++ b/public/locales/fr/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Accueil" + }, + "boards": { + "title": "Tableaux de bord" + }, + "users": { + "title": "Utilisateurs", + "items": { + "manage": "", + "invites": "Invitations" + } + }, + "help": { + "title": "Aide", + "items": { + "documentation": "Documentation", + "report": "Signaler un problème ou un bug", + "discord": "Communauté Discord", + "contribute": "Contribuer" + } + }, + "tools": { + "title": "Outils", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/modals/about.json b/public/locales/fr/layout/modals/about.json index cf7c48b6b..5655b8d8e 100644 --- a/public/locales/fr/layout/modals/about.json +++ b/public/locales/fr/layout/modals/about.json @@ -6,7 +6,7 @@ "key": "Raccourci clavier", "action": "Action", "keybinds": "Affectation des touches", - "documentation": "", + "documentation": "Documentation", "actions": { "toggleTheme": "Basculer entre mode clair/sombre", "focusSearchBar": "Focus sur la barre de recherche", @@ -23,7 +23,7 @@ "experimental_disableEditMode": "EXPÉRIMENTAL : désactiver le mode édition" }, "version": { - "new": "", - "dropdown": "" + "new": "Nouveau : {{newVersion}}", + "dropdown": "La version {{newVersion}} est disponible ! La version actuelle est {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/fr/layout/modals/add-app.json b/public/locales/fr/layout/modals/add-app.json index c1ffd83a4..8502a85a1 100644 --- a/public/locales/fr/layout/modals/add-app.json +++ b/public/locales/fr/layout/modals/add-app.json @@ -26,7 +26,7 @@ "description": "Ouvrez l'application dans un nouvel onglet au lieu de l'onglet actuel." }, "tooltipDescription": { - "label": "Description de l'Application", + "label": "Description de l'application", "description": "Le texte que vous allez entrer apparaitra quand vous survolerez votre application.\nUtilisez cela pour donner plus d'informations aux utilisateurs à propos de votre application ou laissez vide pour qu'il n'y ait rien." }, "customProtocolWarning": "Utilisation d'un protocole non standard. Ceci peut nécessiter des applications préinstallées et peut introduire des failles de sécurité. Assurez-vous que votre adresse est sécurisée et de confiance." @@ -55,8 +55,8 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Taille de la police du nom de l'application", + "description": "Définissez la taille de la police lorsque le nom de l'application est affiché sur la tuile." }, "appNameStatus": { "label": "Status du nom de l'application", @@ -71,22 +71,22 @@ "label": "Position du nom de l'application", "description": "Position du nom de l'application par rapport à l'icône.", "dropdown": { - "top": "Dessus", + "top": "Au-dessus", "right": "Droite", - "bottom": "Dessous", + "bottom": "En-dessous", "left": "Gauche" } }, "lineClampAppName": { "label": "Coupe ligne pour le nom de l'application", - "description": "Défini sur combien de lignes le nom de l'application va s'étendre. 0 pour illimité." + "description": "Définissez sur combien de lignes le nom de l'application va s'étendre. 0 pour illimité." } }, "integration": { "type": { "label": "Configuration d’intégrations", "description": "La configuration d'intégration qui sera utilisée pour se connecter à votre application.", - "placeholder": "Sélectionner une itégration", + "placeholder": "Sélectionner une intégration", "defined": "Défini", "undefined": "Indéfini", "public": "Public", diff --git a/public/locales/fr/manage/boards.json b/public/locales/fr/manage/boards.json new file mode 100644 index 000000000..f49b519e2 --- /dev/null +++ b/public/locales/fr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tableaux de bord", + "pageTitle": "Tableaux de bord", + "cards": { + "statistics": { + "apps": "Applications", + "widgets": "Widgets", + "categories": "Catégories" + }, + "buttons": { + "view": "Voir le tableau de bord" + }, + "menu": { + "setAsDefault": "Définir comme votre tableau de bord par défaut", + "delete": { + "label": "Supprimer définitivement", + "disabled": "Suppression désactivée car certains anciens composants Homarr ne permettent pas la suppression de la configuration par défaut. La suppression sera possible dans le futur." + } + }, + "badges": { + "fileSystem": "Système de fichiers", + "default": "" + } + }, + "buttons": { + "create": "Créer un nouveau tableau de bord" + }, + "modals": { + "delete": { + "title": "Supprimer le tableau de bord", + "text": "Êtes-vous sûr de vouloir supprimer ce tableau de bord ? Cette action ne peut être annulée et toutes vos données seront définitivement supprimées." + }, + "create": { + "title": "Créer un tableau de bord", + "text": "Le nom du tableau de bord ne pourra pas être changé une fois créé.", + "form": { + "name": { + "label": "Nom" + }, + "submit": "Créer" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/index.json b/public/locales/fr/manage/index.json new file mode 100644 index 000000000..9a51024e2 --- /dev/null +++ b/public/locales/fr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "Content de te revoir, {{username}}", + "fallbackUsername": "Anonyme", + "subtitle": "Bienvenue sur votre hub d'applications. Organisez, optimisez et conquérez !" + }, + "quickActions": { + "title": "Actions rapides", + "boards": { + "title": "Vos tableaux de bord", + "subtitle": "Créer et gérer vos tableaux de bord" + }, + "inviteUsers": { + "title": "Inviter un nouvel utilisateur", + "subtitle": "Créer et envoyer une invitation pour inscription" + }, + "manageUsers": { + "title": "Gérer les utilisateurs", + "subtitle": "Supprimer et gérer vos utilisateurs" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/users.json b/public/locales/fr/manage/users.json new file mode 100644 index 000000000..46313b37a --- /dev/null +++ b/public/locales/fr/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Utilisateurs", + "pageTitle": "Gérer les utilisateurs", + "text": "", + "buttons": { + "create": "Créer" + }, + "table": { + "header": { + "user": "Utilisateur" + } + }, + "tooltips": { + "deleteUser": "Supprimer l’utilisateur", + "demoteAdmin": "Rétrograder l'administrateur", + "promoteToAdmin": "Promouvoir en tant qu'administrateur" + }, + "modals": { + "delete": { + "title": "Supprimer l'utilisateur {{name}}", + "text": "" + }, + "change-role": { + "promote": { + "title": "Promouvoir l'utilisateur {{name}} en tant qu'administrateur", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Confirmer" + } + }, + "searchDoesntMatch": "Votre recherche ne correspond à aucune entrée. Veuillez ajuster votre filtre." +} \ No newline at end of file diff --git a/public/locales/fr/manage/users/create.json b/public/locales/fr/manage/users/create.json new file mode 100644 index 000000000..1ac829241 --- /dev/null +++ b/public/locales/fr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Créer un utilisateur", + "steps": { + "account": { + "title": "Première étape", + "text": "Créer un compte", + "username": { + "label": "Nom d'utilisateur" + }, + "email": { + "label": "Courriel" + } + }, + "security": { + "title": "Seconde étape", + "text": "Mot de passe", + "password": { + "label": "Mot de passe" + } + }, + "finish": { + "title": "Confirmation", + "text": "Enregistrer dans la base de données", + "card": { + "title": "Vérification de vos saisies", + "text": "Après avoir envoyé les données dans la base de données, l'utilisateur pourra se connecter. Êtes-vous sûr de vouloir ajouter cet utilisateur dans la base de données et d'activer son compte ?" + }, + "table": { + "header": { + "property": "Propriété", + "value": "Valeur", + "username": "Nom d'utilisateur", + "email": "Courriel", + "password": "Mot de passe" + }, + "notSet": "Non défini", + "valid": "Valide" + }, + "failed": "Échec de la création de l'utilisateur : {{error}}" + }, + "completed": { + "alert": { + "title": "Utilisateur créé", + "text": "L'utilisateur a été créé dans la base de données. Il peut désormais se connecter." + } + } + }, + "buttons": { + "generateRandomPassword": "Génération aléatoire", + "createAnother": "En créer un autre" + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/users/invites.json b/public/locales/fr/manage/users/invites.json new file mode 100644 index 000000000..786f32426 --- /dev/null +++ b/public/locales/fr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "Gérer les invitations des utilisateurs", + "description": "", + "button": { + "createInvite": "Créer une invitation", + "deleteInvite": "Supprimer une invitation" + }, + "table": { + "header": { + "id": "ID", + "creator": "Créé par", + "expires": "Date d'expiration", + "action": "Actions" + }, + "data": { + "expiresAt": "a expiré à {{at}}", + "expiresIn": "à {{in}}" + } + }, + "modals": { + "create": { + "title": "Créer une invitation", + "description": "Après expiration, une invitation ne sera plus valide et le destinataire de cette invitation ne pourra pas créer un compte.", + "form": { + "expires": "Date d'expiration", + "submit": "Créer" + } + }, + "copy": { + "title": "Copier l'invitation", + "description": "Votre invitation a été générée. Après avoir fermé cette fenêtre, vous ne pourrez plus copier ce lien. Si vous ne souhaitez plus inviter cette personne, vous pouvez supprimer l'invitation à tout moment.", + "invitationLink": "Lien d'invitation", + "details": { + "id": "ID", + "token": "Jeton" + }, + "button": { + "close": "Copier et fermer" + } + }, + "delete": { + "title": "Supprimer une invitation", + "description": "Êtes-vous sûr de vouloir supprimer cette invitation ? Les utilisateurs avec ce lien ne pourront plus créer un compte avec ce dernier." + } + }, + "noInvites": "Il n'y a pas encore d'invitations." +} \ No newline at end of file diff --git a/public/locales/fr/modules/bookmark.json b/public/locales/fr/modules/bookmark.json index 00172149c..2b11844b6 100644 --- a/public/locales/fr/modules/bookmark.json +++ b/public/locales/fr/modules/bookmark.json @@ -6,7 +6,7 @@ "title": "Paramètres des marque-pages", "name": { "label": "Nom du widget", - "info": "Laissez vide pour garder le titre caché." + "info": "Laissez vide pour masquer le titre." }, "items": { "label": "Éléments" @@ -15,8 +15,8 @@ "label": "Mise en page", "data": { "autoGrid": "Grille automatique", - "horizontal": "Horizontal", - "vertical": "Vertical" + "horizontal": "Horizontale", + "vertical": "Verticale" } } } @@ -29,9 +29,9 @@ }, "item": { "validation": { - "length": "", + "length": "La longueur doit être comprise entre {{shortest}} et {{longest}}", "invalidLink": "Lien non valide", - "errorMsg": "Impossible d'enregistrer, car il y a eu des erreurs de validation. S'il vous plaît ajustez les données entrées." + "errorMsg": "Impossible d'enregistrer car il y a eu des erreurs de validation. Veuillez ajuster les données saisies" }, "name": "Nom", "url": "URL (lien)", diff --git a/public/locales/fr/modules/calendar.json b/public/locales/fr/modules/calendar.json index 3229b885e..d50c1df63 100644 --- a/public/locales/fr/modules/calendar.json +++ b/public/locales/fr/modules/calendar.json @@ -7,31 +7,28 @@ "useSonarrv4": { "label": "Utiliser l'API de Sonarr v4" }, - "sundayStart": { - "label": "Commencez la semaine par dimanche" - }, "radarrReleaseType": { "label": "Type de sortie Radarr", "data": { - "inCinemas": "Au cinéma", - "physicalRelease": "Physique", - "digitalRelease": "Digitale" + "inCinemas": "Sorties en salle", + "physicalRelease": "Édition physique", + "digitalRelease": "Édition numérique" } }, "hideWeekDays": { "label": "Masquer les jours de la semaine" }, "showUnmonitored": { - "label": "" + "label": "Afficher les éléments non surveillés" }, "fontSize": { "label": "Taille de la police", "data": { - "xs": "Très Petite", + "xs": "Très petite", "sm": "Petite", "md": "Moyenne", "lg": "Grande", - "xl": "Très Grande" + "xl": "Très grande" } } } diff --git a/public/locales/fr/modules/common-media-cards.json b/public/locales/fr/modules/common-media-cards.json index 299372e36..0539859b6 100644 --- a/public/locales/fr/modules/common-media-cards.json +++ b/public/locales/fr/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Jouer", + "play": "Lire", "request": "Demande" } } \ No newline at end of file diff --git a/public/locales/fr/modules/date.json b/public/locales/fr/modules/date.json index 2e14946dc..81d11ab9d 100644 --- a/public/locales/fr/modules/date.json +++ b/public/locales/fr/modules/date.json @@ -8,7 +8,7 @@ "label": "Affichage 24 h" }, "dateFormat": { - "label": "Formatage de la date", + "label": "Format de la date", "data": { "hide": "Masquer la date" } @@ -21,7 +21,7 @@ }, "titleState": { "label": "Nom de la ville", - "info": "Si vous avez choisis d'activer un fuseau horaire différent, le nom de la ville ainsi que le nom de son fuseau horaire peuvent être affichés.
Vous pouvez aussi n'afficher que la ville ou aucun des deux.", + "info": "Si vous avez choisi d'activer un fuseau horaire différent, le nom de la ville ainsi que le nom de son fuseau horaire peuvent être affichés.
Vous pouvez aussi n'afficher que la ville ou aucun des deux.", "data": { "both": "Ville et fuseau horaire", "city": "Ville uniquement", diff --git a/public/locales/fr/modules/dns-hole-controls.json b/public/locales/fr/modules/dns-hole-controls.json index a7dfb1050..591133245 100644 --- a/public/locales/fr/modules/dns-hole-controls.json +++ b/public/locales/fr/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { - "name": "Contrôle du DNS hole", - "description": "Contrôlez PiHole ou AdGuard depuis votre tableau de bord" + "name": "Pilotage du DNS Hole", + "description": "Contrôlez PiHole ou AdGuard depuis votre tableau de bord", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "Afficher les boutons \"Activer/Désactiver tout\"" + } + } } } \ No newline at end of file diff --git a/public/locales/fr/modules/dns-hole-summary.json b/public/locales/fr/modules/dns-hole-summary.json index abbd190d0..3808eb909 100644 --- a/public/locales/fr/modules/dns-hole-summary.json +++ b/public/locales/fr/modules/dns-hole-summary.json @@ -1,25 +1,25 @@ { "descriptor": { - "name": "Résumé du DNS hole", - "description": "Affiche les données importantes de PiHole ou AdGuard", + "name": "Indicateurs clés d'un DNS hole", + "description": "Affiche les données clés de PiHole ou d'AdGuard", "settings": { - "title": "Paramètres du résumé du DNS hole", + "title": "Paramètres du tableau de bord d'un DNS Hole", "usePiHoleColors": { - "label": "Utiliser les couleurs de PiHole" + "label": "Utiliser la palette de couleur de PiHole" }, "layout": { "label": "Mise en page", "data": { "grid": "2 par 2", - "row": "Horizontal", - "column": "Vertical" + "row": "Horizontale", + "column": "Verticale" } } } }, "card": { "metrics": { - "domainsOnAdlist": "Domaines sur les adlists", + "domainsOnAdlist": "Domaines sur les listes de blocage", "queriesToday": "Requêtes aujourd'hui", "queriesBlockedTodayPercentage": "bloqué aujourd'hui", "queriesBlockedToday": "bloqué aujourd'hui" diff --git a/public/locales/fr/modules/iframe.json b/public/locales/fr/modules/iframe.json index 79de6989f..bf1d16ea5 100644 --- a/public/locales/fr/modules/iframe.json +++ b/public/locales/fr/modules/iframe.json @@ -3,9 +3,9 @@ "name": "iFrame", "description": "Intégrer n'importe quel contenu à partir d'Internet. Certains sites Web peuvent restreindre l'accès.", "settings": { - "title": "Paramètres d'iFrame", + "title": "Paramètres de l'iFrame", "embedUrl": { - "label": "Intégrer l'URL" + "label": "URL intégrée" }, "allowFullScreen": { "label": "Permettre le plein écran" @@ -39,7 +39,7 @@ "title": "URL invalide", "text": "Assurez-vous que vous avez saisi une adresse valide dans la configuration de votre widget" }, - "browserSupport": "Votre navigateur internet ne supporte pas les iframes. Veillez à le mettre à jour." + "browserSupport": "Votre navigateur internet ne prend pas en charge les iframes. Merci de le mettre à jour." } } } diff --git a/public/locales/fr/modules/media-requests-list.json b/public/locales/fr/modules/media-requests-list.json index 3fe328191..059d01d5d 100644 --- a/public/locales/fr/modules/media-requests-list.json +++ b/public/locales/fr/modules/media-requests-list.json @@ -8,7 +8,7 @@ "label": "Remplacer les liens par des hôtes externes" }, "openInNewTab": { - "label": "" + "label": "Ouvrir les liens dans un nouvel onglet" } } }, diff --git a/public/locales/fr/modules/media-requests-stats.json b/public/locales/fr/modules/media-requests-stats.json index a3160d7c4..06f9c3726 100644 --- a/public/locales/fr/modules/media-requests-stats.json +++ b/public/locales/fr/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Remplacer les liens par des hôtes externes" }, "openInNewTab": { - "label": "" + "label": "Ouvrir les liens dans un nouvel onglet" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Statistiques des médias", + "pending": "En attente de validation", + "tvRequests": "Demandes de séries TV", + "movieRequests": "Demandes de films", + "approved": "Déjà approuvé", + "totalRequests": "Total" }, "userStats": { - "title": "", - "requests": "" + "title": "Principaux utilisateurs", + "requests": "Demandes : {{number}}" } } diff --git a/public/locales/fr/modules/media-server.json b/public/locales/fr/modules/media-server.json index 9e7cb6efd..00a19b215 100644 --- a/public/locales/fr/modules/media-server.json +++ b/public/locales/fr/modules/media-server.json @@ -12,7 +12,7 @@ "header": { "session": "Session", "user": "Utilisateur", - "currentlyPlaying": "En cours de lecture" + "currentlyPlaying": "Regarde actuellement" } }, "errors": { diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json index d9bc84188..dc1916542 100644 --- a/public/locales/fr/modules/torrents-status.json +++ b/public/locales/fr/modules/torrents-status.json @@ -11,14 +11,14 @@ "label": "Cacher les torrents terminés" }, "displayStaleTorrents": { - "label": "Afficher les torrents périmés" + "label": "Afficher les torrents obsolètes" }, "labelFilterIsWhitelist": { - "label": "La liste des libellés est une whitelist (au lieu d'une blacklist)" + "label": "La liste des libellés est une liste blanche (au lieu d'une liste noire)" }, "labelFilter": { "label": "Liste des libellés", - "description": "Si la case \"est une whitelist\" est cochée, elle sera appliquée comme une liste blanche. Si la case n'est pas cochée, elle s'appliquera comme une liste noire (blacklist). Il ne se passera rien si elle est vide" + "description": "Si la case \"La liste des libellés est une liste blanche\" est cochée, elle sera appliquée comme une liste blanche. Si la case n'est pas cochée, elle s'appliquera comme une liste noire. Rien ne se passera si elle est vide" } } }, @@ -54,7 +54,7 @@ }, "errors": { "noDownloadClients": { - "title": "Aucun client Torrent supporté n'a été trouvé !", + "title": "Aucun client Torrent pris en charge n'a été trouvé !", "text": "Ajouter un client Torrent pris en charge pour voir vos téléchargements en cours" }, "generic": { diff --git a/public/locales/fr/modules/video-stream.json b/public/locales/fr/modules/video-stream.json index 050f0c1a7..5a1085510 100644 --- a/public/locales/fr/modules/video-stream.json +++ b/public/locales/fr/modules/video-stream.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Flux vidéo", - "description": "Intégrer un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", + "description": "Intégre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", "settings": { "title": "Paramètres du widget de flux vidéo", "FeedUrl": { diff --git a/public/locales/fr/password-requirements.json b/public/locales/fr/password-requirements.json new file mode 100644 index 000000000..9d60b3122 --- /dev/null +++ b/public/locales/fr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inclut un nombre", + "lowercase": "Inclut une lettre minuscule", + "uppercase": "Inclut une lettre majuscule", + "special": "Inclut un caractère spécial", + "length": "Inclut au moins {{count}} caractères" +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/access.json b/public/locales/fr/settings/customization/access.json new file mode 100644 index 000000000..bf57edbd6 --- /dev/null +++ b/public/locales/fr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Autoriser l'anonymat", + "description": "Autoriser les utilisateurs non connectés à voir le tableau de bord" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/accessibility.json b/public/locales/fr/settings/customization/accessibility.json index 9cb5639ce..3afe9ecae 100644 --- a/public/locales/fr/settings/customization/accessibility.json +++ b/public/locales/fr/settings/customization/accessibility.json @@ -1,7 +1,7 @@ { "disablePulse": { "label": "Désactiver la pulsation du ping", - "description": "Par défaut, les indicateurs de ping dans Homarr pulsent. Cela peut être irritant. Ce curseur désactivera l'animation" + "description": "Par défaut, les indicateurs de ping dans Homarr clignotent. Cela peut être irritant. Cette case désactivera l'animation" }, "replaceIconsWithDots": { "label": "Remplacer les points de ping par des icônes", diff --git a/public/locales/fr/settings/customization/general.json b/public/locales/fr/settings/customization/general.json index 9c223e6a8..5088b5b2e 100644 --- a/public/locales/fr/settings/customization/general.json +++ b/public/locales/fr/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibilité", "description": "Configurer Homarr pour les utilisateurs handicapés et/ou invalides" + }, + "access": { + "name": "Accès", + "description": "Configurer qui a accès à votre tableau de bord" } } } diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json index bc415957f..f7ac74c4c 100644 --- a/public/locales/fr/settings/customization/page-appearance.json +++ b/public/locales/fr/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "En outre, vous pouvez personnaliser votre tableau de bord à l'aide de CSS. Réservé aux utilisateurs expérimentés.", "placeholder": "Le CSS personnalisé sera appliqué en dernier", "applying": "Application du code CSS..." - }, - "buttons": { - "submit": "Soumettre" } -} +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/cache-buttons.json b/public/locales/fr/settings/general/cache-buttons.json index 685994c48..1105f0729 100644 --- a/public/locales/fr/settings/general/cache-buttons.json +++ b/public/locales/fr/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Nettoyage du cache", "selector": { - "label": "", + "label": "Sélectionner le(s) cache(s) à effacer", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Requêtes ping", + "repositoryIcons": "Icônes distantes/locales", + "calendar&medias": "Médias du calendrier", + "weather": "Données météo" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Cache effacé", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Effacer tout le cache", + "notificationMessage": "Tous les caches ont été vidés" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Effacer les requêtes sélectionnées", + "notificationMessageSingle": "Le cache pour {{value}} a été effacé", + "notificationMessageMulti": "Le cache pour {{values}} a été effacé" } } } \ No newline at end of file diff --git a/public/locales/fr/settings/general/edit-mode-toggle.json b/public/locales/fr/settings/general/edit-mode-toggle.json index 61ba727f9..f05c41900 100644 --- a/public/locales/fr/settings/general/edit-mode-toggle.json +++ b/public/locales/fr/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Basculer vers le mode édition", + "enable": "Activer le mode édition", + "disable": "Désactiver le mode édition" }, "form": { - "label": "", - "message": "", + "label": "Modifier le mot de passe", + "message": "Pour activer le mode édition, vous devez saisir le mot de passe que vous avez entré dans la variable d'environnement appelée EDIT_MODE_PASSWORD . Si cette variable n'est pas définie, vous ne pourrez pas activer ou désactiver le mode édition.", "submit": "Soumettre" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Réussie", + "message": "Basculement vers le mode édition réussi, rechargement de la page..." }, "error": { "title": "Erreur", - "message": "" + "message": "Impossible d'activer/désactiver le mode d'édition, veuillez réessayer." } } } \ No newline at end of file diff --git a/public/locales/fr/settings/general/search-engine.json b/public/locales/fr/settings/general/search-engine.json index 5838b19ed..bf02647bc 100644 --- a/public/locales/fr/settings/general/search-engine.json +++ b/public/locales/fr/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Moteur de recherche", "configurationName": "Configuration du moteur de recherche", - "custom": "", + "custom": "Personnalisé", "tips": { "generalTip": "Vous pouvez utiliser plusieurs préfixes ! L'ajout de ces préfixes devant votre requête filtrera les résultats. !s (Web), !t (Torrents), !y (YouTube), et !m (Media).", "placeholderTip": "%s peut être utilisé en tant que placeholder pour la requête." diff --git a/public/locales/fr/tools/docker.json b/public/locales/fr/tools/docker.json new file mode 100644 index 000000000..b5a96e712 --- /dev/null +++ b/public/locales/fr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "Choisir un tableau de bord", + "text": "Choisissez le tableau sur lequel vous souhaiyez ajouter les applications pour les conteneurs Docker sélectionnés.", + "form": { + "board": { + "label": "Tableau de bord" + }, + "submit": "Ajouter des applications" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Applications ajoutées au tableau de bord", + "message": "Les applications pour les conteneurs Docker sélectionnés ont bien été ajoutées au tableau de bord." + }, + "error": { + "title": "Impossible d'ajouter des applications au tableau de bord", + "message": "Les applications pour les conteneurs Docker sélectionnés n'ont pas pu être ajoutées au tableau de bord." + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/user/preferences.json b/public/locales/fr/user/preferences.json new file mode 100644 index 000000000..9a66140d7 --- /dev/null +++ b/public/locales/fr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Préférences", + "pageTitle": "Vos préférences", + "boards": { + "defaultBoard": { + "label": "Tableau de bord par défaut" + } + }, + "accessibility": { + "title": "Accessibilité", + "disablePulse": { + "label": "Désactiver la pulsation du ping", + "description": "Par défaut, les indicateurs de ping dans Homarr clignotent. Cela peut être irritant. Cette case désactivera l'animation" + }, + "replaceIconsWithDots": { + "label": "Remplacer les points de ping par des icônes", + "description": "Pour les daltoniens, les points de ping peuvent être difficilement différenciables. Ceci remplacera les indicateurs par des icônes" + } + }, + "localization": { + "language": { + "label": "Langue" + }, + "firstDayOfWeek": { + "label": "Premier jour de la semaine", + "options": { + "monday": "Lundi", + "saturday": "Samedi", + "sunday": "Dimanche" + } + } + }, + "searchEngine": { + "title": "Moteur de recherche", + "custom": "Personnalisé", + "newTab": { + "label": "Ouvrir les résultats de la recherche dans un nouvel onglet" + }, + "autoFocus": { + "label": "Se placer sur la barre de recherche au chargement de la page.", + "description": "Ceci permet de placer automatiquement le curseur sur la barre de recherche lorsque vous naviguez sur les pages de tableau de bord. Ne fonctionnera que sur les PC." + }, + "template": { + "label": "URL de la requête", + "description": "Utilisez %s comme substitut pour la requête" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/zod.json b/public/locales/fr/zod.json new file mode 100644 index 000000000..eb18922e4 --- /dev/null +++ b/public/locales/fr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Ce champ est invalide", + "required": "Ce champ est requis", + "string": { + "startsWith": "Ce champ doit commencer par {{startsWith}}", + "endsWith": "Ce champ doit terminer par {{endsWith}}", + "includes": "Ce champ doit inclure {{includes}}" + }, + "tooSmall": { + "string": "Ce champ doit faire au moins {{minimum}} caractères", + "number": "Ce champ doit être supérieur ou égal à {{minimum}}" + }, + "tooBig": { + "string": "Ce champ doit faire au plus {{maximum}} caractères", + "number": "Ce champ doit être inférieur ou égal à {{maximum}}" + }, + "custom": { + "passwordMatch": "Les mots de passe doivent correspondre" + } + } +} \ No newline at end of file diff --git a/public/locales/he/authentication/invite.json b/public/locales/he/authentication/invite.json new file mode 100644 index 000000000..c837f02df --- /dev/null +++ b/public/locales/he/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "צור חשבון", + "title": "צור חשבון", + "text": "אנא הגדר את פרטי החשבון שלך למטה", + "form": { + "fields": { + "username": { + "label": "שם משתמש" + }, + "password": { + "label": "סיסמה" + }, + "passwordConfirmation": { + "label": "אימות סיסמא" + } + }, + "buttons": { + "submit": "צור חשבון" + } + }, + "notifications": { + "loading": { + "title": "יוצר חשבון...", + "text": "אנא המתן" + }, + "success": { + "title": "החשבון נוצר", + "text": "החשבון שלך נוצר בהצלחה" + }, + "error": { + "title": "שגיאה", + "text": "משהו השתבש, התקבלה השגיאה הבאה: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/he/authentication/login.json b/public/locales/he/authentication/login.json index b4e9fa11e..d79a3a63a 100644 --- a/public/locales/he/authentication/login.json +++ b/public/locales/he/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "התחבר/י", "title": "ברוך שובך!", - "text": "נא להזין סיסמה", + "text": "אנא הקלד את פרטי ההתחברות", "form": { "fields": { + "username": { + "label": "שם משתמש" + }, "password": { - "label": "סיסמה", - "placeholder": "הסיסמה שלך" + "label": "סיסמה" } }, "buttons": { "submit": "התחבר\\י" - } + }, + "afterLoginRedirection": "לאחר ההתחברות, תופנה אל {{url}}" }, - "notifications": { - "checking": { - "title": "סיסמה בבדיקה", - "message": "הסיסמה בבדיקה..." - }, - "correct": { - "title": "התחברת בהצלחה" - }, - "wrong": { - "title": "הסיסמה שגויה, נסה שנית" - } - } -} + "alert": "פרטי ההתחברות שלך שגויים או שחשבון זה אינו קיים. בבקשה נסה שוב." +} \ No newline at end of file diff --git a/public/locales/he/boards/common.json b/public/locales/he/boards/common.json new file mode 100644 index 000000000..322601915 --- /dev/null +++ b/public/locales/he/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "התאמה אישית של לוח" + } +} \ No newline at end of file diff --git a/public/locales/he/boards/customize.json b/public/locales/he/boards/customize.json new file mode 100644 index 000000000..162f5a2f5 --- /dev/null +++ b/public/locales/he/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "התאם אישית את לוח {{name}}", + "pageTitle": "התאמה אישית ללוח {{name}}", + "backToBoard": "חזרה ללוח", + "settings": { + "appearance": { + "primaryColor": "צבע ראשי", + "secondaryColor": "צבע משני" + } + }, + "save": { + "button": "שמור שינויים", + "note": "הזהר - יש לך שינויים שאינם נשמרו!" + }, + "notifications": { + "pending": { + "title": "שמירת התאמה אישית", + "message": "אנא המתן בזמן שאנו שומרים את ההתאמה האישית שלך" + }, + "success": { + "title": "ההתאמה האישית נשמרה", + "message": "ההתאמה האישית שלך נשמרה בהצלחה" + }, + "error": { + "title": "שגיאה", + "message": "לא ניתן לשמור שינויים" + } + } +} \ No newline at end of file diff --git a/public/locales/he/common.json b/public/locales/he/common.json index 60376e4b3..ed59819b7 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -3,9 +3,13 @@ "about": "אודות", "cancel": "בטל", "close": "סגור", + "back": "חזור", "delete": "מחיקה", "ok": "אישור", "edit": "עריכה", + "next": "הבא", + "previous": "הקודם", + "confirm": "לאשר", "enabled": "מאופשר", "disabled": "מושבת", "enableAll": "אפשר הכל", diff --git a/public/locales/he/layout/header.json b/public/locales/he/layout/header.json new file mode 100644 index 000000000..3ebc15d35 --- /dev/null +++ b/public/locales/he/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "זוהי תכונה ניסיונית של Homarr. אנא דווח על בעיות ב-GitHub או Discord." + }, + "search": { + "label": "חיפוש", + "engines": { + "web": "חפש את {{query}} באינטרנט", + "youtube": "חפש את {{query}} ב-YouTube", + "torrent": "חפש את {{query}} בטורנטים", + "movie": "חפש את {{query}} ב-{{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "החלפת ערכת נושא", + "preferences": "העדפות המשתמש", + "defaultBoard": "לוח ברירת מחדל", + "manage": "ניהול", + "about": { + "label": "אודות", + "new": "חדש" + }, + "logout": "התנתקות מ-{{username}}", + "login": "התחבר/י" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} תוצאות מובילות עבור {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/he/layout/manage.json b/public/locales/he/layout/manage.json new file mode 100644 index 000000000..fb1a00ddb --- /dev/null +++ b/public/locales/he/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "ניהול", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "תיעוד", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "דוקר" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/manage/boards.json b/public/locales/he/manage/boards.json new file mode 100644 index 000000000..ea0044e6d --- /dev/null +++ b/public/locales/he/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "אפליקציות", + "widgets": "ווידג'טים", + "categories": "קטגוריות" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "שם" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/manage/index.json b/public/locales/he/manage/index.json new file mode 100644 index 000000000..842599505 --- /dev/null +++ b/public/locales/he/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "ניהול", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/he/manage/users.json b/public/locales/he/manage/users.json new file mode 100644 index 000000000..51edc6a0d --- /dev/null +++ b/public/locales/he/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "באמצעות משתמשים, באפשרותך להגדיר מי יוכל לערוך את לוח המחוונים שלך. גרסאות עתידיות של Homarr יהיו בעלות שליטה פרטנית עוד יותר על הרשאות ולוחות.", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "משתמש" + } + }, + "tooltips": { + "deleteUser": "מחק משתמש", + "demoteAdmin": "הסרת מנהל מערכת", + "promoteToAdmin": "קדם למנהל מערכת" + }, + "modals": { + "delete": { + "title": "מחיקת משתמש {{name}}", + "text": "האם אתה בטוח שברצונך למחוק את המשתמש {{name}}? פעולה זו תמחק נתונים המשויכים לחשבון זה, אך לא כל לוחות מחוונים שנוצרו על ידי משתמש זה." + }, + "change-role": { + "promote": { + "title": "קדם את המשתמש {{name}} למנהל", + "text": "האם אתה בטוח שאתה רוצה לקדם את המשתמש {{name}} למנהל? זה ייתן למשתמש גישה לכל המשאבים במופע Homarr שלך." + }, + "demote": { + "title": "הורד את המשתמש {{name}} למשתמש", + "text": "האם אתה בטוח שאתה רוצה להוריד את המשתמש {{name}} למשתמש? פעולה זו תסיר את הגישה של המשתמש לכל המשאבים במופע Homarr שלך." + }, + "confirm": "לאשר" + } + }, + "searchDoesntMatch": "החיפוש שלך אינו תואם אף ערכים. אנא התאם את הסינון שלך." +} \ No newline at end of file diff --git a/public/locales/he/manage/users/create.json b/public/locales/he/manage/users/create.json new file mode 100644 index 000000000..5e6d0257a --- /dev/null +++ b/public/locales/he/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "צור משתמש", + "steps": { + "account": { + "title": "צעד ראשון", + "text": "צור חשבון", + "username": { + "label": "שם משתמש" + }, + "email": { + "label": "אימייל" + } + }, + "security": { + "title": "שלב שני", + "text": "סיסמה", + "password": { + "label": "סיסמה" + } + }, + "finish": { + "title": "אישור", + "text": "שמור לבסיס נתונים", + "card": { + "title": "בדוק את הקלט שלך", + "text": "לאחר שתשלח את הנתונים שלך למסד הנתונים, המשתמש יוכל להיכנס. האם אתה בטוח שברצונך לאחסן משתמש זה במסד הנתונים ולאפשר את הכניסה?" + }, + "table": { + "header": { + "property": "מאפיין", + "value": "ערך", + "username": "שם משתמש", + "email": "אימייל", + "password": "סיסמה" + }, + "notSet": "לא מוגדר", + "valid": "תקף" + }, + "failed": "יצירת משתמש נכשלה: {{error}}" + }, + "completed": { + "alert": { + "title": "המשתמש נוצר", + "text": "המשתמש נוצר במסד הנתונים. ניתן להתחבר כעת." + } + } + }, + "buttons": { + "generateRandomPassword": "צור אקראי", + "createAnother": "צור אחר" + } +} \ No newline at end of file diff --git a/public/locales/he/manage/users/invites.json b/public/locales/he/manage/users/invites.json new file mode 100644 index 000000000..7f1a8291e --- /dev/null +++ b/public/locales/he/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "העתק את ההזמנה", + "description": "ההזמנה שלך נוצרה. לאחר סגירת המודל הזה, לא תוכל להעתיק את הקישור הזה יותר. אם אינך מעוניין יותר להזמין את האדם האמור, תוכל למחוק הזמנה זו בכל עת.", + "invitationLink": "קישור הזמנה", + "details": { + "id": "", + "token": "טוקן" + }, + "button": { + "close": "העתק וסגור" + } + }, + "delete": { + "title": "", + "description": "האם אתה בטוח שברצונך למחוק את ההזמנה הזו? משתמשים עם קישור זה לא יוכלו עוד ליצור חשבון באמצעות קישור זה." + } + }, + "noInvites": "אין עדיין הזמנות." +} \ No newline at end of file diff --git a/public/locales/he/modules/calendar.json b/public/locales/he/modules/calendar.json index 234fa5e36..23c17e2b0 100644 --- a/public/locales/he/modules/calendar.json +++ b/public/locales/he/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "השתמש בAPI גרסא 4 של סונאר (Sonarr)" }, - "sundayStart": { - "label": "התחל את השבוע ביום ראשון" - }, "radarrReleaseType": { "label": "סוג שחרור של Radarr", "data": { diff --git a/public/locales/he/modules/dns-hole-controls.json b/public/locales/he/modules/dns-hole-controls.json index 0b8efe2bf..27d472687 100644 --- a/public/locales/he/modules/dns-hole-controls.json +++ b/public/locales/he/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "בקרות DNS", - "description": "שלוט ב-PiHole או ב-AdGuard מלוח המחוונים שלך" + "description": "שלוט ב-PiHole או ב-AdGuard מלוח המחוונים שלך", + "settings": { + "title": "הגדרות מערכת שמות המתחם", + "showToggleAllButtons": { + "label": "הצג את לחצני 'הפעל/השבת הכל'" + } + } } } \ No newline at end of file diff --git a/public/locales/he/password-requirements.json b/public/locales/he/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/he/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/he/settings/customization/access.json b/public/locales/he/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/he/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/he/settings/customization/general.json b/public/locales/he/settings/customization/general.json index 8bdf4649f..db04f2b0f 100644 --- a/public/locales/he/settings/customization/general.json +++ b/public/locales/he/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "נגישות", "description": "הגדר את Homarr עבור משתמשים מוגבלים ונכים" + }, + "access": { + "name": "גישה", + "description": "הגדר למי יש גישה ללוח שלך" } } } diff --git a/public/locales/he/settings/customization/page-appearance.json b/public/locales/he/settings/customization/page-appearance.json index 6a5d16b4f..9645a1356 100644 --- a/public/locales/he/settings/customization/page-appearance.json +++ b/public/locales/he/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "יתר על כן, התאם את לוח המחוונים שלך באמצעות CSS, מומלץ רק למשתמשים מנוסים", "placeholder": "CSS מותאם אישית יוחל אחרון", "applying": "מחיל CSS..." - }, - "buttons": { - "submit": "שלח" } -} +} \ No newline at end of file diff --git a/public/locales/he/tools/docker.json b/public/locales/he/tools/docker.json new file mode 100644 index 000000000..23d6bcfad --- /dev/null +++ b/public/locales/he/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "דוקר", + "alerts": { + "notConfigured": { + "text": "למופע ה-Homarr שלך לא הוגדר Docker או שהוא נכשל באחזור קונטיינרים. אנא עיין בתיעוד כיצד להגדיר את האינטגרציה." + } + }, + "modals": { + "selectBoard": { + "title": "בחר לוח", + "text": "בחר את הלוח שבו ברצונך להוסיף את האפליקציות עבור מכולות Docker שנבחרו.", + "form": { + "board": { + "label": "לוח" + }, + "submit": "הוסף יישומים" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "נוספו אפליקציות ללוח", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/user/preferences.json b/public/locales/he/user/preferences.json new file mode 100644 index 000000000..0cf3c379d --- /dev/null +++ b/public/locales/he/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "העדפות", + "pageTitle": "העדפות שלך", + "boards": { + "defaultBoard": { + "label": "לוח ברירת מחדל" + } + }, + "accessibility": { + "title": "נגישות", + "disablePulse": { + "label": "השבת את דופק הפינג", + "description": "כברירת מחדל, מחווני ping ב-Homarr יפעמו. זה עשוי להיות מעצבן. המחוון הזה ישבית את האנימציה" + }, + "replaceIconsWithDots": { + "label": "החלף את נקודות הפינג בסמלים", + "description": "עבור משתמשים עיוורי צבעים, נקודות פינג עשויות להיות בלתי ניתנות לזיהוי. זה יחליף אינדיקטורים בסמלים" + } + }, + "localization": { + "language": { + "label": "שפה" + }, + "firstDayOfWeek": { + "label": "היום הראשון בשבוע", + "options": { + "monday": "יום שני", + "saturday": "יום שבת", + "sunday": "יום ראשון" + } + } + }, + "searchEngine": { + "title": "מנוע חיפוש", + "custom": "מותאם אישית", + "newTab": { + "label": "פתיחת תוצאות חיפוש בכרטיסיה חדשה" + }, + "autoFocus": { + "label": "התמקד בסרגל החיפוש בטעינת העמוד.", + "description": "כשאתה מנווט לדפי הלוח יתבצע מיקוד אוטומטי בסרגל החיפוש. עובד רק במכשירים שולחניים." + }, + "template": { + "label": "כתובת URL של שאילתה", + "description": "השתמש ב-%s כמציין מיקום עבור השאילתה" + } + } +} \ No newline at end of file diff --git a/public/locales/he/zod.json b/public/locales/he/zod.json new file mode 100644 index 000000000..af11dd57e --- /dev/null +++ b/public/locales/he/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "שדה זה אינו חוקי", + "required": "זהו שדה חובה", + "string": { + "startsWith": "שדה זה חייב להתחיל עם {{startsWith}}", + "endsWith": "שדה זה חייב להסתיים עם {{endsWith}}", + "includes": "שדה זה חייב להכיל {{includes}}" + }, + "tooSmall": { + "string": "שדה זה חייב להיות באורך של {{minimum}} תווים לפחות", + "number": "שדה זה חייב להיות גדול או שווה ל {{minimum}}" + }, + "tooBig": { + "string": "שדה זה חייב להיות באורך של {{maximum}} תווים לכל היותר", + "number": "שדה זה חייב להיות קטן או שווה ל {{maximum}}" + }, + "custom": { + "passwordMatch": "הסיסמאות חייבות להיות תואמות" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/authentication/invite.json b/public/locales/hr/authentication/invite.json new file mode 100644 index 000000000..83dc33a98 --- /dev/null +++ b/public/locales/hr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Korisničko ime" + }, + "password": { + "label": "Lozinka" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Pogreška", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/authentication/login.json b/public/locales/hr/authentication/login.json index f82452fe7..af6898410 100644 --- a/public/locales/hr/authentication/login.json +++ b/public/locales/hr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Dobro došli natrag!", - "text": "Molimo unesite Vašu lozinku", + "text": "", "form": { "fields": { + "username": { + "label": "Korisničko ime" + }, "password": { - "label": "Lozinka", - "placeholder": "Vaša lozinka" + "label": "Lozinka" } }, "buttons": { "submit": "Prijavi se" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Provjeravam Vašu lozinku", - "message": "Vaša lozinka se provjerava..." - }, - "correct": { - "title": "Prijavljivanje je uspješno, preusmjeravam..." - }, - "wrong": { - "title": "Lozinka koju ste unijeli nije ispravna, molim pokušajte ponovno." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/hr/boards/common.json b/public/locales/hr/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/hr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/hr/boards/customize.json b/public/locales/hr/boards/customize.json new file mode 100644 index 000000000..a24310709 --- /dev/null +++ b/public/locales/hr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Pogreška", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 2bdafb8ea..ed25df44f 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -3,9 +3,13 @@ "about": "O aplikaciji", "cancel": "Otkaži", "close": "Zatvori", + "back": "", "delete": "Obriši", "ok": "U REDU", "edit": "Uredi", + "next": "", + "previous": "", + "confirm": "Potvrdi", "enabled": "Omogućeno", "disabled": "Onemogućeno", "enableAll": "Omogući sve", diff --git a/public/locales/hr/layout/header.json b/public/locales/hr/layout/header.json new file mode 100644 index 000000000..55b8fb84d --- /dev/null +++ b/public/locales/hr/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "O aplikaciji", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/layout/manage.json b/public/locales/hr/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/hr/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/boards.json b/public/locales/hr/manage/boards.json new file mode 100644 index 000000000..517e952b9 --- /dev/null +++ b/public/locales/hr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Naziv" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/index.json b/public/locales/hr/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/hr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/users.json b/public/locales/hr/manage/users.json new file mode 100644 index 000000000..0ceea7778 --- /dev/null +++ b/public/locales/hr/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Korisnik" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Potvrdi" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/hr/manage/users/create.json b/public/locales/hr/manage/users/create.json new file mode 100644 index 000000000..e3459c125 --- /dev/null +++ b/public/locales/hr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Korisničko ime" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Lozinka", + "password": { + "label": "Lozinka" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Korisničko ime", + "email": "", + "password": "Lozinka" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/users/invites.json b/public/locales/hr/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/hr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/hr/modules/calendar.json b/public/locales/hr/modules/calendar.json index cf0469a1e..0c2d9b4c8 100644 --- a/public/locales/hr/modules/calendar.json +++ b/public/locales/hr/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Koristi Sonarr v4 API" }, - "sundayStart": { - "label": "Započni tjedan u Nedjelju" - }, "radarrReleaseType": { "label": "Vrsta izdanja u Radarr-u", "data": { diff --git a/public/locales/hr/modules/dns-hole-controls.json b/public/locales/hr/modules/dns-hole-controls.json index 9badbc6f0..d4ce8084d 100644 --- a/public/locales/hr/modules/dns-hole-controls.json +++ b/public/locales/hr/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Kontrole DNS \"hole\"", - "description": "Upravljajte PiHole ili AdGuard iz svoje nadzorne ploče" + "description": "Upravljajte PiHole ili AdGuard iz svoje nadzorne ploče", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/hr/password-requirements.json b/public/locales/hr/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/hr/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/hr/settings/customization/access.json b/public/locales/hr/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/hr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/hr/settings/customization/general.json b/public/locales/hr/settings/customization/general.json index c3c1cf127..0afd406df 100644 --- a/public/locales/hr/settings/customization/general.json +++ b/public/locales/hr/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Pristupačnost", "description": "Konfigurišite Homarr za osobe sa invaliditetom" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/hr/settings/customization/page-appearance.json b/public/locales/hr/settings/customization/page-appearance.json index 299d3def3..3163b9698 100644 --- a/public/locales/hr/settings/customization/page-appearance.json +++ b/public/locales/hr/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Dodatno, prilagodite svoju nadzornu ploču koristeći CSS, što se preporučuje samo iskusnim korisnicima", "placeholder": "Prilagođeni CSS će se primijeniti posljednji", "applying": "Primjena CSS-a..." - }, - "buttons": { - "submit": "Pošalji" } -} +} \ No newline at end of file diff --git a/public/locales/hr/tools/docker.json b/public/locales/hr/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/hr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/user/preferences.json b/public/locales/hr/user/preferences.json new file mode 100644 index 000000000..5257eca67 --- /dev/null +++ b/public/locales/hr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Pristupačnost", + "disablePulse": { + "label": "Onemogući ping pulsiranje", + "description": "Prema zadanim postavkama, pokazatelji pinga u Homarru pulsiraju. To može biti iritantno. Ovim klizačem možete deaktivirati animaciju" + }, + "replaceIconsWithDots": { + "label": "Zamijenite točke ping-a s ikonicom", + "description": "Za osobe s daltonizmom, točke za ping mogu biti teško prepoznatljive. Ovo će zamijeniti indikatore ikonama" + } + }, + "localization": { + "language": { + "label": "Jezik" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Pretraživač", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL upita", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/zod.json b/public/locales/hr/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/hr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/authentication/invite.json b/public/locales/hu/authentication/invite.json new file mode 100644 index 000000000..3e5493efd --- /dev/null +++ b/public/locales/hu/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Fiók Létrehozása", + "title": "Fiók Létrehozása", + "text": "Kérjük, adja meg a hitelesítő adatokat", + "form": { + "fields": { + "username": { + "label": "Felhasználónév" + }, + "password": { + "label": "Jelszó" + }, + "passwordConfirmation": { + "label": "Jelszó megerősítése" + } + }, + "buttons": { + "submit": "Fiók létrehozása" + } + }, + "notifications": { + "loading": { + "title": "Fiók készítése", + "text": "Kérem várjon" + }, + "success": { + "title": "Fiók létrehozva", + "text": "A fiókod sikeresen létrehozva" + }, + "error": { + "title": "Hiba", + "text": "Valami elromlott, a következő hibát kaptam: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/authentication/login.json b/public/locales/hu/authentication/login.json index 80a555e41..8913d01bd 100644 --- a/public/locales/hu/authentication/login.json +++ b/public/locales/hu/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Bejelentkezés", "title": "Köszöntjük ismét!", - "text": "Kérjük, adja meg jelszavát", + "text": "Kérjük, adja meg hitelesítő adatait", "form": { "fields": { + "username": { + "label": "Felhasználónév" + }, "password": { - "label": "Jelszó", - "placeholder": "Az Ön jelszava" + "label": "Jelszó" } }, "buttons": { "submit": "Bejelentkezés" - } + }, + "afterLoginRedirection": "A bejelentkezés után a {{url}} oldalra kerül átirányításra" }, - "notifications": { - "checking": { - "title": "Jelszó ellenőrzése", - "message": "A jelszavadat ellenőrizzük..." - }, - "correct": { - "title": "Bejelentkezés sikeres, átirányítás..." - }, - "wrong": { - "title": "A megadott jelszó helytelen, kérjük, próbálja meg újra." - } - } -} + "alert": "A hitelesítő adatok helytelenek, vagy ez a fiók nem létezik. Kérjük, próbálja meg újra." +} \ No newline at end of file diff --git a/public/locales/hu/boards/common.json b/public/locales/hu/boards/common.json new file mode 100644 index 000000000..b74ab8a81 --- /dev/null +++ b/public/locales/hu/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Testreszabható tábla" + } +} \ No newline at end of file diff --git a/public/locales/hu/boards/customize.json b/public/locales/hu/boards/customize.json new file mode 100644 index 000000000..e95b6e18f --- /dev/null +++ b/public/locales/hu/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Testreszabás {{name}} Board", + "pageTitle": "Testreszabás a {{name}} Board számára", + "backToBoard": "Vissza a táblához", + "settings": { + "appearance": { + "primaryColor": "Elsődleges szín", + "secondaryColor": "Másodlagos szín" + } + }, + "save": { + "button": "Változások mentése", + "note": "Vigyázz, mert vannak mentetlen változtatásai!" + }, + "notifications": { + "pending": { + "title": "Testreszabás mentése", + "message": "Kérjük, várjon, amíg elmentjük a testreszabását" + }, + "success": { + "title": "Testreszabás mentve", + "message": "A testreszabása sikeresen el lett mentve" + }, + "error": { + "title": "Hiba", + "message": "A módosítások mentése nem lehetséges" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 8f2642786..080c740f4 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -3,9 +3,13 @@ "about": "Névjegy", "cancel": "Mégse", "close": "Bezár", + "back": "Vissza", "delete": "Törlés", "ok": "OK", "edit": "Szerkesztés", + "next": "Következő", + "previous": "Előző", + "confirm": "Megerősít", "enabled": "Engedélyezve", "disabled": "Letiltva", "enableAll": "Összes engedélyezése", diff --git a/public/locales/hu/layout/header.json b/public/locales/hu/layout/header.json new file mode 100644 index 000000000..c68bfac9e --- /dev/null +++ b/public/locales/hu/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Ez a Homarr kísérleti funkciója. Kérjük, jelezz bármilyen problémát a GitHubon vagy a Discordon." + }, + "search": { + "label": "Keresés", + "engines": { + "web": "Keresés a {{query}} oldalon a világhálón", + "youtube": "Keresés a {{query}} oldalon a YouTube-on", + "torrent": "Keresés a {{query}} torrentek után", + "movie": "Keresés a {{query}} oldalon: {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Téma váltása", + "preferences": "Beállítások", + "defaultBoard": "Alapértelmezett vezérlőpult", + "manage": "Kezelés", + "about": { + "label": "Névjegy", + "new": "Új" + }, + "logout": "{{username}} kijelentkezése", + "login": "Bejelentkezés" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} eredmények a {{search}}számára." + } + } +} \ No newline at end of file diff --git a/public/locales/hu/layout/manage.json b/public/locales/hu/layout/manage.json new file mode 100644 index 000000000..628431a23 --- /dev/null +++ b/public/locales/hu/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Nyitólap" + }, + "boards": { + "title": "Táblák" + }, + "users": { + "title": "Felhasználók", + "items": { + "manage": "Kezelés", + "invites": "Meghívók" + } + }, + "help": { + "title": "Segítség", + "items": { + "documentation": "Dokumentáció", + "report": "Probléma / hiba jelentése", + "discord": "Discord-szerverünk", + "contribute": "Hozzájárulás" + } + }, + "tools": { + "title": "Eszközök", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/layout/modals/about.json b/public/locales/hu/layout/modals/about.json index 5bdda3c32..3c1ca1d43 100644 --- a/public/locales/hu/layout/modals/about.json +++ b/public/locales/hu/layout/modals/about.json @@ -17,7 +17,7 @@ "configurationSchemaVersion": "Konfigurációs séma verziója", "configurationsCount": "Elérhető konfigurációk", "version": "Verzió", - "nodeEnvironment": "Csomópont környezet", + "nodeEnvironment": "Kiadási váltrozat", "i18n": "Betöltött I18n fordítási névterek", "locales": "Beállított I18n helyi nyelvek", "experimental_disableEditMode": "EXPERIMENTAL: Szerkesztési mód kikapcsolása" diff --git a/public/locales/hu/manage/boards.json b/public/locales/hu/manage/boards.json new file mode 100644 index 000000000..c1d0ea684 --- /dev/null +++ b/public/locales/hu/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Táblák", + "pageTitle": "Táblák", + "cards": { + "statistics": { + "apps": "Alkalmazások", + "widgets": "Widgetek", + "categories": "Kategóriák" + }, + "buttons": { + "view": "Tábla megtekintése" + }, + "menu": { + "setAsDefault": "Beállítás alapértelmezett táblaként", + "delete": { + "label": "Végleges törlés", + "disabled": "Törlés letiltva, mivel a régebbi Homarr komponensek nem teszik lehetővé az alapértelmezett konfiguráció törlését. A törlés a jövőben lehetséges lesz." + } + }, + "badges": { + "fileSystem": "Fájlrendszer", + "default": "Alapértelmezett" + } + }, + "buttons": { + "create": "Új tábla létrehozása" + }, + "modals": { + "delete": { + "title": "Tábla törlése", + "text": "Biztos vagy benne, hogy törölni akarod ezt a tráblát? Ezt a műveletet nem lehet visszacsinálni, és az adatok végleg elvesznek." + }, + "create": { + "title": "Tábla létrehozása", + "text": "A tábla létrehozása után a név nem változtatható meg.", + "form": { + "name": { + "label": "Név" + }, + "submit": "Létrehozás" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/index.json b/public/locales/hu/manage/index.json new file mode 100644 index 000000000..7bcfa846d --- /dev/null +++ b/public/locales/hu/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Kezelés", + "hero": { + "title": "Üdvözöllek újra, {{username}}", + "fallbackUsername": "Névtelen", + "subtitle": "Üdvözöljük az Ön Application Hubjában. Szervezzen, optimalizáljon és hódítson!" + }, + "quickActions": { + "title": "Gyors műveletek", + "boards": { + "title": "Az Ön táblái", + "subtitle": "Hozzon létre és kezelje tábláit" + }, + "inviteUsers": { + "title": "Új felhasználó meghívása", + "subtitle": "Regisztrációs meghívó létrehozása és elküldése" + }, + "manageUsers": { + "title": "Felhasználók kezelése", + "subtitle": "Felhasználók törlése és kezelése" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/users.json b/public/locales/hu/manage/users.json new file mode 100644 index 000000000..90a5c6c20 --- /dev/null +++ b/public/locales/hu/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Felhasználók", + "pageTitle": "Felhasználók kezelése", + "text": "A felhasználók segítségével beállíthatja, hogy ki szerkesztheti a műszerfalait. A Homarr jövőbeli verziói még részletesebb szabályozást biztosítanak a jogosultságok és a táblák felett.", + "buttons": { + "create": "Létrehozás" + }, + "table": { + "header": { + "user": "Felhasználó" + } + }, + "tooltips": { + "deleteUser": "Felhasználó törlése", + "demoteAdmin": "Adminisztrátor visszaminősítése", + "promoteToAdmin": "Adminisztrátorrá minősítés" + }, + "modals": { + "delete": { + "title": "Felhasználó törlése {{name}}", + "text": "Biztos, hogy törölni szeretné a {{name}} felhasználót? Ez törli az ehhez a fiókhoz tartozó adatokat, de nem törli az általa létrehozott táblákat." + }, + "change-role": { + "promote": { + "title": "A {{name}} felhasználó adminisztrátorrá történő előléptetése", + "text": "Biztos vagy benne, hogy a {{name}} felhasználót adminisztrátorrá akarod előléptetni? Ez hozzáférést biztosít a felhasználónak a Homarr-példány minden erőforrásához." + }, + "demote": { + "title": "A {{name}} nevű felhasználú lefokozása user szintre", + "text": "Biztos vagy benne, hogy a {{name}} felhasználót lefokozod user szintre? Ezáltal a felhasználó hozzáférése megszűnik a Homarr-példány minden erőforrásához." + }, + "confirm": "Megerősít" + } + }, + "searchDoesntMatch": "A keresés nem talál egyetlen bejegyzést sem. Kérjük, módosítsa a szűrőt." +} \ No newline at end of file diff --git a/public/locales/hu/manage/users/create.json b/public/locales/hu/manage/users/create.json new file mode 100644 index 000000000..831c1d33a --- /dev/null +++ b/public/locales/hu/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Felhasználó létrehozása", + "steps": { + "account": { + "title": "Első lépések", + "text": "Fiók létrehozása", + "username": { + "label": "Felhasználónév" + }, + "email": { + "label": "Email cím" + } + }, + "security": { + "title": "Második lépés", + "text": "Jelszó", + "password": { + "label": "Jelszó" + } + }, + "finish": { + "title": "Megerősítés", + "text": "Mentés az adatbázisba", + "card": { + "title": "Tekintse át az adatait", + "text": "Miután elküldte az adatokat az adatbázisba, a felhasználó be tud majd jelentkezni. Biztos, hogy ezt a felhasználót el akarja tárolni az adatbázisban, és aktiválni akarja a bejelentkezést?" + }, + "table": { + "header": { + "property": "Tulajdonság", + "value": "Érték", + "username": "Felhasználónév", + "email": "Email cím", + "password": "Jelszó" + }, + "notSet": "Nincs megadva", + "valid": "Érvényes" + }, + "failed": "A felhasználó létrehozása nem sikerült: {{error}}" + }, + "completed": { + "alert": { + "title": "A felhasználó létrehozásra került", + "text": "A felhasználót létrehoztuk az adatbázisban. Most már be tud jelentkezni." + } + } + }, + "buttons": { + "generateRandomPassword": "Jelszó generálás", + "createAnother": "Másik létrehozása" + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/users/invites.json b/public/locales/hu/manage/users/invites.json new file mode 100644 index 000000000..ca37f909f --- /dev/null +++ b/public/locales/hu/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Meghívók", + "pageTitle": "Felhasználói meghívók kezelése", + "description": "A meghívók segítségével meghívhat felhasználókat a Homarr-példányába. Egy meghívó csak egy bizonyos ideig érvényes, és csak egyszer használható fel. A lejárati időnek a létrehozáskor 5 perc és 12 hónap között kell lennie.", + "button": { + "createInvite": "Meghívó létrehozása", + "deleteInvite": "Meghívó törlése" + }, + "table": { + "header": { + "id": "Azonosító", + "creator": "Létrehozó", + "expires": "Lejárat", + "action": "Műveletek" + }, + "data": { + "expiresAt": "lejárt {{at}}", + "expiresIn": "ekkor{{in}}" + } + }, + "modals": { + "create": { + "title": "Meghívó létrehozása", + "description": "A lejárat után a meghívó már nem lesz érvényes, és a meghívó címzettje nem tud fiókot létrehozni.", + "form": { + "expires": "Lejárati idő", + "submit": "Létrehozás" + } + }, + "copy": { + "title": "Meghívó másolása", + "description": "Az Ön meghívója elkészült. Miután ez a modal bezárul, nem tudja többé másolni ezt a linket. Ha már nem kívánja meghívni az említett személyt, bármikor törölheti ezt a meghívót.", + "invitationLink": "Meghívó link", + "details": { + "id": "Azonosító", + "token": "Token" + }, + "button": { + "close": "Másolás és bezárás" + } + }, + "delete": { + "title": "Meghívó törlése", + "description": "Biztos, hogy törölni szeretné ezt a meghívót? Az ezzel a linkkel rendelkező felhasználók többé nem tudnak fiókot létrehozni a link használatával." + } + }, + "noInvites": "Még nincsenek meghívók." +} \ No newline at end of file diff --git a/public/locales/hu/modules/calendar.json b/public/locales/hu/modules/calendar.json index 5d504d6d0..093b05018 100644 --- a/public/locales/hu/modules/calendar.json +++ b/public/locales/hu/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Sonarr v4 API használata" }, - "sundayStart": { - "label": "Vasárnap a hét kezdete" - }, "radarrReleaseType": { "label": "Radarr kiadás típusa", "data": { @@ -22,7 +19,7 @@ "label": "Hétköznapok elrejtése" }, "showUnmonitored": { - "label": "" + "label": "Nem felügyelt elemek megjelenítése" }, "fontSize": { "label": "Betűméret", diff --git a/public/locales/hu/modules/dns-hole-controls.json b/public/locales/hu/modules/dns-hole-controls.json index 043203141..ea3994fd1 100644 --- a/public/locales/hu/modules/dns-hole-controls.json +++ b/public/locales/hu/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS blokkolók ellenőrzése", - "description": "A PiHole vagy az AdGuard vezérlése a műszerfalról" + "description": "A PiHole vagy az AdGuard vezérlése a műszerfalról", + "settings": { + "title": "DNS blokkolók vezérlő beállítások", + "showToggleAllButtons": { + "label": "'Minden engedélyezés/letiltás gombok megjelenítése" + } + } } } \ No newline at end of file diff --git a/public/locales/hu/password-requirements.json b/public/locales/hu/password-requirements.json new file mode 100644 index 000000000..b331cccdb --- /dev/null +++ b/public/locales/hu/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Tartalmazzon számot", + "lowercase": "Tartalmazzon kisbetűt", + "uppercase": "Tartalmazzon nagybetűt", + "special": "Tartalmazzon speciális karaktert", + "length": "Tartalmazzon legalább {{count}} karaktert" +} \ No newline at end of file diff --git a/public/locales/hu/settings/customization/access.json b/public/locales/hu/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/hu/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/hu/settings/customization/general.json b/public/locales/hu/settings/customization/general.json index a6eaddd53..e7cbef873 100644 --- a/public/locales/hu/settings/customization/general.json +++ b/public/locales/hu/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Kisegítő lehetőségek", "description": "A Homarr konfigurálása fogyatékkal élő és fogyatékkal élő felhasználók számára" + }, + "access": { + "name": "Hozzáférés", + "description": "Annak beállítása, hogy ki férhet hozzá a táblához" } } } diff --git a/public/locales/hu/settings/customization/page-appearance.json b/public/locales/hu/settings/customization/page-appearance.json index 9fc1bbd38..50bb74371 100644 --- a/public/locales/hu/settings/customization/page-appearance.json +++ b/public/locales/hu/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Továbbá, testreszabhatja műszerfalát CSS segítségével, csak tapasztalt felhasználóknak ajánlott", "placeholder": "Az egyéni CSS utoljára kerül alkalmazásra", "applying": "CSS alkalmazása..." - }, - "buttons": { - "submit": "Küldés" } -} +} \ No newline at end of file diff --git a/public/locales/hu/tools/docker.json b/public/locales/hu/tools/docker.json new file mode 100644 index 000000000..f2406909f --- /dev/null +++ b/public/locales/hu/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "A Homarr-példányodon nincs beállítva a Docker, vagy nem tudta lekérni a konténereket. Kérjük, olvassa el a dokumentációt az integráció beállításáról." + } + }, + "modals": { + "selectBoard": { + "title": "Válasszon egy táblát", + "text": "Válassza ki azt a táblát, ahová a kiválasztott Docker-konténerekhez tartozó alkalmazásokat szeretné hozzáadni.", + "form": { + "board": { + "label": "Tábla" + }, + "submit": "Alkalmazások hozzáadása" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Alkalmazások hozzáadása a táblához", + "message": "A kiválasztott Docker-konténerek alkalmazásai hozzá lettek adva a táblához." + }, + "error": { + "title": "Nem sikerült alkalmazásokat hozzáadni a táblához", + "message": "A kiválasztott Docker-konténerekhez tartozó alkalmazásokat nem lehetett hozzáadni a táblához." + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/user/preferences.json b/public/locales/hu/user/preferences.json new file mode 100644 index 000000000..a0b801652 --- /dev/null +++ b/public/locales/hu/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Beállítások", + "pageTitle": "Saját preferenciák", + "boards": { + "defaultBoard": { + "label": "Alapértelmezett tábla" + } + }, + "accessibility": { + "title": "Kisegítő lehetőségek", + "disablePulse": { + "label": "Ping letiltása", + "description": "Alapértelmezés szerint a Homarrban a pingjelzők pulzálni fognak. Ez irritáló lehet. Ez a csúszka kikapcsolja az animációt" + }, + "replaceIconsWithDots": { + "label": "Ping pontok ikonokkal való helyettesítése", + "description": "A színvak felhasználók számára a ping pöttyök felismerhetetlenek lehetnek. Ez a jelzőket ikonokkal helyettesíti" + } + }, + "localization": { + "language": { + "label": "Nyelv" + }, + "firstDayOfWeek": { + "label": "A hét első napja", + "options": { + "monday": "Hétfő", + "saturday": "Szombat", + "sunday": "Vasárnap" + } + } + }, + "searchEngine": { + "title": "Keresőmotor", + "custom": "Egyéni", + "newTab": { + "label": "Keresési eredmények megnyitása új lapon" + }, + "autoFocus": { + "label": "Keresősávon legyen a fókusz az oldal betöltésekor.", + "description": "Ez automatikusan keresősávba helyezi a kurzort, amikor a tábla oldalára navigál. Csak asztali eszközökön fog működni." + }, + "template": { + "label": "URL lekérdezés", + "description": "Használja a %s címet a lekérdezés helyőrzőjeként" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/zod.json b/public/locales/hu/zod.json new file mode 100644 index 000000000..f5a7fc585 --- /dev/null +++ b/public/locales/hu/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Ez a mező érvénytelen", + "required": "Ez a mező kötelező", + "string": { + "startsWith": "Ennek a mezőnek a {{startsWith}} kell kezdődnie", + "endsWith": "Ennek a mezőnek a {{endsWith}} kell végződnie", + "includes": "Ennek a mezőnek tartalmaznia kell a {{includes}} értéket" + }, + "tooSmall": { + "string": "Ennek a mezőnek legalább {{minimum}} karakter hosszúságúnak kell lennie", + "number": "Ennek a mezőnek nagyobbnak vagy egyenlőnek kell lennie a {{minimum}} értékkel" + }, + "tooBig": { + "string": "Ez a mező legfeljebb {{maximum}} karakter hosszúságú lehet", + "number": "Ennek a mezőnek kisebbnek vagy egyenlőnek kell lennie a {{maximum}} értékkel" + }, + "custom": { + "passwordMatch": "A jelszavaknak meg kell egyezniük" + } + } +} \ No newline at end of file diff --git a/public/locales/it/authentication/invite.json b/public/locales/it/authentication/invite.json new file mode 100644 index 000000000..19d231371 --- /dev/null +++ b/public/locales/it/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Nome utente" + }, + "password": { + "label": "Password" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Errore", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/authentication/login.json b/public/locales/it/authentication/login.json index c4f632b70..b1a6c9d3b 100644 --- a/public/locales/it/authentication/login.json +++ b/public/locales/it/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Bentornati!", - "text": "Inserisci la password", + "text": "", "form": { "fields": { + "username": { + "label": "Nome utente" + }, "password": { - "label": "Password", - "placeholder": "La tua password" + "label": "Password" } }, "buttons": { "submit": "Accedi" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Verifica della password", - "message": "La tua password è in fase di controllo..." - }, - "correct": { - "title": "Accesso effettuato, reindirizzamento..." - }, - "wrong": { - "title": "La password inserita non è corretta. Si prega di riprovare." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/it/boards/common.json b/public/locales/it/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/it/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/it/boards/customize.json b/public/locales/it/boards/customize.json new file mode 100644 index 000000000..a6e8e0421 --- /dev/null +++ b/public/locales/it/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Errore", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 8a651b927..be10804a9 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -3,9 +3,13 @@ "about": "Info", "cancel": "Annulla", "close": "Chiudi", + "back": "", "delete": "Elimina", "ok": "OK", "edit": "Modifica", + "next": "", + "previous": "", + "confirm": "Conferma", "enabled": "Abilitato", "disabled": "Disattivato", "enableAll": "Abilita tutto", diff --git a/public/locales/it/layout/header.json b/public/locales/it/layout/header.json new file mode 100644 index 000000000..d579e7055 --- /dev/null +++ b/public/locales/it/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Info", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/layout/manage.json b/public/locales/it/layout/manage.json new file mode 100644 index 000000000..2f81d8462 --- /dev/null +++ b/public/locales/it/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "Documentazione", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/manage/boards.json b/public/locales/it/manage/boards.json new file mode 100644 index 000000000..c2992be0a --- /dev/null +++ b/public/locales/it/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Applicazioni", + "widgets": "Widgets", + "categories": "Categorie" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Nome" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/manage/index.json b/public/locales/it/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/it/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/manage/users.json b/public/locales/it/manage/users.json new file mode 100644 index 000000000..6df578de1 --- /dev/null +++ b/public/locales/it/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Utente" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Conferma" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/it/manage/users/create.json b/public/locales/it/manage/users/create.json new file mode 100644 index 000000000..f39b63ad3 --- /dev/null +++ b/public/locales/it/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Nome utente" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Password", + "password": { + "label": "Password" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Nome utente", + "email": "", + "password": "Password" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/it/manage/users/invites.json b/public/locales/it/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/it/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/it/modules/calendar.json b/public/locales/it/modules/calendar.json index 224625d16..207585b3a 100644 --- a/public/locales/it/modules/calendar.json +++ b/public/locales/it/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Usa le API di Sonarr v4" }, - "sundayStart": { - "label": "Inizia la settimana di domenica" - }, "radarrReleaseType": { "label": "Tipo di release Radarr", "data": { @@ -22,7 +19,7 @@ "label": "Nascondi giorni della settimana" }, "showUnmonitored": { - "label": "" + "label": "Mostra elementi non monitorati" }, "fontSize": { "label": "Dimensioni carattere", diff --git a/public/locales/it/modules/dns-hole-controls.json b/public/locales/it/modules/dns-hole-controls.json index d945c396c..e0498e4d9 100644 --- a/public/locales/it/modules/dns-hole-controls.json +++ b/public/locales/it/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Controllo del DNS hole", - "description": "Controlla PiHole o AdGuard dalla tua dashboard" + "description": "Controlla PiHole o AdGuard dalla tua dashboard", + "settings": { + "title": "Impostazioni di controllo del DNS hole", + "showToggleAllButtons": { + "label": "Mostra i pulsanti \"Abilita/Disabilita tutto\"" + } + } } } \ No newline at end of file diff --git a/public/locales/it/password-requirements.json b/public/locales/it/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/customization/access.json b/public/locales/it/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/it/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/general.json b/public/locales/it/settings/customization/general.json index dccd092ac..cf523af00 100644 --- a/public/locales/it/settings/customization/general.json +++ b/public/locales/it/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibilità", "description": "Configura Homarr per utenti con disabilità" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/it/settings/customization/page-appearance.json b/public/locales/it/settings/customization/page-appearance.json index fd67a31b4..47ff7bc3e 100644 --- a/public/locales/it/settings/customization/page-appearance.json +++ b/public/locales/it/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Inoltre, personalizza la dashboard utilizzando i CSS, consigliato solo agli utenti esperti", "placeholder": "I CSS personalizzati saranno applicati per ultimi", "applying": "Applicazione CSS..." - }, - "buttons": { - "submit": "Invia" } -} +} \ No newline at end of file diff --git a/public/locales/it/tools/docker.json b/public/locales/it/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/it/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/user/preferences.json b/public/locales/it/user/preferences.json new file mode 100644 index 000000000..18f544f23 --- /dev/null +++ b/public/locales/it/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Accessibilità", + "disablePulse": { + "label": "Disabilita impulso ping", + "description": "Come impostazione predefinita, gli indicatori di ping in Homarr pulsano. Ciò può essere irritante. Questo slider disattiverà l'animazione" + }, + "replaceIconsWithDots": { + "label": "Sostituisci punti ping con icone", + "description": "Per gli utenti daltonici, i punti ping potrebbero essere irriconoscibili. Questo sostituirà gli indicatori con le icone" + } + }, + "localization": { + "language": { + "label": "Lingua" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Motore di ricerca", + "custom": "Personalizzato", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL di ricerca", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/zod.json b/public/locales/it/zod.json new file mode 100644 index 000000000..4008035c9 --- /dev/null +++ b/public/locales/it/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "Questo campo è obbligatorio", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/authentication/invite.json b/public/locales/ja/authentication/invite.json new file mode 100644 index 000000000..b0d5535d4 --- /dev/null +++ b/public/locales/ja/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "ユーザー名" + }, + "password": { + "label": "パスワード" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "エラー", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/authentication/login.json b/public/locales/ja/authentication/login.json index 81f5c33ad..3a917d233 100644 --- a/public/locales/ja/authentication/login.json +++ b/public/locales/ja/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "お帰りなさい", - "text": "パスワードを入力してください", + "text": "", "form": { "fields": { + "username": { + "label": "ユーザー名" + }, "password": { - "label": "パスワード", - "placeholder": "パスワード" + "label": "パスワード" } }, "buttons": { "submit": "サインイン" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "パスワードの確認", - "message": "パスワードは確認中です..." - }, - "correct": { - "title": "サインインに成功しました、リダイレクトします..." - }, - "wrong": { - "title": "入力されたパスワードが正しくありません。もう一度やり直してください。" - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/ja/boards/common.json b/public/locales/ja/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/ja/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/boards/customize.json b/public/locales/ja/boards/customize.json new file mode 100644 index 000000000..3d41769cd --- /dev/null +++ b/public/locales/ja/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "エラー", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 1d17ee804..9d4054455 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -3,9 +3,13 @@ "about": "About", "cancel": "キャンセル", "close": "閉じる", + "back": "", "delete": "削除", "ok": "よっしゃー", "edit": "編集", + "next": "", + "previous": "", + "confirm": "確認", "enabled": "有効", "disabled": "無効", "enableAll": "すべてを有効にする", diff --git a/public/locales/ja/layout/header.json b/public/locales/ja/layout/header.json new file mode 100644 index 000000000..16704d91c --- /dev/null +++ b/public/locales/ja/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "About", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/manage.json b/public/locales/ja/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/ja/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/boards.json b/public/locales/ja/manage/boards.json new file mode 100644 index 000000000..a4b5e3011 --- /dev/null +++ b/public/locales/ja/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "アプリ", + "widgets": "ウィジェット", + "categories": "カテゴリー" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "名称" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/index.json b/public/locales/ja/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/ja/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/users.json b/public/locales/ja/manage/users.json new file mode 100644 index 000000000..1459e5908 --- /dev/null +++ b/public/locales/ja/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "ユーザー" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "確認" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/ja/manage/users/create.json b/public/locales/ja/manage/users/create.json new file mode 100644 index 000000000..01c8b6fc6 --- /dev/null +++ b/public/locales/ja/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "ユーザー名" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "パスワード", + "password": { + "label": "パスワード" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "ユーザー名", + "email": "", + "password": "パスワード" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/users/invites.json b/public/locales/ja/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/ja/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/ja/modules/calendar.json b/public/locales/ja/modules/calendar.json index 445e0e0aa..1b5e1ce1d 100644 --- a/public/locales/ja/modules/calendar.json +++ b/public/locales/ja/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Sonarr v4 API を使用" }, - "sundayStart": { - "label": "週の始まりは日曜日" - }, "radarrReleaseType": { "label": "ラダーリリースタイプ", "data": { diff --git a/public/locales/ja/modules/dns-hole-controls.json b/public/locales/ja/modules/dns-hole-controls.json index 89d433f7d..c03b11dd5 100644 --- a/public/locales/ja/modules/dns-hole-controls.json +++ b/public/locales/ja/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNSホールコントロール", - "description": "ダッシュボードからPiHoleまたはAdGuardをコントロールする" + "description": "ダッシュボードからPiHoleまたはAdGuardをコントロールする", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/ja/password-requirements.json b/public/locales/ja/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/access.json b/public/locales/ja/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/ja/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/general.json b/public/locales/ja/settings/customization/general.json index 94235df41..24880ed79 100644 --- a/public/locales/ja/settings/customization/general.json +++ b/public/locales/ja/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "アクセシビリティ", "description": "障害のあるユーザーのためのHomarr設定" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/ja/settings/customization/page-appearance.json b/public/locales/ja/settings/customization/page-appearance.json index c9c6dbbd1..c61693067 100644 --- a/public/locales/ja/settings/customization/page-appearance.json +++ b/public/locales/ja/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "さらに、CSS を使用してダッシュボードをカスタマイズします。経験豊富なユーザーにのみお勧めします。", "placeholder": "カスタムCSSは最後に適用されます", "applying": "CSSを適用中..." - }, - "buttons": { - "submit": "送信" } -} +} \ No newline at end of file diff --git a/public/locales/ja/tools/docker.json b/public/locales/ja/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/ja/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/user/preferences.json b/public/locales/ja/user/preferences.json new file mode 100644 index 000000000..87f7eb7a4 --- /dev/null +++ b/public/locales/ja/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "アクセシビリティ", + "disablePulse": { + "label": "Pingパルスを無効にする", + "description": "デフォルトでは、HomarrのPingインジケータはパルスを発生させます。これは刺激的な可能性があります。このスライダーはアニメーションを無効にします" + }, + "replaceIconsWithDots": { + "label": "Pingのドットをアイコンに置き換える", + "description": "色覚障害のユーザーの場合、ping点が認識できない可能性があります。これはインジケータをアイコンに置き換えます。" + } + }, + "localization": { + "language": { + "label": "言語" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "検索エンジン", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "クエリURL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/zod.json b/public/locales/ja/zod.json new file mode 100644 index 000000000..ad013a666 --- /dev/null +++ b/public/locales/ja/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "このフィールドは必須です", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/authentication/invite.json b/public/locales/ko/authentication/invite.json new file mode 100644 index 000000000..63d158763 --- /dev/null +++ b/public/locales/ko/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "사용자 이름" + }, + "password": { + "label": "비밀번호" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "오류", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/authentication/login.json b/public/locales/ko/authentication/login.json index 4a484293f..1e7e07e17 100644 --- a/public/locales/ko/authentication/login.json +++ b/public/locales/ko/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "", "text": "", "form": { "fields": { + "username": { + "label": "사용자 이름" + }, "password": { - "label": "비밀번호", - "placeholder": "" + "label": "비밀번호" } }, "buttons": { "submit": "" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "", - "message": "" - }, - "correct": { - "title": "" - }, - "wrong": { - "title": "" - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/ko/boards/common.json b/public/locales/ko/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/ko/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/ko/boards/customize.json b/public/locales/ko/boards/customize.json new file mode 100644 index 000000000..5b69919a8 --- /dev/null +++ b/public/locales/ko/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "오류", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index d8ceab42f..30ee95c08 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -3,9 +3,13 @@ "about": "", "cancel": "취소", "close": "", + "back": "", "delete": "삭제", "ok": "", "edit": "수정", + "next": "", + "previous": "", + "confirm": "확인", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/ko/layout/header.json b/public/locales/ko/layout/header.json new file mode 100644 index 000000000..5e897dee2 --- /dev/null +++ b/public/locales/ko/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/layout/manage.json b/public/locales/ko/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/ko/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/boards.json b/public/locales/ko/manage/boards.json new file mode 100644 index 000000000..715c1b1f0 --- /dev/null +++ b/public/locales/ko/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "이름" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/index.json b/public/locales/ko/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/ko/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/users.json b/public/locales/ko/manage/users.json new file mode 100644 index 000000000..422c10ae2 --- /dev/null +++ b/public/locales/ko/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "확인" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/ko/manage/users/create.json b/public/locales/ko/manage/users/create.json new file mode 100644 index 000000000..d73f7ec4d --- /dev/null +++ b/public/locales/ko/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "사용자 이름" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "비밀번호", + "password": { + "label": "비밀번호" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "사용자 이름", + "email": "", + "password": "비밀번호" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/users/invites.json b/public/locales/ko/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/ko/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/ko/modules/calendar.json b/public/locales/ko/modules/calendar.json index 858c62276..ce421e8d7 100644 --- a/public/locales/ko/modules/calendar.json +++ b/public/locales/ko/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "" }, - "sundayStart": { - "label": "한 주의 시작을 일요일로 설정" - }, "radarrReleaseType": { "label": "", "data": { diff --git a/public/locales/ko/modules/dns-hole-controls.json b/public/locales/ko/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/ko/modules/dns-hole-controls.json +++ b/public/locales/ko/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/ko/password-requirements.json b/public/locales/ko/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ko/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ko/settings/customization/access.json b/public/locales/ko/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/ko/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/ko/settings/customization/general.json b/public/locales/ko/settings/customization/general.json index 2e9b08103..6c0cee3ef 100644 --- a/public/locales/ko/settings/customization/general.json +++ b/public/locales/ko/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/ko/settings/customization/page-appearance.json b/public/locales/ko/settings/customization/page-appearance.json index 6dab8a150..608fc2a7b 100644 --- a/public/locales/ko/settings/customization/page-appearance.json +++ b/public/locales/ko/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "", "placeholder": "", "applying": "" - }, - "buttons": { - "submit": "적용" } -} +} \ No newline at end of file diff --git a/public/locales/ko/tools/docker.json b/public/locales/ko/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/ko/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/user/preferences.json b/public/locales/ko/user/preferences.json new file mode 100644 index 000000000..c86eb8b6e --- /dev/null +++ b/public/locales/ko/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "언어" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "검색 엔진", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "쿼리 URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/zod.json b/public/locales/ko/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/ko/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/authentication/invite.json b/public/locales/lol/authentication/invite.json new file mode 100644 index 000000000..6efdf72c2 --- /dev/null +++ b/public/locales/lol/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Usernaem" + }, + "password": { + "label": "Password" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Error!", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/authentication/login.json b/public/locales/lol/authentication/login.json index aad381afa..874a3ca0a 100644 --- a/public/locales/lol/authentication/login.json +++ b/public/locales/lol/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Welcom Bak!", - "text": "Plz Entr Ur Pasword", + "text": "", "form": { "fields": { + "username": { + "label": "Usernaem" + }, "password": { - "label": "Password", - "placeholder": "Ur Pasword" + "label": "Password" } }, "buttons": { "submit": "Sign In" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Checkin Ur Pasword", - "message": "Ur Pasword Iz Bean Checkd..." - }, - "correct": { - "title": "Sign In Succesful, Redirectin..." - }, - "wrong": { - "title": "Teh Pasword U Enterd Iz Incorrect, Plz Try Again." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/lol/boards/common.json b/public/locales/lol/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/lol/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/boards/customize.json b/public/locales/lol/boards/customize.json new file mode 100644 index 000000000..0ea867e90 --- /dev/null +++ b/public/locales/lol/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Error!", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/common.json b/public/locales/lol/common.json index 464592119..9dec6422d 100644 --- a/public/locales/lol/common.json +++ b/public/locales/lol/common.json @@ -3,9 +3,13 @@ "about": "'bout", "cancel": "Cancel", "close": "Cloes", + "back": "", "delete": "Deleet", "ok": "K", "edit": "Edit", + "next": "", + "previous": "", + "confirm": "", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/lol/layout/header.json b/public/locales/lol/layout/header.json new file mode 100644 index 000000000..7f6ec26bd --- /dev/null +++ b/public/locales/lol/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "'bout", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/layout/manage.json b/public/locales/lol/layout/manage.json new file mode 100644 index 000000000..ad71ddb87 --- /dev/null +++ b/public/locales/lol/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Dockah" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/boards.json b/public/locales/lol/manage/boards.json new file mode 100644 index 000000000..bf8f5be51 --- /dev/null +++ b/public/locales/lol/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Naym" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/index.json b/public/locales/lol/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/lol/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/users.json b/public/locales/lol/manage/users.json new file mode 100644 index 000000000..afbd4e20e --- /dev/null +++ b/public/locales/lol/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/lol/manage/users/create.json b/public/locales/lol/manage/users/create.json new file mode 100644 index 000000000..fde7a1029 --- /dev/null +++ b/public/locales/lol/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Usernaem" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Password", + "password": { + "label": "Password" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Usernaem", + "email": "", + "password": "Password" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/users/invites.json b/public/locales/lol/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/lol/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/lol/modules/calendar.json b/public/locales/lol/modules/calendar.json index 6334e4ee3..eb0be8322 100644 --- a/public/locales/lol/modules/calendar.json +++ b/public/locales/lol/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "" }, - "sundayStart": { - "label": "Start teh week on Sunday" - }, "radarrReleaseType": { "label": "Radarr Release Type", "data": { diff --git a/public/locales/lol/modules/dns-hole-controls.json b/public/locales/lol/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/lol/modules/dns-hole-controls.json +++ b/public/locales/lol/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/lol/password-requirements.json b/public/locales/lol/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/lol/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/lol/settings/customization/access.json b/public/locales/lol/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/lol/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/settings/customization/general.json b/public/locales/lol/settings/customization/general.json index 5245b8535..404088be8 100644 --- a/public/locales/lol/settings/customization/general.json +++ b/public/locales/lol/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/lol/settings/customization/page-appearance.json b/public/locales/lol/settings/customization/page-appearance.json index 85c53601d..8b03f12e7 100644 --- a/public/locales/lol/settings/customization/page-appearance.json +++ b/public/locales/lol/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "", "placeholder": "Custom CSS Will Be Applid Last", "applying": "" - }, - "buttons": { - "submit": "Submit" } -} +} \ No newline at end of file diff --git a/public/locales/lol/tools/docker.json b/public/locales/lol/tools/docker.json new file mode 100644 index 000000000..2fc69c743 --- /dev/null +++ b/public/locales/lol/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Dockah", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/user/preferences.json b/public/locales/lol/user/preferences.json new file mode 100644 index 000000000..36515b3a0 --- /dev/null +++ b/public/locales/lol/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Languaeg" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Search engien", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Quewee URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/zod.json b/public/locales/lol/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/lol/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/authentication/invite.json b/public/locales/lv/authentication/invite.json new file mode 100644 index 000000000..990b2433b --- /dev/null +++ b/public/locales/lv/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Lietotājvārds" + }, + "password": { + "label": "Parole" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Kļūda", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/authentication/login.json b/public/locales/lv/authentication/login.json index b6efb61b8..218166bbd 100644 --- a/public/locales/lv/authentication/login.json +++ b/public/locales/lv/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Sveicināti atpakaļ!", - "text": "Lūdzu, ievadiet savu paroli", + "text": "", "form": { "fields": { + "username": { + "label": "Lietotājvārds" + }, "password": { - "label": "Parole", - "placeholder": "Jūsu parole" + "label": "Parole" } }, "buttons": { "submit": "Pierakstīties" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Notiek Jūsu paroles pārbaude", - "message": "Jūsu parole tiek pārbaudīta..." - }, - "correct": { - "title": "Pierakstīšanās veiksmīga, pāradresēšana..." - }, - "wrong": { - "title": "Jūsu ievadītā parole ir nepareiza. Mēģiniet vēlreiz." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/lv/boards/common.json b/public/locales/lv/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/lv/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/lv/boards/customize.json b/public/locales/lv/boards/customize.json new file mode 100644 index 000000000..99a336329 --- /dev/null +++ b/public/locales/lv/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Kļūda", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 25f66c9ec..c620b1c37 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -3,9 +3,13 @@ "about": "Par Programmu", "cancel": "Atcelt", "close": "Aizvērt", + "back": "", "delete": "Dzēst", "ok": "OK", "edit": "Rediģēt", + "next": "", + "previous": "", + "confirm": "Apstipriniet", "enabled": "Iespējots", "disabled": "Atspējots", "enableAll": "Iespējot visu", diff --git a/public/locales/lv/layout/common.json b/public/locales/lv/layout/common.json index 31a775bfb..427d59670 100644 --- a/public/locales/lv/layout/common.json +++ b/public/locales/lv/layout/common.json @@ -18,7 +18,7 @@ "menu": { "moveUp": "Virzīt augšup", "moveDown": "Virzīt lejup", - "addCategory": "", + "addCategory": "Pievienot kategoriju {{location}}", "addAbove": "virs", "addBelow": "zem" } diff --git a/public/locales/lv/layout/header.json b/public/locales/lv/layout/header.json new file mode 100644 index 000000000..3d3fdef26 --- /dev/null +++ b/public/locales/lv/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Par Programmu", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/layout/header/actions/toggle-edit-mode.json b/public/locales/lv/layout/header/actions/toggle-edit-mode.json index 7fb3f1ca5..10b8d8593 100644 --- a/public/locales/lv/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/lv/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Rediģēšanas režīms ir ieslēgts priekš <1>{{size}} izmēra", "text": "Tagad varat pielāgot un konfigurēt programmas. Izmaiņas netiek saglabātas, kamēr neesat izgājuši no rediģēšanas režīma" }, - "unloadEvent": "" + "unloadEvent": "Iziet no rediģēšanas režīma, lai saglabātu izmaiņas" } diff --git a/public/locales/lv/layout/manage.json b/public/locales/lv/layout/manage.json new file mode 100644 index 000000000..0548fbc66 --- /dev/null +++ b/public/locales/lv/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "Dokumentācija", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/layout/modals/about.json b/public/locales/lv/layout/modals/about.json index 76593358c..0b0c2ccd2 100644 --- a/public/locales/lv/layout/modals/about.json +++ b/public/locales/lv/layout/modals/about.json @@ -6,7 +6,7 @@ "key": "Īsinājumtaustiņš", "action": "Darbība", "keybinds": "Taustiņu saites", - "documentation": "", + "documentation": "Dokumentācija", "actions": { "toggleTheme": "Pārslēgt gaišo/tumšo motīvu", "focusSearchBar": "Fokusēties uz meklēšanas joslu", @@ -23,7 +23,7 @@ "experimental_disableEditMode": "EKSPERIMENTĀLISKI: Izslēgt rediģēšanas režīmu" }, "version": { - "new": "", - "dropdown": "" + "new": "Jaunums: {{newVersion}}", + "dropdown": "Versija {{newVersion}} ir pieejama! Pašreizējā versija ir {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/lv/layout/modals/add-app.json b/public/locales/lv/layout/modals/add-app.json index 8039b51e8..25c690478 100644 --- a/public/locales/lv/layout/modals/add-app.json +++ b/public/locales/lv/layout/modals/add-app.json @@ -55,8 +55,8 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Aplikācijas Nosaukuma Fonta Lielums", + "description": "Iestatiet fonta lielumu, kad lietotnes nosaukums tiek parādīts uz flīzes." }, "appNameStatus": { "label": "Lietotnes Nosaukuma Statuss", diff --git a/public/locales/lv/manage/boards.json b/public/locales/lv/manage/boards.json new file mode 100644 index 000000000..fec3796e5 --- /dev/null +++ b/public/locales/lv/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Lietotnes", + "widgets": "Logrīki", + "categories": "Kategorijas" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Nosaukums" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/index.json b/public/locales/lv/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/lv/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/users.json b/public/locales/lv/manage/users.json new file mode 100644 index 000000000..abb211b6c --- /dev/null +++ b/public/locales/lv/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Lietotājs" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Apstipriniet" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/lv/manage/users/create.json b/public/locales/lv/manage/users/create.json new file mode 100644 index 000000000..7906faefb --- /dev/null +++ b/public/locales/lv/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Lietotājvārds" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Parole", + "password": { + "label": "Parole" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Lietotājvārds", + "email": "", + "password": "Parole" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/users/invites.json b/public/locales/lv/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/lv/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/lv/modules/bookmark.json b/public/locales/lv/modules/bookmark.json index 463f764c5..cd2cd2f5e 100644 --- a/public/locales/lv/modules/bookmark.json +++ b/public/locales/lv/modules/bookmark.json @@ -29,7 +29,7 @@ }, "item": { "validation": { - "length": "", + "length": "Garumam jābūt no {{shortest}} līdz {{longest}}", "invalidLink": "Nederīga saite", "errorMsg": "Netika saglabāts, jo bija validācijas kļūdas. Lūdzu, pielāgojiet savus ievades datus" }, diff --git a/public/locales/lv/modules/calendar.json b/public/locales/lv/modules/calendar.json index 6cc60c70c..f456e8836 100644 --- a/public/locales/lv/modules/calendar.json +++ b/public/locales/lv/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Izmantot Sonarr v4 API" }, - "sundayStart": { - "label": "Sākt nedēļu ar pirmdienu" - }, "radarrReleaseType": { "label": "Radarr laiduma tips", "data": { @@ -22,7 +19,7 @@ "label": "Paslēpt darba dienas" }, "showUnmonitored": { - "label": "" + "label": "Rādīt neuzraudzītos vienumus" }, "fontSize": { "label": "Fonta Izmērs", diff --git a/public/locales/lv/modules/dns-hole-controls.json b/public/locales/lv/modules/dns-hole-controls.json index 0b9168de2..1e87fbd1e 100644 --- a/public/locales/lv/modules/dns-hole-controls.json +++ b/public/locales/lv/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS cauruma kontrole", - "description": "Vadiet PiHole vai AdGuard no sava informācijas paneļa" + "description": "Vadiet PiHole vai AdGuard no sava informācijas paneļa", + "settings": { + "title": "DNS cauruma kontroles iestatījumi", + "showToggleAllButtons": { + "label": "Rādīt 'Ieslēgt/Izslēgt Visus' Pogas" + } + } } } \ No newline at end of file diff --git a/public/locales/lv/modules/media-requests-list.json b/public/locales/lv/modules/media-requests-list.json index 43348d1a8..1b0a1cb26 100644 --- a/public/locales/lv/modules/media-requests-list.json +++ b/public/locales/lv/modules/media-requests-list.json @@ -8,7 +8,7 @@ "label": "Aizstāt saites ar ārējo saimnieku" }, "openInNewTab": { - "label": "" + "label": "Atvērt saites jaunā cilnē" } } }, diff --git a/public/locales/lv/modules/media-requests-stats.json b/public/locales/lv/modules/media-requests-stats.json index 3b0b41b47..2e8afd77e 100644 --- a/public/locales/lv/modules/media-requests-stats.json +++ b/public/locales/lv/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Aizstāt saites ar ārējo saimnieku" }, "openInNewTab": { - "label": "" + "label": "Atvērt saites jaunā cilnē" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", + "title": "Mediju statistika", + "pending": "Nepabeigtie apstiprinājumi", + "tvRequests": "TV pieprasījumi", + "movieRequests": "Filmu pieprasījumi", + "approved": "Jau apstiprināts", "totalRequests": "Kopā" }, "userStats": { "title": "Top Lietotāji", - "requests": "" + "requests": "Pieprasījumi: {{number}}" } } diff --git a/public/locales/lv/password-requirements.json b/public/locales/lv/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/lv/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/lv/settings/customization/access.json b/public/locales/lv/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/lv/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/lv/settings/customization/general.json b/public/locales/lv/settings/customization/general.json index 9e399fc53..ba189649c 100644 --- a/public/locales/lv/settings/customization/general.json +++ b/public/locales/lv/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Piekļūstamība", "description": "Homarr konfigurēšana lietotājiem ar invaliditāti un/vai ar īpašām vajadzībām" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/lv/settings/customization/page-appearance.json b/public/locales/lv/settings/customization/page-appearance.json index 6864737b7..733c577ab 100644 --- a/public/locales/lv/settings/customization/page-appearance.json +++ b/public/locales/lv/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Turklāt pielāgojiet paneli, izmantojot CSS, ieteicams tikai pieredzējušiem lietotājiem", "placeholder": "Pielāgotais CSS tiks piemērots pēdējais", "applying": "CSS piemērošana..." - }, - "buttons": { - "submit": "Iesniegt" } -} +} \ No newline at end of file diff --git a/public/locales/lv/settings/general/cache-buttons.json b/public/locales/lv/settings/general/cache-buttons.json index 685994c48..20e35b696 100644 --- a/public/locales/lv/settings/general/cache-buttons.json +++ b/public/locales/lv/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Kešatmiņas tīrīšana", "selector": { - "label": "", + "label": "Izvēlieties kešatmiņas(-u), kuras(-as) vēlaties dzēst", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Ping vaicājumi", + "repositoryIcons": "Attālinātās/vietējās ikonas", + "calendar&medias": "Mediji no Kalendāra", + "weather": "Laikapstākļu dati" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Kešatmiņa Iztīrīta", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Notīrīt visu kešatmiņu", + "notificationMessage": "Ir notīrīta visa kešatmiņa" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Atlasīto vaicājumu notīrīšana", + "notificationMessageSingle": "Kešatmiņa priekš {{value}} ir izdzēsta", + "notificationMessageMulti": "Kešatmiņa priekš {{values}} ir izdzēsta" } } } \ No newline at end of file diff --git a/public/locales/lv/settings/general/edit-mode-toggle.json b/public/locales/lv/settings/general/edit-mode-toggle.json index b868591d0..3397d6fbf 100644 --- a/public/locales/lv/settings/general/edit-mode-toggle.json +++ b/public/locales/lv/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Pārslēgt rediģēšanas režīmu", + "enable": "Iespējot rediģēšanas režīmu", + "disable": "Atspējot rediģēšanas režīmu" }, "form": { - "label": "", - "message": "", + "label": "Rediģēt paroli", + "message": "Lai pārslēgtu rediģēšanas režīmu, ir jāievada parole, kas ievadīta environment variable ar nosaukumu EDIT_MODE_PASSWORD . Ja tas nav iestatīts, jūs nevarat ieslēgt un izslēgt rediģēšanas režīmu.", "submit": "Iesniegt" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Izdevās", + "message": "Veiksmīgi pārslēgts rediģēšanas režīms, notiek lapas pārlāde..." }, "error": { "title": "Kļūda", - "message": "" + "message": "Neizdevās pārslēgt rediģēšanas režīmu, lūdzu, mēģiniet vēlreiz." } } } \ No newline at end of file diff --git a/public/locales/lv/tools/docker.json b/public/locales/lv/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/lv/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/user/preferences.json b/public/locales/lv/user/preferences.json new file mode 100644 index 000000000..f142b38f9 --- /dev/null +++ b/public/locales/lv/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Piekļūstamība", + "disablePulse": { + "label": "Atslēgt Ping pulsāciju", + "description": "Pēc noklusējuma Homarr Ping indikatori pulsē. Tas var būt kaitinoši. Šis slīdnis atslēgs animāciju" + }, + "replaceIconsWithDots": { + "label": "Aizstāt Ping punktiņus ar ikonām", + "description": "Krāsu akliem lietotājiem Ping punktiņi var būt neatpazīstami. Tas aizstās indikatorus ar ikonām" + } + }, + "localization": { + "language": { + "label": "Valoda" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Meklētājdzinējs", + "custom": "Pielāgots", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Pieprasījuma URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/zod.json b/public/locales/lv/zod.json new file mode 100644 index 000000000..5ef63b058 --- /dev/null +++ b/public/locales/lv/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "Šis lauks ir obligāts", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/authentication/invite.json b/public/locales/nl/authentication/invite.json new file mode 100644 index 000000000..cfb53d8d8 --- /dev/null +++ b/public/locales/nl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Gebruikersnaam" + }, + "password": { + "label": "Wachtwoord" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Fout", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/authentication/login.json b/public/locales/nl/authentication/login.json index e4408eeba..6f3662ce7 100644 --- a/public/locales/nl/authentication/login.json +++ b/public/locales/nl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Welkom terug!", - "text": "Voer uw wachtwoord in", + "text": "", "form": { "fields": { + "username": { + "label": "Gebruikersnaam" + }, "password": { - "label": "Wachtwoord", - "placeholder": "Uw wachtwoord" + "label": "Wachtwoord" } }, "buttons": { "submit": "Inloggen" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Bezig met uw wachtwoord controleren", - "message": "Uw wachtwoord wordt gecontroleerd..." - }, - "correct": { - "title": "Log in succesvol, redirect..." - }, - "wrong": { - "title": "Het ingevoerde wachtwoord is onjuist, probeer het opnieuw." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/nl/boards/common.json b/public/locales/nl/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/nl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/nl/boards/customize.json b/public/locales/nl/boards/customize.json new file mode 100644 index 000000000..564f7794e --- /dev/null +++ b/public/locales/nl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Fout", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 6c29e0197..64258e03a 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -3,9 +3,13 @@ "about": "Over", "cancel": "Annuleer", "close": "Sluiten", + "back": "", "delete": "Verwijder", "ok": "OK", "edit": "Wijzig", + "next": "", + "previous": "", + "confirm": "Bevestig", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/nl/layout/header.json b/public/locales/nl/layout/header.json new file mode 100644 index 000000000..d176b6e89 --- /dev/null +++ b/public/locales/nl/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Over", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/manage.json b/public/locales/nl/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/nl/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/boards.json b/public/locales/nl/manage/boards.json new file mode 100644 index 000000000..04e667026 --- /dev/null +++ b/public/locales/nl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Naam" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/index.json b/public/locales/nl/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/nl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/users.json b/public/locales/nl/manage/users.json new file mode 100644 index 000000000..2c0256a69 --- /dev/null +++ b/public/locales/nl/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Gebruiker" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Bevestig" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/nl/manage/users/create.json b/public/locales/nl/manage/users/create.json new file mode 100644 index 000000000..58fd129f2 --- /dev/null +++ b/public/locales/nl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Gebruikersnaam" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Wachtwoord", + "password": { + "label": "Wachtwoord" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Gebruikersnaam", + "email": "", + "password": "Wachtwoord" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/users/invites.json b/public/locales/nl/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/nl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/nl/modules/calendar.json b/public/locales/nl/modules/calendar.json index 6e8a5419e..e5d0063fb 100644 --- a/public/locales/nl/modules/calendar.json +++ b/public/locales/nl/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Gebruik Sonarr v4 API" }, - "sundayStart": { - "label": "Begin de week op zondag" - }, "radarrReleaseType": { "label": "Radarr release type", "data": { diff --git a/public/locales/nl/modules/dns-hole-controls.json b/public/locales/nl/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/nl/modules/dns-hole-controls.json +++ b/public/locales/nl/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/nl/password-requirements.json b/public/locales/nl/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/nl/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/access.json b/public/locales/nl/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/nl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/general.json b/public/locales/nl/settings/customization/general.json index 5003a2b12..2a0c37653 100644 --- a/public/locales/nl/settings/customization/general.json +++ b/public/locales/nl/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json index 14bfcc6eb..2cb430867 100644 --- a/public/locales/nl/settings/customization/page-appearance.json +++ b/public/locales/nl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Pas uw dashboard verder aan met behulp van CSS, alleen aanbevolen voor ervaren gebruikers", "placeholder": "Eigen CSS wordt als laatste toegepast", "applying": "CSS toepassen..." - }, - "buttons": { - "submit": "Indienen" } -} +} \ No newline at end of file diff --git a/public/locales/nl/tools/docker.json b/public/locales/nl/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/nl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/user/preferences.json b/public/locales/nl/user/preferences.json new file mode 100644 index 000000000..58f23d580 --- /dev/null +++ b/public/locales/nl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Taal" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Zoekmachine", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Query URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/zod.json b/public/locales/nl/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/nl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/authentication/invite.json b/public/locales/no/authentication/invite.json new file mode 100644 index 000000000..51e8e1599 --- /dev/null +++ b/public/locales/no/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Brukernavn" + }, + "password": { + "label": "Passord" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Feil", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/authentication/login.json b/public/locales/no/authentication/login.json index a2f47329a..04c4c8381 100644 --- a/public/locales/no/authentication/login.json +++ b/public/locales/no/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Velkommen tilbake!", - "text": "Skriv inn passord", + "text": "", "form": { "fields": { + "username": { + "label": "Brukernavn" + }, "password": { - "label": "Passord", - "placeholder": "Ditt passord" + "label": "Passord" } }, "buttons": { "submit": "Logg inn" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Sjekker passordet ditt", - "message": "Ditt passord blir sjekket..." - }, - "correct": { - "title": "Innlogging vellykket, omdirigerer..." - }, - "wrong": { - "title": "Passordet du skrev inn er feil, prøv igjen." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/no/boards/common.json b/public/locales/no/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/no/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/no/boards/customize.json b/public/locales/no/boards/customize.json new file mode 100644 index 000000000..e043370c8 --- /dev/null +++ b/public/locales/no/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Feil", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/common.json b/public/locales/no/common.json index 74aef7c71..96706c7aa 100644 --- a/public/locales/no/common.json +++ b/public/locales/no/common.json @@ -3,9 +3,13 @@ "about": "Info", "cancel": "Avbryt", "close": "Lukk", + "back": "", "delete": "Slett", "ok": "OK", "edit": "Rediger", + "next": "", + "previous": "", + "confirm": "Bekreft", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/no/layout/header.json b/public/locales/no/layout/header.json new file mode 100644 index 000000000..d579e7055 --- /dev/null +++ b/public/locales/no/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Info", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/layout/manage.json b/public/locales/no/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/no/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/manage/boards.json b/public/locales/no/manage/boards.json new file mode 100644 index 000000000..baaa8f8c9 --- /dev/null +++ b/public/locales/no/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Navn" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/manage/index.json b/public/locales/no/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/no/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/manage/users.json b/public/locales/no/manage/users.json new file mode 100644 index 000000000..cdb351c9a --- /dev/null +++ b/public/locales/no/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Bruker" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Bekreft" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/no/manage/users/create.json b/public/locales/no/manage/users/create.json new file mode 100644 index 000000000..127f5372a --- /dev/null +++ b/public/locales/no/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Brukernavn" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Passord", + "password": { + "label": "Passord" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Brukernavn", + "email": "", + "password": "Passord" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/no/manage/users/invites.json b/public/locales/no/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/no/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/no/modules/calendar.json b/public/locales/no/modules/calendar.json index c776856d3..434e2b514 100644 --- a/public/locales/no/modules/calendar.json +++ b/public/locales/no/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Bruk Sonarr v4 API" }, - "sundayStart": { - "label": "Start uken på søndag" - }, "radarrReleaseType": { "label": "Radarr utgivelsestype", "data": { diff --git a/public/locales/no/modules/dns-hole-controls.json b/public/locales/no/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/no/modules/dns-hole-controls.json +++ b/public/locales/no/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/no/password-requirements.json b/public/locales/no/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/no/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/no/settings/customization/access.json b/public/locales/no/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/no/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/general.json b/public/locales/no/settings/customization/general.json index 3cb392ab8..7d8ef66e3 100644 --- a/public/locales/no/settings/customization/general.json +++ b/public/locales/no/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/no/settings/customization/page-appearance.json b/public/locales/no/settings/customization/page-appearance.json index 1d35c749d..480a24074 100644 --- a/public/locales/no/settings/customization/page-appearance.json +++ b/public/locales/no/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Videre kan du tilpasse dashbordet ved hjelp av CSS, dette er bare anbefalt for erfarne brukere", "placeholder": "Egendefinert CSS vil bli brukt sist", "applying": "Tar i bruk CSS..." - }, - "buttons": { - "submit": "Legg til" } -} +} \ No newline at end of file diff --git a/public/locales/no/tools/docker.json b/public/locales/no/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/no/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/user/preferences.json b/public/locales/no/user/preferences.json new file mode 100644 index 000000000..2ae0a6e61 --- /dev/null +++ b/public/locales/no/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Språk" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Søkemotor", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "SpørringsURL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/no/zod.json b/public/locales/no/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/no/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/authentication/invite.json b/public/locales/pl/authentication/invite.json new file mode 100644 index 000000000..1c8f1dd92 --- /dev/null +++ b/public/locales/pl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Nazwa użytkownika" + }, + "password": { + "label": "Hasło" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Błąd", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/authentication/login.json b/public/locales/pl/authentication/login.json index 785767ee2..047e1d2a8 100644 --- a/public/locales/pl/authentication/login.json +++ b/public/locales/pl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Witaj ponownie!", - "text": "Proszę podać hasło", + "text": "", "form": { "fields": { + "username": { + "label": "Nazwa użytkownika" + }, "password": { - "label": "Hasło", - "placeholder": "Twoje hasło" + "label": "Hasło" } }, "buttons": { "submit": "Zaloguj się" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Sprawdzanie hasła", - "message": "Twoje hasło jest sprawdzane..." - }, - "correct": { - "title": "Logowanie zakończone sukcesem, przekierowanie..." - }, - "wrong": { - "title": "Wprowadzone hasło jest nieprawidłowe, proszę spróbować ponownie." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/pl/boards/common.json b/public/locales/pl/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/pl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/boards/customize.json b/public/locales/pl/boards/customize.json new file mode 100644 index 000000000..c0558737d --- /dev/null +++ b/public/locales/pl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Błąd", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index 694691c7e..97441483a 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -3,9 +3,13 @@ "about": "O programie", "cancel": "Anuluj", "close": "Zamknij", + "back": "", "delete": "Usuń", "ok": "OK", "edit": "Edytuj", + "next": "", + "previous": "", + "confirm": "Potwierdź", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/pl/layout/header.json b/public/locales/pl/layout/header.json new file mode 100644 index 000000000..57c54ce6b --- /dev/null +++ b/public/locales/pl/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "O programie", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/layout/manage.json b/public/locales/pl/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/pl/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/boards.json b/public/locales/pl/manage/boards.json new file mode 100644 index 000000000..e84542ab6 --- /dev/null +++ b/public/locales/pl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Nazwa" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/index.json b/public/locales/pl/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/pl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/users.json b/public/locales/pl/manage/users.json new file mode 100644 index 000000000..6f28101b3 --- /dev/null +++ b/public/locales/pl/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Użytkownik" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Potwierdź" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/pl/manage/users/create.json b/public/locales/pl/manage/users/create.json new file mode 100644 index 000000000..7c9065e7e --- /dev/null +++ b/public/locales/pl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Nazwa użytkownika" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Hasło", + "password": { + "label": "Hasło" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Nazwa użytkownika", + "email": "", + "password": "Hasło" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/users/invites.json b/public/locales/pl/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/pl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/pl/modules/calendar.json b/public/locales/pl/modules/calendar.json index 926330efd..223ebf831 100644 --- a/public/locales/pl/modules/calendar.json +++ b/public/locales/pl/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Użyj API Sonarr v4" }, - "sundayStart": { - "label": "Rozpoczynaj tydzień od niedzieli" - }, "radarrReleaseType": { "label": "Typ zwolnienia Radarr", "data": { diff --git a/public/locales/pl/modules/dns-hole-controls.json b/public/locales/pl/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/pl/modules/dns-hole-controls.json +++ b/public/locales/pl/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/pl/password-requirements.json b/public/locales/pl/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/access.json b/public/locales/pl/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/pl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/general.json b/public/locales/pl/settings/customization/general.json index 8a1ab7df5..fdb697073 100644 --- a/public/locales/pl/settings/customization/general.json +++ b/public/locales/pl/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/pl/settings/customization/page-appearance.json b/public/locales/pl/settings/customization/page-appearance.json index 69eb7d86e..38a94be16 100644 --- a/public/locales/pl/settings/customization/page-appearance.json +++ b/public/locales/pl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Jeszcze bardziej dostosuj swój pulpit za pomocą CSS, zalecane tylko dla doświadczonych użytkowników", "placeholder": "Custom CSS zostanie zastosowany jako ostatni", "applying": "Zastosowanie CSS..." - }, - "buttons": { - "submit": "Zgłoś" } -} +} \ No newline at end of file diff --git a/public/locales/pl/tools/docker.json b/public/locales/pl/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/pl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/user/preferences.json b/public/locales/pl/user/preferences.json new file mode 100644 index 000000000..c684bcd97 --- /dev/null +++ b/public/locales/pl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Język" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Silnik wyszukiwania", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Adres URL zapytania", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/zod.json b/public/locales/pl/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/pl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/authentication/invite.json b/public/locales/pt/authentication/invite.json new file mode 100644 index 000000000..d5820ff7c --- /dev/null +++ b/public/locales/pt/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Usuário" + }, + "password": { + "label": "Senha" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Erro", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/authentication/login.json b/public/locales/pt/authentication/login.json index 5d0d72984..fa633285d 100644 --- a/public/locales/pt/authentication/login.json +++ b/public/locales/pt/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Bem-vindo de volta!", - "text": "Por favor introduza a sua palavra-passe", + "text": "", "form": { "fields": { + "username": { + "label": "Usuário" + }, "password": { - "label": "Senha", - "placeholder": "Sua senha" + "label": "Senha" } }, "buttons": { "submit": "Iniciar sessão" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Conferindo sua senha", - "message": "Sua senha está sendo verificada..." - }, - "correct": { - "title": "Entrar com sucesso, redireccionando..." - }, - "wrong": { - "title": "A senha que introduziu está incorrecta, por favor tente novamente." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/pt/boards/common.json b/public/locales/pt/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/pt/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/pt/boards/customize.json b/public/locales/pt/boards/customize.json new file mode 100644 index 000000000..845a047be --- /dev/null +++ b/public/locales/pt/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Erro", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 6ac7a128c..ce7e9de21 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -3,9 +3,13 @@ "about": "Sobre", "cancel": "Cancelar", "close": "Fechar", + "back": "", "delete": "Apagar", "ok": "OK", "edit": "Editar", + "next": "", + "previous": "", + "confirm": "Confirme", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/pt/layout/header.json b/public/locales/pt/layout/header.json new file mode 100644 index 000000000..2093f3701 --- /dev/null +++ b/public/locales/pt/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Sobre", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/layout/manage.json b/public/locales/pt/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/pt/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/boards.json b/public/locales/pt/manage/boards.json new file mode 100644 index 000000000..a006ef163 --- /dev/null +++ b/public/locales/pt/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Nome" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/index.json b/public/locales/pt/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/pt/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/users.json b/public/locales/pt/manage/users.json new file mode 100644 index 000000000..536df29bf --- /dev/null +++ b/public/locales/pt/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Usuário" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Confirme" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/pt/manage/users/create.json b/public/locales/pt/manage/users/create.json new file mode 100644 index 000000000..90cfd1d7b --- /dev/null +++ b/public/locales/pt/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Usuário" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Senha", + "password": { + "label": "Senha" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Usuário", + "email": "", + "password": "Senha" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/users/invites.json b/public/locales/pt/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/pt/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/pt/modules/calendar.json b/public/locales/pt/modules/calendar.json index 9b036f55e..f9e466eb2 100644 --- a/public/locales/pt/modules/calendar.json +++ b/public/locales/pt/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Utilizar Sonarr v4 API" }, - "sundayStart": { - "label": "Comece a semana no Domingo" - }, "radarrReleaseType": { "label": "Tipo de libertação de Radarr", "data": { diff --git a/public/locales/pt/modules/dns-hole-controls.json b/public/locales/pt/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/pt/modules/dns-hole-controls.json +++ b/public/locales/pt/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/pt/password-requirements.json b/public/locales/pt/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pt/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pt/settings/customization/access.json b/public/locales/pt/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/pt/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/pt/settings/customization/general.json b/public/locales/pt/settings/customization/general.json index 9036d8c92..1bc97ebae 100644 --- a/public/locales/pt/settings/customization/general.json +++ b/public/locales/pt/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/pt/settings/customization/page-appearance.json b/public/locales/pt/settings/customization/page-appearance.json index 3423ae2ab..b6657f8d3 100644 --- a/public/locales/pt/settings/customization/page-appearance.json +++ b/public/locales/pt/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "", "placeholder": "O CSS personalizado será aplicado por último", "applying": "Aplicando CSS..." - }, - "buttons": { - "submit": "Enviar" } -} +} \ No newline at end of file diff --git a/public/locales/pt/tools/docker.json b/public/locales/pt/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/pt/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/user/preferences.json b/public/locales/pt/user/preferences.json new file mode 100644 index 000000000..2724b1dda --- /dev/null +++ b/public/locales/pt/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Idioma" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Motor de busca", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Consulta URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/zod.json b/public/locales/pt/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/pt/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/authentication/invite.json b/public/locales/ru/authentication/invite.json new file mode 100644 index 000000000..3bd05bdfe --- /dev/null +++ b/public/locales/ru/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Создать аккаунт", + "title": "Создать аккаунт", + "text": "Пожалуйста, укажите свои полномочия ниже", + "form": { + "fields": { + "username": { + "label": "Логин" + }, + "password": { + "label": "Пароль" + }, + "passwordConfirmation": { + "label": "Подтверждение пароля" + } + }, + "buttons": { + "submit": "Создать аккаунт" + } + }, + "notifications": { + "loading": { + "title": "Идет создание аккаунта...", + "text": "Пожалуйста, подождите" + }, + "success": { + "title": "Аккаунт создан", + "text": "Ваш аккаунт был успешно создан" + }, + "error": { + "title": "Ошибка", + "text": "Что-то пошло не так, произошла следующая ошибка: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/authentication/login.json b/public/locales/ru/authentication/login.json index 8e500d48c..149baf7b0 100644 --- a/public/locales/ru/authentication/login.json +++ b/public/locales/ru/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Войти", "title": "С возвращением!", - "text": "Пожалуйста, введите ваш пароль", + "text": "Введите ваши учетные данные", "form": { "fields": { + "username": { + "label": "Логин" + }, "password": { - "label": "Пароль", - "placeholder": "Ваш пароль" + "label": "Пароль" } }, "buttons": { "submit": "Войти" - } + }, + "afterLoginRedirection": "После входа вы будете перенаправлены на сайт {{url}}" }, - "notifications": { - "checking": { - "title": "Проверка пароля", - "message": "Ваш пароль проверяется..." - }, - "correct": { - "title": "Вход выполнен, перенаправление..." - }, - "wrong": { - "title": "Введен неверный пароль, попробуйте еще раз." - } - } -} + "alert": "Ваши учетные данные неверны или эта учетная запись не существует. Пожалуйста, попробуйте еще раз." +} \ No newline at end of file diff --git a/public/locales/ru/boards/common.json b/public/locales/ru/boards/common.json new file mode 100644 index 000000000..195fe05c0 --- /dev/null +++ b/public/locales/ru/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Кастомизировать доску" + } +} \ No newline at end of file diff --git a/public/locales/ru/boards/customize.json b/public/locales/ru/boards/customize.json new file mode 100644 index 000000000..aac4f78f1 --- /dev/null +++ b/public/locales/ru/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Кастомизировать доску {{name}}", + "pageTitle": "Кастомизировать доску {{name}}", + "backToBoard": "Назад к доске", + "settings": { + "appearance": { + "primaryColor": "Основной цвет", + "secondaryColor": "Дополнительный цвет" + } + }, + "save": { + "button": "Сохранить изменения", + "note": "Осторожно, у вас есть несохраненные изменения!" + }, + "notifications": { + "pending": { + "title": "Сохранение кастомизации", + "message": "Пожалуйста, подождите, пока мы сохраняем вашу кастомизацию" + }, + "success": { + "title": "Кастомизация сохранена", + "message": "Ваша кастомизация успешно сохранена" + }, + "error": { + "title": "Ошибка", + "message": "Невозможно сохранить изменения" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 16729a682..c9d0bbcf2 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -3,9 +3,13 @@ "about": "О программе", "cancel": "Отмена", "close": "Закрыть", + "back": "", "delete": "Удалить", "ok": "ОК", "edit": "Изменить", + "next": "", + "previous": "", + "confirm": "Подтвердить", "enabled": "Включено", "disabled": "Отключено", "enableAll": "Включить всё", diff --git a/public/locales/ru/layout/header.json b/public/locales/ru/layout/header.json new file mode 100644 index 000000000..efe322f6d --- /dev/null +++ b/public/locales/ru/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Это экспериментальная функция Homarr. Пожалуйста, сообщайте о любых проблемах на GitHub или Discord." + }, + "search": { + "label": "Поиск", + "engines": { + "web": "Поиск {{query}} в Интернете", + "youtube": "Поиск {{query}} на YouTube", + "torrent": "Поиск торрентов {{query}}", + "movie": "Поиск {{query}} на {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Поменять тему", + "preferences": "Предпочтения пользователя", + "defaultBoard": "Доска по умолчанию", + "manage": "Управлять", + "about": { + "label": "О программе", + "new": "Новое" + }, + "logout": "Выйти из {{username}}", + "login": "Войти" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Топ {{count}} результатов для {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/ru/layout/manage.json b/public/locales/ru/layout/manage.json new file mode 100644 index 000000000..28b7916b0 --- /dev/null +++ b/public/locales/ru/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Главная" + }, + "boards": { + "title": "Доски" + }, + "users": { + "title": "Пользователи", + "items": { + "manage": "Управлять", + "invites": "Приглашения" + } + }, + "help": { + "title": "Помощь", + "items": { + "documentation": "Документация", + "report": "Сообщить о проблеме / ошибке", + "discord": "Дискорд сообщество", + "contribute": "Внести вклад" + } + }, + "tools": { + "title": "Инструменты", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/boards.json b/public/locales/ru/manage/boards.json new file mode 100644 index 000000000..e9465a18e --- /dev/null +++ b/public/locales/ru/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Доски", + "pageTitle": "Доски", + "cards": { + "statistics": { + "apps": "Приложения", + "widgets": "Виджеты", + "categories": "Категории" + }, + "buttons": { + "view": "Просмотр доски" + }, + "menu": { + "setAsDefault": "Установить в качестве доски по умолчанию", + "delete": { + "label": "Удалить окончательно", + "disabled": "Удаление отключено, так как старые компоненты Homarr не позволяют удалять конфигурацию по умолчанию. Удаление будет возможно в будущем." + } + }, + "badges": { + "fileSystem": "Файловая система", + "default": "По умолчанию" + } + }, + "buttons": { + "create": "Создать новую доску" + }, + "modals": { + "delete": { + "title": "Удалить доску", + "text": "Вы уверены, что хотите удалить эту доску? Это действие не может быть отменено, и ваши данные будут потеряны безвозвратно." + }, + "create": { + "title": "Создать доску", + "text": "Название не может быть изменено после создания доски.", + "form": { + "name": { + "label": "Имя" + }, + "submit": "Создать" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/index.json b/public/locales/ru/manage/index.json new file mode 100644 index 000000000..cb399210e --- /dev/null +++ b/public/locales/ru/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Управлять", + "hero": { + "title": "Добро пожаловать, {{username}}", + "fallbackUsername": "Аноним", + "subtitle": "Добро пожаловать в Ваш центр приложений. Организуйте, оптимизируйте и побеждайте!" + }, + "quickActions": { + "title": "Быстрые действия", + "boards": { + "title": "Ваши доски", + "subtitle": "Создание и управление досками" + }, + "inviteUsers": { + "title": "Пригласить нового пользователя", + "subtitle": "Создание и отправка приглашения на регистрацию" + }, + "manageUsers": { + "title": "Управлять пользователями", + "subtitle": "Удаление и управление пользователями" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/users.json b/public/locales/ru/manage/users.json new file mode 100644 index 000000000..dee199d78 --- /dev/null +++ b/public/locales/ru/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Пользователи", + "pageTitle": "Управлять пользователями", + "text": "Используя пользователей, вы можете настроить, кто может редактировать ваши панели. В будущих версиях Homarr будет обеспечен еще более детальный контроль над разрешениями и досками.", + "buttons": { + "create": "Создать" + }, + "table": { + "header": { + "user": "Пользователь" + } + }, + "tooltips": { + "deleteUser": "Удалить пользователя", + "demoteAdmin": "Понизить администратора", + "promoteToAdmin": "Повысить до администратора" + }, + "modals": { + "delete": { + "title": "Удалить пользователя {{name}}", + "text": "Вы уверены, что хотите удалить пользователя {{name}}? При этом будут удалены данные, связанные с этим аккаунтом, но не все созданные этим пользователем панели." + }, + "change-role": { + "promote": { + "title": "Повысить пользователя {{name}} до админа", + "text": "Вы уверены, что хотите повысить статус пользователя {{name}} до админа? Это даст пользователю доступ ко всем ресурсам экземпляра Homarr." + }, + "demote": { + "title": "Понизить пользователя {{name}} до пользователя", + "text": "Вы уверены, что хотите понизить статус пользователя {{name}} до пользователя? Это приведет к удалению доступа пользователя ко всем ресурсам экземпляра Homarr." + }, + "confirm": "Подтвердить" + } + }, + "searchDoesntMatch": "Ваш поиск не соответствует ни одной записи. Пожалуйста, настройте свой фильтр." +} \ No newline at end of file diff --git a/public/locales/ru/manage/users/create.json b/public/locales/ru/manage/users/create.json new file mode 100644 index 000000000..55f7f1981 --- /dev/null +++ b/public/locales/ru/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Создать пользователя", + "steps": { + "account": { + "title": "Первый шаг", + "text": "Создать аккаунт", + "username": { + "label": "Логин" + }, + "email": { + "label": "Электронная почта" + } + }, + "security": { + "title": "Второй шаг", + "text": "Пароль", + "password": { + "label": "Пароль" + } + }, + "finish": { + "title": "Подтверждение", + "text": "Сохранить в базе данных", + "card": { + "title": "Анализ исходных данных", + "text": "После отправки данных в базу данных пользователь сможет войти. Вы уверены, что хотите сохранить этого пользователя в базе данных и активировать вход?" + }, + "table": { + "header": { + "property": "Свойство", + "value": "Значение", + "username": "Логин", + "email": "Электронная почта", + "password": "Пароль" + }, + "notSet": "Не указано", + "valid": "Действующий" + }, + "failed": "Не удалось создать пользователя: {{error}}" + }, + "completed": { + "alert": { + "title": "Пользователь был создан", + "text": "Пользователь был создан в базе данных. Теперь он может войти." + } + } + }, + "buttons": { + "generateRandomPassword": "Генерировать случайно", + "createAnother": "Создать другое" + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/users/invites.json b/public/locales/ru/manage/users/invites.json new file mode 100644 index 000000000..3895f9127 --- /dev/null +++ b/public/locales/ru/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Приглашения пользователей", + "pageTitle": "Управление приглашениями пользователей", + "description": "С помощью приглашений вы можете приглашать пользователей в свой экземпляр Homarr. Приглашение действует только в течение определенного времени и может быть использовано один раз. При создании приглашения срок его действия должен составлять от 5 минут до 12 месяцев.", + "button": { + "createInvite": "Создать приглашение", + "deleteInvite": "Удалить приглашение" + }, + "table": { + "header": { + "id": "ID", + "creator": "Создатель", + "expires": "Истекает", + "action": "Действия" + }, + "data": { + "expiresAt": "истек срок действия {{at}}", + "expiresIn": "через {{in}}" + } + }, + "modals": { + "create": { + "title": "Создать приглашение", + "description": "По истечении этого срока приглашение перестает быть действительным, и получатель приглашения не сможет создать аккаунт.", + "form": { + "expires": "Срок действия", + "submit": "Создать" + } + }, + "copy": { + "title": "Копия приглашения", + "description": "Ваше приглашение было сгенерировано. После закрытия этого модального окна Вы больше не сможете скопировать эту ссылку. Если вы больше не хотите приглашать указанного человека, вы можете удалить это приглашение в любое время.", + "invitationLink": "Ссылка на приглашение", + "details": { + "id": "ID", + "token": "Токен" + }, + "button": { + "close": "Копирование и Удаление" + } + }, + "delete": { + "title": "Удалить приглашение", + "description": "Вы уверены, что хотите удалить это приглашение? Пользователи, получившие эту ссылку, больше не смогут создать аккаунт по этой ссылке." + } + }, + "noInvites": "Приглашений пока нет." +} \ No newline at end of file diff --git a/public/locales/ru/modules/calendar.json b/public/locales/ru/modules/calendar.json index 700acad57..5a97d9e4b 100644 --- a/public/locales/ru/modules/calendar.json +++ b/public/locales/ru/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Использовать Sonarr v4 API" }, - "sundayStart": { - "label": "Воскресенье — начало недели" - }, "radarrReleaseType": { "label": "Тип релиза в Radarr", "data": { @@ -22,7 +19,7 @@ "label": "Скрыть дни недели" }, "showUnmonitored": { - "label": "" + "label": "Показать неконтролируемые элементы" }, "fontSize": { "label": "Размер шрифта", diff --git a/public/locales/ru/modules/dns-hole-controls.json b/public/locales/ru/modules/dns-hole-controls.json index 8015b3f6d..865407878 100644 --- a/public/locales/ru/modules/dns-hole-controls.json +++ b/public/locales/ru/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Управление фильтрующими DNS", - "description": "Управляйте PiHole или AdGuard с панели управления" + "description": "Управляйте PiHole или AdGuard с панели управления", + "settings": { + "title": "Настройки управления отверстиями DNS", + "showToggleAllButtons": { + "label": "Показать кнопки \"Включить/Выключить все" + } + } } } \ No newline at end of file diff --git a/public/locales/ru/password-requirements.json b/public/locales/ru/password-requirements.json new file mode 100644 index 000000000..d26345189 --- /dev/null +++ b/public/locales/ru/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Включать цифры", + "lowercase": "Включать строчные буквы", + "uppercase": "Включать строчные буквы", + "special": "Включать специальные символы", + "length": "Включать не менее {{count}} символов" +} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/access.json b/public/locales/ru/settings/customization/access.json new file mode 100644 index 000000000..906f7dd13 --- /dev/null +++ b/public/locales/ru/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Разрешить анонимность", + "description": "Разрешить пользователям, которые не вошли, просматривать вашу доску" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/general.json b/public/locales/ru/settings/customization/general.json index 53cc68077..7bfcdfdb5 100644 --- a/public/locales/ru/settings/customization/general.json +++ b/public/locales/ru/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Спец. возможности", "description": "Настроить Homarr для пользователей с ограниченными возможностями и инвалидов" + }, + "access": { + "name": "Доступ", + "description": "Настроить, кто имеет доступ к вашей доске" } } } diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json index 6bdcd025e..f97f0a8a2 100644 --- a/public/locales/ru/settings/customization/page-appearance.json +++ b/public/locales/ru/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Далее, настройте свою панель с помощью CSS, рекомендуется только для опытных пользователей", "placeholder": "Пользовательский CSS будет применяться в последнюю очередь", "applying": "Применение CSS..." - }, - "buttons": { - "submit": "Подтвердить" } -} +} \ No newline at end of file diff --git a/public/locales/ru/tools/docker.json b/public/locales/ru/tools/docker.json new file mode 100644 index 000000000..47ad955ad --- /dev/null +++ b/public/locales/ru/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "В вашем экземпляре Homarr не настроен Docker или произошла ошибка при получении контейнеров. Пожалуйста, ознакомьтесь с документацией по настройке интеграции." + } + }, + "modals": { + "selectBoard": { + "title": "Выберите доску", + "text": "Выберите доску, на которую необходимо добавить приложения для выбранных Docker-контейнеров.", + "form": { + "board": { + "label": "Доска" + }, + "submit": "Добавить приложения" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Добавление приложений на доску", + "message": "Приложения для выбранных Docker-контейнеров были добавлены на доску." + }, + "error": { + "title": "Не удалось добавить приложения на доску", + "message": "Приложения для выбранных Docker-контейнеров не могут быть добавлены на доску." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/user/preferences.json b/public/locales/ru/user/preferences.json new file mode 100644 index 000000000..8121924ec --- /dev/null +++ b/public/locales/ru/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Предпочтения", + "pageTitle": "Ваши предпочтения", + "boards": { + "defaultBoard": { + "label": "Доска по умолчанию" + } + }, + "accessibility": { + "title": "Спец. возможности", + "disablePulse": { + "label": "Отключить импульс пинга", + "description": "По умолчанию индикаторы пинга в Homarr пульсируют. Это может раздражать. Этот ползунок отключит анимацию" + }, + "replaceIconsWithDots": { + "label": "Замените пинг-точки значками", + "description": "У пользователей, страдающих цветовой слепотой, пинг-точки могут быть неразличимыми. Это заменит индикаторы значками" + } + }, + "localization": { + "language": { + "label": "Язык" + }, + "firstDayOfWeek": { + "label": "Первый день недели", + "options": { + "monday": "Понедельник", + "saturday": "Суббота", + "sunday": "Воскресенье" + } + } + }, + "searchEngine": { + "title": "Поисковая система", + "custom": "Вручную", + "newTab": { + "label": "Открыть результаты поиска в новой вкладке" + }, + "autoFocus": { + "label": "Фокусировка строки поиска при загрузке страницы.", + "description": "Это позволит автоматически фокусировать строку поиска при переходе на страницы форума. Это будет работать только на настольных устройствах." + }, + "template": { + "label": "URL запроса", + "description": "Использовать %s в качестве заполнителя для запроса" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/zod.json b/public/locales/ru/zod.json new file mode 100644 index 000000000..75138161d --- /dev/null +++ b/public/locales/ru/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Это поле недействительно", + "required": "Это поле обязательно", + "string": { + "startsWith": "Это поле должно начинаться с {{startsWith}}", + "endsWith": "Это поле должно заканчиваться на {{endsWith}}", + "includes": "Это поле должно включать {{includes}}" + }, + "tooSmall": { + "string": "Длина этого поля должна быть не менее {{minimum}} символов", + "number": "Это поле должно быть больше или равно {{minimum}}" + }, + "tooBig": { + "string": "Длина этого поля не должна превышать {{maximum}} символов", + "number": "Это поле должно быть меньше или равно {{maximum}}" + }, + "custom": { + "passwordMatch": "Пароли должны совпадать" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/authentication/invite.json b/public/locales/sk/authentication/invite.json new file mode 100644 index 000000000..e1f1c7f0f --- /dev/null +++ b/public/locales/sk/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Vytvoriť účet", + "title": "Vytvoriť účet", + "text": "Nižšie uveďte svoje poverenia", + "form": { + "fields": { + "username": { + "label": "Používateľské meno" + }, + "password": { + "label": "Heslo" + }, + "passwordConfirmation": { + "label": "Potvrdenie hesla" + } + }, + "buttons": { + "submit": "Vytvoriť účet" + } + }, + "notifications": { + "loading": { + "title": "Vytvára sa účet", + "text": "Čakajte, prosím" + }, + "success": { + "title": "Účet bol Vytvorený", + "text": "Vaše konto bolo úspešne vytvorené" + }, + "error": { + "title": "Chyba", + "text": "Niečo sa pokazilo, mám nasledujúcu chybu: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/authentication/login.json b/public/locales/sk/authentication/login.json index afd2872dd..35c68f7a8 100644 --- a/public/locales/sk/authentication/login.json +++ b/public/locales/sk/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Prihlásiť sa", "title": "Vitaj spat!", - "text": "Prosím zadajte heslo", + "text": "Zadajte svoje prihlasovacie údaje", "form": { "fields": { + "username": { + "label": "Používateľské meno" + }, "password": { - "label": "Heslo", - "placeholder": "Tvoje heslo" + "label": "Heslo" } }, "buttons": { "submit": "Prihlásiť sa" - } + }, + "afterLoginRedirection": "Po prihlásení budete presmerovaní na stránku {{url}}" }, - "notifications": { - "checking": { - "title": "Kontrola hesla", - "message": "Vaše heslo sa kontroluje..." - }, - "correct": { - "title": "Prihlásenie bolo úspešné, prebieha presmerovanie..." - }, - "wrong": { - "title": "Zadané heslo je nesprávne, skúste to znova." - } - } -} + "alert": "Vaše poverovacie údaje sú nesprávne alebo toto konto neexistuje. Skúste to prosím znova." +} \ No newline at end of file diff --git a/public/locales/sk/boards/common.json b/public/locales/sk/boards/common.json new file mode 100644 index 000000000..a1a55a6e4 --- /dev/null +++ b/public/locales/sk/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Prispôsobenie dosky" + } +} \ No newline at end of file diff --git a/public/locales/sk/boards/customize.json b/public/locales/sk/boards/customize.json new file mode 100644 index 000000000..225d4caf1 --- /dev/null +++ b/public/locales/sk/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Prispôsobenie {{name}} Board", + "pageTitle": "Prispôsobenie pre {{name}} Board", + "backToBoard": "Späť na palubu", + "settings": { + "appearance": { + "primaryColor": "Hlavná farba", + "secondaryColor": "Sekundárna farba" + } + }, + "save": { + "button": "Uložiť zmeny", + "note": "Pozor - máte neuložené zmeny!" + }, + "notifications": { + "pending": { + "title": "Uloženie prispôsobenia", + "message": "Počkajte, prosím, kým uložíme vaše prispôsobenie" + }, + "success": { + "title": "Uložené prispôsobenie", + "message": "Vaše prispôsobenie bolo úspešne uložené" + }, + "error": { + "title": "Chyba", + "message": "Nie je možné uložiť zmeny" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index 439da6114..b90559746 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -3,9 +3,13 @@ "about": "O aplikácii", "cancel": "Zrušiť", "close": "Zavrieť", + "back": "Späť", "delete": "Vymazať", "ok": "OK", "edit": "Upraviť", + "next": "Ďalej", + "previous": "Predchádzajúci", + "confirm": "Potvrďte", "enabled": "Povolené", "disabled": "Zakázané", "enableAll": "Povoliť všetko", diff --git a/public/locales/sk/layout/header.json b/public/locales/sk/layout/header.json new file mode 100644 index 000000000..3021a5693 --- /dev/null +++ b/public/locales/sk/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Ide o experimentálnu funkciu systému Homarr. Akékoľvek problémy nahláste na GitHub alebo Discord." + }, + "search": { + "label": "Hladať", + "engines": { + "web": "Vyhľadávanie {{query}} na webe", + "youtube": "Vyhľadajte {{query}} na YouTube", + "torrent": "Vyhľadávanie torrentov {{query}}", + "movie": "Vyhľadajte {{query}} na {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Zmeniť tému", + "preferences": "Predvoľby používateľa", + "defaultBoard": "Predvolená doska", + "manage": "Spravovať", + "about": { + "label": "O aplikácii", + "new": "Nový" + }, + "logout": "Odhlásenie zo stránky {{username}}", + "login": "Prihlásiť sa" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} výsledky pre {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/sk/layout/manage.json b/public/locales/sk/layout/manage.json new file mode 100644 index 000000000..df40c670b --- /dev/null +++ b/public/locales/sk/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Domovská stránka" + }, + "boards": { + "title": "Dosky" + }, + "users": { + "title": "Používatelia", + "items": { + "manage": "Spravovať", + "invites": "Pozvánky" + } + }, + "help": { + "title": "Pomocník", + "items": { + "documentation": "Dokumentácia", + "report": "Nahlásiť problém / chybu", + "discord": "Diskord Spoločenstva", + "contribute": "Prispejte" + } + }, + "tools": { + "title": "Nástroje", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/boards.json b/public/locales/sk/manage/boards.json new file mode 100644 index 000000000..8c94ccd2c --- /dev/null +++ b/public/locales/sk/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Dosky", + "pageTitle": "Dosky", + "cards": { + "statistics": { + "apps": "Aplikácie", + "widgets": "Miniaplikácie", + "categories": "Kategórie" + }, + "buttons": { + "view": "Zobraziť tabuľu" + }, + "menu": { + "setAsDefault": "Nastavenie ako predvolenej dosky", + "delete": { + "label": "Odstrániť natrvalo", + "disabled": "Odstránenie zakázané, pretože staršie komponenty Homarr neumožňujú odstránenie predvoleného konfigurátora. Odstránenie bude možné v budúcnosti." + } + }, + "badges": { + "fileSystem": "Súborový systém", + "default": "Predvolené" + } + }, + "buttons": { + "create": "Vytvoriť novú tabuľu" + }, + "modals": { + "delete": { + "title": "Odstrániť dosku", + "text": "Ste si istí, že chcete túto tabuľu vymazať? Tento krok sa nedá vrátiť späť a vaše údaje sa natrvalo stratia." + }, + "create": { + "title": "Vytvoriť tabuľu", + "text": "Názov nie je možné zmeniť po vytvorení nástenky.", + "form": { + "name": { + "label": "Názov" + }, + "submit": "Vytvoriť" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/index.json b/public/locales/sk/manage/index.json new file mode 100644 index 000000000..a4b7ccdfc --- /dev/null +++ b/public/locales/sk/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Spravovať", + "hero": { + "title": "Vitajte späť, {{username}}", + "fallbackUsername": "Anonymný", + "subtitle": "Vitajte vo vašom aplikačnom centre. Organizujte, optimalizujte a ovládnite!" + }, + "quickActions": { + "title": "Rýchle akcie", + "boards": { + "title": "Vaše dosky", + "subtitle": "Vytváranie a správa tabúľ" + }, + "inviteUsers": { + "title": "Pozvať nového užívateľa", + "subtitle": "Vytvorenie a odoslanie pozvánky na registráciu" + }, + "manageUsers": { + "title": "Spravovať používateľov", + "subtitle": "Odstránenie a správa používateľov" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/users.json b/public/locales/sk/manage/users.json new file mode 100644 index 000000000..4b44e0d57 --- /dev/null +++ b/public/locales/sk/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Používatelia", + "pageTitle": "Spravovať používateľov", + "text": "Pomocou používateľov môžete nakonfigurovať, kto môže upravovať informačné panely. Budúce verzie aplikácie Homarr budú mať ešte podrobnejšie ovládanie oprávnení a tabuliek.", + "buttons": { + "create": "Vytvoriť" + }, + "table": { + "header": { + "user": "Používateľ" + } + }, + "tooltips": { + "deleteUser": "Odstrániť používateľa", + "demoteAdmin": "Zníženie funkcie správcu", + "promoteToAdmin": "Povýšenie na správcu" + }, + "modals": { + "delete": { + "title": "Odstránenie používateľa {{name}}", + "text": "Ste si istí, že chcete odstrániť používateľa {{name}}? Tým sa vymažú údaje spojené s týmto účtom, ale nie všetky panely vytvorené týmto používateľom." + }, + "change-role": { + "promote": { + "title": "Povýšenie používateľa {{name}} na administrátora", + "text": "Ste si istí, že chcete povýšiť používateľa {{name}} na administrátora? Tým získa používateľ prístup ku všetkým zdrojom vo vašej inštancii Homarr." + }, + "demote": { + "title": "Odstránenie používateľa {{name}} na používateľa", + "text": "Ste si istí, že chcete povýšiť používateľa {{name}} na administrátora? Tým získa používateľ prístup ku všetkým zdrojom vo vašej inštancii Homarr." + }, + "confirm": "Potvrďte" + } + }, + "searchDoesntMatch": "Vaše vyhľadávanie nezodpovedá žiadnym záznamom. Upravte prosím svoj filter." +} \ No newline at end of file diff --git a/public/locales/sk/manage/users/create.json b/public/locales/sk/manage/users/create.json new file mode 100644 index 000000000..bb36338a9 --- /dev/null +++ b/public/locales/sk/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Vytvoriť užívateľa", + "steps": { + "account": { + "title": "Prvý krok", + "text": "Vytvoriť účet", + "username": { + "label": "Používateľské meno" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Druhý krok", + "text": "Heslo", + "password": { + "label": "Heslo" + } + }, + "finish": { + "title": "Potvrdenie", + "text": "Uložiť do databázy", + "card": { + "title": "Preskúmajte svoje vstupy", + "text": "Po odoslaní údajov do databázy sa používateľ bude môcť prihlásiť. Ste si istí, že chcete tohto používateľa uložiť do databázy a aktivovať prihlásenie?" + }, + "table": { + "header": { + "property": "Vlastnosti", + "value": "Hodnota", + "username": "Používateľské meno", + "email": "E-mail", + "password": "Heslo" + }, + "notSet": "Nenastavené", + "valid": "Platné" + }, + "failed": "Vytvorenie používateľa sa nepodarilo: {{error}}" + }, + "completed": { + "alert": { + "title": "Používateľ bol vytvorený", + "text": "Používateľ bol vytvorený v databáze. Teraz sa môže prihlásiť." + } + } + }, + "buttons": { + "generateRandomPassword": "Generovať náhodné", + "createAnother": "Vytvorenie ďalšieho" + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/users/invites.json b/public/locales/sk/manage/users/invites.json new file mode 100644 index 000000000..2c9801aef --- /dev/null +++ b/public/locales/sk/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Pozvania používateľov", + "pageTitle": "Správa pozvánok používateľov", + "description": "Pomocou pozvánok môžete pozvať používateľov do svojej inštancie služby Homarr. Pozvánka je platná len na určitý časový úsek a možno ju použiť len raz. Platnosť musí byť od 5 minút do 12 mesiacov pri vytvorení.", + "button": { + "createInvite": "Vytvoriť pozvánku", + "deleteInvite": "Odstránenie pozvánky" + }, + "table": { + "header": { + "id": "ID", + "creator": "Autor", + "expires": "Expirácia", + "action": "Akcie" + }, + "data": { + "expiresAt": "vypršala platnosť {{at}}", + "expiresIn": "na stránke {{in}}" + } + }, + "modals": { + "create": { + "title": "Vytvoriť Pozvánku", + "description": "Po vypršaní platnosti pozvánky už nebude platná a príjemca pozvánky si nebude môcť vytvoriť účet.", + "form": { + "expires": "Dátum vypršania", + "submit": "Vytvoriť" + } + }, + "copy": { + "title": "Kópia pozvánky", + "description": "Vaša pozvánka bola vygenerovaná. Po zatvorení tohto modálneho okna už nebudete môcť skopírovať tento odkaz. Ak si už neželáte pozvať uvedenú osobu, môžete túto pozvánku kedykoľvek vymazať.", + "invitationLink": "Odkaz na pozvánku", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopírovať a rozpustiť" + } + }, + "delete": { + "title": "Odstránenie pozvánky", + "description": "Ste si istí, že chcete túto pozvánku vymazať? Používatelia s týmto odkazom si už nebudú môcť vytvoriť účet pomocou tohto odkazu." + } + }, + "noInvites": "Zatiaľ nie sú k dispozícii žiadne pozvánky." +} \ No newline at end of file diff --git a/public/locales/sk/modules/calendar.json b/public/locales/sk/modules/calendar.json index e6148d947..b7498827e 100644 --- a/public/locales/sk/modules/calendar.json +++ b/public/locales/sk/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Použi Sonarr v4 API" }, - "sundayStart": { - "label": "Začni týždeň v Nedeľu" - }, "radarrReleaseType": { "label": "Typ Radarr releasu", "data": { @@ -22,7 +19,7 @@ "label": "Skryť dni v týždni" }, "showUnmonitored": { - "label": "" + "label": "Zobraziť nesledované položky" }, "fontSize": { "label": "Veľkosť písma", diff --git a/public/locales/sk/modules/dns-hole-controls.json b/public/locales/sk/modules/dns-hole-controls.json index f29a7394d..3392d675b 100644 --- a/public/locales/sk/modules/dns-hole-controls.json +++ b/public/locales/sk/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Kontrola diery DNS", - "description": "Ovládajte PiHole alebo AdGuard z ovládacieho panela" + "description": "Ovládajte PiHole alebo AdGuard z ovládacieho panela", + "settings": { + "title": "Nastavenia ovládania otvoru DNS", + "showToggleAllButtons": { + "label": "Zobrazenie tlačidiel \"Povoliť/Zakázať všetko" + } + } } } \ No newline at end of file diff --git a/public/locales/sk/password-requirements.json b/public/locales/sk/password-requirements.json new file mode 100644 index 000000000..7dd2af803 --- /dev/null +++ b/public/locales/sk/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Vrátane čísiel", + "lowercase": "Zahŕňa malé písmeno", + "uppercase": "Zahŕňa veľké písmená", + "special": "Zahŕňa špeciálny znak", + "length": "Obsahuje aspoň {{count}} znakov" +} \ No newline at end of file diff --git a/public/locales/sk/settings/common.json b/public/locales/sk/settings/common.json index 2c42d6169..289df39df 100644 --- a/public/locales/sk/settings/common.json +++ b/public/locales/sk/settings/common.json @@ -13,7 +13,7 @@ "thirdPartyContent": "Pozrite si obsah tretích strán", "thirdPartyContentTable": { "dependencyName": "Závislosť", - "dependencyVersion": "Verzia" + "dependencyVersion": "verzia" } }, "grow": "Zväčšiť mriežku (zabrať všetok priestor)", diff --git a/public/locales/sk/settings/customization/access.json b/public/locales/sk/settings/customization/access.json new file mode 100644 index 000000000..4303366e2 --- /dev/null +++ b/public/locales/sk/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Povoľte anonymné", + "description": "Povoľte používateľom, ktorí nie sú prihlásení, zobrazovať vašu nástenku" + } +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/general.json b/public/locales/sk/settings/customization/general.json index 45781937e..942e7baf5 100644 --- a/public/locales/sk/settings/customization/general.json +++ b/public/locales/sk/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Prístupnosť", "description": "Konfigurácia aplikácie Homarr pre zdravotne postihnutých a hendikepovaných používateľov" + }, + "access": { + "name": "Prístup", + "description": "Konfigurácia osôb, ktoré majú prístup k vašej nástenke" } } } diff --git a/public/locales/sk/settings/customization/page-appearance.json b/public/locales/sk/settings/customization/page-appearance.json index 25d15e87a..d290a9d25 100644 --- a/public/locales/sk/settings/customization/page-appearance.json +++ b/public/locales/sk/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Ďalej si prispôsobte ovládací panel pomocou CSS, odporúča sa len pre skúsených používateľov", "placeholder": "Vlastné CSS sa použije ako posledné", "applying": "Aplikuje sa CSS..." - }, - "buttons": { - "submit": "Odoslať" } -} +} \ No newline at end of file diff --git a/public/locales/sk/tools/docker.json b/public/locales/sk/tools/docker.json new file mode 100644 index 000000000..b7179f80e --- /dev/null +++ b/public/locales/sk/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Vaša inštancia Homarr nemá nakonfigurovaný Docker alebo sa jej nepodarilo načítať kontajnery. Pozrite si dokumentáciu o tom, ako nastaviť integráciu." + } + }, + "modals": { + "selectBoard": { + "title": "Výber dosky", + "text": "Zvoľte dosku, na ktorú chcete pridať aplikácie pre vybrané kontajnery Docker.", + "form": { + "board": { + "label": "Doska" + }, + "submit": "Pridať aplikácie" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Pridanie aplikácií na dosku", + "message": "Aplikácie pre vybrané kontajnery Docker boli pridané na tabuľu." + }, + "error": { + "title": "Nepodarilo sa pridať aplikácie na palubu", + "message": "Aplikácie pre vybrané kontajnery Docker boli pridané na tabuľu." + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/user/preferences.json b/public/locales/sk/user/preferences.json new file mode 100644 index 000000000..3515d97f3 --- /dev/null +++ b/public/locales/sk/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Predvoľby", + "pageTitle": "Vaše preferencie", + "boards": { + "defaultBoard": { + "label": "Predvolená doska" + } + }, + "accessibility": { + "title": "Prístupnosť", + "disablePulse": { + "label": "Zakázanie impulzu ping", + "description": "V predvolenom nastavení budú indikátory ping v aplikácii Homarr pulzovať. To môže byť nepríjemné. Tento posuvník deaktivuje animáciu" + }, + "replaceIconsWithDots": { + "label": "Nahradenie bodov ping ikonami", + "description": "Pre farboslepých používateľov môžu byť pingové body nerozpoznateľné. Toto nahradí indikátory ikonami" + } + }, + "localization": { + "language": { + "label": "Jazyk" + }, + "firstDayOfWeek": { + "label": "Prvý deň v týždni", + "options": { + "monday": "Pondelok", + "saturday": "Sobota", + "sunday": "Nedeľa" + } + } + }, + "searchEngine": { + "title": "Vyhľadávač", + "custom": "Vlastné", + "newTab": { + "label": "Otvorenie výsledkov vyhľadávania na novej karte" + }, + "autoFocus": { + "label": "Zameranie vyhľadávacieho panela pri načítaní stránky.", + "description": "Pri prechode na stránky nástenky sa automaticky zaostrí vyhľadávací panel. Funguje to len na zariadeniach s počítačom." + }, + "template": { + "label": "Adresa URL dopytu", + "description": "Použite %s ako zástupný symbol pre dotaz" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/zod.json b/public/locales/sk/zod.json new file mode 100644 index 000000000..6b17c83ee --- /dev/null +++ b/public/locales/sk/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Toto pole je neplatné", + "required": "Toto pole je povinné", + "string": { + "startsWith": "Toto pole musí začínať na {{startsWith}}", + "endsWith": "Toto pole musí končiť na {{endsWith}}", + "includes": "Toto pole musí obsahovať {{includes}}" + }, + "tooSmall": { + "string": "Toto pole musí byť dlhé aspoň {{minimum}} znakov", + "number": "Toto pole musí byť väčšie alebo rovné {{minimum}}" + }, + "tooBig": { + "string": "Toto pole musí mať najviac {{maximum}} znakov", + "number": "Toto pole musí byť menšie alebo rovné {{maximum}}" + }, + "custom": { + "passwordMatch": "Heslá sa musia zhodovať" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/authentication/invite.json b/public/locales/sl/authentication/invite.json new file mode 100644 index 000000000..3d7063116 --- /dev/null +++ b/public/locales/sl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Uporabniško ime" + }, + "password": { + "label": "Geslo" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Napaka", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/authentication/login.json b/public/locales/sl/authentication/login.json index e90fe2242..9b1bb1dea 100644 --- a/public/locales/sl/authentication/login.json +++ b/public/locales/sl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Dobrodošli nazaj!", - "text": "Prosimo, vnesite svoje geslo", + "text": "", "form": { "fields": { + "username": { + "label": "Uporabniško ime" + }, "password": { - "label": "Geslo", - "placeholder": "Vaše geslo" + "label": "Geslo" } }, "buttons": { "submit": "Prijava" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Preverjanje gesla", - "message": "Preverjamo vaše geslo..." - }, - "correct": { - "title": "Prijava uspešna, preusmeritev..." - }, - "wrong": { - "title": "Vneseno geslo je napačno, poskusite znova." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/sl/boards/common.json b/public/locales/sl/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/sl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/boards/customize.json b/public/locales/sl/boards/customize.json new file mode 100644 index 000000000..45c0ca7cb --- /dev/null +++ b/public/locales/sl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Napaka", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index 2bd8c975e..4250450c6 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -3,9 +3,13 @@ "about": "O programu", "cancel": "Prekliči", "close": "Zapri", + "back": "", "delete": "Izbriši", "ok": "V redu", "edit": "Uredi", + "next": "", + "previous": "", + "confirm": "Potrdi", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/sl/layout/header.json b/public/locales/sl/layout/header.json new file mode 100644 index 000000000..a371cc6a3 --- /dev/null +++ b/public/locales/sl/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "O programu", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/layout/manage.json b/public/locales/sl/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/sl/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/boards.json b/public/locales/sl/manage/boards.json new file mode 100644 index 000000000..f68623a1b --- /dev/null +++ b/public/locales/sl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Ime" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/index.json b/public/locales/sl/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/sl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/users.json b/public/locales/sl/manage/users.json new file mode 100644 index 000000000..700a5d503 --- /dev/null +++ b/public/locales/sl/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Uporabnik" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Potrdi" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/sl/manage/users/create.json b/public/locales/sl/manage/users/create.json new file mode 100644 index 000000000..0f6744541 --- /dev/null +++ b/public/locales/sl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Uporabniško ime" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Geslo", + "password": { + "label": "Geslo" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Uporabniško ime", + "email": "", + "password": "Geslo" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/users/invites.json b/public/locales/sl/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/sl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/sl/modules/calendar.json b/public/locales/sl/modules/calendar.json index d912b46b1..26e020933 100644 --- a/public/locales/sl/modules/calendar.json +++ b/public/locales/sl/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Uporaba vmesnika API Sonarr v4" }, - "sundayStart": { - "label": "Začni teden z nedeljo" - }, "radarrReleaseType": { "label": "Tip sprostitve Radarr", "data": { diff --git a/public/locales/sl/modules/dns-hole-controls.json b/public/locales/sl/modules/dns-hole-controls.json index f8daba13b..7391fea94 100644 --- a/public/locales/sl/modules/dns-hole-controls.json +++ b/public/locales/sl/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/sl/password-requirements.json b/public/locales/sl/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sl/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/access.json b/public/locales/sl/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/sl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/general.json b/public/locales/sl/settings/customization/general.json index 623dd8c69..46cc68c69 100644 --- a/public/locales/sl/settings/customization/general.json +++ b/public/locales/sl/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/sl/settings/customization/page-appearance.json b/public/locales/sl/settings/customization/page-appearance.json index d0528335b..6702f6723 100644 --- a/public/locales/sl/settings/customization/page-appearance.json +++ b/public/locales/sl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Dadatno prilagodite pogled s CSS. Priporočljivo le za izkušene uporabnike", "placeholder": "Prilagojeni CSS bo uporabljen kot zadnji", "applying": "Uporaba CSS..." - }, - "buttons": { - "submit": "Pošlji" } -} +} \ No newline at end of file diff --git a/public/locales/sl/tools/docker.json b/public/locales/sl/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/sl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/user/preferences.json b/public/locales/sl/user/preferences.json new file mode 100644 index 000000000..65e05dc26 --- /dev/null +++ b/public/locales/sl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Jezik" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Iskalnik", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL poizvedbe", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/zod.json b/public/locales/sl/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/sl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/authentication/invite.json b/public/locales/sv/authentication/invite.json new file mode 100644 index 000000000..b3990e71c --- /dev/null +++ b/public/locales/sv/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Användarnamn" + }, + "password": { + "label": "Lösenord" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Fel", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/authentication/login.json b/public/locales/sv/authentication/login.json index 4ff931453..be8c328d3 100644 --- a/public/locales/sv/authentication/login.json +++ b/public/locales/sv/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Logga in", "title": "Välkommen tillbaka!", - "text": "Ange ditt lösenord", + "text": "Ange dina autentiseringsuppgifter", "form": { "fields": { + "username": { + "label": "Användarnamn" + }, "password": { - "label": "Lösenord", - "placeholder": "Ditt lösenord" + "label": "Lösenord" } }, "buttons": { "submit": "Logga in" - } + }, + "afterLoginRedirection": "Efter inloggningen kommer du att omdirigeras till {{url}}" }, - "notifications": { - "checking": { - "title": "Kontrollerar ditt lösenord", - "message": "Ditt lösenord kontrolleras..." - }, - "correct": { - "title": "Inloggning lyckades, omdirigerar..." - }, - "wrong": { - "title": "Lösenordet du angav är felaktigt. Försök igen." - } - } -} + "alert": "Dina autentiseringsuppgifter är felaktiga eller så finns inte det här kontot. Vänligen försök igen." +} \ No newline at end of file diff --git a/public/locales/sv/boards/common.json b/public/locales/sv/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/sv/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/boards/customize.json b/public/locales/sv/boards/customize.json new file mode 100644 index 000000000..48604fe99 --- /dev/null +++ b/public/locales/sv/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Fel", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 299527df4..6349675d4 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -3,9 +3,13 @@ "about": "Om", "cancel": "Avbryt", "close": "Stäng", + "back": "Bakåt", "delete": "Radera", "ok": "OK", "edit": "Redigera", + "next": "Nästa", + "previous": "Föregående", + "confirm": "Bekräfta", "enabled": "Aktiverad", "disabled": "Inaktiverad", "enableAll": "Aktivera alla", diff --git a/public/locales/sv/layout/header.json b/public/locales/sv/layout/header.json new file mode 100644 index 000000000..4cd312962 --- /dev/null +++ b/public/locales/sv/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Om", + "new": "" + }, + "logout": "", + "login": "Logga in" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/manage.json b/public/locales/sv/layout/manage.json new file mode 100644 index 000000000..95627fe67 --- /dev/null +++ b/public/locales/sv/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "Dokumentation", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/modals/add-app.json b/public/locales/sv/layout/modals/add-app.json index 3861b5f03..da48e9821 100644 --- a/public/locales/sv/layout/modals/add-app.json +++ b/public/locales/sv/layout/modals/add-app.json @@ -78,7 +78,7 @@ } }, "lineClampAppName": { - "label": "", + "label": "Radbrytning för appnamn", "description": "Definierar hur många rader din titel maximalt ska rymmas på. Ange 0 för obegränsat." } }, diff --git a/public/locales/sv/manage/boards.json b/public/locales/sv/manage/boards.json new file mode 100644 index 000000000..795a4f505 --- /dev/null +++ b/public/locales/sv/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Appar", + "widgets": "Widgets", + "categories": "Kategorier" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Namn" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/index.json b/public/locales/sv/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/sv/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/users.json b/public/locales/sv/manage/users.json new file mode 100644 index 000000000..b44e93285 --- /dev/null +++ b/public/locales/sv/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Användare" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Bekräfta" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/sv/manage/users/create.json b/public/locales/sv/manage/users/create.json new file mode 100644 index 000000000..c1680c096 --- /dev/null +++ b/public/locales/sv/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Användarnamn" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Lösenord", + "password": { + "label": "Lösenord" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Användarnamn", + "email": "", + "password": "Lösenord" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/users/invites.json b/public/locales/sv/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/sv/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/sv/modules/calendar.json b/public/locales/sv/modules/calendar.json index 30b326b71..1daeec303 100644 --- a/public/locales/sv/modules/calendar.json +++ b/public/locales/sv/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Använd Sonarr v4 API" }, - "sundayStart": { - "label": "Börja veckan på söndag" - }, "radarrReleaseType": { "label": "Radarr releasetyp", "data": { diff --git a/public/locales/sv/modules/dns-hole-controls.json b/public/locales/sv/modules/dns-hole-controls.json index bb82e3e95..00696129e 100644 --- a/public/locales/sv/modules/dns-hole-controls.json +++ b/public/locales/sv/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Kontroller av DNS hole", - "description": "Styr PiHole eller AdGuard från din instrumentpanel" + "description": "Styr PiHole eller AdGuard från din instrumentpanel", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/sv/password-requirements.json b/public/locales/sv/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/access.json b/public/locales/sv/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/sv/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/general.json b/public/locales/sv/settings/customization/general.json index 50058ab0f..e091f6b4c 100644 --- a/public/locales/sv/settings/customization/general.json +++ b/public/locales/sv/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Tillgänglighet", "description": "Konfigurera Homarr för funktionshindrade användare" + }, + "access": { + "name": "", + "description": "Konfigurera vem som har tillgång till din tavla" } } } diff --git a/public/locales/sv/settings/customization/page-appearance.json b/public/locales/sv/settings/customization/page-appearance.json index 58cdc56da..01dc814bc 100644 --- a/public/locales/sv/settings/customization/page-appearance.json +++ b/public/locales/sv/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Vidare kan du anpassa din instrumentpanel med CSS, vilket endast rekommenderas för erfarna användare", "placeholder": "Anpassad CSS tillämpas sist", "applying": "Tillämpar CSS..." - }, - "buttons": { - "submit": "Skicka" } -} +} \ No newline at end of file diff --git a/public/locales/sv/tools/docker.json b/public/locales/sv/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/sv/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/user/preferences.json b/public/locales/sv/user/preferences.json new file mode 100644 index 000000000..26de24fa3 --- /dev/null +++ b/public/locales/sv/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Tillgänglighet", + "disablePulse": { + "label": "Inaktivera ping-puls", + "description": "Som standard kommer ping-indikatorerna i Homarr att pulsera. Detta kan vara irriterande. Det här reglaget avaktiverar animeringen" + }, + "replaceIconsWithDots": { + "label": "Ersätt ping-prickar med ikoner", + "description": "För färgblinda användare kan ping-punkter vara oigenkännliga. Detta kommer att ersätta indikatorer med ikoner" + } + }, + "localization": { + "language": { + "label": "Språk" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Sökmotor", + "custom": "Anpassad", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL för förfrågan", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/zod.json b/public/locales/sv/zod.json new file mode 100644 index 000000000..c69e74ec8 --- /dev/null +++ b/public/locales/sv/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Fältet är ogiltigt", + "required": "Detta fält är obligatoriskt", + "string": { + "startsWith": "Det här fältet måste börja med {{startsWith}}", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/authentication/invite.json b/public/locales/tr/authentication/invite.json new file mode 100644 index 000000000..33e0718f7 --- /dev/null +++ b/public/locales/tr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Hesap Oluştur", + "title": "Hesap Oluştur", + "text": "Lütfen kimlik bilgilerinizi aşağıda tanımlayın", + "form": { + "fields": { + "username": { + "label": "Kullanıcı adı" + }, + "password": { + "label": "Şifre" + }, + "passwordConfirmation": { + "label": "Şifreyi onayla" + } + }, + "buttons": { + "submit": "Hesap oluştur" + } + }, + "notifications": { + "loading": { + "title": "Hesap oluşturuluyor", + "text": "Lütfen bekleyin" + }, + "success": { + "title": "Hesap oluşturuldu", + "text": "Hesabınız başarıyla oluşturuldu" + }, + "error": { + "title": "Hata", + "text": "Bir hata oluştu, oluşan hata: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/authentication/login.json b/public/locales/tr/authentication/login.json index 74b7bef27..ed31c626b 100644 --- a/public/locales/tr/authentication/login.json +++ b/public/locales/tr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Giriş", "title": "Tekrar hoşgeldin!", - "text": "Lütfen şifrenizi girin", + "text": "Lütfen kimlik bilgilerinizi girin", "form": { "fields": { + "username": { + "label": "Kullanıcı adı" + }, "password": { - "label": "Şifre", - "placeholder": "Şifreniz" + "label": "Şifre" } }, "buttons": { "submit": "Kayıt ol" - } + }, + "afterLoginRedirection": "Giriş yaptıktan sonra {{url}} adresine yönlendirileceksiniz" }, - "notifications": { - "checking": { - "title": "Şifrenizi kontrol edin", - "message": "Şifreniz kontrol ediliyor..." - }, - "correct": { - "title": "Giriş başarılı, yönlendiriliyor..." - }, - "wrong": { - "title": "Girdiğin şifre yanlış, lütfen tekrar dene." - } - } -} + "alert": "Kimlik bilgileriniz yanlış veya bu hesap mevcut değil. Lütfen tekrar deneyin." +} \ No newline at end of file diff --git a/public/locales/tr/boards/common.json b/public/locales/tr/boards/common.json new file mode 100644 index 000000000..e6da3b603 --- /dev/null +++ b/public/locales/tr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Paneli özelleştir" + } +} \ No newline at end of file diff --git a/public/locales/tr/boards/customize.json b/public/locales/tr/boards/customize.json new file mode 100644 index 000000000..c4033f18a --- /dev/null +++ b/public/locales/tr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} Panelini Özelleştir", + "pageTitle": "{{name}} Panelini için özelleştirme", + "backToBoard": "Panele dön", + "settings": { + "appearance": { + "primaryColor": "Birincil renk", + "secondaryColor": "İkincil renk" + } + }, + "save": { + "button": "Değişiklikleri kaydet", + "note": "Dikkatli olun, kaydedilmemiş değişiklikleriniz var!" + }, + "notifications": { + "pending": { + "title": "Özelleştirmeyi Kaydet", + "message": "Özelleştirmeleriniz kaydedilirken lütfen bekleyin" + }, + "success": { + "title": "Özelleştirmeleriniz kaydedildi", + "message": "Özelleştirmeleriniz başarıyla kaydedildi" + }, + "error": { + "title": "Hata", + "message": "Değişiklikler kaydedilemiyor" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index fe6c0f3ab..4f0d107ab 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -3,9 +3,13 @@ "about": "Hakkında", "cancel": "Vazgeç", "close": "Kapat", + "back": "Geri", "delete": "Sil", "ok": "Tamam", "edit": "Düzenle", + "next": "İleri", + "previous": "Önceki", + "confirm": "Onayla", "enabled": "Etkin", "disabled": "Pasif", "enableAll": "Tümünü etkinleştir", diff --git a/public/locales/tr/layout/common.json b/public/locales/tr/layout/common.json index 4a16353ed..d3749e210 100644 --- a/public/locales/tr/layout/common.json +++ b/public/locales/tr/layout/common.json @@ -19,7 +19,7 @@ "moveUp": "Yukarı taşı", "moveDown": "Aşağı taşı", "addCategory": "Kategori ekle {{location}}", - "addAbove": "yukarıda", - "addBelow": "aşağıda" + "addAbove": "yukarı", + "addBelow": "aşağı" } } \ No newline at end of file diff --git a/public/locales/tr/layout/element-selector/selector.json b/public/locales/tr/layout/element-selector/selector.json index 722e5aad9..145059b18 100644 --- a/public/locales/tr/layout/element-selector/selector.json +++ b/public/locales/tr/layout/element-selector/selector.json @@ -1,6 +1,6 @@ { "modal": { - "title": "Yeni bir araç ekle", + "title": "Yeni araç ekle", "text": "Araçlar, Homarr'ın ana öğesidir. Uygulamalarınızı ve diğer bilgileri görüntülemek için kullanılırlar. İstediğiniz kadar araç ekleyebilirsiniz." }, "widgetDescription": "Widget'lar, uygulamalarınız üzerinde daha fazla kontrol sağlamak için uygulamalarınızla etkileşime girer. Genellikle kullanımdan önce ek yapılandırma gerektirirler.", @@ -10,7 +10,7 @@ }, "apps": "Uygulamalar", "app": { - "defaultName": "Sizin Uygulamanız" + "defaultName": "Uygulama Adınız" }, "widgets": "Widget'lar", "categories": "Kategoriler", diff --git a/public/locales/tr/layout/header.json b/public/locales/tr/layout/header.json new file mode 100644 index 000000000..90a1bfff3 --- /dev/null +++ b/public/locales/tr/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "Bu Homarr'ın deneysel bir özelliğidir. Lütfen herhangi bir sorunu GitHub veya Discordadresinden bildirin." + }, + "search": { + "label": "Ara", + "engines": { + "web": "Web'de {{query}} için arama yapın", + "youtube": "YouTube'da {{query}} için arama yapın", + "torrent": "Torrent'te {{query}} için arama yapın", + "movie": "{{app}} üzerinde {{query}} için arama yapın" + } + }, + "actions": { + "avatar": { + "switchTheme": "Tema seç", + "preferences": "Kullanıcı Tercihleri", + "defaultBoard": "Varsayılan Panel", + "manage": "Yönet", + "about": { + "label": "Hakkında", + "new": "Yeni" + }, + "logout": "{{username}} kullanıcısından çıkış yapın", + "login": "Giriş" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{search}} için en iyi {{count}} sonuç." + } + } +} \ No newline at end of file diff --git a/public/locales/tr/layout/manage.json b/public/locales/tr/layout/manage.json new file mode 100644 index 000000000..b36495f24 --- /dev/null +++ b/public/locales/tr/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "Ana sayfa" + }, + "boards": { + "title": "Paneller" + }, + "users": { + "title": "Kullanıcılar", + "items": { + "manage": "Yönet", + "invites": "Davetler" + } + }, + "help": { + "title": "Yardım", + "items": { + "documentation": "Dokümantasyon", + "report": "Sorun / hata bildirin", + "discord": "Discord Topluluğu", + "contribute": "Katkıda bulunun" + } + }, + "tools": { + "title": "Araçlar", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/boards.json b/public/locales/tr/manage/boards.json new file mode 100644 index 000000000..291251153 --- /dev/null +++ b/public/locales/tr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Paneller", + "pageTitle": "Paneller", + "cards": { + "statistics": { + "apps": "Uygulamalar", + "widgets": "Widget'lar", + "categories": "Kategoriler" + }, + "buttons": { + "view": "Panelleri görüntüle" + }, + "menu": { + "setAsDefault": "Varsayılan panel olarak ayarlayın", + "delete": { + "label": "Kalıcı olarak sil", + "disabled": "Silme devre dışı, çünkü eski Homarr bileşenleri varsayılan yapılandırmanın silinmesine izin vermiyor. Silme işlemi gelecekte mümkün olacaktır." + } + }, + "badges": { + "fileSystem": "Dosya Sistemi", + "default": "Varsayılan" + } + }, + "buttons": { + "create": "Yeni panel oluştur" + }, + "modals": { + "delete": { + "title": "Paneli sil", + "text": "Bu paneli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve verileriniz kalıcı olarak kaybolur." + }, + "create": { + "title": "Panel oluştur", + "text": "Bir pano oluşturulduktan sonra isim değiştirilemez.", + "form": { + "name": { + "label": "İsim" + }, + "submit": "Oluştur" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/index.json b/public/locales/tr/manage/index.json new file mode 100644 index 000000000..c16314c51 --- /dev/null +++ b/public/locales/tr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Yönet", + "hero": { + "title": "Tekrar hoş geldin {{username}}!", + "fallbackUsername": "Anonim", + "subtitle": "Uygulama Merkezinize Hoş Geldiniz. Organize edin, Optimize edin ve Fethedin!" + }, + "quickActions": { + "title": "Hızlı eylemler", + "boards": { + "title": "Panelleriniz", + "subtitle": "Panellerinizi oluşturun ve yönetin" + }, + "inviteUsers": { + "title": "Yeni kullanıcı davet et", + "subtitle": "Kayıt için bir davetiye oluşturun ve gönderin" + }, + "manageUsers": { + "title": "Kullanıcıları yönet", + "subtitle": "Kullanıcılarınızı silin ve yönetin" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/users.json b/public/locales/tr/manage/users.json new file mode 100644 index 000000000..f91a0ffb9 --- /dev/null +++ b/public/locales/tr/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Kullanıcılar", + "pageTitle": "Kullanıcıları yönet", + "text": "Kullanıcıları kullanarak panelşnizi kimlerin düzenleyebileceğini yapılandırabilirsiniz. Homarr'ın gelecekteki sürümleri, izinler ve panolar üzerinde daha da ayrıntılı kontrole sahip olacak.", + "buttons": { + "create": "Oluştur" + }, + "table": { + "header": { + "user": "Kullanıcı" + } + }, + "tooltips": { + "deleteUser": "Kullanıcıyı Sil", + "demoteAdmin": "Yöeticilikten çıkar", + "promoteToAdmin": "Yöneticiliğe yükselt" + }, + "modals": { + "delete": { + "title": "{{name}} kullanıcısını sil", + "text": "{{name}} kullanıcısını silmek istediğinizden emin misiniz? Bu, bu hesapla ilişkili verileri silecek, ancak bu kullanıcı tarafından oluşturulan herhangi bir panel silinmeyecektir." + }, + "change-role": { + "promote": { + "title": "{{name}} kullanıcısını yöneticiliğe yükselt", + "text": "{{name}} kullanıcısını yönetici konumuna yükseltmek istediğinizden emin misiniz? Bu, kullanıcıya Homarr örneğinizdeki tüm kaynaklara erişim sağlayacaktır." + }, + "demote": { + "title": "{{name}} kullanıcısının yetkilerini kullanıcı grubuna al", + "text": "{{name}} kullanıcısını kullanıcı grubuna düşürmek istediğinizden emin misiniz? Bu, kullanıcının Homarr bulut sunucunuzdaki tüm kaynaklara erişimini kaldıracaktır." + }, + "confirm": "Onayla" + } + }, + "searchDoesntMatch": "Aramanız hiçbir girişle eşleşmiyor. Lütfen filtrenizi ayarlayın." +} \ No newline at end of file diff --git a/public/locales/tr/manage/users/create.json b/public/locales/tr/manage/users/create.json new file mode 100644 index 000000000..47bf27d36 --- /dev/null +++ b/public/locales/tr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Kullanıcı ekle", + "steps": { + "account": { + "title": "İlk adım", + "text": "Hesap oluştur", + "username": { + "label": "Kullanıcı adı" + }, + "email": { + "label": "E-Posta" + } + }, + "security": { + "title": "İkinci adım", + "text": "Şifre", + "password": { + "label": "Şifre" + } + }, + "finish": { + "title": "Onayla", + "text": "Veritabanına Kaydet", + "card": { + "title": "Girdilerinizi gözden geçirin", + "text": "Verilerinizi veritabanına gönderdikten sonra kullanıcı giriş yapabilecektir. Bu kullanıcıyı veritabanına kaydedip giriş işlemini aktif hale getirmek istediğinizden emin misiniz?" + }, + "table": { + "header": { + "property": "Sahiplik", + "value": "Değer", + "username": "Kullanıcı adı", + "email": "E-Posta", + "password": "Şifre" + }, + "notSet": "Ayarlanmamış", + "valid": "Geçerli" + }, + "failed": "Kullanıcı oluşturma başarısız oldu: {{error}}" + }, + "completed": { + "alert": { + "title": "Kullanıcı oluşturuldu", + "text": "Kullanıcı veritabanında oluşturuldu. Artık oturum açabilirler." + } + } + }, + "buttons": { + "generateRandomPassword": "Rastgele oluştur", + "createAnother": "Başka bir tane oluştur" + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/users/invites.json b/public/locales/tr/manage/users/invites.json new file mode 100644 index 000000000..2ce45d4f6 --- /dev/null +++ b/public/locales/tr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Kullanıcı davetleri", + "pageTitle": "Kullanıcı davetlerini yönet", + "description": "Davetleri kullanarak kullanıcıları Homarr örneğinize davet edebilirsiniz. Davetiye yalnızca belirli bir süre için geçerli olacak ve bir kez kullanılabilir. Son kullanma tarihi, oluşturulduktan sonra 5 dakika ile 12 ay arasında olmalıdır.", + "button": { + "createInvite": "Davetiye oluştur", + "deleteInvite": "Daveti sil" + }, + "table": { + "header": { + "id": "Kimlik", + "creator": "Oluşturan", + "expires": "Bitiş süresi", + "action": "Eylemler" + }, + "data": { + "expiresAt": "süresi doldu {{at}}", + "expiresIn": "içinde {{in}}" + } + }, + "modals": { + "create": { + "title": "Davet oluştur", + "description": "Süre sona erdikten sonra davet artık geçerli olmayacak ve daveti alan kişi bir hesap oluşturamayacaktır.", + "form": { + "expires": "Son geçerlilik tarihi", + "submit": "Oluştur" + } + }, + "copy": { + "title": "Daveti kopyala", + "description": "Davetiyeniz oluşturuldu. Bu modal kapandıktan sonra, artık bu bağlantıyı kopyalayamayacaksınız. Söz konusu kişiyi artık davet etmek istemiyorsanız, bu daveti istediğiniz zaman silebilirsiniz.", + "invitationLink": "Davet bağlantısı", + "details": { + "id": "Kimlik", + "token": "Erişim Anahtarı" + }, + "button": { + "close": "Kopyala & Reddet" + } + }, + "delete": { + "title": "Daveti sil", + "description": "Bu daveti silmek istediğinizden emin misiniz? Bu bağlantıya sahip kullanıcılar artık bu bağlantıyı kullanarak hesap oluşturamayacaktır." + } + }, + "noInvites": "Henüz davetiye bağlantıları yok." +} \ No newline at end of file diff --git a/public/locales/tr/modules/calendar.json b/public/locales/tr/modules/calendar.json index ab92cbbd2..5e6a2390d 100644 --- a/public/locales/tr/modules/calendar.json +++ b/public/locales/tr/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Sonarr v4 API'sini kullan" }, - "sundayStart": { - "label": "Haftaya Pazar günü başlayın" - }, "radarrReleaseType": { "label": "Radarr yayın türü", "data": { diff --git a/public/locales/tr/modules/dns-hole-controls.json b/public/locales/tr/modules/dns-hole-controls.json index 3aa83c7bf..24cdcd8fd 100644 --- a/public/locales/tr/modules/dns-hole-controls.json +++ b/public/locales/tr/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS hole kontrolleri", - "description": "Kontrol panelinizden PiHole veya AdGuard'ı kontrol edin" + "description": "Kontrol panelinizden PiHole veya AdGuard'ı kontrol edin", + "settings": { + "title": "DNS hole kontrol ayarları", + "showToggleAllButtons": { + "label": "'Tümünü Etkinleştir/Devre Dışı Bırak' Butonlarını Göster" + } + } } } \ No newline at end of file diff --git a/public/locales/tr/password-requirements.json b/public/locales/tr/password-requirements.json new file mode 100644 index 000000000..000881dc3 --- /dev/null +++ b/public/locales/tr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Numara içerir", + "lowercase": "Küçük harf içerir", + "uppercase": "Büyük harf içerir", + "special": "Özel karakterleri dahil et", + "length": "En az {{count}} karakter içerir" +} \ No newline at end of file diff --git a/public/locales/tr/settings/customization/access.json b/public/locales/tr/settings/customization/access.json new file mode 100644 index 000000000..ce19e4d01 --- /dev/null +++ b/public/locales/tr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonimliğe izin ver", + "description": "Oturum açmamış kullanıcıların panonuzu görüntülemesine izin verin" + } +} \ No newline at end of file diff --git a/public/locales/tr/settings/customization/general.json b/public/locales/tr/settings/customization/general.json index a621fa84a..a3df2a539 100644 --- a/public/locales/tr/settings/customization/general.json +++ b/public/locales/tr/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Erişilebilirlik", "description": "Homarr'ı engelli kullanıcılar için yapılandırma" + }, + "access": { + "name": "Erişim", + "description": "Panelinize kimlerin erişebileceğini yapılandırın" } } } diff --git a/public/locales/tr/settings/customization/page-appearance.json b/public/locales/tr/settings/customization/page-appearance.json index f256e1750..c29a6bd75 100644 --- a/public/locales/tr/settings/customization/page-appearance.json +++ b/public/locales/tr/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Ayrıca, yalnızca deneyimli kullanıcılar için önerilen CSS kullanarak kontrol panelinizi özelleştirin", "placeholder": "Özel CSS en son uygulanacaktır", "applying": "CSS uygulanıyor..." - }, - "buttons": { - "submit": "Gönder" } -} +} \ No newline at end of file diff --git a/public/locales/tr/settings/general/theme-selector.json b/public/locales/tr/settings/general/theme-selector.json index 6a3dde83a..2681d374c 100644 --- a/public/locales/tr/settings/general/theme-selector.json +++ b/public/locales/tr/settings/general/theme-selector.json @@ -1,3 +1,3 @@ { - "label": "Modu {{theme}} ile değiştir" + "label": "Görünümü {{theme}} ile değiştir" } \ No newline at end of file diff --git a/public/locales/tr/tools/docker.json b/public/locales/tr/tools/docker.json new file mode 100644 index 000000000..7c0e3e97d --- /dev/null +++ b/public/locales/tr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Homarr örneğinizde Docker yapılandırılmış değil veya konteynırları getirmede başarısız oldu. Lütfen entegrasyonun nasıl kurulacağına ilişkin belgeleri kontrol edin." + } + }, + "modals": { + "selectBoard": { + "title": "Bir panel seç", + "text": "Seçilen Docker konteynır uygulamalarını eklemek istediğiniz paneli seçin.", + "form": { + "board": { + "label": "Panel" + }, + "submit": "Uygulama Ekle" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Uygulamalar panele eklendi", + "message": "Seçilen Docker konteynırlarına ilişkin uygulamalar panelinize eklendi." + }, + "error": { + "title": "Uygulamalar panele eklenemedi", + "message": "Seçilen Docker konteynırlarına ilişkin uygulamalar panelinize eklenemedi." + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/user/preferences.json b/public/locales/tr/user/preferences.json new file mode 100644 index 000000000..cf55c223d --- /dev/null +++ b/public/locales/tr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Tercihler", + "pageTitle": "Tercihleriniz", + "boards": { + "defaultBoard": { + "label": "Varsayılan panel" + } + }, + "accessibility": { + "title": "Erişilebilirlik", + "disablePulse": { + "label": "Ping animasyonunu devre dışı bırak", + "description": "Varsayılan olarak, Homarr'daki ping animasyonu aktiftir. Bu rahatsız edici olabilir. Bu animasyonu devre dışı bırakacaktır" + }, + "replaceIconsWithDots": { + "label": "Ping noktalarını ikon ile değiştirin", + "description": "Renk körü (Daltonizm) kullanıcılar için ping noktaları tanınmayabilir. Bu, göstergeleri simgelerle değiştirecektir" + } + }, + "localization": { + "language": { + "label": "Dil" + }, + "firstDayOfWeek": { + "label": "Haftanın ilk günü", + "options": { + "monday": "Pazartesi", + "saturday": "Cumartesi", + "sunday": "Pazar" + } + } + }, + "searchEngine": { + "title": "Arama motoru", + "custom": "Kişisel", + "newTab": { + "label": "Arama sonuçlarını yeni sekmede aç" + }, + "autoFocus": { + "label": "Sayfa yüklendiğinde arama çubuğuna odaklanın.", + "description": "Sayfa yüklendiğindei imleç arama çubuğunu otomatik olarak odaklayacaktır. Yalnızca masaüstü cihazlarda çalışacaktır." + }, + "template": { + "label": "Sorgu URL’si", + "description": "Sorgu için yer tutucu olarak %s kullanın" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/zod.json b/public/locales/tr/zod.json new file mode 100644 index 000000000..fc3becbda --- /dev/null +++ b/public/locales/tr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Bu alan geçersiz", + "required": "Bu alan gereklidir", + "string": { + "startsWith": "Bu alan {{startsWith}} ile başlamalıdır", + "endsWith": "Bu alan {{endsWith}} ile bitmelidir", + "includes": "Bu alan {{includes}} adresini içermelidir" + }, + "tooSmall": { + "string": "Bu alan en az {{minimum}} karakter uzunluğunda olmalıdır", + "number": "Bu alan {{minimum}} adresinden uzun veya eşit olmalıdır" + }, + "tooBig": { + "string": "Bu alan en fazla {{maximum}} karakter uzunluğunda olmalıdır", + "number": "Bu alan {{maximum}} adresinden kısa veya eşit olmalıdır" + }, + "custom": { + "passwordMatch": "Şifreler aynı olmalıdır" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/authentication/invite.json b/public/locales/uk/authentication/invite.json new file mode 100644 index 000000000..b936136a9 --- /dev/null +++ b/public/locales/uk/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Логін" + }, + "password": { + "label": "Пароль" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Помилка", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/authentication/login.json b/public/locales/uk/authentication/login.json index 96c2ed52a..0e795eb8f 100644 --- a/public/locales/uk/authentication/login.json +++ b/public/locales/uk/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "З поверненням!", - "text": "Будь ласка, введіть ваш пароль", + "text": "", "form": { "fields": { + "username": { + "label": "Логін" + }, "password": { - "label": "Пароль", - "placeholder": "Ваш пароль" + "label": "Пароль" } }, "buttons": { "submit": "Вхід" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Перевірка пароля", - "message": "Ваш пароль перевіряється..." - }, - "correct": { - "title": "Вхід успішний, перенаправлення..." - }, - "wrong": { - "title": "Введено неправильний пароль. Повторіть спробу." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/uk/boards/common.json b/public/locales/uk/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/uk/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/uk/boards/customize.json b/public/locales/uk/boards/customize.json new file mode 100644 index 000000000..dcb2d208c --- /dev/null +++ b/public/locales/uk/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Помилка", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 36c18d20f..f6ff7042f 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -3,9 +3,13 @@ "about": "Про програму", "cancel": "Скасувати", "close": "Закрити", + "back": "", "delete": "Видалити", "ok": "OK", "edit": "Редагувати", + "next": "", + "previous": "", + "confirm": "Підтвердити", "enabled": "Увімкнено", "disabled": "Вимкнено", "enableAll": "Увімкнути все", diff --git a/public/locales/uk/layout/header.json b/public/locales/uk/layout/header.json new file mode 100644 index 000000000..776699e80 --- /dev/null +++ b/public/locales/uk/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Про програму", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/layout/manage.json b/public/locales/uk/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/uk/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/boards.json b/public/locales/uk/manage/boards.json new file mode 100644 index 000000000..e87de5e4d --- /dev/null +++ b/public/locales/uk/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Ім’я" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/index.json b/public/locales/uk/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/uk/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/users.json b/public/locales/uk/manage/users.json new file mode 100644 index 000000000..3d9678fb7 --- /dev/null +++ b/public/locales/uk/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Користувач" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Підтвердити" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/uk/manage/users/create.json b/public/locales/uk/manage/users/create.json new file mode 100644 index 000000000..d9d82c014 --- /dev/null +++ b/public/locales/uk/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Логін" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Пароль", + "password": { + "label": "Пароль" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Логін", + "email": "", + "password": "Пароль" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/users/invites.json b/public/locales/uk/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/uk/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/uk/modules/calendar.json b/public/locales/uk/modules/calendar.json index 546914f46..baf8ea33e 100644 --- a/public/locales/uk/modules/calendar.json +++ b/public/locales/uk/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Використовувати Sonarr v4 API" }, - "sundayStart": { - "label": "Почати тиждень у Неділю" - }, "radarrReleaseType": { "label": "Radarr - тип релізів", "data": { diff --git a/public/locales/uk/modules/dns-hole-controls.json b/public/locales/uk/modules/dns-hole-controls.json index 6971386ba..cd7266236 100644 --- a/public/locales/uk/modules/dns-hole-controls.json +++ b/public/locales/uk/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Контроль DNS-hole", - "description": "Керуйте PiHole або AdGuard за допомогою головної панелі" + "description": "Керуйте PiHole або AdGuard за допомогою головної панелі", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/uk/password-requirements.json b/public/locales/uk/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/uk/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/uk/settings/customization/access.json b/public/locales/uk/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/uk/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/uk/settings/customization/general.json b/public/locales/uk/settings/customization/general.json index 6e1b4e004..ac1e0bc44 100644 --- a/public/locales/uk/settings/customization/general.json +++ b/public/locales/uk/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/uk/settings/customization/page-appearance.json b/public/locales/uk/settings/customization/page-appearance.json index ffbb619d8..3c5adce8f 100644 --- a/public/locales/uk/settings/customization/page-appearance.json +++ b/public/locales/uk/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Крім того, налаштуйте дашборд за допомогою CSS, що рекомендується лише досвідченим користувачам", "placeholder": "Власний CSS буде оброблятися в останню чергу", "applying": "Застосувати CSS..." - }, - "buttons": { - "submit": "Надіслати" } -} +} \ No newline at end of file diff --git a/public/locales/uk/tools/docker.json b/public/locales/uk/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/uk/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/user/preferences.json b/public/locales/uk/user/preferences.json new file mode 100644 index 000000000..bd5224a11 --- /dev/null +++ b/public/locales/uk/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Мова/Language" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Пошукова система", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL-адреса запиту", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/zod.json b/public/locales/uk/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/uk/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/authentication/invite.json b/public/locales/vi/authentication/invite.json new file mode 100644 index 000000000..a5fbc57b1 --- /dev/null +++ b/public/locales/vi/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Tên người dùng" + }, + "password": { + "label": "Mật khẩu" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Lỗi", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/authentication/login.json b/public/locales/vi/authentication/login.json index 145609f0f..e24d53c53 100644 --- a/public/locales/vi/authentication/login.json +++ b/public/locales/vi/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Chào mừng quay trở lại!", - "text": "Vui lòng nhập mật khẩu", + "text": "", "form": { "fields": { + "username": { + "label": "Tên người dùng" + }, "password": { - "label": "Mật khẩu", - "placeholder": "Mật khẩu của bạn" + "label": "Mật khẩu" } }, "buttons": { "submit": "Đăng nhập" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Đang kiểm tra mật khẩu", - "message": "Mật khẩu của bạn đang được kiểm tra..." - }, - "correct": { - "title": "Đăng nhập thành công, đang chuyển hướng..." - }, - "wrong": { - "title": "Mật khẩu vừa nhập không đúng, xin vui lòng thử lại." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/vi/boards/common.json b/public/locales/vi/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/vi/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/vi/boards/customize.json b/public/locales/vi/boards/customize.json new file mode 100644 index 000000000..28286007d --- /dev/null +++ b/public/locales/vi/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Lỗi", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index d1565fc33..fa10c1321 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -3,9 +3,13 @@ "about": "Về chúng tôi", "cancel": "Hủy", "close": "Đóng", + "back": "", "delete": "Xóa", "ok": "OK", "edit": "Sửa", + "next": "", + "previous": "", + "confirm": "Xác nhận", "enabled": "Bật", "disabled": "Tắt", "enableAll": "Bật toàn bộ", diff --git a/public/locales/vi/layout/header.json b/public/locales/vi/layout/header.json new file mode 100644 index 000000000..bafae997d --- /dev/null +++ b/public/locales/vi/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "Về chúng tôi", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/layout/manage.json b/public/locales/vi/layout/manage.json new file mode 100644 index 000000000..67fb86c4a --- /dev/null +++ b/public/locales/vi/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/boards.json b/public/locales/vi/manage/boards.json new file mode 100644 index 000000000..22505a807 --- /dev/null +++ b/public/locales/vi/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Ứng dụng", + "widgets": "Tiện ích", + "categories": "Danh mục" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Tên" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/index.json b/public/locales/vi/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/vi/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/users.json b/public/locales/vi/manage/users.json new file mode 100644 index 000000000..78072876d --- /dev/null +++ b/public/locales/vi/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Người dùng" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Xác nhận" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/vi/manage/users/create.json b/public/locales/vi/manage/users/create.json new file mode 100644 index 000000000..2bc5e9f31 --- /dev/null +++ b/public/locales/vi/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Tên người dùng" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Mật khẩu", + "password": { + "label": "Mật khẩu" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Tên người dùng", + "email": "", + "password": "Mật khẩu" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/users/invites.json b/public/locales/vi/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/vi/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/vi/modules/calendar.json b/public/locales/vi/modules/calendar.json index 18357600f..eb64fbfd5 100644 --- a/public/locales/vi/modules/calendar.json +++ b/public/locales/vi/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "Dùng Sonarr v4 API" }, - "sundayStart": { - "label": "Đặt đầu tuần là Chủ Nhật" - }, "radarrReleaseType": { "label": "Loại phát hành Radarr", "data": { diff --git a/public/locales/vi/modules/dns-hole-controls.json b/public/locales/vi/modules/dns-hole-controls.json index e2e9fe711..66540fe87 100644 --- a/public/locales/vi/modules/dns-hole-controls.json +++ b/public/locales/vi/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "Trình điều khiển DNS", - "description": "Kiểm soát PiHole hoặc AdGuard từ bảng điều khiển của bạn" + "description": "Kiểm soát PiHole hoặc AdGuard từ bảng điều khiển của bạn", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + } } } \ No newline at end of file diff --git a/public/locales/vi/password-requirements.json b/public/locales/vi/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/vi/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/vi/settings/customization/access.json b/public/locales/vi/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/vi/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/vi/settings/customization/general.json b/public/locales/vi/settings/customization/general.json index 46ca600f9..700a5ec21 100644 --- a/public/locales/vi/settings/customization/general.json +++ b/public/locales/vi/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Trợ năng", "description": "Thiết lập Homarr cho người dùng khuyết tật" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/vi/settings/customization/page-appearance.json b/public/locales/vi/settings/customization/page-appearance.json index cbd51a8e7..ff16304c0 100644 --- a/public/locales/vi/settings/customization/page-appearance.json +++ b/public/locales/vi/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Ngoài ra có thể tùy chỉnh bảng điều khiển của bạn bằng CSS, chỉ được đề xuất cho người dùng có kinh nghiệm", "placeholder": "CSS tùy chỉnh sẽ được áp dụng sau cùng", "applying": "Đang áp dụng CSS..." - }, - "buttons": { - "submit": "Gửi" } -} +} \ No newline at end of file diff --git a/public/locales/vi/tools/docker.json b/public/locales/vi/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/vi/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/user/preferences.json b/public/locales/vi/user/preferences.json new file mode 100644 index 000000000..301b89032 --- /dev/null +++ b/public/locales/vi/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "Trợ năng", + "disablePulse": { + "label": "Tắt nhịp thở chấm ping", + "description": "Mặc địch, chấm ping trong Homarr sẽ có một nhịp co giãn. Nếu điều này gây khó chịu, tranh trượt này sẽ giúp bạn tắt chuyển động đó" + }, + "replaceIconsWithDots": { + "label": "Thay thế chấm ping bằng biểu tượng", + "description": "Với người dùng mù màu, chấm ping có thể khó nhận diện. Lựa chọn này sẽ thay thế các chấm bằng biểu tượng" + } + }, + "localization": { + "language": { + "label": "Ngôn ngữ" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Công cụ tìm kiếm", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL truy vấn", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/zod.json b/public/locales/vi/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/vi/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/authentication/invite.json b/public/locales/zh/authentication/invite.json new file mode 100644 index 000000000..6e1d47b60 --- /dev/null +++ b/public/locales/zh/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "创建账号", + "title": "创建账号", + "text": "请在下面定义您的凭据", + "form": { + "fields": { + "username": { + "label": "用户名" + }, + "password": { + "label": "密码" + }, + "passwordConfirmation": { + "label": "确认密码" + } + }, + "buttons": { + "submit": "创建账号" + } + }, + "notifications": { + "loading": { + "title": "正在创建账号...", + "text": "请稍等" + }, + "success": { + "title": "账号已创建", + "text": "您的账号创建成功" + }, + "error": { + "title": "错误", + "text": "出错了,出现以下错误: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/authentication/login.json b/public/locales/zh/authentication/login.json index a5020aea3..e509c07c7 100644 --- a/public/locales/zh/authentication/login.json +++ b/public/locales/zh/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "登录", "title": "欢迎回来!", - "text": "请输入密码", + "text": "请确认您的凭证", "form": { "fields": { + "username": { + "label": "用户名" + }, "password": { - "label": "密码", - "placeholder": "您的密码" + "label": "密码" } }, "buttons": { "submit": "登录" - } + }, + "afterLoginRedirection": "登录后,您将被重定向到 {{url}}" }, - "notifications": { - "checking": { - "title": "检查您的密码", - "message": "正在检查您的密码..." - }, - "correct": { - "title": "登录成功,正在跳转..." - }, - "wrong": { - "title": "密码错误,请重新输入。" - } - } -} + "alert": "您的凭据不正确或此账户不存在。请重试。" +} \ No newline at end of file diff --git a/public/locales/zh/boards/common.json b/public/locales/zh/boards/common.json new file mode 100644 index 000000000..1d37e1183 --- /dev/null +++ b/public/locales/zh/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "自定义面板" + } +} \ No newline at end of file diff --git a/public/locales/zh/boards/customize.json b/public/locales/zh/boards/customize.json new file mode 100644 index 000000000..f65d49700 --- /dev/null +++ b/public/locales/zh/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "自定义 {{name}} 面板", + "pageTitle": "{{name}} 面板自定义中", + "backToBoard": "返回面板", + "settings": { + "appearance": { + "primaryColor": "主体色", + "secondaryColor": "辅助色" + } + }, + "save": { + "button": "保存更改", + "note": "小心,您有未保存的更改!" + }, + "notifications": { + "pending": { + "title": "自定义保存中", + "message": "请稍候,我们正在保存您的自定义" + }, + "success": { + "title": "已保存自定义", + "message": "您的自定义已成功保存" + }, + "error": { + "title": "错误", + "message": "无法保存更改" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json index 8b67cf12b..bbbd83c0d 100644 --- a/public/locales/zh/common.json +++ b/public/locales/zh/common.json @@ -3,9 +3,13 @@ "about": "关于", "cancel": "取消", "close": "关闭", + "back": "返回", "delete": "删除", "ok": "确定", "edit": "编辑", + "next": "下一步", + "previous": "上一步", + "confirm": "确认", "enabled": "已启用", "disabled": "已禁用", "enableAll": "全部启用", diff --git a/public/locales/zh/layout/common.json b/public/locales/zh/layout/common.json index 4429f9a54..45772a386 100644 --- a/public/locales/zh/layout/common.json +++ b/public/locales/zh/layout/common.json @@ -18,8 +18,8 @@ "menu": { "moveUp": "上移", "moveDown": "下移", - "addCategory": "添加分类 {{location}}", - "addAbove": "上方", - "addBelow": "下方" + "addCategory": "{{location}}添加分类", + "addAbove": "在上方", + "addBelow": "在下方" } } \ No newline at end of file diff --git a/public/locales/zh/layout/header.json b/public/locales/zh/layout/header.json new file mode 100644 index 000000000..8dd16b066 --- /dev/null +++ b/public/locales/zh/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "这是 Homarr 的一项实验性功能。请在 GitHubDiscord上报告任何问题。" + }, + "search": { + "label": "搜索", + "engines": { + "web": "在网上搜索 {{query}}", + "youtube": "在 YouTube 上搜索 {{query}}", + "torrent": "搜索 {{query}} Torrents", + "movie": "在 {{app}} 上搜索 {{query}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "切换主题", + "preferences": "用户首选项", + "defaultBoard": "默认仪表盘", + "manage": "管理", + "about": { + "label": "关于", + "new": "新" + }, + "logout": "注销 {{username}}", + "login": "登录" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "最高 {{count}} 结果为 {{search}}。" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/layout/manage.json b/public/locales/zh/layout/manage.json new file mode 100644 index 000000000..e60b4a33b --- /dev/null +++ b/public/locales/zh/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "首页" + }, + "boards": { + "title": "面板" + }, + "users": { + "title": "用户", + "items": { + "manage": "管理", + "invites": "邀请" + } + }, + "help": { + "title": "帮助", + "items": { + "documentation": "文档", + "report": "报告问题 / bug", + "discord": "Discord 社区", + "contribute": "贡献" + } + }, + "tools": { + "title": "工具", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/boards.json b/public/locales/zh/manage/boards.json new file mode 100644 index 000000000..a814feb55 --- /dev/null +++ b/public/locales/zh/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "面板", + "pageTitle": "面板", + "cards": { + "statistics": { + "apps": "应用", + "widgets": "组件", + "categories": "分类" + }, + "buttons": { + "view": "查看面板" + }, + "menu": { + "setAsDefault": "设置为您的默认面板", + "delete": { + "label": "永久删除", + "disabled": "删除功能已禁用,因为旧的 Homarr 组件不允许删除默认配置。将来将有可能删除。" + } + }, + "badges": { + "fileSystem": "文件系统", + "default": "默认" + } + }, + "buttons": { + "create": "创建新面板" + }, + "modals": { + "delete": { + "title": "删除面板", + "text": "你确定要删除这个面板吗? 此操作无法撤消,您的数据将永久丢失。" + }, + "create": { + "title": "创建面板", + "text": "创建版面后不能更改名称。", + "form": { + "name": { + "label": "名称" + }, + "submit": "创建" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/index.json b/public/locales/zh/manage/index.json new file mode 100644 index 000000000..20bbf04fe --- /dev/null +++ b/public/locales/zh/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "管理", + "hero": { + "title": "欢迎回来,{{username}}!", + "fallbackUsername": "匿名", + "subtitle": "欢迎来到您的应用程序中心。组织、优化和征服!" + }, + "quickActions": { + "title": "快捷操作", + "boards": { + "title": "您的面板", + "subtitle": "创建和管理您的面板" + }, + "inviteUsers": { + "title": "邀请新用户", + "subtitle": "创建并发送注册邀请" + }, + "manageUsers": { + "title": "管理用户", + "subtitle": "删除和管理您的用户" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/users.json b/public/locales/zh/manage/users.json new file mode 100644 index 000000000..184b60100 --- /dev/null +++ b/public/locales/zh/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "用户", + "pageTitle": "管理用户", + "text": "通过使用用户,您可以配置谁可以编辑您的仪表板。Homarr的未来版本将对权限和板进行更精细的控制。", + "buttons": { + "create": "创建" + }, + "table": { + "header": { + "user": "用户" + } + }, + "tooltips": { + "deleteUser": "删除用户", + "demoteAdmin": "撤销管理员", + "promoteToAdmin": "提升为管理员" + }, + "modals": { + "delete": { + "title": "删除用户 {{name}}", + "text": "您确定要删除用户 {{name}} 吗?这将删除与该账户相关的数据,但不会删除该用户创建的任何仪表盘。" + }, + "change-role": { + "promote": { + "title": "将用户 {{name}} 提升为管理员", + "text": "您确定要将 {{name}} 用户升级为管理员吗?这样该用户就可以访问 Homarr 实例的所有资源。" + }, + "demote": { + "title": "将用户 {{name}} 降级为用户", + "text": "您确定要将 {{name}} 用户降级为用户吗?这将取消该用户对 Homarr 实例所有资源的访问权限。" + }, + "confirm": "确认" + } + }, + "searchDoesntMatch": "您的搜索与任何条目都不匹配。请调整您的过滤器。" +} \ No newline at end of file diff --git a/public/locales/zh/manage/users/create.json b/public/locales/zh/manage/users/create.json new file mode 100644 index 000000000..051ace725 --- /dev/null +++ b/public/locales/zh/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "创建用户", + "steps": { + "account": { + "title": "第一步", + "text": "创建账号", + "username": { + "label": "用户名" + }, + "email": { + "label": "邮箱" + } + }, + "security": { + "title": "第二步", + "text": "密码", + "password": { + "label": "密码" + } + }, + "finish": { + "title": "确认", + "text": "保存到数据库", + "card": { + "title": "检查您的输入", + "text": "向数据库提交数据后,用户就可以登录了。您确定要将此用户存储在数据库中并激活登录吗?" + }, + "table": { + "header": { + "property": "属性", + "value": "参数值", + "username": "用户名", + "email": "邮箱", + "password": "密码" + }, + "notSet": "未设置", + "valid": "有效" + }, + "failed": "用户创建失败: {{error}}" + }, + "completed": { + "alert": { + "title": "用户已创建", + "text": "用户已在数据库中创建。他们现在可以登录了。" + } + } + }, + "buttons": { + "generateRandomPassword": "随机生成", + "createAnother": "创建另一个" + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/users/invites.json b/public/locales/zh/manage/users/invites.json new file mode 100644 index 000000000..6342fbcfb --- /dev/null +++ b/public/locales/zh/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "用户邀请", + "pageTitle": "管理用户邀请", + "description": "使用邀请功能,可以邀请用户访问Homarr实例。邀请只在一定的时间范围内有效,并且只能使用一次。有效期必须在创建后5分钟至12个月之间。", + "button": { + "createInvite": "创建邀请", + "deleteInvite": "删除邀请" + }, + "table": { + "header": { + "id": "ID", + "creator": "创建者", + "expires": "到期", + "action": "动作" + }, + "data": { + "expiresAt": "过期 {{at}}", + "expiresIn": "在 {{in}}" + } + }, + "modals": { + "create": { + "title": "创建邀请", + "description": "到期后,邀请将不再有效,邀请接收者将无法创建账号。", + "form": { + "expires": "过期时间", + "submit": "创建" + } + }, + "copy": { + "title": "复制邀请信息", + "description": "您的邀请已生成。在此模式关闭后,您将无法再复制此链接。如果你不想再邀请这个人,你可以随时删除这个邀请。", + "invitationLink": "邀请链接", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "复制 & 取消" + } + }, + "delete": { + "title": "删除邀请", + "description": "你确定要删除这个邀请吗? 使用此链接的用户将不能再使用该链接创建账号。" + } + }, + "noInvites": "还没有邀请。" +} \ No newline at end of file diff --git a/public/locales/zh/modules/calendar.json b/public/locales/zh/modules/calendar.json index 80f174df5..db4529380 100644 --- a/public/locales/zh/modules/calendar.json +++ b/public/locales/zh/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "使用Sonarr v4 API" }, - "sundayStart": { - "label": "使用周日作为一周的开始" - }, "radarrReleaseType": { "label": "Radarr发布类型", "data": { diff --git a/public/locales/zh/modules/dns-hole-controls.json b/public/locales/zh/modules/dns-hole-controls.json index c3a4f1cbf..e8b8ba2df 100644 --- a/public/locales/zh/modules/dns-hole-controls.json +++ b/public/locales/zh/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS漏洞控制", - "description": "从您的面板控制 PiHole 或 AdGuard" + "description": "从您的面板控制 PiHole 或 AdGuard", + "settings": { + "title": "DNS 漏洞控制设置", + "showToggleAllButtons": { + "label": "显示 \"启用/禁用全部 \"按钮" + } + } } } \ No newline at end of file diff --git a/public/locales/zh/password-requirements.json b/public/locales/zh/password-requirements.json new file mode 100644 index 000000000..4ddc2ff10 --- /dev/null +++ b/public/locales/zh/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "包含数字", + "lowercase": "包括小写字母", + "uppercase": "包含大写字母", + "special": "包含特殊符号", + "length": "至少包含 {{count}} 个字符" +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/access.json b/public/locales/zh/settings/customization/access.json new file mode 100644 index 000000000..959b7e267 --- /dev/null +++ b/public/locales/zh/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "允许匿名用户", + "description": "允许未登录的用户查看您的面板" + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/general.json b/public/locales/zh/settings/customization/general.json index 516a51648..fb47b3508 100644 --- a/public/locales/zh/settings/customization/general.json +++ b/public/locales/zh/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "无障碍服务", "description": "为残疾和残障人士配置 Homarr" + }, + "access": { + "name": "Acccess", + "description": "配置谁有权访问您的面板" } } } diff --git a/public/locales/zh/settings/customization/page-appearance.json b/public/locales/zh/settings/customization/page-appearance.json index 4af02491d..d55710458 100644 --- a/public/locales/zh/settings/customization/page-appearance.json +++ b/public/locales/zh/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "此外,只推荐有经验的用户使用 CSS 自定义面板", "placeholder": "自定义 CSS 将在最后应用", "applying": "应用CSS中..." - }, - "buttons": { - "submit": "提交" } -} +} \ No newline at end of file diff --git a/public/locales/zh/tools/docker.json b/public/locales/zh/tools/docker.json new file mode 100644 index 000000000..52ecf5a6d --- /dev/null +++ b/public/locales/zh/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "您的 Homarr 实例未配置 Docker,或无法获取容器。请查看文档,了解如何设置集成。" + } + }, + "modals": { + "selectBoard": { + "title": "选择一个面板", + "text": "选择您想要为选定的 Docker 容器添加应用的面板。", + "form": { + "board": { + "label": "面板" + }, + "submit": "添加应用" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "添加应用到面板", + "message": "选定的 Docker 容器的应用已添加到面板中。" + }, + "error": { + "title": "添加应用到面板失败", + "message": "所选Docker容器的应用无法添加到面板中。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/user/preferences.json b/public/locales/zh/user/preferences.json new file mode 100644 index 000000000..af67d6662 --- /dev/null +++ b/public/locales/zh/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "首选项", + "pageTitle": "您的首选项", + "boards": { + "defaultBoard": { + "label": "默认面板" + } + }, + "accessibility": { + "title": "无障碍服务", + "disablePulse": { + "label": "禁用 Ping", + "description": "默认情况下,Homarr 中的 Ping 指示器会一直工作。这可能会让人感到恼火。这个滑块将停用该动画。" + }, + "replaceIconsWithDots": { + "label": "用图标替换 Ping 点", + "description": "对于色盲用户来说,Ping 点可能无法识别。 这将用图标替换指示器" + } + }, + "localization": { + "language": { + "label": "语言" + }, + "firstDayOfWeek": { + "label": "一周的第一天", + "options": { + "monday": "周一", + "saturday": "周六", + "sunday": "周日" + } + } + }, + "searchEngine": { + "title": "搜索引擎", + "custom": "自定义", + "newTab": { + "label": "在新选项卡中打开搜索结果页" + }, + "autoFocus": { + "label": "页面加载时聚焦搜索栏。", + "description": "当您浏览页面时,搜索栏会自动聚焦。该功能仅适用于桌面设备。" + }, + "template": { + "label": "查询网址", + "description": "使用 %s 作为查询的占位符" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/zod.json b/public/locales/zh/zod.json new file mode 100644 index 000000000..8e2e503c8 --- /dev/null +++ b/public/locales/zh/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "该字段无效", + "required": "此字段为必填", + "string": { + "startsWith": "该字段必须以 {{startsWith}} 开头", + "endsWith": "该字段必须以 {{endsWith}} 结尾", + "includes": "该字段必须包含 {{includes}}" + }, + "tooSmall": { + "string": "该字段的长度必须至少为 {{minimum}} 个字符", + "number": "该字段必须大于或等于 {{minimum}}" + }, + "tooBig": { + "string": "该字段的长度不得超过 {{maximum}} 个字符", + "number": "该字段必须小于或等于 {{maximum}}" + }, + "custom": { + "passwordMatch": "两次输入的密码必须一致" + } + } +} \ No newline at end of file From a6c7fbc1effc40d4fda96c6a2bdad4c9dfdaba72 Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:18:59 +0200 Subject: [PATCH 15/62] Update step-onboarding-finished.tsx (#1437) --- src/components/Onboarding/step-onboarding-finished.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Onboarding/step-onboarding-finished.tsx b/src/components/Onboarding/step-onboarding-finished.tsx index c1dc40e12..5cd69a285 100644 --- a/src/components/Onboarding/step-onboarding-finished.tsx +++ b/src/components/Onboarding/step-onboarding-finished.tsx @@ -41,7 +41,7 @@ export const StepOnboardingFinished = () => { } className={classes.link} icon={} From 4006c69f5b99cc44356d6fae79026a1ff50c2081 Mon Sep 17 00:00:00 2001 From: Henry Skrtich <1214484+hskrtich@users.noreply.github.com> Date: Thu, 28 Sep 2023 10:19:44 -0700 Subject: [PATCH 16/62] fix: stop triming traling slashes (#1435) fixes #777 --- src/components/Dashboard/Tiles/Apps/AppTile.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Dashboard/Tiles/Apps/AppTile.tsx b/src/components/Dashboard/Tiles/Apps/AppTile.tsx index b3c60a1ff..ba3b3676a 100644 --- a/src/components/Dashboard/Tiles/Apps/AppTile.tsx +++ b/src/components/Dashboard/Tiles/Apps/AppTile.tsx @@ -87,7 +87,7 @@ export const AppTile = ({ className, app }: AppTileProps) => { ) : ( 0 ? app.behaviour.externalUrl : app.url} target={app.behaviour.isOpeningNewTab ? '_blank' : '_self'} className={`${classes.button} ${classes.base}`} From 6c43a19fa114105dd5e638ac9e262ae412d4d9c1 Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Thu, 28 Sep 2023 19:47:13 +0200 Subject: [PATCH 17/62] =?UTF-8?q?=F0=9F=92=84Allow=20user=20to=20make=20vi?= =?UTF-8?q?deo=20stream=20smaller=20than=202*3=20(#1430)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/video/VideoStreamTile.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/video/VideoStreamTile.tsx b/src/widgets/video/VideoStreamTile.tsx index a3bbfc7c1..47331ba84 100644 --- a/src/widgets/video/VideoStreamTile.tsx +++ b/src/widgets/video/VideoStreamTile.tsx @@ -30,8 +30,8 @@ const definition = defineWidget({ }, }, gridstack: { - minWidth: 3, - minHeight: 2, + minWidth: 1, + minHeight: 1, maxWidth: 12, maxHeight: 12, }, From 32e40f334298461f8fa191e1dffbee51a2c025f1 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 30 Sep 2023 00:30:55 +0200 Subject: [PATCH 18/62] =?UTF-8?q?=F0=9F=90=9B=20Remove=20DISABLE=5FEDIT=5F?= =?UTF-8?q?MODE=20and=20replace=20with=20admin-procedure=20(#1439)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/routers/config.ts | 8 +------- src/server/api/routers/notebook.ts | 12 ++---------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/server/api/routers/config.ts b/src/server/api/routers/config.ts index 25b22bc83..895851138 100644 --- a/src/server/api/routers/config.ts +++ b/src/server/api/routers/config.ts @@ -5,12 +5,12 @@ import fs from 'fs'; import path from 'path'; import { z } from 'zod'; import { configExists } from '~/tools/config/configExists'; +import { getConfig } from '~/tools/config/getConfig'; import { getFrontendConfig } from '~/tools/config/getFrontendConfig'; import { BackendConfigType, ConfigType } from '~/types/config'; import { boardCustomizationSchema } from '~/validations/boards'; import { IRssWidget } from '~/widgets/rss/RssWidgetTile'; -import { getConfig } from '~/tools/config/getConfig'; import { adminProcedure, createTRPCRouter, publicProcedure } from '../trpc'; export const configNameSchema = z.string().regex(/^[a-zA-Z0-9-_]+$/); @@ -67,12 +67,6 @@ export const configRouter = createTRPCRouter({ }) ) .mutation(async ({ input }) => { - if (process.env.DISABLE_EDIT_MODE?.toLowerCase() === 'true') { - throw new TRPCError({ - code: 'METHOD_NOT_SUPPORTED', - message: 'Edit is not allowed, because edit mode is disabled' - }); - } Consola.info(`Saving updated configuration of '${input.name}' config.`); const previousConfig = getConfig(input.name); diff --git a/src/server/api/routers/notebook.ts b/src/server/api/routers/notebook.ts index 1209e6986..e3f033901 100644 --- a/src/server/api/routers/notebook.ts +++ b/src/server/api/routers/notebook.ts @@ -6,20 +6,12 @@ import { getConfig } from '~/tools/config/getConfig'; import { BackendConfigType } from '~/types/config'; import { INotebookWidget } from '~/widgets/notebook/NotebookWidgetTile'; -import { createTRPCRouter, publicProcedure } from '../trpc'; +import { adminProcedure, createTRPCRouter, publicProcedure } from '../trpc'; export const notebookRouter = createTRPCRouter({ - update: publicProcedure + update: adminProcedure .input(z.object({ widgetId: z.string(), content: z.string(), configName: z.string() })) .mutation(async ({ input }) => { - //TODO: #1305 Remove use of DISABLE_EDIT_MODE for auth update - if (process.env.DISABLE_EDIT_MODE?.toLowerCase() === 'true') { - throw new TRPCError({ - code: 'METHOD_NOT_SUPPORTED', - message: 'Edit is not allowed, because edit mode is disabled' - }); - } - const config = getConfig(input.configName); const widget = config.widgets.find((widget) => widget.id === input.widgetId) as | INotebookWidget From b770b88834f4d5cf8206990705b96bae614e284d Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 30 Sep 2023 12:42:53 +0200 Subject: [PATCH 19/62] fix: trim media server url (#1438) --- src/server/api/routers/media-server.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/server/api/routers/media-server.ts b/src/server/api/routers/media-server.ts index 7f3188cc5..0f7c14ebb 100644 --- a/src/server/api/routers/media-server.ts +++ b/src/server/api/routers/media-server.ts @@ -2,17 +2,21 @@ import { Jellyfin } from '@jellyfin/sdk'; import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models'; import { getSessionApi } from '@jellyfin/sdk/lib/utils/api/session-api'; import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; + import Consola from 'consola'; + import { z } from 'zod'; + +import { createTRPCRouter, publicProcedure } from '../trpc'; + +import { ConfigAppType } from '~/types/app'; import { checkIntegrationsType, findAppProperty } from '~/tools/client/app-properties'; import { getConfig } from '~/tools/config/getConfig'; -import { PlexClient } from '~/tools/server/sdk/plex/plexClient'; +import { trimStringEnding } from '~/tools/shared/strings'; import { GenericMediaServer } from '~/types/api/media-server/media-server'; import { MediaServersResponseType } from '~/types/api/media-server/response'; import { GenericCurrentlyPlaying, GenericSessionInfo } from '~/types/api/media-server/session-info'; -import { ConfigAppType } from '~/types/app'; - -import { createTRPCRouter, publicProcedure } from '../trpc'; +import { PlexClient } from '~/tools/server/sdk/plex/plexClient'; const jellyfin = new Jellyfin({ clientInfo: { @@ -104,7 +108,7 @@ const handleServer = async (app: ConfigAppType): Promise session.NowPlayingItem) @@ -176,7 +180,7 @@ const handleServer = async (app: ConfigAppType): Promise Date: Sun, 8 Oct 2023 09:43:37 +0000 Subject: [PATCH 20/62] Update weather.json (#1440) Typo fixed Just changed "An error occured" to "An error occurred" --- public/locales/en/modules/weather.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/en/modules/weather.json b/public/locales/en/modules/weather.json index a8e5cefcc..9801bb907 100644 --- a/public/locales/en/modules/weather.json +++ b/public/locales/en/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Unknown" } }, - "error": "An error occured" + "error": "An error occurred" } From a7655b63484860deef8173bb8336c68423968f03 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sun, 8 Oct 2023 11:45:30 +0200 Subject: [PATCH 21/62] =?UTF-8?q?=F0=9F=90=9B=20Database=20error=20with=20?= =?UTF-8?q?readonly=20mappings=20(#1420)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 Database error with readonly mappings * ♻️ PR feedback --- src/middleware.ts | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/middleware.ts b/src/middleware.ts index fe1b18311..a5e0b2125 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -1,3 +1,5 @@ +import Consola from 'consola'; +import fs from 'fs/promises'; import { NextRequest, NextResponse } from 'next/server'; import { env } from 'process'; @@ -34,13 +36,32 @@ export async function middleware(req: NextRequest) { return NextResponse.next(); } - // is only called from when there were no users in the database in this session (Since the app started) - cachedUserCount = await client.user.count.query(); - // Do not redirect if there are users in the database - if (cachedUserCount > 0) { + if (!(await shouldRedirectToOnboard())) { return NextResponse.next(); } return NextResponse.redirect(getUrl(req) + '/onboard'); } + +const shouldRedirectToOnboard = async (): Promise => { + const cacheAndGetUserCount = async () => { + cachedUserCount = await client.user.count.query(); + return cachedUserCount === 0; + } + + if (!env.DATABASE_URL?.startsWith('file:')) { + return await cacheAndGetUserCount(); + } + + const fileUri = env.DATABASE_URL.substring(4); + try { + await fs.access(fileUri, fs.constants.W_OK); + return await cacheAndGetUserCount(); + } catch { + Consola.warn( + `detected that the path ${fileUri} was not readable. Showing onboarding page for setup...` + ); + return true; + } +}; From 4e036315bafb7db8ddff1ee514e846f4f310bfe6 Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Sun, 8 Oct 2023 11:46:18 +0200 Subject: [PATCH 22/62] =?UTF-8?q?=F0=9F=90=9B=20Fix=20miscellaneous=20cons?= =?UTF-8?q?ole=20errors=20(#1418)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 Bookmark widget key fix * 🐛 Media request list widget key fix * 🐛 media server widget key fix * 🐛 Remove "hasNextLevel" error --- src/widgets/bookmark/BookmarkWidgetTile.tsx | 19 ++-- src/widgets/calendar/CalendarTile.tsx | 1 - .../media-requests/MediaRequestListTile.tsx | 95 ++++++++++--------- src/widgets/media-server/MediaServerTile.tsx | 3 +- 4 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/widgets/bookmark/BookmarkWidgetTile.tsx b/src/widgets/bookmark/BookmarkWidgetTile.tsx index 01b74b405..835ab4a36 100644 --- a/src/widgets/bookmark/BookmarkWidgetTile.tsx +++ b/src/widgets/bookmark/BookmarkWidgetTile.tsx @@ -254,6 +254,7 @@ function BookmarkWidgetTile({ widget }: BookmarkWidgetTileProps) { ); case 'horizontal': case 'vertical': + const flexDirection = widget.properties.layout === 'vertical' ? 'column' : 'row'; return ( @@ -276,21 +277,19 @@ function BookmarkWidgetTile({ widget }: BookmarkWidgetTileProps) { }} > <Flex - direction={ widget.properties.layout === 'vertical' ? 'column' : 'row' } + direction={flexDirection} gap="0" h="100%" w="100%" > {widget.properties.items.map((item: BookmarkItem, index) => ( - <> - {index > 0 && - <Divider - m="3px" - orientation={ widget.properties.layout !== 'vertical' ? 'vertical' : 'horizontal' } - /> - } + <div key={index} style={{ display: 'flex', flex: '1', flexDirection: flexDirection, }}> + <Divider + m="3px" + orientation={ widget.properties.layout !== 'vertical' ? 'vertical' : 'horizontal' } + color={index === 0 ? "transparent" : undefined} + /> <Card - key={index} px="md" py="1px" component="a" @@ -307,7 +306,7 @@ function BookmarkWidgetTile({ widget }: BookmarkWidgetTileProps) { > <BookmarkItemContent item={item}/> </Card> - </> + </div> ))} </Flex> </ScrollArea> diff --git a/src/widgets/calendar/CalendarTile.tsx b/src/widgets/calendar/CalendarTile.tsx index b8a95e785..81826a060 100644 --- a/src/widgets/calendar/CalendarTile.tsx +++ b/src/widgets/calendar/CalendarTile.tsx @@ -105,7 +105,6 @@ function CalendarTile({ widget }: CalendarTileProps) { style={{ position: 'relative' }} date={month} maxLevel="month" - hasNextLevel={false} styles={{ calendarHeader: { maxWidth: 'inherit', diff --git a/src/widgets/media-requests/MediaRequestListTile.tsx b/src/widgets/media-requests/MediaRequestListTile.tsx index d6e997602..c3e543150 100644 --- a/src/widgets/media-requests/MediaRequestListTile.tsx +++ b/src/widgets/media-requests/MediaRequestListTile.tsx @@ -1,5 +1,6 @@ import { - ActionIcon, Anchor, + ActionIcon, + Anchor, Badge, Card, Center, @@ -9,7 +10,8 @@ import { ScrollArea, Stack, Text, - Tooltip, useMantineTheme, + Tooltip, + useMantineTheme, } from '@mantine/core'; import { notifications } from '@mantine/notifications'; import { IconCheck, IconGitPullRequest, IconThumbDown, IconThumbUp } from '@tabler/icons-react'; @@ -142,8 +144,8 @@ function MediaRequestListTile({ widget }: MediaRequestListWidgetProps) { ) : ( <Text>{t('nonePending')}</Text> )} - {sortedData.map((item) => ( - <Card radius="md" withBorder> + {sortedData.map((item, index) => ( + <Card radius="md" withBorder key={index}> <Flex wrap="wrap" justify="space-between" gap="md"> <Flex gap="md"> <Image @@ -161,9 +163,9 @@ function MediaRequestListTile({ widget }: MediaRequestListWidgetProps) { </Group> <Anchor href={item.href} - target={widget.properties.openInNewTab ? "_blank" : "_self"} + target={widget.properties.openInNewTab ? '_blank' : '_self'} c={mantineTheme.colorScheme === 'dark' ? 'gray.3' : 'gray.8'} - > + > {item.name} </Anchor> </Stack> @@ -180,53 +182,54 @@ function MediaRequestListTile({ widget }: MediaRequestListWidgetProps) { /> <Anchor href={item.userLink} - target={widget.properties.openInNewTab ? "_blank" : "_self"} + target={widget.properties.openInNewTab ? '_blank' : '_self'} c={mantineTheme.colorScheme === 'dark' ? 'gray.3' : 'gray.8'} > {item.userName} </Anchor> </Flex> - {item.status === MediaRequestStatus.PendingApproval && sessionData?.user?.isAdmin && ( - <Group> - <Tooltip label={t('tooltips.approve')} withArrow withinPortal> - <ActionIcon - variant="light" - color="green" - onClick={async () => { - notifications.show({ - id: `approve ${item.id}`, - color: 'yellow', - title: t('tooltips.approving'), - message: undefined, - loading: true, - }); + {item.status === MediaRequestStatus.PendingApproval && + sessionData?.user?.isAdmin && ( + <Group> + <Tooltip label={t('tooltips.approve')} withArrow withinPortal> + <ActionIcon + variant="light" + color="green" + onClick={async () => { + notifications.show({ + id: `approve ${item.id}`, + color: 'yellow', + title: t('tooltips.approving'), + message: undefined, + loading: true, + }); - await decideAsync({ - request: item, - isApproved: true, - }); - }} - > - <IconThumbUp /> - </ActionIcon> - </Tooltip> - <Tooltip label={t('tooltips.decline')} withArrow withinPortal> - <ActionIcon - variant="light" - color="red" - onClick={async () => { - await decideAsync({ - request: item, - isApproved: false, - }); - }} - > - <IconThumbDown /> - </ActionIcon> - </Tooltip> - </Group> - )} + await decideAsync({ + request: item, + isApproved: true, + }); + }} + > + <IconThumbUp /> + </ActionIcon> + </Tooltip> + <Tooltip label={t('tooltips.decline')} withArrow withinPortal> + <ActionIcon + variant="light" + color="red" + onClick={async () => { + await decideAsync({ + request: item, + isApproved: false, + }); + }} + > + <IconThumbDown /> + </ActionIcon> + </Tooltip> + </Group> + )} </Stack> </Flex> diff --git a/src/widgets/media-server/MediaServerTile.tsx b/src/widgets/media-server/MediaServerTile.tsx index bbb347e36..11bf82301 100644 --- a/src/widgets/media-server/MediaServerTile.tsx +++ b/src/widgets/media-server/MediaServerTile.tsx @@ -100,7 +100,7 @@ function MediaServerTile({ widget }: MediaServerWidgetProps) { <Group pos="absolute" bottom="15" right="15" mt="auto"> <Avatar.Group> - {data?.servers.map((server) => { + {data?.servers.map((server, index) => { const app = config?.apps.find((x) => x.id === server.appId); if (!app) { @@ -109,6 +109,7 @@ function MediaServerTile({ widget }: MediaServerWidgetProps) { return ( <AppAvatar + key={index} iconUrl={app.appearance.iconUrl} // If success, the color is undefined, otherwise it's red but if isFetching is true, it's yellow color={server.success ? (isFetching ? 'yellow' : undefined) : 'red'} From 49457257025b14266c650c40f5000c37bfa9ef55 Mon Sep 17 00:00:00 2001 From: Tagaishi <Tagaishi@hotmail.ch> Date: Sun, 8 Oct 2023 11:47:31 +0200 Subject: [PATCH 23/62] =?UTF-8?q?=F0=9F=90=9B=20DNS-Hole=20error=20handlin?= =?UTF-8?q?g=20and=20fixes=20(#1419)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 Remove url requirement * ⚡️ Ignore dnshole in widget when not contactable * ✨ Error tile for dns-control instead of load loop --- .../locales/en/modules/dns-hole-controls.json | 6 +++ src/server/api/routers/dns-hole/router.ts | 51 ++++++++++++------- .../server/sdk/adGuard/adGuard.schema.ts | 2 +- src/widgets/dnshole/DnsHoleControls.tsx | 18 ++++++- 4 files changed, 57 insertions(+), 20 deletions(-) diff --git a/public/locales/en/modules/dns-hole-controls.json b/public/locales/en/modules/dns-hole-controls.json index 279931f04..2059f802a 100644 --- a/public/locales/en/modules/dns-hole-controls.json +++ b/public/locales/en/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Show 'Enable/Disable All' Buttons" } + }, + "errors": { + "general": { + "title": "Unable to find a DNS hole", + "text": "There was a problem connecting to your DNS Hole(s). Please verify your configuration/integration(s)." + } } } } \ No newline at end of file diff --git a/src/server/api/routers/dns-hole/router.ts b/src/server/api/routers/dns-hole/router.ts index 6de3f91a3..8c7f73553 100644 --- a/src/server/api/routers/dns-hole/router.ts +++ b/src/server/api/routers/dns-hole/router.ts @@ -62,22 +62,24 @@ export const dnsHoleRouter = createTRPCRouter({ ) ); - const data = result.reduce( - (prev: AdStatistics, curr) => ({ - domainsBeingBlocked: prev.domainsBeingBlocked + curr.domainsBeingBlocked, - adsBlockedToday: prev.adsBlockedToday + curr.adsBlockedToday, - dnsQueriesToday: prev.dnsQueriesToday + curr.dnsQueriesToday, - status: [...prev.status, curr.status], - adsBlockedTodayPercentage: 0, - }), - { - domainsBeingBlocked: 0, - adsBlockedToday: 0, - adsBlockedTodayPercentage: 0, - dnsQueriesToday: 0, - status: [], - } - ); + const data = result + .filter((x) => x !== null) + .reduce( + (prev: AdStatistics, curr) => ({ + domainsBeingBlocked: prev.domainsBeingBlocked + curr!.domainsBeingBlocked, + adsBlockedToday: prev.adsBlockedToday + curr!.adsBlockedToday, + dnsQueriesToday: prev.dnsQueriesToday + curr!.dnsQueriesToday, + status: [...prev.status, curr!.status], + adsBlockedTodayPercentage: 0, + }), + { + domainsBeingBlocked: 0, + adsBlockedToday: 0, + adsBlockedTodayPercentage: 0, + dnsQueriesToday: 0, + status: [], + } + ); data.adsBlockedTodayPercentage = data.adsBlockedToday / data.dnsQueriesToday; if (Number.isNaN(data.adsBlockedTodayPercentage)) { @@ -131,7 +133,13 @@ const processPiHole = async (app: ConfigAppType, enable: boolean) => { const collectPiHoleSummary = async (app: ConfigAppType) => { const piHole = new PiHoleClient(app.url, findAppProperty(app, 'apiKey')); - const summary = await piHole.getSummary(); + const summary = await piHole.getSummary().catch(() => { + return null; + }); + + if (!summary) { + return null; + } return { domainsBeingBlocked: summary.domains_being_blocked, @@ -152,7 +160,14 @@ const collectAdGuardSummary = async (app: ConfigAppType) => { findAppProperty(app, 'password') ); - const stats = await adGuard.getStats(); + const stats = await adGuard.getStats().catch(() => { + return null; + }); + + if (!stats) { + return null; + } + const status = await adGuard.getStatus(); const countFilteredDomains = await adGuard.getCountFilteringDomains(); diff --git a/src/tools/server/sdk/adGuard/adGuard.schema.ts b/src/tools/server/sdk/adGuard/adGuard.schema.ts index a2c843062..556db1ffb 100644 --- a/src/tools/server/sdk/adGuard/adGuard.schema.ts +++ b/src/tools/server/sdk/adGuard/adGuard.schema.ts @@ -32,7 +32,7 @@ export const adGuardApiStatusResponseSchema = z.object({ export const adGuardApiFilteringStatusSchema = z.object({ filters: z.array( z.object({ - url: z.string().url(), + url: z.string(), name: z.string(), last_updated: z.string().optional(), id: z.number().nonnegative(), diff --git a/src/widgets/dnshole/DnsHoleControls.tsx b/src/widgets/dnshole/DnsHoleControls.tsx index 664088088..d8285001b 100644 --- a/src/widgets/dnshole/DnsHoleControls.tsx +++ b/src/widgets/dnshole/DnsHoleControls.tsx @@ -3,11 +3,13 @@ import { Box, Button, Card, + Center, Group, Image, SimpleGrid, Stack, Text, + Title, UnstyledButton, } from '@mantine/core'; import { useElementSize } from '@mantine/hooks'; @@ -71,7 +73,7 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { const { isInitialLoading, data, isFetching: fetchingDnsSummary } = useDnsHoleSummeryQuery(); const { mutateAsync, isLoading: changingStatus } = useDnsHoleControlMutation(); const { width, ref } = useElementSize(); - const { t } = useTranslation('common'); + const { t } = useTranslation(['common', 'modules/dns-hole-controls']); const { name: configName, config } = useConfigContext(); @@ -81,6 +83,20 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { return <WidgetLoading />; } + if (data.status.length === 0) { + return( + <Center h="100%"> + <Stack align="center"> + <IconDeviceGamepad size={40} strokeWidth={1}/> + <Title align="center" order={6}>{t('modules/dns-hole-controls:descriptor.errors.general.title')} + {t('modules/dns-hole-controls:descriptor.errors.general.text')} + + + ) + } + + console.log(data); + type getDnsStatusAcc = { enabled: string[]; disabled: string[]; From 1d50e2ce9a0aac4a8444a0c6d0cc10fee2b700f6 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sun, 8 Oct 2023 12:10:48 +0200 Subject: [PATCH 24/62] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Migrate=20from=20pri?= =?UTF-8?q?sma=20to=20drizzle=20(#1434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ♻️ Migrate from prisma to drizzle * 🐛 Build issue with CalendarTile * 🚧 Temporary solution for docker container * 🐛 Drizzle not using DATABASE_URL * ♻️ Address pull request feedback * 🐛 Remove console log of env variables * 🐛 Some unit tests not working * 🐋 Revert docker tool changes * 🐛 Issue with board slug page for logged in users --------- Co-authored-by: Thomas Camlong --- .env.example | 3 +- .gitignore | 3 +- Dockerfile | 17 +- database/.gitkeep | 0 drizzle.config.ts | 11 + drizzle/0000_supreme_the_captain.sql | 69 + drizzle/meta/0000_snapshot.json | 468 +++ drizzle/meta/_journal.json | 13 + next-env.d.ts | 1 - package.json | 32 +- prisma/schema.prisma | 93 - scripts/run.sh | 16 +- .../Password/password-requirement.tsx | 44 +- src/env.js | 11 +- src/migrate.ts | 18 + src/pages/auth/invite/[inviteId].tsx | 18 +- src/pages/board/[slug].tsx | 2 +- src/pages/board/index.tsx | 14 +- src/pages/manage/tools/docker.tsx | 2 - src/pages/manage/users/index.tsx | 2 +- src/pages/onboard.tsx | 18 +- src/server/api/routers/board.ts | 9 +- src/server/api/routers/invite.ts | 54 +- src/server/api/routers/user.ts | 239 +- src/server/api/trpc.ts | 2 - src/server/auth.ts | 41 +- src/server/db.ts | 14 - src/server/db/index.ts | 9 + src/server/db/queries/user.ts | 11 + src/server/db/queries/userSettings.ts | 18 + src/server/db/schema.ts | 133 + src/widgets/calendar/CalendarTile.tsx | 23 +- tsconfig.json | 10 +- yarn.lock | 3363 +++++++++++------ 34 files changed, 3274 insertions(+), 1507 deletions(-) create mode 100644 database/.gitkeep create mode 100644 drizzle.config.ts create mode 100644 drizzle/0000_supreme_the_captain.sql create mode 100644 drizzle/meta/0000_snapshot.json create mode 100644 drizzle/meta/_journal.json delete mode 100644 prisma/schema.prisma create mode 100644 src/migrate.ts delete mode 100644 src/server/db.ts create mode 100644 src/server/db/index.ts create mode 100644 src/server/db/queries/user.ts create mode 100644 src/server/db/queries/userSettings.ts create mode 100644 src/server/db/schema.ts diff --git a/.env.example b/.env.example index 444562c2d..8cdf80f91 100644 --- a/.env.example +++ b/.env.example @@ -9,8 +9,7 @@ # When adding additional environment variables, the schema in "/src/env.js" # should be updated accordingly. -# Prisma -# https://www.prisma.io/docs/reference/database-reference/connection-urls#env +# Database DATABASE_URL="file:../database/db.sqlite" # Next Auth diff --git a/.gitignore b/.gitignore index d2f58d56e..fc8e46928 100644 --- a/.gitignore +++ b/.gitignore @@ -58,8 +58,9 @@ public/locales/* !public/locales/en #database -prisma/db.sqlite +sqlite.db database/*.sqlite +WILL_BE_OVERWRITTEN.sqlite # IDE .idea/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index fe87a02b9..7e3f52553 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,24 +10,31 @@ ENV NODE_OPTIONS '--no-experimental-fetch' COPY next.config.js ./ COPY public ./public -COPY package.json ./package.json -COPY yarn.lock ./yarn.lock +COPY package.json ./temp_package.json +COPY yarn.lock ./temp_yarn.lock # Automatically leverage output traces to reduce image size # https://nextjs.org/docs/advanced-features/output-file-tracing COPY .next/standalone ./ COPY .next/static ./.next/static -COPY prisma/schema.prisma prisma/schema.prisma COPY ./scripts/run.sh ./scripts/run.sh +COPY ./drizzle ./drizzle +RUN mkdir database +COPY ./src/migrate.ts ./src/migrate.ts # Install dependencies RUN apt-get update -y && apt-get install -y openssl -RUN yarn global add prisma + +# Required for migration +RUN cp -r node_modules node_modules_cache +RUN rm -rf node_modules +RUN rm package.json +RUN yarn add typescript ts-node dotenv drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3 # Expose the default application port EXPOSE $PORT ENV PORT=${PORT} -ENV DATABASE_URL "file:../database/db.sqlite" +ENV DATABASE_URL "file:./database/db.sqlite" ENV NEXTAUTH_URL "http://localhost:3000" ENV PORT 7575 ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED diff --git a/database/.gitkeep b/database/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 000000000..e6aa45846 --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,11 @@ +import 'dotenv'; +import { type Config } from 'drizzle-kit'; + +export default { + schema: './src/server/db/schema.ts', + driver: 'better-sqlite', + out: './drizzle', + dbCredentials: { + url: process.env.DATABASE_URL!, + }, +} satisfies Config; diff --git a/drizzle/0000_supreme_the_captain.sql b/drizzle/0000_supreme_the_captain.sql new file mode 100644 index 000000000..d814bc5ed --- /dev/null +++ b/drizzle/0000_supreme_the_captain.sql @@ -0,0 +1,69 @@ +CREATE TABLE `account` ( + `userId` text NOT NULL, + `type` text NOT NULL, + `provider` text NOT NULL, + `providerAccountId` text NOT NULL, + `refresh_token` text, + `access_token` text, + `expires_at` integer, + `token_type` text, + `scope` text, + `id_token` text, + `session_state` text, + PRIMARY KEY(`provider`, `providerAccountId`), + FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `invite` ( + `id` text PRIMARY KEY NOT NULL, + `token` text NOT NULL, + `expires` integer NOT NULL, + `created_by_id` text NOT NULL, + FOREIGN KEY (`created_by_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `session` ( + `sessionToken` text PRIMARY KEY NOT NULL, + `userId` text NOT NULL, + `expires` integer NOT NULL, + FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `user_setting` ( + `id` text PRIMARY KEY NOT NULL, + `user_id` text NOT NULL, + `color_scheme` text DEFAULT 'environment' NOT NULL, + `language` text DEFAULT 'en' NOT NULL, + `default_board` text DEFAULT 'default' NOT NULL, + `first_day_of_week` text DEFAULT 'monday' NOT NULL, + `search_template` text DEFAULT 'https://google.com/search?q=%s' NOT NULL, + `open_search_in_new_tab` integer DEFAULT true NOT NULL, + `disable_ping_pulse` integer DEFAULT false NOT NULL, + `replace_ping_with_icons` integer DEFAULT false NOT NULL, + `use_debug_language` integer DEFAULT false NOT NULL, + `auto_focus_search` integer DEFAULT false NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `user` ( + `id` text PRIMARY KEY NOT NULL, + `name` text, + `email` text, + `emailVerified` integer, + `image` text, + `password` text, + `salt` text, + `is_admin` integer DEFAULT false NOT NULL, + `is_owner` integer DEFAULT false NOT NULL +); +--> statement-breakpoint +CREATE TABLE `verificationToken` ( + `identifier` text NOT NULL, + `token` text NOT NULL, + `expires` integer NOT NULL, + PRIMARY KEY(`identifier`, `token`) +); +--> statement-breakpoint +CREATE INDEX `userId_idx` ON `account` (`userId`);--> statement-breakpoint +CREATE UNIQUE INDEX `invite_token_unique` ON `invite` (`token`);--> statement-breakpoint +CREATE INDEX `user_id_idx` ON `session` (`userId`); \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json new file mode 100644 index 000000000..87169d793 --- /dev/null +++ b/drizzle/meta/0000_snapshot.json @@ -0,0 +1,468 @@ +{ + "version": "5", + "dialect": "sqlite", + "id": "32c1bc91-e69f-4e1d-b53c-9c43f2e6c9d3", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "account": { + "name": "account", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "providerAccountId": { + "name": "providerAccountId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": [ + "userId" + ], + "isUnique": false + } + }, + "foreignKeys": { + "account_userId_user_id_fk": { + "name": "account_userId_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_providerAccountId_pk": { + "columns": [ + "provider", + "providerAccountId" + ] + } + }, + "uniqueConstraints": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": { + "invite_created_by_id_user_id_fk": { + "name": "invite_created_by_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "session": { + "name": "session", + "columns": { + "sessionToken": { + "name": "sessionToken", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": [ + "userId" + ], + "isUnique": false + } + }, + "foreignKeys": { + "session_userId_user_id_fk": { + "name": "session_userId_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "user_setting": { + "name": "user_setting", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'environment'" + }, + "language": { + "name": "language", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'en'" + }, + "default_board": { + "name": "default_board", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'monday'" + }, + "search_template": { + "name": "search_template", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'https://google.com/search?q=%s'" + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "disable_ping_pulse": { + "name": "disable_ping_pulse", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "replace_ping_with_icons": { + "name": "replace_ping_with_icons", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "use_debug_language": { + "name": "use_debug_language", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "auto_focus_search": { + "name": "auto_focus_search", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_setting_user_id_user_id_fk": { + "name": "user_setting_user_id_user_id_fk", + "tableFrom": "user_setting", + "tableTo": "user", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "emailVerified": { + "name": "emailVerified", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "salt": { + "name": "salt", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_admin": { + "name": "is_admin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_owner": { + "name": "is_owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "columns": [ + "identifier", + "token" + ] + } + }, + "uniqueConstraints": {} + } + }, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json new file mode 100644 index 000000000..6af8ab350 --- /dev/null +++ b/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "5", + "dialect": "sqlite", + "entries": [ + { + "idx": 0, + "version": "5", + "when": 1695874816934, + "tag": "0000_supreme_the_captain", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/next-env.d.ts b/next-env.d.ts index fd36f9494..4f11a03dc 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/package.json b/package.json index 02ba07e21..fd080071e 100644 --- a/package.json +++ b/package.json @@ -18,15 +18,16 @@ "lint": "next lint", "prettier:check": "prettier --check \"**/*.{ts,tsx}\"", "prettier:write": "prettier --write \"**/*.{ts,tsx}\"", - "test": "vitest", - "test:ui": "vitest --ui", - "test:run": "vitest run", - "test:coverage": "vitest run --coverage", + "test": "SKIP_ENV_VALIDATION=1 vitest", + "test:ui": "SKIP_ENV_VALIDATION=1 vitest --ui", + "test:run": "SKIP_ENV_VALIDATION=1 vitest run", + "test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage", "docker:build": "turbo build && docker build . -t homarr:local-dev", "docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev", - "postinstall": "prisma generate" + "db:migrate": "ts-node src/migrate.ts" }, "dependencies": { + "@auth/drizzle-adapter": "^0.3.2", "@ctrl/deluge": "^4.1.0", "@ctrl/qbittorrent": "^6.0.0", "@ctrl/shared-torrent": "^4.1.1", @@ -44,10 +45,8 @@ "@mantine/notifications": "^6.0.0", "@mantine/prism": "^6.0.19", "@mantine/tiptap": "^6.0.17", - "@next-auth/prisma-adapter": "^1.0.7", "@nivo/core": "^0.83.0", "@nivo/line": "^0.83.0", - "@prisma/client": "^5.0.0", "@react-native-async-storage/async-storage": "^1.18.1", "@t3-oss/env-nextjs": "^0.6.0", "@tabler/icons-react": "^2.20.0", @@ -60,20 +59,24 @@ "@tiptap/pm": "^2.0.4", "@tiptap/react": "^2.0.4", "@tiptap/starter-kit": "^2.0.4", - "@trpc/client": "^10.29.1", - "@trpc/next": "^10.29.1", - "@trpc/react-query": "^10.29.1", - "@trpc/server": "^10.29.1", + "@trpc/client": "^10.37.1", + "@trpc/next": "^10.37.1", + "@trpc/react-query": "^10.37.1", + "@trpc/server": "^10.37.1", "@types/bcryptjs": "^2.4.2", "@vitejs/plugin-react": "^4.0.0", "axios": "^1.0.0", "bcryptjs": "^2.4.3", + "better-sqlite3": "^8.6.0", "browser-geo-tz": "^0.0.4", "consola": "^3.0.0", "cookies": "^0.8.0", "cookies-next": "^2.1.1", "dayjs": "^1.11.7", "dockerode": "^3.3.2", + "dotenv": "^16.3.1", + "drizzle-kit": "^0.19.13", + "drizzle-orm": "^0.28.6", "fily-publish-gridstack": "^0.0.13", "flag-icons": "^6.9.2", "framer-motion": "^10.0.0", @@ -86,10 +89,9 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.43", "next": "13.4.12", - "next-auth": "^4.22.3", + "next-auth": "^4.23.0", "next-i18next": "^14.0.0", "nzbget-api": "^0.0.3", - "prisma": "^5.0.0", "prismjs": "^1.29.0", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -110,6 +112,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@types/better-sqlite3": "^7.6.5", "@types/cookies": "^0.7.7", "@types/dockerode": "^3.3.9", "@types/node": "18.17.8", @@ -135,6 +138,7 @@ "prettier": "^3.0.0", "sass": "^1.56.1", "ts-node": "latest", + "ts-node-esm": "^0.0.6", "turbo": "^1.10.12", "typescript": "^5.1.0", "video.js": "^8.0.3", @@ -246,4 +250,4 @@ ] } } -} +} \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma deleted file mode 100644 index b94360604..000000000 --- a/prisma/schema.prisma +++ /dev/null @@ -1,93 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -generator client { - provider = "prisma-client-js" - binaryTargets = ["native", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x", "debian-openssl-3.0.x"] -} - -datasource db { - provider = "sqlite" - // NOTE: When using mysql or sqlserver, uncomment the @db.Text annotations in model Account below - // Further reading: - // https://next-auth.js.org/adapters/prisma#create-the-prisma-schema - // https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#string - url = env("DATABASE_URL") -} - -// Necessary for Next auth -model Account { - id String @id @default(cuid()) - userId String - type String - provider String - providerAccountId String - refresh_token String? // @db.Text - access_token String? // @db.Text - expires_at Int? - token_type String? - scope String? - id_token String? // @db.Text - session_state String? - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - - @@unique([provider, providerAccountId]) -} - -model Session { - id String @id @default(cuid()) - sessionToken String @unique - userId String - expires DateTime - user User @relation(fields: [userId], references: [id], onDelete: Cascade) -} - -model User { - id String @id @default(cuid()) - name String? - email String? @unique - emailVerified DateTime? - image String? - password String? - salt String? - isAdmin Boolean @default(false) - isOwner Boolean @default(false) - accounts Account[] - sessions Session[] - settings UserSettings? - createdInvites Invite[] -} - -model VerificationToken { - identifier String - token String @unique - expires DateTime - - @@unique([identifier, token]) -} - -model Invite { - id String @id @default(cuid()) - token String @unique - expires DateTime - createdById String - createdBy User @relation(fields: [createdById], references: [id], onDelete: Cascade) -} - -model UserSettings { - id String @id @default(cuid()) - userId String - colorScheme String @default("environment") // environment, light, dark - language String @default("en") - defaultBoard String @default("default") - firstDayOfWeek String @default("monday") // monday, saturnday, sunday - searchTemplate String @default("https://google.com/search?q=%s") - openSearchInNewTab Boolean @default(true) - disablePingPulse Boolean @default(false) - replacePingWithIcons Boolean @default(false) - useDebugLanguage Boolean @default(false) - autoFocusSearch Boolean @default(false) - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - - @@unique([userId]) -} diff --git a/scripts/run.sh b/scripts/run.sh index 720a92499..1f1278742 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -3,8 +3,20 @@ echo "Exporting hostname..." export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:7575" -echo "Pushing database changes..." -prisma db push --skip-generate +echo "Migrating database..." +yarn ts-node src/migrate.ts & PID=$! +# Wait for migration to finish +wait $PID + +echo "Reverting to production node_modules..." +# Copy specific sqlite3 binary to node_modules +cp /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/node_modules_cache/better-sqlite3/build/Release/better_sqlite3.node + +# Remove node_modules and copy cached node_modules +rm -r /app/node_modules +cp -r /app/node_modules_cache /app/node_modules +cp ./temp_package.json package.json +cp ./temp_yarn.lock yarn.lock echo "Starting production server..." node /app/server.js \ No newline at end of file diff --git a/src/components/Password/password-requirement.tsx b/src/components/Password/password-requirement.tsx index 720fdad55..3e0286810 100644 --- a/src/components/Password/password-requirement.tsx +++ b/src/components/Password/password-requirement.tsx @@ -1,24 +1,24 @@ -import { Box, Text } from "@mantine/core"; -import { IconCheck, IconX } from "@tabler/icons-react"; -import { useTranslation } from "react-i18next"; -import { minPasswordLength } from "~/validations/user"; +import { Box, Text } from '@mantine/core'; +import { IconCheck, IconX } from '@tabler/icons-react'; +import { useTranslation } from 'next-i18next'; +import { minPasswordLength } from '~/validations/user'; export const PasswordRequirement = ({ meets, label }: { meets: boolean; label: string }) => { - const { t } = useTranslation('password-requirements'); - - return ( - - {meets ? : }{' '} - - {t(`${label}`, { - count: minPasswordLength, - })} - - - ); - }; \ No newline at end of file + const { t } = useTranslation('password-requirements'); + + return ( + + {meets ? : } + + {t(`${label}`, { + count: minPasswordLength, + })} + + + ); +}; diff --git a/src/env.js b/src/env.js index 590fd8200..43460ded1 100644 --- a/src/env.js +++ b/src/env.js @@ -1,7 +1,11 @@ const { z } = require('zod'); const { createEnv } = require('@t3-oss/env-nextjs'); -const portSchema = z.string().regex(/\d*/).transform((value) => value === undefined ? undefined : Number(value)).optional(); +const portSchema = z + .string() + .regex(/\d*/) + .transform((value) => (value === undefined ? undefined : Number(value))) + .optional(); const envSchema = z.enum(['development', 'test', 'production']); const env = createEnv({ @@ -22,7 +26,7 @@ const env = createEnv({ ), DOCKER_HOST: z.string().optional(), DOCKER_PORT: portSchema, - HOSTNAME: z.string().optional() + HOSTNAME: z.string().optional(), }, /** @@ -57,8 +61,9 @@ const env = createEnv({ NEXT_PUBLIC_DEFAULT_COLOR_SCHEME: process.env.DEFAULT_COLOR_SCHEME, NEXT_PUBLIC_PORT: process.env.PORT, NEXT_PUBLIC_NODE_ENV: process.env.NODE_ENV, - HOSTNAME: process.env.HOSTNAME + HOSTNAME: process.env.HOSTNAME, }, + skipValidation: !!process.env.SKIP_ENV_VALIDATION, }); module.exports = { diff --git a/src/migrate.ts b/src/migrate.ts new file mode 100644 index 000000000..5c4abeb88 --- /dev/null +++ b/src/migrate.ts @@ -0,0 +1,18 @@ +// This file is used to migrate the database to the current version +// It is run when the docker container starts +import Database from 'better-sqlite3'; +import dotenv from 'dotenv'; +import { drizzle } from 'drizzle-orm/better-sqlite3'; +import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; + +dotenv.config({ path: __dirname + '/../.env' }); + +const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', '')); + +const db = drizzle(sqlite); + +const migrateDatabase = async () => { + await migrate(db, { migrationsFolder: './drizzle' }); +}; + +migrateDatabase(); diff --git a/src/pages/auth/invite/[inviteId].tsx b/src/pages/auth/invite/[inviteId].tsx index 0302c26f4..d615aa2a8 100644 --- a/src/pages/auth/invite/[inviteId].tsx +++ b/src/pages/auth/invite/[inviteId].tsx @@ -12,6 +12,7 @@ import { import { useForm } from '@mantine/form'; import { showNotification, updateNotification } from '@mantine/notifications'; import { IconCheck, IconX } from '@tabler/icons-react'; +import { and, eq } from 'drizzle-orm'; import { GetServerSideProps } from 'next'; import { signIn } from 'next-auth/react'; import { useTranslation } from 'next-i18next'; @@ -20,10 +21,11 @@ import { useRouter } from 'next/router'; import { useState } from 'react'; import { z } from 'zod'; import { PasswordRequirements } from '~/components/Password/password-requirements'; -import { FloatingBackground } from '~/components/layout/Background/FloatingBackground'; import { ThemeSchemeToggle } from '~/components/ThemeSchemeToggle/ThemeSchemeToggle'; +import { FloatingBackground } from '~/components/layout/Background/FloatingBackground'; import { getServerAuthSession } from '~/server/auth'; -import { prisma } from '~/server/db'; +import { db } from '~/server/db'; +import { invites } from '~/server/db/schema'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; import { api } from '~/utils/api'; import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; @@ -194,14 +196,14 @@ export const getServerSideProps: GetServerSideProps = async ({ }; } - const token = await prisma.invite.findUnique({ - where: { - id: routeParams.data.inviteId, - token: queryParams.data.token, - }, + const dbInvite = await db.query.invites.findFirst({ + where: and( + eq(invites.id, routeParams.data.inviteId), + eq(invites.token, queryParams.data.token) + ), }); - if (!token || token.expires < new Date()) { + if (!dbInvite || dbInvite.expires < new Date()) { return { notFound: true, }; diff --git a/src/pages/board/[slug].tsx b/src/pages/board/[slug].tsx index 567abd141..cd2056a6a 100644 --- a/src/pages/board/[slug].tsx +++ b/src/pages/board/[slug].tsx @@ -64,7 +64,7 @@ export const getServerSideProps: GetServerSideProps = a const result = checkForSessionOrAskForLogin( ctx, session, - () => config.settings.access.allowGuests || !session?.user + () => config.settings.access.allowGuests || !!session?.user ); if (result) { return result; diff --git a/src/pages/board/index.tsx b/src/pages/board/index.tsx index 3736c31dc..20f25295a 100644 --- a/src/pages/board/index.tsx +++ b/src/pages/board/index.tsx @@ -1,3 +1,4 @@ +import { eq } from 'drizzle-orm'; import { GetServerSideProps, InferGetServerSidePropsType } from 'next'; import { SSRConfig } from 'next-i18next'; import { Dashboard } from '~/components/Dashboard/Dashboard'; @@ -5,7 +6,9 @@ import { BoardLayout } from '~/components/layout/Templates/BoardLayout'; import { useInitConfig } from '~/config/init'; import { env } from '~/env'; import { getServerAuthSession } from '~/server/auth'; -import { prisma } from '~/server/db'; +import { db } from '~/server/db'; +import { getDefaultBoardAsync } from '~/server/db/queries/userSettings'; +import { userSettings } from '~/server/db/schema'; import { getFrontendConfig } from '~/tools/config/getFrontendConfig'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; import { boardNamespaces } from '~/tools/server/translation-namespaces'; @@ -32,11 +35,7 @@ type BoardGetServerSideProps = { export const getServerSideProps: GetServerSideProps = async (ctx) => { const session = await getServerAuthSession(ctx); - const currentUserSettings = await prisma.userSettings.findFirst({ - where: { - userId: session?.user?.id, - }, - }); + const boardName = await getDefaultBoardAsync(session?.user?.id, 'default'); const translations = await getServerSideTranslations( boardNamespaces, @@ -44,7 +43,6 @@ export const getServerSideProps: GetServerSideProps = a ctx.req, ctx.res ); - const boardName = currentUserSettings?.defaultBoard ?? 'default'; const config = await getFrontendConfig(boardName); if (!config.settings.access.allowGuests && !session?.user) { @@ -54,7 +52,7 @@ export const getServerSideProps: GetServerSideProps = a primaryColor: config.settings.customization.colors.primary, secondaryColor: config.settings.customization.colors.secondary, primaryShade: config.settings.customization.colors.shade, - } + }, }; } diff --git a/src/pages/manage/tools/docker.tsx b/src/pages/manage/tools/docker.tsx index f8b0be2cb..90793a973 100644 --- a/src/pages/manage/tools/docker.tsx +++ b/src/pages/manage/tools/docker.tsx @@ -10,7 +10,6 @@ import ContainerTable from '~/components/Manage/Tools/Docker/ContainerTable'; import { ManageLayout } from '~/components/layout/Templates/ManageLayout'; import { dockerRouter } from '~/server/api/routers/docker/router'; import { getServerAuthSession } from '~/server/auth'; -import { prisma } from '~/server/db'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; import { boardNamespaces } from '~/tools/server/translation-namespaces'; import { api } from '~/utils/api'; @@ -66,7 +65,6 @@ export const getServerSideProps: GetServerSideProps = async ({ locale, req, res const caller = dockerRouter.createCaller({ session: session, cookies: req.cookies, - prisma: prisma, }); const translations = await getServerSideTranslations( diff --git a/src/pages/manage/users/index.tsx b/src/pages/manage/users/index.tsx index fd5940b94..fcf32d686 100644 --- a/src/pages/manage/users/index.tsx +++ b/src/pages/manage/users/index.tsx @@ -148,7 +148,7 @@ const ManageUsersPage = () => { ))} - {debouncedSearch && debouncedSearch.length > 0 && ( + {debouncedSearch && debouncedSearch.length > 0 && data.countPages === 0 && ( diff --git a/src/pages/onboard.tsx b/src/pages/onboard.tsx index 00ff0161f..01c248131 100644 --- a/src/pages/onboard.tsx +++ b/src/pages/onboard.tsx @@ -7,7 +7,8 @@ import Head from 'next/head'; import { OnboardingSteps } from '~/components/Onboarding/onboarding-steps'; import { ThemeSchemeToggle } from '~/components/ThemeSchemeToggle/ThemeSchemeToggle'; import { FloatingBackground } from '~/components/layout/Background/FloatingBackground'; -import { prisma } from '~/server/db'; +import { db } from '~/server/db'; +import { getTotalUserCountAsync } from '~/server/db/queries/user'; import { getConfig } from '~/tools/config/getConfig'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; @@ -32,11 +33,7 @@ export default function OnboardPage({ -
+
Homarr Logo
@@ -72,7 +69,7 @@ export default function OnboardPage({ } export const getServerSideProps: GetServerSideProps = async (ctx) => { - const userCount = await prisma.user.count(); + const userCount = await getTotalUserCountAsync(); if (userCount >= 1) { return { notFound: true, @@ -83,7 +80,12 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { const configs = files.map((file) => getConfig(file)); const configSchemaVersions = configs.map((config) => config.schemaVersion); - const translations = await getServerSideTranslations(['password-requirements'], ctx.locale, ctx.req, ctx.res); + const translations = await getServerSideTranslations( + ['password-requirements'], + ctx.locale, + ctx.req, + ctx.res + ); return { props: { diff --git a/src/server/api/routers/board.ts b/src/server/api/routers/board.ts index ac16e9b09..ce244302d 100644 --- a/src/server/api/routers/board.ts +++ b/src/server/api/routers/board.ts @@ -1,6 +1,7 @@ import { TRPCError } from '@trpc/server'; import fs from 'fs'; import { z } from 'zod'; +import { getDefaultBoardAsync } from '~/server/db/queries/userSettings'; import { configExists } from '~/tools/config/configExists'; import { getConfig } from '~/tools/config/getConfig'; import { getFrontendConfig } from '~/tools/config/getFrontendConfig'; @@ -13,11 +14,7 @@ export const boardRouter = createTRPCRouter({ all: protectedProcedure.query(async ({ ctx }) => { const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json')); - const userSettings = await ctx.prisma.userSettings.findUniqueOrThrow({ - where: { - userId: ctx.session?.user.id, - }, - }); + const defaultBoard = await getDefaultBoardAsync(ctx.session.user.id, 'default'); return await Promise.all( files.map(async (file) => { @@ -31,7 +28,7 @@ export const boardRouter = createTRPCRouter({ countApps: countApps, countWidgets: config.widgets.length, countCategories: config.categories.length, - isDefaultForUser: name === userSettings.defaultBoard, + isDefaultForUser: name === defaultBoard, }; }) ); diff --git a/src/server/api/routers/invite.ts b/src/server/api/routers/invite.ts index 2d0222c80..1a1119d9e 100644 --- a/src/server/api/routers/invite.ts +++ b/src/server/api/routers/invite.ts @@ -1,6 +1,9 @@ -import { randomBytes } from 'crypto'; +import { randomBytes, randomUUID } from 'crypto'; import dayjs from 'dayjs'; +import { eq, sql } from 'drizzle-orm'; import { z } from 'zod'; +import { db } from '~/server/db'; +import { invites } from '~/server/db/schema'; import { adminProcedure, createTRPCRouter, publicProcedure } from '../trpc'; @@ -14,22 +17,25 @@ export const inviteRouter = createTRPCRouter({ ) .query(async ({ ctx, input }) => { const limit = input.limit ?? 50; - const invites = await ctx.prisma.invite.findMany({ - take: limit, - skip: limit * input.page, - include: { + const dbInvites = await db.query.invites.findMany({ + limit: limit, + offset: limit * input.page, + with: { createdBy: { - select: { + columns: { name: true, }, }, }, }); - const inviteCount = await ctx.prisma.invite.count(); + const inviteCount = await db + .select({ count: sql`count(*)` }) + .from(invites) + .then((rows) => rows[0].count); return { - invites: invites.map((token) => ({ + invites: dbInvites.map((token) => ({ id: token.id, expires: token.expires, creator: token.createdBy.name, @@ -47,27 +53,21 @@ export const inviteRouter = createTRPCRouter({ }) ) .mutation(async ({ ctx, input }) => { - const token = await ctx.prisma.invite.create({ - data: { - expires: input.expiration, - createdById: ctx.session.user.id, - token: randomBytes(20).toString('hex'), - }, - }); + const inviteToInsert = { + id: randomUUID(), + expires: input.expiration, + createdById: ctx.session.user.id, + token: randomBytes(20).toString('hex'), + }; + await db.insert(invites).values(inviteToInsert); return { - id: token.id, - token: token.token, - expires: token.expires, + id: inviteToInsert.id, + token: inviteToInsert.token, + expires: inviteToInsert.expires, }; }), - delete: adminProcedure - .input(z.object({ tokenId: z.string() })) - .mutation(async ({ ctx, input }) => { - await ctx.prisma.invite.delete({ - where: { - id: input.tokenId, - }, - }); - }), + delete: adminProcedure.input(z.object({ tokenId: z.string() })).mutation(async ({ input }) => { + await db.delete(invites).where(eq(invites.id, input.tokenId)); + }), }); diff --git a/src/server/api/routers/user.ts b/src/server/api/routers/user.ts index 1287d1d95..cfaaf9ef7 100644 --- a/src/server/api/routers/user.ts +++ b/src/server/api/routers/user.ts @@ -1,7 +1,11 @@ -import { UserSettings } from '@prisma/client'; import { TRPCError } from '@trpc/server'; import bcrypt from 'bcryptjs'; +import { randomUUID } from 'crypto'; +import { eq, like, sql } from 'drizzle-orm'; import { z } from 'zod'; +import { db } from '~/server/db'; +import { getTotalUserCountAsync } from '~/server/db/queries/user'; +import { UserSettings, invites, userSettings, users } from '~/server/db/schema'; import { hashPassword } from '~/utils/security'; import { colorSchemeParser, @@ -11,24 +15,18 @@ import { } from '~/validations/user'; import { COOKIE_COLOR_SCHEME_KEY, COOKIE_LOCALE_KEY } from '../../../../data/constants'; -import { - TRPCContext, - adminProcedure, - createTRPCRouter, - protectedProcedure, - publicProcedure, -} from '../trpc'; +import { adminProcedure, createTRPCRouter, protectedProcedure, publicProcedure } from '../trpc'; export const userRouter = createTRPCRouter({ createOwnerAccount: publicProcedure.input(signUpFormSchema).mutation(async ({ ctx, input }) => { - const userCount = await ctx.prisma.user.count(); + const userCount = await getTotalUserCountAsync(); if (userCount > 0) { throw new TRPCError({ code: 'FORBIDDEN', }); } - await createUserIfNotPresent(ctx, input, { + await createUserIfNotPresent(input, { defaultSettings: { colorScheme: colorSchemeParser.parse(ctx.cookies[COOKIE_COLOR_SCHEME_KEY]), language: ctx.cookies[COOKIE_LOCALE_KEY] ?? 'en', @@ -36,9 +34,8 @@ export const userRouter = createTRPCRouter({ isOwner: true, }); }), - count: publicProcedure.query(async ({ ctx }) => { - const count = await ctx.prisma.user.count(); - return count; + count: publicProcedure.query(async () => { + return await getTotalUserCountAsync(); }), createFromInvite: publicProcedure .input( @@ -49,51 +46,29 @@ export const userRouter = createTRPCRouter({ ) ) .mutation(async ({ ctx, input }) => { - const token = await ctx.prisma.invite.findUnique({ - where: { - token: input.inviteToken, - }, + const invite = await db.query.invites.findFirst({ + where: eq(invites.token, input.inviteToken), }); - if (!token || token.expires < new Date()) { + if (!invite || invite.expires < new Date()) { throw new TRPCError({ code: 'FORBIDDEN', message: 'Invalid invite token', }); } - await createUserIfNotPresent(ctx, input, { + const userId = await createUserIfNotPresent(input, { defaultSettings: { colorScheme: colorSchemeParser.parse(ctx.cookies[COOKIE_COLOR_SCHEME_KEY]), language: ctx.cookies[COOKIE_LOCALE_KEY] ?? 'en', }, }); - const salt = bcrypt.genSaltSync(10); - const hashedPassword = hashPassword(input.password, salt); - - const user = await ctx.prisma.user.create({ - data: { - name: input.username, - password: hashedPassword, - salt: salt, - settings: { - create: { - colorScheme: colorSchemeParser.parse(ctx.cookies[COOKIE_COLOR_SCHEME_KEY]), - language: ctx.cookies[COOKIE_LOCALE_KEY] ?? 'en', - }, - }, - }, - }); - await ctx.prisma.invite.delete({ - where: { - id: token.id, - }, - }); + await db.delete(invites).where(eq(invites.id, invite.id)); return { - id: user.id, - name: user.name, + id: userId, + name: input.username, }; }), changeColorScheme: protectedProcedure @@ -103,18 +78,12 @@ export const userRouter = createTRPCRouter({ }) ) .mutation(async ({ ctx, input }) => { - await ctx.prisma.user.update({ - where: { - id: ctx.session?.user?.id, - }, - data: { - settings: { - update: { - colorScheme: input.colorScheme, - }, - }, - }, - }); + await db + .update(userSettings) + .set({ + colorScheme: input.colorScheme, + }) + .where(eq(userSettings.userId, ctx.session?.user?.id)); }), changeRole: adminProcedure .input(z.object({ id: z.string(), type: z.enum(['promote', 'demote']) })) @@ -126,10 +95,8 @@ export const userRouter = createTRPCRouter({ }); } - const user = await ctx.prisma.user.findUnique({ - where: { - id: input.id, - }, + const user = await db.query.users.findFirst({ + where: eq(users.id, input.id), }); if (!user) { @@ -146,14 +113,10 @@ export const userRouter = createTRPCRouter({ }); } - await ctx.prisma.user.update({ - where: { - id: input.id, - }, - data: { - isAdmin: input.type === 'promote', - }, - }); + await db + .update(users) + .set({ isAdmin: input.type === 'promote' }) + .where(eq(users.id, input.id)); }), changeLanguage: protectedProcedure .input( @@ -162,25 +125,15 @@ export const userRouter = createTRPCRouter({ }) ) .mutation(async ({ ctx, input }) => { - await ctx.prisma.user.update({ - where: { - id: ctx.session?.user?.id, - }, - data: { - settings: { - update: { - language: input.language, - }, - }, - }, - }); + await db + .update(userSettings) + .set({ language: input.language }) + .where(eq(userSettings.userId, ctx.session?.user?.id)); }), - withSettings: protectedProcedure.query(async ({ ctx, input }) => { - const user = await ctx.prisma.user.findUnique({ - where: { - id: ctx.session?.user?.id, - }, - include: { + withSettings: protectedProcedure.query(async ({ ctx }) => { + const user = await db.query.users.findFirst({ + where: eq(users.id, ctx.session?.user?.id), + with: { settings: true, }, }); @@ -195,50 +148,26 @@ export const userRouter = createTRPCRouter({ return { id: user.id, name: user.name, - settings: { - ...user.settings, - firstDayOfWeek: z - .enum(['monday', 'saturday', 'sunday']) - .parse(user.settings.firstDayOfWeek), - }, + settings: user.settings, }; }), updateSettings: protectedProcedure .input(updateSettingsValidationSchema) .mutation(async ({ ctx, input }) => { - await ctx.prisma.user.update({ - where: { - id: ctx.session.user.id, - }, - data: { - settings: { - update: { - disablePingPulse: input.disablePingPulse, - replacePingWithIcons: input.replaceDotsWithIcons, - defaultBoard: input.defaultBoard, - language: input.language, - firstDayOfWeek: input.firstDayOfWeek, - searchTemplate: input.searchTemplate, - openSearchInNewTab: input.openSearchInNewTab, - autoFocusSearch: input.autoFocusSearch, - }, - }, - }, - }); + await db + .update(userSettings) + .set(input) + .where(eq(userSettings.userId, ctx.session?.user?.id)); }), makeDefaultDashboard: protectedProcedure .input(z.object({ board: z.string() })) .mutation(async ({ ctx, input }) => { - await ctx.prisma.userSettings.update({ - where: { - userId: ctx.session?.user.id, - }, - data: { - defaultBoard: input.board, - }, - }); + await db + .update(userSettings) + .set({ defaultBoard: input.board }) + .where(eq(userSettings.userId, ctx.session?.user?.id)); }), all: adminProcedure @@ -254,26 +183,20 @@ export const userRouter = createTRPCRouter({ ) .query(async ({ ctx, input }) => { const limit = input.limit; - const users = await ctx.prisma.user.findMany({ - take: limit + 1, - skip: limit * input.page, - where: { - name: { - contains: input.search, - }, - }, + const dbUsers = await db.query.users.findMany({ + limit: limit + 1, + offset: limit * input.page, + where: input.search ? like(users.name, `%${input.search}%`) : undefined, }); - const countUsers = await ctx.prisma.user.count({ - where: { - name: { - contains: input.search, - }, - }, - }); + const countUsers = await db + .select({ count: sql`count(*)` }) + .from(users) + .where(input.search ? like(users.name, `%${input.search}%`) : undefined) + .then((rows) => rows[0].count); return { - users: users.map((user) => ({ + users: dbUsers.map((user) => ({ id: user.id, name: user.name!, email: user.email, @@ -284,7 +207,7 @@ export const userRouter = createTRPCRouter({ }; }), create: adminProcedure.input(createNewUserSchema).mutation(async ({ ctx, input }) => { - await createUserIfNotPresent(ctx, input); + await createUserIfNotPresent(input); }), deleteUser: adminProcedure @@ -294,10 +217,8 @@ export const userRouter = createTRPCRouter({ }) ) .mutation(async ({ ctx, input }) => { - const user = await ctx.prisma.user.findUnique({ - where: { - id: input.id, - }, + const user = await db.query.users.findFirst({ + where: eq(users.id, input.id), }); if (!user) { @@ -320,26 +241,19 @@ export const userRouter = createTRPCRouter({ }); } - await ctx.prisma.user.delete({ - where: { - id: input.id, - }, - }); + await db.delete(users).where(eq(users.id, input.id)); }), }); const createUserIfNotPresent = async ( - ctx: TRPCContext, input: z.infer, options: { defaultSettings?: Partial; isOwner?: boolean; } | void ) => { - const existingUser = await ctx.prisma.user.findFirst({ - where: { - name: input.username, - }, + const existingUser = await db.query.users.findFirst({ + where: eq(users.name, input.username), }); if (existingUser) { @@ -351,17 +265,22 @@ const createUserIfNotPresent = async ( const salt = bcrypt.genSaltSync(10); const hashedPassword = hashPassword(input.password, salt); - await ctx.prisma.user.create({ - data: { - name: input.username, - email: input.email, - password: hashedPassword, - salt: salt, - isAdmin: options?.isOwner ?? false, - isOwner: options?.isOwner ?? false, - settings: { - create: options?.defaultSettings ?? {}, - }, - }, + const userId = randomUUID(); + await db.insert(users).values({ + id: userId, + name: input.username, + email: input.email, + password: hashedPassword, + salt: salt, + isAdmin: options?.isOwner ?? false, + isOwner: options?.isOwner ?? false, }); + + await db.insert(userSettings).values({ + id: randomUUID(), + userId, + ...(options?.defaultSettings ?? {}), + }); + + return userId; }; diff --git a/src/server/api/trpc.ts b/src/server/api/trpc.ts index 610ec4d05..2dbc56318 100644 --- a/src/server/api/trpc.ts +++ b/src/server/api/trpc.ts @@ -13,7 +13,6 @@ import superjson from 'superjson'; import { ZodError } from 'zod'; import { getServerAuthSession } from '../auth'; -import { prisma } from '../db'; /** * 1. CONTEXT @@ -41,7 +40,6 @@ interface CreateContextOptions { const createInnerTRPCContext = (opts: CreateContextOptions) => ({ session: opts.session, cookies: opts.cookies, - prisma, }); export type TRPCContext = ReturnType; diff --git a/src/server/auth.ts b/src/server/auth.ts index 770af0f10..5d79c62f5 100644 --- a/src/server/auth.ts +++ b/src/server/auth.ts @@ -1,17 +1,20 @@ -import { PrismaAdapter } from '@next-auth/prisma-adapter'; +import { DrizzleAdapter } from '@auth/drizzle-adapter'; import bcrypt from 'bcryptjs'; import Consola from 'consola'; import Cookies from 'cookies'; +import { eq } from 'drizzle-orm'; import { type GetServerSidePropsContext, type NextApiRequest, type NextApiResponse } from 'next'; import { type DefaultSession, type NextAuthOptions, getServerSession } from 'next-auth'; import { Adapter } from 'next-auth/adapters'; import { decode, encode } from 'next-auth/jwt'; import Credentials from 'next-auth/providers/credentials'; -import { prisma } from '~/server/db'; import EmptyNextAuthProvider from '~/utils/empty-provider'; import { fromDate, generateSessionToken } from '~/utils/session'; import { colorSchemeParser, signInSchema } from '~/validations/user'; +import { db } from './db'; +import { users } from './db/schema'; + /** * Module augmentation for `next-auth` types. Allows us to add custom properties to the `session` * object and keep type safety. @@ -48,7 +51,7 @@ declare module 'next-auth/jwt' { } } -const adapter = PrismaAdapter(prisma); +const adapter = DrizzleAdapter(db); const sessionMaxAgeInSeconds = 30 * 24 * 60 * 60; // 30 days /** @@ -68,25 +71,25 @@ export const constructAuthOptions = ( // eslint-disable-next-line no-param-reassign session.user.name = user.name as string; - const userFromDatabase = await prisma.user.findUniqueOrThrow({ - where: { - id: user.id, - }, - include: { + const userFromDatabase = await db.query.users.findFirst({ + with: { settings: { - select: { + columns: { colorScheme: true, language: true, autoFocusSearch: true, }, }, }, + where: eq(users.id, user.id), }); - session.user.isAdmin = userFromDatabase.isAdmin; - session.user.colorScheme = colorSchemeParser.parse(userFromDatabase.settings?.colorScheme); - session.user.language = userFromDatabase.settings?.language ?? 'en'; - session.user.autoFocusSearch = userFromDatabase.settings?.autoFocusSearch ?? false; + session.user.isAdmin = userFromDatabase?.isAdmin ?? false; + session.user.colorScheme = userFromDatabase + ? colorSchemeParser.parse(userFromDatabase.settings?.colorScheme) + : 'environment'; + session.user.language = userFromDatabase?.settings?.language ?? 'en'; + session.user.autoFocusSearch = userFromDatabase?.settings?.autoFocusSearch ?? false; } return session; @@ -129,7 +132,7 @@ export const constructAuthOptions = ( signIn: '/auth/login', error: '/auth/login', }, - adapter: PrismaAdapter(prisma), + adapter: adapter as Adapter, providers: [ Credentials({ name: 'credentials', @@ -143,19 +146,17 @@ export const constructAuthOptions = ( async authorize(credentials) { const data = await signInSchema.parseAsync(credentials); - const user = await prisma.user.findFirst({ - where: { - name: data.name, - }, - include: { + const user = await db.query.users.findFirst({ + with: { settings: { - select: { + columns: { colorScheme: true, language: true, autoFocusSearch: true, }, }, }, + where: eq(users.name, data.name), }); if (!user || !user.password) { diff --git a/src/server/db.ts b/src/server/db.ts deleted file mode 100644 index 9fb47cb40..000000000 --- a/src/server/db.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { PrismaClient } from '@prisma/client'; -import { env } from '~/env'; - -const globalForPrisma = globalThis as unknown as { - prisma: PrismaClient | undefined; -}; - -export const prisma = - globalForPrisma.prisma ?? - new PrismaClient({ - log: env.NEXT_PUBLIC_NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'], - }); - -if (env.NEXT_PUBLIC_NODE_ENV !== 'production') globalForPrisma.prisma = prisma; diff --git a/src/server/db/index.ts b/src/server/db/index.ts new file mode 100644 index 000000000..10bb35f0b --- /dev/null +++ b/src/server/db/index.ts @@ -0,0 +1,9 @@ +import Database from 'better-sqlite3'; +import { drizzle } from 'drizzle-orm/better-sqlite3'; +import { env } from '~/env'; + +import * as schema from './schema'; + +const sqlite = new Database(env.DATABASE_URL?.replace('file:', '')); + +export const db = drizzle(sqlite, { schema }); diff --git a/src/server/db/queries/user.ts b/src/server/db/queries/user.ts new file mode 100644 index 000000000..8ffebfd9a --- /dev/null +++ b/src/server/db/queries/user.ts @@ -0,0 +1,11 @@ +import { sql } from 'drizzle-orm'; + +import { db } from '..'; +import { users } from '../schema'; + +export const getTotalUserCountAsync = async () => { + return await db + .select({ count: sql`count(*)` }) + .from(users) + .then((rows) => rows[0].count); +}; diff --git a/src/server/db/queries/userSettings.ts b/src/server/db/queries/userSettings.ts new file mode 100644 index 000000000..3b361668f --- /dev/null +++ b/src/server/db/queries/userSettings.ts @@ -0,0 +1,18 @@ +import { eq } from 'drizzle-orm'; + +import { db } from '..'; +import { userSettings } from '../schema'; + +export const getDefaultBoardAsync = async ( + userId: string | undefined, + fallback: string = 'default' +) => { + if (!userId) { + return fallback; + } + return await db.query.userSettings + .findFirst({ + where: eq(userSettings.userId, userId), + }) + .then((settings) => settings?.defaultBoard ?? fallback); +}; diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts new file mode 100644 index 000000000..470f96a5e --- /dev/null +++ b/src/server/db/schema.ts @@ -0,0 +1,133 @@ +import { InferSelectModel, relations } from 'drizzle-orm'; +import { index, int, integer, primaryKey, sqliteTable, text } from 'drizzle-orm/sqlite-core'; +import { type AdapterAccount } from 'next-auth/adapters'; + +export const users = sqliteTable('user', { + id: text('id').notNull().primaryKey(), + name: text('name'), + email: text('email'), + emailVerified: integer('emailVerified', { mode: 'timestamp_ms' }), + image: text('image'), + password: text('password'), + salt: text('salt'), + isAdmin: int('is_admin', { mode: 'boolean' }).notNull().default(false), + isOwner: int('is_owner', { mode: 'boolean' }).notNull().default(false), +}); + +export const accounts = sqliteTable( + 'account', + { + userId: text('userId') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), + type: text('type').$type().notNull(), + provider: text('provider').notNull(), + providerAccountId: text('providerAccountId').notNull(), + refresh_token: text('refresh_token'), + access_token: text('access_token'), + expires_at: integer('expires_at'), + token_type: text('token_type'), + scope: text('scope'), + id_token: text('id_token'), + session_state: text('session_state'), + }, + (account) => ({ + compoundKey: primaryKey(account.provider, account.providerAccountId), + userIdIdx: index('userId_idx').on(account.userId), + }) +); + +export const sessions = sqliteTable( + 'session', + { + sessionToken: text('sessionToken').notNull().primaryKey(), + userId: text('userId') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), + expires: integer('expires', { mode: 'timestamp_ms' }).notNull(), + }, + (session) => ({ + userIdIdx: index('user_id_idx').on(session.userId), + }) +); + +export const verificationTokens = sqliteTable( + 'verificationToken', + { + identifier: text('identifier').notNull(), + token: text('token').notNull(), + expires: integer('expires', { mode: 'timestamp_ms' }).notNull(), + }, + (vt) => ({ + compoundKey: primaryKey(vt.identifier, vt.token), + }) +); + +const validColorScheme = ['environment', 'light', 'dark'] as const; +type ValidColorScheme = (typeof validColorScheme)[number]; +const firstDaysOfWeek = ['monday', 'saturday', 'sunday'] as const; +type ValidFirstDayOfWeek = (typeof firstDaysOfWeek)[number]; + +export const userSettings = sqliteTable('user_setting', { + id: text('id').notNull().primaryKey(), + userId: text('user_id') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), + colorScheme: text('color_scheme').$type().notNull().default('environment'), + language: text('language').notNull().default('en'), + defaultBoard: text('default_board').notNull().default('default'), + firstDayOfWeek: text('first_day_of_week') + .$type() + .notNull() + .default('monday'), + searchTemplate: text('search_template').notNull().default('https://google.com/search?q=%s'), + openSearchInNewTab: int('open_search_in_new_tab', { mode: 'boolean' }).notNull().default(true), + disablePingPulse: int('disable_ping_pulse', { mode: 'boolean' }).notNull().default(false), + replacePingWithIcons: int('replace_ping_with_icons', { mode: 'boolean' }) + .notNull() + .default(false), + useDebugLanguage: int('use_debug_language', { mode: 'boolean' }).notNull().default(false), + autoFocusSearch: int('auto_focus_search', { mode: 'boolean' }).notNull().default(false), +}); + +export type UserSettings = InferSelectModel; + +export const invites = sqliteTable('invite', { + id: text('id').notNull().primaryKey(), + token: text('token').notNull().unique(), + expires: int('expires', { + mode: 'timestamp', + }).notNull(), + createdById: text('created_by_id') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), +}); + +export type Invite = InferSelectModel; + +export const accountRelations = relations(accounts, ({ one }) => ({ + user: one(users, { + fields: [accounts.userId], + references: [users.id], + }), +})); + +export const userRelations = relations(users, ({ many, one }) => ({ + accounts: many(accounts), + settings: one(userSettings), + invites: many(invites), +})); + +export const userSettingRelations = relations(userSettings, ({ one }) => ({ + user: one(users, { + fields: [userSettings.userId], + references: [users.id], + }), +})); + +export const inviteRelations = relations(invites, ({ one }) => ({ + createdBy: one(users, { + fields: [invites.createdById], + references: [users.id], + }), +})); diff --git a/src/widgets/calendar/CalendarTile.tsx b/src/widgets/calendar/CalendarTile.tsx index 81826a060..b12d40bf1 100644 --- a/src/widgets/calendar/CalendarTile.tsx +++ b/src/widgets/calendar/CalendarTile.tsx @@ -3,11 +3,11 @@ import { Calendar } from '@mantine/dates'; import { IconCalendarTime } from '@tabler/icons-react'; import { useSession } from 'next-auth/react'; import { useState } from 'react'; +import { useEditModeStore } from '~/components/Dashboard/Views/useEditModeStore'; +import { useConfigContext } from '~/config/provider'; import { getLanguageByCode } from '~/tools/language'; import { RouterOutputs, api } from '~/utils/api'; -import { useEditModeStore } from '~/components/Dashboard/Views/useEditModeStore'; -import { useConfigContext } from '~/config/provider'; import { defineWidget } from '../helper'; import { IWidget } from '../widgets'; import { CalendarDay } from './CalendarDay'; @@ -33,22 +33,12 @@ const definition = defineWidget({ radarrReleaseType: { type: 'select', defaultValue: 'inCinemas', - data: [ - { value: 'inCinemas' }, - { value: 'physicalRelease' }, - { value: 'digitalRelease' }, - ], + data: [{ value: 'inCinemas' }, { value: 'physicalRelease' }, { value: 'digitalRelease' }], }, fontSize: { type: 'select', defaultValue: 'xs', - data: [ - { value: 'xs' }, - { value: 'sm' }, - { value: 'md' }, - { value: 'lg' }, - { value: 'xl' }, - ], + data: [{ value: 'xs' }, { value: 'sm' }, { value: 'md' }, { value: 'lg' }, { value: 'xl' }], }, }, gridstack: { @@ -83,7 +73,10 @@ function CalendarTile({ widget }: CalendarTileProps) { configName: configName!, month: month.getMonth() + 1, year: month.getFullYear(), - options: { useSonarrv4: widget.properties.useSonarrv4, showUnmonitored: widget.properties.showUnmonitored }, + options: { + useSonarrv4: widget.properties.useSonarrv4, + showUnmonitored: widget.properties.showUnmonitored, + }, }, { staleTime: 1000 * 60 * 60 * 5, diff --git a/tsconfig.json b/tsconfig.json index 1ca49efb1..4fb9c134d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es6", "lib": [ "dom", "dom.iterable", @@ -36,5 +36,11 @@ ], "exclude": [ "node_modules" - ] + ], + "ts-node": { + "esm": true, + "compilerOptions": { + "module": "nodenext", + }, + }, } diff --git a/yarn.lock b/yarn.lock index 414b33529..9138abab3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,43 +29,71 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.5": - version: 7.22.10 - resolution: "@babel/code-frame@npm:7.22.10" +"@auth/core@npm:0.12.0": + version: 0.12.0 + resolution: "@auth/core@npm:0.12.0" dependencies: - "@babel/highlight": ^7.22.10 + "@panva/hkdf": ^1.0.4 + cookie: 0.5.0 + jose: ^4.11.1 + oauth4webapi: ^2.0.6 + preact: 10.11.3 + preact-render-to-string: 5.2.3 + peerDependencies: + nodemailer: ^6.8.0 + peerDependenciesMeta: + nodemailer: + optional: true + checksum: 21933df18b691d2b0cca0de86fbed256ed01543733b33a7cfa948a993653ede13992eb0fca6bf693dd03ecd52faff3cf25edcc043ab8976e009e98a629751ba5 + languageName: node + linkType: hard + +"@auth/drizzle-adapter@npm:^0.3.2": + version: 0.3.2 + resolution: "@auth/drizzle-adapter@npm:0.3.2" + dependencies: + "@auth/core": 0.12.0 + checksum: bb294a86e492d53d8fe7151eca80edcd5a20b533236e36ba5b537c811fd8310e6c11b1ed7337c5be451f0ca60f3bfae7419a2758a7fe90aa82dcba41d716519b + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.8.3": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 chalk: ^2.4.2 - checksum: 89a06534ad19759da6203a71bad120b1d7b2ddc016c8e07d4c56b35dea25e7396c6da60a754e8532a86733092b131ae7f661dbe6ba5d165ea777555daa2ed3c9 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 languageName: node linkType: hard "@babel/compat-data@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/compat-data@npm:7.22.9" - checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 + version: 7.22.20 + resolution: "@babel/compat-data@npm:7.22.20" + checksum: efedd1d18878c10fde95e4d82b1236a9aba41395ef798cbb651f58dbf5632dbff475736c507b8d13d4c8f44809d41c0eb2ef0d694283af9ba5dd8339b6dab451 languageName: node linkType: hard -"@babel/core@npm:^7.22.9": - version: 7.22.10 - resolution: "@babel/core@npm:7.22.10" +"@babel/core@npm:^7.22.20": + version: 7.23.0 + resolution: "@babel/core@npm:7.23.0" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.10 - "@babel/parser": ^7.22.10 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.10 - "@babel/types": ^7.22.10 - convert-source-map: ^1.7.0 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helpers": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 - json5: ^2.2.2 + json5: ^2.2.3 semver: ^6.3.1 - checksum: cc4efa09209fe1f733cf512e9e4bb50870b191ab2dee8014e34cd6e731f204e48476cc53b4bbd0825d4d342304d577ae43ff5fd8ab3896080673c343321acb32 + checksum: cebd9b48dbc970a7548522f207f245c69567e5ea17ebb1a4e4de563823cf20a01177fe8d2fe19b6e1461361f92fa169fd0b29f8ee9d44eeec84842be1feee5f2 languageName: node linkType: hard @@ -80,45 +108,45 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.17.3, @babel/generator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/generator@npm:7.22.10" +"@babel/generator@npm:^7.17.3, @babel/generator@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" dependencies: - "@babel/types": ^7.22.10 + "@babel/types": ^7.23.0 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 + checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/helper-compilation-targets@npm:7.22.10" +"@babel/helper-compilation-targets@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 browserslist: ^4.21.9 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 + checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 +"@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.16.7, @babel/helper-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-function-name@npm:7.22.5" +"@babel/helper-function-name@npm:^7.16.7, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 6b1f6ce1b1f4e513bf2c8385a557ea0dd7fa37971b9002ad19268ca4384bbe90c09681fe4c076013f33deabc63a53b341ed91e792de741b4b35e01c00238177a + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 languageName: node linkType: hard @@ -131,27 +159,27 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-module-imports@npm:7.22.5" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: - "@babel/types": ^7.22.5 - checksum: 9ac2b0404fa38b80bdf2653fbeaf8e8a43ccb41bd505f9741d820ed95d3c4e037c62a1bcdcb6c9527d7798d2e595924c4d025daed73283badc180ada2c9c49ad + "@babel/types": ^7.22.15 + checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-module-transforms@npm:7.22.9" +"@babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 "@babel/helper-simple-access": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 2751f77660518cf4ff027514d6f4794f04598c6393be7b04b8e46c6e21606e11c19f3f57ab6129a9c21bacdf8b3ffe3af87bb401d972f34af2d0ffde02ac3001 + checksum: 6e2afffb058cf3f8ce92f5116f710dda4341c81cfcd872f9a0197ea594f7ce0ab3cb940b0590af2fe99e60d2e5448bfba6bca8156ed70a2ed4be2adc8586c891 languageName: node linkType: hard @@ -187,48 +215,48 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-identifier@npm:7.22.5" - checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea +"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-option@npm:7.22.5" - checksum: bbeca8a85ee86990215c0424997438b388b8d642d69b9f86c375a174d3cdeb270efafd1ff128bc7a1d370923d13b6e45829ba8581c027620e83e3a80c5c414b3 +"@babel/helper-validator-option@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d languageName: node linkType: hard -"@babel/helpers@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/helpers@npm:7.22.10" +"@babel/helpers@npm:^7.23.0": + version: 7.23.1 + resolution: "@babel/helpers@npm:7.23.1" dependencies: - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.10 - "@babel/types": ^7.22.10 - checksum: 3b1219e362df390b6c5d94b75a53fc1c2eb42927ced0b8022d6a29b833a839696206b9bdad45b4805d05591df49fc16b6fb7db758c9c2ecfe99e3e94cb13020f + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + checksum: acfc345102045c24ea2a4d60e00dcf8220e215af3add4520e2167700661338e6a80bd56baf44bb764af05ec6621101c9afc315dc107e18c61fa6da8acbdbb893 languageName: node linkType: hard -"@babel/highlight@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/highlight@npm:7.22.10" +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: f714a1e1a72dd9d72f6383f4f30fd342e21a8df32d984a4ea8f5eab691bb6ba6db2f8823d4b4cf135d98869e7a98925b81306aa32ee3c429f8cfa52c75889e1b + checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134 languageName: node linkType: hard -"@babel/parser@npm:^7.17.3, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.22.10, @babel/parser@npm:^7.22.5": - version: 7.22.10 - resolution: "@babel/parser@npm:7.22.10" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.17.3, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" bin: parser: ./bin/babel-parser.js - checksum: af51567b7d3cdf523bc608eae057397486c7fa6c2e5753027c01fe5c36f0767b2d01ce3049b222841326cc5b8c7fda1d810ac1a01af0a97bb04679e2ef9f7049 + checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354 languageName: node linkType: hard @@ -255,22 +283,22 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.22.10 - resolution: "@babel/runtime@npm:7.22.10" + version: 7.23.1 + resolution: "@babel/runtime@npm:7.23.1" dependencies: regenerator-runtime: ^0.14.0 - checksum: 524d41517e68953dbc73a4f3616b8475e5813f64e28ba89ff5fca2c044d535c2ea1a3f310df1e5bb06162e1f0b401b5c4af73fe6e2519ca2450d9d8c44cf268d + checksum: 0cd0d43e6e7dc7f9152fda8c8312b08321cda2f56ef53d6c22ebdd773abdc6f5d0a69008de90aa41908d00e2c1facb24715ff121274e689305c858355ff02c70 languageName: node linkType: hard -"@babel/template@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/template@npm:7.22.5" +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" dependencies: - "@babel/code-frame": ^7.22.5 - "@babel/parser": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: c5746410164039aca61829cdb42e9a55410f43cace6f51ca443313f3d0bdfa9a5a330d0b0df73dc17ef885c72104234ae05efede37c1cc8a72dc9f93425977a3 + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd languageName: node linkType: hard @@ -292,21 +320,21 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/traverse@npm:7.22.10" +"@babel/traverse@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/traverse@npm:7.23.0" dependencies: - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.10 - "@babel/types": ^7.22.10 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 debug: ^4.1.0 globals: ^11.1.0 - checksum: 9f7b358563bfb0f57ac4ed639f50e5c29a36b821a1ce1eea0c7db084f5b925e3275846d0de63bde01ca407c85d9804e0efbe370d92cd2baaafde3bd13b0f4cdb + checksum: 0b17fae53269e1af2cd3edba00892bc2975ad5df9eea7b84815dab07dfec2928c451066d51bc65b4be61d8499e77db7e547ce69ef2a7b0eca3f96269cb43a0b0 languageName: node linkType: hard @@ -320,14 +348,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.17.0, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.5, @babel/types@npm:^7.8.3": - version: 7.22.10 - resolution: "@babel/types@npm:7.22.10" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.8.3": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" dependencies: "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 to-fast-properties: ^2.0.0 - checksum: 095c4f4b7503fa816e4094113f0ec2351ef96ff32012010b771693066ff628c7c664b21c6bd3fb93aeb46fe7c61f6b3a3c9e4ed0034d6a2481201c417371c8af + checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604 languageName: node linkType: hard @@ -436,6 +464,13 @@ __metadata: languageName: node linkType: hard +"@drizzle-team/studio@npm:^0.0.5": + version: 0.0.5 + resolution: "@drizzle-team/studio@npm:0.0.5" + checksum: 0b8883f326aebe6f9c8912fca33be6369568a5617fb1a0f4211add5f2f05c4db9450ffd265de29ac1a5891b592b99dc54893131ac43e3c72517c4978c02811fd + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" @@ -586,6 +621,26 @@ __metadata: languageName: node linkType: hard +"@esbuild-kit/core-utils@npm:^3.3.2": + version: 3.3.2 + resolution: "@esbuild-kit/core-utils@npm:3.3.2" + dependencies: + esbuild: ~0.18.20 + source-map-support: ^0.5.21 + checksum: 62f3b97457fa4ef39d752bd2ad1c8adac08929b50c411f5259f105cc74896f1fdb3429a540aa423e8eae37f32ef44656ca21ccb9a723cd9955d65a820960ab1f + languageName: node + linkType: hard + +"@esbuild-kit/esm-loader@npm:^2.5.5": + version: 2.6.5 + resolution: "@esbuild-kit/esm-loader@npm:2.6.5" + dependencies: + "@esbuild-kit/core-utils": ^3.3.2 + get-tsconfig: ^4.7.0 + checksum: 88a27203898f14bd69f03244ae2b3bae727e00243d7801292c4da8caba69813b0978fb8245a55b83bc9b907f475ed634f094a1f44cc590c0754993f4a924cc22 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -752,9 +807,9 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.7.0 - resolution: "@eslint-community/regexpp@npm:4.7.0" - checksum: 09b8d11a9957b58be870d76e36b718030ba2215e1fb9d009f7a0833733c86b47d8528c47808eeef389145ca198abc3ea4d169452840e36142ecfb9491e3a1d16 + version: 4.9.0 + resolution: "@eslint-community/regexpp@npm:4.9.0" + checksum: 82411f0643ab9bfd271bf12c8c75031266b13595d9371585ee3b0d680d918d4abf37c7e94d0da22e45817c9bbc59b79dfcbd672050dfb00af88fb89c80fd420f languageName: node linkType: hard @@ -775,29 +830,29 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.49.0": - version: 8.49.0 - resolution: "@eslint/js@npm:8.49.0" - checksum: a6601807c8aeeefe866926ad92ed98007c034a735af20ff709009e39ad1337474243d47908500a3bde04e37bfba16bcf1d3452417f962e1345bc8756edd6b830 +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 302478f2acaaa7228729ec6a04f56641590185e1d8cd1c836a6db8a6b8009f80a57349341be9fbb9aa1721a7a569d1be3ffc598a33300d22816f11832095386c languageName: node linkType: hard -"@floating-ui/core@npm:^1.4.1": - version: 1.4.1 - resolution: "@floating-ui/core@npm:1.4.1" +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" dependencies: - "@floating-ui/utils": ^0.1.1 - checksum: be4ab864fe17eeba5e205bd554c264b9a4895a57c573661bbf638357fa3108677fed7ba3269ec15b4da90e29274c9b626d5a15414e8d1fe691e210d02a03695c + "@floating-ui/utils": ^0.1.3 + checksum: 54b4fe26b3c228746ac5589f97303abf158b80aa5f8b99027259decd68d1c2030c4c637648ebd33dfe78a4212699453bc2bd7537fd5a594d3bd3e63d362f666f languageName: node linkType: hard "@floating-ui/dom@npm:^1.2.1": - version: 1.5.1 - resolution: "@floating-ui/dom@npm:1.5.1" + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" dependencies: - "@floating-ui/core": ^1.4.1 - "@floating-ui/utils": ^0.1.1 - checksum: ddb509030978536ba7b321cf8c764ae9d0142a3b1fefb7e6bc050a5de7e825e12131fa5089009edabf7c125fb274886da211a5220fe17a71d875a7a96eb1386c + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: 00053742064aac70957f0bd5c1542caafb3bfe9716588bfe1d409fef72a67ed5e60450d08eb492a77f78c22ed1ce4f7955873cc72bf9f9caf2b0f43ae3561c21 languageName: node linkType: hard @@ -827,10 +882,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.1.1": - version: 0.1.1 - resolution: "@floating-ui/utils@npm:0.1.1" - checksum: 548acdda7902f45b0afbe34e2e7f4cbff0696b95bad8c039f80936519de24ef2ec20e79902825b7815294b37f51a7c52ee86288b0688869a57cc229a164d86b4 +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.4 + resolution: "@floating-ui/utils@npm:0.1.4" + checksum: e6195ded5b3a6fd38411a833605184c31f24609b08feab2615e90ccc063bf4d3965383d817642fc7e8ca5ab6a54c29c71103e874f3afb0518595c8bd3390ba16 languageName: node linkType: hard @@ -891,12 +946,12 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/expect-utils@npm:29.6.3" +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" dependencies: jest-get-type: ^29.6.3 - checksum: aeb0c2a485df09fdb51f866d58e232010cde888a7e6e1f9b395df236918e09e98407eb8281a3d41d2b115d9ff740d100b75100d521717ba903abeacb26e2a192 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed languageName: node linkType: hard @@ -976,149 +1031,149 @@ __metadata: linkType: hard "@mantine/core@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/core@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/core@npm:6.0.21" dependencies: "@floating-ui/react": ^0.19.1 - "@mantine/styles": 6.0.19 - "@mantine/utils": 6.0.19 + "@mantine/styles": 6.0.21 + "@mantine/utils": 6.0.21 "@radix-ui/react-scroll-area": 1.0.2 react-remove-scroll: ^2.5.5 react-textarea-autosize: 8.3.4 peerDependencies: - "@mantine/hooks": 6.0.19 + "@mantine/hooks": 6.0.21 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: a564b1d6fc1c66d6e9d13b657ae5e5a8b23f7823d19d0e0009865c73e15ce42eef44da9a7c0f44a6a9d75aaba783785c6d0a63972cf443f2fc06e6d218f4076d + checksum: 70ecf9fed81246e137d8305c84992e4436d6aa0a54dfd4909bd2392f11379be0397698c286f4642cdedc90b18ccf41bfd2881ed354f6e89c359ce81546b1d683 languageName: node linkType: hard "@mantine/dates@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/dates@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/dates@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 dayjs: ">=1.0.0" react: ">=16.8.0" - checksum: 0faedab40d6fbc5720ce872bf70d2a890cc4576f52aaccd93db68385dd27536bf2f08959ba09c99d49ec8d3d7db0d160dbc7442f6e137eaaf04e55944919d0c8 + checksum: 785f1651555d963554aa2ef89ac109b5475ee1d99e4aa720e86d4da16d1e29a2dadbaa9442243bb8ccba132875b9dc03e6d14cc7be53d5b2b71233eff2031b9f languageName: node linkType: hard "@mantine/dropzone@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/dropzone@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/dropzone@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 react-dropzone: 14.2.3 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 227a481f564e952d674d2239430e031de7b902f304fe80d065d2913821524940555fff65494deea13b977ff8df12dc88ca48f06d974146d9d4c318c6de891676 + checksum: bbb6af302e43e3e79c75bfe4dd37e59a238e0768e84650d69f7190bd0cba5fcc9555dc4325eb136f7cc999ed33d78ea41f24acfeb74956dcdeaf829c0446d401 languageName: node linkType: hard "@mantine/form@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/form@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/form@npm:6.0.21" dependencies: fast-deep-equal: ^3.1.3 klona: ^2.0.5 peerDependencies: react: ">=16.8.0" - checksum: dfe2962f56b6b5c7a6cdf08ae351472c8d832531b34c7cad8bda061f468f473aadece3d9963edc72cfcec0f344636ba4530ba13acdb60ee4a046f795c55c13d6 + checksum: 9e4a26b318997b59efe256dddcdb9503e385a6d2dabdad1f1cf499cb63273e5e5eb15265f56af8fd693aa9f242ab82a25904edbb39a3b8b69bb3c951c12d3dff languageName: node linkType: hard "@mantine/hooks@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/hooks@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/hooks@npm:6.0.21" peerDependencies: react: ">=16.8.0" - checksum: 9fe3bf435f3631495b58a5b840c2c02e4a24299f7bedded2c8cea4701bc87c50f4ab54a12e8b5be341ee8dbf032184f5dc8ff01b015ffec964739f2bdd718e52 + checksum: bf912b812a9ec2635791075b2240c2e34b5541ecaa17b0ae0ece510880f4ce76913ce108fb576dbfc31ab29872b9484375382ae57b789c0932d05d8cf1038316 languageName: node linkType: hard "@mantine/modals@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/modals@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/modals@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 34c85c65ab3a184b20b38bdcede574f0acfd8eacee5dc3a01fc89442e5208b6b760f514272c229fb6b18f5ee58cfa0eacd9d427c884a20110c74005584bdf579 + checksum: d4e252e8d24c647f67b41c718beccf1d92c5352aeb9370a917e78de108f770f333fee9afa02d559a34fbc91aa296e69d4c7ee6726a23d1e3535a11977ef33447 languageName: node linkType: hard "@mantine/next@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/next@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/next@npm:6.0.21" dependencies: - "@mantine/ssr": 6.0.19 - "@mantine/styles": 6.0.19 + "@mantine/ssr": 6.0.21 + "@mantine/styles": 6.0.21 peerDependencies: next: "*" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 79e371f7c3897049a1c258fcd33bc5e94e84a9c4ba59f4db3cfcb4535e926986cd3629e27d452ca7b4f8d68522f77772d061fefd1c5332d2234bd37ef1463dd3 + checksum: 77af1da05240bd5c7bedf8a789ca6432ec9a58f6c528770e40d77bd3b8053e17275d8ac2385cf2a65f7becbc86ea32c280bcb1e0cd63933461f3991beb524333 languageName: node linkType: hard "@mantine/notifications@npm:^6.0.0": - version: 6.0.19 - resolution: "@mantine/notifications@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/notifications@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 react-transition-group: 4.4.2 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: f90e95d6670d5ef6e3826afe2170c0a79ccf8691a25dd45eab8e4b33d0c80cac419ee8dd1914845e41ba7fee52e56c45e058fd7395a74890b9913189f2a2d17b + checksum: e4c05487b12c86197c2a0422cc22710b2266b20886259264e0d42ca5504ca99a9d0e9d0d1a48218099b387fde1151b794a80c0b29f22635d27e1aebf5c19d269 languageName: node linkType: hard "@mantine/prism@npm:^6.0.19": - version: 6.0.19 - resolution: "@mantine/prism@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/prism@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 prism-react-renderer: ^1.2.1 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: ae806b6341a0a34831ffd04cd5254e0d37ae3946cb3a0d3fd774b2a86feca09815616a580a581af3338cd7f3574a4861fc79680501b207d8596787e4ddc5b447 + checksum: 9dfa5a5e95fbb77b9c40266f34f9ce1189bb3b912d0213d90f9750adfc91b8d276dd904849401e775ca5eb8f6b7d31be80c581dc0013333b7c554635ce6a0250 languageName: node linkType: hard -"@mantine/ssr@npm:6.0.19": - version: 6.0.19 - resolution: "@mantine/ssr@npm:6.0.19" +"@mantine/ssr@npm:6.0.21": + version: 6.0.21 + resolution: "@mantine/ssr@npm:6.0.21" dependencies: - "@mantine/styles": 6.0.19 + "@mantine/styles": 6.0.21 html-react-parser: 1.4.12 peerDependencies: "@emotion/react": ">=11.9.0" "@emotion/server": ">=11.4.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 907e66942dad8b6605f8ce8c187896ded2deb6f4a24f77bbec85741b7f72a23eba13aad1f4dcd676883f8e510cb3d003de648b8f1359266e1e7e17e1bdbecc93 + checksum: 0be6b20197b336588c51c921c0e0aa8498fac1a14c5921903f004eb6d2bdfd800d856930e4c8ee63540633e5341439ab8bc74d49cdaba63b85e922563ec372ae languageName: node linkType: hard -"@mantine/styles@npm:6.0.19": - version: 6.0.19 - resolution: "@mantine/styles@npm:6.0.19" +"@mantine/styles@npm:6.0.21": + version: 6.0.21 + resolution: "@mantine/styles@npm:6.0.21" dependencies: clsx: 1.1.1 csstype: 3.0.9 @@ -1126,51 +1181,41 @@ __metadata: "@emotion/react": ">=11.9.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 4ea40abe0d079a8b7437c660e200e90d40529b129e6682009a827de27b4ffeab9d324100e074dba67719b0e0c0b5ac4789971e690cbdf87de86d9f0de29270c0 + checksum: 0e6d7c1ec31b9afb315444d7b28167d0bfa0fa874631b09ef3f32136e36242edf85bb37fca98aa255023ae861ac5754d7bfc8be798872ba2dad641da0d4c6ba1 languageName: node linkType: hard "@mantine/tiptap@npm:^6.0.17": - version: 6.0.19 - resolution: "@mantine/tiptap@npm:6.0.19" + version: 6.0.21 + resolution: "@mantine/tiptap@npm:6.0.21" dependencies: - "@mantine/utils": 6.0.19 + "@mantine/utils": 6.0.21 peerDependencies: - "@mantine/core": 6.0.19 - "@mantine/hooks": 6.0.19 + "@mantine/core": 6.0.21 + "@mantine/hooks": 6.0.21 "@tabler/icons-react": ">=2.1.0" "@tiptap/extension-link": ^2.0.0-beta.202 "@tiptap/react": ^2.0.0-beta.202 react: ">=16.8.0" - checksum: f6ae838774a5dcf69942630f97738a5f84a3561859d0b6fae2ce64d71fae150d6db8a9b1db7f5e0f31face3b0c0ffca1f8181c9becb5e6251e8e9a61bd4dd0e2 + checksum: 820aaaeac5a10a0149d93112452163e8c7f0abc62e3398ee951b767f224bf149d2d9eb192089c42b2d6e52bf6f7b243933ad143eefe6cad718faf7f18d8482a6 languageName: node linkType: hard -"@mantine/utils@npm:6.0.19": - version: 6.0.19 - resolution: "@mantine/utils@npm:6.0.19" +"@mantine/utils@npm:6.0.21": + version: 6.0.21 + resolution: "@mantine/utils@npm:6.0.21" peerDependencies: react: ">=16.8.0" - checksum: c33e2eba6d78e2b07c222c79a086da9d43a39a1fb8e409b10ab5775f6855325fd30c56b17fd67f9a827497eff2fdc22fff4b9190c2d7069b2c58565d63b3a450 - languageName: node - linkType: hard - -"@next-auth/prisma-adapter@npm:^1.0.7": - version: 1.0.7 - resolution: "@next-auth/prisma-adapter@npm:1.0.7" - peerDependencies: - "@prisma/client": ">=2.26.0 || >=3" - next-auth: ^4 - checksum: dea44185c0de109b4b2f0a9fd84c0cab40b248c70bc9f44af516d895d22442a69fd7d85f7894e47fa506f122a5c6631b7002b0371520970289eb9d7618709e06 + checksum: 9f4b08ff06fb2473545705f1bebc7e31becc1b1d98332e5ce0d827746d4454b14fcf4c77121cf250ff55af52e5e321a51ca913eedcff2ed99616429edb39fa66 languageName: node linkType: hard "@next/bundle-analyzer@npm:^13.0.0": - version: 13.4.19 - resolution: "@next/bundle-analyzer@npm:13.4.19" + version: 13.5.3 + resolution: "@next/bundle-analyzer@npm:13.5.3" dependencies: webpack-bundle-analyzer: 4.7.0 - checksum: 562ff4c21ae0b2a8061b7a5faac282319e8d197678138442151ab0de4af5a6e27b0900b5779d24df5758a9da45c5d5445e1ba3a35ea7507288965fa9fdcec53b + checksum: c576c0b4a63c9ef9c1bc293219658cc6ab2640e0438e32e440606499f97fbecb7eb1c7acbfe9ba59f5360cd8cecdebe85a37be914d8cb349720bb319222dfb8a languageName: node linkType: hard @@ -1181,12 +1226,12 @@ __metadata: languageName: node linkType: hard -"@next/eslint-plugin-next@npm:13.4.19, @next/eslint-plugin-next@npm:^13.4.5": - version: 13.4.19 - resolution: "@next/eslint-plugin-next@npm:13.4.19" +"@next/eslint-plugin-next@npm:13.5.3, @next/eslint-plugin-next@npm:^13.4.5": + version: 13.5.3 + resolution: "@next/eslint-plugin-next@npm:13.5.3" dependencies: glob: 7.1.7 - checksum: d60c136e4a8d156b50d4b248eef9918bbf4bd7da293487cdf1f7bc172b07beeae4a2822798942d2f87999af86c53d871ebea592f3d6099ae23a0746d2abf7c73 + checksum: a496a194154b84c7178832ed5ecd51f7727cc9967bab91c8898310e422c27ec1774a21cc60399f72a1e7a23241b4eb5f0fe4b6357071d91c9c820790188504ba languageName: node linkType: hard @@ -1458,7 +1503,7 @@ __metadata: languageName: node linkType: hard -"@panva/hkdf@npm:^1.0.2": +"@panva/hkdf@npm:^1.0.2, @panva/hkdf@npm:^1.0.4": version: 1.1.1 resolution: "@panva/hkdf@npm:1.1.1" checksum: f0dd12903751d8792420353f809ed3c7de860cf506399759fff5f59f7acfef8a77e2b64012898cee7e5b047708fa0bd91dff5ef55a502bf8ea11aad9842160da @@ -1473,9 +1518,9 @@ __metadata: linkType: hard "@polka/url@npm:^1.0.0-next.20": - version: 1.0.0-next.21 - resolution: "@polka/url@npm:1.0.0-next.21" - checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788 + version: 1.0.0-next.23 + resolution: "@polka/url@npm:1.0.0-next.23" + checksum: 4b0330de1ceecd1002c7e7449094d0c41f2ed0e21765f4835ccc7b003f2f024ac557d503b9ffdf0918cf50b80d5b8c99dfc5a91927e7b3c468b09c6bb42a3c41 languageName: node linkType: hard @@ -1486,34 +1531,6 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:^5.0.0": - version: 5.2.0 - resolution: "@prisma/client@npm:5.2.0" - dependencies: - "@prisma/engines-version": 5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f - peerDependencies: - prisma: "*" - peerDependenciesMeta: - prisma: - optional: true - checksum: ad523b7a54e31d365ecac7bdb89f5a89f62e616f5f567f5dd5060e86b122253a4652ea778c0ccbab31906e2170110e808839fbae7ee91a4fd16a8282ee86f5f1 - languageName: node - linkType: hard - -"@prisma/engines-version@npm:5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f": - version: 5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f - resolution: "@prisma/engines-version@npm:5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f" - checksum: 7a0fde44dad7902aef0035a30073c8e3178bccbaf65f688583cf3db94e36d160fd0a52cae8b6422b670facdbd4201861e1d6e2c7371d57ef27b58a2e1c524213 - languageName: node - linkType: hard - -"@prisma/engines@npm:5.3.1": - version: 5.3.1 - resolution: "@prisma/engines@npm:5.3.1" - checksum: a231adad60ac42569b560ea9782bc181818d8ad15e65283d1317bda5d7aa754e5b536a3f9365ce1eda8961e1eff4eca5978c456fa9764a867fe4339d123e7371 - languageName: node - linkType: hard - "@radix-ui/number@npm:1.0.0": version: 1.0.0 resolution: "@radix-ui/number@npm:1.0.0" @@ -1648,13 +1665,13 @@ __metadata: linkType: hard "@react-native-async-storage/async-storage@npm:^1.18.1": - version: 1.19.2 - resolution: "@react-native-async-storage/async-storage@npm:1.19.2" + version: 1.19.3 + resolution: "@react-native-async-storage/async-storage@npm:1.19.3" dependencies: merge-options: ^3.0.4 peerDependencies: react-native: ^0.0.0-0 || 0.60 - 0.72 || 1000.0.0 - checksum: d2f3b1f7048eb1205ef620aff9f3b26691b69770e9e5f34e84f6fe79ed73c11ea80894d99192f9d78305a8289f7c4e989a0cced1493775d8a32281a6446f2314 + checksum: d849e5c8bb08d2130d95cc246749dae820cc1996b6b31defa063a1b67070524d72aed5a0e57ce2fafe3c3726712c09a5a3babaed1358182060ce7cfd8bd2c1a3 languageName: node linkType: hard @@ -1753,10 +1770,104 @@ __metadata: languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.1.3": - version: 1.3.3 - resolution: "@rushstack/eslint-patch@npm:1.3.3" - checksum: fd8a19ec5842634da8e4c2c479a4d13ecbefa4f212e42c7f9c39e8706f9eeef7a50db8d6ea939884ac0ff36bb21930c9642068cf68e8309ad491c54f2fc30c01 +"@rollup/plugin-commonjs@npm:^13.0.0": + version: 13.0.2 + resolution: "@rollup/plugin-commonjs@npm:13.0.2" + dependencies: + "@rollup/pluginutils": ^3.0.8 + commondir: ^1.0.1 + estree-walker: ^1.0.1 + glob: ^7.1.2 + is-reference: ^1.1.2 + magic-string: ^0.25.2 + resolve: ^1.11.0 + peerDependencies: + rollup: ^2.3.4 + checksum: bed46b5f871551b972e95447212a5ccb3d040cb718c720abb387c417d25fe6aab7a0a31c28d07d568e880b81e690cdbb7df606585a2f6b78900f5f76c444107f + languageName: node + linkType: hard + +"@rollup/plugin-json@npm:^4.1.0": + version: 4.1.0 + resolution: "@rollup/plugin-json@npm:4.1.0" + dependencies: + "@rollup/pluginutils": ^3.0.8 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + checksum: 867bc9339b4ccf0b9ff3b2617a95b3b8920115163f86c8e3b1f068a14ca25949472d3c05b09a5ac38ca0fe2185756e34617eaeb219d4a2b6e2307c501c7d4552 + languageName: node + linkType: hard + +"@rollup/plugin-multi-entry@npm:^3.0.1": + version: 3.0.1 + resolution: "@rollup/plugin-multi-entry@npm:3.0.1" + dependencies: + matched: ^1.0.2 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + checksum: 04f24a30c65f425498b1324f675bd83f7a8aff0758c22af5be0417fb62d9e5b11583ece50952f23c1e4a31e9074b5bce7a0c03d1e2adbdd3bac1c0bc9c466b66 + languageName: node + linkType: hard + +"@rollup/plugin-node-resolve@npm:^8.0.1": + version: 8.4.0 + resolution: "@rollup/plugin-node-resolve@npm:8.4.0" + dependencies: + "@rollup/pluginutils": ^3.1.0 + "@types/resolve": 1.17.1 + builtin-modules: ^3.1.0 + deep-freeze: ^0.0.1 + deepmerge: ^4.2.2 + is-module: ^1.0.0 + resolve: ^1.17.0 + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: 9bd26070d525473e971fb78a4ee583da95263d855c9bf710f6c2a322f184b6806fb86c602750b9592f12f06c6459edb4f7afdba65dd73c0767f95ea7f74db077 + languageName: node + linkType: hard + +"@rollup/plugin-replace@npm:^2.3.3": + version: 2.4.2 + resolution: "@rollup/plugin-replace@npm:2.4.2" + dependencies: + "@rollup/pluginutils": ^3.1.0 + magic-string: ^0.25.7 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + checksum: b2f1618ee5526d288e2f8ae328dcb326e20e8dc8bd1f60d3e14d6708a5832e4aa44811f7d493f4aed2deeadca86e3b6b0503cd39bf50cfb4b595bb9da027fad0 + languageName: node + linkType: hard + +"@rollup/plugin-url@npm:^5.0.1": + version: 5.0.1 + resolution: "@rollup/plugin-url@npm:5.0.1" + dependencies: + "@rollup/pluginutils": ^3.0.4 + make-dir: ^3.0.0 + mime: ^2.4.4 + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: e63daa521843592859f2c62c131f7634128b897aefc4a0a7d5906495085c90a0c548bc30940848c927c41a0baf0ee6152867743606c42dca76221256f102e18d + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^3.0.4, @rollup/pluginutils@npm:^3.0.8, @rollup/pluginutils@npm:^3.1.0": + version: 3.1.0 + resolution: "@rollup/pluginutils@npm:3.1.0" + dependencies: + "@types/estree": 0.0.39 + estree-walker: ^1.0.1 + picomatch: ^2.2.2 + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: 8be16e27863c219edbb25a4e6ec2fe0e1e451d9e917b6a43cf2ae5bc025a6b8faaa40f82a6e53b66d0de37b58ff472c6c3d57a83037ae635041f8df959d6d9aa + languageName: node + linkType: hard + +"@rushstack/eslint-patch@npm:^1.3.3": + version: 1.5.0 + resolution: "@rushstack/eslint-patch@npm:1.5.0" + checksum: f21595f92ade631b5c5b2426962db727f79a7224a2c60e462779310bf1f2b592a6f59d280fa936001f564a4c7d40997ba80b5a32081fee061309ef2c56b7f4b5 languageName: node linkType: hard @@ -1831,21 +1942,21 @@ __metadata: linkType: hard "@tabler/icons-react@npm:^2.20.0": - version: 2.32.0 - resolution: "@tabler/icons-react@npm:2.32.0" + version: 2.35.0 + resolution: "@tabler/icons-react@npm:2.35.0" dependencies: - "@tabler/icons": 2.32.0 + "@tabler/icons": 2.35.0 prop-types: ^15.7.2 peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 - checksum: 84ad274623ae442ef8d6ff1344f15d4ce804f902eca93a44f0dcf0bf3e89f0c1e5b9b1d1400bf9248afeb1d8a10f6bbef672edb9c509527250ed956669dc7d45 + checksum: f3c13cf02d66639c7e1be9c542d647637f7bf729cd62ec11314c5db004d15dc763f45a61be0ece52413ff44f2e8221dba1c616d555facc89c51193b5ad460263 languageName: node linkType: hard -"@tabler/icons@npm:2.32.0": - version: 2.32.0 - resolution: "@tabler/icons@npm:2.32.0" - checksum: e30639cbb88b4a8f7bb8216aa9f34836205d3e09509d3b1acaf526e5cb7cbd61a79f35e694adaf2d63054942a2beca4cdfb14bfb1e1526b7604c66c06cf36f99 +"@tabler/icons@npm:2.35.0": + version: 2.35.0 + resolution: "@tabler/icons@npm:2.35.0" + checksum: add0bd055e66397ed54237245b2fa785ebc10cc35f71c7023ef396b634c8aeb104a2b12cd657e257e9ac5a517a93c9759f5545f5dda09281fb9189e5b3bc5694 languageName: node linkType: hard @@ -1859,70 +1970,70 @@ __metadata: linkType: hard "@tanstack/query-async-storage-persister@npm:^4.27.1": - version: 4.33.0 - resolution: "@tanstack/query-async-storage-persister@npm:4.33.0" + version: 4.35.3 + resolution: "@tanstack/query-async-storage-persister@npm:4.35.3" dependencies: - "@tanstack/query-persist-client-core": 4.33.0 - checksum: 3f818d3f344b32ae5716460b17f484d8ef5f264c6eda8d2113373056904790915a2cd656f2cc2e798447a95fbfa89158e5e4b4e37107a9f1b84b606601e4e436 + "@tanstack/query-persist-client-core": 4.35.3 + checksum: 694ea2621bf5ddeecfd6d473fb6cc2815939e93d8e78747b53af36b2f54f455275630bbb75953233fdcf6311bccbc401f43cc664146329c473f4a02d861bf038 languageName: node linkType: hard -"@tanstack/query-core@npm:4.33.0": - version: 4.33.0 - resolution: "@tanstack/query-core@npm:4.33.0" - checksum: fae325f1d79b936435787797c32367331d5b8e9c5ced84852bf2085115e3aafef57a7ae530a6b0af46da4abafb4b0afaef885926b71715a0e6f166d74da61c7f +"@tanstack/query-core@npm:4.35.3": + version: 4.35.3 + resolution: "@tanstack/query-core@npm:4.35.3" + checksum: 0184cd19a26c4f96d05bbebd7966866741d46e5be19ac99d8cd6e5bbeb6550f257e7b52b674fb2673190696e113dd601422d196bf4870b58b4d2e2edf4307e92 languageName: node linkType: hard -"@tanstack/query-persist-client-core@npm:4.33.0": - version: 4.33.0 - resolution: "@tanstack/query-persist-client-core@npm:4.33.0" +"@tanstack/query-persist-client-core@npm:4.35.3": + version: 4.35.3 + resolution: "@tanstack/query-persist-client-core@npm:4.35.3" dependencies: - "@tanstack/query-core": 4.33.0 - checksum: c80e2805061da3c497504a6132d273fc351ef94b4685c0da5658fe25f759f692fad2c752f9f8af17c47edcf9ce9064f3f44d2b99d03f011345d8450b1bb940d5 + "@tanstack/query-core": 4.35.3 + checksum: c48f33936216e0ddbeb7fb0ed4242bb24a4086f4d719547a0f12461293a039b6fc9586056f5d3d8894c2043a014a614f155af8705f539edea633f7403ff7f5b6 languageName: node linkType: hard "@tanstack/query-sync-storage-persister@npm:^4.27.1": - version: 4.33.0 - resolution: "@tanstack/query-sync-storage-persister@npm:4.33.0" + version: 4.35.3 + resolution: "@tanstack/query-sync-storage-persister@npm:4.35.3" dependencies: - "@tanstack/query-persist-client-core": 4.33.0 - checksum: ad949f94e18b5188de363e780cf99e738d8468dafff72345f464e784b493f774dffbaa554122306a8fd81f9965de58588a2cf4f940d52e77b2ca4346a650aed9 + "@tanstack/query-persist-client-core": 4.35.3 + checksum: 17865d295d6f7092642adf8282174c059ae459226f84ccf90c4de9d0f7e1116e1db8da7e0ad2e9ebd9acba90057b673703bf4cc22bbf3813bc4bdccdfb3b6973 languageName: node linkType: hard "@tanstack/react-query-devtools@npm:^4.24.4": - version: 4.33.0 - resolution: "@tanstack/react-query-devtools@npm:4.33.0" + version: 4.35.3 + resolution: "@tanstack/react-query-devtools@npm:4.35.3" dependencies: "@tanstack/match-sorter-utils": ^8.7.0 superjson: ^1.10.0 use-sync-external-store: ^1.2.0 peerDependencies: - "@tanstack/react-query": ^4.33.0 + "@tanstack/react-query": ^4.35.3 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: f8160f95363c67223a1da802e1f396d27006ab4eb098ba84fb1e84a43ab197153840b0404d0fedea3cdfd20efa08aefa26ada1d7664ce53e6c0de8dc686b211b + checksum: 59495f9dabdb13efa780444de9b4c89cc34528109da1fe993f2f710a63959a73acb250f50c6a120d11d0e34006582f9913a448c8f62a0a2d0e9f72a733129d7a languageName: node linkType: hard "@tanstack/react-query-persist-client@npm:^4.28.0": - version: 4.33.0 - resolution: "@tanstack/react-query-persist-client@npm:4.33.0" + version: 4.35.5 + resolution: "@tanstack/react-query-persist-client@npm:4.35.5" dependencies: - "@tanstack/query-persist-client-core": 4.33.0 + "@tanstack/query-persist-client-core": 4.35.3 peerDependencies: - "@tanstack/react-query": ^4.33.0 - checksum: 403de6e6659d87f21ee4412e7e8e15b32cbcf5adcb7d340b93c890321fa8a88f7681690774c6e5253d28227869f01b170a32d23bd0ed8870fbd109890ee5fa9f + "@tanstack/react-query": ^4.35.3 + checksum: ed26363815527f44893ea7fba5b57dcc605ee9d59cc444d691211029596aec131f14aad9a03915ad6380402835c5a1fc06ca38209fbd7498b24d543fa4fd8f45 languageName: node linkType: hard "@tanstack/react-query@npm:^4.2.1": - version: 4.33.0 - resolution: "@tanstack/react-query@npm:4.33.0" + version: 4.35.3 + resolution: "@tanstack/react-query@npm:4.35.3" dependencies: - "@tanstack/query-core": 4.33.0 + "@tanstack/query-core": 4.35.3 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -1933,13 +2044,13 @@ __metadata: optional: true react-native: optional: true - checksum: b3cf4afa427435e464e077b3f23c891e38e5f78873518f15c1d061ad55f1464d6241ecd92d796a5dbc9412b4fd7eb30b01f2a9cfc285ee9f30dfdd2ca0ecaf4b + checksum: 4d7e4e6a8466095848d2924fdbcd2d22a36b53e2d0f79a7dec121c8d7af36ff857b1bae5a7b802f3a399922c9c9f38f2a06372b1fc7b1d5de960e78fa1d3d722 languageName: node linkType: hard "@testing-library/dom@npm:^9.0.0": - version: 9.3.1 - resolution: "@testing-library/dom@npm:9.3.1" + version: 9.3.3 + resolution: "@testing-library/dom@npm:9.3.3" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 @@ -1949,7 +2060,7 @@ __metadata: dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: 8ee3136451644e39990edea93709c38cf1e8ce5306f3c66273ca00935963faa51ca74e8d92b02eb442ccb842cfa28ca62833e393e075eb269cf9bef6f5600663 + checksum: 34e0a564da7beb92aa9cc44a9080221e2412b1a132eb37be3d513fe6c58027674868deb9f86195756d98d15ba969a30fe00632a4e26e25df2a5a4f6ac0686e37 languageName: node linkType: hard @@ -1984,221 +2095,221 @@ __metadata: languageName: node linkType: hard -"@tiptap/core@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/core@npm:2.1.7" +"@tiptap/core@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/core@npm:2.1.11" peerDependencies: "@tiptap/pm": ^2.0.0 - checksum: c27ae355534a66b13e1235a952695bee617d34ff6d45e3605b86d5c087d98ff1d7393d2340d27dc9ae78e7ba0101f5f50e47a01239c4401d793169de52596733 + checksum: 6c02506a0a15a41a51426135a3311c2728dec019c92fdcf5ffd3a94f1ae07574f617dfc7cb23ac535177da96519128168f675a792562457841ae988c1f1bcbca languageName: node linkType: hard -"@tiptap/extension-blockquote@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-blockquote@npm:2.1.7" +"@tiptap/extension-blockquote@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-blockquote@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: c8634de2616ba8324b3285cc8692118d31c706e7cf4997c728b201e7632686ca3854199e00d19801d7a07a791193df31f465a95e59a9e8bd228f8ca9aa93b785 + checksum: 89bb81e81af1a5bf98135aadf3f78efcbb9006a6d99b36956aa2f94a705e74823a1fc502023abea2c9176156eeb3074c358ecd229cf7cd27dc1451128f9ecde6 languageName: node linkType: hard -"@tiptap/extension-bold@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-bold@npm:2.1.7" +"@tiptap/extension-bold@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-bold@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 3dbcf9f83e05ba98e80cc24d5f599190e362fe285c4446dad901d75346d0c13ec2e4e4137f31923ae7e576dab28d20ff273f472ad290ed8816843b8f7297785e + checksum: 8ef818f57ebdf2507325779778281e89ec58925ffe803b2d11666e7eddc12a6d5bdd4e2cb159d863befa3340cee9bde263990415c42a633e2388cf10b73122b3 languageName: node linkType: hard -"@tiptap/extension-bubble-menu@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-bubble-menu@npm:2.1.7" +"@tiptap/extension-bubble-menu@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-bubble-menu@npm:2.1.11" dependencies: tippy.js: ^6.3.7 peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 4fa71037168275357d883ce58585185b5e1574a74b113d2e556d66b7b838907f4d9022e235e07d662646fa80732c9991a4ed796677d727a8d64acf3dcf2054a7 + checksum: f1adf07bae5181ee6014488f31c5306feecf3ee7150560e62dfd6214d89f76bf6665391fe8dea52a35c81b6b78989742a2842f8982d1826564417845f02e8efe languageName: node linkType: hard -"@tiptap/extension-bullet-list@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-bullet-list@npm:2.1.7" +"@tiptap/extension-bullet-list@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-bullet-list@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 22701a1d39237df2f9f0eee69886488a7f1d3de2857a0ee4bdae1fa4a228d1a8c7d8c7558e1ab34b872f4f917bb6f81866e9a4f1029e0db80033cb6fbd936c15 + checksum: 75977e462f1681c44305820b559ecebdbdbad2aff487bd216ce467d349e02e40242f2a78dd1da758090da08e5e87bd32a8cc52d07344b6ca83236fd06f0735e0 languageName: node linkType: hard -"@tiptap/extension-code-block@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-code-block@npm:2.1.7" +"@tiptap/extension-code-block@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-code-block@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 7006243fcff93d5a70b8f168761076771134e16e7ec3155633857138970cdd256f31b8825edf081e57e6c68b3c858ba7c45e0253139c8466a88fbad8d5074802 + checksum: 208f9c9ad9811dedd677bf39731bbe20acf933a8215e7355f201c6ff6d5a2955f5fe4530b56e9042a656978d5c7fc009a067cedbd028d0b0a3447c808726312f languageName: node linkType: hard -"@tiptap/extension-code@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-code@npm:2.1.7" +"@tiptap/extension-code@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-code@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 3f53aa40ae32b3945bbe1101b41b1d3f6d003e4267600e12adec6dcfce9c5e5d10583d75b27493095941242008bbe54fd2628507ecdf4552a47e1cd9807f0dea + checksum: 766417e2f9b40271f8bfed5515d92405712942f599887e42484d6320acb407017a3b52e3b2129a6fcd24ff38a1dfad2549b449c683cd03d44dbae2a38d777fdc languageName: node linkType: hard -"@tiptap/extension-document@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-document@npm:2.1.7" +"@tiptap/extension-document@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-document@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: c11ad64c162e5f4a6fc582927a60b173900ef134fe217e7193bc5447637e874c8a7626bf16a20a274229db44229ee5f6f3f29efb7cbe5351959f62ff6331abcb + checksum: f5dcb618f4db6c65d24aedd45a6b740835c480e2d163d62bacee9e3135cd9e26c23365fb9097434ecdb5dfc3a992a520ac132d9c13b47ae99e98729ac607d60d languageName: node linkType: hard -"@tiptap/extension-dropcursor@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-dropcursor@npm:2.1.7" +"@tiptap/extension-dropcursor@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-dropcursor@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 32b7b626dc132b45689b2e40c53e5859c909942b8c70f7c0b9ded41f3d6f3f907dadd9e1358439b0b6475e0828d12e2f7be48d6dbb41d747da0df316f38df4ce + checksum: 0b609a06bded8d14ba32bd81b9366ae7459afa39742f5cf229d9a80d563d84ae1e9f67e344374cf484cd3fb4e889be60b915cd7995941af036df4ffe32ba2bd3 languageName: node linkType: hard -"@tiptap/extension-floating-menu@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-floating-menu@npm:2.1.7" +"@tiptap/extension-floating-menu@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-floating-menu@npm:2.1.11" dependencies: tippy.js: ^6.3.7 peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: d451c22fe53a119a8a061b4ad88bdf97e6ce6130d2e795ad4e668f4b8b42285b44012839b75b01e071a4a3352fc833149eb1fc442a4afaafc4128d8e562ccc5f + checksum: 3b217e8a4f1158bdac64306a4681a227a334fe978e3d40dd6dc3956f859948ad3844d77557070c6461b6ae5029f18723b0f3cbc2bb405cc1584a752d9f21c578 languageName: node linkType: hard -"@tiptap/extension-gapcursor@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-gapcursor@npm:2.1.7" +"@tiptap/extension-gapcursor@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-gapcursor@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: bff0c6c9c35b6cd58c17c0824bf04e56b2e3f21b0daa60b82093e0ef86de8fb3f2d4bdcac24a5045e08f8ca501f50632f07cc7e255848b8f1cd1da62ce9f12e8 + checksum: d321e34b40b92ce1cdb708bf72a2af6ac9401d3224445997a20c0d0597293b950e478b61804be3d745bc99886fac756c72cd58a8c8c8b7fa710f356582c8246f languageName: node linkType: hard -"@tiptap/extension-hard-break@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-hard-break@npm:2.1.7" +"@tiptap/extension-hard-break@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-hard-break@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 44e68ac957e12bf84322cea0f0469f812df946f218952ecb0eb8994064e4773c4329b51c87b9ce7742e01f2236e937374b289af7246df5c5ea4c6d2149c5c288 + checksum: 09d48a8e87a2aecb59a5d6cc3679b38a0c13d471615de7c997532d3f63e8d59451b09ebfac08b3f0ff0557ffb919bd1a5ec2c0ca58e809a9ca0a764a79ec1b41 languageName: node linkType: hard -"@tiptap/extension-heading@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-heading@npm:2.1.7" +"@tiptap/extension-heading@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-heading@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: eae9ac634d7ac5b6589ebc50875051849394cbccb41a541dff7c47ef5b9101805b6e6a5b1507d38188d40f43c8b7cb7816a336c24addf694786727bf32451515 + checksum: bac52ece7d7fe62547f0476e2a326957104a9fdab37db74dddecac5b914337e9f64721ad2d28613185649d5bdc45cd3b97476c8b86e2cbd88f05fe075f9fa2e7 languageName: node linkType: hard -"@tiptap/extension-history@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-history@npm:2.1.7" +"@tiptap/extension-history@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-history@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 52ee7bfcb1cbfe19c5f6eef54539fb3ccb31f89fcad2f4645e2b74023bc27455236728e1b9af6e8724be38e90d1d4a9a74ec9b03bc064d0152740f3d8dcdf4fc + checksum: 3c0a035edc34d7cde77f1511ebc60a38bd28c22b9aeed2bf90488291e00e4d6b021e84ce9f4bcd2d27eb105cc2503638a4609c89952dff86e9b9f32f5e74b3ce languageName: node linkType: hard -"@tiptap/extension-horizontal-rule@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-horizontal-rule@npm:2.1.7" +"@tiptap/extension-horizontal-rule@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-horizontal-rule@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 8181d0d5e2bf6dd9dd6bcfed23990b072dfe8b32c166f1f2a23993a3bbaec832032c9dafdab81a6c722fde5587506aaccdc0d50c3fbfff115ce0e5ac40e62d91 + checksum: 58d2a6a6251756bcef5b5dbca61bc35b85746f532f6e5f91802dbbdb34eb6e3272e26a18acb09e72ec4aeadb6a197b731d7d020e57afdf22ad9a9ecaa82ecd95 languageName: node linkType: hard -"@tiptap/extension-italic@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-italic@npm:2.1.7" +"@tiptap/extension-italic@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-italic@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 058f334567b12d0d68977f2b96d93ea819b80d4aa33aa6fafdeb02e9a0ced27ee50782c10950e98ba1f0cba1f99be84662da5b8ee4e14c29ddbb46a8c6b2c349 + checksum: bb9e7bfa74521911867d882c81632923bd9dffd11e81f56b3fbe11a108e777d8cc4a882d997976546dfc2cbffb9396577296a0f7d37c1dc9e2d5d2e8a6ff6edf languageName: node linkType: hard "@tiptap/extension-link@npm:^2.0.4": - version: 2.1.7 - resolution: "@tiptap/extension-link@npm:2.1.7" + version: 2.1.11 + resolution: "@tiptap/extension-link@npm:2.1.11" dependencies: linkifyjs: ^4.1.0 peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 - checksum: 82486299d71945fa4de3aa3f8de73b9ee9502830e7a6673234b9d8d8c609add3321e3e8f445f9990b87b274000c18c438fcb5fd147dd6e39c7e66e7441d7873e + checksum: 59fce6459742728c9e039e945b4bbe33d23097a0d92ae03c2fdf1d189d3402583382aa602c24b59133da51f6f3d1b61b9c45fb4e27735521e99cf366f4a6724b languageName: node linkType: hard -"@tiptap/extension-list-item@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-list-item@npm:2.1.7" +"@tiptap/extension-list-item@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-list-item@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: f5a6564194a44959b46c65886ba985fd78729192461e68c8135d2b73c75ec59e991716d735e34bba2db3dd427e1bb903e0d9b1d35de0fb78598c7bbce2ee548b + checksum: 9266fb7519394e93a9a8d25a72e34c2c65bde0d8cc62396e22bcb029e4d1f404d050f78241f25a9e15a3ca649bf891b2f42dbe44576c95eb731494cf21f76ce5 languageName: node linkType: hard -"@tiptap/extension-ordered-list@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-ordered-list@npm:2.1.7" +"@tiptap/extension-ordered-list@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-ordered-list@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 8b026cba45e1114583e4109fdbb87d05412a57b6128ec84878b9fad9c7333970f92aa8dc49474c67978a506281cf62224b65f605ce1e800cab11834d0811a93e + checksum: 66afcb2762391a065e9c1da94f90d001ac3404b9e3be12c32ffa17b40e9ccacce65eaa63fc90ff6d0d325cf62243a721670e64d70497f2913631b136d0bcd69e languageName: node linkType: hard -"@tiptap/extension-paragraph@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-paragraph@npm:2.1.7" +"@tiptap/extension-paragraph@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-paragraph@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: c52480a40f458ebf02986f5387c87238fd931e269c54e9c2b3d02a53d0b2eb95f68a4dfaa06f475768e03083342641b30d813dea82b91abd360ddfb021d29461 + checksum: dd1685fd879662026d5da6641da842ca161fb0e517b89ade8ba8282869a0aec657f3b609ef0f26404c9ae6346152a60d2cd55525d541174d3b3d0a89d061afff languageName: node linkType: hard -"@tiptap/extension-strike@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-strike@npm:2.1.7" +"@tiptap/extension-strike@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-strike@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: 8932f89865d174b6d6d79d8fc28f94e20a866efcaa73890e6666bb5510fca8ac23431afe526bd8814882ddd35ea8082a282563210d04200f1c2c745927f01824 + checksum: bd799b3da1954246fb2cec16ed96fab532ee5c52dc364989e02545be989c7a6cd5179edae94d30c0ea7505c3bd8ff56453b314519b5c7e01efb8451047c9d793 languageName: node linkType: hard -"@tiptap/extension-text@npm:^2.1.7": - version: 2.1.7 - resolution: "@tiptap/extension-text@npm:2.1.7" +"@tiptap/extension-text@npm:^2.1.11": + version: 2.1.11 + resolution: "@tiptap/extension-text@npm:2.1.11" peerDependencies: "@tiptap/core": ^2.0.0 - checksum: f5768aaec45128ac4f374d1c105248834a4571b3496eafcfd61db895240511e5b95497815bba23e742375f47d5f45f768e4911f0073a92e04d9b0f080869264f + checksum: 4ca0694cdecd95fabcfa2e1872d72f681a9c9497026bcec01e17c3a3572a0a5089e5466a9b6ea90bb6bfd15bf123ea38f48c7e1290ae25dae0df6ba27be004ca languageName: node linkType: hard "@tiptap/pm@npm:^2.0.4": - version: 2.1.7 - resolution: "@tiptap/pm@npm:2.1.7" + version: 2.1.11 + resolution: "@tiptap/pm@npm:2.1.11" dependencies: prosemirror-changeset: ^2.2.0 prosemirror-collab: ^1.3.0 @@ -2218,49 +2329,49 @@ __metadata: prosemirror-trailing-node: ^2.0.2 prosemirror-transform: ^1.7.0 prosemirror-view: ^1.28.2 - checksum: 8de62f8400c92da50235b9c995c7e6c5e315835476884809d3552f47a3bb0d7df0b462098904b204e6ac5b0b0e8057d85c1d3ad06107049f9229c336fd64a915 + checksum: abfd77d1e30438e4cdb243ca97eaed9a9960bc9ffbd0ee41763c6f793bb2889481b3bd8d8c0ec6ac0a920736c0fb659a1957fbcad11d1c0a6bd70a93227f0e65 languageName: node linkType: hard "@tiptap/react@npm:^2.0.4": - version: 2.1.7 - resolution: "@tiptap/react@npm:2.1.7" + version: 2.1.11 + resolution: "@tiptap/react@npm:2.1.11" dependencies: - "@tiptap/extension-bubble-menu": ^2.1.7 - "@tiptap/extension-floating-menu": ^2.1.7 + "@tiptap/extension-bubble-menu": ^2.1.11 + "@tiptap/extension-floating-menu": ^2.1.11 peerDependencies: "@tiptap/core": ^2.0.0 "@tiptap/pm": ^2.0.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - checksum: 4ba79776d6042ce068959aa69fe93450879b1c5dfad8f68205e10c9b3a7bd9c7b705c1a787306766c2a577ddfb015c8024bd5cd4d34a6db4afb81446ed8a140c + checksum: c018caca9708d14ee024f6c49ff3d186a63df5d12bf40c4a7b3cd14f48a1c8564507b2a44092575df63fac36deca6455951209c8f03fccbd06ea7280f00c0906 languageName: node linkType: hard "@tiptap/starter-kit@npm:^2.0.4": - version: 2.1.7 - resolution: "@tiptap/starter-kit@npm:2.1.7" + version: 2.1.11 + resolution: "@tiptap/starter-kit@npm:2.1.11" dependencies: - "@tiptap/core": ^2.1.7 - "@tiptap/extension-blockquote": ^2.1.7 - "@tiptap/extension-bold": ^2.1.7 - "@tiptap/extension-bullet-list": ^2.1.7 - "@tiptap/extension-code": ^2.1.7 - "@tiptap/extension-code-block": ^2.1.7 - "@tiptap/extension-document": ^2.1.7 - "@tiptap/extension-dropcursor": ^2.1.7 - "@tiptap/extension-gapcursor": ^2.1.7 - "@tiptap/extension-hard-break": ^2.1.7 - "@tiptap/extension-heading": ^2.1.7 - "@tiptap/extension-history": ^2.1.7 - "@tiptap/extension-horizontal-rule": ^2.1.7 - "@tiptap/extension-italic": ^2.1.7 - "@tiptap/extension-list-item": ^2.1.7 - "@tiptap/extension-ordered-list": ^2.1.7 - "@tiptap/extension-paragraph": ^2.1.7 - "@tiptap/extension-strike": ^2.1.7 - "@tiptap/extension-text": ^2.1.7 - checksum: f89fd425c128131d77750f4414bcf33a9c3ee0c0e58a8c149bbbde68bb0fcba8fe5215978d9e38e131c668ea11a4f03be139c6e981e763227a99906405ec9696 + "@tiptap/core": ^2.1.11 + "@tiptap/extension-blockquote": ^2.1.11 + "@tiptap/extension-bold": ^2.1.11 + "@tiptap/extension-bullet-list": ^2.1.11 + "@tiptap/extension-code": ^2.1.11 + "@tiptap/extension-code-block": ^2.1.11 + "@tiptap/extension-document": ^2.1.11 + "@tiptap/extension-dropcursor": ^2.1.11 + "@tiptap/extension-gapcursor": ^2.1.11 + "@tiptap/extension-hard-break": ^2.1.11 + "@tiptap/extension-heading": ^2.1.11 + "@tiptap/extension-history": ^2.1.11 + "@tiptap/extension-horizontal-rule": ^2.1.11 + "@tiptap/extension-italic": ^2.1.11 + "@tiptap/extension-list-item": ^2.1.11 + "@tiptap/extension-ordered-list": ^2.1.11 + "@tiptap/extension-paragraph": ^2.1.11 + "@tiptap/extension-strike": ^2.1.11 + "@tiptap/extension-text": ^2.1.11 + checksum: 92fa32fade8018782967cf178660b415935c5843486c7937f1ccf9c7280b21dd879fdafa70830b0a6f612ca0224cbbd70d025a54eaeba64247089edb8923055c languageName: node linkType: hard @@ -2291,49 +2402,49 @@ __metadata: languageName: node linkType: hard -"@trpc/client@npm:^10.29.1": - version: 10.37.1 - resolution: "@trpc/client@npm:10.37.1" +"@trpc/client@npm:^10.37.1": + version: 10.38.4 + resolution: "@trpc/client@npm:10.38.4" peerDependencies: - "@trpc/server": 10.37.1 - checksum: 82fefed08717f7bf59a9013387c69a990de1d35c142519e1e8f29472cb8d16b6ce4d530d20d336e4a371993d93663e4ff7a86d1652a500a97e0632324df2e899 + "@trpc/server": 10.38.4 + checksum: 017f61d8cea5362d565ba5c935fbf2dcf32e3478bafc52583053685a454a16da6cc8f577454ca3a2fe032eabc472848ba87c3be144c71f19c419a1a6b19a7114 languageName: node linkType: hard -"@trpc/next@npm:^10.29.1": - version: 10.37.1 - resolution: "@trpc/next@npm:10.37.1" +"@trpc/next@npm:^10.37.1": + version: 10.38.4 + resolution: "@trpc/next@npm:10.38.4" dependencies: react-ssr-prepass: ^1.5.0 peerDependencies: "@tanstack/react-query": ^4.18.0 - "@trpc/client": 10.37.1 - "@trpc/react-query": 10.37.1 - "@trpc/server": 10.37.1 + "@trpc/client": 10.38.4 + "@trpc/react-query": 10.38.4 + "@trpc/server": 10.38.4 next: "*" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: b114d7552e8aa505c470df6a7280f7847297d8f66e67951028259eeedb7cc6ee9d2c7cbe3146875c56c6f167b2dd909c913c03982782a33421746898da92e196 + checksum: 28d020d42221d69848a49038604d7e36e0b1bcc48b95ff794eb9787d1e0001e453477290e1020839c0080d1f5cfef33d27a6aaa84699eebfddcf01007d74138b languageName: node linkType: hard -"@trpc/react-query@npm:^10.29.1": - version: 10.37.1 - resolution: "@trpc/react-query@npm:10.37.1" +"@trpc/react-query@npm:^10.37.1": + version: 10.38.4 + resolution: "@trpc/react-query@npm:10.38.4" peerDependencies: "@tanstack/react-query": ^4.18.0 - "@trpc/client": 10.37.1 - "@trpc/server": 10.37.1 + "@trpc/client": 10.38.4 + "@trpc/server": 10.38.4 react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: c9047293041d36d833086782b837a2b9fefcb44329f2288e19acf38c4f3c38dc3c347bc8308286efb8b6f74538839aa637451f70b979de6e06503cf78d4af16e + checksum: 4d6e58eb262322d46e326839564a96c5bff7847fefed9442c8544ef46d6af07d096613ff147b964760b1162fb13fea6ac08e16580169c156f12293cb626fb1cd languageName: node linkType: hard -"@trpc/server@npm:^10.29.1": - version: 10.37.1 - resolution: "@trpc/server@npm:10.37.1" - checksum: 0945bc60e1966f57c5944451a9a24b9d565f50e125e71369882379e6580de4ed2e2575a78c474709876d5e2e849fe0e133658c045484a230158516f59f23d7d7 +"@trpc/server@npm:^10.37.1": + version: 10.38.4 + resolution: "@trpc/server@npm:10.38.4" + checksum: 9cb1ad5395d5ab059a76209f61d6922d1dee3de5fe412417f3fe28c46e29914a20e0342ec3d9798f24a6b37ff7771263bb797be2962f09f1ee6a92f118417c82 languageName: node linkType: hard @@ -2392,26 +2503,76 @@ __metadata: linkType: hard "@types/aria-query@npm:^5.0.1": - version: 5.0.1 - resolution: "@types/aria-query@npm:5.0.1" - checksum: 69fd7cceb6113ed370591aef04b3fd0742e9a1b06dd045c43531448847b85de181495e4566f98e776b37c422a12fd71866e0a1dfd904c5ec3f84d271682901de + version: 5.0.2 + resolution: "@types/aria-query@npm:5.0.2" + checksum: 19394fea016e72da39dd5ef1cf1643e3252b7ee99d8f0b3a8740d3b72f874443fc1e00a41935b36fdfaf92cd735d4ae10dc5d6ab8f1192527d4c0471bb8ff8e4 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.20.2": + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: 564fbaa8ff1305d50807ada0ec227c3e7528bebb2f8fe6b2ed88db0735a31511a74ad18729679c43eeed8025ed29d408f53059289719e95ab1352ed559a100bd + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.5 + resolution: "@types/babel__generator@npm:7.6.5" + dependencies: + "@babel/types": ^7.0.0 + checksum: c7459f5025c4c800eaf58f4db3b24e9d736331fe7df40961d9bc49f31b46e2a3be83dc9276e8688f10a5ed752ae153ad5f1bdd45e2245bac95273730b9115ec2 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.2 + resolution: "@types/babel__template@npm:7.4.2" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: 0fe977b45a3269336c77f3ae4641a6c48abf0fa35ab1a23fb571690786af02d6cec08255a43499b0b25c5633800f7ae882ace450cce905e3060fa9e6995047ae + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*": + version: 7.20.2 + resolution: "@types/babel__traverse@npm:7.20.2" + dependencies: + "@babel/types": ^7.20.7 + checksum: 981340286479524436348d32373eaa3bf993c635cbf70307b4b69463eee83406a959ac4844f683911e0db8ab8d9f0025ab630dc7a8c170fee9ee74144c2a528f languageName: node linkType: hard "@types/bcryptjs@npm:^2.4.2": - version: 2.4.2 - resolution: "@types/bcryptjs@npm:2.4.2" - checksum: 220dade7b0312b41e23ccfb15f2ddde7804eb3c7ef41db41a6c49054be1e19a15eb3dd8c8ef196494f0866307cce22ad6f3f272941387124707d81dc66155bbc + version: 2.4.4 + resolution: "@types/bcryptjs@npm:2.4.4" + checksum: 7c8a50e0dec58bd391bf65b41c1422ac61c5f71d5adaa9a002c10368b64f4b1a9a0628f29b43dfd1fa0353b671b2cb1c11e27c5658877527ebad6d3c3f50e2b2 + languageName: node + linkType: hard + +"@types/better-sqlite3@npm:^7.6.5": + version: 7.6.5 + resolution: "@types/better-sqlite3@npm:7.6.5" + dependencies: + "@types/node": "*" + checksum: 3999d79378b35f793b89d089b18866922dcc225a24c7218caf3d81ab0b3510cf2a9b88782c6aee8c9c98690e1c5fe72047752172bcb8db1361bb0eb0399ff59f languageName: node linkType: hard "@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" + version: 1.19.3 + resolution: "@types/body-parser@npm:1.19.3" dependencies: "@types/connect": "*" "@types/node": "*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 + checksum: 932fa71437c275023799123680ef26ffd90efd37f51a1abe405e6ae6e5b4ad9511b7a3a8f5a12877ed1444a02b6286c0a137a98e914b3c61932390c83643cc2c languageName: node linkType: hard @@ -2437,18 +2598,28 @@ __metadata: linkType: hard "@types/chai@npm:*, @types/chai@npm:^4.3.5": - version: 4.3.5 - resolution: "@types/chai@npm:4.3.5" - checksum: c8f26a88c6b5b53a3275c7f5ff8f107028e3cbb9ff26795fff5f3d9dea07106a54ce9e2dce5e40347f7c4cc35657900aaf0c83934a25a1ae12e61e0f5516e431 + version: 4.3.6 + resolution: "@types/chai@npm:4.3.6" + checksum: 32a6c18bf53fb3dbd89d1bfcadb1c6fd45cc0007c34e436393cc37a0a5a556f9e6a21d1e8dd71674c40cc36589d2f30bf4d9369d7787021e54d6e997b0d7300a + languageName: node + linkType: hard + +"@types/clean-css@npm:*": + version: 4.2.7 + resolution: "@types/clean-css@npm:4.2.7" + dependencies: + "@types/node": "*" + source-map: ^0.6.0 + checksum: c6f5fb7bd700d5fa488f0d2a4e7e6f5220c305d186976093b5bace2361590659dcd355c2bf54315840e9bf4423e41d90f303dd0762719b42d04af2089e1d7e49 languageName: node linkType: hard "@types/connect@npm:*": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" + version: 3.4.36 + resolution: "@types/connect@npm:3.4.36" dependencies: "@types/node": "*" - checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641 + checksum: 4dee3d966fb527b98f0cbbdcf6977c9193fc3204ed539b7522fe5e64dfa45f9017bdda4ffb1f760062262fce7701a0ee1c2f6ce2e50af36c74d4e37052303172 languageName: node linkType: hard @@ -2460,35 +2631,35 @@ __metadata: linkType: hard "@types/cookies@npm:^0.7.7": - version: 0.7.7 - resolution: "@types/cookies@npm:0.7.7" + version: 0.7.8 + resolution: "@types/cookies@npm:0.7.8" dependencies: "@types/connect": "*" "@types/express": "*" "@types/keygrip": "*" "@types/node": "*" - checksum: d3759efc1182cb0651808570ae13638677b67b0ea724eef7b174e58ffe6ea044b62c7c2715e532f76f88fce4dd8101ed32ac6fbb73226db654017924e8a2a1e6 + checksum: 7945b0cfe370bf1f05a1f328c9eba55333dac1bb9d7efa3148b107c260ab924263546351f9fd168daa72948d195464d395319a24477995f9f887a3a99fbcb5b5 languageName: node linkType: hard "@types/d3-color@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/d3-color@npm:2.0.3" - checksum: b4a963b15f4fe0e7e49b0898df3e51b46392d91c21038b7ec61aef0f13e04bd7bcfebf06c9fad9ee92317c9682a105e18942c9295a7e2715855622d4d6fc415a + version: 2.0.4 + resolution: "@types/d3-color@npm:2.0.4" + checksum: 293495460e5733d3f87de7926a1f0bfdeb7bfded5cbe8b93aaeb9fa84056208de9224b8a64b641592cce66b1450357e3eed393d36b19afbfeee0eab6d106f3ee languageName: node linkType: hard "@types/d3-delaunay@npm:^5.3.0": - version: 5.3.1 - resolution: "@types/d3-delaunay@npm:5.3.1" - checksum: bf0f15b7e2b305974fe4a62315b95339eee9ebc46cbdaf1c439927aab0ece8e8664e875fe4a84607e195ae8ddf35c747d54c8bef07d19f925b7172528032f215 + version: 5.3.2 + resolution: "@types/d3-delaunay@npm:5.3.2" + checksum: 6c083027af120e90d05bdb3a8c488c4819b721560d1b79a66e626feadfe914fdf924eed409d25baece25e1a6ad430d4b327c57eea7b42fd771f4eb461e906f6e languageName: node linkType: hard "@types/d3-format@npm:^1.4.1": - version: 1.4.2 - resolution: "@types/d3-format@npm:1.4.2" - checksum: aa70d25a3e2010bf3979044b438b8c387e6749a30d1cd95a37eac90e378a7b70bba4a6cce426d18dc936c95a95afe3b2efd2bb3c9a14bf0ce165a5b72f0aa09f + version: 1.4.3 + resolution: "@types/d3-format@npm:1.4.3" + checksum: cb08cb2d4eb7c6f4230bfdaa82278cb8e6f311b5e33f983ea92633e3d77310cc35ca9b87a00faed3c9a9f96a677ba8a0a3191986c4700ec1f552a181e404d14c languageName: node linkType: hard @@ -2507,116 +2678,141 @@ __metadata: linkType: hard "@types/d3-scale@npm:^3.2.3": - version: 3.3.2 - resolution: "@types/d3-scale@npm:3.3.2" + version: 3.3.3 + resolution: "@types/d3-scale@npm:3.3.3" dependencies: "@types/d3-time": ^2 - checksum: 65dbf85f07a4d6ac26396075b0faa1930cfebb96dc248629d4b82c22457c89161d0f070f9a5554adccee80b959e2c6d7c1ef6b7355743afe91050d71014fe3cf + checksum: 3c94674e7a63f7d06eb19436b522957f967f80d4ebce4c90c529b38c59e87af96fae2d23a3ad46e195cdab3e8a176d314f569a511dd0471f2b87ff92c554b0ba languageName: node linkType: hard "@types/d3-shape@npm:^2.0.0": - version: 2.1.3 - resolution: "@types/d3-shape@npm:2.1.3" + version: 2.1.4 + resolution: "@types/d3-shape@npm:2.1.4" dependencies: "@types/d3-path": ^2 - checksum: d0855a1e2c11a4ab23367c86ef0cc104e12bf216f2c007fa5955da7179b60b0426d0e9ddbbbdf93d4342e7dd24c7bcfc3a2bc6258744e03fc44ca460a063dcc3 + checksum: 095f2b7e43c4c2dd419ae181235aa1b257f17c5aec17fb7b4d63eaa7d3a765b525139d86e3ca64561caff76618fc9bc2b0ce32a70895bfea1fe18d4099b5ffeb languageName: node linkType: hard "@types/d3-time-format@npm:^2.3.1": - version: 2.3.1 - resolution: "@types/d3-time-format@npm:2.3.1" - checksum: 4c22f0454abc374a5a830ba6b84bed021a276cba44ad3ac0d611d1e152dc00ed54af62ce6f431675a2ea5f37f5ce86c05b096420a068caf855b989b269b68deb + version: 2.3.2 + resolution: "@types/d3-time-format@npm:2.3.2" + checksum: a47011afa48a6edbc94c0d39515b66b15911df424b13a5d6fb0f951868b3f01601d19a707c97d8c86158042e9f44c13ee5e7117212521b61812aebe883b180d1 languageName: node linkType: hard "@types/d3-time-format@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/d3-time-format@npm:3.0.1" - checksum: 9ec9156a6facb3e347db3b438938eaac5775a711916fe3667c883431df9b7bcf5d8fcbca7f538b7f0775d8b092c9cf18fe9c0deb7b1a9aa97fb675382a94c88b + version: 3.0.2 + resolution: "@types/d3-time-format@npm:3.0.2" + checksum: 170dee027bc50458f0c92280d7fc2a4eca939fa6c6a7abedd68e11fe897e03a8010cdf64302f8b93e71682454e510ddb3ac752a54d5c7e50776baea4d9a266d1 languageName: node linkType: hard "@types/d3-time@npm:^1.1.1": - version: 1.1.1 - resolution: "@types/d3-time@npm:1.1.1" - checksum: 5c859a2219fd9d4eeac7962eb981b6bb99a23044286fe093b247a98c72b4fe0ccd635cb0e9c4e4454fe56b8e655a26a414d3dd79bcb2074400ad6c2b1e78b633 + version: 1.1.2 + resolution: "@types/d3-time@npm:1.1.2" + checksum: 2ff13b405f18dd58328089ca1a1d20b9ba78bb3b2347ca6051e466fc5b661662cba522e1d64d9a3372c5c2e901da683e4cb85e985fe46cdae5b2bab0d29ce200 languageName: node linkType: hard "@types/d3-time@npm:^2": - version: 2.1.1 - resolution: "@types/d3-time@npm:2.1.1" - checksum: 115048d0cd312a3172ef7c03615dfbdbd8b92a93fd7b6d9ca93c49c704fcdb9575f4c57955eb54eb757b9834acaaf47fc52eae103d06246c59ae120de4559cbc + version: 2.1.2 + resolution: "@types/d3-time@npm:2.1.2" + checksum: 6c7df71298ad88d375b4e184ecb8c517f83082f850b6910f2219dd01ee2e2c5b443e1571b829597123c754190b907f81bfcab2b175044ee1ba4d79ed190e9ccd languageName: node linkType: hard "@types/docker-modem@npm:*": - version: 3.0.3 - resolution: "@types/docker-modem@npm:3.0.3" + version: 3.0.4 + resolution: "@types/docker-modem@npm:3.0.4" dependencies: "@types/node": "*" "@types/ssh2": "*" - checksum: 587697b223ddec5379422a45489d1a833201a25c6e8ed34d15007d253129fa90140ff4112bc29c266685142b6861e78bd64b873b60a71637c2c9a5703d6cd44a + checksum: 6d63700f7055d96d65a77e8c4d67fcc5bd4c398a8ca4da7cf54d513571d6a59035a4054721be8af401c83413689364c09cfbbdc2bbd20f4b7c6026f81f577104 languageName: node linkType: hard "@types/dockerode@npm:^3.3.9": - version: 3.3.19 - resolution: "@types/dockerode@npm:3.3.19" + version: 3.3.20 + resolution: "@types/dockerode@npm:3.3.20" dependencies: "@types/docker-modem": "*" "@types/node": "*" - checksum: 96d6cd3811a778d12382432413c3b0a935912c175ca939c77aaa0db2630c205daf14d5fa52e458a6fd44355c444f4fa1bd821e0364d4d0b6388061b5fe889431 + checksum: cb2d7a923cfec9d92b69694e613f0becbea627d4d9d919ab349f28ea81d8f5fa71aa437d89b4bc5291a5edb7a07c643ccff2139e2d7ab92a58235d0b05d2a48d + languageName: node + linkType: hard + +"@types/estree@npm:*": + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: aeedb1b2fe20cbe06f44b99b562bf9703e360bfcdf5bb3d61d248182ee1dd63500f2474e12f098ffe1f5ac3202b43b3e18ec99902d9328d5374f5512fa077e45 + languageName: node + linkType: hard + +"@types/estree@npm:0.0.39": + version: 0.0.39 + resolution: "@types/estree@npm:0.0.39" + checksum: 412fb5b9868f2c418126451821833414189b75cc6bf84361156feed733e3d92ec220b9d74a89e52722e03d5e241b2932732711b7497374a404fad49087adc248 languageName: node linkType: hard "@types/express-serve-static-core@npm:^4.17.33": - version: 4.17.36 - resolution: "@types/express-serve-static-core@npm:4.17.36" + version: 4.17.37 + resolution: "@types/express-serve-static-core@npm:4.17.37" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 410b13cbd663f18c0f8729e7f2ff54d960d96de76ebbae7cadb612972f85cc66c54051e00d32f11aa230c0a683d81a6d6fc7f7e4e383a95c0801494c517f36e1 + checksum: 2dab1380e45eb44e56ecc1be1c42c4b897364d2f2a08e03ca28fbcb1e6866e390217385435813711c046f9acd684424d088855dc32825d5cbecf72c60ecd037f languageName: node linkType: hard "@types/express@npm:*": - version: 4.17.17 - resolution: "@types/express@npm:4.17.17" + version: 4.17.18 + resolution: "@types/express@npm:4.17.18" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: 0196dacc275ac3ce89d7364885cb08e7fb61f53ca101f65886dbf1daf9b7eb05c0943e2e4bbd01b0cc5e50f37e0eea7e4cbe97d0304094411ac73e1b7998f4da + checksum: 8c178da4f0edff1f006d871fbdc3f849620986ff10bad252f3dfd45b57554e26aaa28c602285df028930d5216e257a06fbaf795070f8bb42f7d87e3b689cba50 languageName: node linkType: hard "@types/hoist-non-react-statics@npm:^3.3.1": - version: 3.3.1 - resolution: "@types/hoist-non-react-statics@npm:3.3.1" + version: 3.3.2 + resolution: "@types/hoist-non-react-statics@npm:3.3.2" dependencies: "@types/react": "*" hoist-non-react-statics: ^3.3.0 - checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 + checksum: fe5d4b751e13f56010811fd6c4e49e53e2ccbcbbdc54bb8d86a413fbd08c5a83311bca9ef75a1a88d3ba62806711b5dea3f323c0e0f932b3a283dcebc3240238 + languageName: node + linkType: hard + +"@types/html-minifier@npm:^3.5.3": + version: 3.5.3 + resolution: "@types/html-minifier@npm:3.5.3" + dependencies: + "@types/clean-css": "*" + "@types/relateurl": "*" + "@types/uglify-js": "*" + checksum: 28a9c042e692813afd9d9c48960ede94b479bb12de031e9366edfb0babb47beb63193826f98a67c8683f7e6fd3e52cf28e5140861d40906bb8782954862dac66 languageName: node linkType: hard "@types/http-cache-semantics@npm:*, @types/http-cache-semantics@npm:^4.0.1": - version: 4.0.1 - resolution: "@types/http-cache-semantics@npm:4.0.1" - checksum: 1048aacf627829f0d5f00184e16548205cd9f964bf0841c29b36bc504509230c40bc57c39778703a1c965a6f5b416ae2cbf4c1d4589c889d2838dd9dbfccf6e9 + version: 4.0.2 + resolution: "@types/http-cache-semantics@npm:4.0.2" + checksum: 513429786a45d8124f93cc7ea1454b692008190ef743e9fec75a6a3c998309782d216f1e67d7d497ffece9c9212310ae05a8c56e8955492ee400eacdd7620e61 languageName: node linkType: hard "@types/http-errors@npm:*": - version: 2.0.1 - resolution: "@types/http-errors@npm:2.0.1" - checksum: 3bb0c50b0a652e679a84c30cd0340d696c32ef6558518268c238840346c077f899315daaf1c26c09c57ddd5dc80510f2a7f46acd52bf949e339e35ed3ee9654f + version: 2.0.2 + resolution: "@types/http-errors@npm:2.0.2" + checksum: d7f14045240ac4b563725130942b8e5c8080bfabc724c8ff3f166ea928ff7ae02c5194763bc8f6aaf21897e8a44049b0492493b9de3e058247e58fdfe0f86692 languageName: node linkType: hard @@ -2628,37 +2824,37 @@ __metadata: linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "@types/istanbul-lib-report@npm:3.0.1" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 + checksum: cfc66de48577bb7b2636a6afded7056483693c3ea70916276518cdfaa0d4b51bf564ded88fb13e75716665c3af3d4d54e9c2de042c0219dcabad7e81c398688b languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.2 + resolution: "@types/istanbul-reports@npm:3.0.2" dependencies: "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 + checksum: f52028d6fe4d28f0085dd7ed66ccfa6af632579e9a4091b90928ffef93d4dbec0bacd49e9caf1b939d05df9eafc5ac1f5939413cdf8ac59fbe4b29602d4d0939 languageName: node linkType: hard "@types/jest@npm:*": - version: 29.5.4 - resolution: "@types/jest@npm:29.5.4" + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 38ed5942f44336452efd0f071eab60aaa57cd8d46530348d0a3aa5a691dcbf1366c4ca8f6ee8364efb45b4413bfefae443e5d4f469246a472a03b21ac11cd4ed + checksum: 56e55cde9949bcc0ee2fa34ce5b7c32c2bfb20e53424aa4ff3a210859eeaaa3fdf6f42f81a3f655238039cdaaaf108b054b7a8602f394e6c52b903659338d8c6 languageName: node linkType: hard "@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": - version: 7.0.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab languageName: node linkType: hard @@ -2670,9 +2866,9 @@ __metadata: linkType: hard "@types/keygrip@npm:*": - version: 1.0.2 - resolution: "@types/keygrip@npm:1.0.2" - checksum: 60bc2738a4f107070ee3d96f44709cb38f3a96c7ccabab09f56c1b2b4d85f869fd8fb9f1f2937e863d0e9e781f005c2223b823bf32b859185b4f52370c352669 + version: 1.0.3 + resolution: "@types/keygrip@npm:1.0.3" + checksum: adee9a3efda3db9c64466af1c7c91a6d049420ee50589500cfd36e3e38d6abefdd858da88e6da63ed186e588127af3e862c1dc64fb0ad45c91870e6c35fe3be0 languageName: node linkType: hard @@ -2686,27 +2882,27 @@ __metadata: linkType: hard "@types/mime@npm:*": - version: 3.0.1 - resolution: "@types/mime@npm:3.0.1" - checksum: 4040fac73fd0cea2460e29b348c1a6173da747f3a87da0dbce80dd7a9355a3d0e51d6d9a401654f3e5550620e3718b5a899b2ec1debf18424e298a2c605346e7 + version: 3.0.2 + resolution: "@types/mime@npm:3.0.2" + checksum: 09cf74f6377d1b27f4a24512cb689ad30af59880ac473ed6f7bc5285ecde88bbe8fe500789340ad57810da9d6fe1704f86e8bfe147b9ea76d58925204a60b906 languageName: node linkType: hard "@types/mime@npm:^1": - version: 1.3.2 - resolution: "@types/mime@npm:1.3.2" - checksum: 0493368244cced1a69cb791b485a260a422e6fcc857782e1178d1e6f219f1b161793e9f87f5fae1b219af0f50bee24fcbe733a18b4be8fdd07a38a8fb91146fd + version: 1.3.3 + resolution: "@types/mime@npm:1.3.3" + checksum: 7e27dede6517c1d604821a8a5412d6b7131decc8397ad4bac9216fc90dea26c9571426623ebeea2a9b89dbfb89ad98f7370a3c62cd2be8896c6e897333b117c9 languageName: node linkType: hard "@types/node@npm:*": - version: 20.5.3 - resolution: "@types/node@npm:20.5.3" - checksum: fe67a0fd7402218bdf91523a2b1c2e41d619f7294b1a471e0a778b8bc7bb3fcf291aed12041bcbe9622d50a3d1295a9adea0e7e19bb9386a246bf66071404721 + version: 20.7.0 + resolution: "@types/node@npm:20.7.0" + checksum: 1b2919925c213f4d2039ada7a8354c998e144f7291db8d719ef58ea9924ab636c113690073b0ec3b82ba62907385f7e0f51e9d1583c1a818776daa5156d3a590 languageName: node linkType: hard -"@types/node@npm:18.17.8, @types/node@npm:^18.11.18": +"@types/node@npm:18.17.8": version: 18.17.8 resolution: "@types/node@npm:18.17.8" checksum: ebb71526368c9c58f03e2c2408bfda4aa686c13d84226e2c9b48d9c4aee244fb82e672aaf4aa8ccb6e4993b4274d5f4b2b3d52d0a2e57ab187ae653903376411 @@ -2714,16 +2910,23 @@ __metadata: linkType: hard "@types/node@npm:^16.10.2": - version: 16.18.43 - resolution: "@types/node@npm:16.18.43" - checksum: a3ae424834818d1aa53d05e9de954b4559aaa9c02294e654403d9bd2a2b1db608c328755970071369a0c85159a6f2969502e1b9c7e1f29d2629ca677c33c8bdb + version: 16.18.54 + resolution: "@types/node@npm:16.18.54" + checksum: 208e8fc64f605e9cd55ab5e620a0fd019d8fe5629e3e3c5de869a149b731ab0fac5720c516dccc0ecc834ac27df754723dfe6554551663f016ba5096ea8851df + languageName: node + linkType: hard + +"@types/node@npm:^18.11.18": + version: 18.18.0 + resolution: "@types/node@npm:18.18.0" + checksum: 61bcffa28eb713e7a4c66fd369df603369c3f834a783faeced95fe3e78903faa25f1a704d49e054f41d71b7915eeb066d10a37cc699421fcf5dd267f96ad5808 languageName: node linkType: hard "@types/object.omit@npm:^3.0.0": - version: 3.0.0 - resolution: "@types/object.omit@npm:3.0.0" - checksum: 69a0b04d45942c27f8964917d2403e86ce7a350511b87c04e2db61fccdb1c8fe73f01c922b6cb6476ab443641a916d172ebde08d18d259bccc6fbf0b17737a41 + version: 3.0.1 + resolution: "@types/object.omit@npm:3.0.1" + checksum: 8c4e8bdec0cfc2d43f058e5c519bb047665b8bf8c18b55352d74801a5582c3b90d1e9f7de1aa175e0f14ced6d2129e657e775b1ced073c655e23b4fe8d6f4e16 languageName: node linkType: hard @@ -2742,112 +2945,128 @@ __metadata: linkType: hard "@types/prismjs@npm:^1.26.0": - version: 1.26.0 - resolution: "@types/prismjs@npm:1.26.0" - checksum: cd5e7a6214c1f4213ec512a5fcf6d8fe37a56b813fc57ac95b5ff5ee074742bfdbd2f2730d9fd985205bf4586728e09baa97023f739e5aa1c9735a7c1ecbd11a + version: 1.26.1 + resolution: "@types/prismjs@npm:1.26.1" + checksum: ef34b2f47e34645760a48fc351e5926c330810a724c64838bfc30b7317c6038ea66abd19fe9c713002679d6f2faa97d90d432869e512dcb660d9a791c150595a languageName: node linkType: hard "@types/prop-types@npm:*, @types/prop-types@npm:^15.7.2": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + version: 15.7.7 + resolution: "@types/prop-types@npm:15.7.7" + checksum: 023b95f7dd82e1c594f51dcb93ec4c382600cef6eeee29a2ac7b782b92c0882eab8da16d4cbd6e18b39e85ac8d94ebf4ca02c6e248ce5b5fb4b16dbab5d82861 languageName: node linkType: hard "@types/qs@npm:*": - version: 6.9.7 - resolution: "@types/qs@npm:6.9.7" - checksum: 7fd6f9c25053e9b5bb6bc9f9f76c1d89e6c04f7707a7ba0e44cc01f17ef5284adb82f230f542c2d5557d69407c9a40f0f3515e8319afd14e1e16b5543ac6cdba + version: 6.9.8 + resolution: "@types/qs@npm:6.9.8" + checksum: c28e07d00d07970e5134c6eed184a0189b8a4649e28fdf36d9117fe671c067a44820890de6bdecef18217647a95e9c6aebdaaae69f5fe4b0bec9345db885f77e languageName: node linkType: hard "@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: b7c0dfd5080a989d6c8bb0b6750fc0933d9acabeb476da6fe71d8bdf1ab65e37c136169d84148034802f48378ab94e3c37bb4ef7656b2bec2cb9c0f8d4146a95 + version: 1.2.5 + resolution: "@types/range-parser@npm:1.2.5" + checksum: db9aaa04a02d019395a9a4346475669a2864a32a6477ad0fc457bd2ef39a167cabe742f55a8a3fa8bc90abac795b716c22b37348bc3e19313ebe6c9310815233 languageName: node linkType: hard "@types/react-dom@npm:^18.0.0": - version: 18.2.7 - resolution: "@types/react-dom@npm:18.2.7" + version: 18.2.8 + resolution: "@types/react-dom@npm:18.2.8" dependencies: "@types/react": "*" - checksum: e02ea908289a7ad26053308248d2b87f6aeafd73d0e2de2a3d435947bcea0422599016ffd1c3e38ff36c42f5e1c87c7417f05b0a157e48649e4a02f21727d54f + checksum: d36264631028d021b73cd9e015f10b95c4959ae1ce8f7a7419f318d1f05b1d063e6afffcd2a349a6bccd64ccc9ee9d2d976e1f0437643f0e7db621fa035bca65 languageName: node linkType: hard "@types/react-lifecycles-compat@npm:^3.0.1": - version: 3.0.1 - resolution: "@types/react-lifecycles-compat@npm:3.0.1" + version: 3.0.2 + resolution: "@types/react-lifecycles-compat@npm:3.0.2" dependencies: "@types/react": "*" - checksum: e45450115da6f767217f87c10529d3bd07d5f8aed2f339b440e986cf9a28195249ecd3cd9a372cc3960fdb9c1ad4a0110ee2bce317604e6f0aa47909064bac66 + checksum: 34f69969437a68cf71e416bdac49fddcbe7f539a6cb478b0cd8f32d6ceee7d3561c7c24b9d8744cd60b25efe97b4693b4f72202d17bd5bf800311d4cdadfaac4 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.11": - version: 18.2.21 - resolution: "@types/react@npm:18.2.21" + version: 18.2.23 + resolution: "@types/react@npm:18.2.23" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: ffed203bfe7aad772b8286f7953305c9181ac3a8f27d3f5400fbbc2a8e27ca8e5bbff818ee014f39ca0d19d2b3bb154e5bdbec7e232c6f80b59069375aa78349 + checksum: efb9d1ed1940c0e7ba08a21ffba5e266d8dbbb8fe618cfb97bc902dfc96385fdd8189e3f7f64b4aa13134f8e61947d60560deb23be151253c3a97b0d070897ca + languageName: node + linkType: hard + +"@types/relateurl@npm:*": + version: 0.2.30 + resolution: "@types/relateurl@npm:0.2.30" + checksum: 5d114cdd32963813cf2d5e3146f026124aa53d406cd4711596a1f0823b8a86c319dcb2e23510cd4a4adc5bd20daa00786369f0d7b611072d80ed638fa32d631b + languageName: node + linkType: hard + +"@types/resolve@npm:1.17.1": + version: 1.17.1 + resolution: "@types/resolve@npm:1.17.1" + dependencies: + "@types/node": "*" + checksum: dc6a6df507656004e242dcb02c784479deca516d5f4b58a1707e708022b269ae147e1da0521f3e8ad0d63638869d87e0adc023f0bd5454aa6f72ac66c7525cf5 languageName: node linkType: hard "@types/responselike@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/responselike@npm:1.0.0" + version: 1.0.1 + resolution: "@types/responselike@npm:1.0.1" dependencies: "@types/node": "*" - checksum: e99fc7cc6265407987b30deda54c1c24bb1478803faf6037557a774b2f034c5b097ffd65847daa87e82a61a250d919f35c3588654b0fdaa816906650f596d1b0 + checksum: ae8c36c9354aaedfa462dab655aa17613529d545a418acc54ba0214145fc1d0454be2ae107031a1b2c24768f19f2af7e4096a85d1e604010becd0bec2355cb0e languageName: node linkType: hard "@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + version: 0.16.4 + resolution: "@types/scheduler@npm:0.16.4" + checksum: a57b0f10da1b021e6bd5eeef8a1917dd3b08a8715bd8029e2ded2096d8f091bb1bb1fef2d66e139588a983c4bfbad29b59e48011141725fa83c76e986e1257d7 languageName: node linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + version: 7.5.3 + resolution: "@types/semver@npm:7.5.3" + checksum: 349fdd1ab6c213bac5c991bac766bd07b8b12e63762462bb058740dcd2eb09c8193d068bb226f134661275f2022976214c0e727a4e5eb83ec1b131127c980d3e languageName: node linkType: hard "@types/send@npm:*": - version: 0.17.1 - resolution: "@types/send@npm:0.17.1" + version: 0.17.2 + resolution: "@types/send@npm:0.17.2" dependencies: "@types/mime": ^1 "@types/node": "*" - checksum: 10b620a5960058ef009afbc17686f680d6486277c62f640845381ec4baa0ea683fdd77c3afea4803daf5fcddd3fb2972c8aa32e078939f1d4e96f83195c89793 + checksum: 1ff5b1bd6a4f6fdc6402c7024781ff5dbd0e1f51a43c69529fb67c710943c7416d2f0d77c57c70fccf6616f25f838f32f960284526e408d4edae2e91e1fce95a languageName: node linkType: hard "@types/serve-static@npm:*": - version: 1.15.2 - resolution: "@types/serve-static@npm:1.15.2" + version: 1.15.3 + resolution: "@types/serve-static@npm:1.15.3" dependencies: "@types/http-errors": "*" "@types/mime": "*" "@types/node": "*" - checksum: 15c261dbfc57890f7cc17c04d5b22b418dfa0330c912b46c5d8ae2064da5d6f844ef7f41b63c7f4bbf07675e97ebe6ac804b032635ec742ae45d6f1274259b3e + checksum: afa52252f0ba94cdb5391e80f23e17fd629bdf2a31be8876e2c4490312ed6b0570822dd7de7cea04c9002049e207709563568b7f4ee10bb9f456321db1e83e40 languageName: node linkType: hard "@types/ssh2@npm:*": - version: 1.11.13 - resolution: "@types/ssh2@npm:1.11.13" + version: 1.11.14 + resolution: "@types/ssh2@npm:1.11.14" dependencies: "@types/node": ^18.11.18 - checksum: 89bfaf9363ca9ca2db8e3ff22e37d2ea21637aec421cac2d54be6b1321fe70250a056646e74e0df0e8c08efa81f7b14a60bb614c24319768655af06165350093 + checksum: c2826c551a85438808f65c365e7fddd95ee1a547962827b287b8c4f9b9b81e6bd0355f87a68c9bed20353921fde1c578ea40f16d18fffd2e47018877f09fe4e9 languageName: node linkType: hard @@ -2874,45 +3093,54 @@ __metadata: languageName: node linkType: hard +"@types/uglify-js@npm:*": + version: 3.17.2 + resolution: "@types/uglify-js@npm:3.17.2" + dependencies: + source-map: ^0.6.1 + checksum: 6cd3ae5befd2bf147c6a37e94b1454dc85d9102ec1a6ab242268f37fe84ba8373904db2ed56fa418233fd93366bde8e0bb4f49c137b92f165b45c957296ac28a + languageName: node + linkType: hard + "@types/uuid@npm:^9.0.0": - version: 9.0.2 - resolution: "@types/uuid@npm:9.0.2" - checksum: 1754bcf3444e1e3aeadd6e774fc328eb53bc956665e2e8fb6ec127aa8e1f43d9a224c3d22a9a6233dca8dd81a12dc7fed4d84b8876dd5ec82d40f574f7ff8b68 + version: 9.0.4 + resolution: "@types/uuid@npm:9.0.4" + checksum: 356e2504456eaebbc43a5af5ca6c07d71f5ae5520b5767cb1c62cd0ec55475fc4ee3d16a2874f4a5fce78e40e8583025afd3a7d9ba41f82939de310665f53f0e languageName: node linkType: hard "@types/video.js@npm:^7.3.51": - version: 7.3.52 - resolution: "@types/video.js@npm:7.3.52" - checksum: 3d1b62a4fa6ba4f29d41d617068fadc88a3cf2a16e4f3eedafba25cb4d72abc332e536f5a2d30fb86bfbba9a7557a97444497bcd397c23b767bff38aa7e51a8c + version: 7.3.53 + resolution: "@types/video.js@npm:7.3.53" + checksum: 2b42d8e9268992a5c08542054ed249773d47316449556b6d992eda14f0f55ac4b57b2990e197632a1be5b780122930a62fed27512532f63ed502f21b04e45a8a languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 + version: 21.0.1 + resolution: "@types/yargs-parser@npm:21.0.1" + checksum: 64e6316c2045e2d460c4fb79572f872f9d2f98fddc6d9d3949c71f0b6ad0ef8a2706cf49db26dfb02a9cb81433abb8f340f015e1d20a9692279abe9477b72c8e languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" + version: 17.0.25 + resolution: "@types/yargs@npm:17.0.25" dependencies: "@types/yargs-parser": "*" - checksum: 5f3ac4dc4f6e211c1627340160fbe2fd247ceba002190da6cf9155af1798450501d628c9165a183f30a224fc68fa5e700490d740ff4c73e2cdef95bc4e8ba7bf + checksum: ef57926de514f5eb0a182167a63930bd7d2eb33d89b6041760f690d50b2019d7901b30c33ab7d03b3fa66a5004f0f81e36186d8f9e5e583a27b9ce331d2a5276 languageName: node linkType: hard "@typescript-eslint/eslint-plugin@npm:^6.0.0": - version: 6.4.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.4.1" + version: 6.7.3 + resolution: "@typescript-eslint/eslint-plugin@npm:6.7.3" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/type-utils": 6.4.1 - "@typescript-eslint/utils": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/scope-manager": 6.7.3 + "@typescript-eslint/type-utils": 6.7.3 + "@typescript-eslint/utils": 6.7.3 + "@typescript-eslint/visitor-keys": 6.7.3 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -2925,25 +3153,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: aa5f2f516a4ea07d1a9878d347dcb915808862f41efd3c4acd4955e616d265e051c4c93d597d30e54bee10bab9b965e2ef9cea1b497bf16f23a475d7911a8078 + checksum: ac2790882199047abc59c0407a862f3339645623d03ea0aae5a73fd4bac6abfb753afcf9f23fd51cd1d5aa73f132ef94e2850774c4b2a3d99ebb83030b09429c languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0, @typescript-eslint/parser@npm:^6.0.0": - version: 6.4.1 - resolution: "@typescript-eslint/parser@npm:6.4.1" + version: 6.7.3 + resolution: "@typescript-eslint/parser@npm:6.7.3" dependencies: - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/typescript-estree": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/scope-manager": 6.7.3 + "@typescript-eslint/types": 6.7.3 + "@typescript-eslint/typescript-estree": 6.7.3 + "@typescript-eslint/visitor-keys": 6.7.3 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: cb61c757963f2a7964c2f846087eadda044720da769d96600f9f0069fe796d612caef5d9bb0c785aa4fa95028b2d231e7c83847ce44f02b1fa41f2102d6f444c + checksum: 658f3294b281db06ebb46884b92172d45eb402ec25c7d4a09cc2461eee359266029af7a49eb9006ee7c3e0003ba53a06f4bee84aa2e99d2d9a3507b9c84ff775 languageName: node linkType: hard @@ -2957,32 +3185,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/scope-manager@npm:6.4.1" +"@typescript-eslint/scope-manager@npm:6.7.3": + version: 6.7.3 + resolution: "@typescript-eslint/scope-manager@npm:6.7.3" dependencies: - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 - checksum: 8f7f90aa378a19838301b31cfa58a4b0641d2b84891705c8c006c67aacb5c0d07112b714e1f0e7a159c5736779c934ec26dadef42a0711fccb635596aba391fc + "@typescript-eslint/types": 6.7.3 + "@typescript-eslint/visitor-keys": 6.7.3 + checksum: 08215444b7c70af5c45e185ba3c31c550a0a671ab464a67058cbee680c94aa9d1a062958976d8b09f7bcabf2f63114cdc7be2e4e32e2dfdcb2d7cc79961b7b32 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.7.2": - version: 6.7.2 - resolution: "@typescript-eslint/scope-manager@npm:6.7.2" +"@typescript-eslint/type-utils@npm:6.7.3": + version: 6.7.3 + resolution: "@typescript-eslint/type-utils@npm:6.7.3" dependencies: - "@typescript-eslint/types": 6.7.2 - "@typescript-eslint/visitor-keys": 6.7.2 - checksum: e35fa23ecb16252c3ad00b5f1ec05d9b8d33ee30d4c57543892f900443ed77926be9bd2836f06463c31b483f5f0f79070273bc51c4a606f55ac3cd1d9c9cd542 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/type-utils@npm:6.4.1" - dependencies: - "@typescript-eslint/typescript-estree": 6.4.1 - "@typescript-eslint/utils": 6.4.1 + "@typescript-eslint/typescript-estree": 6.7.3 + "@typescript-eslint/utils": 6.7.3 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -2990,7 +3208,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 33bcdd48bd4e07258ed1919b598d50354dd67d8f01702cd2fd46aa9250b7b7cba9caab640df01f4dc0e45dabeddbb3ca47bee88f81fe2087350ed6f70a4cbe5d + checksum: f30a5ab4f88f76457810d72e3ada79fefd94dbbb456069ac004bd7601c9b7f15689b906b66cd849c230f30ae65f6f7039fb169609177ab545b34bacab64f015e languageName: node linkType: hard @@ -3001,17 +3219,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/types@npm:6.4.1" - checksum: 16ba46140dbe426407bbb940e87fb347e7eb53b64f74e8f6a819cd662aa25ccd0c25b1e588867ce3cd36a8b4eccea7bd81f4d429595e6e86d9a24c655b1c8617 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:6.7.2": - version: 6.7.2 - resolution: "@typescript-eslint/types@npm:6.7.2" - checksum: 5a7c4cd456f721649757d2edb4cae71d1405c1c2c35672031f012b27007b9d49b7118297eec746dc3351370e6aa414e5d2c493fb658c7b910154b7998c0278e1 +"@typescript-eslint/types@npm:6.7.3": + version: 6.7.3 + resolution: "@typescript-eslint/types@npm:6.7.3" + checksum: 4adb6177ec710e7438610fee553839a7abecc498dbb36d0170786bab66c5e5415cd720ac06419fd905458ad88c39b661603af5f013adc299137ccb4c51c4c879 languageName: node linkType: hard @@ -3033,12 +3244,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.4.1" +"@typescript-eslint/typescript-estree@npm:6.7.3": + version: 6.7.3 + resolution: "@typescript-eslint/typescript-estree@npm:6.7.3" dependencies: - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/types": 6.7.3 + "@typescript-eslint/visitor-keys": 6.7.3 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -3047,42 +3258,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 34c289e50a6337321154efe6c20c762e94fea308f9032971e356a266f63e99b908b1a00dd8cf51eba50a6f69db01d665faf2cf13454b355767fd167eebe60f1c + checksum: eaba1feb0e6882b0bad292172c118aac43ba683d1f04b940b542a20035468d030b062b036ea49eca36aa21782e9b1019e87717003b3c3db7d12dc707466b7eb7 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.7.2": - version: 6.7.2 - resolution: "@typescript-eslint/typescript-estree@npm:6.7.2" - dependencies: - "@typescript-eslint/types": 6.7.2 - "@typescript-eslint/visitor-keys": 6.7.2 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependenciesMeta: - typescript: - optional: true - checksum: c30b9803567c37527e2806badd98f3083ae125db9a430d8a28647b153e446e6a4b830833f229cca27d5aa0ff5497c149aaa524aa3a6dbf932b557c60d0bfd4f9 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/utils@npm:6.4.1" +"@typescript-eslint/utils@npm:6.7.3, @typescript-eslint/utils@npm:^6.2.0": + version: 6.7.3 + resolution: "@typescript-eslint/utils@npm:6.7.3" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/typescript-estree": 6.4.1 + "@typescript-eslint/scope-manager": 6.7.3 + "@typescript-eslint/types": 6.7.3 + "@typescript-eslint/typescript-estree": 6.7.3 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 54e642a345790f912393a6f2821495e2359eff0f874a94cbe6fb3ef4411702983ed54fe88ca3ea9d28f2e93800a74dee22b7888838154bc1afd57c7e119e17ec + checksum: 685b7c9fa95ad085f30e26431dc41b3059a42a16925defe2a94b32fb46974bfc168000de7d4d9ad4a1d0568a983f9d3c01ea6bc6cfa9a798e482719af9e9165b languageName: node linkType: hard @@ -3104,23 +3297,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:^6.2.0": - version: 6.7.2 - resolution: "@typescript-eslint/utils@npm:6.7.2" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.7.2 - "@typescript-eslint/types": 6.7.2 - "@typescript-eslint/typescript-estree": 6.7.2 - semver: ^7.5.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 97f950562dba2bda63ffe64672f643ef940123cf74007bc878afcf31c75f905c99934a3ad77da3d5a4fe7807d5d69c791b20c429712ad5a5525e331ebc313756 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -3131,41 +3307,31 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.4.1" +"@typescript-eslint/visitor-keys@npm:6.7.3": + version: 6.7.3 + resolution: "@typescript-eslint/visitor-keys@npm:6.7.3" dependencies: - "@typescript-eslint/types": 6.4.1 + "@typescript-eslint/types": 6.7.3 eslint-visitor-keys: ^3.4.1 - checksum: bd9cd56fc793e1d880c24193f939c4992b2653f330baece41cd461d1fb48edb2c53696987cba0e29074bbb452dd181fd009db92dd19060fdcc417ad76768f18a + checksum: cef64173a919107f420703e204d97d0afef0d9bd7a67570df5bdb39ac9464211c5a7b3af735d8f41e8004b443ab83e88b1d6fb951886aed4d3fe9d4778667199 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.7.2": - version: 6.7.2 - resolution: "@typescript-eslint/visitor-keys@npm:6.7.2" - dependencies: - "@typescript-eslint/types": 6.7.2 - eslint-visitor-keys: ^3.4.1 - checksum: b4915fbc0f3d44c81b92b7151830b698e8b6ed2dee8587bb65540c888c7a84300d3fd6b0c159e2131c7c6df1bebe49fb0d21c347ecdbf7f3e4aec05acebbb0bc - languageName: node - linkType: hard - -"@videojs/http-streaming@npm:3.5.3": - version: 3.5.3 - resolution: "@videojs/http-streaming@npm:3.5.3" +"@videojs/http-streaming@npm:3.6.0": + version: 3.6.0 + resolution: "@videojs/http-streaming@npm:3.6.0" dependencies: "@babel/runtime": ^7.12.5 "@videojs/vhs-utils": 4.0.0 aes-decrypter: 4.0.1 global: ^4.4.0 m3u8-parser: ^7.1.0 - mpd-parser: ^1.1.1 + mpd-parser: ^1.2.2 mux.js: 7.0.0 video.js: ^7 || ^8 peerDependencies: video.js: ^7 || ^8 - checksum: 8150ea62a240219fd6596793882f66c4125f885eb667604086b483d7be91a7e42d29e939eb9a6fa172170705a897b3d294aab7c388f243f4ec8d813d71c003de + checksum: fc6f75153602d9b1c53a4f6c6f6dcc6ad4d144569417576e30d6d2ba43f466d38e1eeef8bd9902ed209c0b82da978194031f3d17739accaa857315cd391f4ca8 languageName: node linkType: hard @@ -3203,16 +3369,17 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.0.0": - version: 4.0.4 - resolution: "@vitejs/plugin-react@npm:4.0.4" + version: 4.1.0 + resolution: "@vitejs/plugin-react@npm:4.1.0" dependencies: - "@babel/core": ^7.22.9 + "@babel/core": ^7.22.20 "@babel/plugin-transform-react-jsx-self": ^7.22.5 "@babel/plugin-transform-react-jsx-source": ^7.22.5 + "@types/babel__core": ^7.20.2 react-refresh: ^0.14.0 peerDependencies: vite: ^4.2.0 - checksum: ec25400dc7c5fce914122d1f57de0fbaff9216addb8cd6187308ad2c7a3d3b73ea3a6f2dd0a8c7ec5e90e56b37046fe90d3e0ec285a9446e73695cb174377f84 + checksum: 73dd403f5bca4f3f99f0bd3dcbb0cc0ecf88f758b886fb599711be744ca93f20adafe1af3574a998ac7cbd24aaf67ac7fe06983d87088cbdf535540ab402d496 languageName: node linkType: hard @@ -3295,10 +3462,10 @@ __metadata: linkType: hard "@vitest/ui@npm:^0.34.4": - version: 0.34.4 - resolution: "@vitest/ui@npm:0.34.4" + version: 0.34.5 + resolution: "@vitest/ui@npm:0.34.5" dependencies: - "@vitest/utils": 0.34.4 + "@vitest/utils": 0.34.5 fast-glob: ^3.3.0 fflate: ^0.8.0 flatted: ^3.2.7 @@ -3307,7 +3474,7 @@ __metadata: sirv: ^2.0.3 peerDependencies: vitest: ">=0.30.1 <1" - checksum: 64e8a67bd4eafedc659b99d5b64d3b7af981652574622f4f9e2d27d6ff2904b8463fac76b77b9196a70295cefdb0a6dc05e218ef3698218837acdec06a119638 + checksum: 49ce5df1b28b4ca2b1a8877d4c4e58d740071406541b6aae2687760ffa2e4344095f96f883cfc7f1cd09dc139e5d07817198e9720158578cd2cfe32bcecc00d9 languageName: node linkType: hard @@ -3322,14 +3489,14 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:0.34.4": - version: 0.34.4 - resolution: "@vitest/utils@npm:0.34.4" +"@vitest/utils@npm:0.34.5": + version: 0.34.5 + resolution: "@vitest/utils@npm:0.34.5" dependencies: diff-sequences: ^29.4.3 loupe: ^2.3.6 pretty-format: ^29.5.0 - checksum: 5ec5e9d6de14fff0520a61843f54a90690c10c0cd8d54439d4e9f5ac1508aa27d2c4b78ab332c222ca3199999f0d006cf938fe1a0c63c317c297af12983c5499 + checksum: 86f40d3acd43170c2fe9ca6478e57b840851cfba173a31282e2967322c9d98e0210c8399e97aeff26dc9354f00af79a6986332cfbcfeec4d067404b952f2d89f languageName: node linkType: hard @@ -3421,7 +3588,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": +"acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -3576,6 +3743,43 @@ __metadata: languageName: node linkType: hard +"aria-build@npm:^0.4.3": + version: 0.4.5 + resolution: "aria-build@npm:0.4.5" + dependencies: + "@rollup/plugin-commonjs": ^13.0.0 + "@rollup/plugin-json": ^4.1.0 + "@rollup/plugin-multi-entry": ^3.0.1 + "@rollup/plugin-node-resolve": ^8.0.1 + "@rollup/plugin-replace": ^2.3.3 + "@rollup/plugin-url": ^5.0.1 + esbuild: ^0.5.3 + magic-string: ^0.25.7 + rollup: ^2.17.0 + rollup-plugin-dts: ^1.4.7 + rollup-plugin-minify-html-literals: ^1.2.4 + rollup-plugin-terser: ^6.1.0 + sade: ^1.7.3 + ts-node: ^8.10.2 + peerDependencies: + "@swc/core": "*" + aria-fs: "*" + typescript: "*" + bin: + aria-build: bin/aria-build.js + checksum: 53558ced6e89693aa1f6f24595e9c2e08a5069092eabe482b711d9da46af2d4f9eb3feac3c070bccdf6893581d8d57bd69a3483d4f525ac67e44c7ada98052c9 + languageName: node + linkType: hard + +"aria-fs@npm:^0.4.3": + version: 0.4.5 + resolution: "aria-fs@npm:0.4.5" + dependencies: + minimatch: ^3.0.4 + checksum: 8c3ce0969347f533767e177733355efc534fe911be9415af4d043fae864f66e23f7e91a4001d0abe7ea0b85e0015328e0da90c023a769772cb613757c5ba1994 + languageName: node + linkType: hard + "aria-hidden@npm:^1.1.3": version: 1.2.3 resolution: "aria-hidden@npm:1.2.3" @@ -3603,6 +3807,13 @@ __metadata: languageName: node linkType: hard +"arr-union@npm:^3.1.0": + version: 3.1.0 + resolution: "arr-union@npm:3.1.0" + checksum: b5b0408c6eb7591143c394f3be082fee690ddd21f0fdde0a0a01106799e847f67fcae1b7e56b0a0c173290e29c6aca9562e82b300708a268bc8f88f3d6613cb9 + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "array-buffer-byte-length@npm:1.0.0" @@ -3614,15 +3825,15 @@ __metadata: linkType: hard "array-includes@npm:^3.1.6": - version: 3.1.6 - resolution: "array-includes@npm:3.1.6" + version: 3.1.7 + resolution: "array-includes@npm:3.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 is-string: ^1.0.7 - checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc languageName: node linkType: hard @@ -3641,66 +3852,67 @@ __metadata: linkType: hard "array.prototype.findlastindex@npm:^1.2.2": - version: 1.2.2 - resolution: "array.prototype.findlastindex@npm:1.2.2" + version: 1.2.3 + resolution: "array.prototype.findlastindex@npm:1.2.3" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: 8a166359f69a2a751c843f26b9c8cd03d0dc396a92cdcb85f4126b5f1cecdae5b2c0c616a71ea8aff026bde68165b44950b3664404bb73db0673e288495ba264 + get-intrinsic: ^1.2.1 + checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e languageName: node linkType: hard "array.prototype.flat@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flat@npm:1.3.1" + version: 1.3.2 + resolution: "array.prototype.flat@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b + checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b languageName: node linkType: hard "array.prototype.flatmap@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flatmap@npm:1.3.1" + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 languageName: node linkType: hard "array.prototype.tosorted@npm:^1.1.1": - version: 1.1.1 - resolution: "array.prototype.tosorted@npm:1.1.1" + version: 1.1.2 + resolution: "array.prototype.tosorted@npm:1.1.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 + get-intrinsic: ^1.2.1 + checksum: 3607a7d6b117f0ffa6f4012457b7af0d47d38cf05e01d50e09682fd2fb782a66093a5e5fbbdbad77c8c824794a9d892a51844041641f719ad41e3a974f0764de languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.1": - version: 1.0.1 - resolution: "arraybuffer.prototype.slice@npm:1.0.1" +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.2 + resolution: "arraybuffer.prototype.slice@npm:1.0.2" dependencies: array-buffer-byte-length: ^1.0.0 call-bind: ^1.0.2 define-properties: ^1.2.0 + es-abstract: ^1.22.1 get-intrinsic: ^1.2.1 is-array-buffer: ^3.0.2 is-shared-array-buffer: ^1.0.2 - checksum: e3e9b2a3e988ebfeddce4c7e8f69df730c9e48cb04b0d40ff0874ce3d86b3d1339dd520ffde5e39c02610bc172ecfbd4bc93324b1cabd9554c44a56b131ce0ce + checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3 languageName: node linkType: hard @@ -3749,6 +3961,13 @@ __metadata: languageName: node linkType: hard +"async-array-reduce@npm:^0.2.1": + version: 0.2.1 + resolution: "async-array-reduce@npm:0.2.1" + checksum: ecc15c7b9580d408ff829f1bd29b90c4e2127892f9da7321c33e4c0adc298e3747f916c87db1049962aa6ed2b740d60963b8542e64e31ebe15c0d88821338e8b + languageName: node + linkType: hard + "asynciterator.prototype@npm:^1.0.0": version: 1.0.0 resolution: "asynciterator.prototype@npm:1.0.0" @@ -3780,20 +3999,20 @@ __metadata: linkType: hard "axe-core@npm:^4.6.2": - version: 4.7.2 - resolution: "axe-core@npm:4.7.2" - checksum: 5d86fa0f45213b0e54cbb5d713ce885c4a8fe3a72b92dd915a47aa396d6fd149c4a87fec53aa978511f6d941402256cfeb26f2db35129e370f25a453c688655a + version: 4.8.2 + resolution: "axe-core@npm:4.8.2" + checksum: 8c19f507dabfcb8514e4280c7fc66e85143be303ddb57ec9f119338021228dc9b80560993938003837bda415fde7c07bba3a96560008ffa5f4145a248ed8f5fe languageName: node linkType: hard "axios@npm:^1.0.0": - version: 1.5.0 - resolution: "axios@npm:1.5.0" + version: 1.5.1 + resolution: "axios@npm:1.5.1" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: e7405a5dbbea97760d0e6cd58fecba311b0401ddb4a8efbc4108f5537da9b3f278bde566deb777935a960beec4fa18e7b8353881f2f465e4f2c0e949fead35be + checksum: 4444f06601f4ede154183767863d2b8e472b4a6bfc5253597ed6d21899887e1fd0ee2b3de792ac4f8459fe2e359d2aa07c216e45fd8b9e4e0688a6ebf48a5a8d languageName: node linkType: hard @@ -3854,6 +4073,17 @@ __metadata: languageName: node linkType: hard +"better-sqlite3@npm:^8.6.0": + version: 8.6.0 + resolution: "better-sqlite3@npm:8.6.0" + dependencies: + bindings: ^1.5.0 + node-gyp: latest + prebuild-install: ^7.1.1 + checksum: 9ebdfd675352347cda1ba30d620a3c512d9db827a1eba66460fd48203a7ad8138b0195893bbf47d40f704bcdd598710041271d4ed69779979b6f784c0d3579a1 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -3861,6 +4091,15 @@ __metadata: languageName: node linkType: hard +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: 1.0.0 + checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 + languageName: node + linkType: hard + "bl@npm:^4.0.3": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -4113,16 +4352,16 @@ __metadata: linkType: hard "browserslist@npm:^4.21.9": - version: 4.21.10 - resolution: "browserslist@npm:4.21.10" + version: 4.22.0 + resolution: "browserslist@npm:4.22.0" dependencies: - caniuse-lite: ^1.0.30001517 - electron-to-chromium: ^1.4.477 + caniuse-lite: ^1.0.30001539 + electron-to-chromium: ^1.4.530 node-releases: ^2.0.13 - update-browserslist-db: ^1.0.11 + update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: 1e27c0f111a35d1dd0e8fc2c61781b0daefabc2c9471b0b10537ce54843014bceb2a1ce4571af1a82b2bf1e6e6e05d38865916689a158f03bc2c7a4ec2577db8 + checksum: 14fc119bbfb85b65e2ee4a82205fabf9327520d010c4c586f1176ceaf9136cfdb391397045a4eafaa9defe52b6dbdf875916714695826c69091a936d5838f9ec languageName: node linkType: hard @@ -4174,6 +4413,13 @@ __metadata: languageName: node linkType: hard +"builtin-modules@npm:^3.1.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: db021755d7ed8be048f25668fe2117620861ef6703ea2c65ed2779c9e3636d5c3b82325bd912244293959ff3ae303afa3471f6a15bf5060c103e4cc3a839749d + languageName: node + linkType: hard + "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -4307,10 +4553,27 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001517": - version: 1.0.30001522 - resolution: "caniuse-lite@npm:1.0.30001522" - checksum: 56e3551c02ae595085114073cf242f7d9d54d32255c80893ca9098a44f44fc6eef353936f234f31c7f4cb894dd2b6c9c4626e30649ee29e04d70aa127eeefeb0 +"camel-case@npm:^3.0.0": + version: 3.0.0 + resolution: "camel-case@npm:3.0.0" + dependencies: + no-case: ^2.2.0 + upper-case: ^1.1.1 + checksum: 4190ed6ab8acf4f3f6e1a78ad4d0f3f15ce717b6bfa1b5686d58e4bcd29960f6e312dd746b5fa259c6d452f1413caef25aee2e10c9b9a580ac83e516533a961a + languageName: node + linkType: hard + +"camelcase@npm:^7.0.1": + version: 7.0.1 + resolution: "camelcase@npm:7.0.1" + checksum: 86ab8f3ebf08bcdbe605a211a242f00ed30d8bfb77dab4ebb744dd36efbc84432d1c4adb28975ba87a1b8be40a80fbd1e60e2f06565315918fa7350011a26d3d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001539": + version: 1.0.30001540 + resolution: "caniuse-lite@npm:1.0.30001540" + checksum: 95b9203a85ad0187a2480c341bfff6f32d61b9eb9cc323d2942025cd29fbe3f9c3dd056646996d303a0a42c968954f32994f97250e931b2ea5b9531099d6ba2d languageName: node linkType: hard @@ -4322,17 +4585,17 @@ __metadata: linkType: hard "chai@npm:^4.3.7": - version: 4.3.7 - resolution: "chai@npm:4.3.7" + version: 4.3.9 + resolution: "chai@npm:4.3.9" dependencies: assertion-error: ^1.1.0 - check-error: ^1.0.2 + check-error: ^1.0.3 deep-eql: ^4.1.2 get-func-name: ^2.0.0 loupe: ^2.3.1 pathval: ^1.1.1 type-detect: ^4.0.5 - checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c + checksum: 0bcc79b8829bf9e567375be4427d8efe148fca4f5d29c82b05fcd8502f3a151fc80d3a9531e519c053d4c11d7dca68d7f81555073bbdea9dedf0fae2e6a80e42 languageName: node linkType: hard @@ -4367,10 +4630,19 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.2": - version: 1.0.2 - resolution: "check-error@npm:1.0.2" - checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e +"chalk@npm:^5.2.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: ^2.0.2 + checksum: e2131025cf059b21080f4813e55b3c480419256914601750b0fee3bd9b2b8315b531e551ef12560419b8b6d92a3636511322752b1ce905703239e7cc451b6399 languageName: node linkType: hard @@ -4424,6 +4696,15 @@ __metadata: languageName: node linkType: hard +"clean-css@npm:^4.2.1": + version: 4.2.4 + resolution: "clean-css@npm:4.2.4" + dependencies: + source-map: ~0.6.0 + checksum: 045ff6fcf4b5c76a084b24e1633e0c78a13b24080338fc8544565a9751559aa32ff4ee5886d9e52c18a644a6ff119bd8e37bc58e574377c05382a1fb7dbe39f8 + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -4431,6 +4712,19 @@ __metadata: languageName: node linkType: hard +"cli-color@npm:^2.0.0": + version: 2.0.3 + resolution: "cli-color@npm:2.0.3" + dependencies: + d: ^1.0.1 + es5-ext: ^0.10.61 + es6-iterator: ^2.0.3 + memoizee: ^0.4.15 + timers-ext: ^0.1.7 + checksum: b1c5f3d0ec29cbe22be7a01d90bd0cfa080ffed6f1c321ea20ae3f10c6041f0e411e28ee2b98025945bee3548931deed1ae849b53c21b523ba74efef855cd73d + languageName: node + linkType: hard + "client-only@npm:0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" @@ -4554,7 +4848,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:2, commander@npm:^2.20.3": +"commander@npm:2, commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.20.3": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -4568,6 +4862,20 @@ __metadata: languageName: node linkType: hard +"commander@npm:^9.4.1": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade + languageName: node + linkType: hard + +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb + languageName: node + linkType: hard + "compare-versions@npm:5.0.3": version: 5.0.3 resolution: "compare-versions@npm:5.0.3" @@ -4643,13 +4951,20 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.6.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 languageName: node linkType: hard +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + "convert-source-map@npm:~1.1.0": version: 1.1.3 resolution: "convert-source-map@npm:1.1.3" @@ -4657,6 +4972,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:0.5.0, cookie@npm:^0.5.0": + version: 0.5.0 + resolution: "cookie@npm:0.5.0" + checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 + languageName: node + linkType: hard + "cookie@npm:^0.4.0": version: 0.4.2 resolution: "cookie@npm:0.4.2" @@ -4664,13 +4986,6 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 - languageName: node - linkType: hard - "cookies-next@npm:^2.1.1": version: 2.1.2 resolution: "cookies-next@npm:2.1.2" @@ -4702,9 +5017,9 @@ __metadata: linkType: hard "core-js@npm:^3": - version: 3.32.1 - resolution: "core-js@npm:3.32.1" - checksum: e4af91d9c6be7b59235feb3f273d16705126ce09a0b4a787144d131d874f0cd10be3c24fc52e5eea7d7cb03ceabe4be7b255abcd9474b5eb1ff365d2c5611f9a + version: 3.32.2 + resolution: "core-js@npm:3.32.2" + checksum: d6fac7e8eb054eefc211c76cd0a0ff07447a917122757d085f469f046ec888d122409c7db1a9601c3eb5fa767608ed380bcd219eace02bdf973da155680edeec languageName: node linkType: hard @@ -4983,6 +5298,16 @@ __metadata: languageName: node linkType: hard +"d@npm:1, d@npm:^1.0.1": + version: 1.0.1 + resolution: "d@npm:1.0.1" + dependencies: + es5-ext: ^0.10.50 + type: ^1.0.1 + checksum: 49ca0639c7b822db670de93d4fbce44b4aa072cd848c76292c9978a8cd0fff1028763020ff4b0f147bd77bfe29b4c7f82e0f71ade76b2a06100543cdfd948d19 + languageName: node + linkType: hard + "damerau-levenshtein@npm:^1.0.8": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -5005,9 +5330,9 @@ __metadata: linkType: hard "dayjs@npm:^1.11.7": - version: 1.11.9 - resolution: "dayjs@npm:1.11.9" - checksum: a4844d83dc87f921348bb9b1b93af851c51e6f71fa259604809cfe1b49d1230e6b0212dab44d1cb01994c096ad3a77ea1cf18fa55154da6efcc9d3610526ac38 + version: 1.11.10 + resolution: "dayjs@npm:1.11.10" + checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 languageName: node linkType: hard @@ -5083,6 +5408,13 @@ __metadata: languageName: node linkType: hard +"deep-freeze@npm:^0.0.1": + version: 0.0.1 + resolution: "deep-freeze@npm:0.0.1" + checksum: 1e43c98e44c7849382d9f896e679d48a1b5bf40993f7cc858e3730ef4e2ba387b9b7b7fe722cac34febe7f6a564cd242c27bbc319e8df793c2a287f21e5ba038 + languageName: node + linkType: hard + "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -5090,7 +5422,7 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.3.1": +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 @@ -5113,13 +5445,25 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"define-data-property@npm:^1.0.1": + version: 1.1.0 + resolution: "define-data-property@npm:1.1.0" dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: 7ad4ee84cca8ad427a4831f5693526804b62ce9dfd4efac77214e95a4382aed930072251d4075dc8dc9fc949a353ed51f19f5285a84a788ba9216cc51472a093 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -5248,6 +5592,15 @@ __metadata: languageName: node linkType: hard +"difflib@npm:~0.2.1": + version: 0.2.4 + resolution: "difflib@npm:0.2.4" + dependencies: + heap: ">= 0.2.0" + checksum: 4f4237b026263ce7471b77d9019b901c2f358a7da89401a80a84a8c3cdc1643a8e70b7495ccbe686cb4d95492eaf5dac119cd9ecbffe5f06bfc175fbe5c20a27 + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -5367,6 +5720,110 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^16.3.1": + version: 16.3.1 + resolution: "dotenv@npm:16.3.1" + checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd + languageName: node + linkType: hard + +"dreamopt@npm:~0.8.0": + version: 0.8.0 + resolution: "dreamopt@npm:0.8.0" + dependencies: + wordwrap: ">=0.0.2" + checksum: 701134807c4a2cc6d111888e1faa7ea6b5ac73cb2cc0f49d852844f7ade3f8bfd03249845841ff2786ffeb6cff9ba8d8cf39c152c24341fd67ef93a0cf7c9287 + languageName: node + linkType: hard + +"drizzle-kit@npm:^0.19.13": + version: 0.19.13 + resolution: "drizzle-kit@npm:0.19.13" + dependencies: + "@drizzle-team/studio": ^0.0.5 + "@esbuild-kit/esm-loader": ^2.5.5 + camelcase: ^7.0.1 + chalk: ^5.2.0 + commander: ^9.4.1 + esbuild: ^0.18.6 + esbuild-register: ^3.4.2 + glob: ^8.1.0 + hanji: ^0.0.5 + json-diff: 0.9.0 + minimatch: ^7.4.3 + zod: ^3.20.2 + bin: + drizzle-kit: index.cjs + checksum: f6011f4cd83ef381599444b60133c958539b1eb2bb21cb06849e1f1ba2dde3fa6267ff0d2dcd8587a390f56ecce37e8d74e4cc972c2fd792248c0f3672385b6d + languageName: node + linkType: hard + +"drizzle-orm@npm:^0.28.6": + version: 0.28.6 + resolution: "drizzle-orm@npm:0.28.6" + peerDependencies: + "@aws-sdk/client-rds-data": ">=3" + "@cloudflare/workers-types": ">=3" + "@libsql/client": "*" + "@neondatabase/serverless": ">=0.1" + "@opentelemetry/api": ^1.4.1 + "@planetscale/database": ">=1" + "@types/better-sqlite3": "*" + "@types/pg": "*" + "@types/sql.js": "*" + "@vercel/postgres": "*" + better-sqlite3: ">=7" + bun-types: "*" + knex: "*" + kysely: "*" + mysql2: ">=2" + pg: ">=8" + postgres: ">=3" + sql.js: ">=1" + sqlite3: ">=5" + peerDependenciesMeta: + "@aws-sdk/client-rds-data": + optional: true + "@cloudflare/workers-types": + optional: true + "@libsql/client": + optional: true + "@neondatabase/serverless": + optional: true + "@opentelemetry/api": + optional: true + "@planetscale/database": + optional: true + "@types/better-sqlite3": + optional: true + "@types/pg": + optional: true + "@types/sql.js": + optional: true + "@vercel/postgres": + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + checksum: 1e079be9e969c1e9d325d68164006d976f093f296f6e058222a921debd047aa2369703b2142de03366e38baba3d8ef322f2e094bc0509d16f0577509b1f9bad7 + languageName: node + linkType: hard + "duplexer2@npm:^0.1.2, duplexer2@npm:~0.1.0, duplexer2@npm:~0.1.2": version: 0.1.4 resolution: "duplexer2@npm:0.1.4" @@ -5390,10 +5847,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.477": - version: 1.4.499 - resolution: "electron-to-chromium@npm:1.4.499" - checksum: 9002f3bcd9018f38b3496c2ced5393c6144d3a09bc5e1ea9866541045f6364841a6d11afe8c5977838835bc70f50f8caee63ba928a910e68ac1eed45afd18120 +"electron-to-chromium@npm:^1.4.530": + version: 1.4.532 + resolution: "electron-to-chromium@npm:1.4.532" + checksum: e9f77b5d6df84aa1f7598359ec2c988c3758e58106e63f2a0a6dc4756a6733b126316e61a79a2a6643aa2a0f9a1cf9ebe66c817dcb970a3fc9d8190342ef070a languageName: node linkType: hard @@ -5509,17 +5966,17 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2, es-abstract@npm:^1.21.3": - version: 1.22.1 - resolution: "es-abstract@npm:1.22.1" +"es-abstract@npm:^1.22.1": + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" dependencies: array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 + function.prototype.name: ^1.1.6 get-intrinsic: ^1.2.1 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 @@ -5535,24 +5992,24 @@ __metadata: is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.12 is-weakref: ^1.0.2 object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - safe-array-concat: ^1.0.0 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 typed-array-buffer: ^1.0.0 typed-array-byte-length: ^1.0.0 typed-array-byte-offset: ^1.0.0 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.10 - checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b + which-typed-array: ^1.1.11 + checksum: cc70e592d360d7d729859013dee7a610c6b27ed8630df0547c16b0d16d9fe6505a70ee14d1af08d970fdd132b3f88c9ca7815ce72c9011608abf8ab0e55fc515 languageName: node linkType: hard @@ -5574,13 +6031,13 @@ __metadata: linkType: hard "es-iterator-helpers@npm:^1.0.12": - version: 1.0.13 - resolution: "es-iterator-helpers@npm:1.0.13" + version: 1.0.15 + resolution: "es-iterator-helpers@npm:1.0.15" dependencies: asynciterator.prototype: ^1.0.0 call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.21.3 + define-properties: ^1.2.1 + es-abstract: ^1.22.1 es-set-tostringtag: ^2.0.1 function-bind: ^1.1.1 get-intrinsic: ^1.2.1 @@ -5589,9 +6046,9 @@ __metadata: has-proto: ^1.0.1 has-symbols: ^1.0.3 internal-slot: ^1.0.5 - iterator.prototype: ^1.1.0 - safe-array-concat: ^1.0.0 - checksum: 1b08ae7388439121fee1129cb23497abd7bf23dd440f7fa44d119c9f92f38f9b7d75b7d98453fcd15948a7eb58abb2a48c673c7250d2e15871abe3641f567ed7 + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.0.1 + checksum: 50081ae5c549efe62e5c1d244df0194b40b075f7897fc2116b7e1aa437eb3c41f946d2afda18c33f9b31266ec544765932542765af839f76fa6d7b7855d1e0e1 languageName: node linkType: hard @@ -5626,7 +6083,62 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.10": +"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.53, es5-ext@npm:^0.10.61, es5-ext@npm:~0.10.14, es5-ext@npm:~0.10.2, es5-ext@npm:~0.10.46": + version: 0.10.62 + resolution: "es5-ext@npm:0.10.62" + dependencies: + es6-iterator: ^2.0.3 + es6-symbol: ^3.1.3 + next-tick: ^1.1.0 + checksum: 25f42f6068cfc6e393cf670bc5bba249132c5f5ec2dd0ed6e200e6274aca2fed8e9aec8a31c76031744c78ca283c57f0b41c7e737804c6328c7b8d3fbcba7983 + languageName: node + linkType: hard + +"es6-iterator@npm:^2.0.3": + version: 2.0.3 + resolution: "es6-iterator@npm:2.0.3" + dependencies: + d: 1 + es5-ext: ^0.10.35 + es6-symbol: ^3.1.1 + checksum: 6e48b1c2d962c21dee604b3d9f0bc3889f11ed5a8b33689155a2065d20e3107e2a69cc63a71bd125aeee3a589182f8bbcb5c8a05b6a8f38fa4205671b6d09697 + languageName: node + linkType: hard + +"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": + version: 3.1.3 + resolution: "es6-symbol@npm:3.1.3" + dependencies: + d: ^1.0.1 + ext: ^1.1.2 + checksum: cd49722c2a70f011eb02143ef1c8c70658d2660dead6641e160b94619f408b9cf66425515787ffe338affdf0285ad54f4eae30ea5bd510e33f8659ec53bcaa70 + languageName: node + linkType: hard + +"es6-weak-map@npm:^2.0.3": + version: 2.0.3 + resolution: "es6-weak-map@npm:2.0.3" + dependencies: + d: 1 + es5-ext: ^0.10.46 + es6-iterator: ^2.0.3 + es6-symbol: ^3.1.1 + checksum: 19ca15f46d50948ce78c2da5f21fb5b1ef45addd4fe17b5df952ff1f2a3d6ce4781249bc73b90995257264be2a98b2ec749bb2aba0c14b5776a1154178f9c927 + languageName: node + linkType: hard + +"esbuild-register@npm:^3.4.2": + version: 3.5.0 + resolution: "esbuild-register@npm:3.5.0" + dependencies: + debug: ^4.3.4 + peerDependencies: + esbuild: ">=0.12 <1" + checksum: f4307753c9672a2c901d04a1165031594a854f0a4c6f4c1db08aa393b68a193d38f2df483dc8ca0513e89f7b8998415e7e26fb9830989fb8cdccc5fb5f181c6b + languageName: node + linkType: hard + +"esbuild@npm:^0.18.10, esbuild@npm:^0.18.6, esbuild@npm:~0.18.20": version: 0.18.20 resolution: "esbuild@npm:0.18.20" dependencies: @@ -5703,6 +6215,15 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.5.3": + version: 0.5.26 + resolution: "esbuild@npm:0.5.26" + bin: + esbuild: bin/esbuild + checksum: 7519e364805d3c0b9bb936d3f477e0b62e56e111152652fe27e3b76b299fa9d603cc5f164d46e39de25f8097defab1f7b685b4b7e4abddebcbe1ae80c20880c3 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -5732,17 +6253,17 @@ __metadata: linkType: hard "eslint-config-next@npm:^13.4.5": - version: 13.4.19 - resolution: "eslint-config-next@npm:13.4.19" + version: 13.5.3 + resolution: "eslint-config-next@npm:13.5.3" dependencies: - "@next/eslint-plugin-next": 13.4.19 - "@rushstack/eslint-patch": ^1.1.3 + "@next/eslint-plugin-next": 13.5.3 + "@rushstack/eslint-patch": ^1.3.3 "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 eslint-import-resolver-node: ^0.3.6 eslint-import-resolver-typescript: ^3.5.2 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-react: ^7.31.7 + eslint-plugin-import: ^2.28.1 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.5.0 || 5.0.0-canary-7118f5dd7-20230705 peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -5750,7 +6271,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2b2e527facf98326486b2ce806043f41d1f5a969405d2e546d4726462de3fdd05f720ec97d27952abacb09c34e31f3896da05c0c135e65f587376db9ddd71424 + checksum: 0990e262bc93060fba7dd77296ae4c775ac10cede2c78b50183810b08da917010d7e6d5283afc3fb0d026336121818ccf96629b94eb919981161496bf39d57c6 languageName: node linkType: hard @@ -5766,8 +6287,8 @@ __metadata: linkType: hard "eslint-import-resolver-typescript@npm:^3.5.2": - version: 3.6.0 - resolution: "eslint-import-resolver-typescript@npm:3.6.0" + version: 3.6.1 + resolution: "eslint-import-resolver-typescript@npm:3.6.1" dependencies: debug: ^4.3.4 enhanced-resolve: ^5.12.0 @@ -5779,7 +6300,7 @@ __metadata: peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 57b1b3859149f847e0d4174ff979cf35362d60c951df047f01b96f4c3794a7ea0d4e1ec85be25e610d3706902c3acfb964a66b825c1a55e3ce3a124b9a7a13bd + checksum: 454fa0646533050fb57f13d27daf8c71f51b0bb9156d6a461290ccb8576d892209fcc6702a89553f3f5ea8e5b407395ca2e5de169a952c953685f1f7c46b4496 languageName: node linkType: hard @@ -5795,7 +6316,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.26.0": +"eslint-plugin-import@npm:^2.28.1": version: 2.28.1 resolution: "eslint-plugin-import@npm:2.28.1" dependencies: @@ -5822,7 +6343,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.5.1": +"eslint-plugin-jsx-a11y@npm:^6.7.1": version: 6.7.1 resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" dependencies: @@ -5875,7 +6396,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:^7.31.7, eslint-plugin-react@npm:latest": +"eslint-plugin-react@npm:^7.33.2, eslint-plugin-react@npm:latest": version: 7.33.2 resolution: "eslint-plugin-react@npm:7.33.2" dependencies: @@ -5977,13 +6498,13 @@ __metadata: linkType: hard "eslint@npm:^8.0.1": - version: 8.49.0 - resolution: "eslint@npm:8.49.0" + version: 8.50.0 + resolution: "eslint@npm:8.50.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 "@eslint/eslintrc": ^2.1.2 - "@eslint/js": 8.49.0 + "@eslint/js": 8.50.0 "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -6019,7 +6540,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 4dfe257e1e42da2f9da872b05aaaf99b0f5aa022c1a91eee8f2af1ab72651b596366320c575ccd4e0469f7b4c97aff5bb85ae3323ebd6a293c3faef4028b0d81 + checksum: 9ebfe5615dc84700000d218e32ddfdcfc227ca600f65f18e5541ec34f8902a00356a9a8804d9468fd6c8637a5ef6a3897291dad91ba6579d5b32ffeae5e31768 languageName: node linkType: hard @@ -6066,6 +6587,20 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 9d6f82a4921f11eec18f8089fb3cce6e53bcf45a8e545c42a2674d02d055fb30f25f90495f8be60803df6c39680c80dcee7f944526867eb7aa1fc9254883b23d + languageName: node + linkType: hard + +"estree-walker@npm:^1.0.1": + version: 1.0.1 + resolution: "estree-walker@npm:1.0.1" + checksum: 7e70da539691f6db03a08e7ce94f394ce2eef4180e136d251af299d41f92fb2d28ebcd9a6e393e3728d7970aeb5358705ddf7209d52fbcb2dd4693f95dcf925f + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6073,6 +6608,16 @@ __metadata: languageName: node linkType: hard +"event-emitter@npm:^0.3.5": + version: 0.3.5 + resolution: "event-emitter@npm:0.3.5" + dependencies: + d: 1 + es5-ext: ~0.10.14 + checksum: 27c1399557d9cd7e0aa0b366c37c38a4c17293e3a10258e8b692a847dd5ba9fb90429c3a5a1eeff96f31f6fa03ccbd31d8ad15e00540b22b22f01557be706030 + languageName: node + linkType: hard + "events@npm:^3.0.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -6098,16 +6643,25 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0": - version: 29.6.3 - resolution: "expect@npm:29.6.3" +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" dependencies: - "@jest/expect-utils": ^29.6.3 + homedir-polyfill: ^1.0.1 + checksum: 2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a + languageName: node + linkType: hard + +"expect@npm:^29.0.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.6.3 - jest-message-util: ^29.6.3 - jest-util: ^29.6.3 - checksum: c72de87abbc9acc17c66f42fcac8be4dff256f871f1800c3aaa004c74f95f61866cf80e8f2ddacc3f2df290fd58b0cba8adb3a0dee3a09dd5d39f97f63d2aae8 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c languageName: node linkType: hard @@ -6118,6 +6672,15 @@ __metadata: languageName: node linkType: hard +"ext@npm:^1.1.2": + version: 1.7.0 + resolution: "ext@npm:1.7.0" + dependencies: + type: ^2.7.2 + checksum: ef481f9ef45434d8c867cfd09d0393b60945b7c8a1798bedc4514cb35aac342ccb8d8ecb66a513e6a2b4ec1e294a338e3124c49b29736f8e7c735721af352c31 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -6176,9 +6739,9 @@ __metadata: linkType: hard "fflate@npm:^0.8.0": - version: 0.8.0 - resolution: "fflate@npm:0.8.0" - checksum: 6215f95ee01d620a41e459247a7de7e7117dd23e78ef017c26b64c26f2a880a90eedc77675918bbf816d18cc990f6505cd71be933c67cc48cc1e7ebbff1589ea + version: 0.8.1 + resolution: "fflate@npm:0.8.1" + checksum: 7207e2d333243724485d2488095256b776184bd4545aa9967b655feaee5dc18e9525ed9b6d75f94cfd71d98fb285336f4902641683472f1d0c19a99137084cec languageName: node linkType: hard @@ -6209,6 +6772,13 @@ __metadata: languageName: node linkType: hard +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -6250,29 +6820,30 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.1.0 + resolution: "flat-cache@npm:3.1.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.7 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: 99312601d5b90f44aef403f17f056dc09be7e437703740b166cdc9386d99e681f74e6b6e8bd7d010bda66904ea643c9527276b1b80308a2119741d94108a4d8f languageName: node linkType: hard -"flatted@npm:^3.1.0, flatted@npm:^3.2.7": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flatted@npm:^3.2.7": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard "follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.3 + resolution: "follow-redirects@npm:1.15.3" peerDependenciesMeta: debug: optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231 languageName: node linkType: hard @@ -6426,19 +6997,19 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -6525,10 +7096,10 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.0": - version: 2.0.0 - resolution: "get-func-name@npm:2.0.0" - checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3 +"get-func-name@npm:^2.0.0, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b languageName: node linkType: hard @@ -6577,12 +7148,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.5.0": - version: 4.7.0 - resolution: "get-tsconfig@npm:4.7.0" +"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.7.0": + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: 44536925720acc2f133d26301d5626405d8fe33066625484ff309bb6fb7f3310dc0bb202f862805f21a791e38a9870c6dddb013d1443dd5d745d91ad1946254a + checksum: 172358903250eff0103943f816e8a4e51d29b8e5449058bdf7266714a908a48239f6884308bd3a6ff28b09f692b9533dbebfd183ab63e4e14f073cda91f1bca9 languageName: node linkType: hard @@ -6633,21 +7204,21 @@ __metadata: linkType: hard "glob@npm:^10.2.2": - version: 10.3.3 - resolution: "glob@npm:10.3.3" + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.0.3 + jackspeak: ^2.3.5 minimatch: ^9.0.1 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 path-scurry: ^1.10.1 bin: - glob: dist/cjs/src/bin.js - checksum: 29190d3291f422da0cb40b77a72fc8d2c51a36524e99b8bf412548b7676a6627489528b57250429612b6eec2e6fe7826d328451d3e694a9d15e575389308ec53 + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 languageName: node linkType: hard -"glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.0, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -6661,6 +7232,43 @@ __metadata: languageName: node linkType: hard +"glob@npm:^8.1.0": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + languageName: node + linkType: hard + +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: ^1.0.1 + is-windows: ^1.0.1 + resolve-dir: ^1.0.0 + checksum: 10be68796c1e1abc1e2ba87ec4ea507f5629873b119ab0cd29c07284ef2b930f1402d10df01beccb7391dedd9cd479611dd6a24311c71be58937beaf18edf85e + languageName: node + linkType: hard + +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" + dependencies: + expand-tilde: ^2.0.2 + homedir-polyfill: ^1.0.1 + ini: ^1.3.4 + is-windows: ^1.0.1 + which: ^1.2.14 + checksum: 061b43470fe498271bcd514e7746e8a8535032b17ab9570517014ae27d700ff0dca749f76bbde13ba384d185be4310d8ba5712cb0e74f7d54d59390db63dd9a0 + languageName: node + linkType: hard + "global@npm:4.4.0, global@npm:^4.3.1, global@npm:^4.4.0, global@npm:~4.4.0": version: 4.4.0 resolution: "global@npm:4.4.0" @@ -6679,11 +7287,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.21.0 - resolution: "globals@npm:13.21.0" + version: 13.22.0 + resolution: "globals@npm:13.22.0" dependencies: type-fest: ^0.20.2 - checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 + checksum: 64af5a09565341432770444085f7aa98b54331c3b69732e0de411003921fa2dd060222ae7b50bec0b98f29c4d00b4f49bf434049ba9f7c36ca4ee1773f60458c languageName: node linkType: hard @@ -6787,6 +7395,16 @@ __metadata: languageName: node linkType: hard +"hanji@npm:^0.0.5": + version: 0.0.5 + resolution: "hanji@npm:0.0.5" + dependencies: + lodash.throttle: ^4.1.1 + sisteransi: ^1.0.5 + checksum: f52fd5dcf2b7125c8bb0495cf7d57d7db220bf7e9839fee0dfb802b5bc56274fdd8ccfd7b0fb8a77b26052b3bdeafc69282d7d57288f8eddf4b8e2575d90a36c + languageName: node + linkType: hard + "happy-dom@npm:^10.0.0": version: 10.11.2 resolution: "happy-dom@npm:10.11.2" @@ -6822,6 +7440,15 @@ __metadata: languageName: node linkType: hard +"has-glob@npm:^1.0.0": + version: 1.0.0 + resolution: "has-glob@npm:1.0.0" + dependencies: + is-glob: ^3.0.0 + checksum: cafad93e599f49f676a9ab444ec90210fcda35ac14ad6c9bb96c08057ad18a1318f1116b053aa6bdc744f19252537006872d3fc76785e842bbe8cc4312447fc8 + languageName: node + linkType: hard + "has-property-descriptors@npm:^1.0.0": version: 1.0.0 resolution: "has-property-descriptors@npm:1.0.0" @@ -6891,6 +7518,22 @@ __metadata: languageName: node linkType: hard +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + languageName: node + linkType: hard + +"heap@npm:>= 0.2.0": + version: 0.2.7 + resolution: "heap@npm:0.2.7" + checksum: b0f3963a799e02173f994c452921a777f2b895b710119df999736bfed7477235c2860c423d9aea18a9f3b3d065cb1114d605c208cfcb8d0ac550f97ec5d28cb0 + languageName: node + linkType: hard + "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" @@ -6915,6 +7558,7 @@ __metadata: version: 0.0.0-use.local resolution: "homarr@workspace:." dependencies: + "@auth/drizzle-adapter": ^0.3.2 "@ctrl/deluge": ^4.1.0 "@ctrl/qbittorrent": ^6.0.0 "@ctrl/shared-torrent": ^4.1.1 @@ -6932,12 +7576,10 @@ __metadata: "@mantine/notifications": ^6.0.0 "@mantine/prism": ^6.0.19 "@mantine/tiptap": ^6.0.17 - "@next-auth/prisma-adapter": ^1.0.7 "@next/bundle-analyzer": ^13.0.0 "@next/eslint-plugin-next": ^13.4.5 "@nivo/core": ^0.83.0 "@nivo/line": ^0.83.0 - "@prisma/client": ^5.0.0 "@react-native-async-storage/async-storage": ^1.18.1 "@t3-oss/env-nextjs": ^0.6.0 "@tabler/icons-react": ^2.20.0 @@ -6953,11 +7595,12 @@ __metadata: "@tiptap/react": ^2.0.4 "@tiptap/starter-kit": ^2.0.4 "@trivago/prettier-plugin-sort-imports": ^4.2.0 - "@trpc/client": ^10.29.1 - "@trpc/next": ^10.29.1 - "@trpc/react-query": ^10.29.1 - "@trpc/server": ^10.29.1 + "@trpc/client": ^10.37.1 + "@trpc/next": ^10.37.1 + "@trpc/react-query": ^10.37.1 + "@trpc/server": ^10.37.1 "@types/bcryptjs": ^2.4.2 + "@types/better-sqlite3": ^7.6.5 "@types/cookies": ^0.7.7 "@types/dockerode": ^3.3.9 "@types/node": 18.17.8 @@ -6973,12 +7616,16 @@ __metadata: "@vitest/ui": ^0.34.4 axios: ^1.0.0 bcryptjs: ^2.4.3 + better-sqlite3: ^8.6.0 browser-geo-tz: ^0.0.4 consola: ^3.0.0 cookies: ^0.8.0 cookies-next: ^2.1.1 dayjs: ^1.11.7 dockerode: ^3.3.2 + dotenv: ^16.3.1 + drizzle-kit: ^0.19.13 + drizzle-orm: ^0.28.6 eslint: ^8.0.1 eslint-config-next: ^13.4.5 eslint-plugin-promise: ^6.0.0 @@ -7000,12 +7647,11 @@ __metadata: moment: ^2.29.4 moment-timezone: ^0.5.43 next: 13.4.12 - next-auth: ^4.22.3 + next-auth: ^4.23.0 next-i18next: ^14.0.0 node-mocks-http: ^1.12.2 nzbget-api: ^0.0.3 prettier: ^3.0.0 - prisma: ^5.0.0 prismjs: ^1.29.0 react: ^18.2.0 react-dom: ^18.2.0 @@ -7016,6 +7662,7 @@ __metadata: sass: ^1.56.1 sharp: ^0.32.4 ts-node: latest + ts-node-esm: ^0.0.6 turbo: ^1.10.12 typescript: ^5.1.0 uuid: ^9.0.0 @@ -7030,6 +7677,15 @@ __metadata: languageName: unknown linkType: soft +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" + dependencies: + parse-passwd: ^1.0.0 + checksum: 18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 + languageName: node + linkType: hard + "html-dom-parser@npm:1.2.0": version: 1.2.0 resolution: "html-dom-parser@npm:1.2.0" @@ -7054,6 +7710,23 @@ __metadata: languageName: node linkType: hard +"html-minifier@npm:^4.0.0": + version: 4.0.0 + resolution: "html-minifier@npm:4.0.0" + dependencies: + camel-case: ^3.0.0 + clean-css: ^4.2.1 + commander: ^2.19.0 + he: ^1.2.0 + param-case: ^2.1.1 + relateurl: ^0.2.7 + uglify-js: ^3.5.1 + bin: + html-minifier: ./cli.js + checksum: b426aee771d9da104c1c9554e3ebd3a4f483d2ce01f4dcc4156ba33a5959044acf6bea192d5ae63b290cdb92c30a9d07fd6924c65609aa82382ce411328f94ca + languageName: node + linkType: hard + "html-parse-stringify@npm:^3.0.1": version: 3.0.1 resolution: "html-parse-stringify@npm:3.0.1" @@ -7176,9 +7849,9 @@ __metadata: linkType: hard "i18next-fs-backend@npm:^2.1.5": - version: 2.1.5 - resolution: "i18next-fs-backend@npm:2.1.5" - checksum: 4607e879de8195ff0bf11bdb2367f1c45f947160404b64f52be7e438ae27288e0d11a9b53a4bde2d75a77ac7f3255aa531a4381870e278e72f85ead222ffed31 + version: 2.2.0 + resolution: "i18next-fs-backend@npm:2.2.0" + checksum: 33e00ccc8ec66a9fc20363513c3189a201a59e8601f167f0483c0a0d53ecee1dd4bb43b83d0f5661784e7a7ca3e43cd9c771d426cec73d8f819b9b823b77d724 languageName: node linkType: hard @@ -7229,9 +7902,9 @@ __metadata: linkType: hard "immutable@npm:^4.0.0": - version: 4.3.3 - resolution: "immutable@npm:4.3.3" - checksum: 313a354c8fc08bb2e9db3e5ad62d22c2b42edd6a8e1d6ca3fc70e44ae87f561c02e7a2383603c413429c7bca81e5e65d386cc6b26a85925b766f39bb142b5912 + version: 4.3.4 + resolution: "immutable@npm:4.3.4" + checksum: de3edd964c394bab83432429d3fb0b4816b42f56050f2ca913ba520bd3068ec3e504230d0800332d3abc478616e8f55d3787424a90d0952e6aba864524f1afc3 languageName: node linkType: hard @@ -7297,7 +7970,7 @@ __metadata: languageName: node linkType: hard -"ini@npm:~1.3.0": +"ini@npm:^1.3.4, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 @@ -7340,7 +8013,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" dependencies: @@ -7487,7 +8160,7 @@ __metadata: languageName: node linkType: hard -"is-extglob@npm:^2.1.1": +"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 @@ -7526,6 +8199,15 @@ __metadata: languageName: node linkType: hard +"is-glob@npm:^3.0.0": + version: 3.1.0 + resolution: "is-glob@npm:3.1.0" + dependencies: + is-extglob: ^2.1.0 + checksum: 9d483bca84f16f01230f7c7c8c63735248fe1064346f292e0f6f8c76475fd20c6f50fc19941af5bec35f85d6bf26f4b7768f39a48a5f5fdc72b408dc74e07afc + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -7549,6 +8231,13 @@ __metadata: languageName: node linkType: hard +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f + languageName: node + linkType: hard + "is-negative-zero@npm:^2.0.2": version: 2.0.2 resolution: "is-negative-zero@npm:2.0.2" @@ -7602,6 +8291,22 @@ __metadata: languageName: node linkType: hard +"is-promise@npm:^2.2.2": + version: 2.2.2 + resolution: "is-promise@npm:2.2.2" + checksum: 18bf7d1c59953e0ad82a1ed963fb3dc0d135c8f299a14f89a17af312fc918373136e56028e8831700e1933519630cc2fd4179a777030330fde20d34e96f40c78 + languageName: node + linkType: hard + +"is-reference@npm:^1.1.2": + version: 1.2.1 + resolution: "is-reference@npm:1.2.1" + dependencies: + "@types/estree": "*" + checksum: e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc + languageName: node + linkType: hard + "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -7646,7 +8351,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -7662,6 +8367,13 @@ __metadata: languageName: node linkType: hard +"is-valid-glob@npm:^1.0.0": + version: 1.0.0 + resolution: "is-valid-glob@npm:1.0.0" + checksum: 0155951e89291d405cbb2ff4e25a38ee7a88bc70b05f246c25d31a1d09f13d4207377e5860f67443bbda8e3e353da37047b60e586bd9c97a39c9301c30b67acb + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -7695,6 +8407,13 @@ __metadata: languageName: node linkType: hard +"is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + "is@npm:~0.2.6": version: 0.2.7 resolution: "is@npm:0.2.7" @@ -7783,29 +8502,29 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.0": - version: 1.1.0 - resolution: "iterator.prototype@npm:1.1.0" +"iterator.prototype@npm:^1.1.2": + version: 1.1.2 + resolution: "iterator.prototype@npm:1.1.2" dependencies: - define-properties: ^1.1.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.1 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 - has-tostringtag: ^1.0.0 - reflect.getprototypeof: ^1.0.3 - checksum: 462fe16c770affeb9c08620b13fc98d38307335821f4fabd489f491d38c79855c6a93d4b56f6146eaa56711f61690aa5c7eb0ce8586c95145d2f665a3834d916 + reflect.getprototypeof: ^1.0.4 + set-function-name: ^2.0.1 + checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 languageName: node linkType: hard -"jackspeak@npm:^2.0.3": - version: 2.3.0 - resolution: "jackspeak@npm:2.3.0" +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 71bf716f4b5793226d4aeb9761ebf2605ee093b59f91a61451d57d998dd64bbf2b54323fb749b8b2ae8b6d8a463de4f6e3fedab50108671f247bbc80195a6306 + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 languageName: node linkType: hard @@ -7816,15 +8535,15 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-diff@npm:29.6.3" +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" dependencies: chalk: ^4.0.0 diff-sequences: ^29.6.3 jest-get-type: ^29.6.3 - pretty-format: ^29.6.3 - checksum: 23b0a88efeab36566386f059f3da340754d2860969cbc34805154e2377714e37e3130e21a791fc68008fb460bbf5edd7ec43c16d96d15797b32ccfae5160fe37 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 languageName: node linkType: hard @@ -7835,21 +8554,21 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-matcher-utils@npm:29.6.3" +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" dependencies: chalk: ^4.0.0 - jest-diff: ^29.6.3 + jest-diff: ^29.7.0 jest-get-type: ^29.6.3 - pretty-format: ^29.6.3 - checksum: d4965d5cc079799bc0a9075daea7a964768d4db55f0388ef879642215399c955ae9a22c967496813c908763b487f97e40701a1eb4ed5b0b7529c447b6d33e652 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd languageName: node linkType: hard -"jest-message-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-message-util@npm:29.6.3" +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" dependencies: "@babel/code-frame": ^7.12.13 "@jest/types": ^29.6.3 @@ -7857,16 +8576,16 @@ __metadata: chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^29.6.3 + pretty-format: ^29.7.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 59f5229a06c073a8877ba4d2e304cc07d63b0062bf5764d4bed14364403889e77f1825d1bd9017c19a840847d17dffd414dc06f1fcb537b5f9e03dbc65b84ada + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 languageName: node linkType: hard -"jest-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-util@npm:29.6.3" +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: "@jest/types": ^29.6.3 "@types/node": "*" @@ -7874,14 +8593,25 @@ __metadata: ci-info: ^3.2.0 graceful-fs: ^4.2.9 picomatch: ^2.2.3 - checksum: 7bf3ba3ac67ac6ceff7d8fdd23a86768e23ddd9133ecd9140ef87cc0c28708effabaf67a6cd45cd9d90a63d645a522ed0825d09ee59ac4c03b9c473b1fef4c7c + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca languageName: node linkType: hard -"jose@npm:^4.11.4, jose@npm:^4.14.4": - version: 4.14.4 - resolution: "jose@npm:4.14.4" - checksum: 2d820a91a8fd97c05d8bc8eedc373b944a0cd7f5fe41063086da233d0473c73fb523912a9f026ea870782bd221f4a515f441a2d3af4de48c6f2c76dac5082377 +"jest-worker@npm:^26.0.0": + version: 26.6.2 + resolution: "jest-worker@npm:26.6.2" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^7.0.0 + checksum: f9afa3b88e3f12027901e4964ba3ff048285b5783b5225cab28fac25b4058cea8ad54001e9a1577ee2bed125fac3ccf5c80dc507b120300cc1bbcb368796533e + languageName: node + linkType: hard + +"jose@npm:^4.11.1, jose@npm:^4.11.4, jose@npm:^4.14.4": + version: 4.14.6 + resolution: "jose@npm:4.14.6" + checksum: eae81a234e7bf1446b1bd80722b3462b014e3835b155c3a7799c1c5043163a53a0dc28d347004151b031e6b7b863403aabf8814d9cc217ce21f8c2f3ebd4b335 languageName: node linkType: hard @@ -7926,6 +8656,19 @@ __metadata: languageName: node linkType: hard +"json-diff@npm:0.9.0": + version: 0.9.0 + resolution: "json-diff@npm:0.9.0" + dependencies: + cli-color: ^2.0.0 + difflib: ~0.2.1 + dreamopt: ~0.8.0 + bin: + json-diff: bin/json-diff.js + checksum: c553da0e461ad940c50922c6939a8842930bf1a107dcfb4293cd79ab317cd405c0cc9d10013cc9c8bf47cab7dacdc1b72b17734b38ae23822088e980ca7aa0ae + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -7958,7 +8701,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.2": +"json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -8217,6 +8960,13 @@ __metadata: languageName: node linkType: hard +"lodash.throttle@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.throttle@npm:4.1.1" + checksum: 129c0a28cee48b348aef146f638ef8a8b197944d4e9ec26c1890c19d9bf5a5690fe11b655c77a4551268819b32d27f4206343e30c78961f60b561b8608c8c805 + languageName: node + linkType: hard + "lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -8244,6 +8994,13 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^1.1.1": + version: 1.1.4 + resolution: "lower-case@npm:1.1.4" + checksum: 1ca9393b5eaef94a64e3f89e38b63d15bc7182a91171e6ad1550f51d710ec941540a065b274188f2e6b4576110cc2d11b50bc4bb7c603a040ddeb1db4ca95197 + languageName: node + linkType: hard + "lowercase-keys@npm:^2.0.0": version: 2.0.0 resolution: "lowercase-keys@npm:2.0.0" @@ -8290,6 +9047,15 @@ __metadata: languageName: node linkType: hard +"lru-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "lru-queue@npm:0.1.0" + dependencies: + es5-ext: ~0.10.2 + checksum: 7f2c53c5e7f2de20efb6ebb3086b7aea88d6cf9ae91ac5618ece974122960c4e8ed04988e81d92c3e63d60b12c556b14d56ef7a9c5a4627b23859b813e39b1a2 + languageName: node + linkType: hard + "ltgt@npm:^2.1.2": version: 2.2.1 resolution: "ltgt@npm:2.2.1" @@ -8328,6 +9094,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.25.0, magic-string@npm:^0.25.2, magic-string@npm:^0.25.7": + version: 0.25.9 + resolution: "magic-string@npm:0.25.9" + dependencies: + sourcemap-codec: ^1.4.8 + checksum: 9a0e55a15c7303fc360f9572a71cffba1f61451bc92c5602b1206c9d17f492403bf96f946dfce7483e66822d6b74607262e24392e87b0ac27b786e69a40e9b1a + languageName: node + linkType: hard + "magic-string@npm:^0.30.1": version: 0.30.3 resolution: "magic-string@npm:0.30.3" @@ -8337,6 +9112,15 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^3.0.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + "make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -8377,8 +9161,8 @@ __metadata: linkType: hard "markdown-it@npm:^13.0.1": - version: 13.0.1 - resolution: "markdown-it@npm:13.0.1" + version: 13.0.2 + resolution: "markdown-it@npm:13.0.2" dependencies: argparse: ^2.0.1 entities: ~3.0.1 @@ -8387,7 +9171,21 @@ __metadata: uc.micro: ^1.0.5 bin: markdown-it: bin/markdown-it.js - checksum: faf5891d389dc433bcf21d3fbff2009beb044b42b117c92f4848899780ca1a2282a209e3ff4672db4afed726a7248304ec473e6e242a7d6498af7113d31974e7 + checksum: bb4bf2cb3e5d77a7f3dc9cf48e17d050fbcd26d37992204eaa5812220752858fe9debe439b2ae1de06e749a3bba537c0baf6ce7510307cf7163a70f04fafe672 + languageName: node + linkType: hard + +"matched@npm:^1.0.2": + version: 1.0.2 + resolution: "matched@npm:1.0.2" + dependencies: + arr-union: ^3.1.0 + async-array-reduce: ^0.2.1 + glob: ^7.1.2 + has-glob: ^1.0.0 + is-valid-glob: ^1.0.0 + resolve-dir: ^1.0.0 + checksum: 379c943e07e4679ed5eb962886b1e3175d766c5a32f3c82bbd70c49eeff57d7c58fd20398fdd54e22e58dac183a758ed3e77dbd18cc51174d6033fd8524dd8a9 languageName: node linkType: hard @@ -8416,6 +9214,22 @@ __metadata: languageName: node linkType: hard +"memoizee@npm:^0.4.15": + version: 0.4.15 + resolution: "memoizee@npm:0.4.15" + dependencies: + d: ^1.0.1 + es5-ext: ^0.10.53 + es6-weak-map: ^2.0.3 + event-emitter: ^0.3.5 + is-promise: ^2.2.2 + lru-queue: ^0.1.0 + next-tick: ^1.1.0 + timers-ext: ^0.1.7 + checksum: 4065d94416dbadac56edf5947bf342beca0e9f051f33ad60d7c4baf3f6ca0f3c6fdb770c5caed5a89c0ceaf9121428582f396445d591785281383d60aa883418 + languageName: node + linkType: hard + "merge-descriptors@npm:^1.0.1": version: 1.0.1 resolution: "merge-descriptors@npm:1.0.1" @@ -8432,6 +9246,13 @@ __metadata: languageName: node linkType: hard +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + "merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -8493,6 +9314,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^2.4.4": + version: 2.6.0 + resolution: "mime@npm:2.6.0" + bin: + mime: cli.js + checksum: 1497ba7b9f6960694268a557eae24b743fd2923da46ec392b042469f4b901721ba0adcf8b0d3c2677839d0e243b209d76e5edcbd09cfdeffa2dfb6bb4df4b862 + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -8530,6 +9360,19 @@ __metadata: languageName: node linkType: hard +"minify-html-literals@npm:^1.3.5": + version: 1.3.5 + resolution: "minify-html-literals@npm:1.3.5" + dependencies: + "@types/html-minifier": ^3.5.3 + clean-css: ^4.2.1 + html-minifier: ^4.0.0 + magic-string: ^0.25.0 + parse-literals: ^1.2.1 + checksum: 1e75eb7fa00e37421063e4840a2b1066043cd66f06cdafb0b22674a0f4432be16f664abbc32c6a03e9c5f49f5ab594f52e2524af236a6e7e132074dcdb619855 + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -8553,6 +9396,24 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimatch@npm:^7.4.3": + version: 7.4.6 + resolution: "minimatch@npm:7.4.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 1a6c8d22618df9d2a88aabeef1de5622eb7b558e9f8010be791cb6b0fa6e102d39b11c28d75b855a1e377b12edc7db8ff12a99c20353441caa6a05e78deb5da9 + languageName: node + linkType: hard + "minimatch@npm:^9.0.1": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -8670,14 +9531,14 @@ __metadata: linkType: hard "mlly@npm:^1.2.0, mlly@npm:^1.4.0": - version: 1.4.0 - resolution: "mlly@npm:1.4.0" + version: 1.4.2 + resolution: "mlly@npm:1.4.2" dependencies: - acorn: ^8.9.0 + acorn: ^8.10.0 pathe: ^1.1.1 pkg-types: ^1.0.3 - ufo: ^1.1.2 - checksum: ebf2e2b5cfb4c6e45e8d0bbe82710952247023f12626cb0997c41b1bb6e57c8b6fc113aa709228ad511382ab0b4eebaab759806be0578093b3635d3e940bd63b + ufo: ^1.3.0 + checksum: ad0813eca133e59ac03b356b87deea57da96083dce7dda58a8eeb2dce92b7cc2315bedd9268f3ff8e98effe1867ddb1307486d4c5cd8be162daa8e0fa0a98ed4 languageName: node linkType: hard @@ -8722,9 +9583,9 @@ __metadata: languageName: node linkType: hard -"mpd-parser@npm:^1.0.1, mpd-parser@npm:^1.1.1": - version: 1.2.1 - resolution: "mpd-parser@npm:1.2.1" +"mpd-parser@npm:^1.0.1, mpd-parser@npm:^1.2.2": + version: 1.2.2 + resolution: "mpd-parser@npm:1.2.2" dependencies: "@babel/runtime": ^7.12.5 "@videojs/vhs-utils": ^3.0.5 @@ -8732,7 +9593,14 @@ __metadata: global: ^4.4.0 bin: mpd-to-m3u8-json: bin/parse.js - checksum: b10b3ae5a579109a6e8e6e24facc82bc74880f84172d3a2beb3326e12dbe72fe7fa629ff3a4c24e2a16727864a2d5ca7aa613a24c00f0d63f6c3dbbd9f394b4c + checksum: 29af36af2a6c9552315091e9170625f2dc1a8e5d49bce410bf788439e69c9a3ba0e9561865ff551eccf12959553913d05b181f18cabd2e8828777d0f6a526b31 + languageName: node + linkType: hard + +"mri@npm:^1.1.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 languageName: node linkType: hard @@ -8792,11 +9660,11 @@ __metadata: linkType: hard "nan@npm:^2.17.0": - version: 2.17.0 - resolution: "nan@npm:2.17.0" + version: 2.18.0 + resolution: "nan@npm:2.18.0" dependencies: node-gyp: latest - checksum: ec609aeaf7e68b76592a3ba96b372aa7f5df5b056c1e37410b0f1deefbab5a57a922061e2c5b369bae9c7c6b5e6eecf4ad2dac8833a1a7d3a751e0a7c7f849ed + checksum: 4fe42f58456504eab3105c04a5cffb72066b5f22bd45decf33523cb17e7d6abc33cca2a19829407b9000539c5cb25f410312d4dc5b30220167a3594896ea6a0a languageName: node linkType: hard @@ -8830,7 +9698,7 @@ __metadata: languageName: node linkType: hard -"next-auth@npm:^4.22.3": +"next-auth@npm:^4.23.0": version: 4.23.1 resolution: "next-auth@npm:4.23.1" dependencies: @@ -8873,6 +9741,13 @@ __metadata: languageName: node linkType: hard +"next-tick@npm:1, next-tick@npm:^1.1.0": + version: 1.1.0 + resolution: "next-tick@npm:1.1.0" + checksum: 83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b + languageName: node + linkType: hard + "next@npm:13.4.12": version: 13.4.12 resolution: "next@npm:13.4.12" @@ -8932,6 +9807,15 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^2.2.0": + version: 2.3.2 + resolution: "no-case@npm:2.3.2" + dependencies: + lower-case: ^1.1.1 + checksum: 856487731936fef44377ca74fdc5076464aba2e0734b56a4aa2b2a23d5b154806b591b9b2465faa59bb982e2b5c9391e3685400957fb4eeb38f480525adcf3dd + languageName: node + linkType: hard + "node-abi@npm:^3.3.0": version: 3.47.0 resolution: "node-abi@npm:3.47.0" @@ -9079,6 +9963,13 @@ __metadata: languageName: node linkType: hard +"oauth4webapi@npm:^2.0.6": + version: 2.3.0 + resolution: "oauth4webapi@npm:2.3.0" + checksum: abe1aa9997f8cd779b661ca60b378d50de039b624f89c0a72574c65141432bca6a319116362cae49197f687b6e08d01d76476f74545f074071cbb63303d86fab + languageName: node + linkType: hard + "oauth@npm:^0.9.15": version: 0.9.15 resolution: "oauth@npm:0.9.15" @@ -9155,46 +10046,46 @@ __metadata: linkType: hard "object.entries@npm:^1.1.6": - version: 1.1.6 - resolution: "object.entries@npm:1.1.6" + version: 1.1.7 + resolution: "object.entries@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: da287d434e7e32989586cd734382364ba826a2527f2bc82e6acbf9f9bfafa35d51018b66ec02543ffdfa2a5ba4af2b6f1ca6e588c65030cb4fd9c67d6ced594c languageName: node linkType: hard "object.fromentries@npm:^2.0.6": - version: 2.0.6 - resolution: "object.fromentries@npm:2.0.6" + version: 2.0.7 + resolution: "object.fromentries@npm:2.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 languageName: node linkType: hard "object.groupby@npm:^1.0.0": - version: 1.0.0 - resolution: "object.groupby@npm:1.0.0" + version: 1.0.1 + resolution: "object.groupby@npm:1.0.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - es-abstract: ^1.21.2 + es-abstract: ^1.22.1 get-intrinsic: ^1.2.1 - checksum: 64b00b287d57580111c958e7ff375c9b61811fa356f2cf0d35372d43cab61965701f00fac66c19fd8f49c4dfa28744bee6822379c69a73648ad03e09fcdeae70 + checksum: d7959d6eaaba358b1608066fc67ac97f23ce6f573dc8fc661f68c52be165266fcb02937076aedb0e42722fdda0bdc0bbf74778196ac04868178888e9fd3b78b5 languageName: node linkType: hard "object.hasown@npm:^1.1.2": - version: 1.1.2 - resolution: "object.hasown@npm:1.1.2" + version: 1.1.3 + resolution: "object.hasown@npm:1.1.3" dependencies: - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 76bc17356f6124542fb47e5d0e78d531eafa4bba3fc2d6fc4b1a8ce8b6878912366c0d99f37ce5c84ada8fd79df7aa6ea1214fddf721f43e093ad2df51f27da1 languageName: node linkType: hard @@ -9217,13 +10108,13 @@ __metadata: linkType: hard "object.values@npm:^1.1.6": - version: 1.1.6 - resolution: "object.values@npm:1.1.6" + version: 1.1.7 + resolution: "object.values@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 languageName: node linkType: hard @@ -9260,14 +10151,14 @@ __metadata: linkType: hard "openid-client@npm:^5.4.0": - version: 5.4.3 - resolution: "openid-client@npm:5.4.3" + version: 5.5.0 + resolution: "openid-client@npm:5.5.0" dependencies: jose: ^4.14.4 lru-cache: ^6.0.0 object-hash: ^2.2.0 oidc-token-hash: ^5.0.3 - checksum: 0e5a126b77dad0320e8f7023ac7ad7f5f1f82ad5f985f7ab0b42a7cf36700dfb78f0bef9b59c1fae915dce0148ef191b49921cd0a01443b64c04f862d9dc03e0 + checksum: d2617b5bb0d9a0da338aeb7489bcbe3a79df9681189c7b61c2a3284289eee7110dfee2b04b49a9fdd4f064b7e2057ddb0becfedd9c19388e7788ae15b24c8e4c languageName: node linkType: hard @@ -9356,6 +10247,15 @@ __metadata: languageName: node linkType: hard +"param-case@npm:^2.1.1": + version: 2.1.1 + resolution: "param-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + checksum: 3a63dcb8d8dc7995a612de061afdc7bb6fe7bd0e6db994db8d4cae999ed879859fd24389090e1a0d93f4c9207ebf8c048c870f468a3f4767161753e03cb9ab58 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -9408,6 +10308,22 @@ __metadata: languageName: node linkType: hard +"parse-literals@npm:^1.2.1": + version: 1.2.1 + resolution: "parse-literals@npm:1.2.1" + dependencies: + typescript: ^2.9.2 || ^3.0.0 || ^4.0.0 + checksum: 28108222ba6576b94352b8c00f7653d17cd95fcbe94fffbecacafbab01b0468115aae91ba828ad4673e58f4f62733f851b808a03f01d8310ca68287d0f5dd525 + languageName: node + linkType: hard + +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e + languageName: node + linkType: hard + "parseurl@npm:^1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -9530,7 +10446,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -9571,13 +10487,24 @@ __metadata: linkType: hard "postcss@npm:^8.4.27": - version: 8.4.28 - resolution: "postcss@npm:8.4.28" + version: 8.4.30 + resolution: "postcss@npm:8.4.30" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: f605c24a36f7e400bad379735fbfc893ccb8d293ad6d419bb824db77cdcb69f43d614ef35f9f7091f32ca588d130ec60dbcf53b366e6bf88a8a64bbeb3c05f6d + checksum: 6c810c10c9bd3e03ca016e0b6b6756261e640aba1a9a7b1200b55502bc34b9165e38f590aef3493afc2f30ab55cdfcd43fd0f8408d69a77318ddbcf2a8ad164b + languageName: node + linkType: hard + +"preact-render-to-string@npm:5.2.3": + version: 5.2.3 + resolution: "preact-render-to-string@npm:5.2.3" + dependencies: + pretty-format: ^3.8.0 + peerDependencies: + preact: ">=10" + checksum: 6e46288d8956adde35b9fe3a21aecd9dea29751b40f0f155dea62f3896f27cb8614d457b32f48d33909d2da81135afcca6c55077520feacd7d15164d1371fb44 languageName: node linkType: hard @@ -9592,6 +10519,13 @@ __metadata: languageName: node linkType: hard +"preact@npm:10.11.3": + version: 10.11.3 + resolution: "preact@npm:10.11.3" + checksum: 9387115aa0581e8226309e6456e9856f17dfc0e3d3e63f774de80f3d462a882ba7c60914c05942cb51d51e23e120dcfe904b8d392d46f29ad15802941fe7a367 + languageName: node + linkType: hard + "preact@npm:^10.6.3": version: 10.17.1 resolution: "preact@npm:10.17.1" @@ -9648,14 +10582,14 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0, pretty-format@npm:^29.6.3": - version: 29.6.3 - resolution: "pretty-format@npm:29.6.3" +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" dependencies: "@jest/schemas": ^29.6.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: 4e1c0db48e65571c22e80ff92123925ff8b3a2a89b71c3a1683cfde711004d492de32fe60c6bc10eea8bf6c678e5cbe544ac6c56cb8096e1eb7caf856928b1c4 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 languageName: node linkType: hard @@ -9675,17 +10609,6 @@ __metadata: languageName: node linkType: hard -"prisma@npm:^5.0.0": - version: 5.3.1 - resolution: "prisma@npm:5.3.1" - dependencies: - "@prisma/engines": 5.3.1 - bin: - prisma: build/index.js - checksum: e825adbcb4eec81de276de5507fb7e5486db7788c8c9de36ba6ed73f9e87d9f56b64d0e183a31dc6b80f6737ae1fbcdb110aac44ab89299af646aeb966655bef - languageName: node - linkType: hard - "prismjs@npm:^1.29.0": version: 1.29.0 resolution: "prismjs@npm:1.29.0" @@ -9912,13 +10835,13 @@ __metadata: linkType: hard "prosemirror-view@npm:^1.0.0, prosemirror-view@npm:^1.1.0, prosemirror-view@npm:^1.13.3, prosemirror-view@npm:^1.27.0, prosemirror-view@npm:^1.28.2, prosemirror-view@npm:^1.31.0": - version: 1.31.7 - resolution: "prosemirror-view@npm:1.31.7" + version: 1.32.0 + resolution: "prosemirror-view@npm:1.32.0" dependencies: prosemirror-model: ^1.16.0 prosemirror-state: ^1.0.0 prosemirror-transform: ^1.1.0 - checksum: 879ebd71053aa17fb41d03dffd4df06f480dc4e3fa1155d523a22d7ad55b9b72b96be86bb1ae4aca722c3485e5defabccfd79c31091d0f45f5f2f325eb07609a + checksum: eabc39c7387685cf50c25a40d788908754daaa8614e8dd2ed690cfb4ccf7dffef92a643072ece020e3dfcf14d1e5759d386c66434605fa9da429c59ff3780e7f languageName: node linkType: hard @@ -10046,7 +10969,7 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5": +"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" dependencies: @@ -10357,17 +11280,17 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.3": - version: 1.0.3 - resolution: "reflect.getprototypeof@npm:1.0.3" +"reflect.getprototypeof@npm:^1.0.4": + version: 1.0.4 + resolution: "reflect.getprototypeof@npm:1.0.4" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.1 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 globalthis: ^1.0.3 which-builtin-type: ^1.1.3 - checksum: 843e2506c013da66f83635f943c5bd41243bc6c7703298531cfb16eb6baaefd92f83031fa37140ad31c4edc86938b6eb385e6fc85bf1628e79348ed49e044f3d + checksum: 16e2361988dbdd23274b53fb2b1b9cefeab876c3941a2543b4cadac6f989e3db3957b07a44aac46cfceb3e06e2871785ec2aac992d824f76292f3b5ee87f66f2 languageName: node linkType: hard @@ -10378,14 +11301,21 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 + languageName: node + linkType: hard + +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 5891e792eae1dfc3da91c6fda76d6c3de0333a60aa5ad848982ebb6dccaa06e86385fb1235a1582c680a3d445d31be01c6bfc0804ebbcab5aaf53fa856fde6b6 languageName: node linkType: hard @@ -10417,6 +11347,16 @@ __metadata: languageName: node linkType: hard +"resolve-dir@npm:^1.0.0": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: ^2.0.0 + global-modules: ^1.0.0 + checksum: ef736b8ed60d6645c3b573da17d329bfb50ec4e1d6c5ffd6df49e3497acef9226f9810ea6823b8ece1560e01dcb13f77a9f6180d4f242d00cc9a8f4de909c65c + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -10440,16 +11380,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.4, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.4, resolve@npm:^1.4.0": - version: 1.22.4 - resolution: "resolve@npm:1.22.4" +"resolve@npm:^1.1.4, resolve@npm:^1.11.0, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.4, resolve@npm:^1.4.0": + version: 1.22.6 + resolution: "resolve@npm:1.22.6" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 + checksum: d13bf66d4e2ee30d291491f16f2fa44edd4e0cefb85d53249dd6f93e70b2b8c20ec62f01b18662e3cd40e50a7528f18c4087a99490048992a3bb954cf3201a5b languageName: node linkType: hard @@ -10466,16 +11406,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": - version: 1.22.4 - resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" +"resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.11.0#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc + checksum: 9d3b3c67aefd12cecbe5f10ca4d1f51ea190891096497c43f301b086883b426466918c3a64f1bbf1788fabb52b579d58809614006c5d0b49186702b3b8fb746a languageName: node linkType: hard @@ -10545,9 +11485,59 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.27.1": - version: 3.28.1 - resolution: "rollup@npm:3.28.1" +"rollup-plugin-dts@npm:^1.4.7": + version: 1.4.14 + resolution: "rollup-plugin-dts@npm:1.4.14" + dependencies: + "@babel/code-frame": ^7.10.4 + peerDependencies: + rollup: ^2.33.1 + typescript: ^4.0.5 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: 9b711bd4985d46a16d70c6df0e0873ffddefff78a127d60acf1893c68e2f3013f1ca8386ccdc4897f66382a9f7b175eb2e5296b8cee20ca9ee75f145beccad0c + languageName: node + linkType: hard + +"rollup-plugin-minify-html-literals@npm:^1.2.4": + version: 1.2.6 + resolution: "rollup-plugin-minify-html-literals@npm:1.2.6" + dependencies: + minify-html-literals: ^1.3.5 + rollup-pluginutils: ^2.8.2 + peerDependencies: + rollup: ^0.65.2 || ^1.0.0 || ^2.0.0 + checksum: 47eea38e8ce6b91359b32412ccfdb5f26b9b476d8baaaf194906b4500b015e43a37e025a715628dc563d262d2d759e16b8489212f51be55460ec9443bb7c753b + languageName: node + linkType: hard + +"rollup-plugin-terser@npm:^6.1.0": + version: 6.1.0 + resolution: "rollup-plugin-terser@npm:6.1.0" + dependencies: + "@babel/code-frame": ^7.8.3 + jest-worker: ^26.0.0 + serialize-javascript: ^3.0.0 + terser: ^4.7.0 + peerDependencies: + rollup: ^2.0.0 + checksum: 92b7ac4aac50623f4774559d758deb68c756250869820fabae7736accc70f768c123aeb3a7abbab6c5673eadfc46cfe039d1620eb62442b1469129c85278e390 + languageName: node + linkType: hard + +"rollup-pluginutils@npm:^2.8.2": + version: 2.8.2 + resolution: "rollup-pluginutils@npm:2.8.2" + dependencies: + estree-walker: ^0.6.1 + checksum: 339fdf866d8f4ff6e408fa274c0525412f7edb01dc46b5ccda51f575b7e0d20ad72965773376fb5db95a77a7fcfcab97bf841ec08dbadf5d6b08af02b7a2cf5e + languageName: node + linkType: hard + +"rollup@npm:^2.17.0": + version: 2.79.1 + resolution: "rollup@npm:2.79.1" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -10555,7 +11545,21 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 1fcab0929c16130218447c76c19b56ccc0e677110552462297e3679188fc70185a6ec418cef8ce138ec9fb78fd5188537a3f5d28762788e8c88b12a7fb8ba0fb + checksum: 6a2bf167b3587d4df709b37d149ad0300692cc5deb510f89ac7bdc77c8738c9546ae3de9322b0968e1ed2b0e984571f5f55aae28fa7de4cfcb1bc5402a4e2be6 + languageName: node + linkType: hard + +"rollup@npm:^3.27.1": + version: 3.29.3 + resolution: "rollup@npm:3.29.3" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 46dfbfbb57f2a53c79d67482a4a92146def3e5d939ecd914a99745d406dbb77598d4e3cc08057468628ae9fa5d7bfddb605a986b6fe1b6e952eda6db3dcabbe1 languageName: node linkType: hard @@ -10604,15 +11608,24 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-array-concat@npm:1.0.0" +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.0.1": + version: 1.0.1 + resolution: "safe-array-concat@npm:1.0.1" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 isarray: ^2.0.5 - checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581 languageName: node linkType: hard @@ -10658,22 +11671,22 @@ __metadata: linkType: hard "sass@npm:^1.56.1": - version: 1.67.0 - resolution: "sass@npm:1.67.0" + version: 1.68.0 + resolution: "sass@npm:1.68.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 9e7566e8b7386cf265dddcdb266a023fb5759c5a8f48a11da199c8bf419e5f08f4ff6404d85d6bf5eac01e1f7c7061fdb6b7b65cbfda164e59b0a06b72ac8567 + checksum: 65ccede83c96768beeb8dcaf67957b7c76b12ff1276bfd2849d7be151d46ba1400048a67717e6e5e4969bc75e87348e5530f5f272833f2e60a891c21a33d8ab0 languageName: node linkType: hard "sax@npm:>=0.6.0, sax@npm:^1.2.4": - version: 1.2.4 - resolution: "sax@npm:1.2.4" - checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd languageName: node linkType: hard @@ -10686,7 +11699,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -10715,6 +11728,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^3.0.0": + version: 3.1.0 + resolution: "serialize-javascript@npm:3.1.0" + dependencies: + randombytes: ^2.1.0 + checksum: 0fc0131a78168d6237cfe1b21564f20a3b9b72e8ceebb21935baacf026631ed636912c20c7e9fa721a8f27a247e6f9849e705f27032d19863333c2cfab16d1c9 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -10722,6 +11744,17 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + "sha.js@npm:^2.4.0, sha.js@npm:^2.4.8": version: 2.4.11 resolution: "sha.js@npm:2.4.11" @@ -10752,8 +11785,8 @@ __metadata: linkType: hard "sharp@npm:^0.32.4": - version: 0.32.5 - resolution: "sharp@npm:0.32.5" + version: 0.32.6 + resolution: "sharp@npm:0.32.6" dependencies: color: ^4.2.3 detect-libc: ^2.0.2 @@ -10764,7 +11797,7 @@ __metadata: simple-get: ^4.0.1 tar-fs: ^3.0.4 tunnel-agent: ^0.6.0 - checksum: 3cd6dc037c9ba126a30af90ac94043c4418bbb4228e15fd446638ff43fc9b14eabb553037988e484162c318f7baff21d896a5bef7dcc453f608e247d468f41e0 + checksum: 0cca1d16b1920800c0e22d27bc6305f4c67c9ebe44f67daceb30bf645ae39e7fb7dfbd7f5d6cd9f9eebfddd87ac3f7e2695f4eb906d19b7a775286238e6a29fc languageName: node linkType: hard @@ -10881,6 +11914,13 @@ __metadata: languageName: node linkType: hard +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -10930,6 +11970,16 @@ __metadata: languageName: node linkType: hard +"source-map-support@npm:^0.5.17, source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.12": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + languageName: node + linkType: hard + "source-map@npm:^0.5.0, source-map@npm:^0.5.7, source-map@npm:~0.5.3": version: 0.5.7 resolution: "source-map@npm:0.5.7" @@ -10937,13 +11987,20 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 languageName: node linkType: hard +"sourcemap-codec@npm:^1.4.8": + version: 1.4.8 + resolution: "sourcemap-codec@npm:1.4.8" + checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 + languageName: node + linkType: hard + "split-ca@npm:^1.0.1": version: 1.0.1 resolution: "split-ca@npm:1.0.1" @@ -11105,51 +12162,52 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.8": - version: 4.0.8 - resolution: "string.prototype.matchall@npm:4.0.8" + version: 4.0.10 + resolution: "string.prototype.matchall@npm:4.0.10" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - regexp.prototype.flags: ^1.4.3 + internal-slot: ^1.0.5 + regexp.prototype.flags: ^1.5.0 + set-function-name: ^2.0.0 side-channel: ^1.0.4 - checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 + checksum: 3c78bdeff39360c8e435d7c4c6ea19f454aa7a63eda95fa6fadc3a5b984446a2f9f2c02d5c94171ce22268a573524263fbd0c8edbe3ce2e9890d7cc036cdc3ed languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 languageName: node linkType: hard @@ -11295,11 +12353,11 @@ __metadata: linkType: hard "superjson@npm:^1.10.0": - version: 1.13.1 - resolution: "superjson@npm:1.13.1" + version: 1.13.3 + resolution: "superjson@npm:1.13.3" dependencies: copy-anything: ^3.0.2 - checksum: 9c8c664a924ce097250112428805ccc8b500018b31a91042e953d955108b8481c156005d836b413940c9fa5f124a3195f55f3a518fe76510a254a59f9151a204 + checksum: f5aeb010f24163cb871a4bc402d9164112201c059afc247a75b03131c274aea6eec9cf08be9e4a9465fe4961689009a011584528531d52f7cc91c077e07e5c75 languageName: node linkType: hard @@ -11312,7 +12370,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^7.1.0": +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: @@ -11411,8 +12469,8 @@ __metadata: linkType: hard "tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.15 - resolution: "tar@npm:6.1.15" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 @@ -11420,7 +12478,20 @@ __metadata: minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + +"terser@npm:^4.7.0": + version: 4.8.1 + resolution: "terser@npm:4.8.1" + dependencies: + commander: ^2.20.0 + source-map: ~0.6.1 + source-map-support: ~0.5.12 + bin: + terser: bin/terser + checksum: b342819bf7e82283059aaa3f22bb74deb1862d07573ba5a8947882190ad525fd9b44a15074986be083fd379c58b9a879457a330b66dcdb77b485c44267f9a55a languageName: node linkType: hard @@ -11492,10 +12563,20 @@ __metadata: languageName: node linkType: hard +"timers-ext@npm:^0.1.7": + version: 0.1.7 + resolution: "timers-ext@npm:0.1.7" + dependencies: + es5-ext: ~0.10.46 + next-tick: 1 + checksum: ef3f27a0702a88d885bcbb0317c3e3ecd094ce644da52e7f7d362394a125d9e3578292a8f8966071a980d8abbc3395725333b1856f3ae93835b46589f700d938 + languageName: node + linkType: hard + "tinybench@npm:^2.5.0": - version: 2.5.0 - resolution: "tinybench@npm:2.5.0" - checksum: 284bb9428f197ec8b869c543181315e65e41ccfdad3c4b6c916bb1fdae1b5c6785661b0d90cf135b48d833b03cb84dc5357b2d33ec65a1f5971fae0ab2023821 + version: 2.5.1 + resolution: "tinybench@npm:2.5.1" + checksum: 6d98526c00b68b50ab0a37590b3cc6713b96fee7dd6756a2a77bab071ed1b4a4fc54e7b11e28b35ec2f761c6a806c2befa95f10acf2fee111c49327b6fc3386f languageName: node linkType: hard @@ -11572,11 +12653,45 @@ __metadata: linkType: hard "ts-api-utils@npm:^1.0.1": - version: 1.0.2 - resolution: "ts-api-utils@npm:1.0.2" + version: 1.0.3 + resolution: "ts-api-utils@npm:1.0.3" peerDependencies: typescript: ">=4.2.0" - checksum: 6375e12ba90b6cbe73f564405248da14c52aa44b62b386e1cbbb1da2640265dd33e99d3e019688dffa874e365cf596b161ccd49351e90638be825c2639697640 + checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 + languageName: node + linkType: hard + +"ts-node-esm@npm:^0.0.6": + version: 0.0.6 + resolution: "ts-node-esm@npm:0.0.6" + dependencies: + aria-build: ^0.4.3 + aria-fs: ^0.4.3 + peerDependencies: + typescript: "*" + bin: + ts-node-esm: bin/cli.mjs + checksum: e54e872c644a5f1de194888a99ca14c7815a805348f5353765d308cfa37d91dc8ff600db269a4e7c4f7c31262daea061f0622996d9c29708d90ab2ca032a0f52 + languageName: node + linkType: hard + +"ts-node@npm:^8.10.2": + version: 8.10.2 + resolution: "ts-node@npm:8.10.2" + dependencies: + arg: ^4.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + source-map-support: ^0.5.17 + yn: 3.1.1 + peerDependencies: + typescript: ">=2.7" + bin: + ts-node: dist/bin.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 480adb076fdab6dbabd726c6056d651ddc567feda0d3e4770d809c01d000715a0f61f80be0e4a92ef87b7f4a494b79d9595d62de4a3931d740122ae26f0e10d8 languageName: node linkType: hard @@ -11839,6 +12954,20 @@ __metadata: languageName: node linkType: hard +"type@npm:^1.0.1": + version: 1.2.0 + resolution: "type@npm:1.2.0" + checksum: dae8c64f82c648b985caf321e9dd6e8b7f4f2e2d4f846fc6fd2c8e9dc7769382d8a52369ddbaccd59aeeceb0df7f52fb339c465be5f2e543e81e810e413451ee + languageName: node + linkType: hard + +"type@npm:^2.7.2": + version: 2.7.2 + resolution: "type@npm:2.7.2" + checksum: 0f42379a8adb67fe529add238a3e3d16699d95b42d01adfe7b9a7c5da297f5c1ba93de39265ba30ffeb37dfd0afb3fb66ae09f58d6515da442219c086219f6f4 + languageName: node + linkType: hard + "typed-array-buffer@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-buffer@npm:1.0.0" @@ -11900,6 +13029,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^2.9.2 || ^3.0.0 || ^4.0.0": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + languageName: node + linkType: hard + "typescript@npm:^5.1.0": version: 5.2.2 resolution: "typescript@npm:5.2.2" @@ -11910,6 +13049,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^2.9.2 || ^3.0.0 || ^4.0.0#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 + languageName: node + linkType: hard + "typescript@patch:typescript@^5.1.0#~builtin": version: 5.2.2 resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=5da071" @@ -11927,10 +13076,19 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.1.2": - version: 1.2.0 - resolution: "ufo@npm:1.2.0" - checksum: eaac059b5fd64a6f80557093a49bb6bfd5d97aca433e641d5022db9cbd4be3e6a4011d2ffe1254cdb2fc8ab5cbe9942b0af834ee7ac7c63240ab542f5981f68e +"ufo@npm:^1.3.0": + version: 1.3.0 + resolution: "ufo@npm:1.3.0" + checksum: 01f0be86cd5c205ad1b49ebea985e000a4542c503ee75398302b0f5e4b9a6d9cd8e77af2dc614ab7bea08805fdfd9a85191fb3b5ee3df383cb936cf65e9db30d + languageName: node + linkType: hard + +"uglify-js@npm:^3.5.1": + version: 3.17.4 + resolution: "uglify-js@npm:3.17.4" + bin: + uglifyjs: bin/uglifyjs + checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 languageName: node linkType: hard @@ -11995,9 +13153,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.11": - version: 1.0.11 - resolution: "update-browserslist-db@npm:1.0.11" +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" dependencies: escalade: ^3.1.1 picocolors: ^1.0.0 @@ -12005,7 +13163,14 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + +"upper-case@npm:^1.1.1": + version: 1.1.3 + resolution: "upper-case@npm:1.1.3" + checksum: 991c845de75fa56e5ad983f15e58494dd77b77cadd79d273cc11e8da400067e9881ae1a52b312aed79b3d754496e2e0712e08d22eae799e35c7f9ba6f3d8a85d languageName: node linkType: hard @@ -12036,12 +13201,12 @@ __metadata: linkType: hard "url@npm:~0.11.0": - version: 0.11.2 - resolution: "url@npm:0.11.2" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: punycode: ^1.4.1 qs: ^6.11.2 - checksum: da5943ab43f4df75af5ed96d8465e3084fc2ea0f01bc73e98fb60899777a644541ea0022451371a419283a27a8bbd1809292212fb4c78a0b4a70f15fd89b8205 + checksum: f9e7886f46a16f96d2e42fbcc5d682c231c55ef5442c1ff66150c0f6556f6e3a97d094a84f51be15ec2432711d212eb60426659ce418f5fcadeaa3f601532c4e languageName: node linkType: hard @@ -12186,11 +13351,11 @@ __metadata: linkType: hard "video.js@npm:^7 || ^8, video.js@npm:^8.0.3": - version: 8.5.3 - resolution: "video.js@npm:8.5.3" + version: 8.6.0 + resolution: "video.js@npm:8.6.0" dependencies: "@babel/runtime": ^7.12.5 - "@videojs/http-streaming": 3.5.3 + "@videojs/http-streaming": 3.6.0 "@videojs/vhs-utils": ^4.0.0 "@videojs/xhr": 2.6.0 aes-decrypter: ^4.0.1 @@ -12203,7 +13368,7 @@ __metadata: videojs-contrib-quality-levels: 4.0.0 videojs-font: 4.1.0 videojs-vtt.js: 0.15.5 - checksum: a130bee75c8f94ebeea3a720baa60bda0328b318f87bfc450ab78b67672f06c830c3ff22af5f8f59ce325e3e57ecd38f20e4446e4b795b8e75914d5828d15b39 + checksum: de950f685ba584dfa76cb3cf2f1c18038bc7d6d0a06a50a50ee58af769c67f0abcdedbfb421e32be93557fd0b83d1239e9b2d8df1434b64f1a8d7bbc43ddd3ab languageName: node linkType: hard @@ -12519,7 +13684,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": version: 1.1.11 resolution: "which-typed-array@npm:1.1.11" dependencies: @@ -12532,6 +13697,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^1.2.14": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -12564,6 +13740,13 @@ __metadata: languageName: node linkType: hard +"wordwrap@npm:>=0.0.2": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -12766,7 +13949,7 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.21.4": +"zod@npm:^3.20.2, zod@npm:^3.21.4": version: 3.22.2 resolution: "zod@npm:3.22.2" checksum: 231e2180c8eabb56e88680d80baff5cf6cbe6d64df3c44c50ebe52f73081ecd0229b1c7215b9552537f537a36d9e36afac2737ddd86dc14e3519bdbc777e82b9 From 2b5e2094fa534a94aa163c30c7f490d4c9bf8494 Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Sun, 8 Oct 2023 12:12:44 +0200 Subject: [PATCH 25/62] =?UTF-8?q?=F0=9F=8C=90=20New=20Crowdin=20updates=20?= =?UTF-8?q?(#1433)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locales/da/modules/dns-hole-controls.json | 6 +++ public/locales/da/modules/weather.json | 2 +- .../locales/de/modules/dns-hole-controls.json | 6 +++ public/locales/de/modules/weather.json | 2 +- public/locales/el/authentication/invite.json | 20 ++++---- public/locales/el/authentication/login.json | 8 ++-- public/locales/el/boards/common.json | 2 +- public/locales/el/boards/customize.json | 14 +++--- public/locales/el/common.json | 6 +-- public/locales/el/layout/header.json | 28 +++++------ public/locales/el/layout/manage.json | 2 +- public/locales/el/manage/index.json | 2 +- public/locales/el/manage/users/create.json | 16 +++---- public/locales/el/manage/users/invites.json | 14 +++--- .../locales/el/modules/dns-hole-controls.json | 6 +++ public/locales/el/modules/weather.json | 2 +- .../el/settings/customization/general.json | 4 +- public/locales/el/user/preferences.json | 22 ++++----- public/locales/el/zod.json | 18 +++---- public/locales/es/authentication/invite.json | 10 ++-- public/locales/es/authentication/login.json | 4 +- public/locales/es/boards/common.json | 2 +- public/locales/es/boards/customize.json | 4 +- public/locales/es/layout/header.json | 4 +- public/locales/es/manage/boards.json | 8 ++-- public/locales/es/manage/index.json | 4 +- public/locales/es/manage/users.json | 16 +++---- public/locales/es/manage/users/create.json | 8 ++-- public/locales/es/manage/users/invites.json | 16 +++---- .../locales/es/modules/dns-hole-controls.json | 6 +++ public/locales/es/modules/weather.json | 2 +- .../es/settings/customization/access.json | 2 +- .../es/settings/customization/general.json | 2 +- public/locales/es/tools/docker.json | 14 +++--- public/locales/es/user/preferences.json | 10 ++-- public/locales/es/zod.json | 16 +++---- public/locales/fr/layout/header.json | 4 +- public/locales/fr/layout/manage.json | 2 +- public/locales/fr/manage/boards.json | 2 +- public/locales/fr/manage/index.json | 2 +- public/locales/fr/manage/users.json | 10 ++-- public/locales/fr/manage/users/invites.json | 4 +- .../locales/fr/modules/dns-hole-controls.json | 8 +++- public/locales/fr/modules/weather.json | 2 +- .../fr/settings/general/config-changer.json | 2 +- public/locales/fr/tools/docker.json | 2 +- public/locales/he/layout/manage.json | 18 +++---- public/locales/he/manage/boards.json | 28 +++++------ public/locales/he/manage/index.json | 20 ++++---- public/locales/he/manage/users.json | 6 +-- public/locales/he/manage/users/invites.json | 34 ++++++------- .../locales/he/modules/dns-hole-controls.json | 6 +++ public/locales/he/modules/weather.json | 2 +- public/locales/he/password-requirements.json | 8 +++- .../he/settings/customization/access.json | 4 +- public/locales/he/tools/docker.json | 6 +-- .../locales/hr/modules/dns-hole-controls.json | 6 +++ public/locales/hu/boards/common.json | 2 +- .../locales/hu/modules/dns-hole-controls.json | 6 +++ public/locales/hu/modules/weather.json | 2 +- .../hu/settings/customization/access.json | 4 +- public/locales/it/authentication/invite.json | 20 ++++---- public/locales/it/authentication/login.json | 8 ++-- public/locales/it/boards/common.json | 2 +- public/locales/it/boards/customize.json | 24 +++++----- public/locales/it/common.json | 6 +-- public/locales/it/layout/header.json | 28 +++++------ public/locales/it/layout/manage.json | 20 ++++---- public/locales/it/manage/boards.json | 28 +++++------ public/locales/it/manage/index.json | 22 ++++----- public/locales/it/manage/users.json | 28 +++++------ public/locales/it/manage/users/create.json | 38 +++++++-------- public/locales/it/manage/users/invites.json | 48 +++++++++---------- .../locales/it/modules/dns-hole-controls.json | 6 +++ public/locales/it/modules/weather.json | 2 +- public/locales/it/password-requirements.json | 8 +++- .../it/settings/customization/access.json | 4 +- .../it/settings/customization/general.json | 4 +- public/locales/it/tools/docker.json | 18 +++---- public/locales/it/user/preferences.json | 22 ++++----- public/locales/it/zod.json | 18 +++---- .../locales/ja/modules/dns-hole-controls.json | 6 +++ public/locales/ja/modules/weather.json | 2 +- .../locales/ko/modules/dns-hole-controls.json | 6 +++ .../lol/modules/dns-hole-controls.json | 6 +++ .../locales/lv/modules/dns-hole-controls.json | 6 +++ public/locales/lv/modules/weather.json | 2 +- .../locales/nl/modules/dns-hole-controls.json | 6 +++ .../locales/no/modules/dns-hole-controls.json | 6 +++ .../locales/pl/modules/dns-hole-controls.json | 6 +++ .../locales/pt/modules/dns-hole-controls.json | 6 +++ .../locales/ru/modules/dns-hole-controls.json | 6 +++ public/locales/ru/modules/weather.json | 2 +- .../locales/sk/modules/dns-hole-controls.json | 6 +++ public/locales/sk/modules/weather.json | 2 +- .../locales/sl/modules/dns-hole-controls.json | 6 +++ .../locales/sv/modules/dns-hole-controls.json | 6 +++ public/locales/sv/modules/weather.json | 2 +- .../locales/tr/modules/dns-hole-controls.json | 6 +++ public/locales/tr/modules/weather.json | 2 +- public/locales/uk/authentication/login.json | 4 +- public/locales/uk/common.json | 8 ++-- .../uk/layout/element-selector/selector.json | 14 +++--- public/locales/uk/layout/header.json | 2 +- public/locales/uk/manage/boards.json | 6 +-- public/locales/uk/modules/calendar.json | 20 ++++---- public/locales/uk/modules/date.json | 16 +++---- .../locales/uk/modules/dns-hole-controls.json | 6 +++ public/locales/uk/modules/weather.json | 2 +- .../uk/settings/general/search-engine.json | 2 +- public/locales/uk/user/preferences.json | 2 +- .../locales/vi/modules/dns-hole-controls.json | 6 +++ public/locales/zh/manage/boards.json | 6 +-- public/locales/zh/manage/users.json | 6 +-- public/locales/zh/manage/users/create.json | 4 +- public/locales/zh/manage/users/invites.json | 10 ++-- public/locales/zh/modules/bookmark.json | 2 +- public/locales/zh/modules/dashdot.json | 6 +-- .../locales/zh/modules/dns-hole-controls.json | 6 +++ public/locales/zh/modules/weather.json | 2 +- .../zh/settings/customization/general.json | 2 +- public/locales/zh/user/preferences.json | 2 +- 122 files changed, 619 insertions(+), 457 deletions(-) diff --git a/public/locales/da/modules/dns-hole-controls.json b/public/locales/da/modules/dns-hole-controls.json index 6e491e671..737618c61 100644 --- a/public/locales/da/modules/dns-hole-controls.json +++ b/public/locales/da/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Vis 'Aktiver/deaktiver alle'-knapper" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/da/modules/weather.json b/public/locales/da/modules/weather.json index eae55681e..5b46ca9c7 100644 --- a/public/locales/da/modules/weather.json +++ b/public/locales/da/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Ukendt" } }, - "error": "Der er opstået en fejl" + "error": "" } diff --git a/public/locales/de/modules/dns-hole-controls.json b/public/locales/de/modules/dns-hole-controls.json index 5e585ad72..557ebb019 100644 --- a/public/locales/de/modules/dns-hole-controls.json +++ b/public/locales/de/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Schaltflächen \"Alle aktivieren/deaktivieren\" anzeigen" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/de/modules/weather.json b/public/locales/de/modules/weather.json index e38eae274..4ed04f998 100644 --- a/public/locales/de/modules/weather.json +++ b/public/locales/de/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Unbekannt" } }, - "error": "Ein Fehler ist aufgetreten" + "error": "" } diff --git a/public/locales/el/authentication/invite.json b/public/locales/el/authentication/invite.json index 3daebb90d..36da398c0 100644 --- a/public/locales/el/authentication/invite.json +++ b/public/locales/el/authentication/invite.json @@ -1,7 +1,7 @@ { - "metaTitle": "", - "title": "", - "text": "", + "metaTitle": "Δημιουργία λογαριασμού", + "title": "Δημιουργία λογαριασμού", + "text": "Παρακαλώ καθορίστε τα διαπιστευτήριά σας παρακάτω", "form": { "fields": { "username": { @@ -11,25 +11,25 @@ "label": "Κωδικός" }, "passwordConfirmation": { - "label": "" + "label": "Επιβεβαίωση κωδικού" } }, "buttons": { - "submit": "" + "submit": "Δημιουργία λογαριασμού" } }, "notifications": { "loading": { - "title": "", - "text": "" + "title": "Δημιουργία λογαριασμού", + "text": "Παρακαλώ περιμένετε" }, "success": { - "title": "", - "text": "" + "title": "Ο λογαριασμός δημιουργήθηκε", + "text": "Ο λογαριασμός σας έχει δημιουργηθεί επιτυχώς" }, "error": { "title": "Σφάλμα", - "text": "" + "text": "Κάτι πήγε στραβά, προέκυψε το ακόλουθο σφάλμα: {{error}}" } } } \ No newline at end of file diff --git a/public/locales/el/authentication/login.json b/public/locales/el/authentication/login.json index bc6257e63..482657f6d 100644 --- a/public/locales/el/authentication/login.json +++ b/public/locales/el/authentication/login.json @@ -1,7 +1,7 @@ { - "metaTitle": "", + "metaTitle": "Σύνδεση", "title": "Καλώς ήρθατε!", - "text": "", + "text": "Παρακαλώ εισάγετε τα στοιχεία σας", "form": { "fields": { "username": { @@ -14,7 +14,7 @@ "buttons": { "submit": "Σύνδεση" }, - "afterLoginRedirection": "" + "afterLoginRedirection": "Μετά τη σύνδεση, θα μεταφερθείτε στο {{url}}" }, - "alert": "" + "alert": "Τα διαπιστευτήριά σας είναι λανθασμένα ή αυτός ο λογαριασμός δεν υπάρχει. Προσπαθήστε ξανά." } \ No newline at end of file diff --git a/public/locales/el/boards/common.json b/public/locales/el/boards/common.json index a70db06bf..2b880351c 100644 --- a/public/locales/el/boards/common.json +++ b/public/locales/el/boards/common.json @@ -1,5 +1,5 @@ { "header": { - "customize": "" + "customize": "Προσαρμογή ταμπλό" } } \ No newline at end of file diff --git a/public/locales/el/boards/customize.json b/public/locales/el/boards/customize.json index cf7880317..8222917ef 100644 --- a/public/locales/el/boards/customize.json +++ b/public/locales/el/boards/customize.json @@ -1,16 +1,16 @@ { - "metaTitle": "", - "pageTitle": "", - "backToBoard": "", + "metaTitle": "Προσαρμογή {{name}} ταμπλό", + "pageTitle": "Προσαρμογή για το ταμπλό {{name}}", + "backToBoard": "Πίσω στο ταμπλό", "settings": { "appearance": { - "primaryColor": "", - "secondaryColor": "" + "primaryColor": "Βασικό χρώμα", + "secondaryColor": "Δευτερεύον χρώμα" } }, "save": { - "button": "", - "note": "" + "button": "Αποθήκευση αλλαγών", + "note": "Προσοχή, έχετε μη αποθηκευμένες αλλαγές!" }, "notifications": { "pending": { diff --git a/public/locales/el/common.json b/public/locales/el/common.json index fed7fab4d..f2f419762 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -3,12 +3,12 @@ "about": "Σχετικά", "cancel": "Ακύρωση", "close": "Κλείσιμο", - "back": "", + "back": "Πίσω", "delete": "Διαγραφή", "ok": "ΟΚ", "edit": "Επεξεργασία", - "next": "", - "previous": "", + "next": "Επόμενο", + "previous": "Προηγούμενο", "confirm": "Επιβεβαίωση", "enabled": "Ενεργοποιημένο", "disabled": "Απενεργοποιημένο", diff --git a/public/locales/el/layout/header.json b/public/locales/el/layout/header.json index 7f911ef5b..0b4c3409f 100644 --- a/public/locales/el/layout/header.json +++ b/public/locales/el/layout/header.json @@ -1,34 +1,34 @@ { "experimentalNote": { - "label": "" + "label": "Αυτή είναι μια πειραματική λειτουργία του Homarr. Αναφέρετε τυχόν προβλήματα στο GitHub ή στο Discord." }, "search": { - "label": "", + "label": "Αναζήτηση", "engines": { - "web": "", - "youtube": "", - "torrent": "", - "movie": "" + "web": "Αναζήτηση για {{query}} στο διαδίκτυο", + "youtube": "Αναζήτηση για {{query}} στο YouTube", + "torrent": "Αναζήτηση για {{query}} torrents", + "movie": "Αναζήτηση για {{query}} στο {{app}}" } }, "actions": { "avatar": { - "switchTheme": "", - "preferences": "", - "defaultBoard": "", - "manage": "", + "switchTheme": "Αλλαγή θέματος", + "preferences": "Προτιμήσεις χρήστη", + "defaultBoard": "Προεπιλεγμένο ταμπλό", + "manage": "Διαχείριση", "about": { "label": "Σχετικά", - "new": "" + "new": "Νέο" }, - "logout": "", - "login": "" + "logout": "Αποσύνδεση από {{username}}", + "login": "Σύνδεση" } }, "modals": { "movie": { "title": "", - "topResults": "" + "topResults": "Κορυφαία αποτελέσματα {{count}} για {{search}}." } } } \ No newline at end of file diff --git a/public/locales/el/layout/manage.json b/public/locales/el/layout/manage.json index e697aaaad..a6403c64e 100644 --- a/public/locales/el/layout/manage.json +++ b/public/locales/el/layout/manage.json @@ -9,7 +9,7 @@ "users": { "title": "", "items": { - "manage": "", + "manage": "Διαχείριση", "invites": "" } }, diff --git a/public/locales/el/manage/index.json b/public/locales/el/manage/index.json index 5c5b4c0b9..830c6f320 100644 --- a/public/locales/el/manage/index.json +++ b/public/locales/el/manage/index.json @@ -1,5 +1,5 @@ { - "metaTitle": "", + "metaTitle": "Διαχείριση", "hero": { "title": "", "fallbackUsername": "", diff --git a/public/locales/el/manage/users/create.json b/public/locales/el/manage/users/create.json index e5c7960ff..ae52192ca 100644 --- a/public/locales/el/manage/users/create.json +++ b/public/locales/el/manage/users/create.json @@ -1,26 +1,26 @@ { - "metaTitle": "", + "metaTitle": "Δημιουργία χρήστη", "steps": { "account": { - "title": "", - "text": "", + "title": "Πρώτο βήμα", + "text": "Δημιουργία λογαριασμού", "username": { "label": "Όνομα Χρήστη" }, "email": { - "label": "" + "label": "E-Mail" } }, "security": { - "title": "", + "title": "Δεύτερο βήμα", "text": "Κωδικός", "password": { "label": "Κωδικός" } }, "finish": { - "title": "", - "text": "", + "title": "Επιβεβαίωση", + "text": "Αποθήκευση στη βάση δεδομένων", "card": { "title": "", "text": "" @@ -30,7 +30,7 @@ "property": "", "value": "", "username": "Όνομα Χρήστη", - "email": "", + "email": "E-Mail", "password": "Κωδικός" }, "notSet": "", diff --git a/public/locales/el/manage/users/invites.json b/public/locales/el/manage/users/invites.json index 8ba8ec70c..68232674e 100644 --- a/public/locales/el/manage/users/invites.json +++ b/public/locales/el/manage/users/invites.json @@ -28,21 +28,21 @@ } }, "copy": { - "title": "", - "description": "", - "invitationLink": "", + "title": "Αντιγραφή πρόσκλησης", + "description": "Η πρόσκλησή σας έχει δημιουργηθεί. Αφού κλείσει αυτό το modal, δεν θα μπορείτε πλέον να αντιγράψετε αυτόν τον σύνδεσμο. Εάν δεν επιθυμείτε πλέον να προσκαλέσετε το εν λόγω άτομο, μπορείτε να διαγράψετε αυτή την πρόσκληση ανά πάσα στιγμή.", + "invitationLink": "Σύνδεσμος πρόσκλησης", "details": { "id": "", - "token": "" + "token": "Token" }, "button": { - "close": "" + "close": "Αντιγραφή & Απόρριψη" } }, "delete": { "title": "", - "description": "" + "description": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την πρόσκληση; Οι χρήστες με αυτόν τον σύνδεσμο δεν θα μπορούν πλέον να δημιουργήσουν λογαριασμό χρησιμοποιώντας αυτόν τον σύνδεσμο." } }, - "noInvites": "" + "noInvites": "Δεν υπάρχουν ακόμη προσκλήσεις." } \ No newline at end of file diff --git a/public/locales/el/modules/dns-hole-controls.json b/public/locales/el/modules/dns-hole-controls.json index 86842377b..1cfad7a51 100644 --- a/public/locales/el/modules/dns-hole-controls.json +++ b/public/locales/el/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Εμφάνιση Κουμπιών 'Ενεργοποίηση/Απενεργοποίηση Όλων'" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/el/modules/weather.json b/public/locales/el/modules/weather.json index c6f77a60b..40b4e6448 100644 --- a/public/locales/el/modules/weather.json +++ b/public/locales/el/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Άγνωστο" } }, - "error": "Προέκυψε ένα σφάλμα" + "error": "" } diff --git a/public/locales/el/settings/customization/general.json b/public/locales/el/settings/customization/general.json index d8970542e..0bbfc3be8 100644 --- a/public/locales/el/settings/customization/general.json +++ b/public/locales/el/settings/customization/general.json @@ -22,8 +22,8 @@ "description": "Διαμόρφωση του Homarr για χρήστες με αναπηρία και άτομα με ειδικές ανάγκες" }, "access": { - "name": "", - "description": "" + "name": "Πρόσβαση", + "description": "Ρυθμίστε ποιος έχει πρόσβαση στο ταμπλό σας" } } } diff --git a/public/locales/el/user/preferences.json b/public/locales/el/user/preferences.json index d6a1d970a..4773b749d 100644 --- a/public/locales/el/user/preferences.json +++ b/public/locales/el/user/preferences.json @@ -1,9 +1,9 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "Ρυθμίσεις", + "pageTitle": "Οι ρυθμίσεις σας", "boards": { "defaultBoard": { - "label": "" + "label": "Προεπιλεγμένο ταμπλο" } }, "accessibility": { @@ -22,11 +22,11 @@ "label": "Γλώσσα" }, "firstDayOfWeek": { - "label": "", + "label": "Πρώτη ημέρα της εβδομάδας", "options": { - "monday": "", - "saturday": "", - "sunday": "" + "monday": "Δευτέρα", + "saturday": "Σάββατο", + "sunday": "Κυριακή" } } }, @@ -34,15 +34,15 @@ "title": "Μηχανή αναζήτησης", "custom": "Προσαρμοσμένη", "newTab": { - "label": "" + "label": "Άνοιγμα αποτελεσμάτων αναζήτησης σε νέα καρτέλα" }, "autoFocus": { - "label": "", - "description": "" + "label": "Εστίαση της γραμμής αναζήτησης κατά τη φόρτωση της σελίδας.", + "description": "Αυτό θα εστιάσει αυτόματα τη γραμμή αναζήτησης, όταν μεταβείτε στις σελίδες του πίνακα. Θα λειτουργήσει μόνο σε συσκευές γραφείου." }, "template": { "label": "Ερώτημα URL", - "description": "" + "description": "Χρησιμοποιήστε το %s ως placeholder για το query" } } } \ No newline at end of file diff --git a/public/locales/el/zod.json b/public/locales/el/zod.json index 3abe6cbd8..694932a86 100644 --- a/public/locales/el/zod.json +++ b/public/locales/el/zod.json @@ -1,22 +1,22 @@ { "errors": { - "default": "", + "default": "Το πεδίο δεν είναι έγκυρο", "required": "Αυτό το πεδίο είναι υποχρεωτικό", "string": { - "startsWith": "", - "endsWith": "", - "includes": "" + "startsWith": "Αυτό το πεδίο πρέπει να ξεκινά με {{startsWith}}", + "endsWith": "Το πεδίο αυτό πρέπει να τελειώνει με {{endsWith}}", + "includes": "Το πεδίο αυτό πρέπει να περιλαμβάνει το {{includes}}" }, "tooSmall": { - "string": "", - "number": "" + "string": "Το πεδίο αυτό πρέπει να έχει μήκος τουλάχιστον {{minimum}} χαρακτήρες", + "number": "Το πεδίο αυτό πρέπει να είναι μεγαλύτερο ή ίσο του {{minimum}}" }, "tooBig": { - "string": "", - "number": "" + "string": "Το πεδίο αυτό πρέπει να έχει μήκος το πολύ {{maximum}} χαρακτήρες", + "number": "Το πεδίο αυτό πρέπει να είναι μικρότερο ή ίσο του {{maximum}}" }, "custom": { - "passwordMatch": "" + "passwordMatch": "Οι κωδικοί πρέπει να είναι ίδιοι" } } } \ No newline at end of file diff --git a/public/locales/es/authentication/invite.json b/public/locales/es/authentication/invite.json index ae924564d..1d273f1bc 100644 --- a/public/locales/es/authentication/invite.json +++ b/public/locales/es/authentication/invite.json @@ -1,7 +1,7 @@ { - "metaTitle": "Crear Cuenta", - "title": "Crear Cuenta", - "text": "Por favor, define tus credenciales abajo", + "metaTitle": "Crear cuenta", + "title": "Crear cuenta", + "text": "Por favor, define tus credenciales a continuación", "form": { "fields": { "username": { @@ -25,11 +25,11 @@ }, "success": { "title": "Cuenta creada", - "text": "Tu cuenta ha sido creada correctamente" + "text": "Tu cuenta ha sido creada con éxito" }, "error": { "title": "Error", - "text": "Algo salió mal, se obtuvo el siguiente error: {{error}}" + "text": "Algo salió mal, se encontró el siguiente error: {{error}}" } } } \ No newline at end of file diff --git a/public/locales/es/authentication/login.json b/public/locales/es/authentication/login.json index c15a40531..9b7ea0ed5 100644 --- a/public/locales/es/authentication/login.json +++ b/public/locales/es/authentication/login.json @@ -14,7 +14,7 @@ "buttons": { "submit": "Iniciar sesión" }, - "afterLoginRedirection": "Después de iniciar sesión, serás redireccionado a {{url}}" + "afterLoginRedirection": "Después de iniciar sesión, serás redirigido a {{url}}" }, - "alert": "Tus credenciales son incorrectas, o la cuenta no existe. Por favor, prueba otra vez." + "alert": "Tus credenciales son incorrectas o esta cuenta no existe. Por favor, inténtalo de nuevo." } \ No newline at end of file diff --git a/public/locales/es/boards/common.json b/public/locales/es/boards/common.json index a3158ddcb..6b508966e 100644 --- a/public/locales/es/boards/common.json +++ b/public/locales/es/boards/common.json @@ -1,5 +1,5 @@ { "header": { - "customize": "Personalizado tablero" + "customize": "Personalizar tablero" } } \ No newline at end of file diff --git a/public/locales/es/boards/customize.json b/public/locales/es/boards/customize.json index 8238885a6..54408aa30 100644 --- a/public/locales/es/boards/customize.json +++ b/public/locales/es/boards/customize.json @@ -19,11 +19,11 @@ }, "success": { "title": "Personalización guardada", - "message": "Tu personalización ha sido guardada correctamente" + "message": "Tu personalización se ha guardado correctamente" }, "error": { "title": "Error", - "message": "Imposible guardar cambios" + "message": "No se pueden guardar los cambios" } } } \ No newline at end of file diff --git a/public/locales/es/layout/header.json b/public/locales/es/layout/header.json index 0ae4e7386..870b2546c 100644 --- a/public/locales/es/layout/header.json +++ b/public/locales/es/layout/header.json @@ -7,7 +7,7 @@ "engines": { "web": "Buscar {{query}} en la web", "youtube": "Buscar {{query}} en YouTube", - "torrent": "Buscar {{query}} torrents", + "torrent": "Buscar {{query}} en torrents", "movie": "Buscar {{query}} en {{app}}" } }, @@ -15,7 +15,7 @@ "avatar": { "switchTheme": "Cambiar tema", "preferences": "Preferencias de usuario", - "defaultBoard": "Dashboard por defecto", + "defaultBoard": "Panel predeterminado", "manage": "Administrar", "about": { "label": "Acerca de", diff --git a/public/locales/es/manage/boards.json b/public/locales/es/manage/boards.json index 1c757680a..54dbed2b3 100644 --- a/public/locales/es/manage/boards.json +++ b/public/locales/es/manage/boards.json @@ -11,10 +11,10 @@ "view": "Ver tablero" }, "menu": { - "setAsDefault": "Establecer como tu tablero por defecto", + "setAsDefault": "Establecer como tu tablero predeterminado", "delete": { "label": "Eliminar permanentemente", - "disabled": "Eliminación desactivida, porque versiones antiguas de los componentes de Homarr no permiten la eliminación de la configuración por defecto. La eliminación será posible en el futuro." + "disabled": "Eliminación deshabilitada, porque los componentes más antiguos de Homarr no permiten la eliminación de la configuración predeterminada. La eliminación será posible en el futuro." } }, "badges": { @@ -28,11 +28,11 @@ "modals": { "delete": { "title": "Eliminar tablero", - "text": "¿Seguro que quieres eliminar este tablero? Esta acción no puede ser deshecha, y tus datos se perderán de manera permanente." + "text": "¿Estás seguro de que deseas eliminar este tablero? Esta acción no se puede deshacer y tus datos se perderán permanentemente." }, "create": { "title": "Crear tablero", - "text": "El nombre no puede cambiarse después de que el tablero haya sido creado.", + "text": "El nombre no se puede cambiar una vez creado el tablero.", "form": { "name": { "label": "Nombre" diff --git a/public/locales/es/manage/index.json b/public/locales/es/manage/index.json index 84028ee0b..f8c61edba 100644 --- a/public/locales/es/manage/index.json +++ b/public/locales/es/manage/index.json @@ -3,7 +3,7 @@ "hero": { "title": "Bienvenido/a de nuevo, {{username}}", "fallbackUsername": "Anónimo", - "subtitle": "Bienvenido/a a su centro de aplicaciones. ¡Organiza, optimiza y conquista!" + "subtitle": "Bienvenido/a a tu centro de aplicaciones. ¡Organiza, optimiza y conquista!" }, "quickActions": { "title": "Acciones rápidas", @@ -13,7 +13,7 @@ }, "inviteUsers": { "title": "Invitar a un nuevo usuario", - "subtitle": "Crea y envía una invitación para el registro" + "subtitle": "Crear y enviar una invitación para registrarse" }, "manageUsers": { "title": "Administrar usuarios", diff --git a/public/locales/es/manage/users.json b/public/locales/es/manage/users.json index 4b38059a8..415e3697c 100644 --- a/public/locales/es/manage/users.json +++ b/public/locales/es/manage/users.json @@ -1,7 +1,7 @@ { "metaTitle": "Usuarios", "pageTitle": "Administrar usuarios", - "text": "Usando usuarios, puedes configurar quien pueda editar tus dashboards. Versiones futuras de Homarr tendrán aún más control granular sobre los permisos y tableros.", + "text": "Mediante los usuarios, puedes configurar quién puede editar tus paneles. Las versiones futuras de Homarr tendrán un control aún más granular sobre los permisos y los tableros.", "buttons": { "create": "Crear" }, @@ -12,22 +12,22 @@ }, "tooltips": { "deleteUser": "Eliminar usuario", - "demoteAdmin": "Relevar administrador", - "promoteToAdmin": "Ascender a administrador" + "demoteAdmin": "Degradar administrador", + "promoteToAdmin": "Promover a administrador" }, "modals": { "delete": { "title": "Eliminar usuario {{name}}", - "text": "¿Seguro que quieres eliminar el usuario {{name}}? Esto eliminará todo dato asociado a dicha cuenta, pero no los dashboards creados por el usuario." + "text": "¿Estás seguro de que deseas eliminar el usuario {{name}}? Esto eliminará los datos asociados con esta cuenta, pero no los paneles creados por este usuario." }, "change-role": { "promote": { - "title": "Ascender usuario {{name}} a administrador", - "text": "¿Seguro que quieres ascender al usuario {{name}} a administrador? Esto le dará acceso a todos los recursos de tu instancia de Homarr." + "title": "Promover al usuario {{name}} a administrador", + "text": "¿Estás seguro de que deseas promocionar al usuario {{name}} a administrador? Esto le dará al usuario acceso a todos los recursos en tu instancia de Homarr." }, "demote": { - "title": "Relevar usuario {{name}}, y volver a usuario", - "text": "¿Seguro que quieres relevar al usuario {{name}}, y volverlo a usuario? Esto eliminará el acceso de dicho usuario a todos los recursos de tu instancia de Homarr." + "title": "Degradar al usuario {{name}} a usuario", + "text": "¿Estás seguro de que deseas degradar al usuario {{name}} a usuario? Esto eliminará el acceso del usuario a todos los recursos en tu instancia de Homarr." }, "confirm": "Confirmar" } diff --git a/public/locales/es/manage/users/create.json b/public/locales/es/manage/users/create.json index 03e2f6fcf..306c8ab76 100644 --- a/public/locales/es/manage/users/create.json +++ b/public/locales/es/manage/users/create.json @@ -8,7 +8,7 @@ "label": "Nombre de usuario" }, "email": { - "label": "E-Mail" + "label": "Correo electrónico" } }, "security": { @@ -23,14 +23,14 @@ "text": "Guardar en la base de datos", "card": { "title": "Revisar datos introducidos", - "text": "Después de enviar los datos a la base de datos, el usuario podrá iniciar sesión. ¿Estás seguro de que quieres almacenar este usuario en la base de datos y activar el inicio de sesión?" + "text": "Después de enviar tus datos a la base de datos, el usuario podrá iniciar sesión. ¿Está seguro de que desea almacenar este usuario en la base de datos y activar el inicio de sesión?" }, "table": { "header": { "property": "Propiedad", "value": "Valor", "username": "Nombre de usuario", - "email": "E-Mail", + "email": "Correo electrónico", "password": "Contraseña" }, "notSet": "No configurado", @@ -40,7 +40,7 @@ }, "completed": { "alert": { - "title": "Usuario creado", + "title": "El usuario fue creado", "text": "El usuario fue creado en la base de datos. Ahora pueden iniciar sesión." } } diff --git a/public/locales/es/manage/users/invites.json b/public/locales/es/manage/users/invites.json index 1886b6bfc..c530c3e92 100644 --- a/public/locales/es/manage/users/invites.json +++ b/public/locales/es/manage/users/invites.json @@ -1,7 +1,7 @@ { "metaTitle": "Invitaciones de usuario", "pageTitle": "Administrar invitaciones de usuario", - "description": "Al usar invitaciones, puedes invitar usuarios a tu instancia de Homarr. Una invitación solo será válida por un cierto periodo de tiempo, y puede ser usada una única vez. La expiración debe ser entre 5 minutos y 12 meses desde su creación.", + "description": "Mediante invitaciones, puedes invitar usuarios a tu instancia de Homarr. Una invitación solo será válida por un período de tiempo determinado y podrá usarse una vez. La caducidad debe ser entre 5 minutos y 12 meses desde su creación.", "button": { "createInvite": "Crear invitación", "deleteInvite": "Eliminar invitación" @@ -10,26 +10,26 @@ "header": { "id": "ID", "creator": "Creador", - "expires": "Expira", + "expires": "Caduca", "action": "Acciones" }, "data": { - "expiresAt": "expirado el {{at}}", + "expiresAt": "Caducado {{at}}", "expiresIn": "en {{in}}" } }, "modals": { "create": { "title": "Crear invitación", - "description": "Después de la expiración, una invitación ya no será válida, y el destinatario de la invitación no podrá crear una cuenta.", + "description": "Después de la caducidad, una invitación ya no será válida y el destinatario de la invitación no podrá crear una cuenta.", "form": { - "expires": "Fecha de expiración", + "expires": "Fecha de caducidad", "submit": "Crear" } }, "copy": { "title": "Copiar invitación", - "description": "Tu invitación se ha generado. Después de que este modal se cierre, no podrás copiar más este enlace. Si ya no deseas invitar a esta persona, puedes eliminar la invitación en cualquier momento.", + "description": "Tu invitación ha sido generada. Después de que se cierre esta ventana, ya no podrás copiar este enlace. Si ya no deseas invitar a dicha persona, puedes eliminar esta invitación en cualquier momento.", "invitationLink": "Link de invitación", "details": { "id": "ID", @@ -41,8 +41,8 @@ }, "delete": { "title": "Eliminar invitación", - "description": "¿Seguro que quieres eliminar la invitación? Los usuarios con este enlace, no podrán crear una cuenta usando dicho enlace." + "description": "¿Estás seguro de que deseas eliminar esta invitación? Los usuarios con este enlace ya no podrán crear una cuenta usando ese enlace." } }, - "noInvites": "Sin invitaciones aún." + "noInvites": "Aún no hay invitaciones." } \ No newline at end of file diff --git a/public/locales/es/modules/dns-hole-controls.json b/public/locales/es/modules/dns-hole-controls.json index 733a07698..7cf58eee6 100644 --- a/public/locales/es/modules/dns-hole-controls.json +++ b/public/locales/es/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Mostrar botones 'Activar/Desactivar todos'" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/es/modules/weather.json b/public/locales/es/modules/weather.json index e69470cc7..1548e16dd 100644 --- a/public/locales/es/modules/weather.json +++ b/public/locales/es/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Desconocido" } }, - "error": "Ocurrió un error" + "error": "" } diff --git a/public/locales/es/settings/customization/access.json b/public/locales/es/settings/customization/access.json index 2ceac7ba3..d91d16e59 100644 --- a/public/locales/es/settings/customization/access.json +++ b/public/locales/es/settings/customization/access.json @@ -1,6 +1,6 @@ { "allowGuests": { "label": "Permitir anónimos", - "description": "Permitir usuarios que no estén logeados para poder ver tu tablero" + "description": "Permitir que los usuarios que no han iniciado sesión vean tu tablero" } } \ No newline at end of file diff --git a/public/locales/es/settings/customization/general.json b/public/locales/es/settings/customization/general.json index 89fead8fc..c98b95246 100644 --- a/public/locales/es/settings/customization/general.json +++ b/public/locales/es/settings/customization/general.json @@ -23,7 +23,7 @@ }, "access": { "name": "Acceso", - "description": "Configura quien tiene acceso a tu tablero" + "description": "Configura quién tiene acceso a tu tablero" } } } diff --git a/public/locales/es/tools/docker.json b/public/locales/es/tools/docker.json index 4ea7af848..0f89db477 100644 --- a/public/locales/es/tools/docker.json +++ b/public/locales/es/tools/docker.json @@ -2,30 +2,30 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Tu instancia de Homarr no tiene Docker configurado, o falló al obtener los contenedores. Por favor, comprueba la documentación sobre cómo configurar la integración." + "text": "Tu instancia de Homarr no tiene Docker configurado o no pudo recuperar contenedores. Por favor, consulta la documentación sobre cómo configurar la integración." } }, "modals": { "selectBoard": { "title": "Selecciona un tablero", - "text": "Selecciona el tablero donde quieres añadir las apps para los contenedores marcados.", + "text": "Selecciona el tablero donde deseas añadir las aplicaciones para los contenedores Docker seleccionados.", "form": { "board": { "label": "Tablero" }, - "submit": "Añadir apps" + "submit": "Añadir aplicaciones" } } }, "notifications": { "selectBoard": { "success": { - "title": "Apps añadidas al tablero", - "message": "Las apps de los contenedores Docker marcadas han sido añadidas al tablero." + "title": "Aplicaciones añadidas al tablero", + "message": "Las aplicaciones para los contenedores Docker seleccionados se han agregado al tablero." }, "error": { - "title": "Fallo al añadir las apps al tablero", - "message": "Las apps para los contenedores marcados no pudieron ser añadidas al tablero." + "title": "No se pudieron añadir aplicaciones al tablero", + "message": "Las aplicaciones para los contenedores Docker seleccionados no se pudieron añadir al tablero." } } } diff --git a/public/locales/es/user/preferences.json b/public/locales/es/user/preferences.json index fb043d288..a48b73040 100644 --- a/public/locales/es/user/preferences.json +++ b/public/locales/es/user/preferences.json @@ -3,7 +3,7 @@ "pageTitle": "Tus preferencias", "boards": { "defaultBoard": { - "label": "Tablero por defecto" + "label": "Tablero predeterminado" } }, "accessibility": { @@ -34,15 +34,15 @@ "title": "Motor de búsqueda", "custom": "Personalizado", "newTab": { - "label": "Abrir resultados de búsqueda en nueva pestaña" + "label": "Abrir resultados de búsqueda en una nueva pestaña" }, "autoFocus": { - "label": "", - "description": "" + "label": "Enfocar en la barra de búsqueda al cargar la página.", + "description": "Esto enfocará automáticamente la barra de búsqueda cuando navegue a las páginas del tablero. Sólo funcionará en dispositivos de escritorio." }, "template": { "label": "URL de consulta", - "description": "Usar %s como marcador de posición de la consulta" + "description": "Usar \"%s\" como marcador de posición de la consulta" } } } \ No newline at end of file diff --git a/public/locales/es/zod.json b/public/locales/es/zod.json index 044027090..49ec77b49 100644 --- a/public/locales/es/zod.json +++ b/public/locales/es/zod.json @@ -1,19 +1,19 @@ { "errors": { - "default": "El campo no es válido", + "default": "Este campo no es válido", "required": "Este campo es obligatorio", "string": { - "startsWith": "El campo debe empezar con {{startsWith}}", - "endsWith": "El campo debe acabar en {{endsWith}}", - "includes": "El campo debe incluir {{includes}}" + "startsWith": "Este campo debe empezar con {{startsWith}}", + "endsWith": "Este campo debe terminar con {{endsWith}}", + "includes": "Este campo debe incluir {{includes}}" }, "tooSmall": { - "string": "El campo debe ser de al menos {{minimum}} caracteres de largo", - "number": "El campo debe ser más grande, o igual a {{minimum}}" + "string": "Este campo debe tener al menos {{minimum}} caracteres", + "number": "Este campo debe ser mayor o igual a {{minimum}}" }, "tooBig": { - "string": "El campo debe ser al menos {{maximum}} caracteres de largo", - "number": "El campo debe menor o igual a {{maximum}}" + "string": "Este campo debe tener como máximo {{maximum}} caracteres", + "number": "Este campo debe ser menor o igual a {{maximum}}" }, "custom": { "passwordMatch": "Las contraseñas deben coincidir" diff --git a/public/locales/fr/layout/header.json b/public/locales/fr/layout/header.json index a58ce7c1b..1e8dae9e5 100644 --- a/public/locales/fr/layout/header.json +++ b/public/locales/fr/layout/header.json @@ -16,10 +16,10 @@ "switchTheme": "Changer de thème", "preferences": "Préférences utilisateur", "defaultBoard": "Tableau de bord par défaut", - "manage": "", + "manage": "Gérer", "about": { "label": "À propos", - "new": "" + "new": "Nouveau" }, "logout": "Se déconnecter de {{username}}", "login": "Connexion" diff --git a/public/locales/fr/layout/manage.json b/public/locales/fr/layout/manage.json index d6aa8e65b..b513364f2 100644 --- a/public/locales/fr/layout/manage.json +++ b/public/locales/fr/layout/manage.json @@ -9,7 +9,7 @@ "users": { "title": "Utilisateurs", "items": { - "manage": "", + "manage": "Gérer", "invites": "Invitations" } }, diff --git a/public/locales/fr/manage/boards.json b/public/locales/fr/manage/boards.json index f49b519e2..f39beb510 100644 --- a/public/locales/fr/manage/boards.json +++ b/public/locales/fr/manage/boards.json @@ -19,7 +19,7 @@ }, "badges": { "fileSystem": "Système de fichiers", - "default": "" + "default": "Par défaut" } }, "buttons": { diff --git a/public/locales/fr/manage/index.json b/public/locales/fr/manage/index.json index 9a51024e2..f0711cbc9 100644 --- a/public/locales/fr/manage/index.json +++ b/public/locales/fr/manage/index.json @@ -1,5 +1,5 @@ { - "metaTitle": "", + "metaTitle": "Gérer", "hero": { "title": "Content de te revoir, {{username}}", "fallbackUsername": "Anonyme", diff --git a/public/locales/fr/manage/users.json b/public/locales/fr/manage/users.json index 46313b37a..2f95243f2 100644 --- a/public/locales/fr/manage/users.json +++ b/public/locales/fr/manage/users.json @@ -1,7 +1,7 @@ { "metaTitle": "Utilisateurs", "pageTitle": "Gérer les utilisateurs", - "text": "", + "text": "En utilisant des utilisateurs, vous pouvez configurer qui peut éditer vos tableaux de bord. Les prochaines versions de Homarr auront un contrôle plus fin quant aux permissions et les tableaux de bord.", "buttons": { "create": "Créer" }, @@ -18,16 +18,16 @@ "modals": { "delete": { "title": "Supprimer l'utilisateur {{name}}", - "text": "" + "text": "Voulez-vous vraiment supprimer l'utilisateur {{name}} ? Cela supprimera les données associées au compte mais pas les tableaux de bord créés par celui-ci." }, "change-role": { "promote": { "title": "Promouvoir l'utilisateur {{name}} en tant qu'administrateur", - "text": "" + "text": "Voulez-vous vraiment promouvoir l'utilisateur {{name}} en tant qu'administrateur ? Ceci donnera à celui-ci l'accès à toutes les ressources de votre instance Homarr." }, "demote": { - "title": "", - "text": "" + "title": "Rétrograder l'utilisateur {{name}} en tant qu'utilisateur", + "text": "Voulez-vous vraiment rétrograder l'utilisateur {{name}} en tant qu'administrateur ? Ceci supprimera l'accès à l'utilisateur à toutes les ressources de votre instance Homarr." }, "confirm": "Confirmer" } diff --git a/public/locales/fr/manage/users/invites.json b/public/locales/fr/manage/users/invites.json index 786f32426..3ac2c1049 100644 --- a/public/locales/fr/manage/users/invites.json +++ b/public/locales/fr/manage/users/invites.json @@ -1,7 +1,7 @@ { - "metaTitle": "", + "metaTitle": "Invitations des utilisateurs", "pageTitle": "Gérer les invitations des utilisateurs", - "description": "", + "description": "Avec les invitations, vous pouvez convier des utilisateurs sur votre instance Homarr. Une invitation ne sera valide que pendant un certain temps et ne peut être utilisée qu'une fois. L'expiration doit être définie entre 5 minutes et 12 mois.", "button": { "createInvite": "Créer une invitation", "deleteInvite": "Supprimer une invitation" diff --git a/public/locales/fr/modules/dns-hole-controls.json b/public/locales/fr/modules/dns-hole-controls.json index 591133245..151e5f212 100644 --- a/public/locales/fr/modules/dns-hole-controls.json +++ b/public/locales/fr/modules/dns-hole-controls.json @@ -3,10 +3,16 @@ "name": "Pilotage du DNS Hole", "description": "Contrôlez PiHole ou AdGuard depuis votre tableau de bord", "settings": { - "title": "", + "title": "Paramètres du DNS Hole", "showToggleAllButtons": { "label": "Afficher les boutons \"Activer/Désactiver tout\"" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/fr/modules/weather.json b/public/locales/fr/modules/weather.json index 2de7c60db..14f23526b 100644 --- a/public/locales/fr/modules/weather.json +++ b/public/locales/fr/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Inconnu" } }, - "error": "Une erreur est survenue" + "error": "" } diff --git a/public/locales/fr/settings/general/config-changer.json b/public/locales/fr/settings/general/config-changer.json index fc6f629ab..86f4360cb 100644 --- a/public/locales/fr/settings/general/config-changer.json +++ b/public/locales/fr/settings/general/config-changer.json @@ -1,7 +1,7 @@ { "configSelect": { "label": "Changeur de configuration", - "description": "{{configCount}} configurations disponibles", + "description": "{{configCount}} configuration(s) disponible(s)", "loadingNew": "Chargement des configurations ...", "pleaseWait": "Veuillez attendre que votre nouvelle configuration soit chargée !" }, diff --git a/public/locales/fr/tools/docker.json b/public/locales/fr/tools/docker.json index b5a96e712..0ffe2a29a 100644 --- a/public/locales/fr/tools/docker.json +++ b/public/locales/fr/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "text": "Docker n'est pas configuré sur votre instance Homarr ou a échoué à trouver les conteneurs. Veuillez vérifier la documentation pour savoir comment configurer cette intégration." } }, "modals": { diff --git a/public/locales/he/layout/manage.json b/public/locales/he/layout/manage.json index fb1a00ddb..819b19807 100644 --- a/public/locales/he/layout/manage.json +++ b/public/locales/he/layout/manage.json @@ -1,29 +1,29 @@ { "navigation": { "home": { - "title": "" + "title": "מסך הבית" }, "boards": { - "title": "" + "title": "לוחות" }, "users": { - "title": "", + "title": "משתמשים", "items": { "manage": "ניהול", - "invites": "" + "invites": "הזמנות" } }, "help": { - "title": "", + "title": "עזרה", "items": { "documentation": "תיעוד", - "report": "", - "discord": "", - "contribute": "" + "report": "דווח על בעיה / תקלה", + "discord": "קהילת דיסקורד", + "contribute": "תרומה" } }, "tools": { - "title": "", + "title": "כלים", "items": { "docker": "דוקר" } diff --git a/public/locales/he/manage/boards.json b/public/locales/he/manage/boards.json index ea0044e6d..24617805b 100644 --- a/public/locales/he/manage/boards.json +++ b/public/locales/he/manage/boards.json @@ -1,6 +1,6 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "לוחות", + "pageTitle": "לוחות", "cards": { "statistics": { "apps": "אפליקציות", @@ -8,36 +8,36 @@ "categories": "קטגוריות" }, "buttons": { - "view": "" + "view": "צפייה בלוח" }, "menu": { - "setAsDefault": "", + "setAsDefault": "קביעת לוח ברירת מחדל", "delete": { - "label": "", - "disabled": "" + "label": "מחיקה לצמיתות", + "disabled": "המחיקה מושבתת, מכיוון שרכיבי Homarr ישנים יותר אינם מאפשרים מחיקה של תצורת ברירת המחדל. המחיקה תתאפשר בעתיד." } }, "badges": { - "fileSystem": "", - "default": "" + "fileSystem": "מערכת קבצים", + "default": "ברירת מחדל" } }, "buttons": { - "create": "" + "create": "יצירת לוח חדש" }, "modals": { "delete": { - "title": "", - "text": "" + "title": "מחיקת לוח", + "text": "האם אתה בטוח שאתה רוצה למחוק את הלוח הזה? לא ניתן לבטל פעולה זו והנתונים שלך יאבדו לצמיתות." }, "create": { - "title": "", - "text": "", + "title": "צור לוח", + "text": "לא ניתן לשנות את השם לאחר יצירת לוח.", "form": { "name": { "label": "שם" }, - "submit": "" + "submit": "צור" } } } diff --git a/public/locales/he/manage/index.json b/public/locales/he/manage/index.json index 842599505..6270ae079 100644 --- a/public/locales/he/manage/index.json +++ b/public/locales/he/manage/index.json @@ -1,23 +1,23 @@ { "metaTitle": "ניהול", "hero": { - "title": "", - "fallbackUsername": "", - "subtitle": "" + "title": "ברוך שובך, {{username}}", + "fallbackUsername": "אנונימי", + "subtitle": "ברוכים הבאים למרכז היישומים שלך. ארגן, ייעל וכבוש!" }, "quickActions": { - "title": "", + "title": "פעולות מהירות", "boards": { - "title": "", - "subtitle": "" + "title": "הלוחות שלך", + "subtitle": "צור ונהל את הלוחות שלך" }, "inviteUsers": { - "title": "", - "subtitle": "" + "title": "הזמנת משתמש חדש", + "subtitle": "צור ושלח הזמנה להרשמה" }, "manageUsers": { - "title": "", - "subtitle": "" + "title": "ניהול משתמשים", + "subtitle": "צור ונהל את המשתמשים שלך" } } } \ No newline at end of file diff --git a/public/locales/he/manage/users.json b/public/locales/he/manage/users.json index 51edc6a0d..882562149 100644 --- a/public/locales/he/manage/users.json +++ b/public/locales/he/manage/users.json @@ -1,9 +1,9 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "משתמשים", + "pageTitle": "ניהול משתמשים", "text": "באמצעות משתמשים, באפשרותך להגדיר מי יוכל לערוך את לוח המחוונים שלך. גרסאות עתידיות של Homarr יהיו בעלות שליטה פרטנית עוד יותר על הרשאות ולוחות.", "buttons": { - "create": "" + "create": "צור" }, "table": { "header": { diff --git a/public/locales/he/manage/users/invites.json b/public/locales/he/manage/users/invites.json index 7f1a8291e..dd866b371 100644 --- a/public/locales/he/manage/users/invites.json +++ b/public/locales/he/manage/users/invites.json @@ -1,30 +1,30 @@ { - "metaTitle": "", - "pageTitle": "", - "description": "", + "metaTitle": "הזמנות משתמש", + "pageTitle": "נהל הזמנות משתמש", + "description": "באמצעות הזמנות, ניתן להזמין משתמשים למופע Homarr שלך. הזמנה תהיה תקפה רק לפרק זמן מסוים וניתן להשתמש בה פעם אחת. התפוגה חייבת להיות בין 5 דקות ל-12 חודשים מרגע היצירה.", "button": { - "createInvite": "", - "deleteInvite": "" + "createInvite": "יצירת הזמנה", + "deleteInvite": "מחיקת הזמנה" }, "table": { "header": { - "id": "", - "creator": "", - "expires": "", - "action": "" + "id": "מספר מזהה", + "creator": "יוצר", + "expires": "פג תוקף", + "action": "פעולות" }, "data": { - "expiresAt": "", - "expiresIn": "" + "expiresAt": "פג תוקף ב-{{at}}", + "expiresIn": "ב-{{in}}" } }, "modals": { "create": { - "title": "", - "description": "", + "title": "יצירת הזמנה", + "description": "לאחר התפוגה, הזמנה לא תהיה תקפה יותר ומקבל ההזמנה לא יוכל ליצור חשבון.", "form": { - "expires": "", - "submit": "" + "expires": "תאריך תפוגה", + "submit": "צור" } }, "copy": { @@ -32,7 +32,7 @@ "description": "ההזמנה שלך נוצרה. לאחר סגירת המודל הזה, לא תוכל להעתיק את הקישור הזה יותר. אם אינך מעוניין יותר להזמין את האדם האמור, תוכל למחוק הזמנה זו בכל עת.", "invitationLink": "קישור הזמנה", "details": { - "id": "", + "id": "מספר מזהה", "token": "טוקן" }, "button": { @@ -40,7 +40,7 @@ } }, "delete": { - "title": "", + "title": "מחיקת הזמנה", "description": "האם אתה בטוח שברצונך למחוק את ההזמנה הזו? משתמשים עם קישור זה לא יוכלו עוד ליצור חשבון באמצעות קישור זה." } }, diff --git a/public/locales/he/modules/dns-hole-controls.json b/public/locales/he/modules/dns-hole-controls.json index 27d472687..86857fc9d 100644 --- a/public/locales/he/modules/dns-hole-controls.json +++ b/public/locales/he/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "הצג את לחצני 'הפעל/השבת הכל'" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/he/modules/weather.json b/public/locales/he/modules/weather.json index 2b4e67251..a25dd1b18 100644 --- a/public/locales/he/modules/weather.json +++ b/public/locales/he/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "לא ידוע" } }, - "error": "אירעה שגיאה" + "error": "" } diff --git a/public/locales/he/password-requirements.json b/public/locales/he/password-requirements.json index 9e26dfeeb..dc782f98b 100644 --- a/public/locales/he/password-requirements.json +++ b/public/locales/he/password-requirements.json @@ -1 +1,7 @@ -{} \ No newline at end of file +{ + "number": "אפשר מספרים", + "lowercase": "אפשר אותיות קטנות", + "uppercase": "אפשר אותיות גדולות", + "special": "אפשר תווים מיוחדים", + "length": "כולל לפחות {{count}} תווים" +} \ No newline at end of file diff --git a/public/locales/he/settings/customization/access.json b/public/locales/he/settings/customization/access.json index cc4d17f61..55e0e75d6 100644 --- a/public/locales/he/settings/customization/access.json +++ b/public/locales/he/settings/customization/access.json @@ -1,6 +1,6 @@ { "allowGuests": { - "label": "", - "description": "" + "label": "אפשר אנונימי", + "description": "אפשר למשתמשים שאינם מחוברים לצפות בלוח שלך" } } \ No newline at end of file diff --git a/public/locales/he/tools/docker.json b/public/locales/he/tools/docker.json index 23d6bcfad..c2ef87e55 100644 --- a/public/locales/he/tools/docker.json +++ b/public/locales/he/tools/docker.json @@ -21,11 +21,11 @@ "selectBoard": { "success": { "title": "נוספו אפליקציות ללוח", - "message": "" + "message": "האפליקציות עבור מכולות Docker שנבחרו נוספו ללוח." }, "error": { - "title": "", - "message": "" + "title": "הוספת אפליקציות ללוח נכשלה", + "message": "לא ניתן היה להוסיף את האפליקציות עבור מכולות Docker שנבחרו ללוח." } } } diff --git a/public/locales/hr/modules/dns-hole-controls.json b/public/locales/hr/modules/dns-hole-controls.json index d4ce8084d..3f87eb2dd 100644 --- a/public/locales/hr/modules/dns-hole-controls.json +++ b/public/locales/hr/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/hu/boards/common.json b/public/locales/hu/boards/common.json index b74ab8a81..0d191c5e7 100644 --- a/public/locales/hu/boards/common.json +++ b/public/locales/hu/boards/common.json @@ -1,5 +1,5 @@ { "header": { - "customize": "Testreszabható tábla" + "customize": "Személyre szabható tábla" } } \ No newline at end of file diff --git a/public/locales/hu/modules/dns-hole-controls.json b/public/locales/hu/modules/dns-hole-controls.json index ea3994fd1..60da7aa4b 100644 --- a/public/locales/hu/modules/dns-hole-controls.json +++ b/public/locales/hu/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "'Minden engedélyezés/letiltás gombok megjelenítése" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/hu/modules/weather.json b/public/locales/hu/modules/weather.json index d5d57f56b..646faac8f 100644 --- a/public/locales/hu/modules/weather.json +++ b/public/locales/hu/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Ismeretlen" } }, - "error": "Hiba történt" + "error": "" } diff --git a/public/locales/hu/settings/customization/access.json b/public/locales/hu/settings/customization/access.json index cc4d17f61..b87813af4 100644 --- a/public/locales/hu/settings/customization/access.json +++ b/public/locales/hu/settings/customization/access.json @@ -1,6 +1,6 @@ { "allowGuests": { - "label": "", - "description": "" + "label": "Anonim megtekintés engedélyezése", + "description": "Engedélyezze a nem bejelentkezett felhasználók számára, hogy megtekintsék a táblát" } } \ No newline at end of file diff --git a/public/locales/it/authentication/invite.json b/public/locales/it/authentication/invite.json index 19d231371..686c2f1d7 100644 --- a/public/locales/it/authentication/invite.json +++ b/public/locales/it/authentication/invite.json @@ -1,7 +1,7 @@ { - "metaTitle": "", - "title": "", - "text": "", + "metaTitle": "Crea Account", + "title": "Crea Account", + "text": "Definisci le tue credenziali qui sotto", "form": { "fields": { "username": { @@ -11,25 +11,25 @@ "label": "Password" }, "passwordConfirmation": { - "label": "" + "label": "Conferma password" } }, "buttons": { - "submit": "" + "submit": "Crea account" } }, "notifications": { "loading": { - "title": "", - "text": "" + "title": "Creazione account in corso", + "text": "Attendere" }, "success": { - "title": "", - "text": "" + "title": "Account creato", + "text": "Il tuo account è stato creato con successo" }, "error": { "title": "Errore", - "text": "" + "text": "Qualcosa è andato storto, riferirsi al seguente errore: {{error}}" } } } \ No newline at end of file diff --git a/public/locales/it/authentication/login.json b/public/locales/it/authentication/login.json index b1a6c9d3b..b04b705b2 100644 --- a/public/locales/it/authentication/login.json +++ b/public/locales/it/authentication/login.json @@ -1,7 +1,7 @@ { - "metaTitle": "", + "metaTitle": "Accedi", "title": "Bentornati!", - "text": "", + "text": "Inserisci le tue credenziali", "form": { "fields": { "username": { @@ -14,7 +14,7 @@ "buttons": { "submit": "Accedi" }, - "afterLoginRedirection": "" + "afterLoginRedirection": "Dopo il login, verrete reindirizzati a {{url}}" }, - "alert": "" + "alert": "Le credenziali non sono corrette o questo account non esiste. Si prega di riprovare." } \ No newline at end of file diff --git a/public/locales/it/boards/common.json b/public/locales/it/boards/common.json index a70db06bf..04c8ebf8d 100644 --- a/public/locales/it/boards/common.json +++ b/public/locales/it/boards/common.json @@ -1,5 +1,5 @@ { "header": { - "customize": "" + "customize": "Personalizza la board" } } \ No newline at end of file diff --git a/public/locales/it/boards/customize.json b/public/locales/it/boards/customize.json index a6e8e0421..c711b0092 100644 --- a/public/locales/it/boards/customize.json +++ b/public/locales/it/boards/customize.json @@ -1,29 +1,29 @@ { - "metaTitle": "", - "pageTitle": "", - "backToBoard": "", + "metaTitle": "Personalizza la board {{name}}", + "pageTitle": "Personalizzazione per la board {{name}}", + "backToBoard": "Torna alla board", "settings": { "appearance": { - "primaryColor": "", - "secondaryColor": "" + "primaryColor": "Colore primario", + "secondaryColor": "Colore secondario" } }, "save": { - "button": "", - "note": "" + "button": "Salva modifiche", + "note": "Attenzione, ci sono modifiche non salvate!" }, "notifications": { "pending": { - "title": "", - "message": "" + "title": "Salvataggio personalizzazione", + "message": "Attendere mentre si salva la personalizzazione" }, "success": { - "title": "", - "message": "" + "title": "Personalizzazione salvata", + "message": "La tua personalizzazione è stata salvata con successo" }, "error": { "title": "Errore", - "message": "" + "message": "Impossibile salvare le modifiche" } } } \ No newline at end of file diff --git a/public/locales/it/common.json b/public/locales/it/common.json index be10804a9..3bae12fd7 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -3,12 +3,12 @@ "about": "Info", "cancel": "Annulla", "close": "Chiudi", - "back": "", + "back": "Indietro", "delete": "Elimina", "ok": "OK", "edit": "Modifica", - "next": "", - "previous": "", + "next": "Successivo", + "previous": "Precedente", "confirm": "Conferma", "enabled": "Abilitato", "disabled": "Disattivato", diff --git a/public/locales/it/layout/header.json b/public/locales/it/layout/header.json index d579e7055..e47a1fb4b 100644 --- a/public/locales/it/layout/header.json +++ b/public/locales/it/layout/header.json @@ -1,34 +1,34 @@ { "experimentalNote": { - "label": "" + "label": "Questa è una caratteristica sperimentale di Homarr. Si prega di segnalare qualsiasi problema su GitHub o Discord." }, "search": { - "label": "", + "label": "Cerca", "engines": { - "web": "", - "youtube": "", - "torrent": "", - "movie": "" + "web": "Cerca {{query}} sul web", + "youtube": "Cerca {{query}} su YouTube", + "torrent": "Cerca per i torrent {{query}}", + "movie": "Ricerca di {{query}} su {{app}}" } }, "actions": { "avatar": { - "switchTheme": "", - "preferences": "", - "defaultBoard": "", - "manage": "", + "switchTheme": "Cambia tema", + "preferences": "Impostazioni utente", + "defaultBoard": "Dashboard predefinita", + "manage": "Gestisci", "about": { "label": "Info", - "new": "" + "new": "Nuovo" }, - "logout": "", - "login": "" + "logout": "Esci da {{username}}", + "login": "Accedi" } }, "modals": { "movie": { "title": "", - "topResults": "" + "topResults": "Top {{count}} risultati per {{search}}." } } } \ No newline at end of file diff --git a/public/locales/it/layout/manage.json b/public/locales/it/layout/manage.json index 2f81d8462..518779b11 100644 --- a/public/locales/it/layout/manage.json +++ b/public/locales/it/layout/manage.json @@ -1,29 +1,29 @@ { "navigation": { "home": { - "title": "" + "title": "Home" }, "boards": { - "title": "" + "title": "Boards" }, "users": { - "title": "", + "title": "Utenti", "items": { - "manage": "", - "invites": "" + "manage": "Gestisci", + "invites": "Inviti" } }, "help": { - "title": "", + "title": "Aiuto", "items": { "documentation": "Documentazione", - "report": "", - "discord": "", - "contribute": "" + "report": "Segnala un problema / bug", + "discord": "Discord della community", + "contribute": "Contribuisci" } }, "tools": { - "title": "", + "title": "Strumenti", "items": { "docker": "Docker" } diff --git a/public/locales/it/manage/boards.json b/public/locales/it/manage/boards.json index c2992be0a..594f14a74 100644 --- a/public/locales/it/manage/boards.json +++ b/public/locales/it/manage/boards.json @@ -1,6 +1,6 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "Boards", + "pageTitle": "Boards", "cards": { "statistics": { "apps": "Applicazioni", @@ -8,36 +8,36 @@ "categories": "Categorie" }, "buttons": { - "view": "" + "view": "Mostra board" }, "menu": { - "setAsDefault": "", + "setAsDefault": "Imposta come board predefinita", "delete": { - "label": "", - "disabled": "" + "label": "Elimina definitivamente", + "disabled": "Eliminazione disabilitata, perché i vecchi componenti di Homarr non consentono la cancellazione della configurazione predefinita. La cancellazione sarà possibile in futuro." } }, "badges": { - "fileSystem": "", - "default": "" + "fileSystem": "File system", + "default": "Predefinito" } }, "buttons": { - "create": "" + "create": "Crea nuova board" }, "modals": { "delete": { - "title": "", - "text": "" + "title": "Elimina board", + "text": "Siete sicuri di voler eliminare questa board? Questa azione non può essere annullata e i dati andranno persi definitivamente." }, "create": { - "title": "", - "text": "", + "title": "Crea board", + "text": "Il nome non può essere modificato dopo la creazione della board.", "form": { "name": { "label": "Nome" }, - "submit": "" + "submit": "Crea" } } } diff --git a/public/locales/it/manage/index.json b/public/locales/it/manage/index.json index 5c5b4c0b9..5347390d0 100644 --- a/public/locales/it/manage/index.json +++ b/public/locales/it/manage/index.json @@ -1,23 +1,23 @@ { - "metaTitle": "", + "metaTitle": "Gestisci", "hero": { - "title": "", - "fallbackUsername": "", - "subtitle": "" + "title": "Bentornati, {{username}}", + "fallbackUsername": "Anonimo", + "subtitle": "Benvenuti nel vostro Application Hub. Organizza, ottimizza e conquista!" }, "quickActions": { - "title": "", + "title": "Azioni rapide", "boards": { - "title": "", - "subtitle": "" + "title": "Le tue board", + "subtitle": "Crea e gestisci le tue board" }, "inviteUsers": { - "title": "", - "subtitle": "" + "title": "Invita un nuovo utente", + "subtitle": "Crea e invia un invito per la registrazione" }, "manageUsers": { - "title": "", - "subtitle": "" + "title": "Gestisci utenti", + "subtitle": "Elimina e gestisci i tuoi utenti" } } } \ No newline at end of file diff --git a/public/locales/it/manage/users.json b/public/locales/it/manage/users.json index 6df578de1..692dc753b 100644 --- a/public/locales/it/manage/users.json +++ b/public/locales/it/manage/users.json @@ -1,9 +1,9 @@ { - "metaTitle": "", - "pageTitle": "", - "text": "", + "metaTitle": "Utenti", + "pageTitle": "Gestisci utenti", + "text": "Utilizzando gli utenti, è possibile configurare chi può modificare i dashboard. Le versioni future di Homarr offriranno un controllo ancora più granulare sulle autorizzazioni e sulle board.", "buttons": { - "create": "" + "create": "Crea" }, "table": { "header": { @@ -11,26 +11,26 @@ } }, "tooltips": { - "deleteUser": "", - "demoteAdmin": "", - "promoteToAdmin": "" + "deleteUser": "Elimina utente", + "demoteAdmin": "Declassa amministratore", + "promoteToAdmin": "Promuovi ad amministratore" }, "modals": { "delete": { - "title": "", - "text": "" + "title": "Elimina l'utente {{name}}", + "text": "Si è sicuri di voler eliminare l'utente {{name}}? Questo eliminerà i dati associati a questo account, ma non le dashboard create da questo utente." }, "change-role": { "promote": { - "title": "", - "text": "" + "title": "Promuovi l'utente {{name}} ad amministratore", + "text": "Siete sicuri di voler promuovere l'utente {{name}} ad amministratore? In questo modo l'utente avrà accesso a tutte le risorse dell'istanza di Homarr." }, "demote": { - "title": "", - "text": "" + "title": "Declassa l'utente {{name}} a utente", + "text": "Siete sicuri di voler declassare l'utente {{name}} a utente? Questo rimuoverà l'accesso dell'utente a tutte le risorse dell'istanza di Homarr." }, "confirm": "Conferma" } }, - "searchDoesntMatch": "" + "searchDoesntMatch": "La ricerca non corrisponde a nessuna voce. Si prega di modificare il filtro." } \ No newline at end of file diff --git a/public/locales/it/manage/users/create.json b/public/locales/it/manage/users/create.json index f39b63ad3..7c2a30cf2 100644 --- a/public/locales/it/manage/users/create.json +++ b/public/locales/it/manage/users/create.json @@ -1,52 +1,52 @@ { - "metaTitle": "", + "metaTitle": "Crea utente", "steps": { "account": { - "title": "", - "text": "", + "title": "Primo passo", + "text": "Crea account", "username": { "label": "Nome utente" }, "email": { - "label": "" + "label": "E-mail" } }, "security": { - "title": "", + "title": "Secondo passo", "text": "Password", "password": { "label": "Password" } }, "finish": { - "title": "", - "text": "", + "title": "Conferma", + "text": "Salva nel database", "card": { - "title": "", - "text": "" + "title": "Rivedi i tuoi input", + "text": "Dopo aver inviato i dati al database, l'utente potrà effettuare il login. Siete sicuri di voler memorizzare questo utente nel database e attivare il login?" }, "table": { "header": { - "property": "", - "value": "", + "property": "Proprietà", + "value": "Valore", "username": "Nome utente", - "email": "", + "email": "E-mail", "password": "Password" }, - "notSet": "", - "valid": "" + "notSet": "Non impostato", + "valid": "Valido" }, - "failed": "" + "failed": "Creazione utente non riuscita: {{error}}" }, "completed": { "alert": { - "title": "", - "text": "" + "title": "Utente creato", + "text": "L'utente è stato creato nel database. Ora può effettuare il login." } } }, "buttons": { - "generateRandomPassword": "", - "createAnother": "" + "generateRandomPassword": "Genera casualmente", + "createAnother": "Crea un altro" } } \ No newline at end of file diff --git a/public/locales/it/manage/users/invites.json b/public/locales/it/manage/users/invites.json index 8ba8ec70c..dac34aa1a 100644 --- a/public/locales/it/manage/users/invites.json +++ b/public/locales/it/manage/users/invites.json @@ -1,48 +1,48 @@ { - "metaTitle": "", - "pageTitle": "", - "description": "", + "metaTitle": "Inviti utente", + "pageTitle": "Gestisci inviti utente", + "description": "Utilizzando gli inviti, è possibile invitare gli utenti alla propria istanza di Homarr. Un invito sarà valido solo per un certo periodo di tempo e potrà essere utilizzato una sola volta. La scadenza deve essere compresa tra 5 minuti e 12 mesi al momento della creazione.", "button": { - "createInvite": "", - "deleteInvite": "" + "createInvite": "Crea invito", + "deleteInvite": "Elimina invito" }, "table": { "header": { - "id": "", - "creator": "", - "expires": "", - "action": "" + "id": "ID", + "creator": "Creatore", + "expires": "Scadenza", + "action": "Azioni" }, "data": { - "expiresAt": "", - "expiresIn": "" + "expiresAt": "scaduto {{at}}", + "expiresIn": "nel {{in}}" } }, "modals": { "create": { - "title": "", - "description": "", + "title": "Crea invito", + "description": "Dopo la scadenza, un invito non sarà più valido e il destinatario dell'invito non potrà creare un account.", "form": { - "expires": "", - "submit": "" + "expires": "Data di scadenza", + "submit": "Crea" } }, "copy": { - "title": "", - "description": "", - "invitationLink": "", + "title": "Copia invito", + "description": "Il tuo invito è stato generato. Dopo questa chiusura modale, non sarai più in grado di copiare questo link. Se non si desidera più invitare detta persona, è possibile eliminare questo invito in qualsiasi momento.", + "invitationLink": "Link d'invito", "details": { - "id": "", - "token": "" + "id": "ID", + "token": "Token" }, "button": { - "close": "" + "close": "Copia e rimuovi" } }, "delete": { - "title": "", - "description": "" + "title": "Elimina invito", + "description": "Siete sicuri di voler eliminare questo invito? Gli utenti con questo link non potranno più creare un account utilizzando tale link." } }, - "noInvites": "" + "noInvites": "Non ci sono ancora inviti." } \ No newline at end of file diff --git a/public/locales/it/modules/dns-hole-controls.json b/public/locales/it/modules/dns-hole-controls.json index e0498e4d9..449b4897b 100644 --- a/public/locales/it/modules/dns-hole-controls.json +++ b/public/locales/it/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Mostra i pulsanti \"Abilita/Disabilita tutto\"" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/it/modules/weather.json b/public/locales/it/modules/weather.json index 1078d206b..f709e09ba 100644 --- a/public/locales/it/modules/weather.json +++ b/public/locales/it/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Sconosciuto" } }, - "error": "Si è verificato un errore" + "error": "" } diff --git a/public/locales/it/password-requirements.json b/public/locales/it/password-requirements.json index 9e26dfeeb..281191aa4 100644 --- a/public/locales/it/password-requirements.json +++ b/public/locales/it/password-requirements.json @@ -1 +1,7 @@ -{} \ No newline at end of file +{ + "number": "Include numero", + "lowercase": "Include lettera minuscola", + "uppercase": "Include lettera maiuscola", + "special": "Include carattere speciale", + "length": "Include almeno {{count}} caratteri" +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/access.json b/public/locales/it/settings/customization/access.json index cc4d17f61..6a24de9b4 100644 --- a/public/locales/it/settings/customization/access.json +++ b/public/locales/it/settings/customization/access.json @@ -1,6 +1,6 @@ { "allowGuests": { - "label": "", - "description": "" + "label": "Consenti anonimo", + "description": "Consenti agli utenti che non hanno effettuato l'accesso di visualizzare la tua board" } } \ No newline at end of file diff --git a/public/locales/it/settings/customization/general.json b/public/locales/it/settings/customization/general.json index cf523af00..aa366a076 100644 --- a/public/locales/it/settings/customization/general.json +++ b/public/locales/it/settings/customization/general.json @@ -22,8 +22,8 @@ "description": "Configura Homarr per utenti con disabilità" }, "access": { - "name": "", - "description": "" + "name": "Accesso", + "description": "Configura chi ha accesso alla tua board" } } } diff --git a/public/locales/it/tools/docker.json b/public/locales/it/tools/docker.json index c224c68ec..979b1e170 100644 --- a/public/locales/it/tools/docker.json +++ b/public/locales/it/tools/docker.json @@ -2,30 +2,30 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "text": "L'istanza di Homarr non è configurata per Docker o non è riuscita a recuperare i container. Consultare la documentazione su come impostare l'integrazione." } }, "modals": { "selectBoard": { - "title": "", - "text": "", + "title": "Scegli una board", + "text": "Scegliere la board in cui aggiungere le applicazioni per i Docker container selezionati.", "form": { "board": { - "label": "" + "label": "Board" }, - "submit": "" + "submit": "Aggiungi applicazioni" } } }, "notifications": { "selectBoard": { "success": { - "title": "", - "message": "" + "title": "Aggiunte app a board", + "message": "Le applicazioni per i Docker container selezionati sono state aggiunte alla board." }, "error": { - "title": "", - "message": "" + "title": "Impossibile aggiungere le app alla board", + "message": "Non è stato possibile aggiungere alla board le applicazioni per i Docker container selezionati." } } } diff --git a/public/locales/it/user/preferences.json b/public/locales/it/user/preferences.json index 18f544f23..35a9c6ec1 100644 --- a/public/locales/it/user/preferences.json +++ b/public/locales/it/user/preferences.json @@ -1,9 +1,9 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "Impostazioni", + "pageTitle": "Le tue impostazioni", "boards": { "defaultBoard": { - "label": "" + "label": "Board predefinita" } }, "accessibility": { @@ -22,11 +22,11 @@ "label": "Lingua" }, "firstDayOfWeek": { - "label": "", + "label": "Primo giorno della settimana", "options": { - "monday": "", - "saturday": "", - "sunday": "" + "monday": "Lunedì", + "saturday": "Sabato", + "sunday": "Domenica" } } }, @@ -34,15 +34,15 @@ "title": "Motore di ricerca", "custom": "Personalizzato", "newTab": { - "label": "" + "label": "Apri i risultati di ricerca in una nuova scheda" }, "autoFocus": { - "label": "", - "description": "" + "label": "Focalizza la barra di ricerca sul caricamento della pagina.", + "description": "Questo focalizzerà automaticamente la barra di ricerca, quando si passa alle pagine della board. Funzionerà solo su dispositivi desktop." }, "template": { "label": "URL di ricerca", - "description": "" + "description": "Usa %s come segnaposto per la query" } } } \ No newline at end of file diff --git a/public/locales/it/zod.json b/public/locales/it/zod.json index 4008035c9..c013ae653 100644 --- a/public/locales/it/zod.json +++ b/public/locales/it/zod.json @@ -1,22 +1,22 @@ { "errors": { - "default": "", + "default": "Questo campo non è valido", "required": "Questo campo è obbligatorio", "string": { - "startsWith": "", - "endsWith": "", - "includes": "" + "startsWith": "Questo campo deve iniziare con {{startsWith}}", + "endsWith": "Questo campo deve terminare con {{endsWith}}", + "includes": "Questo campo deve includere {{includes}}" }, "tooSmall": { - "string": "", - "number": "" + "string": "Questo campo deve avere una lunghezza minima di {{minimum}} caratteri", + "number": "Questo campo deve essere maggiore o uguale a {{minimum}}" }, "tooBig": { - "string": "", - "number": "" + "string": "Questo campo deve avere una lunghezza massima di {{maximum}} caratteri", + "number": "Questo campo deve essere maggiore o uguale a {{maximum}}" }, "custom": { - "passwordMatch": "" + "passwordMatch": "Le password devono coincidere" } } } \ No newline at end of file diff --git a/public/locales/ja/modules/dns-hole-controls.json b/public/locales/ja/modules/dns-hole-controls.json index c03b11dd5..f953f3dcf 100644 --- a/public/locales/ja/modules/dns-hole-controls.json +++ b/public/locales/ja/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/ja/modules/weather.json b/public/locales/ja/modules/weather.json index 946016fa9..02bfe4c8d 100644 --- a/public/locales/ja/modules/weather.json +++ b/public/locales/ja/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "不明" } }, - "error": "エラーが発生しました" + "error": "" } diff --git a/public/locales/ko/modules/dns-hole-controls.json b/public/locales/ko/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/ko/modules/dns-hole-controls.json +++ b/public/locales/ko/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/lol/modules/dns-hole-controls.json b/public/locales/lol/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/lol/modules/dns-hole-controls.json +++ b/public/locales/lol/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/lv/modules/dns-hole-controls.json b/public/locales/lv/modules/dns-hole-controls.json index 1e87fbd1e..30212982f 100644 --- a/public/locales/lv/modules/dns-hole-controls.json +++ b/public/locales/lv/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Rādīt 'Ieslēgt/Izslēgt Visus' Pogas" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/lv/modules/weather.json b/public/locales/lv/modules/weather.json index 8b4efa8c3..559816caf 100644 --- a/public/locales/lv/modules/weather.json +++ b/public/locales/lv/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Nezināms" } }, - "error": "Radās kļūda" + "error": "" } diff --git a/public/locales/nl/modules/dns-hole-controls.json b/public/locales/nl/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/nl/modules/dns-hole-controls.json +++ b/public/locales/nl/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/no/modules/dns-hole-controls.json b/public/locales/no/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/no/modules/dns-hole-controls.json +++ b/public/locales/no/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/pl/modules/dns-hole-controls.json b/public/locales/pl/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/pl/modules/dns-hole-controls.json +++ b/public/locales/pl/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/pt/modules/dns-hole-controls.json b/public/locales/pt/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/pt/modules/dns-hole-controls.json +++ b/public/locales/pt/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/ru/modules/dns-hole-controls.json b/public/locales/ru/modules/dns-hole-controls.json index 865407878..7616ed5dd 100644 --- a/public/locales/ru/modules/dns-hole-controls.json +++ b/public/locales/ru/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Показать кнопки \"Включить/Выключить все" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/ru/modules/weather.json b/public/locales/ru/modules/weather.json index c14cf6eea..2c39b9a94 100644 --- a/public/locales/ru/modules/weather.json +++ b/public/locales/ru/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Неизвестно" } }, - "error": "Произошла ошибка" + "error": "" } diff --git a/public/locales/sk/modules/dns-hole-controls.json b/public/locales/sk/modules/dns-hole-controls.json index 3392d675b..a8bb1da0c 100644 --- a/public/locales/sk/modules/dns-hole-controls.json +++ b/public/locales/sk/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "Zobrazenie tlačidiel \"Povoliť/Zakázať všetko" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/sk/modules/weather.json b/public/locales/sk/modules/weather.json index 1e06620f2..dfd349b6c 100644 --- a/public/locales/sk/modules/weather.json +++ b/public/locales/sk/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Neznámy" } }, - "error": "Došlo k chybe" + "error": "" } diff --git a/public/locales/sl/modules/dns-hole-controls.json b/public/locales/sl/modules/dns-hole-controls.json index 7391fea94..3bf25c924 100644 --- a/public/locales/sl/modules/dns-hole-controls.json +++ b/public/locales/sl/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/sv/modules/dns-hole-controls.json b/public/locales/sv/modules/dns-hole-controls.json index 00696129e..7b0f8fd97 100644 --- a/public/locales/sv/modules/dns-hole-controls.json +++ b/public/locales/sv/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/sv/modules/weather.json b/public/locales/sv/modules/weather.json index cc031926f..2e4e582a0 100644 --- a/public/locales/sv/modules/weather.json +++ b/public/locales/sv/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Okänd" } }, - "error": "Ett fel uppstod" + "error": "" } diff --git a/public/locales/tr/modules/dns-hole-controls.json b/public/locales/tr/modules/dns-hole-controls.json index 24cdcd8fd..af560ffb6 100644 --- a/public/locales/tr/modules/dns-hole-controls.json +++ b/public/locales/tr/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "'Tümünü Etkinleştir/Devre Dışı Bırak' Butonlarını Göster" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/tr/modules/weather.json b/public/locales/tr/modules/weather.json index 7b98cd679..5a31254a6 100644 --- a/public/locales/tr/modules/weather.json +++ b/public/locales/tr/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Bilinmeyen" } }, - "error": "Bir hata oluştu" + "error": "" } diff --git a/public/locales/uk/authentication/login.json b/public/locales/uk/authentication/login.json index 0e795eb8f..473cd309f 100644 --- a/public/locales/uk/authentication/login.json +++ b/public/locales/uk/authentication/login.json @@ -1,7 +1,7 @@ { - "metaTitle": "", + "metaTitle": "Логін", "title": "З поверненням!", - "text": "", + "text": "Будь ласка, введіть свої облікові дані", "form": { "fields": { "username": { diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index f6ff7042f..10aea003e 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -3,12 +3,12 @@ "about": "Про програму", "cancel": "Скасувати", "close": "Закрити", - "back": "", + "back": "Назад", "delete": "Видалити", "ok": "OK", "edit": "Редагувати", - "next": "", - "previous": "", + "next": "Далі", + "previous": "Попередній", "confirm": "Підтвердити", "enabled": "Увімкнено", "disabled": "Вимкнено", @@ -40,5 +40,5 @@ "medium": "середній", "large": "великий" }, - "seeMore": "" + "seeMore": "Побачити більше..." } \ No newline at end of file diff --git a/public/locales/uk/layout/element-selector/selector.json b/public/locales/uk/layout/element-selector/selector.json index 6e8514058..fe2b748fc 100644 --- a/public/locales/uk/layout/element-selector/selector.json +++ b/public/locales/uk/layout/element-selector/selector.json @@ -8,17 +8,17 @@ "actionIcon": { "tooltip": "Додати плитку" }, - "apps": "", + "apps": "Додатки", "app": { - "defaultName": "" + "defaultName": "Ваші додатки" }, - "widgets": "", - "categories": "", + "widgets": "Віджети", + "categories": "Категорії", "category": { - "newName": "", - "defaultName": "", + "newName": "Назва категорії", + "defaultName": "Нова категорія", "created": { - "title": "", + "title": "Категорію створено", "message": "" } } diff --git a/public/locales/uk/layout/header.json b/public/locales/uk/layout/header.json index 776699e80..0a0037306 100644 --- a/public/locales/uk/layout/header.json +++ b/public/locales/uk/layout/header.json @@ -22,7 +22,7 @@ "new": "" }, "logout": "", - "login": "" + "login": "Логін" } }, "modals": { diff --git a/public/locales/uk/manage/boards.json b/public/locales/uk/manage/boards.json index e87de5e4d..a1abd1571 100644 --- a/public/locales/uk/manage/boards.json +++ b/public/locales/uk/manage/boards.json @@ -3,9 +3,9 @@ "pageTitle": "", "cards": { "statistics": { - "apps": "", - "widgets": "", - "categories": "" + "apps": "Додатки", + "widgets": "Віджети", + "categories": "Категорії" }, "buttons": { "view": "" diff --git a/public/locales/uk/modules/calendar.json b/public/locales/uk/modules/calendar.json index baf8ea33e..cbd2b20e9 100644 --- a/public/locales/uk/modules/calendar.json +++ b/public/locales/uk/modules/calendar.json @@ -10,25 +10,25 @@ "radarrReleaseType": { "label": "Radarr - тип релізів", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "У кінотеатрах", + "physicalRelease": "Фізичне", + "digitalRelease": "Цифрове" } }, "hideWeekDays": { - "label": "" + "label": "Приховати дні тижня" }, "showUnmonitored": { - "label": "" + "label": "Показати елементи, за якими не ведеться спостереження" }, "fontSize": { "label": "Розмір шрифту", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Дуже маленьке", + "sm": "Малий", + "md": "Середній", + "lg": "Великий", + "xl": "Дуже великий" } } } diff --git a/public/locales/uk/modules/date.json b/public/locales/uk/modules/date.json index 7b6a543df..808afcb39 100644 --- a/public/locales/uk/modules/date.json +++ b/public/locales/uk/modules/date.json @@ -8,24 +8,24 @@ "label": "Показувати повний час (24 години)" }, "dateFormat": { - "label": "", + "label": "Формат дати", "data": { - "hide": "" + "hide": "Сховати дату" } }, "enableTimezone": { - "label": "" + "label": "Відображати ваш часовий пояс" }, "timezoneLocation": { - "label": "" + "label": "Місцезнаходження часовий поясу" }, "titleState": { - "label": "", + "label": "Назва міста", "info": "", "data": { - "both": "", - "city": "", - "none": "" + "both": "Місто та часовий пояс", + "city": "Лише місто", + "none": "Нема" } } } diff --git a/public/locales/uk/modules/dns-hole-controls.json b/public/locales/uk/modules/dns-hole-controls.json index cd7266236..10929f423 100644 --- a/public/locales/uk/modules/dns-hole-controls.json +++ b/public/locales/uk/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/uk/modules/weather.json b/public/locales/uk/modules/weather.json index 7ce100ea8..94ed34b14 100644 --- a/public/locales/uk/modules/weather.json +++ b/public/locales/uk/modules/weather.json @@ -8,7 +8,7 @@ "label": "Використовувати Фаренгейт" }, "displayCityName": { - "label": "" + "label": "Показувати назву міста" }, "location": { "label": "Погодна локація" diff --git a/public/locales/uk/settings/general/search-engine.json b/public/locales/uk/settings/general/search-engine.json index 334e21b4a..587b04dec 100644 --- a/public/locales/uk/settings/general/search-engine.json +++ b/public/locales/uk/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Пошукова система", "configurationName": "Налаштування пошукової системи", - "custom": "", + "custom": "Нестандартний", "tips": { "generalTip": "Ви можете використовувати кілька префіксів! Додавання їх перед запитом відфільтрує результати. !s (веб), !t (торренти), !y (YouTube) і !m (медіа).", "placeholderTip": "%s можна використовувати як заповнювач для запиту." diff --git a/public/locales/uk/user/preferences.json b/public/locales/uk/user/preferences.json index bd5224a11..445ea5a81 100644 --- a/public/locales/uk/user/preferences.json +++ b/public/locales/uk/user/preferences.json @@ -32,7 +32,7 @@ }, "searchEngine": { "title": "Пошукова система", - "custom": "", + "custom": "Нестандартний", "newTab": { "label": "" }, diff --git a/public/locales/vi/modules/dns-hole-controls.json b/public/locales/vi/modules/dns-hole-controls.json index 66540fe87..2d1c90f33 100644 --- a/public/locales/vi/modules/dns-hole-controls.json +++ b/public/locales/vi/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/zh/manage/boards.json b/public/locales/zh/manage/boards.json index a814feb55..4cbd84d29 100644 --- a/public/locales/zh/manage/boards.json +++ b/public/locales/zh/manage/boards.json @@ -11,10 +11,10 @@ "view": "查看面板" }, "menu": { - "setAsDefault": "设置为您的默认面板", + "setAsDefault": "设置为默认", "delete": { "label": "永久删除", - "disabled": "删除功能已禁用,因为旧的 Homarr 组件不允许删除默认配置。将来将有可能删除。" + "disabled": "删除功能被禁用,因为较旧的 Homarr 组件不允许删除默认配置。将来可能会删除。" } }, "badges": { @@ -32,7 +32,7 @@ }, "create": { "title": "创建面板", - "text": "创建版面后不能更改名称。", + "text": "面板创建成功后,不能修改名称。", "form": { "name": { "label": "名称" diff --git a/public/locales/zh/manage/users.json b/public/locales/zh/manage/users.json index 184b60100..75722cca3 100644 --- a/public/locales/zh/manage/users.json +++ b/public/locales/zh/manage/users.json @@ -1,7 +1,7 @@ { "metaTitle": "用户", "pageTitle": "管理用户", - "text": "通过使用用户,您可以配置谁可以编辑您的仪表板。Homarr的未来版本将对权限和板进行更精细的控制。", + "text": "通过账号,您可以配置谁可以编辑您的面板。Homarr的未来版本将对权限和面板进行更精细地控制。", "buttons": { "create": "创建" }, @@ -23,11 +23,11 @@ "change-role": { "promote": { "title": "将用户 {{name}} 提升为管理员", - "text": "您确定要将 {{name}} 用户升级为管理员吗?这样该用户就可以访问 Homarr 实例的所有资源。" + "text": "您确定要将用户{{name}} 提升为管理员吗? 这将允许用户访问Homarr实例上的所有资源。" }, "demote": { "title": "将用户 {{name}} 降级为用户", - "text": "您确定要将 {{name}} 用户降级为用户吗?这将取消该用户对 Homarr 实例所有资源的访问权限。" + "text": "您确定要将用户{{name}} 降级为用户吗? 这将删除用户对Homarr实例上所有资源的访问权限。" }, "confirm": "确认" } diff --git a/public/locales/zh/manage/users/create.json b/public/locales/zh/manage/users/create.json index 051ace725..46d98e097 100644 --- a/public/locales/zh/manage/users/create.json +++ b/public/locales/zh/manage/users/create.json @@ -23,7 +23,7 @@ "text": "保存到数据库", "card": { "title": "检查您的输入", - "text": "向数据库提交数据后,用户就可以登录了。您确定要将此用户存储在数据库中并激活登录吗?" + "text": "将数据提交到数据库后,用户就可以登录了。您确定要将该用户存储在数据库中并激活登录吗?" }, "table": { "header": { @@ -41,7 +41,7 @@ "completed": { "alert": { "title": "用户已创建", - "text": "用户已在数据库中创建。他们现在可以登录了。" + "text": "用户已在数据库中创建。他现在可以登录了。" } } }, diff --git a/public/locales/zh/manage/users/invites.json b/public/locales/zh/manage/users/invites.json index 6342fbcfb..925144768 100644 --- a/public/locales/zh/manage/users/invites.json +++ b/public/locales/zh/manage/users/invites.json @@ -1,7 +1,7 @@ { "metaTitle": "用户邀请", "pageTitle": "管理用户邀请", - "description": "使用邀请功能,可以邀请用户访问Homarr实例。邀请只在一定的时间范围内有效,并且只能使用一次。有效期必须在创建后5分钟至12个月之间。", + "description": "使用邀请功能,可以邀请用户访问 Homarr 实例。邀请只在一定的时间范围内有效,并且只能使用一次。过期时间必须在创建后5分钟到12个月之间。", "button": { "createInvite": "创建邀请", "deleteInvite": "删除邀请" @@ -10,8 +10,8 @@ "header": { "id": "ID", "creator": "创建者", - "expires": "到期", - "action": "动作" + "expires": "有效期", + "action": "操作" }, "data": { "expiresAt": "过期 {{at}}", @@ -21,7 +21,7 @@ "modals": { "create": { "title": "创建邀请", - "description": "到期后,邀请将不再有效,邀请接收者将无法创建账号。", + "description": "过期后,邀请会失效,被邀请的收件人将无法创建账号。", "form": { "expires": "过期时间", "submit": "创建" @@ -36,7 +36,7 @@ "token": "Token" }, "button": { - "close": "复制 & 取消" + "close": "复制并关闭" } }, "delete": { diff --git a/public/locales/zh/modules/bookmark.json b/public/locales/zh/modules/bookmark.json index c5d46c838..dcadff41a 100644 --- a/public/locales/zh/modules/bookmark.json +++ b/public/locales/zh/modules/bookmark.json @@ -31,7 +31,7 @@ "validation": { "length": "长度必须在 {{shortest}} 和 {{longest}} 之间", "invalidLink": "无效链接", - "errorMsg": "没有保存,因为出现了验证错误。请重新输入" + "errorMsg": "由于存在验证错误,未保存。请调整您的输入" }, "name": "名称", "url": "网址", diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json index e5b85a9cd..ec827e382 100644 --- a/public/locales/zh/modules/dashdot.json +++ b/public/locales/zh/modules/dashdot.json @@ -33,7 +33,7 @@ "label": "显示为文本(紧凑型)" }, "multiView": { - "label": "显示为多核视图" + "label": "显示为多驱动视图" } }, "network": { @@ -57,7 +57,7 @@ "label": "列宽度" }, "multiView": { - "label": "显示为多核视图" + "label": "显示为多核心视图" } }, "ram": { @@ -88,7 +88,7 @@ "noInformation": "无法从 Dash. 获取信息。- 你运行的是最新版本吗?", "protocolDowngrade": { "title": "检测到协议降级", - "text": "Dash 正在使用HTTP。这存在安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保 Dash 也在 HTTPS 上运行,或者将 Homarr 降级为 HTTP (不推荐)。" + "text": "与 Dash. 实例的连接使用的是HTTP。这是一个安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保 Dash. 使用的是HTTPS,或者将Homarr降级为HTTP(不推荐)。" } }, "graphs": { diff --git a/public/locales/zh/modules/dns-hole-controls.json b/public/locales/zh/modules/dns-hole-controls.json index e8b8ba2df..c71e4b1db 100644 --- a/public/locales/zh/modules/dns-hole-controls.json +++ b/public/locales/zh/modules/dns-hole-controls.json @@ -7,6 +7,12 @@ "showToggleAllButtons": { "label": "显示 \"启用/禁用全部 \"按钮" } + }, + "errors": { + "general": { + "title": "", + "text": "" + } } } } \ No newline at end of file diff --git a/public/locales/zh/modules/weather.json b/public/locales/zh/modules/weather.json index 68363a334..462ebc847 100644 --- a/public/locales/zh/modules/weather.json +++ b/public/locales/zh/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "未知" } }, - "error": "发生错误" + "error": "" } diff --git a/public/locales/zh/settings/customization/general.json b/public/locales/zh/settings/customization/general.json index fb47b3508..8d1b0ed83 100644 --- a/public/locales/zh/settings/customization/general.json +++ b/public/locales/zh/settings/customization/general.json @@ -22,7 +22,7 @@ "description": "为残疾和残障人士配置 Homarr" }, "access": { - "name": "Acccess", + "name": "访问", "description": "配置谁有权访问您的面板" } } diff --git a/public/locales/zh/user/preferences.json b/public/locales/zh/user/preferences.json index af67d6662..b17f288d8 100644 --- a/public/locales/zh/user/preferences.json +++ b/public/locales/zh/user/preferences.json @@ -38,7 +38,7 @@ }, "autoFocus": { "label": "页面加载时聚焦搜索栏。", - "description": "当您浏览页面时,搜索栏会自动聚焦。该功能仅适用于桌面设备。" + "description": "当您导航到面板页面时,搜索栏会自动聚焦。该功能仅适用于桌面设备。" }, "template": { "label": "查询网址", From f3f4f23718ad06a2fb9564eda0e3a0350874f8c2 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Mon, 9 Oct 2023 21:29:41 +0200 Subject: [PATCH 26/62] =?UTF-8?q?=F0=9F=94=92=EF=B8=8F=20Fix=20tiptap=20ur?= =?UTF-8?q?l=20CVE=20(#1459)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/notebook/NotebookEditor.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/widgets/notebook/NotebookEditor.tsx b/src/widgets/notebook/NotebookEditor.tsx index ce71e9f13..4ec8ccb69 100644 --- a/src/widgets/notebook/NotebookEditor.tsx +++ b/src/widgets/notebook/NotebookEditor.tsx @@ -5,12 +5,12 @@ import { IconEdit, IconEditOff } from '@tabler/icons-react'; import { BubbleMenu, useEditor } from '@tiptap/react'; import StarterKit from '@tiptap/starter-kit'; import { useState } from 'react'; +import { useEditModeStore } from '~/components/Dashboard/Views/useEditModeStore'; +import { useConfigContext } from '~/config/provider'; import { useConfigStore } from '~/config/store'; import { useColorTheme } from '~/tools/color'; import { api } from '~/utils/api'; -import { useEditModeStore } from '~/components/Dashboard/Views/useEditModeStore'; -import { useConfigContext } from '~/config/provider'; import { WidgetLoading } from '../loading'; import { INotebookWidget } from './NotebookWidgetTile'; @@ -33,7 +33,14 @@ export function Editor({ widget }: { widget: INotebookWidget }) { const [debouncedContent] = useDebouncedValue(content, 500); const editor = useEditor({ - extensions: [StarterKit, Link], + extensions: [ + StarterKit, + Link.configure({ + validate(url) { + return /^https?:\/\//.test(url); + }, + }), + ], content, editable: false, onUpdate: (e) => { From 62cb758db572fe61034de4026e8bc2700aaddc9f Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 13 Oct 2023 21:55:39 +0200 Subject: [PATCH 27/62] =?UTF-8?q?=E2=9C=A8=20Adds=20support=20for=20poster?= =?UTF-8?q?=20on=20Radarr=20v5's=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/locales/en/modules/calendar.json | 3 +++ src/modules/common/MediaDisplay.tsx | 7 ++++++- src/widgets/calendar/CalendarTile.tsx | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/public/locales/en/modules/calendar.json b/public/locales/en/modules/calendar.json index 454ab0390..239dc8054 100644 --- a/public/locales/en/modules/calendar.json +++ b/public/locales/en/modules/calendar.json @@ -7,6 +7,9 @@ "useSonarrv4": { "label": "Use Sonarr v4 API" }, + "useRadarrv5": { + "label": "Use Radarr v5 API" + }, "radarrReleaseType": { "label": "Radarr release type", "data":{ diff --git a/src/modules/common/MediaDisplay.tsx b/src/modules/common/MediaDisplay.tsx index b873455c5..363247576 100644 --- a/src/modules/common/MediaDisplay.tsx +++ b/src/modules/common/MediaDisplay.tsx @@ -134,7 +134,12 @@ export function LidarrMediaDisplay(props: any) { export function RadarrMediaDisplay(props: any) { const { media }: { media: any } = props; + const { config } = useConfigContext(); + const calendar = config?.widgets.find((w) => w.type === 'calendar'); + const useRadarrv5 = calendar?.properties.useRadarrv5 ?? false; + // Find a poster CoverType + const poster = media.images.find((image: any) => image.coverType === 'poster'); return ( image.coverType === 'poster')?.url, + poster: useRadarrv5 ? poster.remoteUrl : poster.url, voteAverage: media.ratings.tmdb.value.toString(), imdbId: media.imdbId, type: 'movie', diff --git a/src/widgets/calendar/CalendarTile.tsx b/src/widgets/calendar/CalendarTile.tsx index b12d40bf1..fe4c087f9 100644 --- a/src/widgets/calendar/CalendarTile.tsx +++ b/src/widgets/calendar/CalendarTile.tsx @@ -30,6 +30,10 @@ const definition = defineWidget({ type: 'switch', defaultValue: false, }, + useRadarrv5: { + type: 'switch', + defaultValue: false, + }, radarrReleaseType: { type: 'select', defaultValue: 'inCinemas', From b8fab01c0b7ab7b5b8438ecb4cb626598f60a5e7 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Wed, 18 Oct 2023 20:39:23 +0200 Subject: [PATCH 28/62] Fix allow guest issue (#1472) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 Issue with migrate script for node 20 * 🐛 Issue with allow guest check when default config not present --- src/pages/board/index.tsx | 2 +- tsconfig.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/board/index.tsx b/src/pages/board/index.tsx index 20f25295a..6a283e919 100644 --- a/src/pages/board/index.tsx +++ b/src/pages/board/index.tsx @@ -45,7 +45,7 @@ export const getServerSideProps: GetServerSideProps = a ); const config = await getFrontendConfig(boardName); - if (!config.settings.access.allowGuests && !session?.user) { + if (!config?.settings?.access?.allowGuests && !session?.user) { return { notFound: true, props: { diff --git a/tsconfig.json b/tsconfig.json index 4fb9c134d..ddd387b7f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -38,7 +38,6 @@ "node_modules" ], "ts-node": { - "esm": true, "compilerOptions": { "module": "nodenext", }, From d60cd2ed8df64ff11654cd57f32314cbb2a27633 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Wed, 18 Oct 2023 20:40:54 +0200 Subject: [PATCH 29/62] =?UTF-8?q?=F0=9F=90=9B=20Issue=20with=20migrate=20s?= =?UTF-8?q?cript=20for=20node=2020=20(#1467)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 Issue with migrate script for node 20 * 🐛 Wrong database url in example env file --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 8cdf80f91..db8aaac59 100644 --- a/.env.example +++ b/.env.example @@ -10,7 +10,7 @@ # should be updated accordingly. # Database -DATABASE_URL="file:../database/db.sqlite" +DATABASE_URL="file:./database/db.sqlite" # Next Auth # You can generate a new secret on the command line with: From 0a98be4553b46f3b075857e98ad21f3c975d0682 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Wed, 18 Oct 2023 20:41:59 +0200 Subject: [PATCH 30/62] =?UTF-8?q?=E2=9C=85=20Add=20tests=20for=20invite=20?= =?UTF-8?q?router=20(#1456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✅ Add test for invite router * ✅ Add cleanup to invite-router tests, add tests for creation and deletion of invites * ♻️ Fix typo * ♻️ Remove nullish for limit of invite router all procedure --- .../User/Invite/delete-invite.modal.tsx | 2 +- src/server/api/root.ts | 15 +- .../api/routers/invite/invite-router.spec.ts | 234 ++++++++++++++++++ .../{invite.ts => invite/invite-router.ts} | 10 +- src/server/db/index.ts | 2 +- 5 files changed, 249 insertions(+), 14 deletions(-) create mode 100644 src/server/api/routers/invite/invite-router.spec.ts rename src/server/api/routers/{invite.ts => invite/invite-router.ts} (86%) diff --git a/src/components/Manage/User/Invite/delete-invite.modal.tsx b/src/components/Manage/User/Invite/delete-invite.modal.tsx index 9b4cf3826..b1d709b2a 100644 --- a/src/components/Manage/User/Invite/delete-invite.modal.tsx +++ b/src/components/Manage/User/Invite/delete-invite.modal.tsx @@ -29,7 +29,7 @@ export const DeleteInviteModal = ({ id, innerProps }: ContextModalProps<{ tokenI