From f0976081f3ea6cba1445ba26c0fc96dff4ea89d8 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Thu, 25 Aug 2022 18:10:23 +0200 Subject: [PATCH 01/32] Initial setup of Sabnzbd integration --- package.json | 1 + src/components/AppShelf/AddAppShelfItem.tsx | 3 +- src/components/AppShelf/AppShelf.tsx | 13 +- src/modules/index.ts | 3 +- src/modules/nzb/NzbModule.tsx | 137 ++++++++++++++++++ src/modules/nzb/index.ts | 1 + .../TorrentsModule.tsx} | 47 +++--- .../TotalDownloadsModule.tsx | 75 +++++----- src/modules/{downloads => torrents}/index.ts | 2 +- src/pages/api/modules/nzbs.ts | 60 ++++++++ .../api/modules/{downloads.ts => torrents.ts} | 0 src/tools/types.ts | 14 +- yarn.lock | 71 ++++++++- 13 files changed, 346 insertions(+), 81 deletions(-) create mode 100644 src/modules/nzb/NzbModule.tsx create mode 100644 src/modules/nzb/index.ts rename src/modules/{downloads/DownloadsModule.tsx => torrents/TorrentsModule.tsx} (83%) rename src/modules/{downloads => torrents}/TotalDownloadsModule.tsx (84%) rename src/modules/{downloads => torrents}/index.ts (54%) create mode 100644 src/pages/api/modules/nzbs.ts rename src/pages/api/modules/{downloads.ts => torrents.ts} (100%) diff --git a/package.json b/package.json index e9750de18..46b61bcb0 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "prism-react-renderer": "^1.3.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "sabnzbd-api": "^1.5.0", "sharp": "^0.30.7", "systeminformation": "^5.12.1", "uuid": "^8.3.2", diff --git a/src/components/AppShelf/AddAppShelfItem.tsx b/src/components/AppShelf/AddAppShelfItem.tsx index efeba042a..fc5d3960e 100644 --- a/src/components/AppShelf/AddAppShelfItem.tsx +++ b/src/components/AppShelf/AddAppShelfItem.tsx @@ -269,7 +269,8 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } & form.values.type === 'Lidarr' || form.values.type === 'Overseerr' || form.values.type === 'Jellyseerr' || - form.values.type === 'Readarr') && ( + form.values.type === 'Readarr' || + form.values.type === 'Sabnzbd') && ( <> { const { config, setConfig } = useConfig(); @@ -150,7 +150,7 @@ const AppShelf = (props: any) => { {/* Return the item for all services without category */} {noCategory && noCategory.length > 0 ? ( - {t('accordions.others.text')} + Other {getItems()} ) : null} @@ -170,8 +170,8 @@ const AppShelf = (props: any) => { ${(config.settings.appOpacity || 100) / 100}`, }} > - - + + @@ -183,7 +183,8 @@ const AppShelf = (props: any) => { return ( {getItems()} - + + ); }; diff --git a/src/modules/index.ts b/src/modules/index.ts index 88cb1ad02..c903fdbad 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -1,9 +1,10 @@ export * from './calendar'; export * from './dashdot'; export * from './date'; -export * from './downloads'; +export * from './torrents'; export * from './ping'; export * from './search'; export * from './weather'; export * from './docker'; export * from './overseerr'; +export * from './nzb'; diff --git a/src/modules/nzb/NzbModule.tsx b/src/modules/nzb/NzbModule.tsx new file mode 100644 index 000000000..31374c550 --- /dev/null +++ b/src/modules/nzb/NzbModule.tsx @@ -0,0 +1,137 @@ +import { Center, Progress, ScrollArea, Skeleton, Table, Text, Title, Tooltip } from '@mantine/core'; +import { showNotification } from '@mantine/notifications'; +import { IconDownload, IconPlayerPause, IconPlayerPlay } from '@tabler/icons'; +import axios from 'axios'; +import dayjs from 'dayjs'; +import { FunctionComponent, useEffect, useState } from 'react'; +import duration from 'dayjs/plugin/duration'; +import { humanFileSize } from '../../tools/humanFileSize'; +import { DownloadItem } from '../../tools/types'; +import { IModule } from '../ModuleTypes'; + +dayjs.extend(duration); + +export const NzbComponent: FunctionComponent = () => { + const [nzbs, setNzbs] = useState([]); + const [isLoading, setIsLoading] = useState(true); + + useEffect(() => { + setIsLoading(true); + + const getData = async () => { + try { + const response = await axios.get('/api/modules/nzbs'); + setNzbs(response.data); + } catch (error) { + setNzbs([]); + showNotification({ + title: 'Error fetching torrents', + autoClose: 1000, + disallowClose: true, + id: 'fail-torrent-downloads-module', + color: 'red', + message: + 'Please check your config for any potential errors, check the console for more info', + }); + } finally { + setIsLoading(false); + } + }; + + const interval = setInterval(getData, 10000); + getData(); + + () => { + clearInterval(interval); + }; + }, []); + + const ths = ( + + + Name + Size + ETA + Progress + + ); + + const rows = nzbs.map((nzb) => ( + + + {nzb.state === 'paused' ? ( + + ) : ( + + )} + + + + + {nzb.name} + + + + + {humanFileSize(nzb.size * 1000 * 1000)} + + + {nzb.eta <= 0 ? ( + + Paused + + ) : ( + {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} + )} + + + {nzb.progress.toFixed(1)}% + + + + )); + + if (isLoading) { + return ( + <> + + + + + ); + } + + return ( + + {rows.length > 0 ? ( + + {ths} + {rows} +
+ ) : ( +
+ Queue is empty +
+ )} +
+ ); +}; + +export const NzbModule: IModule = { + id: 'usenet', + title: 'Usenet', + icon: IconDownload, + component: NzbComponent, +}; + +export default NzbComponent; diff --git a/src/modules/nzb/index.ts b/src/modules/nzb/index.ts new file mode 100644 index 000000000..cd8cec9fc --- /dev/null +++ b/src/modules/nzb/index.ts @@ -0,0 +1 @@ +export { NzbModule } from './NzbModule'; diff --git a/src/modules/downloads/DownloadsModule.tsx b/src/modules/torrents/TorrentsModule.tsx similarity index 83% rename from src/modules/downloads/DownloadsModule.tsx rename to src/modules/torrents/TorrentsModule.tsx index 51afc5301..04a9b6b3b 100644 --- a/src/modules/downloads/DownloadsModule.tsx +++ b/src/modules/torrents/TorrentsModule.tsx @@ -8,35 +8,33 @@ import { Skeleton, ScrollArea, Center, - Stack, } from '@mantine/core'; import { IconDownload as Download } from '@tabler/icons'; import { useEffect, useState } from 'react'; import axios from 'axios'; -import { NormalizedTorrent } from '@ctrl/shared-torrent'; import { useViewportSize } from '@mantine/hooks'; import { showNotification } from '@mantine/notifications'; -import { useTranslation } from 'next-i18next'; +import { NormalizedTorrent } from '@ctrl/shared-torrent'; import { IModule } from '../ModuleTypes'; import { useConfig } from '../../tools/state'; import { AddItemShelfButton } from '../../components/AppShelf/AddAppShelfItem'; import { useSetSafeInterval } from '../../tools/hooks/useSetSafeInterval'; import { humanFileSize } from '../../tools/humanFileSize'; -export const DownloadsModule: IModule = { +export const TorrentsModule: IModule = { + id: 'torrent', title: 'Torrent', icon: Download, - component: DownloadComponent, + component: TorrentsComponent, options: { hidecomplete: { - name: 'descriptor.settings.hideComplete', + name: 'Hide completed torrents', value: false, }, }, - id: 'torrents-status', }; -export default function DownloadComponent() { +export default function TorrentsComponent() { const { config } = useConfig(); const { height, width } = useViewportSize(); const downloadServices = @@ -44,23 +42,22 @@ export default function DownloadComponent() { (service) => service.type === 'qBittorrent' || service.type === 'Transmission' || - service.type === 'Deluge' + service.type === 'Deluge' || + service.type === 'Sabnzbd' ) ?? []; + const hideComplete: boolean = - (config?.modules?.[DownloadsModule.id]?.options?.hidecomplete?.value as boolean) ?? false; + (config?.modules?.[TorrentsModule.title]?.options?.hidecomplete?.value as boolean) ?? false; const [torrents, setTorrents] = useState([]); const setSafeInterval = useSetSafeInterval(); const [isLoading, setIsLoading] = useState(true); - - const { t } = useTranslation(`modules/${DownloadsModule.id}`); - useEffect(() => { setIsLoading(true); if (downloadServices.length === 0) return; const interval = setInterval(() => { // Send one request with each download service inside axios - .post('/api/modules/downloads') + .post('/api/modules/torrents') .then((response) => { setTorrents(response.data); setIsLoading(false); @@ -86,13 +83,13 @@ export default function DownloadComponent() { if (downloadServices.length === 0) { return ( - - {t('card.errors.noDownloadClients.title')} + + No supported download clients found! - {t('card.errors.noDownloadClients.text')} + Add a download service to view your current downloads - + ); } @@ -110,12 +107,12 @@ export default function DownloadComponent() { const DEVICE_WIDTH = 576; const ths = ( - {t('card.table.header.name')} - {t('card.table.header.size')} - {width > 576 ? {t('card.table.header.download')} : ''} - {width > 576 ? {t('card.table.header.upload')} : ''} - {t('card.table.header.estimatedTimeOfArrival')} - {t('card.table.header.progress')} + Name + Size + {width > 576 ? Down : ''} + {width > 576 ? Up : ''} + ETA + Progress ); // Convert Seconds to readable format. @@ -200,7 +197,7 @@ export default function DownloadComponent() { ) : (
- {t('card.table.body.nothingFound')} + No torrents found
)} diff --git a/src/modules/downloads/TotalDownloadsModule.tsx b/src/modules/torrents/TotalDownloadsModule.tsx similarity index 84% rename from src/modules/downloads/TotalDownloadsModule.tsx rename to src/modules/torrents/TotalDownloadsModule.tsx index 0addfd712..ade7bb870 100644 --- a/src/modules/downloads/TotalDownloadsModule.tsx +++ b/src/modules/torrents/TotalDownloadsModule.tsx @@ -4,7 +4,6 @@ import { useEffect, useState } from 'react'; import axios from 'axios'; import { NormalizedTorrent } from '@ctrl/shared-torrent'; import { linearGradientDef } from '@nivo/core'; -import { useTranslation } from 'next-i18next'; import { Datum, ResponsiveLine } from '@nivo/line'; import { useListState } from '@mantine/hooks'; import { showNotification } from '@mantine/notifications'; @@ -15,10 +14,10 @@ import { IModule } from '../ModuleTypes'; import { useSetSafeInterval } from '../../tools/hooks/useSetSafeInterval'; export const TotalDownloadsModule: IModule = { + id: 'totalDownload', title: 'Download Speed', icon: Download, component: TotalDownloadsComponent, - id: 'dlspeed', }; interface torrentHistory { @@ -35,9 +34,9 @@ export default function TotalDownloadsComponent() { (service) => service.type === 'qBittorrent' || service.type === 'Transmission' || - service.type === 'Deluge' + service.type === 'Deluge' || + 'Sabnzbd' ) ?? []; - const { t } = useTranslation(`modules/${TotalDownloadsModule.id}`); const [torrentHistory, torrentHistoryHandlers] = useListState([]); const [torrents, setTorrents] = useState([]); @@ -71,30 +70,6 @@ export default function TotalDownloadsComponent() { }, 1000); }, [config.services]); - useEffect(() => { - torrentHistoryHandlers.append({ - x: Date.now(), - down: totalDownloadSpeed, - up: totalUploadSpeed, - }); - }, [totalDownloadSpeed, totalUploadSpeed]); - - if (downloadServices.length === 0) { - return ( - - {t('card.errors.noDownloadClients.title')} -
- - {t('card.errors.noDownloadClients.text')} -
-
- ); - } - const theme = useMantineTheme(); // Load the last 10 values from the history const history = torrentHistory.slice(-10); @@ -107,21 +82,41 @@ export default function TotalDownloadsComponent() { y: load.down, })) as Datum[]; + useEffect(() => { + torrentHistoryHandlers.append({ + x: Date.now(), + down: totalDownloadSpeed, + up: totalUploadSpeed, + }); + }, [totalDownloadSpeed, totalUploadSpeed]); + + if (downloadServices.length === 0) { + return ( + + No supported download clients found! +
+ + Add a download service to view your current downloads +
+
+ ); + } + return ( - {t('card.lineChart.title')} + Current download speed - - {t('card.lineChart.totalDownload', { download: humanFileSize(totalDownloadSpeed) })} - + Download: {humanFileSize(totalDownloadSpeed)}/s - - {t('card.lineChart.totalUpload', { upload: humanFileSize(totalUploadSpeed) })} - + Upload: {humanFileSize(totalUploadSpeed)}/s - {t('card.lineChart.timeSpan', { seconds: roundedSeconds })} + {roundedSeconds} seconds ago - - {t('card.lineChart.download', { download: humanFileSize(Download) })} - + Download: {humanFileSize(Download)} - - {t('card.lineChart.upload', { upload: humanFileSize(Upload) })} - + Upload: {humanFileSize(Upload)} diff --git a/src/modules/downloads/index.ts b/src/modules/torrents/index.ts similarity index 54% rename from src/modules/downloads/index.ts rename to src/modules/torrents/index.ts index f2d2c9beb..c5337e5fb 100644 --- a/src/modules/downloads/index.ts +++ b/src/modules/torrents/index.ts @@ -1,2 +1,2 @@ -export { DownloadsModule } from './DownloadsModule'; +export { TorrentsModule } from './TorrentsModule'; export { TotalDownloadsModule } from './TotalDownloadsModule'; diff --git a/src/pages/api/modules/nzbs.ts b/src/pages/api/modules/nzbs.ts new file mode 100644 index 000000000..4eb098277 --- /dev/null +++ b/src/pages/api/modules/nzbs.ts @@ -0,0 +1,60 @@ +import { getCookie } from 'cookies-next'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { NextApiRequest, NextApiResponse } from 'next'; +import { Client } from 'sabnzbd-api'; +import { getConfig } from '../../../tools/getConfig'; +import { Config, DownloadItem } from '../../../tools/types'; + +dayjs.extend(duration); + +async function Get(req: NextApiRequest, res: NextApiResponse) { + try { + const configName = getCookie('config-name', { req }); + const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; + const nzbServices = config.services.filter((service) => service.type === 'Sabnzbd'); + + const downloads: DownloadItem[] = []; + + await Promise.all( + nzbServices.map(async (service) => { + if (!service.apiKey) { + throw new Error(`API Key for service "${service.name}" is missing`); + } + const queue = await new Client(service.url, service.apiKey).queue(); + + queue.slots.forEach((slot) => { + const [hours, minutes, seconds] = slot.timeleft.split(':'); + const eta = dayjs.duration({ + hour: parseInt(hours, 10), + minutes: parseInt(minutes, 10), + seconds: parseInt(seconds, 10), + } as any); + downloads.push({ + id: slot.nzo_id, + eta: eta.asSeconds(), + name: slot.filename, + progress: parseFloat(slot.percentage), + size: parseFloat(slot.mb), + state: slot.status.toLowerCase() as any, + }); + }); + }) + ); + + return res.status(200).json(downloads); + } catch (err) { + return res.status(401).json(err); + } +} + +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Filter out if the reuqest is a POST or a GET + if (req.method === 'GET') { + return Get(req, res); + } + return res.status(405).json({ + statusCode: 405, + message: 'Method not allowed', + }); +}; diff --git a/src/pages/api/modules/downloads.ts b/src/pages/api/modules/torrents.ts similarity index 100% rename from src/pages/api/modules/downloads.ts rename to src/pages/api/modules/torrents.ts diff --git a/src/tools/types.ts b/src/tools/types.ts index e08b491e4..7eab83639 100644 --- a/src/tools/types.ts +++ b/src/tools/types.ts @@ -72,6 +72,7 @@ export const ServiceTypeList = [ 'Transmission', 'Overseerr', 'Jellyseerr', + 'Sabnzbd', ]; export type ServiceType = | 'Other' @@ -86,7 +87,8 @@ export type ServiceType = | 'Sonarr' | 'Overseerr' | 'Jellyseerr' - | 'Transmission'; + | 'Transmission' + | 'Sabnzbd'; export function tryMatchPort(name: string | undefined, form?: any) { if (!name) { @@ -112,6 +114,7 @@ export const portmap = [ { name: 'emby', value: '8096' }, { name: 'overseerr', value: '5055' }, { name: 'dash.', value: '3001' }, + { name: 'sabnzbd', value: '8080' }, ]; export const MatchingImages: { @@ -185,3 +188,12 @@ export interface serviceItem { newTab?: boolean; status?: string[]; } + +export interface DownloadItem { + name: string; + progress: number; + size: number; + id: string; + state: 'paused' | 'downloading' | 'queued'; + eta: number; +} diff --git a/yarn.lock b/yarn.lock index 1488fe927..905d3b641 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1860,7 +1860,7 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^4.6.0": +"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 @@ -1885,6 +1885,15 @@ __metadata: languageName: node linkType: hard +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: ^2.0.0 + checksum: c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^5.0.1": version: 5.0.1 resolution: "@szmarczak/http-timer@npm:5.0.1" @@ -1957,7 +1966,7 @@ __metadata: languageName: node linkType: hard -"@types/cacheable-request@npm:^6.0.2": +"@types/cacheable-request@npm:^6.0.1, @types/cacheable-request@npm:^6.0.2": version: 6.0.2 resolution: "@types/cacheable-request@npm:6.0.2" dependencies: @@ -2805,6 +2814,13 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + "cacheable-lookup@npm:^6.0.4": version: 6.0.4 resolution: "cacheable-lookup@npm:6.0.4" @@ -3397,7 +3413,7 @@ __metadata: languageName: node linkType: hard -"defer-to-connect@npm:^2.0.1": +"defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b @@ -4597,6 +4613,25 @@ __metadata: languageName: node linkType: hard +"got@npm:^11.8.2": + version: 11.8.5 + resolution: "got@npm:11.8.5" + dependencies: + "@sindresorhus/is": ^4.0.0 + "@szmarczak/http-timer": ^4.0.5 + "@types/cacheable-request": ^6.0.1 + "@types/responselike": ^1.0.0 + cacheable-lookup: ^5.0.3 + cacheable-request: ^7.0.2 + decompress-response: ^6.0.0 + http2-wrapper: ^1.0.0-beta.5.2 + lowercase-keys: ^2.0.0 + p-cancelable: ^2.0.0 + responselike: ^2.0.0 + checksum: 2de8a1bbda4e9b6b2b72b2d2100bc055a59adc1740529e631f61feb44a8b9a1f9f8590941ed9da9df0090b6d6d0ed8ffee94cd9ac086ec3409b392b33440f7d2 + languageName: node + linkType: hard + "got@npm:^12.1.0": version: 12.1.0 resolution: "got@npm:12.1.0" @@ -4777,6 +4812,7 @@ __metadata: prism-react-renderer: ^1.3.5 react: ^18.2.0 react-dom: ^18.2.0 + sabnzbd-api: ^1.5.0 sharp: ^0.30.7 systeminformation: ^5.12.1 typescript: ^4.7.4 @@ -4870,6 +4906,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e + languageName: node + linkType: hard + "http2-wrapper@npm:^2.1.10": version: 2.1.11 resolution: "http2-wrapper@npm:2.1.11" @@ -6603,6 +6649,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 3dba12b4fb4a1e3e34524535c7858fc82381bbbd0f247cc32dedc4018592a3950ce66b106d0880b4ec4c2d8d6576f98ca885dc1d7d0f274d1370be20e9523ddf + languageName: node + linkType: hard + "p-cancelable@npm:^3.0.0": version: 3.0.0 resolution: "p-cancelable@npm:3.0.0" @@ -7128,7 +7181,7 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.2.0": +"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 @@ -7260,6 +7313,16 @@ __metadata: languageName: node linkType: hard +"sabnzbd-api@npm:^1.5.0": + version: 1.5.0 + resolution: "sabnzbd-api@npm:1.5.0" + dependencies: + form-data: ^4.0.0 + got: ^11.8.2 + checksum: e52b6978f7f4c4df1857b3be5a400182c3f494bf68f1c496bb0e56d7a629947cdd088aff9ae0cb331337574b1302ff13c7d75228761876d7f0e825c7269b54ff + languageName: node + linkType: hard + "safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" From 4afa09fd7a8a494ea2820c922babe089e73575f3 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Thu, 25 Aug 2022 18:47:06 +0200 Subject: [PATCH 02/32] Cleanup --- src/components/AppShelf/AppShelf.tsx | 4 +- src/modules/index.ts | 2 +- src/modules/nzb/index.ts | 1 - src/modules/torrents/TotalDownloadsModule.tsx | 3 +- .../NzbModule.tsx => usenet/UsenetModule.tsx} | 56 ++++++++++++------- src/modules/usenet/index.ts | 2 + src/modules/usenet/types.ts | 13 +++++ src/pages/api/modules/usenet/history.ts | 52 +++++++++++++++++ .../api/modules/{nzbs.ts => usenet/index.ts} | 7 ++- src/tools/types.ts | 9 --- 10 files changed, 112 insertions(+), 37 deletions(-) delete mode 100644 src/modules/nzb/index.ts rename src/modules/{nzb/NzbModule.tsx => usenet/UsenetModule.tsx} (71%) create mode 100644 src/modules/usenet/index.ts create mode 100644 src/modules/usenet/types.ts create mode 100644 src/pages/api/modules/usenet/history.ts rename src/pages/api/modules/{nzbs.ts => usenet/index.ts} (89%) diff --git a/src/components/AppShelf/AppShelf.tsx b/src/components/AppShelf/AppShelf.tsx index 85d44a2b8..62be7994c 100644 --- a/src/components/AppShelf/AppShelf.tsx +++ b/src/components/AppShelf/AppShelf.tsx @@ -16,7 +16,7 @@ import { useConfig } from '../../tools/state'; import { SortableAppShelfItem, AppShelfItem } from './AppShelfItem'; import { ModuleMenu, ModuleWrapper } from '../../modules/moduleWrapper'; -import { NzbModule, TorrentsModule } from '../../modules'; +import { UsenetModule, TorrentsModule } from '../../modules'; import TorrentsComponent from '../../modules/torrents/TorrentsModule'; const AppShelf = (props: any) => { @@ -184,7 +184,7 @@ const AppShelf = (props: any) => { {getItems()} - + ); }; diff --git a/src/modules/index.ts b/src/modules/index.ts index c903fdbad..f3b7292a7 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -7,4 +7,4 @@ export * from './search'; export * from './weather'; export * from './docker'; export * from './overseerr'; -export * from './nzb'; +export * from './usenet'; diff --git a/src/modules/nzb/index.ts b/src/modules/nzb/index.ts deleted file mode 100644 index cd8cec9fc..000000000 --- a/src/modules/nzb/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { NzbModule } from './NzbModule'; diff --git a/src/modules/torrents/TotalDownloadsModule.tsx b/src/modules/torrents/TotalDownloadsModule.tsx index ade7bb870..e0e7f05af 100644 --- a/src/modules/torrents/TotalDownloadsModule.tsx +++ b/src/modules/torrents/TotalDownloadsModule.tsx @@ -34,8 +34,7 @@ export default function TotalDownloadsComponent() { (service) => service.type === 'qBittorrent' || service.type === 'Transmission' || - service.type === 'Deluge' || - 'Sabnzbd' + service.type === 'Deluge' ) ?? []; const [torrentHistory, torrentHistoryHandlers] = useListState([]); diff --git a/src/modules/nzb/NzbModule.tsx b/src/modules/usenet/UsenetModule.tsx similarity index 71% rename from src/modules/nzb/NzbModule.tsx rename to src/modules/usenet/UsenetModule.tsx index 31374c550..63ec02134 100644 --- a/src/modules/nzb/NzbModule.tsx +++ b/src/modules/usenet/UsenetModule.tsx @@ -1,4 +1,14 @@ -import { Center, Progress, ScrollArea, Skeleton, Table, Text, Title, Tooltip } from '@mantine/core'; +import { + Center, + Progress, + ScrollArea, + Skeleton, + Table, + Tabs, + Text, + Title, + Tooltip, +} from '@mantine/core'; import { showNotification } from '@mantine/notifications'; import { IconDownload, IconPlayerPause, IconPlayerPlay } from '@tabler/icons'; import axios from 'axios'; @@ -11,7 +21,7 @@ import { IModule } from '../ModuleTypes'; dayjs.extend(duration); -export const NzbComponent: FunctionComponent = () => { +export const UsenetComponent: FunctionComponent = () => { const [nzbs, setNzbs] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -20,7 +30,7 @@ export const NzbComponent: FunctionComponent = () => { const getData = async () => { try { - const response = await axios.get('/api/modules/nzbs'); + const response = await axios.get('/api/modules/usenet'); setNzbs(response.data); } catch (error) { setNzbs([]); @@ -38,7 +48,7 @@ export const NzbComponent: FunctionComponent = () => { } }; - const interval = setInterval(getData, 10000); + const interval = setInterval(getData, 5000); getData(); () => { @@ -112,26 +122,34 @@ export const NzbComponent: FunctionComponent = () => { } return ( - - {rows.length > 0 ? ( - - {ths} - {rows} -
- ) : ( -
- Queue is empty -
- )} -
+ + + Queue + History + + + + {rows.length > 0 ? ( + + {ths} + {rows} +
+ ) : ( +
+ Queue is empty +
+ )} +
+
+
); }; -export const NzbModule: IModule = { +export const UsenetModule: IModule = { id: 'usenet', title: 'Usenet', icon: IconDownload, - component: NzbComponent, + component: UsenetComponent, }; -export default NzbComponent; +export default UsenetComponent; diff --git a/src/modules/usenet/index.ts b/src/modules/usenet/index.ts new file mode 100644 index 000000000..6ee3e560e --- /dev/null +++ b/src/modules/usenet/index.ts @@ -0,0 +1,2 @@ +export { UsenetModule } from './UsenetModule'; +export * from './types'; diff --git a/src/modules/usenet/types.ts b/src/modules/usenet/types.ts new file mode 100644 index 000000000..88831e8ce --- /dev/null +++ b/src/modules/usenet/types.ts @@ -0,0 +1,13 @@ +export interface UsenetQueueItem { + name: string; + progress: number; + size: number; + id: string; + state: 'paused' | 'downloading' | 'queued'; + eta: number; +} +export interface UsenetHistoryItem { + name: string; + size: number; + id: string; +} diff --git a/src/pages/api/modules/usenet/history.ts b/src/pages/api/modules/usenet/history.ts new file mode 100644 index 000000000..23b50f476 --- /dev/null +++ b/src/pages/api/modules/usenet/history.ts @@ -0,0 +1,52 @@ +import { getCookie } from 'cookies-next'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { NextApiRequest, NextApiResponse } from 'next'; +import { Client } from 'sabnzbd-api'; +import { UsenetHistoryItem } from '../../../../modules'; +import { getConfig } from '../../../../tools/getConfig'; +import { Config } from '../../../../tools/types'; + +dayjs.extend(duration); + +async function Get(req: NextApiRequest, res: NextApiResponse) { + try { + const configName = getCookie('config-name', { req }); + const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; + const nzbServices = config.services.filter((service) => service.type === 'Sabnzbd'); + + const history: UsenetHistoryItem[] = []; + + await Promise.all( + nzbServices.map(async (service) => { + if (!service.apiKey) { + throw new Error(`API Key for service "${service.name}" is missing`); + } + const queue = await new Client(service.url, service.apiKey).history(); + + queue.slots.forEach((slot) => { + history.push({ + id: slot.nzo_id, + name: slot.name, + size: slot.bytes * 1000, + }); + }); + }) + ); + + return res.status(200).json(history); + } catch (err) { + return res.status(401).json(err); + } +} + +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Filter out if the reuqest is a POST or a GET + if (req.method === 'GET') { + return Get(req, res); + } + return res.status(405).json({ + statusCode: 405, + message: 'Method not allowed', + }); +}; diff --git a/src/pages/api/modules/nzbs.ts b/src/pages/api/modules/usenet/index.ts similarity index 89% rename from src/pages/api/modules/nzbs.ts rename to src/pages/api/modules/usenet/index.ts index 4eb098277..9c3565098 100644 --- a/src/pages/api/modules/nzbs.ts +++ b/src/pages/api/modules/usenet/index.ts @@ -3,8 +3,9 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { NextApiRequest, NextApiResponse } from 'next'; import { Client } from 'sabnzbd-api'; -import { getConfig } from '../../../tools/getConfig'; -import { Config, DownloadItem } from '../../../tools/types'; +import { UsenetQueueItem } from '../../../../modules'; +import { getConfig } from '../../../../tools/getConfig'; +import { Config } from '../../../../tools/types'; dayjs.extend(duration); @@ -14,7 +15,7 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; const nzbServices = config.services.filter((service) => service.type === 'Sabnzbd'); - const downloads: DownloadItem[] = []; + const downloads: UsenetQueueItem[] = []; await Promise.all( nzbServices.map(async (service) => { diff --git a/src/tools/types.ts b/src/tools/types.ts index 7eab83639..08babdb39 100644 --- a/src/tools/types.ts +++ b/src/tools/types.ts @@ -188,12 +188,3 @@ export interface serviceItem { newTab?: boolean; status?: string[]; } - -export interface DownloadItem { - name: string; - progress: number; - size: number; - id: string; - state: 'paused' | 'downloading' | 'queued'; - eta: number; -} From c44a01fbc3c041860066c1d067e9e7145ae50859 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Thu, 25 Aug 2022 21:07:41 +0200 Subject: [PATCH 03/32] More cleanup and history added --- package.json | 199 ++++++++++++----------- src/modules/usenet/UsenetHistoryList.tsx | 71 ++++++++ src/modules/usenet/UsenetModule.tsx | 135 ++------------- src/modules/usenet/UsenetQueueList.tsx | 87 ++++++++++ src/modules/usenet/types.ts | 7 + src/pages/api/modules/usenet/history.ts | 3 +- src/pages/api/modules/usenet/index.ts | 2 +- src/pages/index.tsx | 14 +- src/tools/hooks/api.ts | 21 +++ yarn.lock | 44 +++++ 10 files changed, 357 insertions(+), 226 deletions(-) create mode 100644 src/modules/usenet/UsenetHistoryList.tsx create mode 100644 src/modules/usenet/UsenetQueueList.tsx create mode 100644 src/tools/hooks/api.ts diff --git a/package.json b/package.json index 46b61bcb0..d3519c067 100644 --- a/package.json +++ b/package.json @@ -1,101 +1,102 @@ { - "name": "homarr", - "version": "0.9.2", - "description": "Homarr - A homepage for your server.", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/ajnart/homarr" - }, - "scripts": { - "dev": "next dev", - "build": "next build", - "analyze": "ANALYZE=true next build", - "start": "next start", - "typecheck": "tsc --noEmit", - "export": "next build && next export", - "lint": "next lint", - "jest": "jest", - "jest:watch": "jest --watch", - "prettier:check": "prettier --check \"**/*.{ts,tsx}\"", - "prettier:write": "prettier --write \"**/*.{ts,tsx}\"", - "test": "npm run prettier:check && npm run lint && npm run typecheck && npm run jest", - "ci": "yarn test && yarn lint --fix && yarn typecheck && yarn prettier:write" - }, - "dependencies": { - "@ctrl/deluge": "^4.1.0", - "@ctrl/qbittorrent": "^4.1.0", - "@ctrl/shared-torrent": "^4.1.1", - "@ctrl/transmission": "^4.1.1", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.1", - "@dnd-kit/utilities": "^3.2.0", - "@emotion/react": "^11.10.0", - "@emotion/server": "^11.10.0", - "@mantine/carousel": "^5.1.0", - "@mantine/core": "^5.2.3", - "@mantine/dates": "^5.2.3", - "@mantine/dropzone": "^5.2.3", - "@mantine/form": "^5.2.3", - "@mantine/hooks": "^5.2.3", - "@mantine/modals": "^5.2.3", - "@mantine/next": "^5.2.3", - "@mantine/notifications": "^5.2.3", - "@mantine/prism": "^5.0.0", - "@nivo/core": "^0.79.0", - "@nivo/line": "^0.79.1", - "@tabler/icons": "^1.78.0", - "add": "^2.0.6", - "axios": "^0.27.2", - "consola": "^2.15.3", - "cookies-next": "^2.1.1", - "country-flag-icons": "^1.5.5", - "dayjs": "^1.11.5", - "dockerode": "^3.3.2", - "embla-carousel-react": "^7.0.0", - "framer-motion": "^6.5.1", - "i18next": "^21.9.1", - "i18next-browser-languagedetector": "^6.1.5", - "i18next-http-backend": "^1.4.1", - "js-file-download": "^0.4.12", - "next": "12.1.6", - "next-i18next": "^11.3.0", - "prism-react-renderer": "^1.3.5", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sabnzbd-api": "^1.5.0", - "sharp": "^0.30.7", - "systeminformation": "^5.12.1", - "uuid": "^8.3.2", - "yarn": "^1.22.19" - }, - "devDependencies": { - "@next/bundle-analyzer": "^12.1.4", - "@next/eslint-plugin-next": "^12.1.4", - "@types/dockerode": "^3.3.9", - "@types/node": "17.0.1", - "@types/react": "17.0.1", - "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.30.7", - "@typescript-eslint/parser": "^5.30.7", - "eslint": "^8.20.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-mantine": "^2.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^26.6.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-testing-library": "^5.5.1", - "eslint-plugin-unused-imports": "^2.0.0", - "jest": "^28.1.3", - "prettier": "^2.7.1", - "typescript": "^4.7.4" - }, - "resolutions": { - "@types/react": "17.0.2", - "@types/react-dom": "17.0.2" - }, - "packageManager": "yarn@3.2.1" + "name": "homarr", + "version": "0.9.2", + "description": "Homarr - A homepage for your server.", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/ajnart/homarr" + }, + "scripts": { + "dev": "next dev", + "build": "next build", + "analyze": "ANALYZE=true next build", + "start": "next start", + "typecheck": "tsc --noEmit", + "export": "next build && next export", + "lint": "next lint", + "jest": "jest", + "jest:watch": "jest --watch", + "prettier:check": "prettier --check \"**/*.{ts,tsx}\"", + "prettier:write": "prettier --write \"**/*.{ts,tsx}\"", + "test": "npm run prettier:check && npm run lint && npm run typecheck && npm run jest", + "ci": "yarn test && yarn lint --fix && yarn typecheck && yarn prettier:write" + }, + "dependencies": { + "@ctrl/deluge": "^4.1.0", + "@ctrl/qbittorrent": "^4.1.0", + "@ctrl/shared-torrent": "^4.1.1", + "@ctrl/transmission": "^4.1.1", + "@dnd-kit/core": "^6.0.5", + "@dnd-kit/sortable": "^7.0.1", + "@dnd-kit/utilities": "^3.2.0", + "@emotion/react": "^11.10.0", + "@emotion/server": "^11.10.0", + "@mantine/carousel": "^5.1.0", + "@mantine/core": "^5.2.3", + "@mantine/dates": "^5.2.3", + "@mantine/dropzone": "^5.2.3", + "@mantine/form": "^5.2.3", + "@mantine/hooks": "^5.2.3", + "@mantine/modals": "^5.2.3", + "@mantine/next": "^5.2.3", + "@mantine/notifications": "^5.2.3", + "@mantine/prism": "^5.0.0", + "@nivo/core": "^0.79.0", + "@nivo/line": "^0.79.1", + "@tabler/icons": "^1.78.0", + "@tanstack/react-query": "^4.2.1", + "add": "^2.0.6", + "axios": "^0.27.2", + "consola": "^2.15.3", + "cookies-next": "^2.1.1", + "country-flag-icons": "^1.5.5", + "dayjs": "^1.11.5", + "dockerode": "^3.3.2", + "embla-carousel-react": "^7.0.0", + "framer-motion": "^6.5.1", + "i18next": "^21.9.1", + "i18next-browser-languagedetector": "^6.1.5", + "i18next-http-backend": "^1.4.1", + "js-file-download": "^0.4.12", + "next": "12.1.6", + "next-i18next": "^11.3.0", + "prism-react-renderer": "^1.3.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sabnzbd-api": "^1.5.0", + "sharp": "^0.30.7", + "systeminformation": "^5.12.1", + "uuid": "^8.3.2", + "yarn": "^1.22.19" + }, + "devDependencies": { + "@next/bundle-analyzer": "^12.1.4", + "@next/eslint-plugin-next": "^12.1.4", + "@types/dockerode": "^3.3.9", + "@types/node": "17.0.1", + "@types/react": "17.0.1", + "@types/uuid": "^8.3.4", + "@typescript-eslint/eslint-plugin": "^5.30.7", + "@typescript-eslint/parser": "^5.30.7", + "eslint": "^8.20.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-mantine": "^2.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^26.6.0", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-testing-library": "^5.5.1", + "eslint-plugin-unused-imports": "^2.0.0", + "jest": "^28.1.3", + "prettier": "^2.7.1", + "typescript": "^4.7.4" + }, + "resolutions": { + "@types/react": "17.0.2", + "@types/react-dom": "17.0.2" + }, + "packageManager": "yarn@3.2.1" } diff --git a/src/modules/usenet/UsenetHistoryList.tsx b/src/modules/usenet/UsenetHistoryList.tsx new file mode 100644 index 000000000..c2b8e8da5 --- /dev/null +++ b/src/modules/usenet/UsenetHistoryList.tsx @@ -0,0 +1,71 @@ +import { Center, Table, Text, Title, Tooltip, useMantineTheme } from '@mantine/core'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { FunctionComponent } from 'react'; +import { humanFileSize } from '../../tools/humanFileSize'; +import { UsenetHistoryItem } from './types'; + +dayjs.extend(duration); + +interface UsenetHistoryListProps { + items: UsenetHistoryItem[]; +} + +export const UsenetHistoryList: FunctionComponent = ({ items }) => { + const theme = useMantineTheme(); + + if (items.length <= 0) { + return ( +
+ Queue is empty +
+ ); + } + + return ( + + + + + + + + + + + + + + + {items.map((history) => ( + + + + + + ))} + +
NameSizeDownload Duration
+ + + {history.name} + + + + {humanFileSize(history.size)} + + + {dayjs + .duration(history.time, 's') + .format(history.time < 60 ? 's [seconds]' : 'm [minutes] s [seconds] ')} + +
+ ); +}; diff --git a/src/modules/usenet/UsenetModule.tsx b/src/modules/usenet/UsenetModule.tsx index 63ec02134..8fae8b3e3 100644 --- a/src/modules/usenet/UsenetModule.tsx +++ b/src/modules/usenet/UsenetModule.tsx @@ -1,115 +1,16 @@ -import { - Center, - Progress, - ScrollArea, - Skeleton, - Table, - Tabs, - Text, - Title, - Tooltip, -} from '@mantine/core'; -import { showNotification } from '@mantine/notifications'; -import { IconDownload, IconPlayerPause, IconPlayerPlay } from '@tabler/icons'; -import axios from 'axios'; -import dayjs from 'dayjs'; -import { FunctionComponent, useEffect, useState } from 'react'; -import duration from 'dayjs/plugin/duration'; -import { humanFileSize } from '../../tools/humanFileSize'; -import { DownloadItem } from '../../tools/types'; -import { IModule } from '../ModuleTypes'; +import { Skeleton, Tabs, useMantineTheme } from '@mantine/core'; +import { IconDownload } from '@tabler/icons'; +import { FunctionComponent } from 'react'; -dayjs.extend(duration); +import { IModule } from '../ModuleTypes'; +import { useGetUsenetDownloads, useGetUsenetHistory } from '../../tools/hooks/api'; +import { UsenetQueueList } from './UsenetQueueList'; +import { UsenetHistoryList } from './UsenetHistoryList'; export const UsenetComponent: FunctionComponent = () => { - const [nzbs, setNzbs] = useState([]); - const [isLoading, setIsLoading] = useState(true); - - useEffect(() => { - setIsLoading(true); - - const getData = async () => { - try { - const response = await axios.get('/api/modules/usenet'); - setNzbs(response.data); - } catch (error) { - setNzbs([]); - showNotification({ - title: 'Error fetching torrents', - autoClose: 1000, - disallowClose: true, - id: 'fail-torrent-downloads-module', - color: 'red', - message: - 'Please check your config for any potential errors, check the console for more info', - }); - } finally { - setIsLoading(false); - } - }; - - const interval = setInterval(getData, 5000); - getData(); - - () => { - clearInterval(interval); - }; - }, []); - - const ths = ( - - - Name - Size - ETA - Progress - - ); - - const rows = nzbs.map((nzb) => ( - - - {nzb.state === 'paused' ? ( - - ) : ( - - )} - - - - - {nzb.name} - - - - - {humanFileSize(nzb.size * 1000 * 1000)} - - - {nzb.eta <= 0 ? ( - - Paused - - ) : ( - {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} - )} - - - {nzb.progress.toFixed(1)}% - - - - )); + const theme = useMantineTheme(); + const { isLoading, data: nzbs = [] } = useGetUsenetDownloads(); + const { data: history = [] } = useGetUsenetHistory(); if (isLoading) { return ( @@ -128,18 +29,10 @@ export const UsenetComponent: FunctionComponent = () => { History - - {rows.length > 0 ? ( - - {ths} - {rows} -
- ) : ( -
- Queue is empty -
- )} -
+ +
+ + ); diff --git a/src/modules/usenet/UsenetQueueList.tsx b/src/modules/usenet/UsenetQueueList.tsx new file mode 100644 index 000000000..3d7a4e205 --- /dev/null +++ b/src/modules/usenet/UsenetQueueList.tsx @@ -0,0 +1,87 @@ +import { Center, Progress, Table, Text, Title, Tooltip, useMantineTheme } from '@mantine/core'; +import { IconPlayerPause, IconPlayerPlay } from '@tabler/icons'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { FunctionComponent } from 'react'; +import { humanFileSize } from '../../tools/humanFileSize'; +import { UsenetQueueItem } from './types'; + +dayjs.extend(duration); +interface UsenetQueueListProps { + items: UsenetQueueItem[]; +} + +export const UsenetQueueList: FunctionComponent = ({ items }) => { + const theme = useMantineTheme(); + + if (items.length <= 0) { + return ( +
+ Queue is empty +
+ ); + } + + return ( + + + + + + + + + + + {items.map((nzb) => ( + + + + + + + + ))} + +
+ NameSizeETAProgress
+ {nzb.state === 'paused' ? ( + + ) : ( + + )} + + + + {nzb.name} + + + + {humanFileSize(nzb.size)} + + {nzb.eta <= 0 ? ( + + Paused + + ) : ( + {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} + )} + + {nzb.progress.toFixed(1)}% + 0 ? theme.primaryColor : 'lightgrey'} + value={nzb.progress} + size="lg" + style={{ width: '100%' }} + /> +
+ ); +}; diff --git a/src/modules/usenet/types.ts b/src/modules/usenet/types.ts index 88831e8ce..a4dd8c5a0 100644 --- a/src/modules/usenet/types.ts +++ b/src/modules/usenet/types.ts @@ -1,6 +1,9 @@ export interface UsenetQueueItem { name: string; progress: number; + /** + * Size in bytes + */ size: number; id: string; state: 'paused' | 'downloading' | 'queued'; @@ -8,6 +11,10 @@ export interface UsenetQueueItem { } export interface UsenetHistoryItem { name: string; + /** + * Size in bytes + */ size: number; id: string; + time: number; } diff --git a/src/pages/api/modules/usenet/history.ts b/src/pages/api/modules/usenet/history.ts index 23b50f476..4f418be68 100644 --- a/src/pages/api/modules/usenet/history.ts +++ b/src/pages/api/modules/usenet/history.ts @@ -28,7 +28,8 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { history.push({ id: slot.nzo_id, name: slot.name, - size: slot.bytes * 1000, + size: slot.bytes, + time: slot.download_time, }); }); }) diff --git a/src/pages/api/modules/usenet/index.ts b/src/pages/api/modules/usenet/index.ts index 9c3565098..cedb154e8 100644 --- a/src/pages/api/modules/usenet/index.ts +++ b/src/pages/api/modules/usenet/index.ts @@ -36,7 +36,7 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { eta: eta.asSeconds(), name: slot.filename, progress: parseFloat(slot.percentage), - size: parseFloat(slot.mb), + size: parseFloat(slot.mb) * 1000 * 1000, state: slot.status.toLowerCase() as any, }); }); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 604ff91a8..70ae411da 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -3,6 +3,8 @@ import { GetServerSidePropsContext } from 'next'; import { useEffect } from 'react'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; + import AppShelf from '../components/AppShelf/AppShelf'; import LoadConfigComponent from '../components/Config/LoadConfig'; import { Config } from '../tools/types'; @@ -62,6 +64,8 @@ export async function getServerSideProps({ return getConfig(configName as string, translations); } +const queryClient = new QueryClient(); + export default function HomePage(props: any) { const { config: initialConfig }: { config: Config } = props; const { setConfig } = useConfig(); @@ -73,9 +77,11 @@ export default function HomePage(props: any) { setConfig(migratedConfig); }, [initialConfig]); return ( - - - - + + + + + + ); } diff --git a/src/tools/hooks/api.ts b/src/tools/hooks/api.ts new file mode 100644 index 000000000..305888ce0 --- /dev/null +++ b/src/tools/hooks/api.ts @@ -0,0 +1,21 @@ +import { useQuery } from '@tanstack/react-query'; +import axios from 'axios'; +import { UsenetHistoryItem, UsenetQueueItem } from '../../modules'; + +export const useGetUsenetDownloads = () => + useQuery( + ['usenetDownloads'], + async () => (await axios.get('/api/modules/usenet')).data, + { + refetchInterval: 1000, + } + ); + +export const useGetUsenetHistory = () => + useQuery( + ['usenetHistory'], + async () => (await axios.get('/api/modules/usenet/history')).data, + { + refetchInterval: 1000, + } + ); diff --git a/yarn.lock b/yarn.lock index 905d3b641..95c494a5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1918,6 +1918,33 @@ __metadata: languageName: node linkType: hard +"@tanstack/query-core@npm:^4.0.0-beta.1": + version: 4.2.1 + resolution: "@tanstack/query-core@npm:4.2.1" + checksum: f71854969e02de6c2cfbe25e8b11e275b61e1297a902e0d5c4beac580a87db99555c1c21d536d838ce5e0664bc49da7b60a3c6b8de334c7004c5005fe2a48030 + languageName: node + linkType: hard + +"@tanstack/react-query@npm:^4.2.1": + version: 4.2.1 + resolution: "@tanstack/react-query@npm:4.2.1" + dependencies: + "@tanstack/query-core": ^4.0.0-beta.1 + "@types/use-sync-external-store": ^0.0.3 + use-sync-external-store: ^1.2.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: bbf3a808645c26c649971dc182bb9a7ed7a1d89f6456b60685c6081b8be6ae84ae83b39c7eacb96c4f3b6677ca001d8114037329951987b7a8d65de53b28c862 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -2163,6 +2190,13 @@ __metadata: languageName: node linkType: hard +"@types/use-sync-external-store@npm:^0.0.3": + version: 0.0.3 + resolution: "@types/use-sync-external-store@npm:0.0.3" + checksum: 161ddb8eec5dbe7279ac971531217e9af6b99f7783213566d2b502e2e2378ea19cf5e5ea4595039d730aa79d3d35c6567d48599f69773a02ffcff1776ec2a44e + languageName: node + linkType: hard + "@types/uuid@npm:^8.3.4": version: 8.3.4 resolution: "@types/uuid@npm:8.3.4" @@ -4775,6 +4809,7 @@ __metadata: "@nivo/core": ^0.79.0 "@nivo/line": ^0.79.1 "@tabler/icons": ^1.78.0 + "@tanstack/react-query": ^4.2.1 "@types/dockerode": ^3.3.9 "@types/node": 17.0.1 "@types/react": 17.0.1 @@ -8164,6 +8199,15 @@ __metadata: languageName: node linkType: hard +"use-sync-external-store@npm:^1.2.0": + version: 1.2.0 + resolution: "use-sync-external-store@npm:1.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" From d9d3d3de45193611df29cd60ce2971c9d1aeaafa Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Fri, 26 Aug 2022 10:46:34 +0200 Subject: [PATCH 04/32] History done --- src/modules/torrents/TorrentsModule.tsx | 3 +- src/modules/usenet/UsenetHistoryList.tsx | 129 ++++++++++++++--------- src/modules/usenet/UsenetModule.tsx | 46 ++++---- src/modules/usenet/UsenetQueueList.tsx | 44 ++++++-- src/pages/api/modules/usenet/history.ts | 52 +++++---- src/pages/api/modules/usenet/index.ts | 72 ++++++++----- src/tools/hooks/api.ts | 30 ++++-- src/tools/hooks/useGetServiceByType.ts | 14 +++ 8 files changed, 256 insertions(+), 134 deletions(-) create mode 100644 src/tools/hooks/useGetServiceByType.ts diff --git a/src/modules/torrents/TorrentsModule.tsx b/src/modules/torrents/TorrentsModule.tsx index 04a9b6b3b..c7d3d5beb 100644 --- a/src/modules/torrents/TorrentsModule.tsx +++ b/src/modules/torrents/TorrentsModule.tsx @@ -42,8 +42,7 @@ export default function TorrentsComponent() { (service) => service.type === 'qBittorrent' || service.type === 'Transmission' || - service.type === 'Deluge' || - service.type === 'Sabnzbd' + service.type === 'Deluge' ) ?? []; const hideComplete: boolean = diff --git a/src/modules/usenet/UsenetHistoryList.tsx b/src/modules/usenet/UsenetHistoryList.tsx index c2b8e8da5..7b1b7792b 100644 --- a/src/modules/usenet/UsenetHistoryList.tsx +++ b/src/modules/usenet/UsenetHistoryList.tsx @@ -1,20 +1,39 @@ -import { Center, Table, Text, Title, Tooltip, useMantineTheme } from '@mantine/core'; +import { Center, Pagination, Skeleton, Table, Text, Title, Tooltip } from '@mantine/core'; import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; -import { FunctionComponent } from 'react'; +import { FunctionComponent, useState } from 'react'; +import { useGetUsenetHistory } from '../../tools/hooks/api'; import { humanFileSize } from '../../tools/humanFileSize'; -import { UsenetHistoryItem } from './types'; dayjs.extend(duration); interface UsenetHistoryListProps { - items: UsenetHistoryItem[]; + serviceId: string; } -export const UsenetHistoryList: FunctionComponent = ({ items }) => { - const theme = useMantineTheme(); +const PAGE_SIZE = 10; - if (items.length <= 0) { +export const UsenetHistoryList: FunctionComponent = ({ serviceId }) => { + const [page, setPage] = useState(1); + + const { data, isLoading } = useGetUsenetHistory({ + limit: PAGE_SIZE, + offset: (page - 1) * PAGE_SIZE, + serviceId, + }); + const totalPages = Math.ceil((data?.total || 1) / PAGE_SIZE); + + if (isLoading) { + return ( + <> + + + + + ); + } + + if (!data || data.items.length <= 0) { return (
Queue is empty @@ -23,49 +42,59 @@ export const UsenetHistoryList: FunctionComponent = ({ i } return ( - - - - - - - - - - - - - - - {items.map((history) => ( - - - - +
+
NameSizeDownload Duration
- - - {history.name} - - - - {humanFileSize(history.size)} - - - {dayjs - .duration(history.time, 's') - .format(history.time < 60 ? 's [seconds]' : 'm [minutes] s [seconds] ')} - -
+ + + + + + + + + + - ))} - -
NameSizeDownload Duration
+ + + {data.items.map((history) => ( + + + + + {history.name} + + + + + {humanFileSize(history.size)} + + + + {dayjs + .duration(history.time, 's') + .format(history.time < 60 ? 's [seconds]' : 'm [minutes] s [seconds] ')} + + + + ))} + + + + ); }; diff --git a/src/modules/usenet/UsenetModule.tsx b/src/modules/usenet/UsenetModule.tsx index 8fae8b3e3..da9837767 100644 --- a/src/modules/usenet/UsenetModule.tsx +++ b/src/modules/usenet/UsenetModule.tsx @@ -1,38 +1,42 @@ -import { Skeleton, Tabs, useMantineTheme } from '@mantine/core'; +import { Group, Select, Tabs } from '@mantine/core'; import { IconDownload } from '@tabler/icons'; -import { FunctionComponent } from 'react'; +import { FunctionComponent, useState } from 'react'; import { IModule } from '../ModuleTypes'; -import { useGetUsenetDownloads, useGetUsenetHistory } from '../../tools/hooks/api'; import { UsenetQueueList } from './UsenetQueueList'; import { UsenetHistoryList } from './UsenetHistoryList'; +import { useGetServiceByType } from '../../tools/hooks/useGetServiceByType'; export const UsenetComponent: FunctionComponent = () => { - const theme = useMantineTheme(); - const { isLoading, data: nzbs = [] } = useGetUsenetDownloads(); - const { data: history = [] } = useGetUsenetHistory(); + const downloadServices = useGetServiceByType('Sabnzbd'); - if (isLoading) { - return ( - <> - - - - - ); + const [selectedServiceId, setSelectedService] = useState(downloadServices[0]?.id); + + if (!selectedServiceId) { + return null; } return ( - - - Queue - History - + + + + Queue + History + + {downloadServices.length > 1 && ( + = ({ serviceId }) => { const theme = useMantineTheme(); + const { t } = useTranslation('modules/usenet'); + const [page, setPage] = useState(1); const { data, isLoading, isError, error } = useGetUsenetDownloads({ limit: PAGE_SIZE, offset: (page - 1) * PAGE_SIZE, serviceId, }); + const totalPages = Math.ceil((data?.total || 1) / PAGE_SIZE); if (isLoading) { return ( @@ -50,7 +56,7 @@ export const UsenetQueueList: FunctionComponent = ({ servi return ( } my="lg" title="Error!" color="red" radius="md"> - Some error has occured while fetching data: + {t('queue.error')} {(error as AxiosError)?.response?.data as string} @@ -62,71 +68,88 @@ export const UsenetQueueList: FunctionComponent = ({ servi if (!data || data.items.length <= 0) { return (
- Queue is empty + {t('queue.empty')}
); } return ( - - - - - - - - - - - {data.items.map((nzb) => ( - - - - - - + <> +
- NameSizeETAProgress
- {nzb.state === 'paused' ? ( - - ) : ( - - )} - - - - {nzb.name} - - - - {humanFileSize(nzb.size)} - - {nzb.eta <= 0 ? ( - - Paused - - ) : ( - {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} - )} - - {nzb.progress.toFixed(1)}% - 0 ? theme.primaryColor : 'lightgrey'} - value={nzb.progress} - size="lg" - style={{ width: '100%' }} - /> -
+ + + + + + - ))} - -
+ {t('queue.header.name')}{t('queue.header.size')}{t('queue.header.eta')}{t('queue.header.progress')}
+ + + {data.items.map((nzb) => ( + + + {nzb.state === 'paused' ? ( + + ) : ( + + )} + + + + + {nzb.name} + + + + + {humanFileSize(nzb.size)} + + + {nzb.eta <= 0 ? ( + + {t('queue.paused')} + + ) : ( + {dayjs.duration(nzb.eta, 's').format('H:mm:ss')} + )} + + + {nzb.progress.toFixed(1)}% + 0 ? theme.primaryColor : 'lightgrey'} + value={nzb.progress} + size="lg" + style={{ width: '100%' }} + /> + + + ))} + + + {totalPages > 1 && ( + + )} + ); }; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 78f046777..d57b7d782 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -8,9 +8,11 @@ import { NotificationsProvider } from '@mantine/notifications'; import { useHotkeys } from '@mantine/hooks'; import { ModalsProvider } from '@mantine/modals'; import { appWithTranslation } from 'next-i18next'; +import { QueryClientProvider } from '@tanstack/react-query'; import { ConfigProvider } from '../tools/state'; import { theme } from '../tools/theme'; import { ColorTheme } from '../tools/color'; +import { queryClient } from '../tools/queryClient'; function App(this: any, props: AppProps & { colorScheme: ColorScheme }) { const { Component, pageProps } = props; @@ -40,43 +42,44 @@ function App(this: any, props: AppProps & { colorScheme: ColorScheme }) { - - - - + + + - - - - - - - - - - + primaryColor, + primaryShade, + colorScheme, + }} + withGlobalStyles + withNormalizeCSS + > + + + + + + + + + + + ); } diff --git a/src/pages/api/modules/usenet/index.ts b/src/pages/api/modules/usenet/index.ts index e7d5a69cf..60217decb 100644 --- a/src/pages/api/modules/usenet/index.ts +++ b/src/pages/api/modules/usenet/index.ts @@ -3,29 +3,28 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { NextApiRequest, NextApiResponse } from 'next'; import { Client } from 'sabnzbd-api'; -import { UsenetQueueItem } from '../../../../modules'; import { getConfig } from '../../../../tools/getConfig'; import { getServiceById } from '../../../../tools/hooks/useGetServiceByType'; import { Config } from '../../../../tools/types'; dayjs.extend(duration); -export interface UsenetQueueRequestParams { +export interface UsenetInfoRequestParams { serviceId: string; - offset: number; - limit: number; } -export interface UsenetQueueResponse { - items: UsenetQueueItem[]; - total: number; +export interface UsenetInfoResponse { + paused: boolean; + sizeLeft: number; + speed: number; + eta: number; } async function Get(req: NextApiRequest, res: NextApiResponse) { try { const configName = getCookie('config-name', { req }); const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; - const { limit, offset, serviceId } = req.query as any as UsenetQueueRequestParams; + const { serviceId } = req.query as any as UsenetInfoRequestParams; const service = getServiceById(config, serviceId); @@ -36,29 +35,21 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { if (!service.apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } - const queue = await new Client(service.url, service.apiKey).queue(offset, limit); - const items: UsenetQueueItem[] = queue.slots.map((slot) => { - const [hours, minutes, seconds] = slot.timeleft.split(':'); - const eta = dayjs.duration({ - hour: parseInt(hours, 10), - minutes: parseInt(minutes, 10), - seconds: parseInt(seconds, 10), - } as any); + const queue = await new Client(service.url, service.apiKey).queue(0, -1); - return { - id: slot.nzo_id, - eta: eta.asSeconds(), - name: slot.filename, - progress: parseFloat(slot.percentage), - size: parseFloat(slot.mb) * 1000 * 1000, - state: slot.status.toLowerCase() as any, - }; - }); + const [hours, minutes, seconds] = queue.timeleft.split(':'); + const eta = dayjs.duration({ + hour: parseInt(hours, 10), + minutes: parseInt(minutes, 10), + seconds: parseInt(seconds, 10), + } as any); - const response: UsenetQueueResponse = { - items, - total: queue.noofslots_total, + const response: UsenetInfoResponse = { + paused: queue.paused, + sizeLeft: parseFloat(queue.mbleft) * 1024 * 1024, + speed: parseFloat(queue.kbpersec) * 1000, + eta: eta.asSeconds(), }; return res.status(200).json(response); diff --git a/src/pages/api/modules/usenet/pause.ts b/src/pages/api/modules/usenet/pause.ts new file mode 100644 index 000000000..816158562 --- /dev/null +++ b/src/pages/api/modules/usenet/pause.ts @@ -0,0 +1,49 @@ +import { getCookie } from 'cookies-next'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { NextApiRequest, NextApiResponse } from 'next'; +import { Client } from 'sabnzbd-api'; +import { getConfig } from '../../../../tools/getConfig'; +import { getServiceById } from '../../../../tools/hooks/useGetServiceByType'; +import { Config } from '../../../../tools/types'; + +dayjs.extend(duration); + +export interface UsenetPauseRequestParams { + serviceId: string; +} + +async function Post(req: NextApiRequest, res: NextApiResponse) { + try { + const configName = getCookie('config-name', { req }); + const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; + const { serviceId } = req.query as any as UsenetPauseRequestParams; + + const service = getServiceById(config, serviceId); + + if (!service) { + throw new Error(`Service with ID "${req.query.serviceId}" could not be found.`); + } + + if (!service.apiKey) { + throw new Error(`API Key for service "${service.name}" is missing`); + } + + const result = await new Client(service.url, service.apiKey).queuePause(); + + return res.status(200).json(result); + } catch (err) { + return res.status(500).send((err as any).message); + } +} + +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Filter out if the reuqest is a POST or a GET + if (req.method === 'POST') { + return Post(req, res); + } + return res.status(405).json({ + statusCode: 405, + message: 'Method not allowed', + }); +}; diff --git a/src/pages/api/modules/usenet/queue.ts b/src/pages/api/modules/usenet/queue.ts new file mode 100644 index 000000000..8eab23fff --- /dev/null +++ b/src/pages/api/modules/usenet/queue.ts @@ -0,0 +1,79 @@ +import { getCookie } from 'cookies-next'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { NextApiRequest, NextApiResponse } from 'next'; +import { Client } from 'sabnzbd-api'; +import { UsenetQueueItem } from '../../../../modules'; +import { getConfig } from '../../../../tools/getConfig'; +import { getServiceById } from '../../../../tools/hooks/useGetServiceByType'; +import { Config } from '../../../../tools/types'; + +dayjs.extend(duration); + +export interface UsenetQueueRequestParams { + serviceId: string; + offset: number; + limit: number; +} + +export interface UsenetQueueResponse { + items: UsenetQueueItem[]; + total: number; +} + +async function Get(req: NextApiRequest, res: NextApiResponse) { + try { + const configName = getCookie('config-name', { req }); + const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; + const { limit, offset, serviceId } = req.query as any as UsenetQueueRequestParams; + + const service = getServiceById(config, serviceId); + + if (!service) { + throw new Error(`Service with ID "${req.query.serviceId}" could not be found.`); + } + + if (!service.apiKey) { + throw new Error(`API Key for service "${service.name}" is missing`); + } + const queue = await new Client(service.url, service.apiKey).queue(offset, limit); + + const items: UsenetQueueItem[] = queue.slots.map((slot) => { + const [hours, minutes, seconds] = slot.timeleft.split(':'); + const eta = dayjs.duration({ + hour: parseInt(hours, 10), + minutes: parseInt(minutes, 10), + seconds: parseInt(seconds, 10), + } as any); + + return { + id: slot.nzo_id, + eta: eta.asSeconds(), + name: slot.filename, + progress: parseFloat(slot.percentage), + size: parseFloat(slot.mb) * 1000 * 1000, + state: slot.status.toLowerCase() as any, + }; + }); + + const response: UsenetQueueResponse = { + items, + total: queue.noofslots, + }; + + return res.status(200).json(response); + } catch (err) { + return res.status(500).send((err as any).message); + } +} + +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Filter out if the reuqest is a POST or a GET + if (req.method === 'GET') { + return Get(req, res); + } + return res.status(405).json({ + statusCode: 405, + message: 'Method not allowed', + }); +}; diff --git a/src/pages/api/modules/usenet/resume.ts b/src/pages/api/modules/usenet/resume.ts new file mode 100644 index 000000000..adf8a9372 --- /dev/null +++ b/src/pages/api/modules/usenet/resume.ts @@ -0,0 +1,50 @@ +import { getCookie } from 'cookies-next'; +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { NextApiRequest, NextApiResponse } from 'next'; +import { Client } from 'sabnzbd-api'; +import { getConfig } from '../../../../tools/getConfig'; +import { getServiceById } from '../../../../tools/hooks/useGetServiceByType'; +import { Config } from '../../../../tools/types'; + +dayjs.extend(duration); + +export interface UsenetResumeRequestParams { + serviceId: string; + nzbId?: string; +} + +async function Post(req: NextApiRequest, res: NextApiResponse) { + try { + const configName = getCookie('config-name', { req }); + const { config }: { config: Config } = getConfig(configName?.toString() ?? 'default').props; + const { serviceId } = req.query as any as UsenetResumeRequestParams; + + const service = getServiceById(config, serviceId); + + if (!service) { + throw new Error(`Service with ID "${req.query.serviceId}" could not be found.`); + } + + if (!service.apiKey) { + throw new Error(`API Key for service "${service.name}" is missing`); + } + + const result = await new Client(service.url, service.apiKey).queueResume(); + + return res.status(200).json(result); + } catch (err) { + return res.status(500).send((err as any).message); + } +} + +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Filter out if the reuqest is a POST or a GET + if (req.method === 'POST') { + return Post(req, res); + } + return res.status(405).json({ + statusCode: 405, + message: 'Method not allowed', + }); +}; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 70ae411da..724e8e882 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -3,8 +3,6 @@ import { GetServerSidePropsContext } from 'next'; import { useEffect } from 'react'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; - import AppShelf from '../components/AppShelf/AppShelf'; import LoadConfigComponent from '../components/Config/LoadConfig'; import { Config } from '../tools/types'; @@ -52,6 +50,7 @@ export async function getServerSideProps({ 'modules/date', 'modules/calendar', 'modules/dlspeed', + 'modules/usenet', 'modules/search', 'modules/torrents-status', 'modules/weather', @@ -64,8 +63,6 @@ export async function getServerSideProps({ return getConfig(configName as string, translations); } -const queryClient = new QueryClient(); - export default function HomePage(props: any) { const { config: initialConfig }: { config: Config } = props; const { setConfig } = useConfig(); @@ -77,11 +74,9 @@ export default function HomePage(props: any) { setConfig(migratedConfig); }, [initialConfig]); return ( - - - - - - + + + + ); } diff --git a/src/tools/hooks/api.ts b/src/tools/hooks/api.ts index 9b0f1b8d6..22cb6987b 100644 --- a/src/tools/hooks/api.ts +++ b/src/tools/hooks/api.ts @@ -1,17 +1,41 @@ -import { useQuery } from '@tanstack/react-query'; +import { useMutation, useQuery } from '@tanstack/react-query'; import axios from 'axios'; -import { UsenetQueueRequestParams, UsenetQueueResponse } from '../../pages/api/modules/usenet'; +import { Results } from 'sabnzbd-api'; +import { + UsenetQueueRequestParams, + UsenetQueueResponse, +} from '../../pages/api/modules/usenet/queue'; import { UsenetHistoryRequestParams, UsenetHistoryResponse, } from '../../pages/api/modules/usenet/history'; +import { UsenetInfoRequestParams, UsenetInfoResponse } from '../../pages/api/modules/usenet'; +import { UsenetPauseRequestParams } from '../../pages/api/modules/usenet/pause'; +import { queryClient } from '../queryClient'; +import { UsenetResumeRequestParams } from '../../pages/api/modules/usenet/resume'; + +export const useGetUsenetInfo = (params: UsenetInfoRequestParams) => + useQuery( + ['usenetInfo', params.serviceId], + async () => + ( + await axios.get('/api/modules/usenet', { + params, + }) + ).data, + { + refetchInterval: 1000, + keepPreviousData: true, + retry: 2, + } + ); export const useGetUsenetDownloads = (params: UsenetQueueRequestParams) => useQuery( ['usenetDownloads', ...Object.values(params)], async () => ( - await axios.get('/api/modules/usenet', { + await axios.get('/api/modules/usenet/queue', { params, }) ).data, @@ -37,3 +61,91 @@ export const useGetUsenetHistory = (params: UsenetHistoryRequestParams) => retry: 2, } ); + +export const usePauseUsenetQueue = (params: UsenetPauseRequestParams) => + useMutation( + ['usenetPause', ...Object.values(params)], + async () => + ( + await axios.post( + '/api/modules/usenet/pause', + {}, + { + params, + } + ) + ).data, + { + async onMutate() { + await queryClient.cancelQueries(['usenetInfo', params.serviceId]); + const previousInfo = queryClient.getQueryData([ + 'usenetInfo', + params.serviceId, + ]); + + if (previousInfo) { + queryClient.setQueryData(['usenetInfo', params.serviceId], { + ...previousInfo, + paused: true, + }); + } + + return { previousInfo }; + }, + onError(err, _, context) { + if (context?.previousInfo) { + queryClient.setQueryData( + ['usenetInfo', params.serviceId], + context.previousInfo + ); + } + }, + onSettled() { + queryClient.invalidateQueries(['usenetInfo', params.serviceId]); + }, + } + ); + +export const useResumeUsenetQueue = (params: UsenetResumeRequestParams) => + useMutation( + ['usenetResume', ...Object.values(params)], + async () => + ( + await axios.post( + '/api/modules/usenet/resume', + {}, + { + params, + } + ) + ).data, + { + async onMutate() { + await queryClient.cancelQueries(['usenetInfo', params.serviceId]); + const previousInfo = queryClient.getQueryData([ + 'usenetInfo', + params.serviceId, + ]); + + if (previousInfo) { + queryClient.setQueryData(['usenetInfo', params.serviceId], { + ...previousInfo, + paused: false, + }); + } + + return { previousInfo }; + }, + onError(err, _, context) { + if (context?.previousInfo) { + queryClient.setQueryData( + ['usenetInfo', params.serviceId], + context.previousInfo + ); + } + }, + onSettled() { + queryClient.invalidateQueries(['usenetInfo', params.serviceId]); + }, + } + ); diff --git a/src/tools/queryClient.ts b/src/tools/queryClient.ts new file mode 100644 index 000000000..6d46de591 --- /dev/null +++ b/src/tools/queryClient.ts @@ -0,0 +1,3 @@ +import { QueryClient } from '@tanstack/react-query'; + +export const queryClient = new QueryClient(); From bf93fc87ee14cf519e79fa9376da893fc31c03d3 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Fri, 26 Aug 2022 16:13:54 +0200 Subject: [PATCH 09/32] revert default.json --- data/configs/default.json | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/data/configs/default.json b/data/configs/default.json index 415c095ab..066e4ac36 100644 --- a/data/configs/default.json +++ b/data/configs/default.json @@ -7,42 +7,12 @@ "type": "Other", "icon": "https://c.tenor.com/o656qFKDzeUAAAAC/rick-astley-never-gonna-give-you-up.gif", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" - }, - { - "id": "4cb1c2af-9f23-4f52-86e1-0eac25673b56", - "type": "Sabnzbd", - "name": "Sabnzbd", - "icon": "/favicon.png", - "url": "https://sabnzbd.jannesv.be", - "apiKey": "2982e4afbc6d42d6bb5863751a354d20", - "openedUrl": "https://sabnzbd.jannesv.be" } ], - "settings": { - "searchUrl": "https://google.com/search?q=", - "primaryColor": "grape" - }, + "settings": {}, "modules": { "Search Bar": { "enabled": true - }, - "Download Speed": { - "enabled": false - }, - "Torrent": { - "enabled": false - }, - "Dash.": { - "enabled": true - }, - "Usenet": { - "enabled": true - }, - "usenet": { - "enabled": true - }, - "docker": { - "enabled": true } } -} \ No newline at end of file +} From 281f7bacb0def28c378c714dec04fbb7ea1257c5 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Fri, 26 Aug 2022 16:43:46 +0200 Subject: [PATCH 10/32] Fix minor issues --- data/configs/default.json | 4 +++- public/locales/en/modules/usenet.json | 8 ++++++++ src/modules/usenet/UsenetModule.tsx | 25 +++++++++++++++++++++++-- src/modules/usenet/UsenetQueueList.tsx | 18 +++++++++++------- src/tools/hooks/api.ts | 9 ++++++--- 5 files changed, 51 insertions(+), 13 deletions(-) diff --git a/data/configs/default.json b/data/configs/default.json index 066e4ac36..07dfe37b0 100644 --- a/data/configs/default.json +++ b/data/configs/default.json @@ -9,7 +9,9 @@ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } ], - "settings": {}, + "settings": { + "searchUrl": "https://google.com/search?q=" + }, "modules": { "Search Bar": { "enabled": true diff --git a/public/locales/en/modules/usenet.json b/public/locales/en/modules/usenet.json index 59f298103..30231fb80 100644 --- a/public/locales/en/modules/usenet.json +++ b/public/locales/en/modules/usenet.json @@ -3,6 +3,14 @@ "name": "Usenet", "description": "Show the queue and history of supported services" }, + "card": { + "errors": { + "noDownloadClients": { + "title": "No supported download clients found!", + "text": "Add a download service to view your current downloads" + } + } + }, "tabs": { "queue": "Queue", "history": "History" diff --git a/src/modules/usenet/UsenetModule.tsx b/src/modules/usenet/UsenetModule.tsx index 155734d59..f03084e69 100644 --- a/src/modules/usenet/UsenetModule.tsx +++ b/src/modules/usenet/UsenetModule.tsx @@ -1,6 +1,6 @@ -import { Badge, Button, Group, Select, Tabs } from '@mantine/core'; +import { Badge, Button, Group, Select, Stack, Tabs, Text, Title } from '@mantine/core'; import { IconDownload, IconPlayerPause, IconPlayerPlay } from '@tabler/icons'; -import { FunctionComponent, useState } from 'react'; +import { FunctionComponent, useEffect, useState } from 'react'; import { useTranslation } from 'next-i18next'; import dayjs from 'dayjs'; @@ -11,18 +11,39 @@ import { UsenetHistoryList } from './UsenetHistoryList'; import { useGetServiceByType } from '../../tools/hooks/useGetServiceByType'; import { useGetUsenetInfo, usePauseUsenetQueue, useResumeUsenetQueue } from '../../tools/hooks/api'; import { humanFileSize } from '../../tools/humanFileSize'; +import { AddItemShelfButton } from '../../components/AppShelf/AddAppShelfItem'; dayjs.extend(duration); export const UsenetComponent: FunctionComponent = () => { const downloadServices = useGetServiceByType('Sabnzbd'); + const { t } = useTranslation('modules/usenet'); const [selectedServiceId, setSelectedService] = useState(downloadServices[0]?.id); const { data } = useGetUsenetInfo({ serviceId: selectedServiceId! }); + + useEffect(() => { + if (!selectedServiceId && downloadServices.length) { + setSelectedService(downloadServices[0].id); + } + }, [downloadServices, selectedServiceId]); + const { mutate: pause } = usePauseUsenetQueue({ serviceId: selectedServiceId! }); const { mutate: resume } = useResumeUsenetQueue({ serviceId: selectedServiceId! }); + if (downloadServices.length === 0) { + return ( + + {t('card.errors.noDownloadClients.title')} + + {t('card.errors.noDownloadClients.text')} + + + + ); + } + if (!selectedServiceId) { return null; } diff --git a/src/modules/usenet/UsenetQueueList.tsx b/src/modules/usenet/UsenetQueueList.tsx index 7198b9511..bc6d5ea0c 100644 --- a/src/modules/usenet/UsenetQueueList.tsx +++ b/src/modules/usenet/UsenetQueueList.tsx @@ -1,6 +1,6 @@ import { + ActionIcon, Alert, - Button, Center, Code, Group, @@ -90,13 +90,17 @@ export const UsenetQueueList: FunctionComponent = ({ servi {nzb.state === 'paused' ? ( - + + + + + ) : ( - + + + + + )} diff --git a/src/tools/hooks/api.ts b/src/tools/hooks/api.ts index 22cb6987b..ee4b5cf1d 100644 --- a/src/tools/hooks/api.ts +++ b/src/tools/hooks/api.ts @@ -14,6 +14,8 @@ import { UsenetPauseRequestParams } from '../../pages/api/modules/usenet/pause'; import { queryClient } from '../queryClient'; import { UsenetResumeRequestParams } from '../../pages/api/modules/usenet/resume'; +const POLLING_INTERVAL = 2000; + export const useGetUsenetInfo = (params: UsenetInfoRequestParams) => useQuery( ['usenetInfo', params.serviceId], @@ -24,9 +26,10 @@ export const useGetUsenetInfo = (params: UsenetInfoRequestParams) => }) ).data, { - refetchInterval: 1000, + refetchInterval: POLLING_INTERVAL, keepPreviousData: true, retry: 2, + enabled: !!params.serviceId, } ); @@ -40,7 +43,7 @@ export const useGetUsenetDownloads = (params: UsenetQueueRequestParams) => }) ).data, { - refetchInterval: 1000, + refetchInterval: POLLING_INTERVAL, keepPreviousData: true, retry: 2, } @@ -56,7 +59,7 @@ export const useGetUsenetHistory = (params: UsenetHistoryRequestParams) => }) ).data, { - refetchInterval: 1000, + refetchInterval: POLLING_INTERVAL, keepPreviousData: true, retry: 2, } From 4db9dba2f469944b031e3c1bc50a70805c7d9d02 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Fri, 26 Aug 2022 16:47:26 +0200 Subject: [PATCH 11/32] lint --- @types/react-i18next.d.ts | 68 -------------------- src/components/AppShelf/SmallServiceItem.tsx | 2 +- 2 files changed, 1 insertion(+), 69 deletions(-) delete mode 100644 @types/react-i18next.d.ts diff --git a/@types/react-i18next.d.ts b/@types/react-i18next.d.ts deleted file mode 100644 index 30da9af59..000000000 --- a/@types/react-i18next.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -import 'react-i18next'; - -import common from '../public/locales/en/common.json'; -import appShelf from '../public/locales/en/layout/app-shelf.json'; -import addServiceAppShelf from '../public/locales/en/layout/add-service-app-shelf.json'; -import appShelfMenu from '../public/locales/en/layout/app-shelf-menu.json'; -import commonSettings from '../public/locales/en/settings/common.json'; -import themeSelector from '../public/locales/en/settings/general/theme-selector.json'; -import configChanger from '../public/locales/en/settings/general/config-changer.json'; -import i18n from '../public/locales/en/settings/general/internationalization.json'; -import moduleEnabler from '../public/locales/en/settings/general/module-enabler.json'; -import searchEngine from '../public/locales/en/settings/general/search-engine.json'; -import widgetPositions from '../public/locales/en/settings/general/widget-positions.json'; -import colorSelector from '../public/locales/en/settings/customization/color-selector.json'; -import pageAppearance from '../public/locales/en/settings/customization/page-appearance.json'; -import shadeSelector from '../public/locales/en/settings/customization/shade-selector.json'; -import appWidth from '../public/locales/en/settings/customization/app-width.json'; -import opacitySelector from '../public/locales/en/settings/customization/opacity-selector.json'; -import commonModule from '../public/locales/en/modules/common.json'; -import dateModule from '../public/locales/en/modules/date.json'; -import calendarModule from '../public/locales/en/modules/calendar.json'; -import dlSpeedModule from '../public/locales/en/modules/dlspeed.json'; -import usenetModule from '../public/locales/en/modules/usenet.json'; -import searchModule from '../public/locales/en/modules/search.json'; -import torrentsModule from '../public/locales/en/modules/torrents-status.json'; -import weatherModule from '../public/locales/en/modules/weather.json'; -import pingModule from '../public/locales/en/modules/ping.json'; -import dockerModule from '../public/locales/en/modules/docker.json'; -import dashDotModule from '../public/locales/en/modules/dashdot.json'; -import overseerrModule from '../public/locales/en/modules/overseerr.json'; -import mediaCardsModule from '../public/locales/en/modules/common-media-cards.json'; - -declare module 'react-i18next' { - interface CustomTypeOptions { - defaultNS: 'common'; - resources: { - common: typeof common; - 'layout/app-shelf': typeof appShelf; - 'layout/add-service-app-shelf': typeof addServiceAppShelf; - 'layout/app-shelf-menu': typeof appShelfMenu; - 'settings/common': typeof commonSettings; - 'settings/general/theme-selector': typeof themeSelector; - 'settings/general/config-changer': typeof configChanger; - 'settings/general/internationalization': typeof i18n; - 'settings/general/module-enabler': typeof moduleEnabler; - 'settings/general/search-engine': typeof searchEngine; - 'settings/general/widget-positions': typeof widgetPositions; - 'settings/customization/color-selector': typeof colorSelector; - 'settings/customization/page-appearance': typeof pageAppearance; - 'settings/customization/shade-selector': typeof shadeSelector; - 'settings/customization/app-width': typeof appWidth; - 'settings/customization/opacity-selector': typeof opacitySelector; - 'modules/common': typeof commonModule; - 'modules/date': typeof dateModule; - 'modules/calendar': typeof calendarModule; - 'modules/dlspeed': typeof dlSpeedModule; - 'modules/usenet': typeof usenetModule; - 'modules/search': typeof searchModule; - 'modules/torrents-status': typeof torrentsModule; - 'modules/weather': typeof weatherModule; - 'modules/ping': typeof pingModule; - 'modules/docker': typeof dockerModule; - 'modules/dashdot': typeof dashDotModule; - 'modules/overseerr': typeof overseerrModule; - 'modules/common-media-cards': typeof mediaCardsModule; - }; - } -} diff --git a/src/components/AppShelf/SmallServiceItem.tsx b/src/components/AppShelf/SmallServiceItem.tsx index 46cb29db6..98c8bbf53 100644 --- a/src/components/AppShelf/SmallServiceItem.tsx +++ b/src/components/AppShelf/SmallServiceItem.tsx @@ -1,4 +1,4 @@ -import { Anchor, Avatar, Group, Text } from '@mantine/core'; +import { Avatar, Group, Text } from '@mantine/core'; interface smallServiceItem { label: string; From 12e7eb63575e5faa419415c075ab27ac85c9f346 Mon Sep 17 00:00:00 2001 From: Jannes Vandepitte Date: Fri, 26 Aug 2022 21:38:28 +0200 Subject: [PATCH 12/32] Address PR comments --- public/locales/en/common.json | 9 ++++++-- public/locales/en/modules/usenet.json | 10 +++++++-- src/modules/usenet/UsenetHistoryList.tsx | 27 +++++++++++++----------- src/modules/usenet/UsenetQueueList.tsx | 10 +++++++-- src/tools/parseDuration.ts | 20 ++++++++++++++++++ 5 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 src/tools/parseDuration.ts diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 9a0b9a9d9..64232fcf5 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -2,5 +2,10 @@ "actions": { "save": "Save" }, - "tip": "Tip: " -} \ No newline at end of file + "tip": "Tip: ", + "time": { + "seconds": "seconds", + "minutes": "minutes", + "hours": "hours" + } +} diff --git a/public/locales/en/modules/usenet.json b/public/locales/en/modules/usenet.json index 30231fb80..efdd2adfb 100644 --- a/public/locales/en/modules/usenet.json +++ b/public/locales/en/modules/usenet.json @@ -27,7 +27,10 @@ "progress": "Progress" }, "empty": "Queue is empty.", - "error": "Some error has occured while fetching data:", + "error": { + "title": "Error!", + "message": "Some error has occured while fetching data:" + }, "paused": "Paused" }, "history": { @@ -37,7 +40,10 @@ "duration": "Download Duration" }, "empty": "Queue is empty.", - "error": "Some error has occured while fetching data:", + "error": { + "title": "Error!", + "message": "Some error has occured while fetching data:" + }, "paused": "Paused" } } diff --git a/src/modules/usenet/UsenetHistoryList.tsx b/src/modules/usenet/UsenetHistoryList.tsx index ba5a29601..f886e5ad3 100644 --- a/src/modules/usenet/UsenetHistoryList.tsx +++ b/src/modules/usenet/UsenetHistoryList.tsx @@ -18,6 +18,7 @@ import { useTranslation } from 'next-i18next'; import { FunctionComponent, useState } from 'react'; import { useGetUsenetHistory } from '../../tools/hooks/api'; import { humanFileSize } from '../../tools/humanFileSize'; +import { parseDuration } from '../../tools/parseDuration'; dayjs.extend(duration); @@ -29,7 +30,7 @@ const PAGE_SIZE = 10; export const UsenetHistoryList: FunctionComponent = ({ serviceId }) => { const [page, setPage] = useState(1); - const { t } = useTranslation('modules/usenet'); + const { t } = useTranslation(['modules/usenet', 'common']); const { data, isLoading, isError, error } = useGetUsenetHistory({ limit: PAGE_SIZE, @@ -51,8 +52,14 @@ export const UsenetHistoryList: FunctionComponent = ({ s if (isError) { return ( - } my="lg" title="Error!" color="red" radius="md"> - {t('history.error')} + } + my="lg" + title={t('modules/usenet:history.error.title')} + color="red" + radius="md" + > + {t('modules/usenet:history.error.message')} {(error as AxiosError)?.response?.data as string} @@ -64,7 +71,7 @@ export const UsenetHistoryList: FunctionComponent = ({ s if (!data || data.items.length <= 0) { return (
- {t('history.empty')} + {t('modules/usenet:history.empty')}
); } @@ -79,9 +86,9 @@ export const UsenetHistoryList: FunctionComponent = ({ s - {t('history.header.name')} - {t('history.header.size')} - {t('history.header.duration')} + {t('modules/usenet:history.header.name')} + {t('modules/usenet:history.header.size')} + {t('modules/usenet:history.header.duration')} @@ -105,11 +112,7 @@ export const UsenetHistoryList: FunctionComponent = ({ s {humanFileSize(history.size)} - - {dayjs - .duration(history.time, 's') - .format(history.time < 60 ? 's [seconds]' : 'm [minutes] s [seconds] ')} - + {parseDuration(history.time, t)} ))} diff --git a/src/modules/usenet/UsenetQueueList.tsx b/src/modules/usenet/UsenetQueueList.tsx index bc6d5ea0c..e1e4d59f2 100644 --- a/src/modules/usenet/UsenetQueueList.tsx +++ b/src/modules/usenet/UsenetQueueList.tsx @@ -55,8 +55,14 @@ export const UsenetQueueList: FunctionComponent = ({ servi if (isError) { return ( - } my="lg" title="Error!" color="red" radius="md"> - {t('queue.error')} + } + my="lg" + title={t('queue.error.title')} + color="red" + radius="md" + > + {t('queue.error.message')} {(error as AxiosError)?.response?.data as string} diff --git a/src/tools/parseDuration.ts b/src/tools/parseDuration.ts new file mode 100644 index 000000000..d59de519a --- /dev/null +++ b/src/tools/parseDuration.ts @@ -0,0 +1,20 @@ +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import { TFunction } from 'next-i18next'; + +dayjs.extend(duration); + +export const parseDuration = (time: number, t: TFunction): string => { + const etaDuration = dayjs.duration(time, 's'); + + let eta = etaDuration.format(`s [${t('common:time.seconds')}]`); + + if (etaDuration.asMinutes() > 1) { + eta = etaDuration.format(`m [${t('common:time.minutes')}] `) + eta; + } + if (etaDuration.asHours() > 1) { + eta = etaDuration.format(`H [${t('common:time.hours')}] `) + eta; + } + + return eta; +}; From 720ae86504acf153e19ed7ba92cec03f800bb7f5 Mon Sep 17 00:00:00 2001 From: Bonfire <5704760+Bonfire@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:31:09 -0400 Subject: [PATCH 13/32] =?UTF-8?q?=F0=9F=8C=90=20Fix=20Advanced=20Options?= =?UTF-8?q?=20title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/locales/en/layout/add-service-app-shelf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/en/layout/add-service-app-shelf.json b/public/locales/en/layout/add-service-app-shelf.json index ca88e1f31..d13119302 100644 --- a/public/locales/en/layout/add-service-app-shelf.json +++ b/public/locales/en/layout/add-service-app-shelf.json @@ -95,7 +95,7 @@ } }, "advancedOptions": { - "title": "Advanced options", + "title": "Advanced Options", "form": { "httpStatusCodes": { "label": "HTTP Status Codes", From beae00a170a16bf3d02fe814659b284187bc5f3a Mon Sep 17 00:00:00 2001 From: Bonfire <5704760+Bonfire@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:52:20 -0400 Subject: [PATCH 14/32] =?UTF-8?q?=E2=9C=A8=20add=20ping=20service=20toggle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../en/layout/add-service-app-shelf.json | 3 ++ src/components/AppShelf/AddAppShelfItem.tsx | 49 ++++++++++++------- src/components/AppShelf/AppShelfItem.tsx | 16 +++--- src/tools/types.ts | 1 + 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/public/locales/en/layout/add-service-app-shelf.json b/public/locales/en/layout/add-service-app-shelf.json index d13119302..936fddf18 100644 --- a/public/locales/en/layout/add-service-app-shelf.json +++ b/public/locales/en/layout/add-service-app-shelf.json @@ -97,6 +97,9 @@ "advancedOptions": { "title": "Advanced Options", "form": { + "ping": { + "label": "Ping Service" + }, "httpStatusCodes": { "label": "HTTP Status Codes", "placeholder": "Select valid status codes", diff --git a/src/components/AppShelf/AddAppShelfItem.tsx b/src/components/AppShelf/AddAppShelfItem.tsx index efeba042a..8689cd8d8 100644 --- a/src/components/AppShelf/AddAppShelfItem.tsx +++ b/src/components/AppShelf/AddAppShelfItem.tsx @@ -10,6 +10,7 @@ import { MultiSelect, PasswordInput, Select, + Space, Stack, Switch, Tabs, @@ -18,13 +19,13 @@ import { Tooltip, } from '@mantine/core'; import { useForm } from '@mantine/form'; +import { useDebouncedValue } from '@mantine/hooks'; import { IconApps } from '@tabler/icons'; +import { useTranslation } from 'next-i18next'; import { useEffect, useState } from 'react'; import { v4 as uuidv4 } from 'uuid'; -import { useDebouncedValue } from '@mantine/hooks'; -import { useTranslation } from 'next-i18next'; import { useConfig } from '../../tools/state'; -import { tryMatchPort, ServiceTypeList, StatusCodes } from '../../tools/types'; +import { ServiceTypeList, StatusCodes, tryMatchPort } from '../../tools/types'; import Tip from '../layout/Tip'; export function AddItemShelfButton(props: any) { @@ -109,6 +110,7 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } & username: props.username ?? undefined, password: props.password ?? undefined, openedUrl: props.openedUrl ?? undefined, + ping: props.ping ?? true, status: props.status ?? ['200'], newTab: props.newTab ?? true, }, @@ -177,7 +179,11 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } & if (newForm.newTab === true) newForm.newTab = undefined; if (newForm.openedUrl === '') newForm.openedUrl = undefined; if (newForm.category === null) newForm.category = undefined; - if (newForm.status.length === 1 && newForm.status[0] === '200') { + if (newForm.ping === true) newForm.ping = undefined; + if ( + (newForm.status.length === 1 && newForm.status[0] === '200') || + newForm.ping === false + ) { delete newForm.status; } // If service already exists, update it. @@ -210,6 +216,7 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } & {t('modal.tabs.advancedOptions.title')} + void } & + - + {form.values.ping && ( + + )} ({ item: { @@ -134,7 +134,7 @@ export function AppShelfItem(props: any) { - + {service.ping !== false && }
diff --git a/src/tools/types.ts b/src/tools/types.ts index e08b491e4..1c9c5f6f0 100644 --- a/src/tools/types.ts +++ b/src/tools/types.ts @@ -183,5 +183,6 @@ export interface serviceItem { username?: string; openedUrl?: string; newTab?: boolean; + ping?: boolean; status?: string[]; } From c33c1da407cdbbae83681f8fdf1b73a75c64c6ba Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Sat, 27 Aug 2022 19:24:47 +0200 Subject: [PATCH 15/32] Revert "New Crowdin updates" --- .../de/layout/add-service-app-shelf.json | 214 +++++++++--------- .../de/modules/common-media-cards.json | 6 +- public/locales/de/modules/common.json | 5 - public/locales/de/modules/dashdot.json | 82 +++---- public/locales/de/modules/date.json | 11 - public/locales/de/modules/dlspeed.json | 6 - public/locales/de/modules/docker.json | 69 ------ public/locales/de/modules/overseerr.json | 46 ++-- public/locales/de/modules/ping.json | 8 +- public/locales/de/modules/search.json | 8 +- .../locales/de/modules/torrents-status.json | 9 - public/locales/de/modules/weather.json | 46 ++-- public/locales/de/settings/common.json | 12 +- .../de/settings/general/search-engine.json | 16 +- .../en/layout/add-service-app-shelf.json | 214 +++++++++--------- .../en/modules/common-media-cards.json | 6 +- public/locales/en/modules/dashdot.json | 54 ++--- public/locales/en/modules/overseerr.json | 42 ++-- public/locales/en/modules/search.json | 4 +- public/locales/en/modules/weather.json | 34 +-- .../en/settings/general/search-engine.json | 16 +- public/locales/es/common.json | 6 - .../es/layout/add-service-app-shelf.json | 118 ---------- public/locales/es/layout/app-shelf-menu.json | 18 -- public/locales/es/layout/app-shelf.json | 10 - public/locales/es/modules/calendar.json | 11 - .../es/modules/common-media-cards.json | 6 - public/locales/es/modules/common.json | 5 - public/locales/es/modules/dashdot.json | 60 ----- public/locales/es/modules/date.json | 11 - public/locales/es/modules/dlspeed.json | 6 - public/locales/es/modules/docker.json | 69 ------ public/locales/es/modules/overseerr.json | 30 --- public/locales/es/modules/ping.json | 11 - public/locales/es/modules/search.json | 9 - .../locales/es/modules/torrents-status.json | 40 ---- public/locales/es/modules/weather.json | 32 --- public/locales/es/settings/common.json | 14 -- .../es/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../es/settings/general/color-schema.json | 3 - .../es/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../es/settings/general/module-enabler.json | 3 - .../es/settings/general/search-engine.json | 11 - .../es/settings/general/theme-selector.json | 3 - .../es/settings/general/widget-positions.json | 3 - public/locales/fr/common.json | 6 - .../fr/layout/add-service-app-shelf.json | 118 ---------- public/locales/fr/layout/app-shelf-menu.json | 18 -- public/locales/fr/layout/app-shelf.json | 10 - public/locales/fr/modules/calendar.json | 11 - .../fr/modules/common-media-cards.json | 6 - public/locales/fr/modules/common.json | 5 - public/locales/fr/modules/dashdot.json | 60 ----- public/locales/fr/modules/date.json | 11 - public/locales/fr/modules/dlspeed.json | 6 - public/locales/fr/modules/docker.json | 69 ------ public/locales/fr/modules/overseerr.json | 30 --- public/locales/fr/modules/ping.json | 11 - public/locales/fr/modules/search.json | 9 - .../locales/fr/modules/torrents-status.json | 40 ---- public/locales/fr/modules/weather.json | 32 --- public/locales/fr/settings/common.json | 14 -- .../fr/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../fr/settings/general/color-schema.json | 3 - .../fr/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../fr/settings/general/module-enabler.json | 3 - .../fr/settings/general/search-engine.json | 11 - .../fr/settings/general/theme-selector.json | 3 - .../fr/settings/general/widget-positions.json | 3 - public/locales/it/common.json | 6 - .../it/layout/add-service-app-shelf.json | 118 ---------- public/locales/it/layout/app-shelf-menu.json | 18 -- public/locales/it/layout/app-shelf.json | 10 - public/locales/it/modules/calendar.json | 11 - .../it/modules/common-media-cards.json | 6 - public/locales/it/modules/common.json | 5 - public/locales/it/modules/dashdot.json | 60 ----- public/locales/it/modules/date.json | 11 - public/locales/it/modules/dlspeed.json | 6 - public/locales/it/modules/docker.json | 69 ------ public/locales/it/modules/overseerr.json | 30 --- public/locales/it/modules/ping.json | 11 - public/locales/it/modules/search.json | 9 - .../locales/it/modules/torrents-status.json | 40 ---- public/locales/it/modules/weather.json | 32 --- public/locales/it/settings/common.json | 14 -- .../it/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../it/settings/general/color-schema.json | 3 - .../it/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../it/settings/general/module-enabler.json | 3 - .../it/settings/general/search-engine.json | 11 - .../it/settings/general/theme-selector.json | 3 - .../it/settings/general/widget-positions.json | 3 - public/locales/ja/common.json | 6 - .../ja/layout/add-service-app-shelf.json | 118 ---------- public/locales/ja/layout/app-shelf-menu.json | 18 -- public/locales/ja/layout/app-shelf.json | 10 - public/locales/ja/modules/calendar.json | 11 - .../ja/modules/common-media-cards.json | 6 - public/locales/ja/modules/common.json | 5 - public/locales/ja/modules/dashdot.json | 60 ----- public/locales/ja/modules/date.json | 11 - public/locales/ja/modules/dlspeed.json | 6 - public/locales/ja/modules/docker.json | 69 ------ public/locales/ja/modules/overseerr.json | 30 --- public/locales/ja/modules/ping.json | 11 - public/locales/ja/modules/search.json | 9 - .../locales/ja/modules/torrents-status.json | 40 ---- public/locales/ja/modules/weather.json | 32 --- public/locales/ja/settings/common.json | 14 -- .../ja/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../ja/settings/general/color-schema.json | 3 - .../ja/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../ja/settings/general/module-enabler.json | 3 - .../ja/settings/general/search-engine.json | 11 - .../ja/settings/general/theme-selector.json | 3 - .../ja/settings/general/widget-positions.json | 3 - public/locales/nl/common.json | 6 - .../nl/layout/add-service-app-shelf.json | 118 ---------- public/locales/nl/layout/app-shelf-menu.json | 18 -- public/locales/nl/layout/app-shelf.json | 10 - public/locales/nl/modules/calendar.json | 11 - .../nl/modules/common-media-cards.json | 6 - public/locales/nl/modules/common.json | 5 - public/locales/nl/modules/dashdot.json | 60 ----- public/locales/nl/modules/date.json | 11 - public/locales/nl/modules/dlspeed.json | 6 - public/locales/nl/modules/docker.json | 69 ------ public/locales/nl/modules/overseerr.json | 30 --- public/locales/nl/modules/ping.json | 11 - public/locales/nl/modules/search.json | 9 - .../locales/nl/modules/torrents-status.json | 40 ---- public/locales/nl/modules/weather.json | 32 --- public/locales/nl/settings/common.json | 14 -- .../nl/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../nl/settings/general/color-schema.json | 3 - .../nl/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../nl/settings/general/module-enabler.json | 3 - .../nl/settings/general/search-engine.json | 11 - .../nl/settings/general/theme-selector.json | 3 - .../nl/settings/general/widget-positions.json | 3 - public/locales/ru/common.json | 6 - .../ru/layout/add-service-app-shelf.json | 118 ---------- public/locales/ru/layout/app-shelf-menu.json | 18 -- public/locales/ru/layout/app-shelf.json | 10 - public/locales/ru/modules/calendar.json | 11 - .../ru/modules/common-media-cards.json | 6 - public/locales/ru/modules/common.json | 5 - public/locales/ru/modules/dashdot.json | 60 ----- public/locales/ru/modules/date.json | 11 - public/locales/ru/modules/dlspeed.json | 6 - public/locales/ru/modules/docker.json | 69 ------ public/locales/ru/modules/overseerr.json | 30 --- public/locales/ru/modules/ping.json | 11 - public/locales/ru/modules/search.json | 9 - .../locales/ru/modules/torrents-status.json | 40 ---- public/locales/ru/modules/weather.json | 32 --- public/locales/ru/settings/common.json | 14 -- .../ru/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../ru/settings/general/color-schema.json | 3 - .../ru/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../ru/settings/general/module-enabler.json | 3 - .../ru/settings/general/search-engine.json | 11 - .../ru/settings/general/theme-selector.json | 3 - .../ru/settings/general/widget-positions.json | 3 - public/locales/sv/common.json | 6 - .../sv/layout/add-service-app-shelf.json | 118 ---------- public/locales/sv/layout/app-shelf-menu.json | 18 -- public/locales/sv/layout/app-shelf.json | 10 - public/locales/sv/modules/calendar.json | 11 - .../sv/modules/common-media-cards.json | 6 - public/locales/sv/modules/common.json | 5 - public/locales/sv/modules/dashdot.json | 60 ----- public/locales/sv/modules/date.json | 11 - public/locales/sv/modules/dlspeed.json | 6 - public/locales/sv/modules/docker.json | 69 ------ public/locales/sv/modules/overseerr.json | 30 --- public/locales/sv/modules/ping.json | 11 - public/locales/sv/modules/search.json | 9 - .../locales/sv/modules/torrents-status.json | 40 ---- public/locales/sv/modules/weather.json | 32 --- public/locales/sv/settings/common.json | 14 -- .../sv/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../sv/settings/general/color-schema.json | 3 - .../sv/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../sv/settings/general/module-enabler.json | 3 - .../sv/settings/general/search-engine.json | 11 - .../sv/settings/general/theme-selector.json | 3 - .../sv/settings/general/widget-positions.json | 3 - public/locales/zh/common.json | 6 - .../zh/layout/add-service-app-shelf.json | 118 ---------- public/locales/zh/layout/app-shelf-menu.json | 18 -- public/locales/zh/layout/app-shelf.json | 10 - public/locales/zh/modules/calendar.json | 11 - .../zh/modules/common-media-cards.json | 6 - public/locales/zh/modules/common.json | 5 - public/locales/zh/modules/dashdot.json | 60 ----- public/locales/zh/modules/date.json | 11 - public/locales/zh/modules/dlspeed.json | 6 - public/locales/zh/modules/docker.json | 69 ------ public/locales/zh/modules/overseerr.json | 30 --- public/locales/zh/modules/ping.json | 11 - public/locales/zh/modules/search.json | 9 - .../locales/zh/modules/torrents-status.json | 40 ---- public/locales/zh/modules/weather.json | 32 --- public/locales/zh/settings/common.json | 14 -- .../zh/settings/customization/app-width.json | 3 - .../customization/color-selector.json | 3 - .../customization/opacity-selector.json | 3 - .../customization/page-appearance.json | 21 -- .../customization/shade-selector.json | 3 - .../zh/settings/general/color-schema.json | 3 - .../zh/settings/general/config-changer.json | 55 ----- .../general/internationalization.json | 3 - .../zh/settings/general/module-enabler.json | 3 - .../zh/settings/general/search-engine.json | 11 - .../zh/settings/general/theme-selector.json | 3 - .../zh/settings/general/widget-positions.json | 3 - 253 files changed, 380 insertions(+), 5088 deletions(-) delete mode 100644 public/locales/de/modules/common.json delete mode 100644 public/locales/de/modules/date.json delete mode 100644 public/locales/de/modules/dlspeed.json delete mode 100644 public/locales/de/modules/docker.json delete mode 100644 public/locales/es/common.json delete mode 100644 public/locales/es/layout/add-service-app-shelf.json delete mode 100644 public/locales/es/layout/app-shelf-menu.json delete mode 100644 public/locales/es/layout/app-shelf.json delete mode 100644 public/locales/es/modules/calendar.json delete mode 100644 public/locales/es/modules/common-media-cards.json delete mode 100644 public/locales/es/modules/common.json delete mode 100644 public/locales/es/modules/dashdot.json delete mode 100644 public/locales/es/modules/date.json delete mode 100644 public/locales/es/modules/dlspeed.json delete mode 100644 public/locales/es/modules/docker.json delete mode 100644 public/locales/es/modules/overseerr.json delete mode 100644 public/locales/es/modules/ping.json delete mode 100644 public/locales/es/modules/search.json delete mode 100644 public/locales/es/modules/torrents-status.json delete mode 100644 public/locales/es/modules/weather.json delete mode 100644 public/locales/es/settings/common.json delete mode 100644 public/locales/es/settings/customization/app-width.json delete mode 100644 public/locales/es/settings/customization/color-selector.json delete mode 100644 public/locales/es/settings/customization/opacity-selector.json delete mode 100644 public/locales/es/settings/customization/page-appearance.json delete mode 100644 public/locales/es/settings/customization/shade-selector.json delete mode 100644 public/locales/es/settings/general/color-schema.json delete mode 100644 public/locales/es/settings/general/config-changer.json delete mode 100644 public/locales/es/settings/general/internationalization.json delete mode 100644 public/locales/es/settings/general/module-enabler.json delete mode 100644 public/locales/es/settings/general/search-engine.json delete mode 100644 public/locales/es/settings/general/theme-selector.json delete mode 100644 public/locales/es/settings/general/widget-positions.json delete mode 100644 public/locales/fr/common.json delete mode 100644 public/locales/fr/layout/add-service-app-shelf.json delete mode 100644 public/locales/fr/layout/app-shelf-menu.json delete mode 100644 public/locales/fr/layout/app-shelf.json delete mode 100644 public/locales/fr/modules/calendar.json delete mode 100644 public/locales/fr/modules/common-media-cards.json delete mode 100644 public/locales/fr/modules/common.json delete mode 100644 public/locales/fr/modules/dashdot.json delete mode 100644 public/locales/fr/modules/date.json delete mode 100644 public/locales/fr/modules/dlspeed.json delete mode 100644 public/locales/fr/modules/docker.json delete mode 100644 public/locales/fr/modules/overseerr.json delete mode 100644 public/locales/fr/modules/ping.json delete mode 100644 public/locales/fr/modules/search.json delete mode 100644 public/locales/fr/modules/torrents-status.json delete mode 100644 public/locales/fr/modules/weather.json delete mode 100644 public/locales/fr/settings/common.json delete mode 100644 public/locales/fr/settings/customization/app-width.json delete mode 100644 public/locales/fr/settings/customization/color-selector.json delete mode 100644 public/locales/fr/settings/customization/opacity-selector.json delete mode 100644 public/locales/fr/settings/customization/page-appearance.json delete mode 100644 public/locales/fr/settings/customization/shade-selector.json delete mode 100644 public/locales/fr/settings/general/color-schema.json delete mode 100644 public/locales/fr/settings/general/config-changer.json delete mode 100644 public/locales/fr/settings/general/internationalization.json delete mode 100644 public/locales/fr/settings/general/module-enabler.json delete mode 100644 public/locales/fr/settings/general/search-engine.json delete mode 100644 public/locales/fr/settings/general/theme-selector.json delete mode 100644 public/locales/fr/settings/general/widget-positions.json delete mode 100644 public/locales/it/common.json delete mode 100644 public/locales/it/layout/add-service-app-shelf.json delete mode 100644 public/locales/it/layout/app-shelf-menu.json delete mode 100644 public/locales/it/layout/app-shelf.json delete mode 100644 public/locales/it/modules/calendar.json delete mode 100644 public/locales/it/modules/common-media-cards.json delete mode 100644 public/locales/it/modules/common.json delete mode 100644 public/locales/it/modules/dashdot.json delete mode 100644 public/locales/it/modules/date.json delete mode 100644 public/locales/it/modules/dlspeed.json delete mode 100644 public/locales/it/modules/docker.json delete mode 100644 public/locales/it/modules/overseerr.json delete mode 100644 public/locales/it/modules/ping.json delete mode 100644 public/locales/it/modules/search.json delete mode 100644 public/locales/it/modules/torrents-status.json delete mode 100644 public/locales/it/modules/weather.json delete mode 100644 public/locales/it/settings/common.json delete mode 100644 public/locales/it/settings/customization/app-width.json delete mode 100644 public/locales/it/settings/customization/color-selector.json delete mode 100644 public/locales/it/settings/customization/opacity-selector.json delete mode 100644 public/locales/it/settings/customization/page-appearance.json delete mode 100644 public/locales/it/settings/customization/shade-selector.json delete mode 100644 public/locales/it/settings/general/color-schema.json delete mode 100644 public/locales/it/settings/general/config-changer.json delete mode 100644 public/locales/it/settings/general/internationalization.json delete mode 100644 public/locales/it/settings/general/module-enabler.json delete mode 100644 public/locales/it/settings/general/search-engine.json delete mode 100644 public/locales/it/settings/general/theme-selector.json delete mode 100644 public/locales/it/settings/general/widget-positions.json delete mode 100644 public/locales/ja/common.json delete mode 100644 public/locales/ja/layout/add-service-app-shelf.json delete mode 100644 public/locales/ja/layout/app-shelf-menu.json delete mode 100644 public/locales/ja/layout/app-shelf.json delete mode 100644 public/locales/ja/modules/calendar.json delete mode 100644 public/locales/ja/modules/common-media-cards.json delete mode 100644 public/locales/ja/modules/common.json delete mode 100644 public/locales/ja/modules/dashdot.json delete mode 100644 public/locales/ja/modules/date.json delete mode 100644 public/locales/ja/modules/dlspeed.json delete mode 100644 public/locales/ja/modules/docker.json delete mode 100644 public/locales/ja/modules/overseerr.json delete mode 100644 public/locales/ja/modules/ping.json delete mode 100644 public/locales/ja/modules/search.json delete mode 100644 public/locales/ja/modules/torrents-status.json delete mode 100644 public/locales/ja/modules/weather.json delete mode 100644 public/locales/ja/settings/common.json delete mode 100644 public/locales/ja/settings/customization/app-width.json delete mode 100644 public/locales/ja/settings/customization/color-selector.json delete mode 100644 public/locales/ja/settings/customization/opacity-selector.json delete mode 100644 public/locales/ja/settings/customization/page-appearance.json delete mode 100644 public/locales/ja/settings/customization/shade-selector.json delete mode 100644 public/locales/ja/settings/general/color-schema.json delete mode 100644 public/locales/ja/settings/general/config-changer.json delete mode 100644 public/locales/ja/settings/general/internationalization.json delete mode 100644 public/locales/ja/settings/general/module-enabler.json delete mode 100644 public/locales/ja/settings/general/search-engine.json delete mode 100644 public/locales/ja/settings/general/theme-selector.json delete mode 100644 public/locales/ja/settings/general/widget-positions.json delete mode 100644 public/locales/nl/common.json delete mode 100644 public/locales/nl/layout/add-service-app-shelf.json delete mode 100644 public/locales/nl/layout/app-shelf-menu.json delete mode 100644 public/locales/nl/layout/app-shelf.json delete mode 100644 public/locales/nl/modules/calendar.json delete mode 100644 public/locales/nl/modules/common-media-cards.json delete mode 100644 public/locales/nl/modules/common.json delete mode 100644 public/locales/nl/modules/dashdot.json delete mode 100644 public/locales/nl/modules/date.json delete mode 100644 public/locales/nl/modules/dlspeed.json delete mode 100644 public/locales/nl/modules/docker.json delete mode 100644 public/locales/nl/modules/overseerr.json delete mode 100644 public/locales/nl/modules/ping.json delete mode 100644 public/locales/nl/modules/search.json delete mode 100644 public/locales/nl/modules/torrents-status.json delete mode 100644 public/locales/nl/modules/weather.json delete mode 100644 public/locales/nl/settings/common.json delete mode 100644 public/locales/nl/settings/customization/app-width.json delete mode 100644 public/locales/nl/settings/customization/color-selector.json delete mode 100644 public/locales/nl/settings/customization/opacity-selector.json delete mode 100644 public/locales/nl/settings/customization/page-appearance.json delete mode 100644 public/locales/nl/settings/customization/shade-selector.json delete mode 100644 public/locales/nl/settings/general/color-schema.json delete mode 100644 public/locales/nl/settings/general/config-changer.json delete mode 100644 public/locales/nl/settings/general/internationalization.json delete mode 100644 public/locales/nl/settings/general/module-enabler.json delete mode 100644 public/locales/nl/settings/general/search-engine.json delete mode 100644 public/locales/nl/settings/general/theme-selector.json delete mode 100644 public/locales/nl/settings/general/widget-positions.json delete mode 100644 public/locales/ru/common.json delete mode 100644 public/locales/ru/layout/add-service-app-shelf.json delete mode 100644 public/locales/ru/layout/app-shelf-menu.json delete mode 100644 public/locales/ru/layout/app-shelf.json delete mode 100644 public/locales/ru/modules/calendar.json delete mode 100644 public/locales/ru/modules/common-media-cards.json delete mode 100644 public/locales/ru/modules/common.json delete mode 100644 public/locales/ru/modules/dashdot.json delete mode 100644 public/locales/ru/modules/date.json delete mode 100644 public/locales/ru/modules/dlspeed.json delete mode 100644 public/locales/ru/modules/docker.json delete mode 100644 public/locales/ru/modules/overseerr.json delete mode 100644 public/locales/ru/modules/ping.json delete mode 100644 public/locales/ru/modules/search.json delete mode 100644 public/locales/ru/modules/torrents-status.json delete mode 100644 public/locales/ru/modules/weather.json delete mode 100644 public/locales/ru/settings/common.json delete mode 100644 public/locales/ru/settings/customization/app-width.json delete mode 100644 public/locales/ru/settings/customization/color-selector.json delete mode 100644 public/locales/ru/settings/customization/opacity-selector.json delete mode 100644 public/locales/ru/settings/customization/page-appearance.json delete mode 100644 public/locales/ru/settings/customization/shade-selector.json delete mode 100644 public/locales/ru/settings/general/color-schema.json delete mode 100644 public/locales/ru/settings/general/config-changer.json delete mode 100644 public/locales/ru/settings/general/internationalization.json delete mode 100644 public/locales/ru/settings/general/module-enabler.json delete mode 100644 public/locales/ru/settings/general/search-engine.json delete mode 100644 public/locales/ru/settings/general/theme-selector.json delete mode 100644 public/locales/ru/settings/general/widget-positions.json delete mode 100644 public/locales/sv/common.json delete mode 100644 public/locales/sv/layout/add-service-app-shelf.json delete mode 100644 public/locales/sv/layout/app-shelf-menu.json delete mode 100644 public/locales/sv/layout/app-shelf.json delete mode 100644 public/locales/sv/modules/calendar.json delete mode 100644 public/locales/sv/modules/common-media-cards.json delete mode 100644 public/locales/sv/modules/common.json delete mode 100644 public/locales/sv/modules/dashdot.json delete mode 100644 public/locales/sv/modules/date.json delete mode 100644 public/locales/sv/modules/dlspeed.json delete mode 100644 public/locales/sv/modules/docker.json delete mode 100644 public/locales/sv/modules/overseerr.json delete mode 100644 public/locales/sv/modules/ping.json delete mode 100644 public/locales/sv/modules/search.json delete mode 100644 public/locales/sv/modules/torrents-status.json delete mode 100644 public/locales/sv/modules/weather.json delete mode 100644 public/locales/sv/settings/common.json delete mode 100644 public/locales/sv/settings/customization/app-width.json delete mode 100644 public/locales/sv/settings/customization/color-selector.json delete mode 100644 public/locales/sv/settings/customization/opacity-selector.json delete mode 100644 public/locales/sv/settings/customization/page-appearance.json delete mode 100644 public/locales/sv/settings/customization/shade-selector.json delete mode 100644 public/locales/sv/settings/general/color-schema.json delete mode 100644 public/locales/sv/settings/general/config-changer.json delete mode 100644 public/locales/sv/settings/general/internationalization.json delete mode 100644 public/locales/sv/settings/general/module-enabler.json delete mode 100644 public/locales/sv/settings/general/search-engine.json delete mode 100644 public/locales/sv/settings/general/theme-selector.json delete mode 100644 public/locales/sv/settings/general/widget-positions.json delete mode 100644 public/locales/zh/common.json delete mode 100644 public/locales/zh/layout/add-service-app-shelf.json delete mode 100644 public/locales/zh/layout/app-shelf-menu.json delete mode 100644 public/locales/zh/layout/app-shelf.json delete mode 100644 public/locales/zh/modules/calendar.json delete mode 100644 public/locales/zh/modules/common-media-cards.json delete mode 100644 public/locales/zh/modules/common.json delete mode 100644 public/locales/zh/modules/dashdot.json delete mode 100644 public/locales/zh/modules/date.json delete mode 100644 public/locales/zh/modules/dlspeed.json delete mode 100644 public/locales/zh/modules/docker.json delete mode 100644 public/locales/zh/modules/overseerr.json delete mode 100644 public/locales/zh/modules/ping.json delete mode 100644 public/locales/zh/modules/search.json delete mode 100644 public/locales/zh/modules/torrents-status.json delete mode 100644 public/locales/zh/modules/weather.json delete mode 100644 public/locales/zh/settings/common.json delete mode 100644 public/locales/zh/settings/customization/app-width.json delete mode 100644 public/locales/zh/settings/customization/color-selector.json delete mode 100644 public/locales/zh/settings/customization/opacity-selector.json delete mode 100644 public/locales/zh/settings/customization/page-appearance.json delete mode 100644 public/locales/zh/settings/customization/shade-selector.json delete mode 100644 public/locales/zh/settings/general/color-schema.json delete mode 100644 public/locales/zh/settings/general/config-changer.json delete mode 100644 public/locales/zh/settings/general/internationalization.json delete mode 100644 public/locales/zh/settings/general/module-enabler.json delete mode 100644 public/locales/zh/settings/general/search-engine.json delete mode 100644 public/locales/zh/settings/general/theme-selector.json delete mode 100644 public/locales/zh/settings/general/widget-positions.json diff --git a/public/locales/de/layout/add-service-app-shelf.json b/public/locales/de/layout/add-service-app-shelf.json index a50c92d1e..d7a1ffb4c 100644 --- a/public/locales/de/layout/add-service-app-shelf.json +++ b/public/locales/de/layout/add-service-app-shelf.json @@ -1,118 +1,118 @@ { - "actionIcon": { - "tooltip": "Einen Service hinzufügen" - }, - "modal": { - "title": "Service hinzufügen", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } + "actionIcon": { + "tooltip": "Einen Service hinzufügen" }, - "tabs": { + "modal": { + "title": "Service hinzufügen", + "form": { + "validation": { + "invalidUrl": "Please enter a valid URL", + "noStatusCodeSelected": "Please select a status code" + } + }, + "tabs": { "options": { - "title": "Optionen", - "form": { - "serviceName": { - "label": "Service Namen", - "placeholder": "Plex" + "title": "Optionen", + "form": { + "serviceName": { + "label": "Service Namen", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "Icon URL" + }, + "serviceUrl": { + "label": "Service URL" + }, + "onClickUrl": { + "label": "URL bei einem Klick" + }, + "serviceType": { + "label": "Service Typ", + "defaultValue": "Andere", + "placeholder": "Wähle einen Typ aus" + }, + "category": { + "label": "Kategorie", + "placeholder": "Whle eine Kategorie oder erstelle eine neue", + "nothingFound": "Nichts gefunden", + "createLabel": "+ Erstelle {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API Schlüssel", + "placeholder": "Dein API Schlüssel", + "validation": { + "noKey": "Invalider Schlüssel" }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "URL bei einem Klick" - }, - "serviceType": { - "label": "Service Typ", - "defaultValue": "Andere", - "placeholder": "Wähle einen Typ aus" - }, - "category": { - "label": "Kategorie", - "placeholder": "Whle eine Kategorie oder erstelle eine neue", - "nothingFound": "Nichts gefunden", - "createLabel": "+ Erstelle {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API Schlüssel", - "placeholder": "Dein API Schlüssel", - "validation": { - "noKey": "Invalider Schlüssel" - }, - "tip": { - "text": "Erhalte deinen API Schlüssel", - "link": "hier." - } - }, - "qBittorrent": { - "username": { - "label": "Benutzernamen", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalider Benutzername" - } - }, - "password": { - "label": "Passwort", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalides Passwort" - } - } - }, - "deluge": { - "password": { - "label": "Passwort", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalides Passwort" - } - } - }, - "transmission": { - "username": { - "label": "Benutzername", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalider Benutzername" - } - }, - "password": { - "label": "Passwort", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalides Passwort" - } - } - } + "tip": { + "text": "Erhalte deinen API Schlüssel", + "link": "hier." } + }, + "qBittorrent": { + "username": { + "label": "Benutzernamen", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalider Benutzername" + } + }, + "password": { + "label": "Passwort", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalides Passwort" + } + } + }, + "deluge": { + "password": { + "label": "Passwort", + "placeholder": "password", + "validation": { + "invalidPassword": "Invalides Passwort" + } + } + }, + "transmission": { + "username": { + "label": "Benutzername", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalider Benutzername" + } + }, + "password": { + "label": "Passwort", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalides Passwort" + } + } + } } + } }, "advancedOptions": { - "title": "Weitere Optionen", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Nummern", - "placeholder": "Wähle eine valide Status Nummer", - "clearButtonLabel": "Auswahl löschen", - "nothingFound": "Nichts gefunden" - }, - "openServiceInNewTab": { - "label": "Serivce in einem neuen Tab öffnen" - }, - "buttons": { - "submit": { - "content": "Service hinzufügen" - } - } + "title": "Weitere Optionen", + "form": { + "httpStatusCodes": { + "label": "HTTP Status Nummern", + "placeholder": "Wähle eine valide Status Nummer", + "clearButtonLabel": "Auswahl löschen", + "nothingFound": "Nichts gefunden" + }, + "openServiceInNewTab": { + "label": "Serivce in einem neuen Tab öffnen" + }, + "buttons": { + "submit": { + "content": "Service hinzufügen" + } } + } } + } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/public/locales/de/modules/common-media-cards.json b/public/locales/de/modules/common-media-cards.json index 55312bb3f..72313078a 100644 --- a/public/locales/de/modules/common-media-cards.json +++ b/public/locales/de/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Abspielen", - "request": "Anfragen" - } + "play": "Abspielen", + "request": "Anfragen" + } } \ No newline at end of file diff --git a/public/locales/de/modules/common.json b/public/locales/de/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/de/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/de/modules/dashdot.json b/public/locales/de/modules/dashdot.json index 594f1ab4c..d629b876f 100644 --- a/public/locales/de/modules/dashdot.json +++ b/public/locales/de/modules/dashdot.json @@ -1,60 +1,32 @@ { - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, "card": { - "title": "Dash.", - "errors": { - "noService": "Kein Dash. Service gefunden. Bitte füge einen zu deinem Homarr Dashboard hinzu oder setze eine Dash. URL in den Modul-Optionen.", - "noInformation": "Informationen konnten nicht von Dash. geladen werden. Betriebst du die neuste Version?" - }, - "graphs": { - "storage": { - "title": "Speicher", - "label": "Speicher:" - }, - "network": { - "title": "Netzwerk", - "label": "Netzwerk:", - "metrics": { - "download": "Eingehend", - "upload": "Ausgehend" + "title": "Dash.", + "errors": { + "noService": "Kein Dash. Service gefunden. Bitte füge einen zu deinem Homarr Dashboard hinzu oder setze eine Dash. URL in den Modul-Optionen.", + "noInformation": "Informationen konnten nicht von Dash. geladen werden. Betriebst du die neuste Version?" + }, + "graphs": { + "storage": { + "title": "Speicher", + "label": "Speicher:" + }, + "network": { + "title": "Netzwerk", + "label": "Netzwerk:", + "metrics": { + "download": "Eingehend", + "upload": "Ausgehend" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" } - } - } } \ No newline at end of file diff --git a/public/locales/de/modules/date.json b/public/locales/de/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/de/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/de/modules/dlspeed.json b/public/locales/de/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/de/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/de/modules/docker.json b/public/locales/de/modules/docker.json deleted file mode 100644 index f3170ad19..000000000 --- a/public/locales/de/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Suche nach Conainer oder Image Namen" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "Status" - }, - "body": { - "portCollapse": "{{ports}} weitere" - }, - "states": { - "running": "Läuft", - "created": "Erstellt", - "stopped": "Gestopped", - "unknown": "Unbekannt" - } - }, - "actionBar": { - "addService": { - "title": "Service hinzufügen", - "message": "Service zu Homarr hinzufügen" - }, - "restart": { - "title": "Neustarten" - }, - "stop": { - "title": "Stoppen" - }, - "start": { - "title": "Starten" - }, - "refreshData": "Daten aktualisieren", - "addToHomarr": { - "title": "Zu Homarr hinzufügen" - }, - "remove": { - "title": "Entfernen" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker Integration schlug fehl", - "message": "Hast du vergessen, den Docker Socket zu verbinden?" - }, - "unknownError": { - "title": "Es ist ein Fehler aufgetreten" - }, - "oneServiceAtATime": { - "title": "Bitte füge nur einen Service zur Zeit hinzu." - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/de/modules/overseerr.json b/public/locales/de/modules/overseerr.json index bcc7bca3c..99ce654f8 100644 --- a/public/locales/de/modules/overseerr.json +++ b/public/locales/de/modules/overseerr.json @@ -1,30 +1,26 @@ { - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, "popup": { - "item": { - "buttons": { - "askFor": "Fragen für {{title}}", - "cancel": "Abbrechen", - "request": "Anfragen" - }, - "alerts": { - "automaticApproval": { - "title": "Einen API Schlüssel benutzen", - "text": "Diese Anfrage wird automatisch genehmigt" + "item": { + "buttons": { + "askFor": "Fragen für {{title}}", + "cancel": "Abbrechen", + "request": "Anfragen" + }, + "alerts": { + "automaticApproval": { + "title": "Einen API Schlüssel benutzen", + "text": "Diese Anfrage wird automatisch genehmigt" + } + } + }, + "seasonSelector": { + "caption": "Kreuze die Staffeln an, die heruntergeladen werden sollen.", + "table": { + "header": { + "season": "Staffel", + "numberOfEpisodes": "Anzahl von Episoden" + } + } } } - }, - "seasonSelector": { - "caption": "Kreuze die Staffeln an, die heruntergeladen werden sollen.", - "table": { - "header": { - "season": "Staffel", - "numberOfEpisodes": "Anzahl von Episoden" - } - } - } - } } \ No newline at end of file diff --git a/public/locales/de/modules/ping.json b/public/locales/de/modules/ping.json index 2163c35d7..645e2dd61 100644 --- a/public/locales/de/modules/ping.json +++ b/public/locales/de/modules/ping.json @@ -4,8 +4,8 @@ "description": "Pings your services and shows their status as an indicator" }, "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Laden..." - } + "online": "Online {{response}}", + "offline": "Offline {{response}}", + "loading": "Laden..." + } } \ No newline at end of file diff --git a/public/locales/de/modules/search.json b/public/locales/de/modules/search.json index 77033124d..e794b039b 100644 --- a/public/locales/de/modules/search.json +++ b/public/locales/de/modules/search.json @@ -1,9 +1,5 @@ { - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, "input": { - "placeholder": "Das Internet durchsuchen..." - } + "placeholder": "Das Internet durchsuchen..." + } } \ No newline at end of file diff --git a/public/locales/de/modules/torrents-status.json b/public/locales/de/modules/torrents-status.json index 6dc01236d..5beba90a4 100644 --- a/public/locales/de/modules/torrents-status.json +++ b/public/locales/de/modules/torrents-status.json @@ -1,13 +1,4 @@ { - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, "card": { "table": { "header": { diff --git a/public/locales/de/modules/weather.json b/public/locales/de/modules/weather.json index 0b0cb5efb..4d8fa725a 100644 --- a/public/locales/de/modules/weather.json +++ b/public/locales/de/modules/weather.json @@ -1,32 +1,20 @@ { - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, "card": { - "weatherDescriptions": { - "clear": "Klar", - "mainlyClear": "Überwiegend klar", - "fog": "Nebel", - "drizzle": "Niesel", - "freezingDrizzle": "Eisiger Nieselregen", - "rain": "Regen", - "freezingRain": "Eisiger Regen", - "snowFall": "Schneefall", - "snowGrains": "Schneekörner", - "rainShowers": "Regenschauer", - "snowShowers": "Schneeschauer", - "thunderstorm": "Gewitter", - "thunderstormWithHail": "Gewitter mit Hagel", - "unknown": "Unbekannt" - } - } + "weatherDescriptions": { + "clear": "Klar", + "mainlyClear": "Überwiegend klar", + "fog": "Nebel", + "drizzle": "Niesel", + "freezingDrizzle": "Eisiger Nieselregen", + "rain": "Regen", + "freezingRain": "Eisiger Regen", + "snowFall": "Schneefall", + "snowGrains": "Schneekörner", + "rainShowers": "Regenschauer", + "snowShowers": "Schneeschauer", + "thunderstorm": "Gewitter", + "thunderstormWithHail": "Gewitter mit Hagel", + "unknown": "Unbekannt" + } + } } \ No newline at end of file diff --git a/public/locales/de/settings/common.json b/public/locales/de/settings/common.json index 776816b2a..433c0197b 100644 --- a/public/locales/de/settings/common.json +++ b/public/locales/de/settings/common.json @@ -1,14 +1,14 @@ { - "title": "Settings", - "tooltip": "Settings", + "title": "Einstellungen", + "tooltip": "Einstellungen", "tabs": { - "common": "Common", - "customizations": "Customizations" + "common": "Gewöhnlich", + "customizations": "Anpassungen" }, "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" + "configTip": "Lade eine neue Konfiguration hoch, indem du eine neue auf die Seite ziehst!" }, "credits": { - "madeWithLove": "Made with ❤️ by @" + "madeWithLove": "Gemacht mit ❤️ von @" } } \ No newline at end of file diff --git a/public/locales/de/settings/general/search-engine.json b/public/locales/de/settings/general/search-engine.json index 548906445..def5db657 100644 --- a/public/locales/de/settings/general/search-engine.json +++ b/public/locales/de/settings/general/search-engine.json @@ -1,11 +1,11 @@ { "title": "Suchmaschine", - "tips": { - "generalTip": "Verwenden die Präfixe !yt und !t vor deiner Suchanfrage, um auf YouTube bzw. nach einem Torrent zu suchen.", - "placeholderTip": "%s kann als Platzhalter für deine Suchanfrage verwendet werden." - }, - "customEngine": { - "label": "Suchanfrage URL", - "placeholder": "Benutzerdefinierte Adresse" - } + "tips": { +"generalTip": "Verwenden die Präfixe !yt und !t vor deiner Suchanfrage, um auf YouTube bzw. nach einem Torrent zu suchen.", + "placeholderTip": "%s kann als Platzhalter für deine Suchanfrage verwendet werden." + }, + "customEngine": { + "label": "Suchanfrage URL", + "placeholder": "Benutzerdefinierte Adresse" + } } \ No newline at end of file diff --git a/public/locales/en/layout/add-service-app-shelf.json b/public/locales/en/layout/add-service-app-shelf.json index ca88e1f31..c6417a161 100644 --- a/public/locales/en/layout/add-service-app-shelf.json +++ b/public/locales/en/layout/add-service-app-shelf.json @@ -1,118 +1,118 @@ { - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } + "actionIcon": { + "tooltip": "Add a service" }, - "tabs": { + "modal": { + "title": "Add service", + "form": { + "validation": { + "invalidUrl": "Please enter a valid URL", + "noStatusCodeSelected": "Please select a status code" + } + }, + "tabs": { "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" + "title": "Options", + "form": { + "serviceName": { + "label": "Service name", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "Icon URL" + }, + "serviceUrl": { + "label": "Service URL" + }, + "onClickUrl": { + "label": "On Click URL" + }, + "serviceType": { + "label": "Service type", + "defaultValue": "Other", + "placeholder": "Pick one" + }, + "category": { + "label": "Category", + "placeholder": "Select a category or create a new one", + "nothingFound": "Nothing found", + "createLabel": "+ Create {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API key", + "placeholder": "Your API key", + "validation": { + "noKey": "Invalid Key" }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } + "tip": { + "text": "Get your API key", + "link": "here." } + }, + "qBittorrent": { + "username": { + "label": "Username", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalid username" + } + }, + "password": { + "label": "Password", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalid password" + } + } + }, + "deluge": { + "password": { + "label": "Password", + "placeholder": "password", + "validation": { + "invalidPassword": "Invalid password" + } + } + }, + "transmission": { + "username": { + "label": "Username", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalid username" + } + }, + "password": { + "label": "Password", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalid password" + } + } + } } + } }, "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } + "title": "Advanced options", + "form": { + "httpStatusCodes": { + "label": "HTTP Status Codes", + "placeholder": "Select valid status codes", + "clearButtonLabel": "Clear selection", + "nothingFound": "Nothing found" + }, + "openServiceInNewTab": { + "label": "Open service in new tab" + }, + "buttons": { + "submit": { + "content": "Add service" + } } + } } + } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/public/locales/en/modules/common-media-cards.json b/public/locales/en/modules/common-media-cards.json index b9bbbc537..af13d5d34 100644 --- a/public/locales/en/modules/common-media-cards.json +++ b/public/locales/en/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Play", - "request": "Request" - } + "play": "Play", + "request": "Request" + } } \ No newline at end of file diff --git a/public/locales/en/modules/dashdot.json b/public/locales/en/modules/dashdot.json index dd1486b43..77caf974e 100644 --- a/public/locales/en/modules/dashdot.json +++ b/public/locales/en/modules/dashdot.json @@ -28,33 +28,33 @@ } }, "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" + "title": "Dash.", + "errors": { + "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", + "noInformation": "Cannot acquire information from dash. - are you running the latest version?" + }, + "graphs": { + "storage": { + "title": "Storage", + "label": "Storage:" + }, + "network": { + "title": "Network", + "label": "Network:", + "metrics": { + "download": "Down", + "upload": "Up" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" } - } - } } \ No newline at end of file diff --git a/public/locales/en/modules/overseerr.json b/public/locales/en/modules/overseerr.json index e7b44289e..ed9df1477 100644 --- a/public/locales/en/modules/overseerr.json +++ b/public/locales/en/modules/overseerr.json @@ -4,27 +4,27 @@ "description": "Allows you to search and add media from Overseerr/Jellyseerr" }, "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" + "item": { + "buttons": { + "askFor": "Ask for {{title}}", + "cancel": "Cancel", + "request": "Request" + }, + "alerts": { + "automaticApproval": { + "title": "Using API key", + "text": "This request will be automatically approved" + } + } + }, + "seasonSelector": { + "caption": "Tick the seasons that you want to be downloaded", + "table": { + "header": { + "season": "Season", + "numberOfEpisodes": "Number of episodes" + } + } } } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } } \ No newline at end of file diff --git a/public/locales/en/modules/search.json b/public/locales/en/modules/search.json index 0476bb186..0258afd59 100644 --- a/public/locales/en/modules/search.json +++ b/public/locales/en/modules/search.json @@ -4,6 +4,6 @@ "description": "Search bar to search the web, youtube, torrents or overseerr" }, "input": { - "placeholder": "Search the web..." - } + "placeholder": "Search the web..." + } } \ No newline at end of file diff --git a/public/locales/en/modules/weather.json b/public/locales/en/modules/weather.json index 405c36263..c0aec151a 100644 --- a/public/locales/en/modules/weather.json +++ b/public/locales/en/modules/weather.json @@ -12,21 +12,21 @@ } }, "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } + "weatherDescriptions": { + "clear": "Clear", + "mainlyClear": "Mainly clear", + "fog": "Fog", + "drizzle": "Drizzle", + "freezingDrizzle": "Freezing drizzle", + "rain": "Rain", + "freezingRain": "Freezing rain", + "snowFall": "Snow fall", + "snowGrains": "Snow grains", + "rainShowers": "Rain showers", + "snowShowers": "Snow showers", + "thunderstorm": "Thunderstorm", + "thunderstormWithHail": "Thunderstorm with hail", + "unknown": "Unknown" + } + } } \ No newline at end of file diff --git a/public/locales/en/settings/general/search-engine.json b/public/locales/en/settings/general/search-engine.json index 42f708ffb..789b1715b 100644 --- a/public/locales/en/settings/general/search-engine.json +++ b/public/locales/en/settings/general/search-engine.json @@ -1,11 +1,11 @@ { "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } + "tips": { +"generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", + "placeholderTip": "%s can be used as a placeholder for the query." + }, + "customEngine": { + "label": "Query URL", + "placeholder": "Custom query URL" + } } \ No newline at end of file diff --git a/public/locales/es/common.json b/public/locales/es/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/es/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/es/layout/add-service-app-shelf.json b/public/locales/es/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/es/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/layout/app-shelf-menu.json b/public/locales/es/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/es/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/es/layout/app-shelf.json b/public/locales/es/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/es/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/calendar.json b/public/locales/es/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/es/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/common-media-cards.json b/public/locales/es/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/es/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/es/modules/common.json b/public/locales/es/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/es/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/es/modules/dashdot.json b/public/locales/es/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/es/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/date.json b/public/locales/es/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/es/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/dlspeed.json b/public/locales/es/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/es/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/es/modules/docker.json b/public/locales/es/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/es/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/es/modules/overseerr.json b/public/locales/es/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/es/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/ping.json b/public/locales/es/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/es/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/es/modules/search.json b/public/locales/es/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/es/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/es/modules/torrents-status.json b/public/locales/es/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/es/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/es/modules/weather.json b/public/locales/es/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/es/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/es/settings/common.json b/public/locales/es/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/es/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/es/settings/customization/app-width.json b/public/locales/es/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/es/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/es/settings/customization/color-selector.json b/public/locales/es/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/es/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/es/settings/customization/opacity-selector.json b/public/locales/es/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/es/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/es/settings/customization/page-appearance.json b/public/locales/es/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/es/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/es/settings/customization/shade-selector.json b/public/locales/es/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/es/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/es/settings/general/color-schema.json b/public/locales/es/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/es/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/es/settings/general/config-changer.json b/public/locales/es/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/es/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/es/settings/general/internationalization.json b/public/locales/es/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/es/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/es/settings/general/module-enabler.json b/public/locales/es/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/es/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/es/settings/general/search-engine.json b/public/locales/es/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/es/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/es/settings/general/theme-selector.json b/public/locales/es/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/es/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/es/settings/general/widget-positions.json b/public/locales/es/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/es/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/fr/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/fr/layout/add-service-app-shelf.json b/public/locales/fr/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/fr/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/layout/app-shelf-menu.json b/public/locales/fr/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/fr/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/fr/layout/app-shelf.json b/public/locales/fr/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/fr/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/calendar.json b/public/locales/fr/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/fr/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/common-media-cards.json b/public/locales/fr/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/fr/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/common.json b/public/locales/fr/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/fr/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/dashdot.json b/public/locales/fr/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/fr/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/date.json b/public/locales/fr/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/fr/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/dlspeed.json b/public/locales/fr/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/fr/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/docker.json b/public/locales/fr/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/fr/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/overseerr.json b/public/locales/fr/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/fr/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/ping.json b/public/locales/fr/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/fr/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/search.json b/public/locales/fr/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/fr/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/fr/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/fr/modules/weather.json b/public/locales/fr/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/fr/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/fr/settings/common.json b/public/locales/fr/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/fr/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/app-width.json b/public/locales/fr/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/fr/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/color-selector.json b/public/locales/fr/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/fr/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/opacity-selector.json b/public/locales/fr/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/fr/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/fr/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/shade-selector.json b/public/locales/fr/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/fr/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/color-schema.json b/public/locales/fr/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/fr/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/config-changer.json b/public/locales/fr/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/fr/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/internationalization.json b/public/locales/fr/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/fr/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/module-enabler.json b/public/locales/fr/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/fr/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ 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 deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/fr/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/theme-selector.json b/public/locales/fr/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/fr/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/fr/settings/general/widget-positions.json b/public/locales/fr/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/fr/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/it/common.json b/public/locales/it/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/it/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/it/layout/add-service-app-shelf.json b/public/locales/it/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/it/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/layout/app-shelf-menu.json b/public/locales/it/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/it/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/it/layout/app-shelf.json b/public/locales/it/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/it/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/calendar.json b/public/locales/it/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/it/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/common-media-cards.json b/public/locales/it/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/it/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/it/modules/common.json b/public/locales/it/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/it/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/it/modules/dashdot.json b/public/locales/it/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/it/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/date.json b/public/locales/it/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/it/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/dlspeed.json b/public/locales/it/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/it/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/it/modules/docker.json b/public/locales/it/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/it/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/it/modules/overseerr.json b/public/locales/it/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/it/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/ping.json b/public/locales/it/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/it/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/it/modules/search.json b/public/locales/it/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/it/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/it/modules/torrents-status.json b/public/locales/it/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/it/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/it/modules/weather.json b/public/locales/it/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/it/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/it/settings/common.json b/public/locales/it/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/it/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/it/settings/customization/app-width.json b/public/locales/it/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/it/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/it/settings/customization/color-selector.json b/public/locales/it/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/it/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/it/settings/customization/opacity-selector.json b/public/locales/it/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/it/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/it/settings/customization/page-appearance.json b/public/locales/it/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/it/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/it/settings/customization/shade-selector.json b/public/locales/it/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/it/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/it/settings/general/color-schema.json b/public/locales/it/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/it/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/it/settings/general/config-changer.json b/public/locales/it/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/it/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/it/settings/general/internationalization.json b/public/locales/it/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/it/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/it/settings/general/module-enabler.json b/public/locales/it/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/it/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/it/settings/general/search-engine.json b/public/locales/it/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/it/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/it/settings/general/theme-selector.json b/public/locales/it/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/it/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/it/settings/general/widget-positions.json b/public/locales/it/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/it/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/ja/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/ja/layout/add-service-app-shelf.json b/public/locales/ja/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/ja/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/layout/app-shelf-menu.json b/public/locales/ja/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/ja/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/ja/layout/app-shelf.json b/public/locales/ja/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/ja/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/calendar.json b/public/locales/ja/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/ja/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/common-media-cards.json b/public/locales/ja/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/ja/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/common.json b/public/locales/ja/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/ja/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/dashdot.json b/public/locales/ja/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/ja/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/date.json b/public/locales/ja/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/ja/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/dlspeed.json b/public/locales/ja/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/ja/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/docker.json b/public/locales/ja/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/ja/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/overseerr.json b/public/locales/ja/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/ja/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/ping.json b/public/locales/ja/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/ja/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/search.json b/public/locales/ja/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/ja/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/torrents-status.json b/public/locales/ja/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/ja/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ja/modules/weather.json b/public/locales/ja/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/ja/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/ja/settings/common.json b/public/locales/ja/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/ja/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/app-width.json b/public/locales/ja/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/ja/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/color-selector.json b/public/locales/ja/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/ja/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/opacity-selector.json b/public/locales/ja/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/ja/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/page-appearance.json b/public/locales/ja/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/ja/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/shade-selector.json b/public/locales/ja/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/ja/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/color-schema.json b/public/locales/ja/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/ja/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/config-changer.json b/public/locales/ja/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/ja/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/internationalization.json b/public/locales/ja/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/ja/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/module-enabler.json b/public/locales/ja/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/ja/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/search-engine.json b/public/locales/ja/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/ja/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/theme-selector.json b/public/locales/ja/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/ja/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/ja/settings/general/widget-positions.json b/public/locales/ja/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/ja/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/nl/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/nl/layout/add-service-app-shelf.json b/public/locales/nl/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/nl/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/layout/app-shelf-menu.json b/public/locales/nl/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/nl/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/nl/layout/app-shelf.json b/public/locales/nl/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/nl/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/calendar.json b/public/locales/nl/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/nl/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/common-media-cards.json b/public/locales/nl/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/nl/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/common.json b/public/locales/nl/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/nl/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/dashdot.json b/public/locales/nl/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/nl/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/date.json b/public/locales/nl/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/nl/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/dlspeed.json b/public/locales/nl/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/nl/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/docker.json b/public/locales/nl/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/nl/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/overseerr.json b/public/locales/nl/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/nl/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/ping.json b/public/locales/nl/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/nl/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/search.json b/public/locales/nl/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/nl/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/torrents-status.json b/public/locales/nl/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/nl/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/nl/modules/weather.json b/public/locales/nl/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/nl/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/nl/settings/common.json b/public/locales/nl/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/nl/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/app-width.json b/public/locales/nl/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/nl/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/color-selector.json b/public/locales/nl/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/nl/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/opacity-selector.json b/public/locales/nl/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/nl/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/nl/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/shade-selector.json b/public/locales/nl/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/nl/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/color-schema.json b/public/locales/nl/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/nl/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/config-changer.json b/public/locales/nl/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/nl/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/internationalization.json b/public/locales/nl/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/nl/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/module-enabler.json b/public/locales/nl/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/nl/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/search-engine.json b/public/locales/nl/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/nl/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/theme-selector.json b/public/locales/nl/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/nl/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/nl/settings/general/widget-positions.json b/public/locales/nl/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/nl/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/ru/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/ru/layout/add-service-app-shelf.json b/public/locales/ru/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/ru/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/layout/app-shelf-menu.json b/public/locales/ru/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/ru/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/ru/layout/app-shelf.json b/public/locales/ru/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/ru/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/calendar.json b/public/locales/ru/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/ru/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/common-media-cards.json b/public/locales/ru/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/ru/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/common.json b/public/locales/ru/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/ru/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/dashdot.json b/public/locales/ru/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/ru/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/date.json b/public/locales/ru/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/ru/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/dlspeed.json b/public/locales/ru/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/ru/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/docker.json b/public/locales/ru/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/ru/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/overseerr.json b/public/locales/ru/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/ru/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/ping.json b/public/locales/ru/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/ru/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/search.json b/public/locales/ru/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/ru/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/torrents-status.json b/public/locales/ru/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/ru/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/ru/modules/weather.json b/public/locales/ru/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/ru/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/ru/settings/common.json b/public/locales/ru/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/ru/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/app-width.json b/public/locales/ru/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/ru/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/color-selector.json b/public/locales/ru/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/ru/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/opacity-selector.json b/public/locales/ru/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/ru/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/ru/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/shade-selector.json b/public/locales/ru/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/ru/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/color-schema.json b/public/locales/ru/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/ru/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/config-changer.json b/public/locales/ru/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/ru/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/internationalization.json b/public/locales/ru/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/ru/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/module-enabler.json b/public/locales/ru/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/ru/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/search-engine.json b/public/locales/ru/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/ru/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/theme-selector.json b/public/locales/ru/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/ru/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/ru/settings/general/widget-positions.json b/public/locales/ru/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/ru/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/sv/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/sv/layout/add-service-app-shelf.json b/public/locales/sv/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/sv/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/layout/app-shelf-menu.json b/public/locales/sv/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/sv/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/sv/layout/app-shelf.json b/public/locales/sv/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/sv/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/calendar.json b/public/locales/sv/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/sv/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/common-media-cards.json b/public/locales/sv/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/sv/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/common.json b/public/locales/sv/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/sv/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/dashdot.json b/public/locales/sv/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/sv/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/date.json b/public/locales/sv/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/sv/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/dlspeed.json b/public/locales/sv/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/sv/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/docker.json b/public/locales/sv/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/sv/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/overseerr.json b/public/locales/sv/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/sv/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/ping.json b/public/locales/sv/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/sv/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/search.json b/public/locales/sv/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/sv/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/torrents-status.json b/public/locales/sv/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/sv/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/sv/modules/weather.json b/public/locales/sv/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/sv/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/sv/settings/common.json b/public/locales/sv/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/sv/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/app-width.json b/public/locales/sv/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/sv/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/color-selector.json b/public/locales/sv/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/sv/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/opacity-selector.json b/public/locales/sv/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/sv/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/page-appearance.json b/public/locales/sv/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/sv/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/shade-selector.json b/public/locales/sv/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/sv/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/color-schema.json b/public/locales/sv/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/sv/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/config-changer.json b/public/locales/sv/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/sv/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/internationalization.json b/public/locales/sv/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/sv/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/module-enabler.json b/public/locales/sv/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/sv/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/search-engine.json b/public/locales/sv/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/sv/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/theme-selector.json b/public/locales/sv/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/sv/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/sv/settings/general/widget-positions.json b/public/locales/sv/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/sv/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json deleted file mode 100644 index 9a0b9a9d9..000000000 --- a/public/locales/zh/common.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "actions": { - "save": "Save" - }, - "tip": "Tip: " -} \ No newline at end of file diff --git a/public/locales/zh/layout/add-service-app-shelf.json b/public/locales/zh/layout/add-service-app-shelf.json deleted file mode 100644 index ca88e1f31..000000000 --- a/public/locales/zh/layout/add-service-app-shelf.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { - "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" - } - }, - "tabs": { - "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" - }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } - }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - } - } - } - }, - "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/layout/app-shelf-menu.json b/public/locales/zh/layout/app-shelf-menu.json deleted file mode 100644 index 006e906c2..000000000 --- a/public/locales/zh/layout/app-shelf-menu.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "modal": { - "title": "Modify a service", - "buttons": { - "save": "Save service" - } - }, - "menu": { - "labels": { - "settings": "Settings", - "dangerZone": "Danger zone" - }, - "actions": { - "edit": "Edit", - "delete": "Delete" - } - } -} \ No newline at end of file diff --git a/public/locales/zh/layout/app-shelf.json b/public/locales/zh/layout/app-shelf.json deleted file mode 100644 index 3297ffe7d..000000000 --- a/public/locales/zh/layout/app-shelf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "accordions": { - "downloads": { - "text": "Your downloads" - }, - "others": { - "text": "Others" - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/calendar.json b/public/locales/zh/modules/calendar.json deleted file mode 100644 index d470eabe9..000000000 --- a/public/locales/zh/modules/calendar.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Calendar", - "description": "A calendar module for displaying upcoming releases. It interacts with the Sonarr and Radarr API.", - "settings": { - "sundayStart": { - "label": "Start the week on Sunday" - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/common-media-cards.json b/public/locales/zh/modules/common-media-cards.json deleted file mode 100644 index b9bbbc537..000000000 --- a/public/locales/zh/modules/common-media-cards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "buttons": { - "play": "Play", - "request": "Request" - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/common.json b/public/locales/zh/modules/common.json deleted file mode 100644 index 3f4b36b03..000000000 --- a/public/locales/zh/modules/common.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "settings": { - "label": "Settings" - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json deleted file mode 100644 index dd1486b43..000000000 --- a/public/locales/zh/modules/dashdot.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "descriptor": { - "name": "Dash.", - "description": "A module for displaying the graphs of your running Dash. instance.", - "settings": { - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs", - "options": { - "cpu": "CPU", - "ram": "RAM", - "storage": "Storage", - "network": "Network", - "gpu": "GPU" - } - }, - "url": { - "label": "Dash. URL" - } - } - }, - "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/date.json b/public/locales/zh/modules/date.json deleted file mode 100644 index 521e220a4..000000000 --- a/public/locales/zh/modules/date.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Date", - "description": "Show the current time and date in a card", - "settings": { - "display24HourFormat": { - "label": "Display full time (24-hour)" - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/dlspeed.json b/public/locales/zh/modules/dlspeed.json deleted file mode 100644 index ab0c23c98..000000000 --- a/public/locales/zh/modules/dlspeed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "descriptor": { - "name": "Download Speed", - "description": "Show the current download speed of supported services" - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/docker.json b/public/locales/zh/modules/docker.json deleted file mode 100644 index a4d738b61..000000000 --- a/public/locales/zh/modules/docker.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "descriptor": { - "name": "Docker", - "description": "Allows you to easily manage your torrents" - }, - "search": { - "placeholder": "Search by container or image name" - }, - "table": { - "header": { - "name": "Name", - "image": "Image", - "ports": "Ports", - "state": "State" - }, - "body": { - "portCollapse": "{{ports}} more" - }, - "states": { - "running": "Running", - "created": "Created", - "stopped": "Stopped", - "unknown": "Unknown" - } - }, - "actionBar": { - "addService": { - "title": "Add service", - "message": "Add service to Homarr" - }, - "restart": { - "title": "Restart" - }, - "stop": { - "title": "Stop" - }, - "start": { - "title": "Start" - }, - "refreshData": "Refresh data", - "addToHomarr": { - "title": "Add to Homarr" - }, - "remove": { - "title": "Remove" - } - }, - "messages": { - "successfullyExecuted": { - "title": "Container {{containerName}} {{action}}ed", - "message": "Your container was successfully {{action}}ed" - } - }, - "errors": { - "integrationFailed": { - "title": "Docker integration failed", - "message": "Did you forget to mount the docker socket ?" - }, - "unknownError": { - "title": "There was an error" - }, - "oneServiceAtATime": { - "title": "Please only add one service at a time!" - } - }, - "actionIcon": { - "tooltip": "Docker" - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/overseerr.json b/public/locales/zh/modules/overseerr.json deleted file mode 100644 index e7b44289e..000000000 --- a/public/locales/zh/modules/overseerr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "descriptor": { - "name": "Overseerr", - "description": "Allows you to search and add media from Overseerr/Jellyseerr" - }, - "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/ping.json b/public/locales/zh/modules/ping.json deleted file mode 100644 index 403c8027b..000000000 --- a/public/locales/zh/modules/ping.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "descriptor": { - "name": "Ping", - "description": "Allows you to check if the service is up or returns a specific HTTP status code." - }, - "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Loading..." - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/search.json b/public/locales/zh/modules/search.json deleted file mode 100644 index 0476bb186..000000000 --- a/public/locales/zh/modules/search.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "descriptor": { - "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" - }, - "input": { - "placeholder": "Search the web..." - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/torrents-status.json b/public/locales/zh/modules/torrents-status.json deleted file mode 100644 index 7e8970a92..000000000 --- a/public/locales/zh/modules/torrents-status.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "descriptor": { - "name": "Torrent", - "description": "Show the current download speed of supported services", - "settings": { - "hideComplete": { - "label": "Hide completed torrents" - } - } - }, - "card": { - "table": { - "header": { - "name": "Name", - "size": "Size", - "download": "Down", - "upload": "Up", - "estimatedTimeOfArrival": "ETA", - "progress": "Progress" - }, - "body": { - "nothingFound": "No torrents found" - } - }, - "lineChart": { - "title": "Current download speed", - "download": "Download: {{download}}", - "upload": "Upload: {{upload}}", - "timeSpan": "{{seconds}} seconds ago", - "totalDownload": "Download: {{download}}/s", - "totalUpload": "Upload: {{upload}}/s" - }, - "errors": { - "noDownloadClients": { - "title": "No supported download clients found!", - "text": "Add a download service to view your current downloads" - } - } - } -} \ No newline at end of file diff --git a/public/locales/zh/modules/weather.json b/public/locales/zh/modules/weather.json deleted file mode 100644 index 405c36263..000000000 --- a/public/locales/zh/modules/weather.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "descriptor": { - "name": "Weather", - "description": "Look up the current weather in your location", - "settings": { - "displayInFahrenheit": { - "label": "Display in Fahrenheit" - }, - "location": { - "label": "Weather location" - } - } - }, - "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } -} \ No newline at end of file diff --git a/public/locales/zh/settings/common.json b/public/locales/zh/settings/common.json deleted file mode 100644 index 776816b2a..000000000 --- a/public/locales/zh/settings/common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Settings", - "tooltip": "Settings", - "tabs": { - "common": "Common", - "customizations": "Customizations" - }, - "tips": { - "configTip": "Upload your config file by dragging and dropping it onto the page!" - }, - "credits": { - "madeWithLove": "Made with ❤️ by @" - } -} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/app-width.json b/public/locales/zh/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/zh/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/color-selector.json b/public/locales/zh/settings/customization/color-selector.json deleted file mode 100644 index d66bbfe6e..000000000 --- a/public/locales/zh/settings/customization/color-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "suffix": "{{color}} color" -} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/opacity-selector.json b/public/locales/zh/settings/customization/opacity-selector.json deleted file mode 100644 index edd46daea..000000000 --- a/public/locales/zh/settings/customization/opacity-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Opacity" -} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/page-appearance.json b/public/locales/zh/settings/customization/page-appearance.json deleted file mode 100644 index 051c11d86..000000000 --- a/public/locales/zh/settings/customization/page-appearance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pageTitle": { - "label": "Page Title", - "placeholder": "Homarr 🦞" - }, - "logo": { - "label": "Logo", - "placeholder": "/img/logo.png" - }, - "favicon": { - "label": "Favicon", - "placeholder": "/favicon.png" - }, - "background": { - "label": "Background", - "placeholder": "/img/background.png" - }, - "buttons": { - "submit": "Submit" - } -} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/shade-selector.json b/public/locales/zh/settings/customization/shade-selector.json deleted file mode 100644 index 076aee080..000000000 --- a/public/locales/zh/settings/customization/shade-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Shade" -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/color-schema.json b/public/locales/zh/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/zh/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/config-changer.json b/public/locales/zh/settings/general/config-changer.json deleted file mode 100644 index ad4ac012d..000000000 --- a/public/locales/zh/settings/general/config-changer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "configSelect": { - "label": "Config loader" - }, - "modal": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "text": "Drag files here to upload a config. Support for JSON only." - }, - "reject": { - "text": "This file format is not supported. Please only upload JSON." - } - } -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/internationalization.json b/public/locales/zh/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/zh/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/module-enabler.json b/public/locales/zh/settings/general/module-enabler.json deleted file mode 100644 index 179753b6f..000000000 --- a/public/locales/zh/settings/general/module-enabler.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Module enabler" -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/search-engine.json b/public/locales/zh/settings/general/search-engine.json deleted file mode 100644 index 42f708ffb..000000000 --- a/public/locales/zh/settings/general/search-engine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Search engine", - "tips": { - "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/theme-selector.json b/public/locales/zh/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/zh/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/zh/settings/general/widget-positions.json b/public/locales/zh/settings/general/widget-positions.json deleted file mode 100644 index 746578cce..000000000 --- a/public/locales/zh/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on left" -} \ No newline at end of file From 96d76cfd1419234125e8a13020acbbc1b68f3d37 Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Sat, 27 Aug 2022 19:26:48 +0200 Subject: [PATCH 16/32] Update next-i18next.config.js --- next-i18next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/next-i18next.config.js b/next-i18next.config.js index a503cd30c..6ab97a6f6 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -3,7 +3,7 @@ module.exports = { debug: process.env.NODE_ENV === 'development', i18n: { defaultLocale: 'en', - locales: ['en', 'de', 'es', 'fr', 'it', 'ja', 'nl', 'ru', 'sv', 'zh'], + locales: ['en', 'de', 'en', 'es', 'fr', 'it', 'ja', 'nl', 'pl', 'ru', 'sl', 'sv', 'zh'], localeDetection: true, }, reloadOnPrerender: process.env.NODE_ENV === 'development', From e771e31873de5bd70a06af11a850b4757afba8fb Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 28 Aug 2022 16:28:17 +0200 Subject: [PATCH 17/32] =?UTF-8?q?=F0=9F=90=9B=20fix=20language=20switch=20?= =?UTF-8?q?and=20add=20search?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- next-i18next.config.js | 2 ++ src/components/Settings/LanguageSwitch.tsx | 12 +++++++++++- src/languages/language.ts | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/next-i18next.config.js b/next-i18next.config.js index 6ab97a6f6..9c876f550 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -4,7 +4,9 @@ module.exports = { i18n: { defaultLocale: 'en', locales: ['en', 'de', 'en', 'es', 'fr', 'it', 'ja', 'nl', 'pl', 'ru', 'sl', 'sv', 'zh'], + fallbackLng: 'en', localeDetection: true, + returnEmptyString: false }, reloadOnPrerender: process.env.NODE_ENV === 'development', }; diff --git a/src/components/Settings/LanguageSwitch.tsx b/src/components/Settings/LanguageSwitch.tsx index 01e2ecfec..c9334c0b4 100644 --- a/src/components/Settings/LanguageSwitch.tsx +++ b/src/components/Settings/LanguageSwitch.tsx @@ -12,7 +12,7 @@ export default function LanguageSwitch() { const { t, i18n } = useTranslation('settings/general/internationalization'); const { changeLanguage } = i18n; const configLocale = getCookie('config-locale'); - const { locale, locales } = useRouter(); + const { locale, locales, push } = useRouter(); const [selectedLanguage, setSelectedLanguage] = useState( (configLocale as string) ?? locale ?? 'en' ); @@ -37,6 +37,8 @@ export default function LanguageSwitch() { sameSite: 'strict', }); + push('/', '/', { locale: value }); + showNotification({ title: 'Language changed', message: `You changed the language to '${newLanguage.originalName}'`, @@ -65,6 +67,14 @@ export default function LanguageSwitch() { onChange={onChangeSelect} value={selectedLanguage} defaultValue={locale} + searchable + filter={(value, item) => { + const selectItems = item as unknown as { value: string, language: Language }; + return ( + selectItems.language.originalName.trim().includes(value.trim()) || + selectItems.language.translatedName.trim().includes(value.trim()) + ); + }} styles={{ icon: { width: 42, diff --git a/src/languages/language.ts b/src/languages/language.ts index c292ea53b..d2cbc5d59 100644 --- a/src/languages/language.ts +++ b/src/languages/language.ts @@ -64,4 +64,4 @@ const languages: Language[] = [ ]; export const getLanguageByCode = (code: string | null) => - languages.find((language) => language.shortName === code) ?? languages[-1]; + languages.find((language) => language.shortName === code) ?? languages[languages.length - 1]; From 3747e482edcce551ef2c090549463789c70ce7e4 Mon Sep 17 00:00:00 2001 From: Fabricio Augusto Date: Mon, 29 Aug 2022 15:47:14 +0100 Subject: [PATCH 18/32] Fix integrations url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9699df517..1ac1b4abd 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Homarr is a simple and lightweight homepage for your server, that helps you easi It integrates with the services you use to display information on the homepage (E.g. Show upcoming Sonarr/Radarr releases). -For a full list of integrations, [head over to our documentation](https://homarr.vercel.app/docs/advanced-features/integrations). +For a full list of integrations, [head over to our documentation](https://homarr.vercel.app/docs/advanced-configuration/integrations). If you have any questions about Homarr or want to share information with us, please go to one of the following places: From c9b33f3e4821f03e381b24836a5dc32a4cb798c5 Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 28 Aug 2022 16:28:17 +0200 Subject: [PATCH 19/32] =?UTF-8?q?=F0=9F=8C=90=20add=20crowdin=20translatio?= =?UTF-8?q?ns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- next-i18next.config.js | 2 + .../de/layout/add-service-app-shelf.json | 208 +++++++++--------- .../de/modules/common-media-cards.json | 6 +- public/locales/de/modules/common.json | 5 + public/locales/de/modules/dashdot.json | 84 ++++--- public/locales/de/modules/date.json | 11 + public/locales/de/modules/dlspeed.json | 6 + public/locales/de/modules/docker.json | 69 ++++++ public/locales/de/modules/overseerr.json | 46 ++-- public/locales/de/modules/ping.json | 8 +- public/locales/de/modules/search.json | 8 +- .../locales/de/modules/torrents-status.json | 13 +- public/locales/de/modules/weather.json | 46 ++-- public/locales/de/settings/common.json | 6 +- .../de/settings/general/config-changer.json | 6 +- .../de/settings/general/search-engine.json | 16 +- .../en/layout/add-service-app-shelf.json | 208 +++++++++--------- .../en/modules/common-media-cards.json | 6 +- public/locales/en/modules/dashdot.json | 54 ++--- public/locales/en/modules/overseerr.json | 42 ++-- public/locales/en/modules/search.json | 6 +- public/locales/en/modules/weather.json | 34 +-- .../en/settings/general/search-engine.json | 16 +- public/locales/es/common.json | 6 + .../es/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/es/layout/app-shelf-menu.json | 18 ++ public/locales/es/layout/app-shelf.json | 10 + public/locales/es/modules/calendar.json | 11 + .../es/modules/common-media-cards.json | 6 + public/locales/es/modules/common.json | 5 + public/locales/es/modules/dashdot.json | 60 +++++ public/locales/es/modules/date.json | 11 + public/locales/es/modules/dlspeed.json | 6 + public/locales/es/modules/docker.json | 69 ++++++ public/locales/es/modules/overseerr.json | 30 +++ public/locales/es/modules/ping.json | 11 + public/locales/es/modules/search.json | 9 + .../locales/es/modules/torrents-status.json | 40 ++++ public/locales/es/modules/weather.json | 32 +++ public/locales/es/settings/common.json | 14 ++ .../es/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 3 + .../customization/opacity-selector.json | 3 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 3 + .../es/settings/general/color-schema.json | 3 + .../es/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 3 + .../es/settings/general/module-enabler.json | 1 + .../es/settings/general/search-engine.json | 11 + .../es/settings/general/theme-selector.json | 3 + .../es/settings/general/widget-positions.json | 1 + public/locales/fr/common.json | 6 + .../fr/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/fr/layout/app-shelf-menu.json | 18 ++ public/locales/fr/layout/app-shelf.json | 10 + public/locales/fr/modules/calendar.json | 11 + .../fr/modules/common-media-cards.json | 6 + public/locales/fr/modules/common.json | 5 + public/locales/fr/modules/dashdot.json | 60 +++++ public/locales/fr/modules/date.json | 11 + public/locales/fr/modules/dlspeed.json | 6 + public/locales/fr/modules/docker.json | 69 ++++++ public/locales/fr/modules/overseerr.json | 30 +++ public/locales/fr/modules/ping.json | 11 + public/locales/fr/modules/search.json | 9 + .../locales/fr/modules/torrents-status.json | 40 ++++ public/locales/fr/modules/weather.json | 32 +++ public/locales/fr/settings/common.json | 14 ++ .../fr/settings/customization/app-width.json | 3 + .../customization/color-selector.json | 3 + .../customization/opacity-selector.json | 3 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 3 + .../fr/settings/general/color-schema.json | 3 + .../fr/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 3 + .../fr/settings/general/module-enabler.json | 3 + .../fr/settings/general/search-engine.json | 11 + .../fr/settings/general/theme-selector.json | 3 + .../fr/settings/general/widget-positions.json | 3 + public/locales/it/common.json | 6 + .../it/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/it/layout/app-shelf-menu.json | 18 ++ public/locales/it/layout/app-shelf.json | 10 + public/locales/it/modules/calendar.json | 11 + .../it/modules/common-media-cards.json | 6 + public/locales/it/modules/common.json | 5 + public/locales/it/modules/dashdot.json | 60 +++++ public/locales/it/modules/date.json | 11 + public/locales/it/modules/dlspeed.json | 6 + public/locales/it/modules/docker.json | 69 ++++++ public/locales/it/modules/overseerr.json | 30 +++ public/locales/it/modules/ping.json | 11 + public/locales/it/modules/search.json | 9 + .../locales/it/modules/torrents-status.json | 40 ++++ public/locales/it/modules/weather.json | 32 +++ public/locales/it/settings/common.json | 14 ++ .../it/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../it/settings/general/color-schema.json | 1 + .../it/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 1 + .../it/settings/general/module-enabler.json | 1 + .../it/settings/general/search-engine.json | 11 + .../it/settings/general/theme-selector.json | 1 + .../it/settings/general/widget-positions.json | 1 + public/locales/ja/common.json | 6 + .../ja/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/ja/layout/app-shelf-menu.json | 18 ++ public/locales/ja/layout/app-shelf.json | 10 + public/locales/ja/modules/calendar.json | 11 + .../ja/modules/common-media-cards.json | 6 + public/locales/ja/modules/common.json | 5 + public/locales/ja/modules/dashdot.json | 60 +++++ public/locales/ja/modules/date.json | 11 + public/locales/ja/modules/dlspeed.json | 6 + public/locales/ja/modules/docker.json | 69 ++++++ public/locales/ja/modules/overseerr.json | 30 +++ public/locales/ja/modules/ping.json | 11 + public/locales/ja/modules/search.json | 9 + .../locales/ja/modules/torrents-status.json | 40 ++++ public/locales/ja/modules/weather.json | 32 +++ public/locales/ja/settings/common.json | 14 ++ .../ja/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../ja/settings/general/color-schema.json | 1 + .../ja/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 1 + .../ja/settings/general/module-enabler.json | 1 + .../ja/settings/general/search-engine.json | 11 + .../ja/settings/general/theme-selector.json | 1 + .../ja/settings/general/widget-positions.json | 1 + public/locales/nl/common.json | 6 + .../nl/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/nl/layout/app-shelf-menu.json | 18 ++ public/locales/nl/layout/app-shelf.json | 10 + public/locales/nl/modules/calendar.json | 11 + .../nl/modules/common-media-cards.json | 6 + public/locales/nl/modules/common.json | 5 + public/locales/nl/modules/dashdot.json | 60 +++++ public/locales/nl/modules/date.json | 11 + public/locales/nl/modules/dlspeed.json | 6 + public/locales/nl/modules/docker.json | 69 ++++++ public/locales/nl/modules/overseerr.json | 30 +++ public/locales/nl/modules/ping.json | 11 + public/locales/nl/modules/search.json | 9 + .../locales/nl/modules/torrents-status.json | 40 ++++ public/locales/nl/modules/weather.json | 32 +++ public/locales/nl/settings/common.json | 14 ++ .../nl/settings/customization/app-width.json | 3 + .../customization/color-selector.json | 3 + .../customization/opacity-selector.json | 3 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 3 + .../nl/settings/general/color-schema.json | 3 + .../nl/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 3 + .../nl/settings/general/module-enabler.json | 3 + .../nl/settings/general/search-engine.json | 11 + .../nl/settings/general/theme-selector.json | 3 + .../nl/settings/general/widget-positions.json | 3 + public/locales/pl/common.json | 6 + .../pl/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/pl/layout/app-shelf-menu.json | 18 ++ public/locales/pl/layout/app-shelf.json | 10 + public/locales/pl/modules/calendar.json | 11 + .../pl/modules/common-media-cards.json | 6 + public/locales/pl/modules/common.json | 5 + public/locales/pl/modules/dashdot.json | 60 +++++ public/locales/pl/modules/date.json | 11 + public/locales/pl/modules/dlspeed.json | 6 + public/locales/pl/modules/docker.json | 69 ++++++ public/locales/pl/modules/overseerr.json | 30 +++ public/locales/pl/modules/ping.json | 11 + public/locales/pl/modules/search.json | 9 + .../locales/pl/modules/torrents-status.json | 40 ++++ public/locales/pl/modules/weather.json | 32 +++ public/locales/pl/settings/common.json | 14 ++ .../pl/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../pl/settings/general/color-schema.json | 1 + .../pl/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 3 + .../pl/settings/general/module-enabler.json | 1 + .../pl/settings/general/search-engine.json | 11 + .../pl/settings/general/theme-selector.json | 1 + .../pl/settings/general/widget-positions.json | 1 + public/locales/ru/common.json | 6 + .../ru/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/ru/layout/app-shelf-menu.json | 18 ++ public/locales/ru/layout/app-shelf.json | 10 + public/locales/ru/modules/calendar.json | 11 + .../ru/modules/common-media-cards.json | 6 + public/locales/ru/modules/common.json | 5 + public/locales/ru/modules/dashdot.json | 60 +++++ public/locales/ru/modules/date.json | 11 + public/locales/ru/modules/dlspeed.json | 6 + public/locales/ru/modules/docker.json | 69 ++++++ public/locales/ru/modules/overseerr.json | 30 +++ public/locales/ru/modules/ping.json | 11 + public/locales/ru/modules/search.json | 9 + .../locales/ru/modules/torrents-status.json | 40 ++++ public/locales/ru/modules/weather.json | 32 +++ public/locales/ru/settings/common.json | 14 ++ .../ru/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../ru/settings/general/color-schema.json | 3 + .../ru/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 1 + .../ru/settings/general/module-enabler.json | 1 + .../ru/settings/general/search-engine.json | 11 + .../ru/settings/general/theme-selector.json | 1 + .../ru/settings/general/widget-positions.json | 1 + public/locales/sl/common.json | 6 + .../sl/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/sl/layout/app-shelf-menu.json | 18 ++ public/locales/sl/layout/app-shelf.json | 10 + public/locales/sl/modules/calendar.json | 11 + .../sl/modules/common-media-cards.json | 6 + public/locales/sl/modules/common.json | 5 + public/locales/sl/modules/dashdot.json | 60 +++++ public/locales/sl/modules/date.json | 11 + public/locales/sl/modules/dlspeed.json | 6 + public/locales/sl/modules/docker.json | 69 ++++++ public/locales/sl/modules/overseerr.json | 30 +++ public/locales/sl/modules/ping.json | 11 + public/locales/sl/modules/search.json | 9 + .../locales/sl/modules/torrents-status.json | 40 ++++ public/locales/sl/modules/weather.json | 32 +++ public/locales/sl/settings/common.json | 14 ++ .../sl/settings/customization/app-width.json | 3 + .../customization/color-selector.json | 3 + .../customization/opacity-selector.json | 3 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 3 + .../sl/settings/general/color-schema.json | 3 + .../sl/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 3 + .../sl/settings/general/module-enabler.json | 3 + .../sl/settings/general/search-engine.json | 11 + .../sl/settings/general/theme-selector.json | 3 + .../sl/settings/general/widget-positions.json | 3 + public/locales/sv/common.json | 6 + .../sv/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/sv/layout/app-shelf-menu.json | 18 ++ public/locales/sv/layout/app-shelf.json | 10 + public/locales/sv/modules/calendar.json | 11 + .../sv/modules/common-media-cards.json | 6 + public/locales/sv/modules/common.json | 5 + public/locales/sv/modules/dashdot.json | 60 +++++ public/locales/sv/modules/date.json | 11 + public/locales/sv/modules/dlspeed.json | 6 + public/locales/sv/modules/docker.json | 69 ++++++ public/locales/sv/modules/overseerr.json | 30 +++ public/locales/sv/modules/ping.json | 11 + public/locales/sv/modules/search.json | 9 + .../locales/sv/modules/torrents-status.json | 40 ++++ public/locales/sv/modules/weather.json | 32 +++ public/locales/sv/settings/common.json | 14 ++ .../sv/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../sv/settings/general/color-schema.json | 1 + .../sv/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 1 + .../sv/settings/general/module-enabler.json | 1 + .../sv/settings/general/search-engine.json | 11 + .../sv/settings/general/theme-selector.json | 1 + .../sv/settings/general/widget-positions.json | 1 + public/locales/zh/common.json | 6 + .../zh/layout/add-service-app-shelf.json | 118 ++++++++++ public/locales/zh/layout/app-shelf-menu.json | 18 ++ public/locales/zh/layout/app-shelf.json | 10 + public/locales/zh/modules/calendar.json | 11 + .../zh/modules/common-media-cards.json | 6 + public/locales/zh/modules/common.json | 5 + public/locales/zh/modules/dashdot.json | 60 +++++ public/locales/zh/modules/date.json | 11 + public/locales/zh/modules/dlspeed.json | 6 + public/locales/zh/modules/docker.json | 69 ++++++ public/locales/zh/modules/overseerr.json | 30 +++ public/locales/zh/modules/ping.json | 11 + public/locales/zh/modules/search.json | 9 + .../locales/zh/modules/torrents-status.json | 40 ++++ public/locales/zh/modules/weather.json | 32 +++ public/locales/zh/settings/common.json | 14 ++ .../zh/settings/customization/app-width.json | 1 + .../customization/color-selector.json | 1 + .../customization/opacity-selector.json | 1 + .../customization/page-appearance.json | 21 ++ .../customization/shade-selector.json | 1 + .../zh/settings/general/color-schema.json | 1 + .../zh/settings/general/config-changer.json | 55 +++++ .../general/internationalization.json | 1 + .../zh/settings/general/module-enabler.json | 1 + .../zh/settings/general/search-engine.json | 11 + .../zh/settings/general/theme-selector.json | 1 + .../zh/settings/general/widget-positions.json | 1 + src/components/Settings/LanguageSwitch.tsx | 12 +- src/languages/language.ts | 2 +- 315 files changed, 6130 insertions(+), 380 deletions(-) create mode 100644 public/locales/de/modules/common.json create mode 100644 public/locales/de/modules/date.json create mode 100644 public/locales/de/modules/dlspeed.json create mode 100644 public/locales/de/modules/docker.json create mode 100644 public/locales/es/common.json create mode 100644 public/locales/es/layout/add-service-app-shelf.json create mode 100644 public/locales/es/layout/app-shelf-menu.json create mode 100644 public/locales/es/layout/app-shelf.json create mode 100644 public/locales/es/modules/calendar.json create mode 100644 public/locales/es/modules/common-media-cards.json create mode 100644 public/locales/es/modules/common.json create mode 100644 public/locales/es/modules/dashdot.json create mode 100644 public/locales/es/modules/date.json create mode 100644 public/locales/es/modules/dlspeed.json create mode 100644 public/locales/es/modules/docker.json create mode 100644 public/locales/es/modules/overseerr.json create mode 100644 public/locales/es/modules/ping.json create mode 100644 public/locales/es/modules/search.json create mode 100644 public/locales/es/modules/torrents-status.json create mode 100644 public/locales/es/modules/weather.json create mode 100644 public/locales/es/settings/common.json create mode 100644 public/locales/es/settings/customization/app-width.json create mode 100644 public/locales/es/settings/customization/color-selector.json create mode 100644 public/locales/es/settings/customization/opacity-selector.json create mode 100644 public/locales/es/settings/customization/page-appearance.json create mode 100644 public/locales/es/settings/customization/shade-selector.json create mode 100644 public/locales/es/settings/general/color-schema.json create mode 100644 public/locales/es/settings/general/config-changer.json create mode 100644 public/locales/es/settings/general/internationalization.json create mode 100644 public/locales/es/settings/general/module-enabler.json create mode 100644 public/locales/es/settings/general/search-engine.json create mode 100644 public/locales/es/settings/general/theme-selector.json create mode 100644 public/locales/es/settings/general/widget-positions.json create mode 100644 public/locales/fr/common.json create mode 100644 public/locales/fr/layout/add-service-app-shelf.json create mode 100644 public/locales/fr/layout/app-shelf-menu.json create mode 100644 public/locales/fr/layout/app-shelf.json create mode 100644 public/locales/fr/modules/calendar.json create mode 100644 public/locales/fr/modules/common-media-cards.json create mode 100644 public/locales/fr/modules/common.json create mode 100644 public/locales/fr/modules/dashdot.json create mode 100644 public/locales/fr/modules/date.json create mode 100644 public/locales/fr/modules/dlspeed.json create mode 100644 public/locales/fr/modules/docker.json create mode 100644 public/locales/fr/modules/overseerr.json create mode 100644 public/locales/fr/modules/ping.json create mode 100644 public/locales/fr/modules/search.json create mode 100644 public/locales/fr/modules/torrents-status.json create mode 100644 public/locales/fr/modules/weather.json create mode 100644 public/locales/fr/settings/common.json create mode 100644 public/locales/fr/settings/customization/app-width.json create mode 100644 public/locales/fr/settings/customization/color-selector.json create mode 100644 public/locales/fr/settings/customization/opacity-selector.json create mode 100644 public/locales/fr/settings/customization/page-appearance.json create mode 100644 public/locales/fr/settings/customization/shade-selector.json create mode 100644 public/locales/fr/settings/general/color-schema.json create mode 100644 public/locales/fr/settings/general/config-changer.json create mode 100644 public/locales/fr/settings/general/internationalization.json create mode 100644 public/locales/fr/settings/general/module-enabler.json create mode 100644 public/locales/fr/settings/general/search-engine.json create mode 100644 public/locales/fr/settings/general/theme-selector.json create mode 100644 public/locales/fr/settings/general/widget-positions.json create mode 100644 public/locales/it/common.json create mode 100644 public/locales/it/layout/add-service-app-shelf.json create mode 100644 public/locales/it/layout/app-shelf-menu.json create mode 100644 public/locales/it/layout/app-shelf.json create mode 100644 public/locales/it/modules/calendar.json create mode 100644 public/locales/it/modules/common-media-cards.json create mode 100644 public/locales/it/modules/common.json create mode 100644 public/locales/it/modules/dashdot.json create mode 100644 public/locales/it/modules/date.json create mode 100644 public/locales/it/modules/dlspeed.json create mode 100644 public/locales/it/modules/docker.json create mode 100644 public/locales/it/modules/overseerr.json create mode 100644 public/locales/it/modules/ping.json create mode 100644 public/locales/it/modules/search.json create mode 100644 public/locales/it/modules/torrents-status.json create mode 100644 public/locales/it/modules/weather.json create mode 100644 public/locales/it/settings/common.json create mode 100644 public/locales/it/settings/customization/app-width.json create mode 100644 public/locales/it/settings/customization/color-selector.json create mode 100644 public/locales/it/settings/customization/opacity-selector.json create mode 100644 public/locales/it/settings/customization/page-appearance.json create mode 100644 public/locales/it/settings/customization/shade-selector.json create mode 100644 public/locales/it/settings/general/color-schema.json create mode 100644 public/locales/it/settings/general/config-changer.json create mode 100644 public/locales/it/settings/general/internationalization.json create mode 100644 public/locales/it/settings/general/module-enabler.json create mode 100644 public/locales/it/settings/general/search-engine.json create mode 100644 public/locales/it/settings/general/theme-selector.json create mode 100644 public/locales/it/settings/general/widget-positions.json create mode 100644 public/locales/ja/common.json create mode 100644 public/locales/ja/layout/add-service-app-shelf.json create mode 100644 public/locales/ja/layout/app-shelf-menu.json create mode 100644 public/locales/ja/layout/app-shelf.json create mode 100644 public/locales/ja/modules/calendar.json create mode 100644 public/locales/ja/modules/common-media-cards.json create mode 100644 public/locales/ja/modules/common.json create mode 100644 public/locales/ja/modules/dashdot.json create mode 100644 public/locales/ja/modules/date.json create mode 100644 public/locales/ja/modules/dlspeed.json create mode 100644 public/locales/ja/modules/docker.json create mode 100644 public/locales/ja/modules/overseerr.json create mode 100644 public/locales/ja/modules/ping.json create mode 100644 public/locales/ja/modules/search.json create mode 100644 public/locales/ja/modules/torrents-status.json create mode 100644 public/locales/ja/modules/weather.json create mode 100644 public/locales/ja/settings/common.json create mode 100644 public/locales/ja/settings/customization/app-width.json create mode 100644 public/locales/ja/settings/customization/color-selector.json create mode 100644 public/locales/ja/settings/customization/opacity-selector.json create mode 100644 public/locales/ja/settings/customization/page-appearance.json create mode 100644 public/locales/ja/settings/customization/shade-selector.json create mode 100644 public/locales/ja/settings/general/color-schema.json create mode 100644 public/locales/ja/settings/general/config-changer.json create mode 100644 public/locales/ja/settings/general/internationalization.json create mode 100644 public/locales/ja/settings/general/module-enabler.json create mode 100644 public/locales/ja/settings/general/search-engine.json create mode 100644 public/locales/ja/settings/general/theme-selector.json create mode 100644 public/locales/ja/settings/general/widget-positions.json create mode 100644 public/locales/nl/common.json create mode 100644 public/locales/nl/layout/add-service-app-shelf.json create mode 100644 public/locales/nl/layout/app-shelf-menu.json create mode 100644 public/locales/nl/layout/app-shelf.json create mode 100644 public/locales/nl/modules/calendar.json create mode 100644 public/locales/nl/modules/common-media-cards.json create mode 100644 public/locales/nl/modules/common.json create mode 100644 public/locales/nl/modules/dashdot.json create mode 100644 public/locales/nl/modules/date.json create mode 100644 public/locales/nl/modules/dlspeed.json create mode 100644 public/locales/nl/modules/docker.json create mode 100644 public/locales/nl/modules/overseerr.json create mode 100644 public/locales/nl/modules/ping.json create mode 100644 public/locales/nl/modules/search.json create mode 100644 public/locales/nl/modules/torrents-status.json create mode 100644 public/locales/nl/modules/weather.json create mode 100644 public/locales/nl/settings/common.json create mode 100644 public/locales/nl/settings/customization/app-width.json create mode 100644 public/locales/nl/settings/customization/color-selector.json create mode 100644 public/locales/nl/settings/customization/opacity-selector.json create mode 100644 public/locales/nl/settings/customization/page-appearance.json create mode 100644 public/locales/nl/settings/customization/shade-selector.json create mode 100644 public/locales/nl/settings/general/color-schema.json create mode 100644 public/locales/nl/settings/general/config-changer.json create mode 100644 public/locales/nl/settings/general/internationalization.json create mode 100644 public/locales/nl/settings/general/module-enabler.json create mode 100644 public/locales/nl/settings/general/search-engine.json create mode 100644 public/locales/nl/settings/general/theme-selector.json create mode 100644 public/locales/nl/settings/general/widget-positions.json create mode 100644 public/locales/pl/common.json create mode 100644 public/locales/pl/layout/add-service-app-shelf.json create mode 100644 public/locales/pl/layout/app-shelf-menu.json create mode 100644 public/locales/pl/layout/app-shelf.json create mode 100644 public/locales/pl/modules/calendar.json create mode 100644 public/locales/pl/modules/common-media-cards.json create mode 100644 public/locales/pl/modules/common.json create mode 100644 public/locales/pl/modules/dashdot.json create mode 100644 public/locales/pl/modules/date.json create mode 100644 public/locales/pl/modules/dlspeed.json create mode 100644 public/locales/pl/modules/docker.json create mode 100644 public/locales/pl/modules/overseerr.json create mode 100644 public/locales/pl/modules/ping.json create mode 100644 public/locales/pl/modules/search.json create mode 100644 public/locales/pl/modules/torrents-status.json create mode 100644 public/locales/pl/modules/weather.json create mode 100644 public/locales/pl/settings/common.json create mode 100644 public/locales/pl/settings/customization/app-width.json create mode 100644 public/locales/pl/settings/customization/color-selector.json create mode 100644 public/locales/pl/settings/customization/opacity-selector.json create mode 100644 public/locales/pl/settings/customization/page-appearance.json create mode 100644 public/locales/pl/settings/customization/shade-selector.json create mode 100644 public/locales/pl/settings/general/color-schema.json create mode 100644 public/locales/pl/settings/general/config-changer.json create mode 100644 public/locales/pl/settings/general/internationalization.json create mode 100644 public/locales/pl/settings/general/module-enabler.json create mode 100644 public/locales/pl/settings/general/search-engine.json create mode 100644 public/locales/pl/settings/general/theme-selector.json create mode 100644 public/locales/pl/settings/general/widget-positions.json create mode 100644 public/locales/ru/common.json create mode 100644 public/locales/ru/layout/add-service-app-shelf.json create mode 100644 public/locales/ru/layout/app-shelf-menu.json create mode 100644 public/locales/ru/layout/app-shelf.json create mode 100644 public/locales/ru/modules/calendar.json create mode 100644 public/locales/ru/modules/common-media-cards.json create mode 100644 public/locales/ru/modules/common.json create mode 100644 public/locales/ru/modules/dashdot.json create mode 100644 public/locales/ru/modules/date.json create mode 100644 public/locales/ru/modules/dlspeed.json create mode 100644 public/locales/ru/modules/docker.json create mode 100644 public/locales/ru/modules/overseerr.json create mode 100644 public/locales/ru/modules/ping.json create mode 100644 public/locales/ru/modules/search.json create mode 100644 public/locales/ru/modules/torrents-status.json create mode 100644 public/locales/ru/modules/weather.json create mode 100644 public/locales/ru/settings/common.json create mode 100644 public/locales/ru/settings/customization/app-width.json create mode 100644 public/locales/ru/settings/customization/color-selector.json create mode 100644 public/locales/ru/settings/customization/opacity-selector.json create mode 100644 public/locales/ru/settings/customization/page-appearance.json create mode 100644 public/locales/ru/settings/customization/shade-selector.json create mode 100644 public/locales/ru/settings/general/color-schema.json create mode 100644 public/locales/ru/settings/general/config-changer.json create mode 100644 public/locales/ru/settings/general/internationalization.json create mode 100644 public/locales/ru/settings/general/module-enabler.json create mode 100644 public/locales/ru/settings/general/search-engine.json create mode 100644 public/locales/ru/settings/general/theme-selector.json create mode 100644 public/locales/ru/settings/general/widget-positions.json create mode 100644 public/locales/sl/common.json create mode 100644 public/locales/sl/layout/add-service-app-shelf.json create mode 100644 public/locales/sl/layout/app-shelf-menu.json create mode 100644 public/locales/sl/layout/app-shelf.json create mode 100644 public/locales/sl/modules/calendar.json create mode 100644 public/locales/sl/modules/common-media-cards.json create mode 100644 public/locales/sl/modules/common.json create mode 100644 public/locales/sl/modules/dashdot.json create mode 100644 public/locales/sl/modules/date.json create mode 100644 public/locales/sl/modules/dlspeed.json create mode 100644 public/locales/sl/modules/docker.json create mode 100644 public/locales/sl/modules/overseerr.json create mode 100644 public/locales/sl/modules/ping.json create mode 100644 public/locales/sl/modules/search.json create mode 100644 public/locales/sl/modules/torrents-status.json create mode 100644 public/locales/sl/modules/weather.json create mode 100644 public/locales/sl/settings/common.json create mode 100644 public/locales/sl/settings/customization/app-width.json create mode 100644 public/locales/sl/settings/customization/color-selector.json create mode 100644 public/locales/sl/settings/customization/opacity-selector.json create mode 100644 public/locales/sl/settings/customization/page-appearance.json create mode 100644 public/locales/sl/settings/customization/shade-selector.json create mode 100644 public/locales/sl/settings/general/color-schema.json create mode 100644 public/locales/sl/settings/general/config-changer.json create mode 100644 public/locales/sl/settings/general/internationalization.json create mode 100644 public/locales/sl/settings/general/module-enabler.json create mode 100644 public/locales/sl/settings/general/search-engine.json create mode 100644 public/locales/sl/settings/general/theme-selector.json create mode 100644 public/locales/sl/settings/general/widget-positions.json create mode 100644 public/locales/sv/common.json create mode 100644 public/locales/sv/layout/add-service-app-shelf.json create mode 100644 public/locales/sv/layout/app-shelf-menu.json create mode 100644 public/locales/sv/layout/app-shelf.json create mode 100644 public/locales/sv/modules/calendar.json create mode 100644 public/locales/sv/modules/common-media-cards.json create mode 100644 public/locales/sv/modules/common.json create mode 100644 public/locales/sv/modules/dashdot.json create mode 100644 public/locales/sv/modules/date.json create mode 100644 public/locales/sv/modules/dlspeed.json create mode 100644 public/locales/sv/modules/docker.json create mode 100644 public/locales/sv/modules/overseerr.json create mode 100644 public/locales/sv/modules/ping.json create mode 100644 public/locales/sv/modules/search.json create mode 100644 public/locales/sv/modules/torrents-status.json create mode 100644 public/locales/sv/modules/weather.json create mode 100644 public/locales/sv/settings/common.json create mode 100644 public/locales/sv/settings/customization/app-width.json create mode 100644 public/locales/sv/settings/customization/color-selector.json create mode 100644 public/locales/sv/settings/customization/opacity-selector.json create mode 100644 public/locales/sv/settings/customization/page-appearance.json create mode 100644 public/locales/sv/settings/customization/shade-selector.json create mode 100644 public/locales/sv/settings/general/color-schema.json create mode 100644 public/locales/sv/settings/general/config-changer.json create mode 100644 public/locales/sv/settings/general/internationalization.json create mode 100644 public/locales/sv/settings/general/module-enabler.json create mode 100644 public/locales/sv/settings/general/search-engine.json create mode 100644 public/locales/sv/settings/general/theme-selector.json create mode 100644 public/locales/sv/settings/general/widget-positions.json create mode 100644 public/locales/zh/common.json create mode 100644 public/locales/zh/layout/add-service-app-shelf.json create mode 100644 public/locales/zh/layout/app-shelf-menu.json create mode 100644 public/locales/zh/layout/app-shelf.json create mode 100644 public/locales/zh/modules/calendar.json create mode 100644 public/locales/zh/modules/common-media-cards.json create mode 100644 public/locales/zh/modules/common.json create mode 100644 public/locales/zh/modules/dashdot.json create mode 100644 public/locales/zh/modules/date.json create mode 100644 public/locales/zh/modules/dlspeed.json create mode 100644 public/locales/zh/modules/docker.json create mode 100644 public/locales/zh/modules/overseerr.json create mode 100644 public/locales/zh/modules/ping.json create mode 100644 public/locales/zh/modules/search.json create mode 100644 public/locales/zh/modules/torrents-status.json create mode 100644 public/locales/zh/modules/weather.json create mode 100644 public/locales/zh/settings/common.json create mode 100644 public/locales/zh/settings/customization/app-width.json create mode 100644 public/locales/zh/settings/customization/color-selector.json create mode 100644 public/locales/zh/settings/customization/opacity-selector.json create mode 100644 public/locales/zh/settings/customization/page-appearance.json create mode 100644 public/locales/zh/settings/customization/shade-selector.json create mode 100644 public/locales/zh/settings/general/color-schema.json create mode 100644 public/locales/zh/settings/general/config-changer.json create mode 100644 public/locales/zh/settings/general/internationalization.json create mode 100644 public/locales/zh/settings/general/module-enabler.json create mode 100644 public/locales/zh/settings/general/search-engine.json create mode 100644 public/locales/zh/settings/general/theme-selector.json create mode 100644 public/locales/zh/settings/general/widget-positions.json diff --git a/next-i18next.config.js b/next-i18next.config.js index 6ab97a6f6..9c876f550 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -4,7 +4,9 @@ module.exports = { i18n: { defaultLocale: 'en', locales: ['en', 'de', 'en', 'es', 'fr', 'it', 'ja', 'nl', 'pl', 'ru', 'sl', 'sv', 'zh'], + fallbackLng: 'en', localeDetection: true, + returnEmptyString: false }, reloadOnPrerender: process.env.NODE_ENV === 'development', }; diff --git a/public/locales/de/layout/add-service-app-shelf.json b/public/locales/de/layout/add-service-app-shelf.json index d7a1ffb4c..a66c6d39d 100644 --- a/public/locales/de/layout/add-service-app-shelf.json +++ b/public/locales/de/layout/add-service-app-shelf.json @@ -1,118 +1,118 @@ { - "actionIcon": { - "tooltip": "Einen Service hinzufügen" - }, - "modal": { - "title": "Service hinzufügen", - "form": { + "actionIcon": { + "tooltip": "Einen Service hinzufügen" + }, + "modal": { + "title": "Service hinzufügen", + "form": { "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" + "invalidUrl": "Bitte gebe eine gültige URL an", + "noStatusCodeSelected": "Wähle bitte einen Status Code" } - }, - "tabs": { + }, + "tabs": { "options": { - "title": "Optionen", - "form": { - "serviceName": { - "label": "Service Namen", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "URL bei einem Klick" - }, - "serviceType": { - "label": "Service Typ", - "defaultValue": "Andere", - "placeholder": "Wähle einen Typ aus" - }, - "category": { - "label": "Kategorie", - "placeholder": "Whle eine Kategorie oder erstelle eine neue", - "nothingFound": "Nichts gefunden", - "createLabel": "+ Erstelle {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API Schlüssel", - "placeholder": "Dein API Schlüssel", - "validation": { - "noKey": "Invalider Schlüssel" + "title": "Optionen", + "form": { + "serviceName": { + "label": "Service Name", + "placeholder": "Plex" }, - "tip": { - "text": "Erhalte deinen API Schlüssel", - "link": "hier." - } - }, - "qBittorrent": { - "username": { - "label": "Benutzernamen", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalider Benutzername" - } + "iconUrl": { + "label": "Icon URL" }, - "password": { - "label": "Passwort", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalides Passwort" - } - } - }, - "deluge": { - "password": { - "label": "Passwort", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalides Passwort" - } - } - }, - "transmission": { - "username": { - "label": "Benutzername", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalider Benutzername" - } + "serviceUrl": { + "label": "Service URL" }, - "password": { - "label": "Passwort", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalides Passwort" - } + "onClickUrl": { + "label": "URL bei einem Klick" + }, + "serviceType": { + "label": "Service Typ", + "defaultValue": "Andere", + "placeholder": "Wähle einen Typ aus" + }, + "category": { + "label": "Kategorie", + "placeholder": "Wähle eine Kategorie oder erstelle eine neue", + "nothingFound": "Nichts gefunden", + "createLabel": "+ Erstelle {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API Schlüssel", + "placeholder": "Dein API Schlüssel", + "validation": { + "noKey": "Invalider Schlüssel" + }, + "tip": { + "text": "Erhalte deinen API Schlüssel", + "link": "hier." + } + }, + "qBittorrent": { + "username": { + "label": "Benutzername", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalider Benutzername" + } + }, + "password": { + "label": "Passwort", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Ungültiges Passwort" + } + } + }, + "deluge": { + "password": { + "label": "Passwort", + "placeholder": "passwort", + "validation": { + "invalidPassword": "Invalides Passwort" + } + } + }, + "transmission": { + "username": { + "label": "Benutzername", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalider Benutzername" + } + }, + "password": { + "label": "Passwort", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalides Passwort" + } + } + } } - } } - } }, "advancedOptions": { - "title": "Weitere Optionen", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Nummern", - "placeholder": "Wähle eine valide Status Nummer", - "clearButtonLabel": "Auswahl löschen", - "nothingFound": "Nichts gefunden" - }, - "openServiceInNewTab": { - "label": "Serivce in einem neuen Tab öffnen" - }, - "buttons": { - "submit": { - "content": "Service hinzufügen" - } + "title": "Weitere Optionen", + "form": { + "httpStatusCodes": { + "label": "HTTP Status Nummern", + "placeholder": "Wähle eine valide Status Nummer", + "clearButtonLabel": "Auswahl löschen", + "nothingFound": "Nichts gefunden" + }, + "openServiceInNewTab": { + "label": "Service in einem neuen Tab öffnen" + }, + "buttons": { + "submit": { + "content": "Service hinzufügen" + } + } } - } } - } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/public/locales/de/modules/common-media-cards.json b/public/locales/de/modules/common-media-cards.json index 72313078a..55312bb3f 100644 --- a/public/locales/de/modules/common-media-cards.json +++ b/public/locales/de/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Abspielen", - "request": "Anfragen" - } + "play": "Abspielen", + "request": "Anfragen" + } } \ No newline at end of file diff --git a/public/locales/de/modules/common.json b/public/locales/de/modules/common.json new file mode 100644 index 000000000..1ee890fe2 --- /dev/null +++ b/public/locales/de/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Einstellungen" + } +} \ No newline at end of file diff --git a/public/locales/de/modules/dashdot.json b/public/locales/de/modules/dashdot.json index d629b876f..ec1aa86b7 100644 --- a/public/locales/de/modules/dashdot.json +++ b/public/locales/de/modules/dashdot.json @@ -1,32 +1,60 @@ { - "card": { - "title": "Dash.", - "errors": { - "noService": "Kein Dash. Service gefunden. Bitte füge einen zu deinem Homarr Dashboard hinzu oder setze eine Dash. URL in den Modul-Optionen.", - "noInformation": "Informationen konnten nicht von Dash. geladen werden. Betriebst du die neuste Version?" - }, - "graphs": { - "storage": { - "title": "Speicher", - "label": "Speicher:" - }, - "network": { - "title": "Netzwerk", - "label": "Netzwerk:", - "metrics": { - "download": "Eingehend", - "upload": "Ausgehend" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } + "descriptor": { + "name": "Dash.", + "description": "Ein Modul, welches die Graphen aus einer laufenden Dash. Instanz anzeigt.", + "settings": { + "cpuMultiView": { + "label": "CPU Multi-Core View" + }, + "storageMultiView": { + "label": "Speicher Multi-Laufwerk View" + }, + "useCompactView": { + "label": "Kompakte Ansicht nutzen" + }, + "graphs": { + "label": "Graphen", + "options": { + "cpu": "CPU", + "ram": "RAM", + "storage": "Speicher", + "network": "Netzwerk", + "gpu": "GPU" } + }, + "url": { + "label": "Dash. URL" } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Kein Dash. Service gefunden. Bitte füge einen zu deinem Homarr Dashboard hinzu oder setze eine Dash. URL in den Modul-Optionen.", + "noInformation": "Informationen konnten nicht von Dash. geladen werden. Betriebst du die neuste Version?" + }, + "graphs": { + "storage": { + "title": "Speicher", + "label": "Speicher:" + }, + "network": { + "title": "Netzwerk", + "label": "Netzwerk:", + "metrics": { + "download": "Eingehend", + "upload": "Ausgehend" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } } \ No newline at end of file diff --git a/public/locales/de/modules/date.json b/public/locales/de/modules/date.json new file mode 100644 index 000000000..11448ecfc --- /dev/null +++ b/public/locales/de/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Datum", + "description": "Die aktuelle Zeit und das aktuelle Datum in der Card anzeigen", + "settings": { + "display24HourFormat": { + "label": "24-Stunden Format" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/dlspeed.json b/public/locales/de/modules/dlspeed.json new file mode 100644 index 000000000..59855b967 --- /dev/null +++ b/public/locales/de/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "Download Geschwindigkeit", + "description": "Zeige die aktuellen Downloadgeschwindigkeiten von unterstützten Services" + } +} \ No newline at end of file diff --git a/public/locales/de/modules/docker.json b/public/locales/de/modules/docker.json new file mode 100644 index 000000000..f6f742a35 --- /dev/null +++ b/public/locales/de/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Erlaubt dir, deine Torrents einfach zu verwalten" + }, + "search": { + "placeholder": "Suche nach Conainer oder Image Namen" + }, + "table": { + "header": { + "name": "Name", + "image": "Bild", + "ports": "Ports", + "state": "Status" + }, + "body": { + "portCollapse": "{{ports}} weitere" + }, + "states": { + "running": "Läuft", + "created": "Erstellt", + "stopped": "Gestopped", + "unknown": "Unbekannt" + } + }, + "actionBar": { + "addService": { + "title": "Service hinzufügen", + "message": "Service zu Homarr hinzufügen" + }, + "restart": { + "title": "Neustarten" + }, + "stop": { + "title": "Stoppen" + }, + "start": { + "title": "Starten" + }, + "refreshData": "Daten aktualisieren", + "addToHomarr": { + "title": "Zu Homarr hinzufügen" + }, + "remove": { + "title": "Entfernen" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "Docker Integration schlug fehl", + "message": "Hast du vergessen, den Docker Socket zu verbinden?" + }, + "unknownError": { + "title": "Es ist ein Fehler aufgetreten" + }, + "oneServiceAtATime": { + "title": "Bitte füge nur einen Service zur Zeit hinzu." + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} \ No newline at end of file diff --git a/public/locales/de/modules/overseerr.json b/public/locales/de/modules/overseerr.json index 99ce654f8..f599de239 100644 --- a/public/locales/de/modules/overseerr.json +++ b/public/locales/de/modules/overseerr.json @@ -1,26 +1,30 @@ { + "descriptor": { + "name": "Overseerr", + "description": "Ermöglicht das Suchen und Hinzufügen von Medien via Overseerr/Jellyseerr" + }, "popup": { - "item": { - "buttons": { - "askFor": "Fragen für {{title}}", - "cancel": "Abbrechen", - "request": "Anfragen" - }, - "alerts": { - "automaticApproval": { - "title": "Einen API Schlüssel benutzen", - "text": "Diese Anfrage wird automatisch genehmigt" - } - } - }, - "seasonSelector": { - "caption": "Kreuze die Staffeln an, die heruntergeladen werden sollen.", - "table": { - "header": { - "season": "Staffel", - "numberOfEpisodes": "Anzahl von Episoden" - } - } + "item": { + "buttons": { + "askFor": "Fragen für {{title}}", + "cancel": "Abbrechen", + "request": "Anfragen" + }, + "alerts": { + "automaticApproval": { + "title": "Einen API Schlüssel benutzen", + "text": "Diese Anfrage wird automatisch genehmigt" } } + }, + "seasonSelector": { + "caption": "Kreuze die Staffeln an, die heruntergeladen werden sollen.", + "table": { + "header": { + "season": "Staffel", + "numberOfEpisodes": "Anzahl von Episoden" + } + } + } + } } \ No newline at end of file diff --git a/public/locales/de/modules/ping.json b/public/locales/de/modules/ping.json index 645e2dd61..2163c35d7 100644 --- a/public/locales/de/modules/ping.json +++ b/public/locales/de/modules/ping.json @@ -4,8 +4,8 @@ "description": "Pings your services and shows their status as an indicator" }, "states": { - "online": "Online {{response}}", - "offline": "Offline {{response}}", - "loading": "Laden..." - } + "online": "Online {{response}}", + "offline": "Offline {{response}}", + "loading": "Laden..." + } } \ No newline at end of file diff --git a/public/locales/de/modules/search.json b/public/locales/de/modules/search.json index e794b039b..1c9dade42 100644 --- a/public/locales/de/modules/search.json +++ b/public/locales/de/modules/search.json @@ -1,5 +1,9 @@ { + "descriptor": { + "name": "Suchleiste", + "description": "Suchleiste zum Durchsuchen des Internets, Youtube, Torrents oder Overseerr" + }, "input": { - "placeholder": "Das Internet durchsuchen..." - } + "placeholder": "Das Internet durchsuchen..." + } } \ No newline at end of file diff --git a/public/locales/de/modules/torrents-status.json b/public/locales/de/modules/torrents-status.json index 5beba90a4..ea3783559 100644 --- a/public/locales/de/modules/torrents-status.json +++ b/public/locales/de/modules/torrents-status.json @@ -1,4 +1,13 @@ { + "descriptor": { + "name": "Torrent", + "description": "Zeige die aktuellen Downloadgeschwindigkeiten von unterstützten Services", + "settings": { + "hideComplete": { + "label": "Abgeschlossene Torrents ausblenden" + } + } + }, "card": { "table": { "header": { @@ -6,7 +15,7 @@ "size": "Grösse", "download": "Eingehend", "upload": "Ausgehend", - "estimatedTimeOfArrival": "Vorraussichtlicher Abschluss", + "estimatedTimeOfArrival": "Voraussichtlicher Abschluss", "progress": "Fortschritt" }, "body": { @@ -23,7 +32,7 @@ }, "errors": { "noDownloadClients": { - "title": "Keine unterstützten Download Clients gefunden", + "title": "Keine unterstützten Download-Clients gefunden!", "text": "Füge einen Download Service hinzu, um deine derzeitigen Downloads zu sehen" } } diff --git a/public/locales/de/modules/weather.json b/public/locales/de/modules/weather.json index 4d8fa725a..00fcb929c 100644 --- a/public/locales/de/modules/weather.json +++ b/public/locales/de/modules/weather.json @@ -1,20 +1,32 @@ { - "card": { - "weatherDescriptions": { - "clear": "Klar", - "mainlyClear": "Überwiegend klar", - "fog": "Nebel", - "drizzle": "Niesel", - "freezingDrizzle": "Eisiger Nieselregen", - "rain": "Regen", - "freezingRain": "Eisiger Regen", - "snowFall": "Schneefall", - "snowGrains": "Schneekörner", - "rainShowers": "Regenschauer", - "snowShowers": "Schneeschauer", - "thunderstorm": "Gewitter", - "thunderstormWithHail": "Gewitter mit Hagel", - "unknown": "Unbekannt" - } + "descriptor": { + "name": "Wetter", + "description": "Aktuelles Wetter an deinem Standort anzeigen", + "settings": { + "displayInFahrenheit": { + "label": "In Fahrenheit anzeigen" + }, + "location": { + "label": "Wetterstandort" } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Klar", + "mainlyClear": "Überwiegend klar", + "fog": "Nebel", + "drizzle": "Niesel", + "freezingDrizzle": "Eisiger Nieselregen", + "rain": "Regen", + "freezingRain": "Eisiger Regen", + "snowFall": "Schneefall", + "snowGrains": "Schneekörner", + "rainShowers": "Regenschauer", + "snowShowers": "Schneeschauer", + "thunderstorm": "Gewitter", + "thunderstormWithHail": "Gewitter mit Hagel", + "unknown": "Unbekannt" + } + } } \ No newline at end of file diff --git a/public/locales/de/settings/common.json b/public/locales/de/settings/common.json index 433c0197b..611d747a0 100644 --- a/public/locales/de/settings/common.json +++ b/public/locales/de/settings/common.json @@ -2,13 +2,13 @@ "title": "Einstellungen", "tooltip": "Einstellungen", "tabs": { - "common": "Gewöhnlich", + "common": "General", "customizations": "Anpassungen" }, "tips": { - "configTip": "Lade eine neue Konfiguration hoch, indem du eine neue auf die Seite ziehst!" + "configTip": "Lade deine Konfigurationsdatei durch Drag-and-drop auf die Seite hoch!" }, "credits": { - "madeWithLove": "Gemacht mit ❤️ von @" + "madeWithLove": "Made with ❤️ by @" } } \ No newline at end of file diff --git a/public/locales/de/settings/general/config-changer.json b/public/locales/de/settings/general/config-changer.json index 975ef4539..05b56abb7 100644 --- a/public/locales/de/settings/general/config-changer.json +++ b/public/locales/de/settings/general/config-changer.json @@ -1,6 +1,6 @@ { "configSelect": { - "label": "Konfigurations Lader" + "label": "Konfigurationslader" }, "modal": { "title": "Wähle einen Namen für deine neue Konfiguration", @@ -28,8 +28,8 @@ "message": "Konfiguration wurde gelöscht" }, "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" + "title": "Löschung der Konfiguration fehlgeschlagen", + "message": "Löschung der Konfiguration fehlgeschlagen" } } }, diff --git a/public/locales/de/settings/general/search-engine.json b/public/locales/de/settings/general/search-engine.json index def5db657..548906445 100644 --- a/public/locales/de/settings/general/search-engine.json +++ b/public/locales/de/settings/general/search-engine.json @@ -1,11 +1,11 @@ { "title": "Suchmaschine", - "tips": { -"generalTip": "Verwenden die Präfixe !yt und !t vor deiner Suchanfrage, um auf YouTube bzw. nach einem Torrent zu suchen.", - "placeholderTip": "%s kann als Platzhalter für deine Suchanfrage verwendet werden." - }, - "customEngine": { - "label": "Suchanfrage URL", - "placeholder": "Benutzerdefinierte Adresse" - } + "tips": { + "generalTip": "Verwenden die Präfixe !yt und !t vor deiner Suchanfrage, um auf YouTube bzw. nach einem Torrent zu suchen.", + "placeholderTip": "%s kann als Platzhalter für deine Suchanfrage verwendet werden." + }, + "customEngine": { + "label": "Suchanfrage URL", + "placeholder": "Benutzerdefinierte Adresse" + } } \ No newline at end of file diff --git a/public/locales/en/layout/add-service-app-shelf.json b/public/locales/en/layout/add-service-app-shelf.json index c6417a161..ca88e1f31 100644 --- a/public/locales/en/layout/add-service-app-shelf.json +++ b/public/locales/en/layout/add-service-app-shelf.json @@ -1,118 +1,118 @@ { - "actionIcon": { - "tooltip": "Add a service" - }, - "modal": { - "title": "Add service", - "form": { + "actionIcon": { + "tooltip": "Add a service" + }, + "modal": { + "title": "Add service", + "form": { "validation": { - "invalidUrl": "Please enter a valid URL", - "noStatusCodeSelected": "Please select a status code" + "invalidUrl": "Please enter a valid URL", + "noStatusCodeSelected": "Please select a status code" } - }, - "tabs": { + }, + "tabs": { "options": { - "title": "Options", - "form": { - "serviceName": { - "label": "Service name", - "placeholder": "Plex" - }, - "iconUrl": { - "label": "Icon URL" - }, - "serviceUrl": { - "label": "Service URL" - }, - "onClickUrl": { - "label": "On Click URL" - }, - "serviceType": { - "label": "Service type", - "defaultValue": "Other", - "placeholder": "Pick one" - }, - "category": { - "label": "Category", - "placeholder": "Select a category or create a new one", - "nothingFound": "Nothing found", - "createLabel": "+ Create {{query}}" - }, - "integrations": { - "apiKey": { - "label": "API key", - "placeholder": "Your API key", - "validation": { - "noKey": "Invalid Key" + "title": "Options", + "form": { + "serviceName": { + "label": "Service name", + "placeholder": "Plex" }, - "tip": { - "text": "Get your API key", - "link": "here." - } - }, - "qBittorrent": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } + "iconUrl": { + "label": "Icon URL" }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "deluge": { - "password": { - "label": "Password", - "placeholder": "password", - "validation": { - "invalidPassword": "Invalid password" - } - } - }, - "transmission": { - "username": { - "label": "Username", - "placeholder": "admin", - "validation": { - "invalidUsername": "Invalid username" - } + "serviceUrl": { + "label": "Service URL" }, - "password": { - "label": "Password", - "placeholder": "adminadmin", - "validation": { - "invalidPassword": "Invalid password" - } + "onClickUrl": { + "label": "On Click URL" + }, + "serviceType": { + "label": "Service type", + "defaultValue": "Other", + "placeholder": "Pick one" + }, + "category": { + "label": "Category", + "placeholder": "Select a category or create a new one", + "nothingFound": "Nothing found", + "createLabel": "+ Create {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API key", + "placeholder": "Your API key", + "validation": { + "noKey": "Invalid Key" + }, + "tip": { + "text": "Get your API key", + "link": "here." + } + }, + "qBittorrent": { + "username": { + "label": "Username", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalid username" + } + }, + "password": { + "label": "Password", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalid password" + } + } + }, + "deluge": { + "password": { + "label": "Password", + "placeholder": "password", + "validation": { + "invalidPassword": "Invalid password" + } + } + }, + "transmission": { + "username": { + "label": "Username", + "placeholder": "admin", + "validation": { + "invalidUsername": "Invalid username" + } + }, + "password": { + "label": "Password", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Invalid password" + } + } + } } - } } - } }, "advancedOptions": { - "title": "Advanced options", - "form": { - "httpStatusCodes": { - "label": "HTTP Status Codes", - "placeholder": "Select valid status codes", - "clearButtonLabel": "Clear selection", - "nothingFound": "Nothing found" - }, - "openServiceInNewTab": { - "label": "Open service in new tab" - }, - "buttons": { - "submit": { - "content": "Add service" - } + "title": "Advanced options", + "form": { + "httpStatusCodes": { + "label": "HTTP Status Codes", + "placeholder": "Select valid status codes", + "clearButtonLabel": "Clear selection", + "nothingFound": "Nothing found" + }, + "openServiceInNewTab": { + "label": "Open service in new tab" + }, + "buttons": { + "submit": { + "content": "Add service" + } + } } - } } - } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/public/locales/en/modules/common-media-cards.json b/public/locales/en/modules/common-media-cards.json index af13d5d34..b9bbbc537 100644 --- a/public/locales/en/modules/common-media-cards.json +++ b/public/locales/en/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Play", - "request": "Request" - } + "play": "Play", + "request": "Request" + } } \ No newline at end of file diff --git a/public/locales/en/modules/dashdot.json b/public/locales/en/modules/dashdot.json index 77caf974e..1a385ef64 100644 --- a/public/locales/en/modules/dashdot.json +++ b/public/locales/en/modules/dashdot.json @@ -28,33 +28,33 @@ } }, "card": { - "title": "Dash.", - "errors": { - "noService": "No dash. service found. Please add one to your Homarr dashboard or set a dashdot URL in the module options", - "noInformation": "Cannot acquire information from dash. - are you running the latest version?" - }, - "graphs": { - "storage": { - "title": "Storage", - "label": "Storage:" - }, - "network": { - "title": "Network", - "label": "Network:", - "metrics": { - "download": "Down", - "upload": "Up" - } - }, - "cpu": { - "title": "CPU" - }, - "memory": { - "title": "RAM" - }, - "gpu": { - "title": "GPU" - } + "title": "Dash.", + "errors": { + "noService": "No Dash. service found. Please add one to your Homarr dashboard or set a Dash. URL in the module options", + "noInformation": "Cannot acquire information from dash. - are you running the latest version?" + }, + "graphs": { + "storage": { + "title": "Storage", + "label": "Storage:" + }, + "network": { + "title": "Network", + "label": "Network:", + "metrics": { + "download": "Down", + "upload": "Up" } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" } + } + } } \ No newline at end of file diff --git a/public/locales/en/modules/overseerr.json b/public/locales/en/modules/overseerr.json index ed9df1477..e7b44289e 100644 --- a/public/locales/en/modules/overseerr.json +++ b/public/locales/en/modules/overseerr.json @@ -4,27 +4,27 @@ "description": "Allows you to search and add media from Overseerr/Jellyseerr" }, "popup": { - "item": { - "buttons": { - "askFor": "Ask for {{title}}", - "cancel": "Cancel", - "request": "Request" - }, - "alerts": { - "automaticApproval": { - "title": "Using API key", - "text": "This request will be automatically approved" - } - } - }, - "seasonSelector": { - "caption": "Tick the seasons that you want to be downloaded", - "table": { - "header": { - "season": "Season", - "numberOfEpisodes": "Number of episodes" - } - } + "item": { + "buttons": { + "askFor": "Ask for {{title}}", + "cancel": "Cancel", + "request": "Request" + }, + "alerts": { + "automaticApproval": { + "title": "Using API key", + "text": "This request will be automatically approved" } } + }, + "seasonSelector": { + "caption": "Tick the seasons that you want to be downloaded", + "table": { + "header": { + "season": "Season", + "numberOfEpisodes": "Number of episodes" + } + } + } + } } \ No newline at end of file diff --git a/public/locales/en/modules/search.json b/public/locales/en/modules/search.json index 0258afd59..38d1aa1a2 100644 --- a/public/locales/en/modules/search.json +++ b/public/locales/en/modules/search.json @@ -1,9 +1,9 @@ { "descriptor": { "name": "Search Bar", - "description": "Search bar to search the web, youtube, torrents or overseerr" + "description": "Search bar to search the web, Youtube, Torrents or Overseerr" }, "input": { - "placeholder": "Search the web..." - } + "placeholder": "Search the web..." + } } \ No newline at end of file diff --git a/public/locales/en/modules/weather.json b/public/locales/en/modules/weather.json index c0aec151a..405c36263 100644 --- a/public/locales/en/modules/weather.json +++ b/public/locales/en/modules/weather.json @@ -12,21 +12,21 @@ } }, "card": { - "weatherDescriptions": { - "clear": "Clear", - "mainlyClear": "Mainly clear", - "fog": "Fog", - "drizzle": "Drizzle", - "freezingDrizzle": "Freezing drizzle", - "rain": "Rain", - "freezingRain": "Freezing rain", - "snowFall": "Snow fall", - "snowGrains": "Snow grains", - "rainShowers": "Rain showers", - "snowShowers": "Snow showers", - "thunderstorm": "Thunderstorm", - "thunderstormWithHail": "Thunderstorm with hail", - "unknown": "Unknown" - } - } + "weatherDescriptions": { + "clear": "Clear", + "mainlyClear": "Mainly clear", + "fog": "Fog", + "drizzle": "Drizzle", + "freezingDrizzle": "Freezing drizzle", + "rain": "Rain", + "freezingRain": "Freezing rain", + "snowFall": "Snow fall", + "snowGrains": "Snow grains", + "rainShowers": "Rain showers", + "snowShowers": "Snow showers", + "thunderstorm": "Thunderstorm", + "thunderstormWithHail": "Thunderstorm with hail", + "unknown": "Unknown" + } + } } \ No newline at end of file diff --git a/public/locales/en/settings/general/search-engine.json b/public/locales/en/settings/general/search-engine.json index 789b1715b..42f708ffb 100644 --- a/public/locales/en/settings/general/search-engine.json +++ b/public/locales/en/settings/general/search-engine.json @@ -1,11 +1,11 @@ { "title": "Search engine", - "tips": { -"generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "label": "Query URL", - "placeholder": "Custom query URL" - } + "tips": { + "generalTip": "Use the prefixes !yt and !t in front of your query to search on YouTube or for a Torrent respectively.", + "placeholderTip": "%s can be used as a placeholder for the query." + }, + "customEngine": { + "label": "Query URL", + "placeholder": "Custom query URL" + } } \ No newline at end of file diff --git a/public/locales/es/common.json b/public/locales/es/common.json new file mode 100644 index 000000000..ca43f2a8f --- /dev/null +++ b/public/locales/es/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "Guardar" + }, + "tip": "Consejo: " +} \ No newline at end of file diff --git a/public/locales/es/layout/add-service-app-shelf.json b/public/locales/es/layout/add-service-app-shelf.json new file mode 100644 index 000000000..057440bf8 --- /dev/null +++ b/public/locales/es/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Añadir un servicio" + }, + "modal": { + "title": "Añadir servicio", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "Opciones", + "form": { + "serviceName": { + "label": "Nombre del servicio", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "URL del icono" + }, + "serviceUrl": { + "label": "URL del servicio" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "Tipo de servicio", + "defaultValue": "Otro", + "placeholder": "Elige uno" + }, + "category": { + "label": "Categoría", + "placeholder": "Seleccione una categoría o cree una nueva", + "nothingFound": "", + "createLabel": "" + }, + "integrations": { + "apiKey": { + "label": "", + "placeholder": "", + "validation": { + "noKey": "" + }, + "tip": { + "text": "", + "link": "aquí." + } + }, + "qBittorrent": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "deluge": { + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "transmission": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "" + }, + "buttons": { + "submit": { + "content": "Añadir servicio" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/layout/app-shelf-menu.json b/public/locales/es/layout/app-shelf-menu.json new file mode 100644 index 000000000..8df2224a1 --- /dev/null +++ b/public/locales/es/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "" + } + }, + "menu": { + "labels": { + "settings": "Ajustes", + "dangerZone": "" + }, + "actions": { + "edit": "Editar", + "delete": "Eliminar" + } + } +} \ No newline at end of file diff --git a/public/locales/es/layout/app-shelf.json b/public/locales/es/layout/app-shelf.json new file mode 100644 index 000000000..02bde38f9 --- /dev/null +++ b/public/locales/es/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "Tus descargas" + }, + "others": { + "text": "Otros" + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/calendar.json b/public/locales/es/modules/calendar.json new file mode 100644 index 000000000..ed3ae6693 --- /dev/null +++ b/public/locales/es/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Calendario", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/common-media-cards.json b/public/locales/es/modules/common-media-cards.json new file mode 100644 index 000000000..4966eaa66 --- /dev/null +++ b/public/locales/es/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Reproducir", + "request": "Solicitar" + } +} \ No newline at end of file diff --git a/public/locales/es/modules/common.json b/public/locales/es/modules/common.json new file mode 100644 index 000000000..9a96df72d --- /dev/null +++ b/public/locales/es/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Ajustes" + } +} \ No newline at end of file diff --git a/public/locales/es/modules/dashdot.json b/public/locales/es/modules/dashdot.json new file mode 100644 index 000000000..b48b5ced4 --- /dev/null +++ b/public/locales/es/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "Procesador", + "ram": "Memoria RAM", + "storage": "Almacenaje", + "network": "Red", + "gpu": "Procesador Gráfico" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "Almacenaje", + "label": "Almacenaje:" + }, + "network": { + "title": "Red", + "label": "Red:", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "Procesador" + }, + "memory": { + "title": "Memoria RAM" + }, + "gpu": { + "title": "Procesador Gráfico" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/date.json b/public/locales/es/modules/date.json new file mode 100644 index 000000000..f361c2011 --- /dev/null +++ b/public/locales/es/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Fecha", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/dlspeed.json b/public/locales/es/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/es/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/es/modules/docker.json b/public/locales/es/modules/docker.json new file mode 100644 index 000000000..52a8705a6 --- /dev/null +++ b/public/locales/es/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "Docker", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "Nombre", + "image": "Imágen", + "ports": "Puertos", + "state": "Estado" + }, + "body": { + "portCollapse": "{{ports}} más" + }, + "states": { + "running": "", + "created": "Creado", + "stopped": "Detenido", + "unknown": "Desconocido" + } + }, + "actionBar": { + "addService": { + "title": "Añadir servicio", + "message": "Añadir servicio a Homarr" + }, + "restart": { + "title": "Reiniciar" + }, + "stop": { + "title": "Detener" + }, + "start": { + "title": "Comenzar" + }, + "refreshData": "Actualizar datos", + "addToHomarr": { + "title": "Añadir a Homarr" + }, + "remove": { + "title": "Eliminar" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} \ No newline at end of file diff --git a/public/locales/es/modules/overseerr.json b/public/locales/es/modules/overseerr.json new file mode 100644 index 000000000..47d56fbc3 --- /dev/null +++ b/public/locales/es/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "Cancelar", + "request": "Solicitar" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "Temporada", + "numberOfEpisodes": "Número de episodios" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/ping.json b/public/locales/es/modules/ping.json new file mode 100644 index 000000000..d11e61e1d --- /dev/null +++ b/public/locales/es/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "Cargando..." + } +} \ No newline at end of file diff --git a/public/locales/es/modules/search.json b/public/locales/es/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/es/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/es/modules/torrents-status.json b/public/locales/es/modules/torrents-status.json new file mode 100644 index 000000000..6ea71948a --- /dev/null +++ b/public/locales/es/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "Nombre", + "size": "Tamaño", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/weather.json b/public/locales/es/modules/weather.json new file mode 100644 index 000000000..3796513e6 --- /dev/null +++ b/public/locales/es/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Clima", + "description": "", + "settings": { + "displayInFahrenheit": { + "label": "Mostrar en Fahrenheit" + }, + "location": { + "label": "Ubicación del clima" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "Niebla", + "drizzle": "Llovizna", + "freezingDrizzle": "Llovizna helada", + "rain": "Lluvia", + "freezingRain": "Lluvia helada", + "snowFall": "Caída de nieve", + "snowGrains": "Granos de nieve", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "Desconocido" + } + } +} \ No newline at end of file diff --git a/public/locales/es/settings/common.json b/public/locales/es/settings/common.json new file mode 100644 index 000000000..142b9328d --- /dev/null +++ b/public/locales/es/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "Ajustes", + "tooltip": "Ajustes", + "tabs": { + "common": "Común", + "customizations": "Personalizaciones" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "Hecho con ❤️ por @" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/app-width.json b/public/locales/es/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/es/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/es/settings/customization/color-selector.json b/public/locales/es/settings/customization/color-selector.json new file mode 100644 index 000000000..4da18eb3d --- /dev/null +++ b/public/locales/es/settings/customization/color-selector.json @@ -0,0 +1,3 @@ +{ + "suffix": "Color {{color}}" +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/opacity-selector.json b/public/locales/es/settings/customization/opacity-selector.json new file mode 100644 index 000000000..d9cfa5fe8 --- /dev/null +++ b/public/locales/es/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Opacidad de la aplicación" +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/page-appearance.json b/public/locales/es/settings/customization/page-appearance.json new file mode 100644 index 000000000..5b35eac48 --- /dev/null +++ b/public/locales/es/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "Título de Página", + "placeholder": "Homarr 🦞" + }, + "logo": { + "label": "Logo", + "placeholder": "/img/logo.png" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "Fondo", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/shade-selector.json b/public/locales/es/settings/customization/shade-selector.json new file mode 100644 index 000000000..98ca19a2e --- /dev/null +++ b/public/locales/es/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Sombra" +} \ No newline at end of file diff --git a/public/locales/es/settings/general/color-schema.json b/public/locales/es/settings/general/color-schema.json new file mode 100644 index 000000000..8cd1a53f2 --- /dev/null +++ b/public/locales/es/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Cambiar al modo {{scheme}}" +} \ No newline at end of file diff --git a/public/locales/es/settings/general/config-changer.json b/public/locales/es/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/es/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/es/settings/general/internationalization.json b/public/locales/es/settings/general/internationalization.json new file mode 100644 index 000000000..a530790ff --- /dev/null +++ b/public/locales/es/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Idioma" +} \ No newline at end of file diff --git a/public/locales/es/settings/general/module-enabler.json b/public/locales/es/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/es/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/es/settings/general/search-engine.json b/public/locales/es/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/es/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/general/theme-selector.json b/public/locales/es/settings/general/theme-selector.json new file mode 100644 index 000000000..5c798f8b2 --- /dev/null +++ b/public/locales/es/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Cambiar al modo {{theme}}" +} \ No newline at end of file diff --git a/public/locales/es/settings/general/widget-positions.json b/public/locales/es/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/es/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json new file mode 100644 index 000000000..d19870ad6 --- /dev/null +++ b/public/locales/fr/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "Sauvegarder" + }, + "tip": "Conseil : " +} \ No newline at end of file diff --git a/public/locales/fr/layout/add-service-app-shelf.json b/public/locales/fr/layout/add-service-app-shelf.json new file mode 100644 index 000000000..cae5f90ad --- /dev/null +++ b/public/locales/fr/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Ajouter un service" + }, + "modal": { + "title": "Ajouter un service", + "form": { + "validation": { + "invalidUrl": "Veuillez entrer une URL valide", + "noStatusCodeSelected": "Veuillez sélectionner un code d'état" + } + }, + "tabs": { + "options": { + "title": "Options", + "form": { + "serviceName": { + "label": "Nom du service", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "URL de l'icône" + }, + "serviceUrl": { + "label": "URL du service" + }, + "onClickUrl": { + "label": "URL ouvert en cas de clic" + }, + "serviceType": { + "label": "Type de service", + "defaultValue": "Autre", + "placeholder": "Choisissez-en un" + }, + "category": { + "label": "Catégorie", + "placeholder": "Sélectionnez une catégorie ou créez-en une nouvelle", + "nothingFound": "Rien trouvé", + "createLabel": "+ Créer {{query}}" + }, + "integrations": { + "apiKey": { + "label": "Clé API", + "placeholder": "Votre clé API", + "validation": { + "noKey": "Clé non valide" + }, + "tip": { + "text": "Obtenez votre clé API", + "link": "ici." + } + }, + "qBittorrent": { + "username": { + "label": "Nom d'utilisateur", + "placeholder": "admin", + "validation": { + "invalidUsername": "Nom d'utilisateur invalide" + } + }, + "password": { + "label": "Mot de passe", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Mot de passe invalide" + } + } + }, + "deluge": { + "password": { + "label": "Mot de passe", + "placeholder": "mot de passe", + "validation": { + "invalidPassword": "Mot de passe invalide" + } + } + }, + "transmission": { + "username": { + "label": "Nom d'utilisateur :", + "placeholder": "admin", + "validation": { + "invalidUsername": "Nom d'utilisateur non valide" + } + }, + "password": { + "label": "Mot de passe", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Mot de passe invalide" + } + } + } + } + } + }, + "advancedOptions": { + "title": "Options avancées", + "form": { + "httpStatusCodes": { + "label": "Codes d'état HTTP", + "placeholder": "Sélectionnez les codes d'état valides", + "clearButtonLabel": "Effacer la sélection", + "nothingFound": "Rien trouvé" + }, + "openServiceInNewTab": { + "label": "Ouvrir le service dans un nouvel onglet" + }, + "buttons": { + "submit": { + "content": "Ajouter un service" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/app-shelf-menu.json b/public/locales/fr/layout/app-shelf-menu.json new file mode 100644 index 000000000..2ae82317f --- /dev/null +++ b/public/locales/fr/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "Modifier un service", + "buttons": { + "save": "Service de sauvegarde" + } + }, + "menu": { + "labels": { + "settings": "Paramètres", + "dangerZone": "Attention" + }, + "actions": { + "edit": "Modifier", + "delete": "Supprimer" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/app-shelf.json b/public/locales/fr/layout/app-shelf.json new file mode 100644 index 000000000..3590035b2 --- /dev/null +++ b/public/locales/fr/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "Vos téléchargements" + }, + "others": { + "text": "Autres" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/calendar.json b/public/locales/fr/modules/calendar.json new file mode 100644 index 000000000..fcf3e6001 --- /dev/null +++ b/public/locales/fr/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Calendrier", + "description": "Un module de calendrier pour afficher les prochaines versions. Il interagit avec les API Sonarr et Radarr.", + "settings": { + "sundayStart": { + "label": "Commencez la semaine par dimanche" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/common-media-cards.json b/public/locales/fr/modules/common-media-cards.json new file mode 100644 index 000000000..299372e36 --- /dev/null +++ b/public/locales/fr/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Jouer", + "request": "Demande" + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/common.json b/public/locales/fr/modules/common.json new file mode 100644 index 000000000..e13463d31 --- /dev/null +++ b/public/locales/fr/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Paramètres" + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/dashdot.json b/public/locales/fr/modules/dashdot.json new file mode 100644 index 000000000..026810bc3 --- /dev/null +++ b/public/locales/fr/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Un module pour afficher les graphiques de votre instance Dash. en cours.", + "settings": { + "cpuMultiView": { + "label": "Vue du CPU multi-cœur" + }, + "storageMultiView": { + "label": "Vue du stockage multidisque" + }, + "useCompactView": { + "label": "Utiliser la vue compacte" + }, + "graphs": { + "label": "Graphiques", + "options": { + "cpu": "CPU", + "ram": "RAM", + "storage": "Stockage", + "network": "Réseau", + "gpu": "GPU" + } + }, + "url": { + "label": "URL Dash" + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Aucun service dash. trouvé. Veuillez en ajouter un à votre tableau de bord Homarr ou définir une URL dashdot dans les options du module.", + "noInformation": "Impossible d'acquérir des informations de dashdot - Utilisez-vous la dernière version ?" + }, + "graphs": { + "storage": { + "title": "Stockage", + "label": "Stockage :" + }, + "network": { + "title": "Réseau", + "label": "Réseau :", + "metrics": { + "download": "Duvet", + "upload": "Up" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/date.json b/public/locales/fr/modules/date.json new file mode 100644 index 000000000..c1f777c4f --- /dev/null +++ b/public/locales/fr/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Date", + "description": "Affiches l'heure et la date actuelles dans un module", + "settings": { + "display24HourFormat": { + "label": "Affichage 24 h" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/dlspeed.json b/public/locales/fr/modules/dlspeed.json new file mode 100644 index 000000000..5de474a53 --- /dev/null +++ b/public/locales/fr/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "Vitesse de téléchargement", + "description": "Afficher la vitesse de téléchargement actuelle des services pris en charge" + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/docker.json b/public/locales/fr/modules/docker.json new file mode 100644 index 000000000..c537ad4ee --- /dev/null +++ b/public/locales/fr/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Vous permet de gérer facilement vos torrents" + }, + "search": { + "placeholder": "Recherche par nom de conteneur ou d'image" + }, + "table": { + "header": { + "name": "Nom", + "image": "Image", + "ports": "Ports", + "state": "État" + }, + "body": { + "portCollapse": "{{ports}} plus" + }, + "states": { + "running": "Running", + "created": "Créé", + "stopped": "Arrêté", + "unknown": "Inconnu" + } + }, + "actionBar": { + "addService": { + "title": "Ajouter un service", + "message": "Ajouter un service à Homarr" + }, + "restart": { + "title": "Redémarrer" + }, + "stop": { + "title": "Stop" + }, + "start": { + "title": "Début" + }, + "refreshData": "Rafraîchir les données", + "addToHomarr": { + "title": "Ajouter à Homarr" + }, + "remove": { + "title": "Retirer" + } + }, + "messages": { + "successfullyExecuted": { + "title": "Conteneur {{containerName}} {{action}}", + "message": "Votre conteneur a été envoyé avec succès à {{action}}" + } + }, + "errors": { + "integrationFailed": { + "title": "L'intégration de Docker a échoué", + "message": "Avez-vous oublié de monter le docker socket ?" + }, + "unknownError": { + "title": "Il y a eu une erreur" + }, + "oneServiceAtATime": { + "title": "Veuillez n'ajouter qu'un seul service à la fois !" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/overseerr.json b/public/locales/fr/modules/overseerr.json new file mode 100644 index 000000000..2884a5b98 --- /dev/null +++ b/public/locales/fr/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "Permet de rechercher et d'ajouter des médias depuis Overseerr/Jellyseerr" + }, + "popup": { + "item": { + "buttons": { + "askFor": "Demandez {{title}}", + "cancel": "Annuler", + "request": "Demande" + }, + "alerts": { + "automaticApproval": { + "title": "Utilisation de la clé API", + "text": "Cette demande sera automatiquement approuvée" + } + } + }, + "seasonSelector": { + "caption": "Cochez les saisons que vous souhaitez télécharger", + "table": { + "header": { + "season": "Saison", + "numberOfEpisodes": "Nombre d'épisodes" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/ping.json b/public/locales/fr/modules/ping.json new file mode 100644 index 000000000..fdb946c0e --- /dev/null +++ b/public/locales/fr/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "Permet de vérifier si le service est en place ou renvoie un code d'état HTTP spécifique." + }, + "states": { + "online": "En ligne {{response}}", + "offline": "Hors ligne {{response}}", + "loading": "Chargement..." + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/search.json b/public/locales/fr/modules/search.json new file mode 100644 index 000000000..2dbf4f9cb --- /dev/null +++ b/public/locales/fr/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "Barre de recherche", + "description": "Barre de recherche pour rechercher sur le web, youtube, les torrents ou overseerr" + }, + "input": { + "placeholder": "Cherchez sur le web..." + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json new file mode 100644 index 000000000..aea9aec81 --- /dev/null +++ b/public/locales/fr/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "Afficher la vitesse de téléchargement actuelle des services pris en charge", + "settings": { + "hideComplete": { + "label": "Cacher les torrents terminés" + } + } + }, + "card": { + "table": { + "header": { + "name": "Nom", + "size": "Taille", + "download": "Duvet", + "upload": "Up", + "estimatedTimeOfArrival": "ETA", + "progress": "Progrès" + }, + "body": { + "nothingFound": "Aucun torrent trouvé" + } + }, + "lineChart": { + "title": "Vitesse de téléchargement actuelle", + "download": "Télécharger : {{download}}", + "upload": "Télécharger : {{upload}}", + "timeSpan": "{{seconds}} il y a quelques secondes", + "totalDownload": "Télécharger : {{download}}/s", + "totalUpload": "Upload : {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Aucun client de téléchargement supporté n'a été trouvé !", + "text": "Ajouter un service de téléchargement pour afficher vos téléchargements en cours" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/weather.json b/public/locales/fr/modules/weather.json new file mode 100644 index 000000000..a50bd7800 --- /dev/null +++ b/public/locales/fr/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Météo", + "description": "Consultez la météo actuelle dans votre région", + "settings": { + "displayInFahrenheit": { + "label": "Affichage en Fahrenheit" + }, + "location": { + "label": "Lieu de la météo" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Clair", + "mainlyClear": "Principalement clair", + "fog": "Brouillard", + "drizzle": "Bruine", + "freezingDrizzle": "Bruine glacée", + "rain": "Pluie", + "freezingRain": "Pluie verglaçante", + "snowFall": "Chute de neige", + "snowGrains": "Grains de neige", + "rainShowers": "Averses de pluie", + "snowShowers": "Averses de neige", + "thunderstorm": "Orage", + "thunderstormWithHail": "Orage avec grêle", + "unknown": "Inconnu" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/common.json b/public/locales/fr/settings/common.json new file mode 100644 index 000000000..fa8a9130c --- /dev/null +++ b/public/locales/fr/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "Paramètres", + "tooltip": "Paramètres", + "tabs": { + "common": "Commun", + "customizations": "Personnalisations" + }, + "tips": { + "configTip": "Téléchargez votre fichier de configuration en le faisant glisser et en le déposant sur la page !" + }, + "credits": { + "madeWithLove": "Fait avec ❤️ par @" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/app-width.json b/public/locales/fr/settings/customization/app-width.json new file mode 100644 index 000000000..b86f110da --- /dev/null +++ b/public/locales/fr/settings/customization/app-width.json @@ -0,0 +1,3 @@ +{ + "label": "Largeur de l'application" +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/color-selector.json b/public/locales/fr/settings/customization/color-selector.json new file mode 100644 index 000000000..5d74935fa --- /dev/null +++ b/public/locales/fr/settings/customization/color-selector.json @@ -0,0 +1,3 @@ +{ + "suffix": "{{color}} couleur" +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/opacity-selector.json b/public/locales/fr/settings/customization/opacity-selector.json new file mode 100644 index 000000000..6c995c5fa --- /dev/null +++ b/public/locales/fr/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Opacité de l'application" +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json new file mode 100644 index 000000000..332623e5c --- /dev/null +++ b/public/locales/fr/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "Titre de la page", + "placeholder": "Homarr 🦞" + }, + "logo": { + "label": "Logo", + "placeholder": "/img/logo.png" + }, + "favicon": { + "label": "Favicon", + "placeholder": "/favicon.png" + }, + "background": { + "label": "Contexte", + "placeholder": "/img/background.png" + }, + "buttons": { + "submit": "Soumettre" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/shade-selector.json b/public/locales/fr/settings/customization/shade-selector.json new file mode 100644 index 000000000..9805d1301 --- /dev/null +++ b/public/locales/fr/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Ombre" +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/color-schema.json b/public/locales/fr/settings/general/color-schema.json new file mode 100644 index 000000000..b9a69545a --- /dev/null +++ b/public/locales/fr/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Passez en mode {{scheme}}" +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/config-changer.json b/public/locales/fr/settings/general/config-changer.json new file mode 100644 index 000000000..2951c8163 --- /dev/null +++ b/public/locales/fr/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "Chargeur de configuration" + }, + "modal": { + "title": "Choisissez le nom de votre nouvelle configuration", + "form": { + "configName": { + "label": "Nom de la configuration", + "placeholder": "Le nom de votre nouvelle configuration" + }, + "submitButton": "Confirmer" + }, + "events": { + "configSaved": { + "title": "Configuration sauvegardée", + "message": "Configuration enregistrée sous {{configName}}" + } + } + }, + "buttons": { + "download": "Télécharger la configuration", + "delete": { + "text": "Supprimer la configuration", + "notifications": { + "deleted": { + "title": "Config supprimée", + "message": "Config supprimée" + }, + "deleteFailed": { + "title": "La suppression de la configuration a échoué", + "message": "La suppression de la configuration a échoué" + } + } + }, + "saveCopy": "Sauvegarder une copie" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "Impossible de charger la configuration", + "message": "Impossible de charger votre configuration. Format JSON non valide." + }, + "loadedSuccessfully": { + "title": "Config {{configName}} chargé avec succès" + } + }, + "accept": { + "text": "Faites glisser les fichiers ici pour télécharger une configuration. Support pour JSON uniquement." + }, + "reject": { + "text": "Ce format de fichier n'est pas pris en charge. Veuillez télécharger uniquement JSON." + } + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/internationalization.json b/public/locales/fr/settings/general/internationalization.json new file mode 100644 index 000000000..7014ff5e3 --- /dev/null +++ b/public/locales/fr/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Langue" +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/module-enabler.json b/public/locales/fr/settings/general/module-enabler.json new file mode 100644 index 000000000..179753b6f --- /dev/null +++ b/public/locales/fr/settings/general/module-enabler.json @@ -0,0 +1,3 @@ +{ + "title": "Module enabler" +} \ 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 new file mode 100644 index 000000000..98ba1b552 --- /dev/null +++ b/public/locales/fr/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "Moteur de recherche", + "tips": { + "generalTip": "Utilisez les préfixes !yt et !t devant votre requête pour rechercher respectivement sur YouTube ou pour un Torrent.", + "placeholderTip": "%s peut être utilisé en tant que placeholder pour la requête." + }, + "customEngine": { + "label": "URL de la requête", + "placeholder": "URL de requête personnalisée" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/theme-selector.json b/public/locales/fr/settings/general/theme-selector.json new file mode 100644 index 000000000..aae766602 --- /dev/null +++ b/public/locales/fr/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Passez en mode {{theme}}" +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/widget-positions.json b/public/locales/fr/settings/general/widget-positions.json new file mode 100644 index 000000000..28649cb99 --- /dev/null +++ b/public/locales/fr/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "Positionner les widgets à gauche" +} \ No newline at end of file diff --git a/public/locales/it/common.json b/public/locales/it/common.json new file mode 100644 index 000000000..231732eb5 --- /dev/null +++ b/public/locales/it/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/it/layout/add-service-app-shelf.json b/public/locales/it/layout/add-service-app-shelf.json new file mode 100644 index 000000000..5868261d6 --- /dev/null +++ b/public/locales/it/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "" + }, + "modal": { + "title": "", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "", + "form": { + "serviceName": { + "label": "", + "placeholder": "" + }, + "iconUrl": { + "label": "" + }, + "serviceUrl": { + "label": "" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "", + "defaultValue": "", + "placeholder": "" + }, + "category": { + "label": "", + "placeholder": "", + "nothingFound": "", + "createLabel": "" + }, + "integrations": { + "apiKey": { + "label": "", + "placeholder": "", + "validation": { + "noKey": "" + }, + "tip": { + "text": "", + "link": "" + } + }, + "qBittorrent": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "deluge": { + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "transmission": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "" + }, + "buttons": { + "submit": { + "content": "" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/layout/app-shelf-menu.json b/public/locales/it/layout/app-shelf-menu.json new file mode 100644 index 000000000..452c7a882 --- /dev/null +++ b/public/locales/it/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "" + } + }, + "menu": { + "labels": { + "settings": "", + "dangerZone": "" + }, + "actions": { + "edit": "", + "delete": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/layout/app-shelf.json b/public/locales/it/layout/app-shelf.json new file mode 100644 index 000000000..20f7a7350 --- /dev/null +++ b/public/locales/it/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "" + }, + "others": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/calendar.json b/public/locales/it/modules/calendar.json new file mode 100644 index 000000000..e16beca62 --- /dev/null +++ b/public/locales/it/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/common-media-cards.json b/public/locales/it/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/it/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/common.json b/public/locales/it/modules/common.json new file mode 100644 index 000000000..61de7370a --- /dev/null +++ b/public/locales/it/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/dashdot.json b/public/locales/it/modules/dashdot.json new file mode 100644 index 000000000..235d3b4dc --- /dev/null +++ b/public/locales/it/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "", + "ram": "", + "storage": "", + "network": "", + "gpu": "" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "memory": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/date.json b/public/locales/it/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/it/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/dlspeed.json b/public/locales/it/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/it/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/docker.json b/public/locales/it/modules/docker.json new file mode 100644 index 000000000..a2a185261 --- /dev/null +++ b/public/locales/it/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/overseerr.json b/public/locales/it/modules/overseerr.json new file mode 100644 index 000000000..0a6da5756 --- /dev/null +++ b/public/locales/it/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/ping.json b/public/locales/it/modules/ping.json new file mode 100644 index 000000000..3ba3aefa0 --- /dev/null +++ b/public/locales/it/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/search.json b/public/locales/it/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/it/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/it/modules/torrents-status.json b/public/locales/it/modules/torrents-status.json new file mode 100644 index 000000000..86b10fa25 --- /dev/null +++ b/public/locales/it/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/weather.json b/public/locales/it/modules/weather.json new file mode 100644 index 000000000..7f9c8b103 --- /dev/null +++ b/public/locales/it/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "displayInFahrenheit": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/settings/common.json b/public/locales/it/settings/common.json new file mode 100644 index 000000000..ded996d44 --- /dev/null +++ b/public/locales/it/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/app-width.json b/public/locales/it/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/customization/color-selector.json b/public/locales/it/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/customization/opacity-selector.json b/public/locales/it/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/customization/page-appearance.json b/public/locales/it/settings/customization/page-appearance.json new file mode 100644 index 000000000..592c372a8 --- /dev/null +++ b/public/locales/it/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "", + "placeholder": "" + }, + "logo": { + "label": "", + "placeholder": "" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/shade-selector.json b/public/locales/it/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/general/color-schema.json b/public/locales/it/settings/general/color-schema.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/general/color-schema.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/general/config-changer.json b/public/locales/it/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/it/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/it/settings/general/internationalization.json b/public/locales/it/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/general/module-enabler.json b/public/locales/it/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/general/search-engine.json b/public/locales/it/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/it/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/it/settings/general/theme-selector.json b/public/locales/it/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/it/settings/general/widget-positions.json b/public/locales/it/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/it/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json new file mode 100644 index 000000000..231732eb5 --- /dev/null +++ b/public/locales/ja/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/ja/layout/add-service-app-shelf.json b/public/locales/ja/layout/add-service-app-shelf.json new file mode 100644 index 000000000..5868261d6 --- /dev/null +++ b/public/locales/ja/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "" + }, + "modal": { + "title": "", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "", + "form": { + "serviceName": { + "label": "", + "placeholder": "" + }, + "iconUrl": { + "label": "" + }, + "serviceUrl": { + "label": "" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "", + "defaultValue": "", + "placeholder": "" + }, + "category": { + "label": "", + "placeholder": "", + "nothingFound": "", + "createLabel": "" + }, + "integrations": { + "apiKey": { + "label": "", + "placeholder": "", + "validation": { + "noKey": "" + }, + "tip": { + "text": "", + "link": "" + } + }, + "qBittorrent": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "deluge": { + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "transmission": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "" + }, + "buttons": { + "submit": { + "content": "" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/app-shelf-menu.json b/public/locales/ja/layout/app-shelf-menu.json new file mode 100644 index 000000000..452c7a882 --- /dev/null +++ b/public/locales/ja/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "" + } + }, + "menu": { + "labels": { + "settings": "", + "dangerZone": "" + }, + "actions": { + "edit": "", + "delete": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/app-shelf.json b/public/locales/ja/layout/app-shelf.json new file mode 100644 index 000000000..20f7a7350 --- /dev/null +++ b/public/locales/ja/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "" + }, + "others": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/calendar.json b/public/locales/ja/modules/calendar.json new file mode 100644 index 000000000..e16beca62 --- /dev/null +++ b/public/locales/ja/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/common-media-cards.json b/public/locales/ja/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/ja/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/common.json b/public/locales/ja/modules/common.json new file mode 100644 index 000000000..61de7370a --- /dev/null +++ b/public/locales/ja/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/dashdot.json b/public/locales/ja/modules/dashdot.json new file mode 100644 index 000000000..235d3b4dc --- /dev/null +++ b/public/locales/ja/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "", + "ram": "", + "storage": "", + "network": "", + "gpu": "" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "memory": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/date.json b/public/locales/ja/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/ja/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/dlspeed.json b/public/locales/ja/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/ja/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/docker.json b/public/locales/ja/modules/docker.json new file mode 100644 index 000000000..a2a185261 --- /dev/null +++ b/public/locales/ja/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/overseerr.json b/public/locales/ja/modules/overseerr.json new file mode 100644 index 000000000..0a6da5756 --- /dev/null +++ b/public/locales/ja/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/ping.json b/public/locales/ja/modules/ping.json new file mode 100644 index 000000000..3ba3aefa0 --- /dev/null +++ b/public/locales/ja/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/search.json b/public/locales/ja/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/ja/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/torrents-status.json b/public/locales/ja/modules/torrents-status.json new file mode 100644 index 000000000..86b10fa25 --- /dev/null +++ b/public/locales/ja/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/weather.json b/public/locales/ja/modules/weather.json new file mode 100644 index 000000000..7f9c8b103 --- /dev/null +++ b/public/locales/ja/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "displayInFahrenheit": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/common.json b/public/locales/ja/settings/common.json new file mode 100644 index 000000000..ded996d44 --- /dev/null +++ b/public/locales/ja/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/app-width.json b/public/locales/ja/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/color-selector.json b/public/locales/ja/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/opacity-selector.json b/public/locales/ja/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/page-appearance.json b/public/locales/ja/settings/customization/page-appearance.json new file mode 100644 index 000000000..592c372a8 --- /dev/null +++ b/public/locales/ja/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "", + "placeholder": "" + }, + "logo": { + "label": "", + "placeholder": "" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/shade-selector.json b/public/locales/ja/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/general/color-schema.json b/public/locales/ja/settings/general/color-schema.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/general/color-schema.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/general/config-changer.json b/public/locales/ja/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/ja/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/general/internationalization.json b/public/locales/ja/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/general/module-enabler.json b/public/locales/ja/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/general/search-engine.json b/public/locales/ja/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/ja/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/general/theme-selector.json b/public/locales/ja/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ja/settings/general/widget-positions.json b/public/locales/ja/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ja/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json new file mode 100644 index 000000000..efad0067f --- /dev/null +++ b/public/locales/nl/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "Opslaan" + }, + "tip": "Tip: " +} \ No newline at end of file diff --git a/public/locales/nl/layout/add-service-app-shelf.json b/public/locales/nl/layout/add-service-app-shelf.json new file mode 100644 index 000000000..680dd3332 --- /dev/null +++ b/public/locales/nl/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Voeg een service toe" + }, + "modal": { + "title": "Service toevoegen", + "form": { + "validation": { + "invalidUrl": "Voer een geldige URL in", + "noStatusCodeSelected": "Selecteer een statuscode" + } + }, + "tabs": { + "options": { + "title": "Instellingen", + "form": { + "serviceName": { + "label": "Servicenaam", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "Icoon URL" + }, + "serviceUrl": { + "label": "Service URL" + }, + "onClickUrl": { + "label": "Klik URL" + }, + "serviceType": { + "label": "Servicetype", + "defaultValue": "Andere", + "placeholder": "Kies één" + }, + "category": { + "label": "Categorie", + "placeholder": "Selecteer een categorie of maak een nieuwe aan", + "nothingFound": "Geen resultaten", + "createLabel": "+ Creëer {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API sleutel", + "placeholder": "Jouw API sleutel", + "validation": { + "noKey": "Ongeldige sleutel" + }, + "tip": { + "text": "Verkrijg jouw API sleutel", + "link": "hier." + } + }, + "qBittorrent": { + "username": { + "label": "Gebruikersnaam", + "placeholder": "admin", + "validation": { + "invalidUsername": "Ongeldige gebruikersnaam" + } + }, + "password": { + "label": "Wachtwoord", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Ongeldig wachtwoord" + } + } + }, + "deluge": { + "password": { + "label": "Wachtwoord", + "placeholder": "wachtwoord", + "validation": { + "invalidPassword": "Ongeldig wachtwoord" + } + } + }, + "transmission": { + "username": { + "label": "Gebruikersnaam", + "placeholder": "admin", + "validation": { + "invalidUsername": "Ongeldige gebruikersnaam" + } + }, + "password": { + "label": "Wachtwoord", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Ongeldig wachtwoord" + } + } + } + } + } + }, + "advancedOptions": { + "title": "Geavanceerde opties", + "form": { + "httpStatusCodes": { + "label": "HTTP-statuscodes", + "placeholder": "Selecteer geldige statuscodes", + "clearButtonLabel": "Selectie wissen", + "nothingFound": "Geen resultaten" + }, + "openServiceInNewTab": { + "label": "Service in nieuw tabblad openen" + }, + "buttons": { + "submit": { + "content": "Service toevoegen" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/app-shelf-menu.json b/public/locales/nl/layout/app-shelf-menu.json new file mode 100644 index 000000000..21f961675 --- /dev/null +++ b/public/locales/nl/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "Wijzig een service", + "buttons": { + "save": "Service opslaan" + } + }, + "menu": { + "labels": { + "settings": "Instellingen", + "dangerZone": "Gevarenzone" + }, + "actions": { + "edit": "Wijzig", + "delete": "Verwijder" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/app-shelf.json b/public/locales/nl/layout/app-shelf.json new file mode 100644 index 000000000..5c175068f --- /dev/null +++ b/public/locales/nl/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "Uw downloads" + }, + "others": { + "text": "Overige" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/calendar.json b/public/locales/nl/modules/calendar.json new file mode 100644 index 000000000..ea966125a --- /dev/null +++ b/public/locales/nl/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Kalender", + "description": "Een kalender module voor het weergeven van aankomende releases. Deze module werkt samen met de Sonarr en Radarr API.", + "settings": { + "sundayStart": { + "label": "Begin de week op zondag" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/common-media-cards.json b/public/locales/nl/modules/common-media-cards.json new file mode 100644 index 000000000..dddd79420 --- /dev/null +++ b/public/locales/nl/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Afspelen", + "request": "Aanvraag" + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/common.json b/public/locales/nl/modules/common.json new file mode 100644 index 000000000..4b90a1518 --- /dev/null +++ b/public/locales/nl/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Instellingen" + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/dashdot.json b/public/locales/nl/modules/dashdot.json new file mode 100644 index 000000000..d54247b29 --- /dev/null +++ b/public/locales/nl/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Een module voor het weergeven van de grafieken van uw Dash. instance.", + "settings": { + "cpuMultiView": { + "label": "CPU Multi-Core Weergave" + }, + "storageMultiView": { + "label": "Opslag Multi-Drive weergave" + }, + "useCompactView": { + "label": "Compacte weergave gebruiken" + }, + "graphs": { + "label": "Grafieken", + "options": { + "cpu": "CPU", + "ram": "RAM", + "storage": "Opslagruimte", + "network": "Netwerk", + "gpu": "GPU" + } + }, + "url": { + "label": "Dash. URL" + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Geen dash. service gevonden. Voeg er een toe aan uw Homarr dashboard of zet een dashdot URL in de module opties", + "noInformation": "Kan geen informatie verkrijgen van dash. - gebruikt u de laatste versie?" + }, + "graphs": { + "storage": { + "title": "Opslagruimte", + "label": "Opslagruimte:" + }, + "network": { + "title": "Netwerk", + "label": "Netwerk:", + "metrics": { + "download": "Down", + "upload": "Up" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/date.json b/public/locales/nl/modules/date.json new file mode 100644 index 000000000..6d8989c4c --- /dev/null +++ b/public/locales/nl/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Datum", + "description": "Toon de huidige tijd en datum in een kaart", + "settings": { + "display24HourFormat": { + "label": "Volledige tijd weergeven (24-uur)" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/dlspeed.json b/public/locales/nl/modules/dlspeed.json new file mode 100644 index 000000000..57b041973 --- /dev/null +++ b/public/locales/nl/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "Downloadsnelheid", + "description": "Toon de huidige downloadsnelheid van ondersteunde diensten" + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/docker.json b/public/locales/nl/modules/docker.json new file mode 100644 index 000000000..97a185944 --- /dev/null +++ b/public/locales/nl/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Maakt het mogelijk om gemakkelijk je torrents te beheren" + }, + "search": { + "placeholder": "Zoek op container of afbeeldingsnaam" + }, + "table": { + "header": { + "name": "Naam", + "image": "Afbeelding", + "ports": "Poorten", + "state": "Status" + }, + "body": { + "portCollapse": "{{ports}} meer" + }, + "states": { + "running": "Draait", + "created": "Aangemaakt", + "stopped": "Gestopt", + "unknown": "Onbekend" + } + }, + "actionBar": { + "addService": { + "title": "Service toevoegen", + "message": "Service toevoegen aan Homarr" + }, + "restart": { + "title": "Herstart" + }, + "stop": { + "title": "Stop" + }, + "start": { + "title": "Start" + }, + "refreshData": "Gegevens vernieuwen", + "addToHomarr": { + "title": "Toevoegen aan Homarr" + }, + "remove": { + "title": "Verwijder" + } + }, + "messages": { + "successfullyExecuted": { + "title": "Container {{containerName}} {{action}}ed", + "message": "Uw container was succesvol {{action}}ed" + } + }, + "errors": { + "integrationFailed": { + "title": "Docker integratie mislukt", + "message": "Bent u vergeten de doktersocket te koppelen?" + }, + "unknownError": { + "title": "Er is een fout opgetreden" + }, + "oneServiceAtATime": { + "title": "Voeg alstublieft slechts één dienst per keer toe!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/overseerr.json b/public/locales/nl/modules/overseerr.json new file mode 100644 index 000000000..d185f5f6e --- /dev/null +++ b/public/locales/nl/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "Staat je toe om media van Overseerr/Jellyseerr te zoeken en toe te voegen" + }, + "popup": { + "item": { + "buttons": { + "askFor": "Vraag om {{title}}", + "cancel": "Annuleer", + "request": "Aanvraag" + }, + "alerts": { + "automaticApproval": { + "title": "API-sleutel wordt gebruikt", + "text": "Dit verzoek zal automatisch worden goedgekeurd" + } + } + }, + "seasonSelector": { + "caption": "Selecteer de seizoenen die u wilt downloaden", + "table": { + "header": { + "season": "Seizoen", + "numberOfEpisodes": "Aantal afleveringen" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/ping.json b/public/locales/nl/modules/ping.json new file mode 100644 index 000000000..cc57fbe46 --- /dev/null +++ b/public/locales/nl/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "Hiermee kunt u controleren of de service up is of een specifieke HTTP-statuscode retourneert." + }, + "states": { + "online": "Online {{response}}", + "offline": "Offline {{response}}", + "loading": "Laden..." + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/search.json b/public/locales/nl/modules/search.json new file mode 100644 index 000000000..a48aa010f --- /dev/null +++ b/public/locales/nl/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "Zoekbalk", + "description": "Zoekbalk om te zoeken op het web, youtube, torrents of overseerr" + }, + "input": { + "placeholder": "Doorzoek het web..." + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/torrents-status.json b/public/locales/nl/modules/torrents-status.json new file mode 100644 index 000000000..255e12322 --- /dev/null +++ b/public/locales/nl/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "Toon de huidige downloadsnelheid van ondersteunde diensten", + "settings": { + "hideComplete": { + "label": "Verberg voltooide torrents" + } + } + }, + "card": { + "table": { + "header": { + "name": "Naam", + "size": "Grootte", + "download": "Down", + "upload": "Up", + "estimatedTimeOfArrival": "ETA", + "progress": "Voortgang" + }, + "body": { + "nothingFound": "Geen torrents gevonden" + } + }, + "lineChart": { + "title": "Huidige downloadsnelheid", + "download": "Download: {{download}}", + "upload": "Upload: {{upload}}", + "timeSpan": "{{seconds}} seconden geleden", + "totalDownload": "Download: {{download}}/s", + "totalUpload": "Upload: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Geen ondersteunde download clients gevonden!", + "text": "Voeg een downloadservice toe om uw huidige downloads weer te geven" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/weather.json b/public/locales/nl/modules/weather.json new file mode 100644 index 000000000..25ca62188 --- /dev/null +++ b/public/locales/nl/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Weer", + "description": "Zoek het actuele weer op uw locatie", + "settings": { + "displayInFahrenheit": { + "label": "Toon in Fahrenheit" + }, + "location": { + "label": "Weerslocatie" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Helder", + "mainlyClear": "Overwegend helder", + "fog": "Mist", + "drizzle": "Motregen", + "freezingDrizzle": "IJzel", + "rain": "Regen", + "freezingRain": "Natte sneeuw", + "snowFall": "Sneeuwval", + "snowGrains": "Sneeuw", + "rainShowers": "Regenbuien", + "snowShowers": "Sneeuwbuien", + "thunderstorm": "Onweersbui", + "thunderstormWithHail": "Onweer met hagel", + "unknown": "Onbekend" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/common.json b/public/locales/nl/settings/common.json new file mode 100644 index 000000000..fb1cbe3f2 --- /dev/null +++ b/public/locales/nl/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "Instellingen", + "tooltip": "Instellingen", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/app-width.json b/public/locales/nl/settings/customization/app-width.json new file mode 100644 index 000000000..ee95be0dc --- /dev/null +++ b/public/locales/nl/settings/customization/app-width.json @@ -0,0 +1,3 @@ +{ + "label": "Applicatie breedte" +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/color-selector.json b/public/locales/nl/settings/customization/color-selector.json new file mode 100644 index 000000000..a6f500c0e --- /dev/null +++ b/public/locales/nl/settings/customization/color-selector.json @@ -0,0 +1,3 @@ +{ + "suffix": "{{color}} kleur" +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/opacity-selector.json b/public/locales/nl/settings/customization/opacity-selector.json new file mode 100644 index 000000000..db60e2158 --- /dev/null +++ b/public/locales/nl/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "App Ondoorzichtigheid" +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json new file mode 100644 index 000000000..1d49c6bf2 --- /dev/null +++ b/public/locales/nl/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "Paginatitel", + "placeholder": "Homarr 🦞" + }, + "logo": { + "label": "Logo", + "placeholder": "/img/logo.png" + }, + "favicon": { + "label": "Favicon", + "placeholder": "/favicon.png" + }, + "background": { + "label": "Achtergrond", + "placeholder": "/img/background.png" + }, + "buttons": { + "submit": "Indienen" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/shade-selector.json b/public/locales/nl/settings/customization/shade-selector.json new file mode 100644 index 000000000..12880451a --- /dev/null +++ b/public/locales/nl/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Tint" +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/color-schema.json b/public/locales/nl/settings/general/color-schema.json new file mode 100644 index 000000000..a74b1f119 --- /dev/null +++ b/public/locales/nl/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Overschakelen naar {{scheme}} modus" +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/config-changer.json b/public/locales/nl/settings/general/config-changer.json new file mode 100644 index 000000000..04e3cf6cf --- /dev/null +++ b/public/locales/nl/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "Configuratie lader" + }, + "modal": { + "title": "Kies de naam van uw nieuwe configuratie", + "form": { + "configName": { + "label": "Configuratie naam", + "placeholder": "Uw nieuwe configuratienaam" + }, + "submitButton": "Bevestig" + }, + "events": { + "configSaved": { + "title": "Configuratie opgeslagen", + "message": "Configuratie opgeslagen als {{configName}}" + } + } + }, + "buttons": { + "download": "Download configuratie", + "delete": { + "text": "Verwijder configuratie", + "notifications": { + "deleted": { + "title": "Configuratie verwijderd", + "message": "Configuratie verwijderd" + }, + "deleteFailed": { + "title": "Configuratie verwijderen mislukt", + "message": "Configuratie verwijderen mislukt" + } + } + }, + "saveCopy": "Sla op als een kopie" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "Kan configuratie niet laden", + "message": "Kon uw configuratie niet laden. Ongeldig JSON formaat." + }, + "loadedSuccessfully": { + "title": "Configuratie {{configName}} succesvol geladen" + } + }, + "accept": { + "text": "Sleep bestanden hierheen om een configuratie te uploaden. Alleen ondersteuning voor JSON." + }, + "reject": { + "text": "Dit bestandsformaat wordt niet ondersteund. Upload a.u.b. alleen JSON." + } + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/internationalization.json b/public/locales/nl/settings/general/internationalization.json new file mode 100644 index 000000000..8a4b910a1 --- /dev/null +++ b/public/locales/nl/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Taal" +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/module-enabler.json b/public/locales/nl/settings/general/module-enabler.json new file mode 100644 index 000000000..ea042f81c --- /dev/null +++ b/public/locales/nl/settings/general/module-enabler.json @@ -0,0 +1,3 @@ +{ + "title": "Module Inschakeler" +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/search-engine.json b/public/locales/nl/settings/general/search-engine.json new file mode 100644 index 000000000..bb98fb9f3 --- /dev/null +++ b/public/locales/nl/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "Zoekmachine", + "tips": { + "generalTip": "Gebruik de voorvoegsels !yt en !t voor uw zoekopdracht om te zoeken op YouTube of naar een Torrent respectievelijk.", + "placeholderTip": "%s kan worden gebruikt als plaatshouder voor de query." + }, + "customEngine": { + "label": "Query URL", + "placeholder": "Eigen query URL" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/theme-selector.json b/public/locales/nl/settings/general/theme-selector.json new file mode 100644 index 000000000..d54071584 --- /dev/null +++ b/public/locales/nl/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Overschakelen naar {{theme}} modus" +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/widget-positions.json b/public/locales/nl/settings/general/widget-positions.json new file mode 100644 index 000000000..e41e4243c --- /dev/null +++ b/public/locales/nl/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "Plaats widgets aan de linkerkant" +} \ No newline at end of file diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json new file mode 100644 index 000000000..b3d9edbfa --- /dev/null +++ b/public/locales/pl/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "Zapisz" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/pl/layout/add-service-app-shelf.json b/public/locales/pl/layout/add-service-app-shelf.json new file mode 100644 index 000000000..543ce1ab4 --- /dev/null +++ b/public/locales/pl/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Dodaj usługę" + }, + "modal": { + "title": "Dodaj usługę", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "", + "form": { + "serviceName": { + "label": "Nazwa usługi", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "" + }, + "serviceUrl": { + "label": "" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "Rodzaj usługi", + "defaultValue": "", + "placeholder": "" + }, + "category": { + "label": "Kategoria", + "placeholder": "Wybierz kategorię lub utwórz nową", + "nothingFound": "", + "createLabel": "+ Utwórz {{query}}" + }, + "integrations": { + "apiKey": { + "label": "Klucz API", + "placeholder": "Twój klucz API", + "validation": { + "noKey": "Nieprawidłowy klucz" + }, + "tip": { + "text": "", + "link": "" + } + }, + "qBittorrent": { + "username": { + "label": "Nazwa użytkownika", + "placeholder": "admin", + "validation": { + "invalidUsername": "Nieprawidłowa nazwa użytkownika" + } + }, + "password": { + "label": "Hasło", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Nieprawidłowe hasło" + } + } + }, + "deluge": { + "password": { + "label": "Hasło", + "placeholder": "password", + "validation": { + "invalidPassword": "Nieprawidłowe hasło" + } + } + }, + "transmission": { + "username": { + "label": "Nazwa użytkownika", + "placeholder": "admin", + "validation": { + "invalidUsername": "Nieprawidłowa nazwa użytkownika" + } + }, + "password": { + "label": "Hasło", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Nieprawidłowe hasło" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "Otwórz usługę w nowej karcie" + }, + "buttons": { + "submit": { + "content": "Dodaj usługę" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/layout/app-shelf-menu.json b/public/locales/pl/layout/app-shelf-menu.json new file mode 100644 index 000000000..3fcf2bc70 --- /dev/null +++ b/public/locales/pl/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "Zapisz usługę" + } + }, + "menu": { + "labels": { + "settings": "", + "dangerZone": "Strefa zagrożenia" + }, + "actions": { + "edit": "", + "delete": "Usuń" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/layout/app-shelf.json b/public/locales/pl/layout/app-shelf.json new file mode 100644 index 000000000..20f7a7350 --- /dev/null +++ b/public/locales/pl/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "" + }, + "others": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/calendar.json b/public/locales/pl/modules/calendar.json new file mode 100644 index 000000000..234d1d237 --- /dev/null +++ b/public/locales/pl/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Kalendarz", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/common-media-cards.json b/public/locales/pl/modules/common-media-cards.json new file mode 100644 index 000000000..91283a6a4 --- /dev/null +++ b/public/locales/pl/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Odtwórz", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/common.json b/public/locales/pl/modules/common.json new file mode 100644 index 000000000..61de7370a --- /dev/null +++ b/public/locales/pl/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/dashdot.json b/public/locales/pl/modules/dashdot.json new file mode 100644 index 000000000..d20d82cb5 --- /dev/null +++ b/public/locales/pl/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Moduł do wyświetlania wykresów z uruchomionej instancji Dash.", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "CPU", + "ram": "RAM", + "storage": "", + "network": "", + "gpu": "GPU" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/date.json b/public/locales/pl/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/pl/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/dlspeed.json b/public/locales/pl/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/pl/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/docker.json b/public/locales/pl/modules/docker.json new file mode 100644 index 000000000..0b8856e5b --- /dev/null +++ b/public/locales/pl/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "Obraz", + "ports": "Porty", + "state": "Status" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "Uruchomione", + "created": "", + "stopped": "Zatrzymane", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "Dodaj usługę", + "message": "Dodaj usługę do Homarra" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "Zatrzymać" + }, + "start": { + "title": "Uruchom" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "Usuń" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "Wystąpił błąd" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/overseerr.json b/public/locales/pl/modules/overseerr.json new file mode 100644 index 000000000..7e7ba8f15 --- /dev/null +++ b/public/locales/pl/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "Poproś o {{title}}", + "cancel": "Anuluj", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "Sezon", + "numberOfEpisodes": "Liczba odcinków" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/ping.json b/public/locales/pl/modules/ping.json new file mode 100644 index 000000000..541fdab6d --- /dev/null +++ b/public/locales/pl/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/search.json b/public/locales/pl/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/pl/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/torrents-status.json b/public/locales/pl/modules/torrents-status.json new file mode 100644 index 000000000..978a99e2a --- /dev/null +++ b/public/locales/pl/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "Ukryj ukończone torrenty" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "Rozmiar", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "ETA", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "{{seconds}} sekund temu", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/weather.json b/public/locales/pl/modules/weather.json new file mode 100644 index 000000000..374eaf893 --- /dev/null +++ b/public/locales/pl/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Pogoda", + "description": "Sprawdź aktualną pogodę w swojej lokalizacji", + "settings": { + "displayInFahrenheit": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "Mgła", + "drizzle": "Mżawka", + "freezingDrizzle": "", + "rain": "Deszcz", + "freezingRain": "", + "snowFall": "Opady śniegu", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/common.json b/public/locales/pl/settings/common.json new file mode 100644 index 000000000..ded996d44 --- /dev/null +++ b/public/locales/pl/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/app-width.json b/public/locales/pl/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/color-selector.json b/public/locales/pl/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/opacity-selector.json b/public/locales/pl/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/page-appearance.json b/public/locales/pl/settings/customization/page-appearance.json new file mode 100644 index 000000000..6a0c13690 --- /dev/null +++ b/public/locales/pl/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "Tytuł strony", + "placeholder": "Homarr 🦞" + }, + "logo": { + "label": "Logo", + "placeholder": "/img/logo.png" + }, + "favicon": { + "label": "", + "placeholder": "/favicon.png" + }, + "background": { + "label": "", + "placeholder": "/img/background.png" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/shade-selector.json b/public/locales/pl/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/general/color-schema.json b/public/locales/pl/settings/general/color-schema.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/general/color-schema.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/general/config-changer.json b/public/locales/pl/settings/general/config-changer.json new file mode 100644 index 000000000..c8b948c7a --- /dev/null +++ b/public/locales/pl/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "Konfiguracja zapisana", + "message": "Konfiguracja zapisana jako {{configName}}" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "Usuń konfigurację", + "notifications": { + "deleted": { + "title": "Konfiguracja usunięta", + "message": "Konfiguracja usunięta" + }, + "deleteFailed": { + "title": "Nie udało się usunąć konfiguracji", + "message": "Nie udało się usunąć konfiguracji" + } + } + }, + "saveCopy": "Zapisz kopię" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/general/internationalization.json b/public/locales/pl/settings/general/internationalization.json new file mode 100644 index 000000000..e021aae8c --- /dev/null +++ b/public/locales/pl/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Język" +} \ No newline at end of file diff --git a/public/locales/pl/settings/general/module-enabler.json b/public/locales/pl/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/general/search-engine.json b/public/locales/pl/settings/general/search-engine.json new file mode 100644 index 000000000..7ead6657b --- /dev/null +++ b/public/locales/pl/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "Silnik wyszukiwania", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/general/theme-selector.json b/public/locales/pl/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/pl/settings/general/widget-positions.json b/public/locales/pl/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/pl/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json new file mode 100644 index 000000000..231732eb5 --- /dev/null +++ b/public/locales/ru/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/ru/layout/add-service-app-shelf.json b/public/locales/ru/layout/add-service-app-shelf.json new file mode 100644 index 000000000..e05e6150d --- /dev/null +++ b/public/locales/ru/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Добавить сервис" + }, + "modal": { + "title": "Добавить сервис", + "form": { + "validation": { + "invalidUrl": "Пожалуйста, введите корректный адрес", + "noStatusCodeSelected": "Пожалуйста, выберите код состояния" + } + }, + "tabs": { + "options": { + "title": "Настройки", + "form": { + "serviceName": { + "label": "Имя сервиса", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "URL-адрес иконки" + }, + "serviceUrl": { + "label": "Адрес сервиса" + }, + "onClickUrl": { + "label": "URL-адрес при нажатии" + }, + "serviceType": { + "label": "Тип сервиса", + "defaultValue": "Другое", + "placeholder": "Выберите один" + }, + "category": { + "label": "Категория", + "placeholder": "Выберите категорию или создайте новую", + "nothingFound": "Ничего не найдено", + "createLabel": "+ Добавить {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API-ключ", + "placeholder": "Ваш API-ключ", + "validation": { + "noKey": "Неверный ключ" + }, + "tip": { + "text": "Получите API-ключ", + "link": "здесь." + } + }, + "qBittorrent": { + "username": { + "label": "Имя пользователя", + "placeholder": "admin", + "validation": { + "invalidUsername": "Неверное имя пользователя" + } + }, + "password": { + "label": "Пароль", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Неверный пароль" + } + } + }, + "deluge": { + "password": { + "label": "Пароль", + "placeholder": "Введите пароль", + "validation": { + "invalidPassword": "Неверный пароль" + } + } + }, + "transmission": { + "username": { + "label": "Имя пользователя", + "placeholder": "admin", + "validation": { + "invalidUsername": "Неверное имя пользователя" + } + }, + "password": { + "label": "Пароль", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Неверный пароль" + } + } + } + } + } + }, + "advancedOptions": { + "title": "Дополнительные настройки", + "form": { + "httpStatusCodes": { + "label": "Коды состояния HTTP", + "placeholder": "Выберите подходящие коды состояния", + "clearButtonLabel": "Очистить выбранное", + "nothingFound": "Ничего не найдено" + }, + "openServiceInNewTab": { + "label": "Открывать сервис в новой вкладке" + }, + "buttons": { + "submit": { + "content": "Добавить сервис" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/layout/app-shelf-menu.json b/public/locales/ru/layout/app-shelf-menu.json new file mode 100644 index 000000000..62cddda71 --- /dev/null +++ b/public/locales/ru/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "Редактировать сервис", + "buttons": { + "save": "Сохранить" + } + }, + "menu": { + "labels": { + "settings": "Настройки", + "dangerZone": "Опасная зона" + }, + "actions": { + "edit": "Изменить", + "delete": "Удалить" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/layout/app-shelf.json b/public/locales/ru/layout/app-shelf.json new file mode 100644 index 000000000..9373cc694 --- /dev/null +++ b/public/locales/ru/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "Ваши загрузки" + }, + "others": { + "text": "Другое" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/calendar.json b/public/locales/ru/modules/calendar.json new file mode 100644 index 000000000..b55010493 --- /dev/null +++ b/public/locales/ru/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Календарь", + "description": "Модуль календаря для отображения предстоящих релизов. Интегрируется с Sonarr и Radarr.", + "settings": { + "sundayStart": { + "label": "Начинать неделю с воскресенья" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/common-media-cards.json b/public/locales/ru/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/ru/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/common.json b/public/locales/ru/modules/common.json new file mode 100644 index 000000000..127ac067c --- /dev/null +++ b/public/locales/ru/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Настройки" + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/dashdot.json b/public/locales/ru/modules/dashdot.json new file mode 100644 index 000000000..e90a81e2c --- /dev/null +++ b/public/locales/ru/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Модуль для отображения графиков из Dash.", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "", + "ram": "", + "storage": "", + "network": "", + "gpu": "" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "Хранилище:" + }, + "network": { + "title": "", + "label": "Сеть:", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "memory": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/date.json b/public/locales/ru/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/ru/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/dlspeed.json b/public/locales/ru/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/ru/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/docker.json b/public/locales/ru/modules/docker.json new file mode 100644 index 000000000..55fa28270 --- /dev/null +++ b/public/locales/ru/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "Добавить сервис", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/overseerr.json b/public/locales/ru/modules/overseerr.json new file mode 100644 index 000000000..1300c27f3 --- /dev/null +++ b/public/locales/ru/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/ping.json b/public/locales/ru/modules/ping.json new file mode 100644 index 000000000..3ba3aefa0 --- /dev/null +++ b/public/locales/ru/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/search.json b/public/locales/ru/modules/search.json new file mode 100644 index 000000000..15f8a5766 --- /dev/null +++ b/public/locales/ru/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "Поиск", + "description": "Панель для поиска в интернете, по youtube, торрентам или overseerr" + }, + "input": { + "placeholder": "Искать в интернете..." + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/torrents-status.json b/public/locales/ru/modules/torrents-status.json new file mode 100644 index 000000000..86b10fa25 --- /dev/null +++ b/public/locales/ru/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/weather.json b/public/locales/ru/modules/weather.json new file mode 100644 index 000000000..33382ec1e --- /dev/null +++ b/public/locales/ru/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Погода", + "description": "Узнайте текущую погоду в вашем регионе", + "settings": { + "displayInFahrenheit": { + "label": "Отображение в градусах Фаренгейта" + }, + "location": { + "label": "Местоположение" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Ясно", + "mainlyClear": "В основном ясно", + "fog": "Туман", + "drizzle": "Мелкий дождь", + "freezingDrizzle": "Изморозь", + "rain": "Дождь", + "freezingRain": "Ледяной дождь", + "snowFall": "Снегопад", + "snowGrains": "", + "rainShowers": "Ливневый дождь", + "snowShowers": "Пурга", + "thunderstorm": "Гроза", + "thunderstormWithHail": "Гроза с градом", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/common.json b/public/locales/ru/settings/common.json new file mode 100644 index 000000000..c06dd8457 --- /dev/null +++ b/public/locales/ru/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "Настройки", + "tooltip": "Настройки", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/app-width.json b/public/locales/ru/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/color-selector.json b/public/locales/ru/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/opacity-selector.json b/public/locales/ru/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json new file mode 100644 index 000000000..592c372a8 --- /dev/null +++ b/public/locales/ru/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "", + "placeholder": "" + }, + "logo": { + "label": "", + "placeholder": "" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/shade-selector.json b/public/locales/ru/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/general/color-schema.json b/public/locales/ru/settings/general/color-schema.json new file mode 100644 index 000000000..790c0121a --- /dev/null +++ b/public/locales/ru/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Переключиться на {{scheme}} режим" +} \ No newline at end of file diff --git a/public/locales/ru/settings/general/config-changer.json b/public/locales/ru/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/ru/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/general/internationalization.json b/public/locales/ru/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/general/module-enabler.json b/public/locales/ru/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/general/search-engine.json b/public/locales/ru/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/ru/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/general/theme-selector.json b/public/locales/ru/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/ru/settings/general/widget-positions.json b/public/locales/ru/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/ru/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json new file mode 100644 index 000000000..c5e9b6e3e --- /dev/null +++ b/public/locales/sl/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "Shrani" + }, + "tip": "Nasvet: " +} \ No newline at end of file diff --git a/public/locales/sl/layout/add-service-app-shelf.json b/public/locales/sl/layout/add-service-app-shelf.json new file mode 100644 index 000000000..b142253b2 --- /dev/null +++ b/public/locales/sl/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "Dodaj storitev" + }, + "modal": { + "title": "Dodaj storitev", + "form": { + "validation": { + "invalidUrl": "Prosim vnesite veljaven spletni naslov", + "noStatusCodeSelected": "Izberite kodo statusa" + } + }, + "tabs": { + "options": { + "title": "Možnosti", + "form": { + "serviceName": { + "label": "Naziv storitve", + "placeholder": "Plex" + }, + "iconUrl": { + "label": "URL ikone" + }, + "serviceUrl": { + "label": "URL storitve" + }, + "onClickUrl": { + "label": "URL ob kliku" + }, + "serviceType": { + "label": "Vrsta storitve", + "defaultValue": "Drugo", + "placeholder": "Izberite eno" + }, + "category": { + "label": "Kategorija", + "placeholder": "Izberite kategorijo ali ustvarite novo", + "nothingFound": "Brez rezultatov iskanja", + "createLabel": "+ Ustvarite {{query}}" + }, + "integrations": { + "apiKey": { + "label": "API ključ", + "placeholder": "Vaš ključ API", + "validation": { + "noKey": "Neveljaven ključ" + }, + "tip": { + "text": "Pridobite svoj API ključ", + "link": "tukaj." + } + }, + "qBittorrent": { + "username": { + "label": "Uporabniško ime", + "placeholder": "admin", + "validation": { + "invalidUsername": "Neveljavno uporabniško ime" + } + }, + "password": { + "label": "Geslo", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Neveljavno geslo" + } + } + }, + "deluge": { + "password": { + "label": "Geslo", + "placeholder": "geslo", + "validation": { + "invalidPassword": "Neveljavno geslo" + } + } + }, + "transmission": { + "username": { + "label": "Uporabniško ime", + "placeholder": "admin", + "validation": { + "invalidUsername": "Neveljavno uporabniško ime" + } + }, + "password": { + "label": "Geslo", + "placeholder": "adminadmin", + "validation": { + "invalidPassword": "Neveljavno geslo" + } + } + } + } + } + }, + "advancedOptions": { + "title": "Napredne nastavitve", + "form": { + "httpStatusCodes": { + "label": "HTTP statusne kode", + "placeholder": "Izberite veljavne kode statusa", + "clearButtonLabel": "Počisti izbiro", + "nothingFound": "Brez rezultatov iskanja" + }, + "openServiceInNewTab": { + "label": "Odprite storitev v novem zavihku" + }, + "buttons": { + "submit": { + "content": "Dodaj storitev" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/layout/app-shelf-menu.json b/public/locales/sl/layout/app-shelf-menu.json new file mode 100644 index 000000000..d743e43b7 --- /dev/null +++ b/public/locales/sl/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "Spreminjanje storitve", + "buttons": { + "save": "Shrani storitev" + } + }, + "menu": { + "labels": { + "settings": "Nastavitve", + "dangerZone": "Nevarno območje" + }, + "actions": { + "edit": "Uredi", + "delete": "Izbriši" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/layout/app-shelf.json b/public/locales/sl/layout/app-shelf.json new file mode 100644 index 000000000..103dc7193 --- /dev/null +++ b/public/locales/sl/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "Vaši prenosi" + }, + "others": { + "text": "Drugo" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/calendar.json b/public/locales/sl/modules/calendar.json new file mode 100644 index 000000000..0f31e2d4c --- /dev/null +++ b/public/locales/sl/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Koledar", + "description": "Koledarski modul za prikaz prihajajočih izdaj. Deluje z API vmesnikom od Sonarr in Radarr.", + "settings": { + "sundayStart": { + "label": "Začni teden z nedeljo" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/common-media-cards.json b/public/locales/sl/modules/common-media-cards.json new file mode 100644 index 000000000..064e60098 --- /dev/null +++ b/public/locales/sl/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Predvajaj", + "request": "Prošnja" + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/common.json b/public/locales/sl/modules/common.json new file mode 100644 index 000000000..93851f8a5 --- /dev/null +++ b/public/locales/sl/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "Nastavitve" + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/dashdot.json b/public/locales/sl/modules/dashdot.json new file mode 100644 index 000000000..84c498383 --- /dev/null +++ b/public/locales/sl/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Modul za prikazovanje grafov iz vašega delujočega programa Dash.", + "settings": { + "cpuMultiView": { + "label": "Pogled večjedrnih procesorjev" + }, + "storageMultiView": { + "label": "Pogled naprav za shranjevanje" + }, + "useCompactView": { + "label": "Uporaba kompaktnega pogleda" + }, + "graphs": { + "label": "Grafi", + "options": { + "cpu": "CPU", + "ram": "RAM", + "storage": "Shramba", + "network": "Omrežje", + "gpu": "GPU" + } + }, + "url": { + "label": "Dash. URL" + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Dash. storitev ni bila najdena. Prosimo, dodajte jo na nadzorno ploščo Homarr ali nastavite naslov URL dashdot v možnostih modula", + "noInformation": "Ne morem pridobiti informacij iz Dash. - ali uporabljate najnovejšo različico?" + }, + "graphs": { + "storage": { + "title": "Shramba", + "label": "Shramba:" + }, + "network": { + "title": "Omrežje", + "label": "Omrežje:", + "metrics": { + "download": "Dol", + "upload": "Gor" + } + }, + "cpu": { + "title": "CPU" + }, + "memory": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/date.json b/public/locales/sl/modules/date.json new file mode 100644 index 000000000..b26ac578f --- /dev/null +++ b/public/locales/sl/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Datum", + "description": "Prikaz trenutnega časa in datuma na kartici", + "settings": { + "display24HourFormat": { + "label": "Prikaz polnega časa (24-urni)" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/dlspeed.json b/public/locales/sl/modules/dlspeed.json new file mode 100644 index 000000000..8b7cbdaf9 --- /dev/null +++ b/public/locales/sl/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "Hitrost prenosa", + "description": "Prikaži trenutno hitrost prenosa podprtih storitev" + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/docker.json b/public/locales/sl/modules/docker.json new file mode 100644 index 000000000..3ee64c554 --- /dev/null +++ b/public/locales/sl/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Omogoča enostavno upravljanje torrentov" + }, + "search": { + "placeholder": "Iskanje po zabojniku ali imenu njegove slike" + }, + "table": { + "header": { + "name": "Ime", + "image": "Slika", + "ports": "Vrata", + "state": "Stanje" + }, + "body": { + "portCollapse": "{{ports}} več" + }, + "states": { + "running": "Se izvaja", + "created": "Ustvarjeno", + "stopped": "Zaustavljeno", + "unknown": "Neznano" + } + }, + "actionBar": { + "addService": { + "title": "Dodaj storitev", + "message": "Dodajanje storitev v Homarr" + }, + "restart": { + "title": "Ponovno zaženi" + }, + "stop": { + "title": "Ustavi" + }, + "start": { + "title": "Zaženi" + }, + "refreshData": "Osveži podatke", + "addToHomarr": { + "title": "Dodaj v Homarr" + }, + "remove": { + "title": "Odstrani" + } + }, + "messages": { + "successfullyExecuted": { + "title": "Zabojnik {{containerName}} {{action}}", + "message": "Vaš zabojnik je bil uspešno {{action}}" + } + }, + "errors": { + "integrationFailed": { + "title": "Integracija Dockerja ni uspela", + "message": "Ste pozabili namestiti Docker vtičnico?" + }, + "unknownError": { + "title": "Prišlo je do napake" + }, + "oneServiceAtATime": { + "title": "Naenkrat dodajte samo eno storitev!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/overseerr.json b/public/locales/sl/modules/overseerr.json new file mode 100644 index 000000000..451d366ad --- /dev/null +++ b/public/locales/sl/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "Omogoča iskanje in dodajanje medijev iz storitev Overseerr/Jellyseerr" + }, + "popup": { + "item": { + "buttons": { + "askFor": "Vprašajte za {{title}}", + "cancel": "Prekliči", + "request": "Prošnja" + }, + "alerts": { + "automaticApproval": { + "title": "Z uporabo API ključa", + "text": "Ta zahteva bo samodejno odobrena" + } + } + }, + "seasonSelector": { + "caption": "Označite sezone, ki jih želite prenesti", + "table": { + "header": { + "season": "Sezona", + "numberOfEpisodes": "Število epizod" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/ping.json b/public/locales/sl/modules/ping.json new file mode 100644 index 000000000..9ef65dc92 --- /dev/null +++ b/public/locales/sl/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "Omogoča preverjanje, ali je storitev vzpostavljena ali vrača določeno HTTP kodo statusa." + }, + "states": { + "online": "Povezan {{response}}", + "offline": "Prekinjen {{response}}", + "loading": "Nalaganje..." + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/search.json b/public/locales/sl/modules/search.json new file mode 100644 index 000000000..18e7637b2 --- /dev/null +++ b/public/locales/sl/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "Iskalna vrstica", + "description": "Iskalna vrstica za iskanje po spletu, youtubu, torentih ali storitvi overseerr" + }, + "input": { + "placeholder": "Preišči splet..." + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/torrents-status.json b/public/locales/sl/modules/torrents-status.json new file mode 100644 index 000000000..aab63c6bc --- /dev/null +++ b/public/locales/sl/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "Prikaži trenutno hitrost prenosa podprtih storitev", + "settings": { + "hideComplete": { + "label": "Skrijte dokončane torrente" + } + } + }, + "card": { + "table": { + "header": { + "name": "Ime", + "size": "Velikost", + "download": "Dol", + "upload": "Gor", + "estimatedTimeOfArrival": "ETA", + "progress": "Napredek" + }, + "body": { + "nothingFound": "Ni najdenih torrentov" + } + }, + "lineChart": { + "title": "Trenutna hitrost prejemanja", + "download": "Prenašanje: {{download}}", + "upload": "Nalaganje: {{upload}}", + "timeSpan": "Pred sekundami: {{seconds}}", + "totalDownload": "Prenosi: {{download}}/s", + "totalUpload": "Nalaganj: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Ni bilo najdenih podprtih odjemalcev za prenos!", + "text": "Dodajte storitev prenosa za ogled trenutnih prenosov" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/weather.json b/public/locales/sl/modules/weather.json new file mode 100644 index 000000000..97baa3aa9 --- /dev/null +++ b/public/locales/sl/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "Vreme", + "description": "Iskanje trenutnega vremena na vaši lokaciji", + "settings": { + "displayInFahrenheit": { + "label": "Prikaz v Fahrenheitu" + }, + "location": { + "label": "Lokacija vremena" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Počisti", + "mainlyClear": "Večinoma jasno", + "fog": "Megla", + "drizzle": "Pršec", + "freezingDrizzle": "Leden pršec", + "rain": "Dež", + "freezingRain": "Ledeni dež", + "snowFall": "Padec snega", + "snowGrains": "Snežna zrna", + "rainShowers": "Deževni nalivi", + "snowShowers": "Snežne plohe", + "thunderstorm": "Nevihta", + "thunderstormWithHail": "Nevihta s točo", + "unknown": "Neznano" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/common.json b/public/locales/sl/settings/common.json new file mode 100644 index 000000000..89a1a9afa --- /dev/null +++ b/public/locales/sl/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "Nastavitve", + "tooltip": "Nastavitve", + "tabs": { + "common": "Skupno", + "customizations": "Prilagoditve" + }, + "tips": { + "configTip": "Konfiguracijsko datoteko naložite tako, da jo povlečete in spustite na stran!" + }, + "credits": { + "madeWithLove": "Narejeno s ❤️ od @" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/app-width.json b/public/locales/sl/settings/customization/app-width.json new file mode 100644 index 000000000..372438bd7 --- /dev/null +++ b/public/locales/sl/settings/customization/app-width.json @@ -0,0 +1,3 @@ +{ + "label": "Širina aplikacije" +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/color-selector.json b/public/locales/sl/settings/customization/color-selector.json new file mode 100644 index 000000000..305b7922b --- /dev/null +++ b/public/locales/sl/settings/customization/color-selector.json @@ -0,0 +1,3 @@ +{ + "suffix": "{{color}} barva" +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/opacity-selector.json b/public/locales/sl/settings/customization/opacity-selector.json new file mode 100644 index 000000000..5e8b2a794 --- /dev/null +++ b/public/locales/sl/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Prosojnost aplikacije" +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/page-appearance.json b/public/locales/sl/settings/customization/page-appearance.json new file mode 100644 index 000000000..b82c34ccf --- /dev/null +++ b/public/locales/sl/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "Naslov strani", + "placeholder": "Homarr 🦞" + }, + "logo": { + "label": "Logotip", + "placeholder": "/img/logo.png" + }, + "favicon": { + "label": "Favicon", + "placeholder": "/favicon.png" + }, + "background": { + "label": "Ozadje", + "placeholder": "/img/background.png" + }, + "buttons": { + "submit": "Pošlji" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/shade-selector.json b/public/locales/sl/settings/customization/shade-selector.json new file mode 100644 index 000000000..83fe0d004 --- /dev/null +++ b/public/locales/sl/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Osenčeno" +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/color-schema.json b/public/locales/sl/settings/general/color-schema.json new file mode 100644 index 000000000..ecf4f8ee0 --- /dev/null +++ b/public/locales/sl/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Preklop na {{scheme}} način" +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/config-changer.json b/public/locales/sl/settings/general/config-changer.json new file mode 100644 index 000000000..835bfb160 --- /dev/null +++ b/public/locales/sl/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "Nalagalnik konfiguracije" + }, + "modal": { + "title": "Izberite ime vaše nove konfiguracije", + "form": { + "configName": { + "label": "Ime konfiguracije", + "placeholder": "Vaše novo ime konfiguracije" + }, + "submitButton": "Potrdi" + }, + "events": { + "configSaved": { + "title": "Konfiguracija je shranjena", + "message": "Konfiguracija shranjena kot {{configName}}" + } + } + }, + "buttons": { + "download": "Prenos konfiguracije", + "delete": { + "text": "Brisanje konfiguracije", + "notifications": { + "deleted": { + "title": "Konfiguracija izbrisana", + "message": "Konfiguracija izbrisana" + }, + "deleteFailed": { + "title": "Brisanje konfiguracije ni uspelo", + "message": "Brisanje konfiguracije ni uspelo" + } + } + }, + "saveCopy": "Shrani kopijo" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "Ni mogoče naložiti konfiguracije", + "message": "Ni bilo mogoče naložiti vaše konfiguracije. Nepravilna oblika JSON." + }, + "loadedSuccessfully": { + "title": "Konfiguracija {{configName}} je uspešno naložena" + } + }, + "accept": { + "text": "Če želite naložiti konfiguracijo, povlecite datoteke sem. Podpora samo za JSON." + }, + "reject": { + "text": "Ta oblika datoteke ni podprta. Prenesite samo JSON." + } + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/internationalization.json b/public/locales/sl/settings/general/internationalization.json new file mode 100644 index 000000000..bdd9c7b6a --- /dev/null +++ b/public/locales/sl/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Jezik" +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/module-enabler.json b/public/locales/sl/settings/general/module-enabler.json new file mode 100644 index 000000000..48543dc34 --- /dev/null +++ b/public/locales/sl/settings/general/module-enabler.json @@ -0,0 +1,3 @@ +{ + "title": "Omogočanje modulov" +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/search-engine.json b/public/locales/sl/settings/general/search-engine.json new file mode 100644 index 000000000..6c559e498 --- /dev/null +++ b/public/locales/sl/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "Iskalnik", + "tips": { + "generalTip": "Za iskanje v YouTubu ali Torrentu uporabite predponi !yt in !t pred poizvedbo.", + "placeholderTip": "%s lahko uporabite kot nadomestno ime za poizvedbo." + }, + "customEngine": { + "label": "URL poizvedbe", + "placeholder": "URL poizvedbe po meri" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/theme-selector.json b/public/locales/sl/settings/general/theme-selector.json new file mode 100644 index 000000000..ebbeb40b9 --- /dev/null +++ b/public/locales/sl/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Preklop na {{theme}} način" +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/widget-positions.json b/public/locales/sl/settings/general/widget-positions.json new file mode 100644 index 000000000..d34ee5438 --- /dev/null +++ b/public/locales/sl/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "Prikaži gradnike na levi strani" +} \ No newline at end of file diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json new file mode 100644 index 000000000..231732eb5 --- /dev/null +++ b/public/locales/sv/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/sv/layout/add-service-app-shelf.json b/public/locales/sv/layout/add-service-app-shelf.json new file mode 100644 index 000000000..5868261d6 --- /dev/null +++ b/public/locales/sv/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "" + }, + "modal": { + "title": "", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "", + "form": { + "serviceName": { + "label": "", + "placeholder": "" + }, + "iconUrl": { + "label": "" + }, + "serviceUrl": { + "label": "" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "", + "defaultValue": "", + "placeholder": "" + }, + "category": { + "label": "", + "placeholder": "", + "nothingFound": "", + "createLabel": "" + }, + "integrations": { + "apiKey": { + "label": "", + "placeholder": "", + "validation": { + "noKey": "" + }, + "tip": { + "text": "", + "link": "" + } + }, + "qBittorrent": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "deluge": { + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "transmission": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "" + }, + "buttons": { + "submit": { + "content": "" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/app-shelf-menu.json b/public/locales/sv/layout/app-shelf-menu.json new file mode 100644 index 000000000..452c7a882 --- /dev/null +++ b/public/locales/sv/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "" + } + }, + "menu": { + "labels": { + "settings": "", + "dangerZone": "" + }, + "actions": { + "edit": "", + "delete": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/app-shelf.json b/public/locales/sv/layout/app-shelf.json new file mode 100644 index 000000000..20f7a7350 --- /dev/null +++ b/public/locales/sv/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "" + }, + "others": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/calendar.json b/public/locales/sv/modules/calendar.json new file mode 100644 index 000000000..e16beca62 --- /dev/null +++ b/public/locales/sv/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/common-media-cards.json b/public/locales/sv/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/sv/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/common.json b/public/locales/sv/modules/common.json new file mode 100644 index 000000000..61de7370a --- /dev/null +++ b/public/locales/sv/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/dashdot.json b/public/locales/sv/modules/dashdot.json new file mode 100644 index 000000000..235d3b4dc --- /dev/null +++ b/public/locales/sv/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "", + "ram": "", + "storage": "", + "network": "", + "gpu": "" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "memory": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/date.json b/public/locales/sv/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/sv/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/dlspeed.json b/public/locales/sv/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/sv/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/docker.json b/public/locales/sv/modules/docker.json new file mode 100644 index 000000000..a2a185261 --- /dev/null +++ b/public/locales/sv/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/overseerr.json b/public/locales/sv/modules/overseerr.json new file mode 100644 index 000000000..0a6da5756 --- /dev/null +++ b/public/locales/sv/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/ping.json b/public/locales/sv/modules/ping.json new file mode 100644 index 000000000..3ba3aefa0 --- /dev/null +++ b/public/locales/sv/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/search.json b/public/locales/sv/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/sv/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/torrents-status.json b/public/locales/sv/modules/torrents-status.json new file mode 100644 index 000000000..86b10fa25 --- /dev/null +++ b/public/locales/sv/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/weather.json b/public/locales/sv/modules/weather.json new file mode 100644 index 000000000..7f9c8b103 --- /dev/null +++ b/public/locales/sv/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "displayInFahrenheit": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/common.json b/public/locales/sv/settings/common.json new file mode 100644 index 000000000..ded996d44 --- /dev/null +++ b/public/locales/sv/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/app-width.json b/public/locales/sv/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/color-selector.json b/public/locales/sv/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/opacity-selector.json b/public/locales/sv/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/page-appearance.json b/public/locales/sv/settings/customization/page-appearance.json new file mode 100644 index 000000000..592c372a8 --- /dev/null +++ b/public/locales/sv/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "", + "placeholder": "" + }, + "logo": { + "label": "", + "placeholder": "" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/shade-selector.json b/public/locales/sv/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/general/color-schema.json b/public/locales/sv/settings/general/color-schema.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/general/color-schema.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/general/config-changer.json b/public/locales/sv/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/sv/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/general/internationalization.json b/public/locales/sv/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/general/module-enabler.json b/public/locales/sv/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/general/search-engine.json b/public/locales/sv/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/sv/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/general/theme-selector.json b/public/locales/sv/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/general/widget-positions.json b/public/locales/sv/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json new file mode 100644 index 000000000..231732eb5 --- /dev/null +++ b/public/locales/zh/common.json @@ -0,0 +1,6 @@ +{ + "actions": { + "save": "" + }, + "tip": "" +} \ No newline at end of file diff --git a/public/locales/zh/layout/add-service-app-shelf.json b/public/locales/zh/layout/add-service-app-shelf.json new file mode 100644 index 000000000..5868261d6 --- /dev/null +++ b/public/locales/zh/layout/add-service-app-shelf.json @@ -0,0 +1,118 @@ +{ + "actionIcon": { + "tooltip": "" + }, + "modal": { + "title": "", + "form": { + "validation": { + "invalidUrl": "", + "noStatusCodeSelected": "" + } + }, + "tabs": { + "options": { + "title": "", + "form": { + "serviceName": { + "label": "", + "placeholder": "" + }, + "iconUrl": { + "label": "" + }, + "serviceUrl": { + "label": "" + }, + "onClickUrl": { + "label": "" + }, + "serviceType": { + "label": "", + "defaultValue": "", + "placeholder": "" + }, + "category": { + "label": "", + "placeholder": "", + "nothingFound": "", + "createLabel": "" + }, + "integrations": { + "apiKey": { + "label": "", + "placeholder": "", + "validation": { + "noKey": "" + }, + "tip": { + "text": "", + "link": "" + } + }, + "qBittorrent": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "deluge": { + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + }, + "transmission": { + "username": { + "label": "", + "placeholder": "", + "validation": { + "invalidUsername": "" + } + }, + "password": { + "label": "", + "placeholder": "", + "validation": { + "invalidPassword": "" + } + } + } + } + } + }, + "advancedOptions": { + "title": "", + "form": { + "httpStatusCodes": { + "label": "", + "placeholder": "", + "clearButtonLabel": "", + "nothingFound": "" + }, + "openServiceInNewTab": { + "label": "" + }, + "buttons": { + "submit": { + "content": "" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/layout/app-shelf-menu.json b/public/locales/zh/layout/app-shelf-menu.json new file mode 100644 index 000000000..452c7a882 --- /dev/null +++ b/public/locales/zh/layout/app-shelf-menu.json @@ -0,0 +1,18 @@ +{ + "modal": { + "title": "", + "buttons": { + "save": "" + } + }, + "menu": { + "labels": { + "settings": "", + "dangerZone": "" + }, + "actions": { + "edit": "", + "delete": "" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/layout/app-shelf.json b/public/locales/zh/layout/app-shelf.json new file mode 100644 index 000000000..20f7a7350 --- /dev/null +++ b/public/locales/zh/layout/app-shelf.json @@ -0,0 +1,10 @@ +{ + "accordions": { + "downloads": { + "text": "" + }, + "others": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/calendar.json b/public/locales/zh/modules/calendar.json new file mode 100644 index 000000000..e16beca62 --- /dev/null +++ b/public/locales/zh/modules/calendar.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "sundayStart": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/common-media-cards.json b/public/locales/zh/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/zh/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/common.json b/public/locales/zh/modules/common.json new file mode 100644 index 000000000..61de7370a --- /dev/null +++ b/public/locales/zh/modules/common.json @@ -0,0 +1,5 @@ +{ + "settings": { + "label": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json new file mode 100644 index 000000000..235d3b4dc --- /dev/null +++ b/public/locales/zh/modules/dashdot.json @@ -0,0 +1,60 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "cpuMultiView": { + "label": "" + }, + "storageMultiView": { + "label": "" + }, + "useCompactView": { + "label": "" + }, + "graphs": { + "label": "", + "options": { + "cpu": "", + "ram": "", + "storage": "", + "network": "", + "gpu": "" + } + }, + "url": { + "label": "" + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "" + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "memory": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/date.json b/public/locales/zh/modules/date.json new file mode 100644 index 000000000..ab82eb8ed --- /dev/null +++ b/public/locales/zh/modules/date.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "display24HourFormat": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/dlspeed.json b/public/locales/zh/modules/dlspeed.json new file mode 100644 index 000000000..f8daba13b --- /dev/null +++ b/public/locales/zh/modules/dlspeed.json @@ -0,0 +1,6 @@ +{ + "descriptor": { + "name": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/docker.json b/public/locales/zh/modules/docker.json new file mode 100644 index 000000000..a2a185261 --- /dev/null +++ b/public/locales/zh/modules/docker.json @@ -0,0 +1,69 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": "", + "addToHomarr": { + "title": "" + }, + "remove": { + "title": "" + } + }, + "messages": { + "successfullyExecuted": { + "title": "", + "message": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/overseerr.json b/public/locales/zh/modules/overseerr.json new file mode 100644 index 000000000..0a6da5756 --- /dev/null +++ b/public/locales/zh/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/ping.json b/public/locales/zh/modules/ping.json new file mode 100644 index 000000000..3ba3aefa0 --- /dev/null +++ b/public/locales/zh/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/search.json b/public/locales/zh/modules/search.json new file mode 100644 index 000000000..cf06695e4 --- /dev/null +++ b/public/locales/zh/modules/search.json @@ -0,0 +1,9 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/torrents-status.json b/public/locales/zh/modules/torrents-status.json new file mode 100644 index 000000000..86b10fa25 --- /dev/null +++ b/public/locales/zh/modules/torrents-status.json @@ -0,0 +1,40 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "hideComplete": { + "label": "" + } + } + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/weather.json b/public/locales/zh/modules/weather.json new file mode 100644 index 000000000..7f9c8b103 --- /dev/null +++ b/public/locales/zh/modules/weather.json @@ -0,0 +1,32 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "displayInFahrenheit": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/common.json b/public/locales/zh/settings/common.json new file mode 100644 index 000000000..ded996d44 --- /dev/null +++ b/public/locales/zh/settings/common.json @@ -0,0 +1,14 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/app-width.json b/public/locales/zh/settings/customization/app-width.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/customization/app-width.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/color-selector.json b/public/locales/zh/settings/customization/color-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/customization/color-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/opacity-selector.json b/public/locales/zh/settings/customization/opacity-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/customization/opacity-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/page-appearance.json b/public/locales/zh/settings/customization/page-appearance.json new file mode 100644 index 000000000..592c372a8 --- /dev/null +++ b/public/locales/zh/settings/customization/page-appearance.json @@ -0,0 +1,21 @@ +{ + "pageTitle": { + "label": "", + "placeholder": "" + }, + "logo": { + "label": "", + "placeholder": "" + }, + "favicon": { + "label": "", + "placeholder": "" + }, + "background": { + "label": "", + "placeholder": "" + }, + "buttons": { + "submit": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/shade-selector.json b/public/locales/zh/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/general/color-schema.json b/public/locales/zh/settings/general/color-schema.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/general/color-schema.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/general/config-changer.json b/public/locales/zh/settings/general/config-changer.json new file mode 100644 index 000000000..6d130e67d --- /dev/null +++ b/public/locales/zh/settings/general/config-changer.json @@ -0,0 +1,55 @@ +{ + "configSelect": { + "label": "" + }, + "modal": { + "title": "", + "form": { + "configName": { + "label": "", + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "text": "" + }, + "reject": { + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/general/internationalization.json b/public/locales/zh/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/general/module-enabler.json b/public/locales/zh/settings/general/module-enabler.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/general/module-enabler.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/general/search-engine.json b/public/locales/zh/settings/general/search-engine.json new file mode 100644 index 000000000..20a3b127a --- /dev/null +++ b/public/locales/zh/settings/general/search-engine.json @@ -0,0 +1,11 @@ +{ + "title": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "label": "", + "placeholder": "" + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/general/theme-selector.json b/public/locales/zh/settings/general/theme-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/general/theme-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/zh/settings/general/widget-positions.json b/public/locales/zh/settings/general/widget-positions.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/zh/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/components/Settings/LanguageSwitch.tsx b/src/components/Settings/LanguageSwitch.tsx index 01e2ecfec..c9334c0b4 100644 --- a/src/components/Settings/LanguageSwitch.tsx +++ b/src/components/Settings/LanguageSwitch.tsx @@ -12,7 +12,7 @@ export default function LanguageSwitch() { const { t, i18n } = useTranslation('settings/general/internationalization'); const { changeLanguage } = i18n; const configLocale = getCookie('config-locale'); - const { locale, locales } = useRouter(); + const { locale, locales, push } = useRouter(); const [selectedLanguage, setSelectedLanguage] = useState( (configLocale as string) ?? locale ?? 'en' ); @@ -37,6 +37,8 @@ export default function LanguageSwitch() { sameSite: 'strict', }); + push('/', '/', { locale: value }); + showNotification({ title: 'Language changed', message: `You changed the language to '${newLanguage.originalName}'`, @@ -65,6 +67,14 @@ export default function LanguageSwitch() { onChange={onChangeSelect} value={selectedLanguage} defaultValue={locale} + searchable + filter={(value, item) => { + const selectItems = item as unknown as { value: string, language: Language }; + return ( + selectItems.language.originalName.trim().includes(value.trim()) || + selectItems.language.translatedName.trim().includes(value.trim()) + ); + }} styles={{ icon: { width: 42, diff --git a/src/languages/language.ts b/src/languages/language.ts index c292ea53b..d2cbc5d59 100644 --- a/src/languages/language.ts +++ b/src/languages/language.ts @@ -64,4 +64,4 @@ const languages: Language[] = [ ]; export const getLanguageByCode = (code: string | null) => - languages.find((language) => language.shortName === code) ?? languages[-1]; + languages.find((language) => language.shortName === code) ?? languages[languages.length - 1]; From 022656ae451a80d10c10d7f78d63c8bc2a322eeb Mon Sep 17 00:00:00 2001 From: Thomas Camlong <49837342+ajnart@users.noreply.github.com> Date: Mon, 29 Aug 2022 12:37:31 +0200 Subject: [PATCH 20/32] =?UTF-8?q?=F0=9F=8C=90=20add=20crowdin=20translatio?= =?UTF-8?q?ns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/locales/nl/settings/common.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/locales/nl/settings/common.json b/public/locales/nl/settings/common.json index fb1cbe3f2..7379dd0dc 100644 --- a/public/locales/nl/settings/common.json +++ b/public/locales/nl/settings/common.json @@ -2,13 +2,13 @@ "title": "Instellingen", "tooltip": "Instellingen", "tabs": { - "common": "", - "customizations": "" + "common": "Algemeen", + "customizations": "Aanpassingen" }, "tips": { - "configTip": "" + "configTip": "Upload uw configuratiebestand door het op de pagina te slepen!" }, "credits": { - "madeWithLove": "" + "madeWithLove": "Gemaakt met ❤️ door @" } } \ No newline at end of file From f8d850b3bec5db7eaee7933733748f10fa5f3690 Mon Sep 17 00:00:00 2001 From: Bjorn Lammers Date: Mon, 29 Aug 2022 11:19:15 +0200 Subject: [PATCH 21/32] =?UTF-8?q?=F0=9F=9A=9B=20Move=20WalkxHub=20>=20Walk?= =?UTF-8?q?xCode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tools/addToHomarr.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/addToHomarr.ts b/src/tools/addToHomarr.ts index da421dd4e..bb1945014 100644 --- a/src/tools/addToHomarr.ts +++ b/src/tools/addToHomarr.ts @@ -3,7 +3,7 @@ import { Config, MatchingImages, ServiceType, tryMatchPort } from './types'; async function MatchIcon(name: string) { const res = await fetch( - `https://cdn.jsdelivr.net/gh/walkxhub/dashboard-icons/png/${name + `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${name .replace(/\s+/g, '-') .toLowerCase()}.png` ); @@ -30,7 +30,7 @@ export function tryMatchService(container: Dockerode.ContainerInfo | undefined) id: container.Id, type: tryMatchType(container.Image), url: `localhost${port ? `:${port}` : ''}`, - icon: `https://cdn.jsdelivr.net/gh/walkxhub/dashboard-icons/png/${name + icon: `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${name .replace(/\s+/g, '-') .toLowerCase()}.png`, }; From a2be7339320fc438d0bde48b73a54414324ebb7d Mon Sep 17 00:00:00 2001 From: Bjorn Lammers Date: Mon, 29 Aug 2022 11:20:39 +0200 Subject: [PATCH 22/32] =?UTF-8?q?=F0=9F=9A=9B=20Move=20WalkxHub=20>=20Walk?= =?UTF-8?q?xCode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AppShelf/AddAppShelfItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/AppShelf/AddAppShelfItem.tsx b/src/components/AppShelf/AddAppShelfItem.tsx index efeba042a..5cd339a3e 100644 --- a/src/components/AppShelf/AddAppShelfItem.tsx +++ b/src/components/AppShelf/AddAppShelfItem.tsx @@ -60,7 +60,7 @@ export function AddItemShelfButton(props: any) { function MatchIcon(name: string | undefined, form: any) { if (name === undefined || name === '') return null; fetch( - `https://cdn.jsdelivr.net/gh/walkxhub/dashboard-icons/png/${name + `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${name .replace(/\s+/g, '-') .toLowerCase() .replace(/^dash\.$/, 'dashdot')}.png` From 829a7cfea014fd34f525facf8f369df23c1b35db Mon Sep 17 00:00:00 2001 From: I Shults Date: Tue, 30 Aug 2022 13:04:04 -0500 Subject: [PATCH 23/32] #381 - Add "405 - Method Not Allowed" for statuses --- src/tools/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/types.ts b/src/tools/types.ts index e08b491e4..d8a676281 100644 --- a/src/tools/types.ts +++ b/src/tools/types.ts @@ -44,6 +44,7 @@ export const StatusCodes = [ { value: '401', label: '401 - Unauthorized', group: 'Client error responses' }, { value: '403', label: '403 - Forbidden', group: 'Client error responses' }, { value: '404', label: '404 - Not Found', group: 'Client error responses' }, + { value: '405', label: '405 - Method Not Allowed', group: 'Client error responses' }, { value: '408', label: '408 - Request Timeout', group: 'Client error responses' }, { value: '410', label: '410 - Gone', group: 'Client error responses' }, { value: '429', label: '429 - Too Many Requests', group: 'Client error responses' }, From 9af2f20bfa7ac8b245f69d62354f39336554314e Mon Sep 17 00:00:00 2001 From: Florian Fritz Date: Wed, 24 Aug 2022 00:38:10 +0200 Subject: [PATCH 24/32] :sparkles: Add option for custom CSS to Customization Settings --- src/components/Settings/AdvancedSettings.tsx | 10 +++++++++- src/components/layout/Layout.tsx | 3 +++ src/tools/types.ts | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/Settings/AdvancedSettings.tsx b/src/components/Settings/AdvancedSettings.tsx index 552e5b483..e873c7263 100644 --- a/src/components/Settings/AdvancedSettings.tsx +++ b/src/components/Settings/AdvancedSettings.tsx @@ -1,4 +1,4 @@ -import { TextInput, Button, Stack } from '@mantine/core'; +import { TextInput, Button, Stack, Textarea } from '@mantine/core'; import { useForm } from '@mantine/form'; import { useTranslation } from 'next-i18next'; import { useConfig } from '../../tools/state'; @@ -25,6 +25,7 @@ export default function TitleChanger() { logo?: string; favicon?: string; background?: string; + customCSS?: string; }) => { setConfig({ ...config, @@ -34,6 +35,7 @@ export default function TitleChanger() { logo: values.logo, favicon: values.favicon, background: values.background, + customCSS: values.customCSS, }, }); }; @@ -62,6 +64,12 @@ export default function TitleChanger() { placeholder={t('background.placeholder')} {...form.getInputProps('background')} /> +