From 425dd9087115cefdda5192c3607e17ffba1f3884 Mon Sep 17 00:00:00 2001 From: ajnart Date: Wed, 12 Aug 2026 18:19:07 +0200 Subject: [PATCH 01/19] fix(truenas): report usable dataset space --- apps/docs/docs/integrations/truenas/index.mdx | 2 + .../truenas/test/truenas-integration.spec.ts | 12 ++++- .../src/truenas/truenas-integration.ts | 46 +++++++++++++++++-- 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/apps/docs/docs/integrations/truenas/index.mdx b/apps/docs/docs/integrations/truenas/index.mdx index 5d29a7019..5e57f3a89 100644 --- a/apps/docs/docs/integrations/truenas/index.mdx +++ b/apps/docs/docs/integrations/truenas/index.mdx @@ -27,6 +27,8 @@ import Alert from '@theme/Admonition'; ]} /> +The storage values shown by these widgets use the root ZFS dataset's usable `used` and `available` space, including RAIDZ parity overhead and dataset limits. + ### Adding the integration diff --git a/packages/integrations/src/truenas/test/truenas-integration.spec.ts b/packages/integrations/src/truenas/test/truenas-integration.spec.ts index 91ab0662c..7f1a2ad4e 100644 --- a/packages/integrations/src/truenas/test/truenas-integration.spec.ts +++ b/packages/integrations/src/truenas/test/truenas-integration.spec.ts @@ -148,6 +148,14 @@ const happyResponder = (method: string) => { ]; case "pool.query": return [{ name: "tank", status: "ONLINE", healthy: true, free: 500, size: 1000, allocated: 500 }]; + case "pool.dataset.query": + return [ + { + id: "tank", + used: { parsed: 200 }, + available: { parsed: 300 }, + }, + ]; case "interface.query": return [{ id: "eth0", name: "eth0" }]; case "reporting.netdata_get_data": @@ -204,8 +212,8 @@ describe("TrueNasIntegration", () => { loadAverage: null, gpu: [], network: { up: 20_000, down: 10_000 }, - // `available` is the free space left on the pool (free = 500), not its total size. - fileSystem: [{ deviceName: "tank", available: "500", used: "500", percentage: 50 }], + // `available` and `used` come from the root dataset, not the physical pool. + fileSystem: [{ deviceName: "tank", available: "300", used: "200", percentage: 40 }], smart: [{ deviceName: "tank", healthy: true, overallStatus: "ONLINE", temperature: null }], }); }); diff --git a/packages/integrations/src/truenas/truenas-integration.ts b/packages/integrations/src/truenas/truenas-integration.ts index 21f526201..6a5249a2e 100644 --- a/packages/integrations/src/truenas/truenas-integration.ts +++ b/packages/integrations/src/truenas/truenas-integration.ts @@ -49,9 +49,9 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni memUsedInBytes, fileSystem: datasets.map((dataset) => ({ deviceName: dataset.name, - available: `${dataset.free}`, // free space left on the pool - used: `${dataset.allocated}`, - percentage: (dataset.allocated / dataset.size) * 100, + available: `${dataset.available}`, + used: `${dataset.used}`, + percentage: (dataset.used / (dataset.used + dataset.available)) * 100, })), availablePkgUpdates: 0, network: { @@ -117,12 +117,40 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni return null; }) .filter((pool) => pool !== null); + + if (activePools.length === 0) return []; + + const datasets = await this.requestAsync("pool.dataset.query", [ + [["id", "IN", activePools.map((pool) => pool.name)]], + { + extra: { + properties: ["used", "available"], + }, + }, + ]); + const parsedDatasets = await poolDatasetSchema.parseAsync(datasets); + + const poolsWithUsableSpace = activePools + .map((pool) => { + const dataset = parsedDatasets.find((candidate) => candidate.id === pool.name); + if (!dataset || dataset.used.parsed === null || dataset.available.parsed === null) return null; + + return { + name: pool.name, + status: pool.status, + healthy: pool.healthy, + used: dataset.used.parsed, + available: dataset.available.parsed, + }; + }) + .filter((pool) => pool !== null); + logger.debug("Retrieved pools", { url: this.integration.url, totalCount: result.length, - activeCount: activePools.length, + activeCount: poolsWithUsableSpace.length, }); - return activePools; + return poolsWithUsableSpace; } /** @@ -263,6 +291,14 @@ const poolSchema = z.array( }), ); +const poolDatasetSchema = z.array( + z.object({ + id: z.string(), + used: z.object({ parsed: z.number().min(0).nullable() }), + available: z.object({ parsed: z.number().min(0).nullable() }), + }), +); + const reportingNetDataSchema = z.array( z.object({ name: z.string(), From f6137b2dcc75b9d9fa10d675b3611290afcbce66 Mon Sep 17 00:00:00 2001 From: ajnart Date: Wed, 12 Aug 2026 18:24:33 +0200 Subject: [PATCH 02/19] fix(truenas): guard empty dataset percentage --- .../src/truenas/test/truenas-integration.spec.ts | 13 +++++++++++++ .../integrations/src/truenas/truenas-integration.ts | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/integrations/src/truenas/test/truenas-integration.spec.ts b/packages/integrations/src/truenas/test/truenas-integration.spec.ts index 7f1a2ad4e..a53f74bc2 100644 --- a/packages/integrations/src/truenas/test/truenas-integration.spec.ts +++ b/packages/integrations/src/truenas/test/truenas-integration.spec.ts @@ -218,6 +218,19 @@ describe("TrueNasIntegration", () => { }); }); + test("reports zero usage for an empty root dataset", async () => { + ws.setResponder((method) => + method === "pool.dataset.query" + ? [{ id: "tank", used: { parsed: 0 }, available: { parsed: 0 } }] + : happyResponder(method), + ); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem[0]?.percentage).toBe(0); + }); + test("authenticates with an API key when one is configured", async () => { const integration = createIntegration([{ kind: "apiKey", value: "api-key-123" }]); diff --git a/packages/integrations/src/truenas/truenas-integration.ts b/packages/integrations/src/truenas/truenas-integration.ts index 6a5249a2e..c061332f2 100644 --- a/packages/integrations/src/truenas/truenas-integration.ts +++ b/packages/integrations/src/truenas/truenas-integration.ts @@ -51,7 +51,8 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni deviceName: dataset.name, available: `${dataset.available}`, used: `${dataset.used}`, - percentage: (dataset.used / (dataset.used + dataset.available)) * 100, + percentage: + dataset.used + dataset.available === 0 ? 0 : (dataset.used / (dataset.used + dataset.available)) * 100, })), availablePkgUpdates: 0, network: { From e761c10f3282ea490b2ab4300cf028a2ac3b5240 Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Thu, 13 Aug 2026 16:21:48 +0200 Subject: [PATCH 03/19] fix Home Assistant widget actions --- .../widgets/smart-home-entity-state/index.mdx | 3 +- .../smart-home-execute-automation/index.mdx | 3 ++ packages/api/src/router/widgets/smart-home.ts | 17 ++++++- .../homeassistant-integration.ts | 5 +- .../test/home-assistant-unit.spec.ts | 48 +++++++++++++++++++ .../src/smart-home-entity-state.ts | 2 + 6 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 packages/integrations/test/home-assistant-unit.spec.ts diff --git a/apps/docs/docs/widgets/smart-home-entity-state/index.mdx b/apps/docs/docs/widgets/smart-home-entity-state/index.mdx index d101d6376..0c991ccc6 100644 --- a/apps/docs/docs/widgets/smart-home-entity-state/index.mdx +++ b/apps/docs/docs/widgets/smart-home-entity-state/index.mdx @@ -43,6 +43,7 @@ import temperature from './img/temperature.png'; ### Interactions - Toggle entity state by clicking on the entity (only when clickable enabled). +- After a successful toggle, the displayed state refreshes immediately. ### Adding the widget @@ -64,4 +65,4 @@ import retrieveEntityId from './img/retrieve-entity-id.png';
homeassistant retrieve-entity-id -
\ No newline at end of file + diff --git a/apps/docs/docs/widgets/smart-home-execute-automation/index.mdx b/apps/docs/docs/widgets/smart-home-execute-automation/index.mdx index 522c113ca..ce73df9d3 100644 --- a/apps/docs/docs/widgets/smart-home-execute-automation/index.mdx +++ b/apps/docs/docs/widgets/smart-home-execute-automation/index.mdx @@ -47,4 +47,7 @@ import withDisplayname from './img/with-displayname.png'; ### Configuration + +Use the Home Assistant entity ID (for example, `automation.turn_on_lights`) in the **Automation ID** field, not the automation's internal ID. + diff --git a/packages/api/src/router/widgets/smart-home.ts b/packages/api/src/router/widgets/smart-home.ts index c37468752..93f4f0d0b 100644 --- a/packages/api/src/router/widgets/smart-home.ts +++ b/packages/api/src/router/widgets/smart-home.ts @@ -1,3 +1,4 @@ +import { TRPCError } from "@trpc/server"; import { z } from "zod/v4"; import { getIntegrationKindsByCategory } from "@homarr/definitions"; @@ -41,7 +42,12 @@ export const smartHomeRouter = createTRPCRouter({ const client = await createIntegrationAsync(integration); const success = await client.triggerToggleAsync(input.entityId); - return success; + if (!success) { + throw new TRPCError({ + code: "INTERNAL_SERVER_ERROR", + message: "Home Assistant failed to toggle the entity", + }); + } }), executeAutomation: protectedProcedure .meta({ @@ -55,6 +61,13 @@ export const smartHomeRouter = createTRPCRouter({ .input(z.object({ automationId: z.string() })) .mutation(async ({ ctx: { integration }, input }) => { const client = await createIntegrationAsync(integration); - await client.triggerAutomationAsync(input.automationId); + const success = await client.triggerAutomationAsync(input.automationId); + + if (!success) { + throw new TRPCError({ + code: "INTERNAL_SERVER_ERROR", + message: "Home Assistant failed to trigger the automation", + }); + } }), }); diff --git a/packages/integrations/src/homeassistant/homeassistant-integration.ts b/packages/integrations/src/homeassistant/homeassistant-integration.ts index 6da82df46..15c4ece7f 100644 --- a/packages/integrations/src/homeassistant/homeassistant-integration.ts +++ b/packages/integrations/src/homeassistant/homeassistant-integration.ts @@ -134,7 +134,10 @@ export class HomeAssistantIntegration extends Integration implements ISmartHomeI */ private async postAsync(path: `/api/${string}`, body: Record) { return await fetchWithTrustedCertificatesAsync(this.url(path), { - headers: this.getAuthHeaders(), + headers: { + ...this.getAuthHeaders(), + "Content-Type": "application/json", + }, body: JSON.stringify(body), method: "POST", }); diff --git a/packages/integrations/test/home-assistant-unit.spec.ts b/packages/integrations/test/home-assistant-unit.spec.ts new file mode 100644 index 000000000..4887a95a4 --- /dev/null +++ b/packages/integrations/test/home-assistant-unit.spec.ts @@ -0,0 +1,48 @@ +// @vitest-environment node + +import { beforeEach, describe, expect, test, vi } from "vitest"; + +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import { HomeAssistantIntegration } from "../src"; + +vi.mock("@homarr/core/infrastructure/http", () => ({ + fetchWithTrustedCertificatesAsync: vi.fn(), +})); + +const mockFetch = vi.mocked(fetchWithTrustedCertificatesAsync); +const integration = new HomeAssistantIntegration({ + id: "home-assistant", + name: "Home Assistant", + url: "http://home-assistant.local:8123", + externalUrl: null, + decryptedSecrets: [{ kind: "apiKey", value: "secret" }], +}); + +describe("HomeAssistantIntegration actions", () => { + beforeEach(() => { + mockFetch.mockReset(); + mockFetch.mockResolvedValue({ ok: true } as never); + }); + + test.each([ + ["toggle", () => integration.triggerToggleAsync("light.desk"), "/api/services/homeassistant/toggle", "light.desk"], + [ + "automation", + () => integration.triggerAutomationAsync("automation.turn_on_lights"), + "/api/services/automation/trigger", + "automation.turn_on_lights", + ], + ])("sends the %s service call as JSON", async (_action, trigger, path, entityId) => { + await expect(trigger()).resolves.toBe(true); + + expect(mockFetch).toHaveBeenCalledWith(new URL(`http://home-assistant.local:8123${path}`), { + headers: { + Authorization: "Bearer secret", + "Content-Type": "application/json", + }, + body: JSON.stringify({ entity_id: entityId }), + method: "POST", + }); + }); +}); diff --git a/packages/request-handler/src/smart-home-entity-state.ts b/packages/request-handler/src/smart-home-entity-state.ts index 3c8851522..503690a37 100644 --- a/packages/request-handler/src/smart-home-entity-state.ts +++ b/packages/request-handler/src/smart-home-entity-state.ts @@ -18,4 +18,6 @@ export const smartHomeEntityStateRequestHandler = createIntegrationRequestHandle return result.data.state; }, + // The widget already polls every 30 seconds and refetches after toggles. + cacheTtlMs: 0, }); From 7652eb8c1c1242450f42d790e7c48898147a3fcf Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Thu, 13 Aug 2026 17:04:00 +0200 Subject: [PATCH 04/19] preserve smart home toggle response --- packages/api/src/router/widgets/smart-home.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/api/src/router/widgets/smart-home.ts b/packages/api/src/router/widgets/smart-home.ts index 93f4f0d0b..6efa16c9c 100644 --- a/packages/api/src/router/widgets/smart-home.ts +++ b/packages/api/src/router/widgets/smart-home.ts @@ -48,6 +48,8 @@ export const smartHomeRouter = createTRPCRouter({ message: "Home Assistant failed to toggle the entity", }); } + + return success; }), executeAutomation: protectedProcedure .meta({ From bf6b6663cdd9e96c43ee293e67a30843e06568e3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Aug 2026 18:25:32 +0000 Subject: [PATCH 05/19] docs(helm): update chart installation page --- apps/docs/docs/getting-started/installation/helm.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docs/docs/getting-started/installation/helm.md b/apps/docs/docs/getting-started/installation/helm.md index bd969e5e5..623447f5d 100644 --- a/apps/docs/docs/getting-started/installation/helm.md +++ b/apps/docs/docs/getting-started/installation/helm.md @@ -2,9 +2,9 @@ homarr logo -![Version: 8.26.0](https://img.shields.io/badge/Version-8.26.0-informational?style=flat) +![Version: 8.27.0](https://img.shields.io/badge/Version-8.27.0-informational?style=flat) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat) -![AppVersion: v1.74.0](https://img.shields.io/badge/AppVersion-v1.74.0-informational?style=flat) +![AppVersion: v1.75.0](https://img.shields.io/badge/AppVersion-v1.75.0-informational?style=flat) A Helm chart to deploy homarr for Kubernetes @@ -429,7 +429,7 @@ All available values are listed on the [artifacthub](https://artifacthub.io/pack | httproute.rules[0].matches[0].path.value | string | `"/"` | Path value to match | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.repository | string | `"ghcr.io/homarr-labs/homarr"` | Image repository | -| image.tag | string | `"v1.74.0"` | Overrides the image tag whose default is the chart appVersion | +| image.tag | string | `"v1.75.0"` | Overrides the image tag whose default is the chart appVersion | | imagePullSecrets | list | `[]` | Secrets for Docker registry | | ingress.annotations | object | `{}` | Ingress annotations | | ingress.enabled | bool | `false` | Enable ingress | From 56198c3f02f28300256dc438b78415b4ad843a25 Mon Sep 17 00:00:00 2001 From: "homarr-releases[bot]" <175486441+homarr-releases[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:38:26 +0200 Subject: [PATCH 06/19] chore: update bug report template (#6591) --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d4b730726..59b72a021 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,7 @@ body: options: # The below comment is used to insert a new version with on-release.yml #NEXT_VERSION# + - 1.75.0 - 1.74.0 - 1.73.0 - 1.72.0 From f64c01456b77a7245ce60dd711b3014029f3c065 Mon Sep 17 00:00:00 2001 From: "homarr-update-contributors[bot]" <210161987+homarr-update-contributors[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:38:42 +0200 Subject: [PATCH 07/19] chore: update contributors (#6588) --- static-data/contributors.json | 2 +- static-data/opencollective-contributors.json | 2 +- static-data/translators.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/static-data/contributors.json b/static-data/contributors.json index 8e8944ba7..265bc3dd8 100644 --- a/static-data/contributors.json +++ b/static-data/contributors.json @@ -1 +1 @@ -[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"marektancak0106","avatar_url":"https://avatars.githubusercontent.com/u/25422667?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"beanbag420","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"Hamad3bdulla","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"afonsojramos","avatar_url":"https://avatars.githubusercontent.com/u/19473034?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"Bergasha","avatar_url":"https://avatars.githubusercontent.com/u/25044200?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"junkerderprovinz","avatar_url":"https://avatars.githubusercontent.com/u/133605895?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"Nerdy-Technician","avatar_url":"https://avatars.githubusercontent.com/u/45691205?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"darbyjack","avatar_url":"https://avatars.githubusercontent.com/u/21014720?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"tvervest","avatar_url":"https://avatars.githubusercontent.com/u/5818471?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"kylegrieder","avatar_url":"https://avatars.githubusercontent.com/u/25424229?v=4"},{"login":"mrjoshuap","avatar_url":"https://avatars.githubusercontent.com/u/5722442?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"lopsch","avatar_url":"https://avatars.githubusercontent.com/u/4073114?v=4"},{"login":"Gilmoursa","avatar_url":"https://avatars.githubusercontent.com/u/10321421?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"ohmzi","avatar_url":"https://avatars.githubusercontent.com/u/6551272?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"Euclid0192","avatar_url":"https://avatars.githubusercontent.com/u/114103526?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"Bricklou","avatar_url":"https://avatars.githubusercontent.com/u/15181236?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"},{"login":"angusmaul","avatar_url":"https://avatars.githubusercontent.com/u/1232390?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"VIVAAN-DHAWAN","avatar_url":"https://avatars.githubusercontent.com/u/150339722?v=4"},{"login":"euduardo","avatar_url":"https://avatars.githubusercontent.com/u/22860571?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"sharpsalat","avatar_url":"https://avatars.githubusercontent.com/u/15666932?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"xanyl","avatar_url":"https://avatars.githubusercontent.com/u/59596981?v=4"},{"login":"arturict","avatar_url":"https://avatars.githubusercontent.com/u/145776561?v=4"},{"login":"ashtonbatty","avatar_url":"https://avatars.githubusercontent.com/u/230635?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"cethien","avatar_url":"https://avatars.githubusercontent.com/u/60463918?v=4"},{"login":"Clarkar00","avatar_url":"https://avatars.githubusercontent.com/u/133609856?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"d-lindahl","avatar_url":"https://avatars.githubusercontent.com/u/690410?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"Ayush7614","avatar_url":"https://avatars.githubusercontent.com/u/67006255?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"febrile42","avatar_url":"https://avatars.githubusercontent.com/u/14597122?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"Lok3sh-kumar","avatar_url":"https://avatars.githubusercontent.com/u/110459168?v=4"}] \ No newline at end of file +[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"marektancak0106","avatar_url":"https://avatars.githubusercontent.com/u/25422667?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"beanbag420","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"Hamad3bdulla","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"afonsojramos","avatar_url":"https://avatars.githubusercontent.com/u/19473034?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"Bergasha","avatar_url":"https://avatars.githubusercontent.com/u/25044200?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"junkerderprovinz","avatar_url":"https://avatars.githubusercontent.com/u/133605895?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"Nerdy-Technician","avatar_url":"https://avatars.githubusercontent.com/u/45691205?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"darbyjack","avatar_url":"https://avatars.githubusercontent.com/u/21014720?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"tvervest","avatar_url":"https://avatars.githubusercontent.com/u/5818471?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"kylegrieder","avatar_url":"https://avatars.githubusercontent.com/u/25424229?v=4"},{"login":"mrjoshuap","avatar_url":"https://avatars.githubusercontent.com/u/5722442?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"lopsch","avatar_url":"https://avatars.githubusercontent.com/u/4073114?v=4"},{"login":"Gilmoursa","avatar_url":"https://avatars.githubusercontent.com/u/10321421?v=4"},{"login":"svengo","avatar_url":"https://avatars.githubusercontent.com/u/2502366?v=4"},{"login":"Sveeeeeen","avatar_url":"https://avatars.githubusercontent.com/u/18014962?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"ohmzi","avatar_url":"https://avatars.githubusercontent.com/u/6551272?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"Euclid0192","avatar_url":"https://avatars.githubusercontent.com/u/114103526?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"angusmaul","avatar_url":"https://avatars.githubusercontent.com/u/1232390?v=4"},{"login":"tiimonn","avatar_url":"https://avatars.githubusercontent.com/u/64960609?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"VIVAAN-DHAWAN","avatar_url":"https://avatars.githubusercontent.com/u/150339722?v=4"},{"login":"euduardo","avatar_url":"https://avatars.githubusercontent.com/u/22860571?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"sharpsalat","avatar_url":"https://avatars.githubusercontent.com/u/15666932?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"xanyl","avatar_url":"https://avatars.githubusercontent.com/u/59596981?v=4"},{"login":"arturict","avatar_url":"https://avatars.githubusercontent.com/u/145776561?v=4"},{"login":"ashtonbatty","avatar_url":"https://avatars.githubusercontent.com/u/230635?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"cethien","avatar_url":"https://avatars.githubusercontent.com/u/60463918?v=4"},{"login":"Clarkar00","avatar_url":"https://avatars.githubusercontent.com/u/133609856?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"d-lindahl","avatar_url":"https://avatars.githubusercontent.com/u/690410?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"Ayush7614","avatar_url":"https://avatars.githubusercontent.com/u/67006255?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"febrile42","avatar_url":"https://avatars.githubusercontent.com/u/14597122?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"Lok3sh-kumar","avatar_url":"https://avatars.githubusercontent.com/u/110459168?v=4"},{"login":"Bricklou","avatar_url":"https://avatars.githubusercontent.com/u/15181236?v=4"}] \ No newline at end of file diff --git a/static-data/opencollective-contributors.json b/static-data/opencollective-contributors.json index 937164812..388670172 100644 --- a/static-data/opencollective-contributors.json +++ b/static-data/opencollective-contributors.json @@ -1 +1 @@ -[{"id":"zaxon793-jy8gpl0v-d89pbrkd-emwl5v04","name":"Mike","slug":"guest-5da646e8","imageUrl":"https://images.opencollective.com/guest-5da646e8/avatar.png"},{"id":"ywz9j4av-god8pgwg-db36mr35-nxklb0e7","name":"Guest","slug":"guest-554ec68f","imageUrl":"https://images.opencollective.com/guest-554ec68f/avatar.png"},{"id":"mlo94zn7-x08dpo09-xlxpewga-3vjbrky5","name":"Robert Hermann","slug":"robert-hermann","imageUrl":"https://images.opencollective.com/robert-hermann/avatar.png"},{"id":"zaxon793-jy8gpl0n-8r3pbrkd-emwl5v04","name":"Sebastian Raubuch","slug":"sebastian-raubuch","imageUrl":"https://images.opencollective.com/sebastian-raubuch/avatar.png"},{"id":"nmlo94zn-7x08dpod-ykm6ewga-3vjbrky5","name":"Didier LUTHI","slug":"didier-luthi","imageUrl":"https://images.opencollective.com/didier-luthi/avatar.png"},{"id":"vedj9wro-z3a56dgk-z3z67blg-8x4m0ykn","name":"Guest","slug":"guest-b1459a68","imageUrl":"https://images.opencollective.com/guest-b1459a68/avatar.png"},{"id":"gm9bnk80-437xqry4-8vepvzeo-ljdayw5r","name":"Mohister","slug":"mohister","imageUrl":"https://images.opencollective.com/mohister/1d8a592/avatar.png"},{"id":"vrgbk357-l4x96e70-m0apomew-a0jdyzn8","name":"sidens","slug":"sidens","imageUrl":"https://images.opencollective.com/sidens/avatar.png"},{"id":"mlo94zn7-x08dpo0d-l7epewga-3vjbrky5","name":"Chris","slug":"guest-937065bb","imageUrl":"https://images.opencollective.com/guest-937065bb/avatar.png"},{"id":"k9mbw7y4-8r3zq3ol-7zlq0ej5-lavnodgx","name":"Nick W","slug":"guest-7501840a","imageUrl":"https://images.opencollective.com/guest-7501840a/avatar.png"},{"id":"e0adkjrv-8xwm69o8-5al67z5n-4l93bgoy","name":"Jeppedy","slug":"guest-ab78e46a","imageUrl":"https://images.opencollective.com/guest-ab78e46a/avatar.png"},{"id":"a47byg9n-xozdp8xo-jgm6mjlv-03rek5w8","name":"naru","slug":"guest-02fd264a","imageUrl":"https://images.opencollective.com/guest-02fd264a/avatar.png"},{"id":"3k0exgzn-m8yj64g3-ll865wao-9r7b4dlv","name":"Jared Hocutt","slug":"jared-hocutt","imageUrl":"https://images.opencollective.com/jared-hocutt/avatar.png"},{"id":"eng0kzdy-vor4pz8l-exopbma8-37xlw95j","name":"Incognito","slug":"user-e63f4a5b","imageUrl":"https://images.opencollective.com/user-e63f4a5b/avatar.png"},{"id":"8k03reyd-5agmq50v-8vyplbwo-z7j4nxv9","name":"dazi","slug":"guest-11663a46","imageUrl":"https://images.opencollective.com/guest-11663a46/avatar.png"},{"id":"vedj9wro-z3a56dgd-zwl67blg-8x4m0ykn","name":"ZoopaMario","slug":"zoopamario","imageUrl":"https://images.opencollective.com/zoopamario/bea900d/avatar.png"},{"id":"a47byg9n-xozdp8xe-xmb6mjlv-03rek5w8","name":"FlamebergUA","slug":"guest-a59fd500","imageUrl":"https://images.opencollective.com/guest-a59fd500/avatar.png"},{"id":"8k03reyd-5agmq50y-kzoplbwo-z7j4nxv9","name":"StLCards","slug":"guest-e1de33dc","imageUrl":"https://images.opencollective.com/guest-e1de33dc/avatar.png"},{"id":"ejoxl3az-45w9pa54-dk46y870-mgkbrvdn","name":"Varadha","slug":"guest-6f68eed9","imageUrl":"https://images.opencollective.com/guest-6f68eed9/avatar.png"},{"id":"jrkx5lmn-v904qjl0-3oz68bwa-7zdygoe3","name":"Guest","slug":"guest-6da419b5","imageUrl":"https://images.opencollective.com/guest-6da419b5/avatar.png"},{"id":"mywxoz34-09rl6k3z-lmlqvenb-dj7gk85a","name":"Guest","slug":"guest-122d7e0a","imageUrl":"https://images.opencollective.com/guest-122d7e0a/avatar.png"},{"id":"3z8arxve-ymko60vm-3eaqgl5n-bj9w704d","name":"Ricardo","slug":"ricardo34","imageUrl":"https://images.opencollective.com/ricardo34/avatar.png"},{"id":"e0adkjrv-8xwm69or-reo67z5n-4l93bgoy","name":"GoM","slug":"guest-3944feab","imageUrl":"https://images.opencollective.com/guest-3944feab/avatar.png"},{"id":"gm9bnk80-437xqrnr-r5o6vzeo-ljdayw5r","name":"Brent Maxwell","slug":"brentmaxwell","imageUrl":"https://images.opencollective.com/brentmaxwell/avatar.png"},{"id":"gnxdwzj3-le5mpwzd-ll0py8rv-bko04a97","name":"Eric G","slug":"guest-478270f1","imageUrl":"https://images.opencollective.com/guest-478270f1/avatar.png"},{"id":"v349mrwg-z75lpyjo-ez8pa08d-jeybknox","name":"ninja","slug":"guest-0bb6ba36","imageUrl":"https://images.opencollective.com/guest-0bb6ba36/avatar.png"},{"id":"ywz9j4av-god8pgw0-53y6mr35-nxklb0e7","name":"s11","slug":"guest-6e9a2588","imageUrl":"https://images.opencollective.com/guest-6e9a2588/avatar.png"},{"id":"mlo94zn7-x08dpo30-v73pewga-3vjbrky5","name":"Incognito","slug":"user-cbad11af","imageUrl":"https://images.opencollective.com/user-cbad11af/avatar.png"},{"id":"v349mrwg-z75lpy7l-yzgpa08d-jeybknox","name":"Ronald Simmons","slug":"ronald-simmons","imageUrl":"https://images.opencollective.com/ronald-simmons/avatar.png"},{"id":"7ywz9j4a-vgod8pgl-me9qmr35-nxklb0e7","name":"Joel","slug":"guest-3376ab02","imageUrl":"https://images.opencollective.com/guest-3376ab02/avatar.png"},{"id":"v349mrwg-z75lpyjw-kxzpa08d-jeybknox","name":"Gokay Yamankurt","slug":"gokay-yamankurt","imageUrl":"https://images.opencollective.com/gokay-yamankurt/avatar.png"},{"id":"v349mrwg-z75lpyjv-59rpa08d-jeybknox","name":"Rhiz3K","slug":"rhiz3k","imageUrl":"https://images.opencollective.com/rhiz3k/7287acd/avatar.png"},{"id":"8k03reyd-5agmq5x7-77gplbwo-z7j4nxv9","name":"vukie","slug":"guest-40aabe13","imageUrl":"https://images.opencollective.com/guest-40aabe13/avatar.png"},{"id":"a47byg9n-xozdp84a-rmvqmjlv-03rek5w8","name":"Guest","slug":"guest-2fe979fa","imageUrl":"https://images.opencollective.com/guest-2fe979fa/avatar.png"},{"id":"rxg0j35l-zkwm6vgm-k3x6voe9-8n47daby","name":"AngryPig","slug":"guest-b9e8a062","imageUrl":"https://images.opencollective.com/guest-b9e8a062/avatar.png"},{"id":"acc_00XiGzC0V5uzYIL5imKK8","name":"Christopher Jones","slug":"christopher-jones-aae1b68a","imageUrl":"https://images.opencollective.com/christopher-jones-aae1b68a/avatar.png"},{"id":"acc_Usap6nzTGh8BCPg0V6lM7","name":"zzoomless7","slug":"guest-a4dec157","imageUrl":"https://images.opencollective.com/guest-a4dec157/avatar.png"},{"id":"acc_BhFQegbcujMZPebCsBuYv","name":"Sobe","slug":"guest-27946e70","imageUrl":"https://images.opencollective.com/guest-27946e70/avatar.png"}] \ No newline at end of file +[{"id":"zaxon793-jy8gpl0v-d89pbrkd-emwl5v04","name":"Mike","slug":"guest-5da646e8","imageUrl":"https://images.opencollective.com/guest-5da646e8/avatar.png"},{"id":"ywz9j4av-god8pgwg-db36mr35-nxklb0e7","name":"Guest","slug":"guest-554ec68f","imageUrl":"https://images.opencollective.com/guest-554ec68f/avatar.png"},{"id":"mlo94zn7-x08dpo09-xlxpewga-3vjbrky5","name":"Robert Hermann","slug":"robert-hermann","imageUrl":"https://images.opencollective.com/robert-hermann/avatar.png"},{"id":"zaxon793-jy8gpl0n-8r3pbrkd-emwl5v04","name":"Sebastian Raubuch","slug":"sebastian-raubuch","imageUrl":"https://images.opencollective.com/sebastian-raubuch/avatar.png"},{"id":"nmlo94zn-7x08dpod-ykm6ewga-3vjbrky5","name":"Didier LUTHI","slug":"didier-luthi","imageUrl":"https://images.opencollective.com/didier-luthi/avatar.png"},{"id":"vedj9wro-z3a56dgk-z3z67blg-8x4m0ykn","name":"Guest","slug":"guest-b1459a68","imageUrl":"https://images.opencollective.com/guest-b1459a68/avatar.png"},{"id":"gm9bnk80-437xqry4-8vepvzeo-ljdayw5r","name":"Mohister","slug":"mohister","imageUrl":"https://images.opencollective.com/mohister/1d8a592/avatar.png"},{"id":"vrgbk357-l4x96e70-m0apomew-a0jdyzn8","name":"sidens","slug":"sidens","imageUrl":"https://images.opencollective.com/sidens/avatar.png"},{"id":"mlo94zn7-x08dpo0d-l7epewga-3vjbrky5","name":"Chris","slug":"guest-937065bb","imageUrl":"https://images.opencollective.com/guest-937065bb/avatar.png"},{"id":"k9mbw7y4-8r3zq3ol-7zlq0ej5-lavnodgx","name":"Nick W","slug":"guest-7501840a","imageUrl":"https://images.opencollective.com/guest-7501840a/avatar.png"},{"id":"e0adkjrv-8xwm69o8-5al67z5n-4l93bgoy","name":"Jeppedy","slug":"guest-ab78e46a","imageUrl":"https://images.opencollective.com/guest-ab78e46a/avatar.png"},{"id":"a47byg9n-xozdp8xo-jgm6mjlv-03rek5w8","name":"naru","slug":"guest-02fd264a","imageUrl":"https://images.opencollective.com/guest-02fd264a/avatar.png"},{"id":"3k0exgzn-m8yj64g3-ll865wao-9r7b4dlv","name":"Jared Hocutt","slug":"jared-hocutt","imageUrl":"https://images.opencollective.com/jared-hocutt/avatar.png"},{"id":"eng0kzdy-vor4pz8l-exopbma8-37xlw95j","name":"Incognito","slug":"user-e63f4a5b","imageUrl":"https://images.opencollective.com/user-e63f4a5b/avatar.png"},{"id":"8k03reyd-5agmq50v-8vyplbwo-z7j4nxv9","name":"dazi","slug":"guest-11663a46","imageUrl":"https://images.opencollective.com/guest-11663a46/avatar.png"},{"id":"vedj9wro-z3a56dgd-zwl67blg-8x4m0ykn","name":"ZoopaMario","slug":"zoopamario","imageUrl":"https://images.opencollective.com/zoopamario/bea900d/avatar.png"},{"id":"a47byg9n-xozdp8xe-xmb6mjlv-03rek5w8","name":"FlamebergUA","slug":"guest-a59fd500","imageUrl":"https://images.opencollective.com/guest-a59fd500/avatar.png"},{"id":"8k03reyd-5agmq50y-kzoplbwo-z7j4nxv9","name":"StLCards","slug":"guest-e1de33dc","imageUrl":"https://images.opencollective.com/guest-e1de33dc/avatar.png"},{"id":"ejoxl3az-45w9pa54-dk46y870-mgkbrvdn","name":"Varadha","slug":"guest-6f68eed9","imageUrl":"https://images.opencollective.com/guest-6f68eed9/avatar.png"},{"id":"jrkx5lmn-v904qjl0-3oz68bwa-7zdygoe3","name":"Guest","slug":"guest-6da419b5","imageUrl":"https://images.opencollective.com/guest-6da419b5/avatar.png"},{"id":"mywxoz34-09rl6k3z-lmlqvenb-dj7gk85a","name":"Guest","slug":"guest-122d7e0a","imageUrl":"https://images.opencollective.com/guest-122d7e0a/avatar.png"},{"id":"3z8arxve-ymko60vm-3eaqgl5n-bj9w704d","name":"Ricardo","slug":"ricardo34","imageUrl":"https://images.opencollective.com/ricardo34/avatar.png"},{"id":"e0adkjrv-8xwm69or-reo67z5n-4l93bgoy","name":"GoM","slug":"guest-3944feab","imageUrl":"https://images.opencollective.com/guest-3944feab/avatar.png"},{"id":"gm9bnk80-437xqrnr-r5o6vzeo-ljdayw5r","name":"Brent Maxwell","slug":"brentmaxwell","imageUrl":"https://images.opencollective.com/brentmaxwell/avatar.png"},{"id":"gnxdwzj3-le5mpwzd-ll0py8rv-bko04a97","name":"Eric G","slug":"guest-478270f1","imageUrl":"https://images.opencollective.com/guest-478270f1/avatar.png"},{"id":"v349mrwg-z75lpyjo-ez8pa08d-jeybknox","name":"ninja","slug":"guest-0bb6ba36","imageUrl":"https://images.opencollective.com/guest-0bb6ba36/avatar.png"},{"id":"ywz9j4av-god8pgw0-53y6mr35-nxklb0e7","name":"s11","slug":"guest-6e9a2588","imageUrl":"https://images.opencollective.com/guest-6e9a2588/avatar.png"},{"id":"mlo94zn7-x08dpo30-v73pewga-3vjbrky5","name":"Incognito","slug":"user-cbad11af","imageUrl":"https://images.opencollective.com/user-cbad11af/avatar.png"},{"id":"v349mrwg-z75lpy7l-yzgpa08d-jeybknox","name":"Ronald Simmons","slug":"ronald-simmons","imageUrl":"https://images.opencollective.com/ronald-simmons/avatar.png"},{"id":"7ywz9j4a-vgod8pgl-me9qmr35-nxklb0e7","name":"Joel","slug":"guest-3376ab02","imageUrl":"https://images.opencollective.com/guest-3376ab02/avatar.png"},{"id":"v349mrwg-z75lpyjw-kxzpa08d-jeybknox","name":"Gokay Yamankurt","slug":"gokay-yamankurt","imageUrl":"https://images.opencollective.com/gokay-yamankurt/avatar.png"},{"id":"v349mrwg-z75lpyjv-59rpa08d-jeybknox","name":"Rhiz3K","slug":"rhiz3k","imageUrl":"https://images.opencollective.com/rhiz3k/b4e9f9d/avatar.png"},{"id":"8k03reyd-5agmq5x7-77gplbwo-z7j4nxv9","name":"vukie","slug":"guest-40aabe13","imageUrl":"https://images.opencollective.com/guest-40aabe13/avatar.png"},{"id":"a47byg9n-xozdp84a-rmvqmjlv-03rek5w8","name":"Guest","slug":"guest-2fe979fa","imageUrl":"https://images.opencollective.com/guest-2fe979fa/avatar.png"},{"id":"rxg0j35l-zkwm6vgm-k3x6voe9-8n47daby","name":"AngryPig","slug":"guest-b9e8a062","imageUrl":"https://images.opencollective.com/guest-b9e8a062/avatar.png"},{"id":"acc_00XiGzC0V5uzYIL5imKK8","name":"Christopher Jones","slug":"christopher-jones-aae1b68a","imageUrl":"https://images.opencollective.com/christopher-jones-aae1b68a/avatar.png"},{"id":"acc_Usap6nzTGh8BCPg0V6lM7","name":"zzoomless7","slug":"guest-a4dec157","imageUrl":"https://images.opencollective.com/guest-a4dec157/avatar.png"},{"id":"acc_BhFQegbcujMZPebCsBuYv","name":"Sobe","slug":"guest-27946e70","imageUrl":"https://images.opencollective.com/guest-27946e70/avatar.png"},{"id":"acc_SvMxnHgtpBiOdXWGCkAfP","name":"Guest","slug":"guest-0e0259de","imageUrl":"https://images.opencollective.com/guest-0e0259de/avatar.png"}] \ No newline at end of file diff --git a/static-data/translators.json b/static-data/translators.json index f95101c26..9276816f7 100644 --- a/static-data/translators.json +++ b/static-data/translators.json @@ -1 +1 @@ -[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/aaa1f083e04c572f953fde4563171e4a.jpeg"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"KydoxOwn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17764383/medium/0bc150a09d77f5fda43988e6342777dc.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"RollstuhlJack","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12386691/medium/192fa7d350b148a55d37332c9d17c529_default.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ascalon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12743376/medium/7845361ea1fae14e71978df906d60250.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"thrmda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13431074/medium/c79736af3a4140a01254ea1a887f64bc_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"colonnelli.st","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13835985/medium/69aac81cc1475cff06fff0dc6ee7ad51.jpg"},{"username":"olavinto","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14424644/medium/37c01732bd2b7a272b421807a05ccfeb.png"},{"username":"OzakIOne","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14446246/medium/3abb08846344706d3a16a9fb196655ee.jpeg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"angrystar170","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14736454/medium/7a70edc6b50122877533e95a4e971203.jpeg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"legocuedy09","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15206280/medium/a93129b77a54ffbb2c9f136f18718e80.png"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"on9686","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16768173/medium/6282fed9aafe0262a173a5ec0887e5d9_default.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"renan.costaalencar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16938427/medium/6d25b25320c5bde734118dec4af9cd5b.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"Master3307","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17161852/medium/94ec577dd53e16b434f2aac9c34f64c6.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"Pakura","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17396930/medium/18602738018348bf2ffa83a78bf165e2_default.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"},{"username":"hongminzheng","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17683860/medium/a764f4963912777d27a7cd98e136a2b2.png"},{"username":"d-lindahl","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17726729/medium/cbde348582fbabcfadd89a56cd5a0b40.png"},{"username":"Enoal-Fauchille-Bolle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17734649/medium/6e6fb29198782dc7856ea21811db669c.jpeg"},{"username":"manos-grigorakis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17737973/medium/b37f685587c920c81fdaf9a357962434.jpeg"},{"username":"SertraFurr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17738703/medium/5f1e9f270e315ee3185cf2ccb3f5a833.png"},{"username":"Kle.Ma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17739207/medium/b767d6093e6608f251ca152f53d359b8_default.png"},{"username":"WalkerLukas","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17744485/medium/87508ce83a9b6e5391f55883a66a054b.png"},{"username":"mtya","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17748447/medium/f574d5a770d74814f8c49ee68e00f5b7.jpeg"},{"username":"Elaktrato","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17750977/medium/f4109d379f29dc8ea2e7799ac9e208c8.png"},{"username":"marcelmeis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17753627/medium/4ba32116c27e427d3073e45713f6564e.png"},{"username":"ProKafelek12e","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17760377/medium/5199af152f1ea42cee718e7729bd41ff.png"},{"username":"zalaghi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17763367/medium/a06f7b15222663517b58b8dc8902f8a1.png"},{"username":"Amato21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17776775/medium/214b1f1581a85fe10f1ae3241aab43e4.png"},{"username":"jabalv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17778347/medium/14dd47fff64f6543e6015be7373420c3.png"},{"username":"agiledivider","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17801131/medium/0039d926d5a716e712e36b06004369ab_default.png"},{"username":"nocteln","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17806203/medium/fc84143ba6b94cc8e8a37415a0d91fb0_default.png"},{"username":"b.yatsenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17810347/medium/6db1ce1d6b9f07afbcec0ca43b8015c8.png"},{"username":"wolliS","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17824457/medium/ab196ecab415d34826955027ae36a72f_default.png"}] \ No newline at end of file +[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/aaa1f083e04c572f953fde4563171e4a.jpeg"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"KydoxOwn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17764383/medium/0bc150a09d77f5fda43988e6342777dc.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"RollstuhlJack","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12386691/medium/192fa7d350b148a55d37332c9d17c529_default.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ascalon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12743376/medium/7845361ea1fae14e71978df906d60250.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"thrmda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13431074/medium/c79736af3a4140a01254ea1a887f64bc_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"rimasx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13578080/medium/c356991f3a0c2cfadb22e62cab0cd1bd.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"colonnelli.st","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13835985/medium/69aac81cc1475cff06fff0dc6ee7ad51.jpg"},{"username":"olavinto","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14424644/medium/37c01732bd2b7a272b421807a05ccfeb.png"},{"username":"OzakIOne","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14446246/medium/3abb08846344706d3a16a9fb196655ee.jpeg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"angrystar170","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14736454/medium/7a70edc6b50122877533e95a4e971203.jpeg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"legocuedy09","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15206280/medium/a93129b77a54ffbb2c9f136f18718e80.png"},{"username":"catvari","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15442102/medium/f5cbda04afc08aa9134878cbd1f7db86.png"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"on9686","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16768173/medium/6282fed9aafe0262a173a5ec0887e5d9_default.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"renan.costaalencar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16938427/medium/6d25b25320c5bde734118dec4af9cd5b.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"Master3307","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17161852/medium/94ec577dd53e16b434f2aac9c34f64c6.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"Pakura","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17396930/medium/18602738018348bf2ffa83a78bf165e2_default.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"},{"username":"hongminzheng","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17683860/medium/a764f4963912777d27a7cd98e136a2b2.png"},{"username":"d-lindahl","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17726729/medium/cbde348582fbabcfadd89a56cd5a0b40.png"},{"username":"Enoal-Fauchille-Bolle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17734649/medium/6e6fb29198782dc7856ea21811db669c.jpeg"},{"username":"manos-grigorakis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17737973/medium/b37f685587c920c81fdaf9a357962434.jpeg"},{"username":"SertraFurr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17738703/medium/5f1e9f270e315ee3185cf2ccb3f5a833.png"},{"username":"Kle.Ma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17739207/medium/b767d6093e6608f251ca152f53d359b8_default.png"},{"username":"WalkerLukas","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17744485/medium/87508ce83a9b6e5391f55883a66a054b.png"},{"username":"mtya","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17748447/medium/f574d5a770d74814f8c49ee68e00f5b7.jpeg"},{"username":"Elaktrato","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17750977/medium/f4109d379f29dc8ea2e7799ac9e208c8.png"},{"username":"marcelmeis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17753627/medium/4ba32116c27e427d3073e45713f6564e.png"},{"username":"ProKafelek12e","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17760377/medium/5199af152f1ea42cee718e7729bd41ff.png"},{"username":"zalaghi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17763367/medium/a06f7b15222663517b58b8dc8902f8a1.png"},{"username":"Amato21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17776775/medium/214b1f1581a85fe10f1ae3241aab43e4.png"},{"username":"jabalv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17778347/medium/14dd47fff64f6543e6015be7373420c3.png"},{"username":"agiledivider","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17801131/medium/0039d926d5a716e712e36b06004369ab_default.png"},{"username":"nocteln","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17806203/medium/fc84143ba6b94cc8e8a37415a0d91fb0_default.png"},{"username":"b.yatsenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17810347/medium/6db1ce1d6b9f07afbcec0ca43b8015c8.png"},{"username":"wolliS","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17824457/medium/ab196ecab415d34826955027ae36a72f_default.png"},{"username":"agentusmentus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826645/medium/2ccb13073c04fba9cc4ee65cf879110a.png"},{"username":"--AMT--","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826763/medium/265bab26069472b490520acc75e42f71_default.png"},{"username":"aleh1771","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17828077/medium/2408df7f4b85a3294a0ceed8895d5239.png"}] \ No newline at end of file From 621ea07549df280885f32edb86c356ba5e91bf03 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:39:02 +0200 Subject: [PATCH 08/19] chore(lang): updated translations from crowdin (#6553) --- packages/translation/src/lang/ca.json | 50 +- packages/translation/src/lang/cn.json | 332 +- packages/translation/src/lang/cr.json | 50 +- packages/translation/src/lang/cs.json | 50 +- packages/translation/src/lang/da.json | 48 +- packages/translation/src/lang/de-CH.json | 46 + packages/translation/src/lang/de.json | 164 +- packages/translation/src/lang/el.json | 48 +- packages/translation/src/lang/en-gb.json | 46 + packages/translation/src/lang/es.json | 48 +- packages/translation/src/lang/et.json | 604 +-- packages/translation/src/lang/fi.json | 46 + packages/translation/src/lang/fr.json | 64 +- packages/translation/src/lang/he.json | 46 + packages/translation/src/lang/hr.json | 48 +- packages/translation/src/lang/hu.json | 46 + packages/translation/src/lang/it.json | 46 + packages/translation/src/lang/ja.json | 48 +- packages/translation/src/lang/ko.json | 46 + packages/translation/src/lang/lt.json | 48 +- packages/translation/src/lang/lv.json | 48 +- packages/translation/src/lang/nl.json | 48 +- packages/translation/src/lang/no.json | 1910 ++++----- packages/translation/src/lang/pl.json | 46 + packages/translation/src/lang/pt-br.json | 46 + packages/translation/src/lang/pt.json | 48 +- packages/translation/src/lang/ro.json | 4466 +++++++++++----------- packages/translation/src/lang/ru.json | 48 +- packages/translation/src/lang/sk.json | 48 +- packages/translation/src/lang/sl.json | 48 +- packages/translation/src/lang/sv.json | 50 +- packages/translation/src/lang/tr.json | 46 + packages/translation/src/lang/uk.json | 46 + packages/translation/src/lang/vi.json | 48 +- packages/translation/src/lang/zh.json | 46 + 35 files changed, 5263 insertions(+), 3653 deletions(-) diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json index 191706c23..1421e63d8 100644 --- a/packages/translation/src/lang/ca.json +++ b/packages/translation/src/lang/ca.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Controla quins contenidors Docker tenen actualitzacions d'imatges disponibles." + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "aquí", "iconPicker": { "label": "URL de la icona", - "header": "Escriviu un nom o objectes per filtrar icones... Homarr cercarà entre {countIcons} icones per a vosaltres.", - "headerLoading": "", + "description": "Cerca a la biblioteca, enganxa l'URL d'una imatge o puja un fitxer.", + "header": "Cerca {countIcons} imatges per nom", + "headerLoading": "Cerca imatges per nom", + "clear": "Esborra la imatge", + "uploadImage": "Puja una imatge", + "results": "Resultats de la cerca d'imatges", + "localImages": "Les teves imatges", + "svgIcons": "Icones SVG", + "otherImages": "Altres imatges", + "urlLoading": "Comprovant la imatge…", + "urlReady": "La imatge està a punt per utilitzar", + "urlError": "No s'ha pogut carregar aquesta imatge. Comprova l'URL i torna-ho a provar.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Mostra quants contenidors supervisats tenen actualitzacions disponibles.", + "title": "What's Up Docker", + "monitored": "Monitoritzats", + "updatesAvailable": "{count, plural, one {# actualització disponible} other {# actualitzacions disponibles}}", + "updateAvailable": "Actualització disponible", + "openReleaseNotes": "Obre les notes de versió", + "option": { + "showTitle": { + "label": "Mostra el títol" + }, + "showRing": { + "label": "Mostra l'anell d'actualització" + }, + "layout": { + "label": "Disposició", + "option": { + "horizontal": { + "label": "Horitzontal" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "Mostra la llista d'actualitzacions de contenidors", + "description": "Llista cada contenidor monitoritzat que té una actualització d'imatge disponible" + } + } + }, "dnsHoleSummary": { "name": "Resum del forat DNS", "description": "Mostra el resum del vostre forat DNS", diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index 003b6e648..7c7d5218a 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -1018,11 +1018,11 @@ "releasesProvider": "发布", "notifications": "通知", "firewall": "防火墙", - "timetable": "时刻表", + "timetable": "时间表", "photoService": "照片", "documents": "文档", "notes": "笔记", - "mediaMonitoring": "监控", + "mediaMonitoring": "媒体监控", "speedtest": "速度测试", "analytics": "分析", "vpn": "VPN", @@ -1310,8 +1310,8 @@ "newLabel": "新建私钥" }, "slug": { - "label": "状态页面标识", - "newLabel": "新的状态页面标识" + "label": "状态页标识", + "newLabel": "新状态页标识" } } }, @@ -1322,7 +1322,7 @@ }, "audiobookshelf": { "name": "Audiobookshelf", - "description": "自托管有声书和播客服务器" + "description": "自托管有声读物和播客服务器" }, "navidrome": { "name": "Navidrome", @@ -1330,13 +1330,13 @@ }, "uptimeKuma": { "name": "Uptime Kuma", - "description": "自托管运行时间监控,带有公开状态页", + "description": "自托管运行时间监控,支持公开状态页", "secret": { "slug": { - "description": "公开状态页的标识。如果未设置,默认为 \"default\"。" + "description": "您公开状态页的标识。如未设置,默认值为“default”。" }, "apiKey": { - "description": "用于经过身份验证的 /metrics 访问的可选 API 密钥" + "description": "用于访问 /metrics 认证接口的可选 API 密钥" } } }, @@ -1344,9 +1344,13 @@ "name": "Traefik", "description": "云原生反向代理和负载均衡器" }, + "wud": { + "name": "What's Up Docker", + "description": "监控您哪些 Docker 容器有可用的镜像更新" + }, "paperlessNgx": { "name": "Paperless-ngx", - "description": "用于归档和组织扫描文档的文档管理系统" + "description": "用于归档和整理扫描文档的文档管理系统" }, "patchmon": { "name": "PatchMon", @@ -1398,7 +1402,7 @@ } }, "noResults": { - "title": "未上传媒体" + "title": "暂无上传的媒体" } }, "common": { @@ -1437,8 +1441,18 @@ "here": "这里", "iconPicker": { "label": "图标 URL", + "description": "搜索库,粘贴图片URL,或上传文件。", "header": "输入名称或对象来筛选图标… Homarr 将为您搜索 {countIcons} 图标。", "headerLoading": "输入以搜索图标…", + "clear": "清除图像", + "uploadImage": "上传图片", + "results": "图像搜索结果", + "localImages": "你的映像", + "svgIcons": "SVG 图标", + "otherImages": "其他映像", + "urlLoading": "", + "urlReady": "图像已准备好使用", + "urlError": "无法加载此图像。请检查URL,然后重试。", "noResults": "没有与“{search}”匹配的图标。", "error": "无法加载图标。" }, @@ -1663,7 +1677,7 @@ "app": "编辑应用" }, "app": { - "propagationNotice": "对此应用的更改将应用于所有面板中使用它的所有位置。" + "propagationNotice": "对此应用的更改将应用于所有面板中使用该应用的位置。" }, "advancedOptions": { "label": "高级选项", @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "显示有多少个已监控的容器有可用更新。", + "title": "What's Up Docker", + "monitored": "已监控", + "updatesAvailable": "{count, plural, one {# 个更新可用} other {# 个更新可用}}", + "updateAvailable": "有可用更新", + "openReleaseNotes": "打开发布说明", + "option": { + "showTitle": { + "label": "显示标题" + }, + "showRing": { + "label": "显示更新进度环" + }, + "layout": { + "label": "布局", + "option": { + "horizontal": { + "label": "水平" + }, + "vertical": { + "label": "垂直" + } + } + }, + "showUpdateList": { + "label": "显示容器更新列表", + "description": "列出每个有镜像更新可用的已监控容器" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole 摘要", "description": "显示 DNS Hole 的摘要", @@ -2486,7 +2532,7 @@ }, "ups": { "name": "UPS", - "description": "通过 NUT 服务器监控 UPS 设备的状态", + "description": "通过 NUT 服务器监控您的 UPS 设备状态", "option": { "showBattery": { "label": "显示电量" @@ -3784,35 +3830,35 @@ "option": { "showArtists": { "label": "显示艺术家", - "description": "显示音乐库中艺术家的总数 (Navidrome)" + "description": "显示音乐库中的艺术家总数(Navidrome)" }, "showAlbums": { "label": "显示专辑", - "description": "显示音乐库中专辑的总数 (Navidrome)" + "description": "显示音乐库中的专辑总数(Navidrome)" }, "showSongs": { "label": "显示歌曲", - "description": "显示音乐库中歌曲的总数 (Navidrome)" + "description": "显示音乐库中的歌曲总数(Navidrome)" }, "showLibraryCount": { - "label": "显示库数量", - "description": "显示实例中的库数量 (Audiobookshelf)" + "label": "显示媒体库数量", + "description": "显示实例中的媒体库数量(Audiobookshelf)" }, "showAudiobooks": { - "label": "显示有声书", - "description": "显示所有库中的有声书总数 (Audiobookshelf)" + "label": "显示有声读物", + "description": "显示所有媒体库中的有声读物总数(Audiobookshelf)" }, "showPodcasts": { "label": "显示播客", - "description": "显示所有库中的播客总数 (Audiobookshelf)" + "description": "显示所有媒体库中的播客总数(Audiobookshelf)" }, "showListeningTime": { - "label": "显示收听时间", - "description": "显示您的总收听时间 (Audiobookshelf)" + "label": "显示收听时长", + "description": "显示总收听时长(Audiobookshelf)" }, "showActiveSessions": { "label": "显示活跃会话", - "description": "显示当前活跃的播放会话数量 (Audiobookshelf)" + "description": "显示当前活跃播放会话的数量(Audiobookshelf)" }, "compactMode": { "label": "紧凑模式", @@ -3822,8 +3868,8 @@ "artists": "艺术家", "albums": "专辑", "songs": "歌曲", - "libraryCount": "库", - "audiobooks": "有声书", + "libraryCount": "媒体库", + "audiobooks": "有声读物", "podcasts": "播客", "listeningTime": "收听时长", "activeSessions": "活跃会话", @@ -3923,10 +3969,10 @@ }, "beszelSystemTable": { "name": "Beszel 系统(表格)", - "description": "所有 Beszel 监控系统的表格视图,具有可排序列和状态指示器", + "description": "所有 Beszel 监控系统的表格视图,包含可排序列和状态指示器", "option": { "statusFilter": { - "label": "状态过滤器" + "label": "状态筛选" }, "sortBy": { "label": "排序方式" @@ -4057,17 +4103,17 @@ } }, "beszelAlerts": { - "name": "Beszel 警报", - "description": "查看 Beszel 警报配置和历史记录", + "name": "Beszel 告警", + "description": "查看 Beszel 告警配置和历史记录", "option": { "showHistory": { - "label": "显示警报历史" + "label": "显示告警历史" }, "maxHistoryItems": { "label": "最大历史记录条数" } }, - "empty": "未配置警报", + "empty": "未配置告警", "error": { "internalServerError": "无法连接到 Beszel。请检查您的集成设置。" }, @@ -4079,15 +4125,15 @@ } }, "beszelSystemStats": { - "name": "Beszel 系统状态", - "description": "CPU、内存、磁盘、网络和 Docker 容器指标的时间序列图表", + "name": "Beszel 系统统计", + "description": "CPU、内存、磁盘、网络和 Docker 容器指标的时序图表", "option": { "systemId": { "label": "系统", "description": "选择要显示统计信息的 Beszel 系统" }, "timePeriod": { - "label": "时间段" + "label": "时间范围" }, "showCpu": { "label": "显示 CPU 图表" @@ -4127,12 +4173,12 @@ "chart": { "cpu": { "title": "CPU 使用率", - "subtitle": "平均系统 CPU 利用率", + "subtitle": "系统整体 CPU 平均使用率", "series": "CPU" }, "memory": { "title": "内存使用率", - "subtitle": "记录时的精确利用率", + "subtitle": "记录时间点的精确使用率", "series": "已用", "cache": "缓存/缓冲区" }, @@ -4154,17 +4200,17 @@ }, "network": { "title": "带宽", - "subtitle": "公共接口的网络流量", - "sent": "已发送", + "subtitle": "公网接口的网络流量", + "sent": "发送", "recv": "已接收" }, "dockerCpu": { "title": "Docker CPU 使用率", - "subtitle": "容器的平均 CPU 利用率" + "subtitle": "容器的平均 CPU 使用率" }, "dockerMemory": { "title": "Docker 内存使用率", - "subtitle": "Docker 容器的内存使用" + "subtitle": "Docker 容器的内存使用率" }, "dockerNetwork": { "title": "Docker 网络 I/O", @@ -4572,7 +4618,7 @@ "docker": "Docker", "kubernetes": "Kubernetes", "logs": "日志", - "api": "API", + "api": "API 与 MCP", "certificates": "证书", "tasks": "任务", "backup": "备份" @@ -4690,19 +4736,19 @@ "firstDayOfWeek": "一周的第一天", "accessibility": "无障碍服务", "onboardingTours": { - "title": "入门指南", - "description": "重置入门指南,以便在下次访问管理中心或面板时再次看到它们。", - "reset": "重置入门指南", + "title": "新手指南", + "description": "重置新手指南,以便您下次访问管理区域或面板时再次看到它们。", + "reset": "重置新手指南", "resetSuccess": { - "title": "指南已重置", - "message": "入门指南将在您下次访问时再次显示" + "title": "新手指南已重置", + "message": "新手指南将在您下次访问时再次显示" }, "status": { "completed": "已完成", "notStarted": "未开始" }, "name": { - "management": "管理中心", + "management": "管理", "dashboard": "面板" } } @@ -4829,7 +4875,7 @@ "analytics": { "title": "分析", "general": { - "title": "发送匿名分析", + "title": "协助我们改进 Homarr", "text": "这有助于我们了解用户实际使用哪些功能,从而决定将开发精力投入到哪里。我们会收集诸如您拥有多少小组件或集成、Homarr 版本以及使用的数据库类型等信息。仅此而已——不包含个人信息、URL、名称,也不含任何可能识别您本人或您个人配置的内容。" } }, @@ -5033,84 +5079,84 @@ "mcp": { "label": "AI / MCP", "title": "AI 集成", - "subtitle": "模型上下文协议 (MCP) 服务器", - "description": "将 AI 助手连接到您的 Homarr 实例,通过自然语言控制整个家庭实验室。在 Overseerr 上搜索和请求媒体,管理 Docker 容器,切换 Pi-hole,检查服务器健康状况,控制 Home Assistant 设备等——一切通过您的 AI 助手完成。", - "noApiKey": "您需要一个 API 密钥来与 MCP 服务器进行身份验证。", + "subtitle": "模型上下文协议(MCP)服务器", + "description": "将 AI 助手连接到您的 Homarr 实例,通过自然语言控制您的整个家庭实验室。在 Overseerr 上搜索和请求媒体资源,管理 Docker 容器,切换 Pi-hole,检查服务器健康状态,控制 Home Assistant 设备等——全部通过您的 AI 助手完成。", + "noApiKey": "您需要 API 密钥才能通过 MCP 服务器进行认证。", "createApiKeyButton": "创建 API 密钥", "endpoint": { "title": "MCP 端点" }, "authentication": { "title": "认证", - "intro": "您可以使用 API 密钥或 OAuth 与 MCP 服务器进行身份验证。两种方法授予相同的访问级别。", + "intro": "您可以使用 API 密钥或 OAuth 对 MCP 服务器进行认证。两种方法授予的访问权限级别相同。", "apiKey": { - "title": "API 密钥 (手动)", - "description": "在 MCP 客户端配置中传递带有完整 API 密钥的 ApiKey 标头。" + "title": "API 密钥(手动)", + "description": "在 MCP 客户端配置中通过 ApiKey 标头传递您的完整 API 密钥。" }, "oauth": { - "title": "OAuth (浏览器登录)", - "description": "支持 OAuth 的客户端(如 Claude Code、opencode 或 Cursor)可以通过打开浏览器窗口进行身份验证。在客户端中运行 auth 命令,在浏览器中登录 Homarr,即可连接——API 密钥会自动创建。", - "hint": "OAuth 令牌在身份验证选项卡中显示为常规 API 密钥。您可以随时撤销它们。" + "title": "OAuth(浏览器登录)", + "description": "支持 OAuth 的客户端(如 Claude Code、opencode 或 Cursor)可通过打开浏览器窗口进行认证。在客户端中运行 auth 命令,在浏览器中登录 Homarr,即可完成连接——API 密钥将自动创建。", + "hint": "OAuth 令牌在“认证”标签页中显示为常规 API 密钥。您可以随时撤销它们。" }, - "permissions": "API 密钥决定了 AI 可用的权限——它与密钥所有者具有相同的访问级别。" + "permissions": "PI 密钥决定了 AI 可用的权限——它的访问级别与密钥所有者相同。" }, "clientConfig": { "title": "客户端配置", "streamableHttp": { "recommended": "推荐", - "title": "可流式 HTTP", - "worksWith": "适用于: Cursor, Claude Desktop, VS Code Copilot, Windsurf, Claude Code", - "addToConfig": "添加到您的 MCP 客户端配置文件:", - "cursor": "{name}: 项目或全局设置中的 {file}", + "title": "可流式传输的 HTTP", + "worksWith": "适用于:Cursor、Claude Desktop、VS Code Copilot、Windsurf、Claude Code", + "addToConfig": "添加到您的 MCP 客户端配置文件中:", + "cursor": "{name}:项目或全局设置中的 {file}", "claudeDesktop": "{name}: {file}", - "claudeCode": "{name}: {file} 或使用 {command}", - "vsCodeCopilot": "{name}: 工作区设置中的 {file}", + "claudeCode": "{name}:{file} 或使用 {command}", + "vsCodeCopilot": "{name}:工作区设置中的 {file}", "replaceHint": "将占位符替换为您在创建时收到的 API 密钥。" }, "stdio": { - "title": "stdio (通过 mcp-remote 桥接的旧客户端)", - "description": "仅支持 stdio 传输的客户端。需要本地安装 {dependency} (Node.js):" + "title": "stdio(通过 mcp-remote 桥接的旧版客户端)", + "description": "适用于仅支持 stdio 传输的客户端。需要本地安装 {dependency}(Node.js):" } }, "testConnection": { "title": "测试您的连接", - "description": "在终端中运行此命令以验证端点是否可达以及 API 密钥是否有效:", - "hint": "成功响应将返回 MCP 服务器功能。如果出现错误,请检查 JSON 响应以获取提示。" + "description": "在终端中运行以下命令,以验证端点可访问且您的 API 密钥有效:", + "hint": "成功响应将返回 MCP 服务器的能力信息。如果看到错误,请检查 JSON 响应中的提示。" }, "availableTools": { "title": "可用工具", - "description": "{count} 个工具可用。展开类别以查看各个工具及其描述。", + "description": "{count} 个工具可用。展开分类可查看各个工具及其描述。", "columnType": "类型", "columnName": "工具", "columnDescription": "描述" }, "troubleshooting": { - "title": "故障排除", + "title": "故障排查", "missingHeader": { - "title": "\"缺少 ApiKey 标头\"", - "description": "您的客户端未发送 {header} 标头。验证 MCP 配置中的 {section} 部分是否正确。某些客户端在配置更改后需要重启。" + "title": "“缺少 ApiKey 标头”", + "description": "您的客户端未发送 {header} 标头。请检查 MCP 配置中的 {section} 部分是否正确。某些客户端在更改配置后需要重启。" }, "invalidFormat": { - "title": "\"无效的 ApiKey 格式\"", - "description": "确保您复制了完整的 API 密钥,而不仅仅是部分。" + "title": "“ApiKey 格式无效”", + "description": "请确保您复制了完整的 API 密钥,而非仅复制了其中一部分。" }, "invalidKey": { - "title": "\"无效的 API 密钥\"", - "description": "找不到密钥 ID 或令牌错误。API 密钥仅在创建时可见一次。如果您丢失了它,请删除旧密钥并创建新密钥。" + "title": "“API 密钥无效”", + "description": "未找到该密钥 ID,或令牌有误。API 密钥仅在创建时可见一次。如已丢失,请删除旧密钥并创建新密钥。" }, "connectionRefused": { "title": "连接被拒绝 / 超时", - "description": "确保 URL 可从您的 AI 客户端访问。如果 Homarr 在反向代理或 Docker 后运行,请使用外部 URL (不是 {localhost})。验证端口是否正确 (默认: Docker 为 7575)。" + "description": "请确保您的 AI 客户端能够访问该 URL。如果 Homarr 运行在反向代理后或 Docker 中,请使用外部 URL(而非 {localhost})。请确认端口是否正确(Docker 默认端口为 7575)。" }, "toolsNotAppearing": { - "title": "工具未出现", - "description": "某些工具需要配置特定的集成(例如 Docker、Overseerr)。工具列表取决于 Homarr 实例中的可用内容。" + "title": "工具未显示", + "description": "部分工具需要先配置特定的集成(例如 Docker、Overseerr)。工具列表取决于您的 Homarr 实例中可用的功能。" } }, "copy": "复制", "oneClick": { "title": "一键安装", - "subtitle": "使用 OAuth — 首次使用时在浏览器中进行身份验证", + "subtitle": "使用 OAuth 认证——首次使用时在浏览器中进行身份验证", "vsCode": "在 VS Code 中安装", "cursor": "在 Cursor 中安装", "copyUrl": "复制 MCP URL", @@ -5123,16 +5169,16 @@ }, "backup": { "title": "完整数据库备份", - "metaTitle": "备份与恢复", + "metaTitle": "备份 & 恢复", "export": { "title": "导出数据库", - "description": "下载包含所有设置、用户、面板和加密集成密钥的 SQLite 数据库的完整备份。备份打包为 ZIP 文件,附带加密密钥和元数据。", - "button": "下载备份", + "description": "下载 SQLite 数据库的完整备份,包含所有设置、用户、面板和加密的集成密钥。备份文件以 ZIP 格式打包,内含加密密钥和元数据。", + "button": "备份下载", "error": "导出失败", "confirm": { "title": "敏感数据导出", - "warningTitle": "此导出包含您的整个数据库。", - "warningBody": "备份包括所有用户、集成密钥(加密)、API 密钥、面板配置和应用数据。将导出的文件安全存储,不要分享。", + "warningTitle": "此导出包含您的完整数据库。", + "warningBody": "备份包含所有用户、集成密钥(已加密)、API 密钥、面板配置和应用数据。请妥善保管导出的文件,切勿分享。", "typePrompt": "输入 \"{phrase}\" 以继续", "submit": "导出数据库", "cancel": "取消" @@ -5140,23 +5186,23 @@ }, "import": { "title": "恢复数据库", - "description": "上传先前导出的备份 ZIP 以恢复您的数据库。这将替换您的整个数据库。如果备份是使用不同的加密密钥创建的,密钥将自动重新加密。", - "warning": "恢复备份将完全替换您当前的数据库并重启应用程序。此操作无法撤销。", + "description": "上传之前导出的备份 ZIP 文件以恢复数据库。此操作将替换整个数据库。如果备份使用的加密密钥不同,密钥将自动重新加密。", + "warning": "恢复备份将完全替换当前数据库并重启应用。此操作不可撤销。", "dropzone": { - "title": "将备份 ZIP 拖到此处或点击浏览", - "description": "仅接受 Homarr SQLite 备份的 .zip 文件" + "title": "将备份 ZIP 文件拖放到此处,或点击浏览", + "description": "仅接受来自 Homarr SQLite 备份的 .zip 文件" }, "changeFile": "更改文件", "button": "恢复数据库", "success": { "title": "恢复完成", - "message": "数据库已成功恢复。应用程序正在重启……" + "message": "数据库已成功恢复。应用正在重启……" }, "error": "导入失败" }, "preview": { "title": "备份内容", - "exported": "导出时间:{date}", + "exported": "导出于 {date}", "loading": "正在分析备份文件……", "errorTitle": "预览错误", "entity": "实体", @@ -5172,13 +5218,13 @@ "search_engine": "搜索引擎" }, "analyzeError": "分析备份文件失败", - "invalidMissingMetadata": "无效备份:缺少 metadata.json", - "invalidMissingDb": "无效备份:缺少 db.sqlite" + "invalidMissingMetadata": "备份无效:缺少 metadata.json 文件", + "invalidMissingDb": "备份无效:缺少 db.sqlite 文件" }, "restore": { "dropzone": { - "title": "将备份 ZIP 拖到此处", - "description": "接受 Homarr SQLite 备份的 .zip 文件(最大 256 MB)" + "title": "将备份 ZIP 文件拖放到此处", + "description": "仅接受来自 Homarr SQLite 备份的 .zip 文件(最大 256 MB)" }, "analyzing": "正在分析备份……", "changeFile": "更改文件", @@ -5187,7 +5233,7 @@ "analysisError": "分析错误", "preview": { "title": "备份内容", - "exported": "导出时间:{date}", + "exported": "导出于 {date}", "entity": "实体", "count": "数量", "boards": "面板", @@ -5200,43 +5246,43 @@ "media": "媒体", "search_engine": "搜索引擎" }, - "migrationsApplied": "已应用 {count} 个迁移", - "migrationsAppliedPlural": "已应用 {count} 个迁移", - "migrationsOlderVersion": "此备份来自较旧的 Homarr 版本。已应用 {count} 个架构迁移以使其更新。", - "migrationsOlderVersionPlural": "此备份来自较旧的 Homarr 版本。已应用 {count} 个架构迁移以使其更新。", - "migrationsUpToDate": "数据库架构已是最新(已应用 {count} 个迁移)", - "upToDate": "已更新", - "migrationsPending": "{count} 个待处理" + "migrationsApplied": "已应用 {count} 项迁移", + "migrationsAppliedPlural": "已应用 {count} 项迁移", + "migrationsOlderVersion": "此备份来自较旧版本的 Homarr。已应用 {count} 项数据库迁移以将其更新至最新版本。", + "migrationsOlderVersionPlural": "此备份来自较旧版本的 Homarr。已应用 {count} 项数据库迁移以将其更新至最新版本。", + "migrationsUpToDate": "数据库架构已为最新(已应用 {count} 项迁移)", + "upToDate": "已是最新", + "migrationsPending": "{count} 项待处理" }, "migration": { - "title": "正在应用迁移 ({current}/{total})", + "title": "正在应用迁移({current}/{total})", "migrationLabel": "迁移 {index}" }, "confirm": { "title": "破坏性操作", "warningTitle": "这将永久替换您的整个数据库。", - "warningBody": "所有当前面板、用户、应用、集成、设置和会话都将丢失。此操作无法撤销。应用将在恢复后重启。", + "warningBody": "所有现有面板、用户、应用、集成、设置和会话都将丢失。此操作不可撤销。恢复完成后应用将重启。", "typePrompt": "输入 \"{phrase}\" 以继续", "cancel": "取消", "submit": "恢复数据库" }, "progress": { "title": "正在恢复数据库……", - "extracting": "提取备份存档", - "migrating": "应用数据库迁移", - "encrypting": "重新加密集成密钥", - "swapping": "替换数据库文件", - "restarting": "重启服务器" + "extracting": "正在解压备份压缩包", + "migrating": "正在应用数据库迁移", + "encrypting": "正在重新加密集成密钥", + "swapping": "正在替换数据库文件", + "restarting": "正在重启服务器" }, "complete": { "title": "恢复完成", - "message": "数据库已成功恢复。服务器正在重启——请几秒钟后刷新页面。" + "message": "数据库已成功恢复。服务器正在重启——请稍后刷新页面。" }, "failed": { "title": "恢复失败" }, - "invalidMissingMetadata": "无效备份:缺少 metadata.json", - "invalidMissingDb": "无效备份:缺少 db.sqlite", + "invalidMissingMetadata": "备份无效:缺少 metadata.json 文件", + "invalidMissingDb": "备份无效:缺少 db.sqlite 文件", "analyzeError": "分析备份失败" } } @@ -5918,14 +5964,14 @@ "title": "偏好设置", "children": { "detail": { - "title": "选择要更改的偏好", - "backHint": "按 Backspace 或使用返回按钮返回", + "title": "选择要更改的偏好设置", + "backHint": "按 Backspace 键或使用返回按钮返回", "backAction": "返回" } }, "notification": { "error": { - "message": "无法更新偏好" + "message": "无法更新偏好设置" } }, "option": { @@ -5938,11 +5984,11 @@ }, "board": { "none": "无", - "unavailable": "当前选择(不可用)" + "unavailable": "当前已选(不可用)" }, "searchEngine": { "none": "无", - "unavailable": "当前选择(不可用)" + "unavailable": "当前已选(不可用)" }, "colorScheme": { "label": "配色方案", @@ -5977,42 +6023,42 @@ } }, "ddgBangs": { - "label": "启用 DuckDuckGo bangs", + "label": "启用 DuckDuckGo Bang 快捷搜索", "children": { "detail": { - "title": "启用 DuckDuckGo bangs" + "title": "启用 DuckDuckGo Bang 快捷搜索" } } }, "firstDayOfWeek": { - "label": "一周的第一天", + "label": "每周的第一天", "children": { "detail": { - "title": "选择一周的第一天" + "title": "选择每周的第一天" } } }, "homeBoardId": { - "label": "主面板", + "label": "默认面板", "children": { "detail": { - "title": "选择您的主面板" + "title": "选择您的默认面板" } } }, "mobileHomeBoardId": { - "label": "移动端主面板", + "label": "移动端默认面板", "children": { "detail": { - "title": "选择您的移动端主面板" + "title": "选择您的移动端默认面板" } } }, "pingIconsEnabled": { - "label": "为 ping 使用图标", + "label": "使用图标表示 ping 状态", "children": { "detail": { - "title": "为 ping 使用图标" + "title": "使用图标表示 ping 状态" } } }, @@ -6032,16 +6078,16 @@ } }, "media": { - "help": "搜索电影或节目以请求", + "help": "搜索要请求的电影或剧集", "requestMovie": "请求电影", "requestSeries": "请求电视节目", "openIn": "在 {kind} 中打开", "group": { - "title": "电影和节目" + "title": "电影和剧集" }, "action": { "search": { - "label": "搜索电影或节目", + "label": "搜索电影或剧集", "description": "开始输入以搜索您的媒体请求集成", "disabled": { "noIntegration": "添加 Overseerr、Jellyseerr 或 Seerr 集成以启用媒体搜索。", @@ -6456,39 +6502,39 @@ "manage": { "welcome": { "title": "欢迎使用 Homarr!", - "description": "这是您的控制中心。您可以在此管理面板、应用、集成、用户和服务器设置。让我们浏览每个部分。" + "description": "这是您的控制中心。您可以在这里管理面板、应用、集成、用户和服务器设置。让我们逐一了解每个部分。" }, "boardsList": { "title": "您的面板", - "description": "这里是您的所有面板。每个面板都有自己的布局、背景和访问设置。您可以查看每个面板的创建者以及它是公开的还是私有的。" + "description": "这里是您的所有面板。每个面板都有自己的布局、背景和访问设置。您可以查看每个面板的创建者以及它是公开还是私有的。" }, "boardsCreate": { "title": "创建面板", - "description": "点击此处创建新面板或从以前的 Homarr 安装中导入。每个面板都有自己可共享的 URL。" + "description": "点击此处创建新面板,或从之前的 Homarr 安装中导入。每个面板都有独立的可分享链接。" }, "appsList": { "title": "您的应用", - "description": "这些是您添加的所有应用——指向自托管服务的链接。每个应用都有图标、可选的健康检查和面板上的状态徽章。" + "description": "这些是您已添加的所有应用——指向您自托管服务的链接。每个应用都配有图标、可选的健康检查,并在面板上显示状态标记。" }, "appsCreate": { "title": "添加应用", - "description": "在此注册新服务。为其命名、URL 和图标——它将作为磁贴显示在您的面板上,并带有实时状态监控。" + "description": "在此处注册新服务。设置名称、URL 和图标后,它将以磁贴形式出现在您的面板上,并带有实时状态监控。" }, "integrationsList": { "title": "您的集成", - "description": "这些是连接到 Homarr 的服务——Sonarr、Radarr、Plex、Jellyfin 及 50 多种其他服务。所有凭据在静态时均加密。" + "description": "这些是已连接到 Homarr 的服务——Sonarr、Radarr、Plex、Jellyfin 以及 50 多种其他服务。所有凭证均以加密方式存储。" }, "integrationsCreate": { "title": "添加集成", - "description": "在此连接新服务。选择类型,输入 URL 和 API 密钥——Homarr 在保存前会验证连接。" + "description": "在此处连接新服务。选择类型,输入 URL 和 API 密钥——Homarr 会在保存前验证连接。" }, "usersList": { "title": "您的用户", - "description": "查看所有有访问权限的人员。将用户组织到组中,并控制谁可以查看或编辑每个面板。" + "description": "查看所有拥有访问权限的用户。将用户归入不同组别,并控制谁可以查看或编辑每个面板。" }, "usersCreate": { "title": "创建用户", - "description": "在此添加新用户账户。您也可以使用邀请链接方便地引入。导览到此结束——您已准备就绪!" + "description": "在此处添加新用户账号。您也可以使用邀请链接简化入门流程。导览已结束——您已准备就绪!" } }, "board": { @@ -6502,15 +6548,15 @@ }, "settings": { "title": "面板设置", - "description": "更改此面板的名称、列数、背景、颜色以及访问权限。每个面板可以是公开或私有的。" + "description": "更改此面板的名称、列数、背景、颜色以及访问权限。每个面板均可设为公开或私有。" }, "switcher": { "title": "切换面板", - "description": "在面板间跳转。为不同目的创建独立的面板——媒体、网络、按用户或任何您喜欢的。" + "description": "在不同面板之间跳转。您可以为不同用途创建独立的面板——媒体、网络、按用户划分,或任何您喜欢的分类。" }, "userMenu": { "title": "您的个人资料", - "description": "更改您的配色方案、语言、主面板和偏好。您也可以从此处跳转到管理中心。" + "description": "更改您的配色方案、语言、默认面板和偏好设置。您也可以从这里跳转到管理区域。" } } } diff --git a/packages/translation/src/lang/cr.json b/packages/translation/src/lang/cr.json index a164a6354..46392551f 100644 --- a/packages/translation/src/lang/cr.json +++ b/packages/translation/src/lang/cr.json @@ -1344,6 +1344,10 @@ "name": "crwdns5753:0crwdne5753:0", "description": "crwdns5755:0crwdne5755:0" }, + "wud": { + "name": "crwdns6193:0crwdne6193:0", + "description": "crwdns6195:0crwdne6195:0" + }, "paperlessNgx": { "name": "crwdns5003:0crwdne5003:0", "description": "crwdns5005:0crwdne5005:0" @@ -1437,8 +1441,18 @@ "here": "crwdns552:0crwdne552:0", "iconPicker": { "label": "crwdns554:0crwdne554:0", - "header": "crwdns556:0{countIcons}crwdne556:0", - "headerLoading": "crwdns5681:0crwdne5681:0", + "description": "crwdns6225:0crwdne6225:0", + "header": "crwdns6227:0{countIcons}crwdne6227:0", + "headerLoading": "crwdns6229:0crwdne6229:0", + "clear": "crwdns6231:0crwdne6231:0", + "uploadImage": "crwdns6233:0crwdne6233:0", + "results": "crwdns6235:0crwdne6235:0", + "localImages": "crwdns6237:0crwdne6237:0", + "svgIcons": "crwdns6239:0crwdne6239:0", + "otherImages": "crwdns6241:0crwdne6241:0", + "urlLoading": "crwdns6243:0crwdne6243:0", + "urlReady": "crwdns6245:0crwdne6245:0", + "urlError": "crwdns6247:0crwdne6247:0", "noResults": "crwdns5683:0{search}crwdne5683:0", "error": "crwdns5685:0crwdne5685:0" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "crwdns6197:0crwdne6197:0", + "description": "crwdns6199:0crwdne6199:0", + "title": "crwdns6201:0crwdne6201:0", + "monitored": "crwdns6203:0crwdne6203:0", + "updatesAvailable": "crwdns6205:0count={count}crwdne6205:0", + "updateAvailable": "crwdns6207:0crwdne6207:0", + "openReleaseNotes": "crwdns6209:0crwdne6209:0", + "option": { + "showTitle": { + "label": "crwdns6211:0crwdne6211:0" + }, + "showRing": { + "label": "crwdns6213:0crwdne6213:0" + }, + "layout": { + "label": "crwdns6215:0crwdne6215:0", + "option": { + "horizontal": { + "label": "crwdns6217:0crwdne6217:0" + }, + "vertical": { + "label": "crwdns6219:0crwdne6219:0" + } + } + }, + "showUpdateList": { + "label": "crwdns6221:0crwdne6221:0", + "description": "crwdns6223:0crwdne6223:0" + } + } + }, "dnsHoleSummary": { "name": "crwdns768:0crwdne768:0", "description": "crwdns770:0crwdne770:0", diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index 8e9a14e72..c7d471fd3 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Co je Docker nahoru", + "description": "Sledujte, které z vašich kontejnerů v Dockeru mají k dispozici aktualizace obrázků" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "zde", "iconPicker": { "label": "URL ikony", - "header": "", - "headerLoading": "", + "description": "Vyhledejte knihovnu, vložte URL obrázku, nebo nahrajte soubor.", + "header": "Hledat {countIcons} obrázky podle jména", + "headerLoading": "Hledat obrázky podle jména", + "clear": "Vymazat obrázek", + "uploadImage": "Nahrát obrázek", + "results": "Výsledky vyhledávání obrázků", + "localImages": "Vaše obrázky", + "svgIcons": "SVG ikony", + "otherImages": "Ostatní obrázky", + "urlLoading": "Kontrola obrázku…", + "urlReady": "Obrázek je připraven k použití", + "urlError": "Tento obrázek nelze načíst. Zkontrolujte URL a zkuste to znovu.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Co je Docker nahoru", + "description": "Zobrazit, kolik sledovaných kontejnerů je k dispozici aktualizace.", + "title": "Co je Docker nahoru", + "monitored": "Monitorováno", + "updatesAvailable": "{count, plural, one {K dispozici je # aktualizace} other {# dostupných aktualizací}}", + "updateAvailable": "K dispozici je aktualizace", + "openReleaseNotes": "Otevřít poznámky k vydání", + "option": { + "showTitle": { + "label": "Zobrazit název" + }, + "showRing": { + "label": "Zobrazit vyzvánění aktualizace" + }, + "layout": { + "label": "Rozložení", + "option": { + "horizontal": { + "label": "Horizontální" + }, + "vertical": { + "label": "Vertikální" + } + } + }, + "showUpdateList": { + "label": "Zobrazit seznam aktualizací kontejneru", + "description": "Zobrazí seznam každého monitorovaného kontejneru, který má k dispozici aktualizaci obrázku" + } + } + }, "dnsHoleSummary": { "name": "", "description": "Zobrazí shrnutí vaší DNS Hole", diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index 5f0de785b..8506949b1 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Hvad Er Opad Docker", + "description": "Overvåg hvilke af dine Docker-containere der er tilgængelige billedopdateringer" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumenthåndteringssystem til arkivering og organisering af scannede dokumenter" @@ -1437,8 +1441,18 @@ "here": "her", "iconPicker": { "label": "Ikon-URL", + "description": "Søg i biblioteket, indsæt en billed-URL, eller upload en fil.", "header": "Indtast navn eller objekter for at filtrere for ikoner... Homarr vil søge gennem {countIcons} ikoner for dig.", - "headerLoading": "", + "headerLoading": "Søg billeder efter navn", + "clear": "Ryd billede", + "uploadImage": "Upload billede", + "results": "Billede søgeresultater", + "localImages": "Dine billeder", + "svgIcons": "SVG ikoner", + "otherImages": "Andre billeder", + "urlLoading": "Kontrollerer billede…", + "urlReady": "Billedet er klar til brug", + "urlError": "Dette billede kunne ikke indlæses. Tjek URL'en og prøv igen.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Hvad Er Opad Docker", + "description": "Vis hvor mange overvågede containere der er tilgængelige opdateringer.", + "title": "Hvad Er Opad Docker", + "monitored": "Overvåget", + "updatesAvailable": "{count, plural, one {# opdatering tilgængelig} other {# opdateringer tilgængelige}}", + "updateAvailable": "Opdatering tilgængelig", + "openReleaseNotes": "Åbn udgivelsesnoter", + "option": { + "showTitle": { + "label": "Vis titel" + }, + "showRing": { + "label": "Vis opdateringsring" + }, + "layout": { + "label": "Layout", + "option": { + "horizontal": { + "label": "Horisontal" + }, + "vertical": { + "label": "Vertikal" + } + } + }, + "showUpdateList": { + "label": "Vis liste over container-opdatering", + "description": "Lister hver overvåget beholder, der har en billedopdatering tilgængelig" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole Oversigt", "description": "Viser oversigten over dit DNS-hul", diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json index c29ee7f19..084e6cbb4 100644 --- a/packages/translation/src/lang/de-CH.json +++ b/packages/translation/src/lang/de-CH.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "Hier", "iconPicker": { "label": "", + "description": "", "header": "Geben Sie Namen oder Objekte ein, um nach Symbolen zu filtern... Homarr sucht nach {countIcons} Icons für Sie.", "headerLoading": "", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "", + "svgIcons": "", + "otherImages": "", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "Ansicht", + "option": { + "horizontal": { + "label": "" + }, + "vertical": { + "label": "Vertikal" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole Zusammenfassung", "description": "Zeigt die Zusammenfassung deines DNS Holes an", diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index 3b4d0efa3..418d4ca3f 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Cloud-nativer Reverse-Proxy und Lastverteiler" }, + "wud": { + "name": "Was ist Docker hoch", + "description": "Überwachen Sie, welche Docker-Container Bildupdates verfügbar sind" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumentenverwaltungssystem zum Archivieren und Organisieren gescannter Dokumente" @@ -1437,8 +1441,18 @@ "here": "Hier", "iconPicker": { "label": "Icon URL", + "description": "Suchen Sie die Bibliothek, fügen Sie eine Bild-URL ein oder laden Sie eine Datei hoch.", "header": "Geben Sie Namen oder Objekte ein, um nach Symbolen zu filtern... Homarr sucht nach {countIcons} Icons für Sie.", "headerLoading": "Tippe um die Symbole zu durchsuchen…", + "clear": "Bild löschen", + "uploadImage": "Bild hochladen", + "results": "Bildsuchergebnisse", + "localImages": "Ihre Bilder", + "svgIcons": "SVG-Symbole", + "otherImages": "Andere Bilder", + "urlLoading": "Bild wird überprüft…", + "urlReady": "Bild ist bereit zur Verwendung", + "urlError": "Dieses Bild konnte nicht geladen werden. Überprüfen Sie die URL und versuchen Sie es erneut.", "noResults": "Keine Symbole stimmen mit \"{search}\" überein.", "error": "Konnte Symbole nicht laden." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Was ist Docker hoch", + "description": "Zeigt an, wie viele überwachte Container über Updates verfügen.", + "title": "Was ist Docker hoch", + "monitored": "Überwacht", + "updatesAvailable": "{count, plural, one {# Update verfügbar} other {# Updates verfügbar}}", + "updateAvailable": "Update verfügbar", + "openReleaseNotes": "Versionshinweise öffnen", + "option": { + "showTitle": { + "label": "Titel anzeigen" + }, + "showRing": { + "label": "Update-Ring anzeigen" + }, + "layout": { + "label": "Ansicht", + "option": { + "horizontal": { + "label": "Horizontal" + }, + "vertical": { + "label": "Vertikal" + } + } + }, + "showUpdateList": { + "label": "Container-Update-Liste anzeigen", + "description": "Listet jeden überwachten Container auf, der eine Bildaktualisierung zur Verfügung hat" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole Zusammenfassung", "description": "Zeigt die Zusammenfassung deines DNS Holes an", @@ -2739,10 +2785,10 @@ }, "showBitrate": { "label": "Zeigt die Bitrate an", - "description": "" + "description": "Zeige die aktuelle Wiedergabe-Bitrate neben dem Ort an" }, "showLocation": { - "label": "", + "label": "Standort anzeigen", "description": "Zeigt an, ob der Stream über das LAN oder WAN läuft" } }, @@ -2758,8 +2804,8 @@ "status": "Status", "directPlay": "Direkte Wiedergabe", "directStream": "Direkter Stream", - "transcodeVideo": "", - "transcodeAudio": "", + "transcodeVideo": "Video wird transkodiert", + "transcodeAudio": "Audio wird transkodiert", "transcoding": "Transkodierung", "paused": "Pausiert", "remaining": "{minutes} Min. verbleibend", @@ -2966,8 +3012,8 @@ } }, "showOsVersion": { - "label": "", - "description": "" + "label": "Betriebssystem-Version anzeigen", + "description": "Füge die Betriebssystemversion jedem Verteilungsetikett hinzu, sofern verfügbar" }, "showComplianceHero": { "label": "", @@ -4057,11 +4103,11 @@ } }, "beszelAlerts": { - "name": "", - "description": "", + "name": "Beszel-Alarme", + "description": "Zeige Beszels Alarmeinstellungen und -verlauf", "option": { "showHistory": { - "label": "" + "label": "Alarmverlauf anzeigen" }, "maxHistoryItems": { "label": "" @@ -4072,9 +4118,9 @@ "internalServerError": "" }, "history": "Verlauf", - "resolved": "", + "resolved": "Gelöst", "status": { - "triggered": "", + "triggered": "Ausgelöst", "ok": "Ok" } }, @@ -4083,43 +4129,43 @@ "description": "", "option": { "systemId": { - "label": "", + "label": "System", "description": "" }, "timePeriod": { - "label": "" + "label": "Zeitraum" }, "showCpu": { - "label": "" + "label": "CPU-Diagramm anzeigen" }, "showMemory": { - "label": "" + "label": "RAM-Diagramm anzeigen" }, "showDisk": { - "label": "" + "label": "Festplatten-Diagramm anzeigen" }, "showDiskIO": { - "label": "" + "label": "Festplatten-E/A-Diagramm anzeigen" }, "showNetwork": { - "label": "" + "label": "Netzwerk-Diagramm anzeigen" }, "showDockerCpu": { - "label": "" + "label": "Docker-CPU-Diagramm anzeigen" }, "showDockerMemory": { - "label": "" + "label": "Docker-RAM-Diagramm anzeigen" }, "showDockerNetwork": { - "label": "" + "label": "Docker-Netzwerk-Diagramm anzeigen" } }, "selectSystem": "System auswählen", "empty": { - "noSystems": "" + "noSystems": "Keine Systeme gefunden" }, "error": { - "internalServerError": "", + "internalServerError": "Keine Verbindung zu Beszel möglich. Überprüfe deine Integrations-Einstellungen.", "liveConnectionFailed": "", "switchToHistorical": "", "systemNotFound": "" @@ -4139,36 +4185,36 @@ "disk": { "title": "Festplattenbelegung", "subtitle": "", - "series": "" + "series": "Root" }, "diskIO": { - "title": "", + "title": "Festplatten-E/A", "subtitle": "", - "read": "", - "write": "" + "read": "Lesen", + "write": "Schreiben" }, "storage": { - "title": "", - "subtitle": "", - "series": "" + "title": "Speicher", + "subtitle": "Festplattenverbrauch pro Dateisystem", + "series": "Belegt" }, "network": { - "title": "", - "subtitle": "", - "sent": "", - "recv": "" + "title": "Bandbreite", + "subtitle": "Netzwerkverkehr öffentlicher Schnittstellen", + "sent": "Gesendet", + "recv": "Empfangen" }, "dockerCpu": { - "title": "", - "subtitle": "" + "title": "Docker-CPU-Nutzung", + "subtitle": "Durchschnittliche CPU-Nutzung der Container" }, "dockerMemory": { - "title": "", - "subtitle": "" + "title": "Docker-RAM-Nutzung", + "subtitle": "RAM-Nutzung der Docker-Container" }, "dockerNetwork": { - "title": "", - "subtitle": "" + "title": "Docker-Netzwerk-E/A", + "subtitle": "Netzwerkverkehr der Docker-Container" } } } @@ -4545,7 +4591,7 @@ "text": "Konnte die angeforderte Ressource nicht finden" }, "error": { - "title": "", + "title": "Diese Seite konnte nicht geladen werden", "text": "", "digest": "" }, @@ -5110,7 +5156,7 @@ "copy": "", "oneClick": { "title": "", - "subtitle": "", + "subtitle": "OAuth wird verwendet. Authentifiziere dich bei der ersten Nutzung im Browser", "vsCode": "In VS Code installieren", "cursor": "In Cursor installieren", "copyUrl": "MCP URL kopieren", @@ -5130,7 +5176,7 @@ "button": "Sicherung herunterladen", "error": "Export fehlgeschlagen", "confirm": { - "title": "", + "title": "Export sensibler Daten", "warningTitle": "Dieser Export enthält Ihre gesamte Datenbank.", "warningBody": "Das Backup umfasst alle Benutzer, Integrationsgeheimnisse (verschlüsselt), API-Keys, Board-Konfigurationen und App-Daten. Speichern Sie die exportierte Datei sicher ab und teilen Sie diese nicht.", "typePrompt": "Geben Sie \"{phrase}\" ein, um fortzufahren", @@ -5140,8 +5186,8 @@ }, "import": { "title": "Datenbank wiederherstellen", - "description": "", - "warning": "", + "description": "Lade ein zuvor exportiertes Backup-ZIP‑File hoch, um deine Datenbank wiederherzustellen. Damit ersetzt du deine gesamte jetzige Datenbank. Falls das Backup mit einem anderen Verschlüsselungs-Key erstellt wurde, werden vertrauliche Daten (Secrets) automatisch neu verschlüsselt.", + "warning": "Ein Backup wiederherzustellen, wird deine jetzige Datenbank komplett ersetzen und das Programm neu starten. Diese Aktion kann nicht rückgängig gemacht werden.", "dropzone": { "title": "Ziehen Sie Ihre Backup-ZIP hierher oder klicken Sie zum Durchsuchen", "description": "Nur .zip Dateien aus einer Homarr SQLite-Sicherung werden akzeptiert" @@ -6332,10 +6378,10 @@ "header": { "season": "Staffel", "episodes": "Episoden", - "status": "" + "status": "Status" }, "status": { - "requested": "" + "requested": "Angefragt" } }, "button": { @@ -6448,18 +6494,18 @@ } }, "onboardingTour": { - "learnMore": "", - "next": "", - "prev": "", - "done": "", - "skip": "", + "learnMore": "Lese die Dokumentation", + "next": "Weiter", + "prev": "Zurück", + "done": "Fertig", + "skip": "Überspringe die Einführung", "manage": { "welcome": { - "title": "", - "description": "" + "title": "Willkommen bei Homarr!", + "description": "Das ist dein Kontrollzentrum. Von hier steuerst du Boards, Apps, Integrationen, Benutzer und die Servereinstellungen. Lass uns eine Einführung in jeden Bereich machen." }, "boardsList": { - "title": "", + "title": "Deine Boards", "description": "" }, "boardsCreate": { @@ -6493,15 +6539,15 @@ }, "board": { "welcome": { - "title": "", - "description": "" + "title": "Das ist dein Board", + "description": "Ein Drag-and-drop-Dashboard, wo du Apps und Widgets anordnen kannst. Du kannst jederzeit Strg+K drücken, um nach Apps, Boards und Aktionen zu suchen." }, "editMode": { "title": "Bearbeitungsmodus", - "description": "" + "description": "Drücke hier, um in den Bearbeitungsmodus zu kommen. Dort kannst du Widgets, Apps und Abschnitte hinzufügen, welche du durch anschließendes Ziehen neu anordnen und an den Ecken in der Größe anpassen kannst." }, "settings": { - "title": "", + "title": "Board-Einstellungen", "description": "" }, "switcher": { diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index 89b71379e..ea544dd12 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Τι Είναι Το Docker", + "description": "Παρακολούθηση ποια από τα εμπορευματοκιβώτια Docker σας έχουν διαθέσιμες ενημερώσεις εικόνας" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Σύστημα διαχείρισης εγγράφων για αρχειοθέτηση και οργάνωση σαρωμένων εγγράφων" @@ -1437,8 +1441,18 @@ "here": "εδώ", "iconPicker": { "label": "", + "description": "Αναζήτηση στη βιβλιοθήκη, επικόλληση ενός URL εικόνας ή μεταφόρτωση αρχείου.", "header": "", - "headerLoading": "", + "headerLoading": "Αναζήτηση εικόνων κατά όνομα", + "clear": "Καθαρισμός εικόνας", + "uploadImage": "Μεταφόρτωση εικόνας", + "results": "Αποτελέσματα αναζήτησης εικόνας", + "localImages": "Οι εικόνες σας", + "svgIcons": "Εικονίδια SVG", + "otherImages": "Άλλες εικόνες", + "urlLoading": "", + "urlReady": "Η εικόνα είναι έτοιμη προς χρήση", + "urlError": "Δεν ήταν δυνατή η φόρτωση αυτής της εικόνας. Ελέγξτε τη διεύθυνση URL και προσπαθήστε ξανά.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Τι Είναι Το Docker", + "description": "Δείτε πόσες παρακολουθήσεις δοχείων έχουν διαθέσιμες ενημερώσεις.", + "title": "Τι Είναι Το Docker", + "monitored": "Ελέγχτηκε", + "updatesAvailable": "{count, plural, one {# διαθέσιμη ενημέρωση} other {# διαθέσιμες ενημερώσεις}}", + "updateAvailable": "Διαθέσιμη ενημέρωση", + "openReleaseNotes": "Άνοιγμα σημειώσεων έκδοσης", + "option": { + "showTitle": { + "label": "Εμφάνιση τίτλου" + }, + "showRing": { + "label": "Εμφάνιση κουδουνίσματος ενημέρωσης" + }, + "layout": { + "label": "Διάταξη", + "option": { + "horizontal": { + "label": "Οριζόντια" + }, + "vertical": { + "label": "Κατακόρυφα" + } + } + }, + "showUpdateList": { + "label": "Εμφάνιση λίστας ενημερώσεων περιέκτη", + "description": "Εμφανίζει κάθε δοχείο που παρακολουθείται και διαθέτει διαθέσιμη ενημέρωση εικόνας" + } + } + }, "dnsHoleSummary": { "name": "", "description": "", diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 76abff9a8..3f69b078d 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Cloud-native reverse proxy and load balancer" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Document management system for archiving and organizing scanned documents" @@ -1437,8 +1441,18 @@ "here": "here", "iconPicker": { "label": "Icon URL", + "description": "", "header": "Please enter a name or object to filter for the icon. Homarr will search throughout {countIcons} different icons to find the right one.", "headerLoading": "Type to search icons…", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "", + "svgIcons": "", + "otherImages": "", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "No icons match \"{search}\".", "error": "Couldn't load icons." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "Show title" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "Layout", + "option": { + "horizontal": { + "label": "Horizontal" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole Summary", "description": "Displays the summary of your DNS Hole", diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 15a5b1e8d..a3311ad35 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Qué hay de nuevo Docker", + "description": "Controlar cuál de sus contenedores Docker tiene actualizaciones de imagen disponibles" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "aquí", "iconPicker": { "label": "URL del icono", + "description": "Busca en la biblioteca, pega una URL de imagen o sube un archivo.", "header": "Escribe nombre u objetos para filtrar iconos... Homarr buscará a través de iconos {countIcons} por ti.", - "headerLoading": "", + "headerLoading": "Buscar imágenes por nombre", + "clear": "Borrar imagen", + "uploadImage": "Subir imagen", + "results": "Resultados de búsqueda de imágenes", + "localImages": "Tus imágenes", + "svgIcons": "Iconos SVG", + "otherImages": "Otras imágenes", + "urlLoading": "Comprobando imagen…", + "urlReady": "La imagen está lista para usar", + "urlError": "Esta imagen no se pudo cargar. Compruebe la URL e inténtelo de nuevo.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Qué hay de nuevo Docker", + "description": "Mostrar cuántos contenedores vistos tienen actualizaciones disponibles.", + "title": "Qué hay de nuevo Docker", + "monitored": "Monitoreado", + "updatesAvailable": "{count, plural, one {# actualización disponible} other {# actualizaciones disponibles}}", + "updateAvailable": "Actualización disponible", + "openReleaseNotes": "Notas de la versión abierta", + "option": { + "showTitle": { + "label": "Mostrar título" + }, + "showRing": { + "label": "Mostrar anillo de actualización" + }, + "layout": { + "label": "Diseño", + "option": { + "horizontal": { + "label": "Horizontal" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "Mostrar lista de actualización del contenedor", + "description": "Lista cada contenedor supervisado que tiene una actualización de imagen disponible" + } + } + }, "dnsHoleSummary": { "name": "Resumen del agujero DNS", "description": "Muestra el resumen de tu agujero DNS", diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index b490502e0..ace3b940e 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -2,51 +2,51 @@ "init": { "step": { "start": { - "title": "", - "subtitle": "", - "description": "", + "title": "Tere tulemast Homarri", + "subtitle": "Alustame sinu Homarri seadistamisega.", + "description": "Alustamiseks vali, kuidas soovid oma Homarri seadistada.", "action": { - "scratch": "", - "importOldmarr": "", - "restoreSqlite": "", - "restoreSqliteDescription": "", - "backToOptions": "" + "scratch": "Alustage nullist", + "importOldmarr": "Impordi Homarrist enne versiooni 1.0", + "restoreSqlite": "Taasta SQLite-varukoopiast", + "restoreSqliteDescription": "Laadi üles eelmise Homarri täielik SQLite-andmebaasi varukoopia. See taastab kõik paneelid, kasutajad, rakendused, integratsioonid ja seaded.", + "backToOptions": "​← Tagasi seadistusvalikute juurde" } }, "import": { - "title": "", - "subtitle": "", + "title": "Impordi andmed", + "subtitle": "Saad importida andmeid olemasolevast Homarrist.", "dropzone": { - "title": "", - "description": "" + "title": "Lohista zip-fail siia või klõpsa sirvimiseks", + "description": "Üleslaaditud zip-fail töödeldakse ja saad valida, mida soovid importida" }, "fileInfo": { "action": { - "change": "" + "change": "Muuda faili" } }, "importSettings": { - "title": "", - "description": "" + "title": "Impordi sätted", + "description": "Seadista importimise parameetrid" }, "boardSelection": { - "title": "", - "description": "", + "title": "Leiti {count} paneeli", + "description": "Vali kõik paneelid koos nende suurustega, mida soovid importida", "action": { - "selectAll": "", - "unselectAll": "" + "selectAll": "Vali kõik", + "unselectAll": "Eemalda valikud" } }, "summary": { - "title": "", - "description": "", + "title": "Impordi kokkuvõte", + "description": "Allolevas kokkuvõttes näed, mida imporditakse", "action": { - "import": "" + "import": "Kinnita import ja jätka" }, "entities": { - "apps": "", - "boards": "", - "integrations": "", + "apps": "Rakendused", + "boards": "Paneelid", + "integrations": "Integratsioonid", "credentialUsers": "" } }, @@ -90,13 +90,13 @@ } }, "settings": { - "title": "", - "subtitle": "" + "title": "Seaded", + "subtitle": "Määra serveri seaded." }, "integrations": { "title": "", "subtitle": "", - "description": "", + "description": "Vali integratsioonid, mida soovid ühendada. Seadistame sinu juhtpaneeli automaatselt vastavate vidinatega.", "action": { "continue": "", "skip": "" @@ -104,10 +104,10 @@ "configure": { "progress": "", "skip": "", - "finishing": "", + "finishing": "Sinu juhtpaneeli seadistamine...", "error": { "title": "", - "message": "" + "message": "Juhtpaneeli seadistamisel läks midagi valesti. Palun proovi uuesti." }, "helpers": { "tooltip": "", @@ -130,7 +130,7 @@ "detectedBreakdown": "", "summary": "", "appBadge": "", - "appSectionLabel": "", + "appSectionLabel": "Juhtpaneelile lisatavad rakendused ({count} valitud)", "scanning": "", "scanningDescription": "" } @@ -140,8 +140,8 @@ "subtitle": "", "description": "", "action": { - "goToBoard": "", - "createBoard": "", + "goToBoard": "Mine paneelile {name}", + "createBoard": "Loo oma esimene paneel", "inviteUser": "", "docs": "" } @@ -193,7 +193,7 @@ "label": "Eelmine parool" }, "homeBoard": { - "label": "Kodujuhtpaneel" + "label": "Kodupaneel" }, "pingIconsEnabled": { "label": "Kasuta pingide jaoks ikoone" @@ -262,7 +262,7 @@ "changeHomeBoard": { "notification": { "success": { - "message": "Kodujuhtpaneel edukalt muudetud" + "message": "Kodupaneel edukalt muudetud" }, "error": { "message": "Kodujuhtpaneeli ei saanud muuta" @@ -370,12 +370,12 @@ "name": "Nimi", "members": "Liikmed", "homeBoard": { - "label": "", - "description": "" + "label": "Kodupaneel", + "description": "Valida saab ainult rühmale kättesaadavaid paneele" }, "mobileBoard": { - "label": "", - "description": "" + "label": "Mobiilipaneel", + "description": "Valida saab ainult rühmale kättesaadavaid paneele" } }, "permission": { @@ -577,12 +577,12 @@ "board": { "notification": { "success": { - "title": "", - "message": "" + "title": "Sätted salvestati", + "message": "Paneeli seaded on salvestatud" }, "error": { - "title": "", - "message": "" + "title": "Seadistuste salvestamine nurjus", + "message": "Paneeli seadete salvestamine ebaõnnestus" } } } @@ -678,7 +678,7 @@ "search": "", "noResults": "", "action": "", - "title": "" + "title": "Vali rakendus, mida sellele paneelile lisada" }, "create": { "title": "", @@ -867,11 +867,11 @@ "updated": "", "deleted": "", "imported": "", - "aiPromptCopied": "", + "aiPromptCopied": "AI viip kopeeritud lõikelauale", "aiPromptDescription": "", - "aiPromptCopy": "", + "aiPromptCopy": "Kopeeri lõikelauale", "aiPromptNoResponse": "", - "aiPromptCopyError": "", + "aiPromptCopyError": "Viiba kopeerimine lõikelauale nurjus. Sinu veebibrauser ei pruugi seda funktsiooni toetada.", "createError": "", "updateError": "", "importError": "", @@ -924,7 +924,7 @@ "title": "", "url": { "label": "", - "description": "" + "description": "Veebiaadress, mille rakendus juhtpaneelilt avab" } } } @@ -987,7 +987,7 @@ "placeholder": "" }, "apiKeySettings": { - "label": "" + "label": "Hangi API võti" } }, "action": { @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "siin", "iconPicker": { "label": "Ikooni URL", + "description": "", "header": "Sisesta nimi või objektid ikoonide filtreerimiseks... Homarr otsib {countIcons} ikooni seast.", "headerLoading": "", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "", + "svgIcons": "", + "otherImages": "", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "", "error": "" }, @@ -1602,7 +1616,7 @@ "label": { "create": "Uus kategooria", "changePosition": "Muuda asukohta", - "settings": "" + "settings": "Seaded" } }, "openAllInNewTabs": { @@ -1663,7 +1677,7 @@ "app": "" }, "app": { - "propagationNotice": "" + "propagationNotice": "Selle äpi muudatused rakenduvad kõigil juhtpaneelidel." }, "advancedOptions": { "label": "Täpsemad valikud", @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "", + "option": { + "horizontal": { + "label": "" + }, + "vertical": { + "label": "" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole kokkuvõte", "description": "Kuvab sinu DNS Hole kokkuvõtte", @@ -3412,7 +3458,7 @@ "empty": { "missing": "", "queued": "", - "noTabsEnabled": "" + "noTabsEnabled": "Luba vidina seadetes vähemalt üks vahekaart" }, "timeLeft": "" }, @@ -3816,7 +3862,7 @@ }, "compactMode": { "label": "", - "description": "" + "description": "Kasuta tihedamat paigutust väiksemate kaartidega, mis sobib ideaalselt väikeste vidinate jaoks" } }, "artists": "", @@ -3976,7 +4022,7 @@ }, "noRecords": "", "error": { - "internalServerError": "", + "internalServerError": "Beszeliga ei õnnestunud ühendust luua. Kontrolli oma integratsiooni seadeid.", "layoutSaveTitle": "", "layoutSaveMessage": "" }, @@ -4037,7 +4083,7 @@ } }, "error": { - "internalServerError": "" + "internalServerError": "Beszeliga ei õnnestunud ühendust luua. Kontrolli oma integratsiooni seadeid." }, "empty": { "noSystems": "" @@ -4069,7 +4115,7 @@ }, "empty": "", "error": { - "internalServerError": "" + "internalServerError": "Beszeliga ei õnnestunud ühendust luua. Kontrolli oma integratsiooni seadeid." }, "history": "", "resolved": "", @@ -4119,7 +4165,7 @@ "noSystems": "" }, "error": { - "internalServerError": "", + "internalServerError": "Beszeliga ei õnnestunud ühendust luua. Kontrolli oma integratsiooni seadeid.", "liveConnectionFailed": "", "switchToHistorical": "", "systemNotFound": "" @@ -4185,16 +4231,16 @@ "board": { "action": { "duplicate": { - "title": "", - "message": "", + "title": "Tee paneelist koopia", + "message": "See teeb paneelist {name} ja kogu selle sisust koopia. Kui vidinad viitavad integratsioonidele, mille kasutamiseks sul puudub õigus, eemaldatakse need.", "notification": { "success": { - "title": "", - "message": "" + "title": "Paneelist tehti koopia", + "message": "Paneel on edukalt kopeeritud" }, "error": { - "title": "", - "message": "" + "title": "Paneelist koopia tegemine nurjus", + "message": "Paneeli kopeerimine nurjus" } } }, @@ -4202,11 +4248,11 @@ "notification": { "success": { "title": "Muudatused rakendati edukalt", - "message": "Töölaud salvestati edukalt" + "message": "Paneel salvestati edukalt" }, "error": { "title": "Muudatusi ei saa rakendada", - "message": "Töölauda ei saanud salvestada" + "message": "Paneeli ei saanud salvestada" } }, "confirmLeave": { @@ -4219,11 +4265,11 @@ "notification": { "success": { "title": "Importimine õnnestus", - "message": "Töölaud imporditi edukalt" + "message": "Paneel imporditi edukalt" }, "error": { "title": "Importimine ebaõnnestus", - "message": "Töölauda ei saanud importida, vaadake logisid täpsema teabe saamiseks" + "message": "Paneeli ei saanud importida, vaata täpsema teabe saamiseks logisid" } }, "form": { @@ -4239,15 +4285,15 @@ }, "onlyImportApps": { "label": "Impordi ainult rakendusi", - "description": "Lisab ainult rakendused, töölaud tuleb käsitsi uuesti luua" + "description": "Lisab ainult rakendused, paneel tuleb käsitsi uuesti luua" } }, "name": { - "label": "Töölaua nimi" + "label": "Paneeli nimi" }, "screenSize": { "label": "Ekraani suurus", - "description": "", + "description": "Versioonides enne 1.0 oli kolm eri režiimi, mis võimaldasid valida iga ekraanisuuruse jaoks veergude arvu.", "option": { "sm": "Väike", "md": "Keskmine", @@ -4272,8 +4318,8 @@ }, "quickCreateApp": { "modal": { - "title": "", - "createAndUse": "" + "title": "Loo rakendus käigu pealt", + "createAndUse": "Loo ja kasuta" } } }, @@ -4292,10 +4338,10 @@ }, "backgroundImageUrl": { "label": "Taustapildi URL", - "placeholder": "", + "placeholder": "​Kohalike piltide otsimiseks alusta tippimist", "group": { - "your": "", - "other": "" + "your": "Sinu pildid", + "other": "Teised pildid" } }, "backgroundImageAttachment": { @@ -4355,35 +4401,35 @@ "label": "Läbipaistmatus" }, "iconColor": { - "label": "" + "label": "Ikooni värv" }, "clearColor": { - "label": "" + "label": "Eemalda värv" }, "customCss": { - "label": "Kohandatud css sellele töölauale", + "label": "Kohandatud css sellele paneelile", "description": "Kohanda oma juhtpaneeli CSS-i abil, soovitatav ainult kogenud kasutajatele", "customClassesAlert": { "title": "Kohandatud klassid", - "description": "Saate lisada kohandatud klasse oma töölaua üksustele iga üksuse täpsemates valikutes ja kasutada neid ülaltoodud kohandatud CSS-is." + "description": "Saad paneeli iga elemendi täpsemate seadete alt lisada elementidele kohandatud klasse ning kasutada neid ülalolevas kohandatud CSS-is." } }, "disableStatus": { - "label": "", - "description": "" + "label": "Ära näita rakenduse olekut", + "description": "Keelab selle paneeli kõigi rakenduste olekukontrolli" }, "columnCount": { "label": "Veergude arv" }, "itemRadius": { - "label": "", - "description": "", + "label": "Elementide ümarus", + "description": "Muudab paneelil olevate kaartide ümarust", "option": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Väga väike", + "sm": "Väike", + "md": "Keskmine", + "lg": "Suur", + "xl": "Väga suur" } }, "name": { @@ -4391,14 +4437,14 @@ }, "isPublic": { "label": "Avalik", - "description": "Avalikud töölauad on kõigile juurdepääsetavad, isegi ilma kontota." + "description": "Avalikud paneelid on kõigile juurdepääsetavad, isegi ilma kontota." } }, "content": { - "metaTitle": "{boardName} töölaud" + "metaTitle": "{boardName}-paneel" }, "setting": { - "title": "{boardName} töölaua seaded", + "title": "Paneeli {boardName} seaded", "section": { "general": { "title": "Üldine", @@ -4407,9 +4453,9 @@ "layout": { "title": "Paigutus", "responsive": { - "title": "", + "title": "Kohanduvad paigutused", "action": { - "add": "" + "add": "Lisa paigutus" } } }, @@ -4417,23 +4463,23 @@ "title": "Taust" }, "appearance": { - "title": "" + "title": "Välimus" }, "customCss": { "title": "Kohandatud css" }, "behavior": { - "title": "" + "title": "Käitumine" }, "access": { "title": "Juurdepääsukontroll", "permission": { "item": { "view": { - "label": "Vaata töölauda" + "label": "Vaata paneeli" }, "modify": { - "label": "Muuda töölauda" + "label": "Muuda paneeli" }, "full": { "label": "Täielik juurdepääs" @@ -4445,18 +4491,18 @@ "title": "Ohtlik tsoon", "action": { "rename": { - "label": "Nimeta töölaud ümber", - "description": "Nime muutmine lõhub kõik selle töölaua lingid.", + "label": "Nimeta paneel ümber", + "description": "Nime muutmine lõhub kõik selle paneeli lingid.", "button": "Muuda nime", "modal": { - "title": "Nimeta töölaud ümber" + "title": "Nimeta paneel ümber" } }, "visibility": { - "label": "Muuda töölaua nähtavust", + "label": "Muuda paneeli nähtavust", "description": { - "public": "See töölaud on praegu avalik.", - "private": "See töölaud on praegu privaatne." + "public": "See paneel on praegu avalik.", + "private": "See paneel on praegu privaatne." }, "button": { "public": "Muuda privaatseks", @@ -4464,22 +4510,22 @@ }, "confirm": { "public": { - "title": "Muuda töölaud privaatseks", - "description": "Kas olete kindel, et soovite selle töölaua privaatseks muuta? See peidab töölaua avalikkuse eest. Lingid külaliskasutajatele lõhutakse." + "title": "Muuda paneel privaatseks", + "description": "Kas soovid kindlasti teha selle paneeli privaatseks? See peidab paneeli avalikkuse eest. Külaliskasutajate lingid lakkavad töötamast." }, "private": { - "title": "Muuda töölaud avalikuks", - "description": "Kas olete kindel, et soovite selle töölaua avalikuks muuta? See muudab töölaua kõigile juurdepääsetavaks." + "title": "Muuda paneel avalikuks", + "description": "Kas soovid kindlasti teha selle paneeli avalikuks? See muudab paneeli kõigile kättesaadavaks." } } }, "delete": { - "label": "Kustuta see töölaud", - "description": "Kui olete töölaua kustutanud, pole seda võimalik tagasi võtta. Palun olge kindel.", - "button": "Kustuta see töölaud", + "label": "Kustuta see paneel", + "description": "Kui paneel on kustutatud, ei saa seda enam taastada. Palun ole täiesti kindel.", + "button": "Kustuta see paneel", "confirm": { - "title": "Kustuta töölaud", - "description": "Kas olete kindel, et soovite selle töölaua kustutada? See kustutab töölaua ja kogu selle sisu jäädavalt." + "title": "Kustuta paneel", + "description": "​Kas soovid kindlasti selle paneeli kustutada? See kustutab jäädavalt paneeli ja kogu selle sisu." } } } @@ -4488,33 +4534,33 @@ }, "error": { "noBoard": { - "title": "", - "description": "", - "link": "", - "notice": "" + "title": "Tere tulemast Homarri", + "description": "Stiilne ja kaasaegne juhtpaneel, mis toob kõik sinu rakendused ja teenused käeulatusse.", + "link": "Loo oma esimene paneel", + "notice": "Selle lehe peitmiseks loo paneel ja määra see kodupaneeliks" }, "notFound": { - "title": "", - "description": "", - "link": "", - "notice": "" + "title": "Paneeli ei leitud", + "description": "Osutatud paneeli ei leitud või sul puudub sellele juurdepääs.", + "link": "Kuva kõik paneelid", + "notice": "​Kontrolli linki või võta ühendust administraatoriga, kui arvad, et see peaks olema kättesaadav" }, "homeBoard": { - "title": "", + "title": "Kodupaneel puudub", "admin": { - "description": "", - "link": "", - "notice": "" + "description": "Serverile ei ole veel kodupaneeli määratud.", + "link": "Seadista serveriülene kodupaneel", + "notice": "Selle lehe eemaldamiseks kõigi kasutajate jaoks määra serveriülene kodupaneel" }, "user": { - "description": "", - "link": "", - "notice": "" + "description": "​Sa ei ole veel kodupaneeli määranud.", + "link": "Seadista oma kodupaneel", + "notice": "Selle lehe eemaldamiseks määra eelistustes kodupaneel" }, "anonymous": { - "description": "", - "link": "", - "notice": "" + "description": "Serveri administraator pole veel kodupaneeli määranud.", + "link": "Kuva avalikud paneelid", + "notice": "Selle lehe eemaldamiseks palu administraatoril määrata serveriülene kodupaneel" } } } @@ -4552,7 +4598,7 @@ "navbar": { "items": { "home": "Kodu", - "boards": "Töölauad", + "boards": "Paneelid", "apps": "Rakendused", "integrations": "Integratsioonid", "customWidgets": "", @@ -4594,7 +4640,7 @@ "page": { "home": { "statistic": { - "board": "", + "board": "Paneelid", "user": "", "invite": "", "integration": "", @@ -4604,65 +4650,65 @@ "media": "" }, "statisticLabel": { - "boards": "", + "boards": "Paneelid", "resources": "", "authentication": "", "authorization": "" }, "heroBanner": { "title": "", - "subtitle": "" + "subtitle": "{app} paneel" } }, "board": { - "title": "", + "title": "Sinu paneelid", "action": { "new": { - "label": "" + "label": "Uus paneel" }, "open": { - "label": "" + "label": "Ava paneel" }, "settings": { - "label": "" + "label": "Seaded" }, "setHomeBoard": { - "label": "", + "label": "​Määra kodupaneeliks", "badge": { - "label": "", - "tooltip": "" + "label": "Avaleht", + "tooltip": "Seda paneeli kuvatakse sinu kodupaneelina" } }, "setMobileHomeBoard": { - "label": "", + "label": "Määra oma mobiilipaneeliks", "badge": { - "label": "", - "tooltip": "" + "label": "Mobiilne", + "tooltip": "Seda paneeli kuvatakse sinu mobiilipaneelina" } }, "duplicate": { - "label": "" + "label": "Tee paneelist koopia" }, "delete": { - "label": "", + "label": "Kustuta jäädavalt", "confirm": { - "title": "", - "description": "" + "title": "Kustuta paneel", + "description": "Kas oled kindel, et soovid paneeli {name} kustutada?" } } }, "visibility": { - "public": "", - "private": "" + "public": "See paneel on avalik", + "private": "See paneel on privaatne" }, "noResults": { - "title": "" + "title": "Paneele pole veel" }, "modal": { "createBoard": { "field": { "name": { - "label": "" + "label": "Nimi" } } } @@ -4680,30 +4726,30 @@ "item": { "language": "", "board": { - "title": "", + "title": "Kodupaneel", "type": { - "general": "", - "mobile": "" + "general": "Üldine", + "mobile": "Mobiilne" } }, "search": "", "firstDayOfWeek": "", "accessibility": "", "onboardingTours": { - "title": "", - "description": "", - "reset": "", + "title": "Õpetused", + "description": "Lähtesta õpetused, et näha neid uuesti järgmisel haldusala või juhtpaneeli külastusel.", + "reset": "Lähtesta õpetused", "resetSuccess": { - "title": "", - "message": "" + "title": "Õpetused lähtestatud", + "message": "Õpetusi kuvatakse uuesti sinu järgmisel külastusel" }, "status": { - "completed": "", - "notStarted": "" + "completed": "Lõpetatud", + "notStarted": "Alustamata" }, "name": { - "management": "", - "dashboard": "" + "management": "Haldus", + "dashboard": "Juhtpaneel" } } } @@ -4712,7 +4758,7 @@ "title": "" }, "board": { - "title": "" + "title": "Paneelid" } }, "list": { @@ -4796,10 +4842,10 @@ "ownerOfGroupDeleted": "" }, "setting": { - "title": "", - "alert": "", + "title": "Seaded", + "alert": "Grupi seaded seatakse tähtsuse järjekorda vastavalt gruppide järjestusele loendis. Ülalasuvad seaded tühistavad allpool asuvad.", "board": { - "title": "" + "title": "Paneelid" } }, "members": { @@ -4816,91 +4862,91 @@ } }, "settings": { - "title": "", + "title": "Seaded", "notification": { "success": { - "message": "" + "message": "Seaded edukalt salvestatud" }, "error": { - "message": "" + "message": "Seadete salvestamine nurjus" } }, "section": { "analytics": { - "title": "", + "title": "Analüütika", "general": { - "title": "", - "text": "" + "title": "​Aita meil Homarri täiustada", + "text": "See aitab meil mõista, mida inimesed tegelikult kasutavad, et teaksime, kuhu oma aega panustada. Näeme näiteks seda, kui palju vidinaid või integratsioone sul on, millist Homarri versiooni ja andmebaasi sa kasutad. Ja see ongi kõik — ei mingit isiklikku teavet, URL-e, nimesid ega midagi muud, mis saaks tuvastada sind või sinu seadistust." } }, "crawlingAndIndexing": { - "title": "", - "warning": "", + "title": "Kammimine ja indekseerimine", + "warning": "​Siinsete seadete lubamine või keelamine mõjutab oluliselt seda, kuidas otsingumootorid sinu lehte indekseerivad ja kammivad. Iga seadistus on päring ning otsingumootori roboti otsustada on, kas ta neid reegleid rakendab. Muudatuste jõustumiseks võib kuluda päevi või nädalaid. Mõned seaded võivad olla otsingumootoripõhised.", "noIndex": { - "title": "", - "text": "" + "title": "​Ära indekseeri", + "text": "Ära indekseeri veebilehte otsingumootorites ja ära kuva seda otsingutulemustes" }, "noFollow": { - "title": "", - "text": "" + "title": "Ära jälgi linke", + "text": "​Ära jälgi indekseerimise ajal ühtegi linki. Selle funktsiooni väljalülitamisel üritavad otsingurobotid jälgida kõiki Homarris olevaid linke." }, "noTranslate": { - "title": "", - "text": "" + "title": "Ära tõlgi", + "text": "Kui lehe keel pole tõenäoliselt see, mida kasutaja lugeda soovib, kuvab Google otsingutulemustes tõlkelinki" }, "noSiteLinksSearchBox": { - "title": "", - "text": "" + "title": "Ära kuva lehe otsingukasti", + "text": "Google loob kogutud linkide ja muude otselinkide põhjal otsingukasti. Selle sätte lubamine palub Google'il kõnealuse otsingukasti keelata." } }, "board": { - "title": "", + "title": "Paneelid", "homeBoard": { - "label": "", - "mobileLabel": "", - "description": "" + "label": "Üldine kodupaneel", + "mobileLabel": "Üldine mobiilipaneel", + "description": "Valimiseks on saadaval ainult avalikud paneelid" }, "status": { - "title": "", + "title": "Rakenduse olek", "enableStatusByDefault": { - "label": "", - "description": "" + "label": "Luba olek vaikimisi", + "description": "Rakenduse lisamisel on olek vaikimisi lubatud" }, "forceDisableStatus": { - "label": "", - "description": "" + "label": "Lülita olek jõuga välja", + "description": "Rakenduste olek keelatakse kõigile kasutajatele ja seda ei saa sisse lülitada" } } }, "user": { - "title": "", + "title": "Kasutajad", "enableGravatar": { - "label": "", - "description": "" + "label": "Luba Gravatar", + "description": "Kui kohandatud avatari pole määratud ja e-posti aadress on seadistatud, kasutatakse varuvariandina Libravatari/Gravatari profiilipilti" } }, "search": { - "title": "", + "title": "Otsing", "defaultSearchEngine": { - "label": "", - "description": "" + "label": "Üldine vaikimisi otsingumootor", + "description": "Integratsioonide otsingumootoreid ei saa siin valida" } }, "appearance": { - "title": "", + "title": "Välimus", "defaultColorScheme": { - "label": "", + "label": "Vaikimisi värviskeem", "options": { - "auto": "", - "light": "", - "dark": "" + "auto": "Automaatne", + "light": "Hele", + "dark": "Tume" } } }, "culture": { - "title": "", + "title": "Kultuur", "defaultLocale": { - "label": "" + "label": "Vaikimisi keel" } } } @@ -4941,7 +4987,7 @@ } }, "settings": { - "title": "" + "title": "Ülesande \"{jobName}\" seaded" }, "field": { "name": { @@ -5061,10 +5107,10 @@ "title": "", "worksWith": "", "addToConfig": "", - "cursor": "", + "cursor": "​{name}: {file} sinu projekti või üldseadetes", "claudeDesktop": "", "claudeCode": "", - "vsCodeCopilot": "", + "vsCodeCopilot": "{name}: {file} tööala seadetes", "replaceHint": "" }, "stdio": { @@ -5126,13 +5172,13 @@ "metaTitle": "", "export": { "title": "", - "description": "", + "description": "​Laadi alla oma SQLite andmebaasi täielik varukoopia, mis sisaldab kõiki seadeid, kasutajaid, paneele ja krüpteeritud integratsioonisaladusi. Varukoopia on pakitud ZIP-failina koos krüpoteerimisvõtme ja metaandmetega.", "button": "", "error": "", "confirm": { "title": "", "warningTitle": "", - "warningBody": "", + "warningBody": "Varukoopia sisaldab kõiki kasutajaid, integratsioonisaladusi (krüpteeritud), API-võtmeid, paneelide konfigureerimisi ja rakenduste andmeid. Hoia eksporditud faili turvaliselt ega jaga seda teistega.", "typePrompt": "", "submit": "", "cancel": "" @@ -5161,9 +5207,9 @@ "errorTitle": "", "entity": "", "count": "", - "boards": "", + "boards": "Paneelid", "entities": { - "board": "", + "board": "Paneelid", "user": "", "app": "", "integration": "", @@ -5190,9 +5236,9 @@ "exported": "", "entity": "", "count": "", - "boards": "", + "boards": "Paneelid", "entities": { - "board": "", + "board": "Paneelid", "user": "", "app": "", "integration": "", @@ -5215,7 +5261,7 @@ "confirm": { "title": "", "warningTitle": "", - "warningBody": "", + "warningBody": "Kõik praegused paneelid, kasutajad, rakendused, integratsioonid, seaded ja sessioonid kustutatakse. Seda toimingut ei saa tagasi võtta. Rakendus taaskäivitub pärast taastamist.", "typePrompt": "", "cancel": "", "submit": "" @@ -5263,13 +5309,13 @@ }, "hotkeys": { "title": "", - "subtitle": "", + "subtitle": "Klaviatuuri kiirklahvid töövoo tõhustamiseks", "field": { "shortcut": "", "action": "" }, "action": { - "toggleBoardEdit": "", + "toggleBoardEdit": "Vaheta paneeli muutmisrežiimi", "toggleColorScheme": "", "saveNotebook": "", "openSpotlight": "" @@ -5420,12 +5466,12 @@ }, "error": { "internalServerError": "", - "noColumns": "" + "noColumns": "Vali vidina seadetes vähemalt üks tulp" } }, "kubernetes": { "cluster": { - "title": "", + "title": "Klastri juhtpaneel", "label": "", "providers": "", "version": "", @@ -5696,7 +5742,7 @@ "manage": { "label": "", "boards": { - "label": "" + "label": "Paneelid" }, "integrations": { "label": "", @@ -5747,7 +5793,7 @@ }, "general": "", "security": "", - "board": "", + "board": "Paneelid", "groups": { "label": "" }, @@ -5804,7 +5850,7 @@ } }, "settings": { - "label": "" + "label": "Seaded" }, "about": { "label": "" @@ -5819,48 +5865,48 @@ }, "mode": { "appIntegrationBoard": { - "help": "", + "help": "Otsi rakendusi, integratsioone või paneele", "group": { "app": { - "title": "", + "title": "Rakendused", "children": { "action": { "open": { - "label": "" + "label": "Ava rakenduse URL" }, "edit": { - "label": "" + "label": "Muuda rakendust" } }, "detail": { - "title": "" + "title": "Vali rakendusele toiming" } } }, "board": { - "title": "", + "title": "Paneelid", "children": { "action": { "open": { - "label": "" + "label": "Ava paneel" }, "homeBoard": { - "label": "" + "label": "​Määra kodupaneeliks" }, "mobileBoard": { - "label": "" + "label": "Määra mobiilipaneeliks" }, "settings": { - "label": "" + "label": "Ava seaded" } }, "detail": { - "title": "" + "title": "Vali paneelile toiming" } } }, "integration": { - "title": "" + "title": "Integratsioonid" } } }, @@ -5887,10 +5933,10 @@ } }, "newBoard": { - "label": "" + "label": "Loo uus paneel" }, "importBoard": { - "label": "" + "label": "Impordi paneel" }, "newApp": { "label": "" @@ -5937,8 +5983,8 @@ "disabled": "" }, "board": { - "none": "", - "unavailable": "" + "none": "Pole", + "unavailable": "Praegu valitud (pole saadaval)" }, "searchEngine": { "none": "", @@ -5993,18 +6039,18 @@ } }, "homeBoardId": { - "label": "", + "label": "Kodupaneel", "children": { "detail": { - "title": "" + "title": "Vali oma kodupaneel" } } }, "mobileHomeBoardId": { - "label": "", + "label": "Mobiili kodupaneel", "children": { "detail": { - "title": "" + "title": "Vali oma mobiili kodupaneel" } } }, @@ -6164,7 +6210,7 @@ "label": "" }, "manageBoard": { - "label": "" + "label": "Halda paneele" }, "manageApp": { "label": "" @@ -6200,13 +6246,13 @@ "label": "" }, "manageSettings": { - "label": "" + "label": "Üldseaded" }, "about": { "label": "" }, "homeBoard": { - "label": "" + "label": "Kodupaneel" }, "preferences": { "label": "Teie eelistused" @@ -6448,69 +6494,69 @@ } }, "onboardingTour": { - "learnMore": "", - "next": "", - "prev": "", - "done": "", - "skip": "", + "learnMore": "Loe dokumentatsiooni", + "next": "Edasi", + "prev": "Tagasi", + "done": "Tehtud", + "skip": "Jäta õpetus vahele", "manage": { "welcome": { - "title": "", - "description": "" + "title": "Tere tulemast Homarri!", + "description": "See on sinu juhtimiskeskus. Siit saad hallata paneele, rakendusi, integratsioone, kasutajaid ja serveri seadeid. Teeme igast jaotisest ülevaate." }, "boardsList": { - "title": "", - "description": "" + "title": "Sinu paneelid", + "description": "Siin on kõik sinu juhtpaneelid. Igal töölaual on oma paigutus, taust ja juurdepääsuseaded. Näed, kes on iga töölaua loonud ning kas see on avalik või privaatne." }, "boardsCreate": { - "title": "", - "description": "" + "title": "Loo uus paneel", + "description": "​Uue paneeli loomiseks või varasemast Homarri paigaldusest importimiseks klõpsa siia. Iga paneel saab oma lingi, mida saad jagada." }, "appsList": { - "title": "", - "description": "" + "title": "Sinu rakendused", + "description": "Siin on kõik sinu lisatud rakendused — lingid sinu majutatavatele teenustele. Igal rakendusel on ikoon, valikuline olekukontroll ja olekumärk paneelil." }, "appsCreate": { - "title": "", - "description": "" + "title": "Lisa rakendus", + "description": "Registreeri siin uus teenus. Määra sellele nimi, URL ja ikoon — see ilmub sinu paneelidele reaalajas olekuseirega kaardina." }, "integrationsList": { - "title": "", - "description": "" + "title": "Sinu integratsioonid", + "description": "Need on Homarriga ühendatud teenused — Sonarr, Radarr, Plex, Jellyfin ja üle 50 muu. Kõik pääsuandmed on krüpteeritult salvestatud." }, "integrationsCreate": { - "title": "", - "description": "" + "title": "Lisa integratsioon", + "description": "Ühenda siin uus teenus. Vali tüüp, sisesta URL ja API-võti — Homarr kontrollib ühendust enne salvestamist." }, "usersList": { - "title": "", - "description": "" + "title": "Sinu kasutajad", + "description": "Vaata kõiki juurdepääsuga kasutajaid. Grupeeri kasutajad ja halda, kes saab paneele vaadata või redigeerida." }, "usersCreate": { - "title": "", - "description": "" + "title": "Loo kasutaja", + "description": "Lisa siin uus kasutajakonto. Lihtsaks kasutajate kaasamiseks saad kasutada ka kutselinke. See oli kogu ülevaade — oledki valmis!" } }, "board": { "welcome": { - "title": "", - "description": "" + "title": "See on sinu paneel", + "description": "Lohistatav juhtpaneel rakenduste ja vidinate paigutamiseks. Vajuta igal ajal Ctrl+K, et otsida rakendusi, paneele ja toiminguid." }, "editMode": { - "title": "", - "description": "" + "title": "Muutmisrežiim", + "description": "Muutmisrežiimi sisenemiseks klõpsa siia. Seejärel saad lisada vidinaid, rakendusi ja sektsioone — asukoha muutmiseks lohista neid ning suuruse muutmiseks kasuta nurga käepidet. Muudatuste salvestamiseks klõpsa uuesti." }, "settings": { - "title": "", - "description": "" + "title": "Paneeli seaded", + "description": "​Muuda selle paneeli nime, veerge, tausta, värve ja juurdepääsuõigusi. Iga paneel saab olla avalik või privaatne." }, "switcher": { - "title": "", - "description": "" + "title": "Vaheta paneeli", + "description": "Hüppa kiiresti paneelide vahel. Loo eri otstarvete jaoks eraldi juhtpaneele — meedia, võrgundus, kasutusseadistused iga kasutaja jaoks või mis iganes sulle meeldib." }, "userMenu": { - "title": "", - "description": "" + "title": "Sinu profiil", + "description": "​Muuda oma värviteemat, keelt, kodupaneeli ja eelistusi. Siit saad ka otse haldusalasse liikuda." } } } diff --git a/packages/translation/src/lang/fi.json b/packages/translation/src/lang/fi.json index 5db39e6f4..be49acb6c 100644 --- a/packages/translation/src/lang/fi.json +++ b/packages/translation/src/lang/fi.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Pilvinatiivi käänteinen välityspalvelin ja kuormantasaaja" }, + "wud": { + "name": "Mikä Ylös Docker", + "description": "Tarkkaile missä Docker-säiliöissä on saatavilla kuvapäivityksiä" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Asiakirjojen hallintajärjestelmä skannattujen dokumenttien arkistointiin ja järjestelyyn" @@ -1437,8 +1441,18 @@ "here": "", "iconPicker": { "label": "Kuvakkeen URL-osoite", + "description": "Etsi kirjastosta, liitä kuvan URL-osoite tai lataa tiedosto.", "header": "Suodata kuvakkeita syöttämällä nimi tai objekti... Homarr etsii {countIcons} kuvakkeesta.", "headerLoading": "Kirjoita hakeaksesi kuvakkeita…", + "clear": "Tyhjennä kuva", + "uploadImage": "Lataa kuva", + "results": "Haun tulokset", + "localImages": "Omat kuvat", + "svgIcons": "SVG kuvakkeet", + "otherImages": "Muut kuvat", + "urlLoading": "", + "urlReady": "Kuva on valmis käytettäväksi", + "urlError": "Kuvaa ei voitu ladata. Tarkista URL-osoite ja yritä uudelleen.", "noResults": "Ei kuvakkeita haulla \"{search}\".", "error": "Kuvakkeiden lataaminen epäonnistui." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Mikä Ylös Docker", + "description": "Näytä kuinka monta katsottua astiaa on saatavilla päivityksiä.", + "title": "Mikä Ylös Docker", + "monitored": "Valvottu", + "updatesAvailable": "{count, plural, one {# päivitys saatavilla} other {# päivitystä saatavilla}}", + "updateAvailable": "Päivitys saatavilla", + "openReleaseNotes": "Avaa julkaisutiedot", + "option": { + "showTitle": { + "label": "Näytä otsikko" + }, + "showRing": { + "label": "Näytä päivitysrengas" + }, + "layout": { + "label": "Asettelu", + "option": { + "horizontal": { + "label": "Vaaka" + }, + "vertical": { + "label": "Pysty" + } + } + }, + "showUpdateList": { + "label": "Näytä kontin päivityslista", + "description": "Luettele jokaisen seuratun säiliön joka on saatavilla päivityksessä" + } + } + }, "dnsHoleSummary": { "name": "", "description": "", diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index 9c73c03c2..aa34eb1b4 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -673,7 +673,7 @@ }, "action": { "select": { - "label": "Sélectionner l'app", + "label": "Sélectionner une app", "notFound": "Aucune app trouvée", "search": "Rechercher une application", "noResults": "Pas de résultats", @@ -739,7 +739,7 @@ "label": "Étiquette", "unit": "Unité", "mappings": "Correspondances", - "tablePath": "", + "tablePath": "Chemin du tableau JSON", "tablePathHint": "", "columns": "Colonnes", "header": "En-tête", @@ -786,7 +786,7 @@ "valuePath": "", "maxPath": "", "goodValues": "", - "color": "" + "color": "bleu" }, "cardStyleOption": { "filled": "", @@ -851,10 +851,10 @@ "customJsx": "JSX personnalisé" }, "secret": { - "apiKey": "", + "apiKey": "Clé API / jeton", "username": "Nom d'utilisateur", "password": "Mot de passe", - "savedPlaceholder": "" + "savedPlaceholder": "••••••• (sauvegardé, laisser vide pour garder)" }, "preview": { "title": "Aperçu", @@ -1291,10 +1291,10 @@ }, "patchmonApiKey": { "label": "", - "newLabel": "" + "newLabel": "Nouvelle clé API" }, "patchmonApiSecret": { - "label": "", + "label": "Clé secrète d'API", "newLabel": "" }, "githubAppId": { @@ -1329,7 +1329,7 @@ "description": "" }, "uptimeKuma": { - "name": "", + "name": "Uptime Kuma", "description": "", "secret": { "slug": { @@ -1341,9 +1341,13 @@ } }, "traefik": { - "name": "", + "name": "Traefik", "description": "" }, + "wud": { + "name": "Qu'est ce que Docker", + "description": "Surveiller lequel de vos conteneurs Docker a des mises à jour d'images disponibles" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "ici", "iconPicker": { "label": "URL de l'icône :", + "description": "Recherchez dans la bibliothèque, collez une URL d'image, ou téléchargez un fichier.", "header": "Tapez le nom ou les objets pour filtrer les icônes... Homarr recherchera les icônes {countIcons} pour vous.", "headerLoading": "Tapez pour rechercher les icônes…", + "clear": "Effacer l'image", + "uploadImage": "Charger une image", + "results": "Résultats de la recherche d'images", + "localImages": "Vos images", + "svgIcons": "Icônes SVG", + "otherImages": "Autres images", + "urlLoading": "Vérification de l'image…", + "urlReady": "L'image est prête à être utilisée", + "urlError": "Cette image n'a pas pu être chargée. Vérifiez l'URL et réessayez.", "noResults": "Aucune icône ne correspond à \"{search}\".", "error": "Impossible de charger les icônes." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Qu'est ce que Docker", + "description": "Afficher combien de conteneurs surveillés ont des mises à jour disponibles.", + "title": "Qu'est ce que Docker", + "monitored": "Surveillé", + "updatesAvailable": "{count, plural, one {# mise à jour disponible} other {# mises à jour disponibles}}", + "updateAvailable": "Mise à jour disponible", + "openReleaseNotes": "Ouvrir les notes de version", + "option": { + "showTitle": { + "label": "Afficher le titre" + }, + "showRing": { + "label": "Afficher l'anneau de mise à jour" + }, + "layout": { + "label": "Mise en page", + "option": { + "horizontal": { + "label": "Horizontale" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "Afficher la liste de mise à jour du conteneur", + "description": "Liste chaque conteneur surveillé qui a une mise à jour d'image disponible" + } + } + }, "dnsHoleSummary": { "name": "Résumé du puit DNS", "description": "Affiche le résumé de votre puit DNS", diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 1c37a681c..d4739c92e 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "כאן", "iconPicker": { "label": "קישור של הסמל", + "description": "", "header": "הקלד שם או אובייקטים לסינון עבור אייקונים... Homarr יחפש עבורך סמלים של {countIcons} .", "headerLoading": "", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "התמונות שלך", + "svgIcons": "", + "otherImages": "תמונות אחרות", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "פריסה", + "option": { + "horizontal": { + "label": "אופקי" + }, + "vertical": { + "label": "אנכי" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "סיכום חור אבטחה DNS", "description": "מציג את הסיכום חור אבטחת DNS שלך", diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 536865656..01e15b40f 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Pratite koji od vaših Docker kontejnera imaju dostupna ažuriranja slika." + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "ovdje", "iconPicker": { "label": "URL ikone", + "description": "Pretražite biblioteku, zalijepite URL slike ili prenesite datoteku.", "header": "Upišite naziv ili objekte za filtriranje ikona... Homarr će pretražiti {countIcons} ikona za vas.", - "headerLoading": "", + "headerLoading": "Pretražite slike po nazivu", + "clear": "Očisti sliku", + "uploadImage": "Prenesi sliku", + "results": "Rezultati pretraživanja slika", + "localImages": "Vaše slike", + "svgIcons": "SVG ikone", + "otherImages": "Ostale slike", + "urlLoading": "Provjera slike…", + "urlReady": "Slika je spremna za upotrebu", + "urlError": "Ova se slika nije mogla učitati. Provjerite URL i pokušajte ponovno.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Prikaži koliko praćenih kontejnera ima dostupna ažuriranja.", + "title": "What's Up Docker", + "monitored": "Praćeno", + "updatesAvailable": "{count, plural, one {# dostupno ažuriranje} few {# dostupna ažuriranja} other {# dostupnih ažuriranja}}", + "updateAvailable": "Dostupno ažuriranje", + "openReleaseNotes": "Otvori bilješke o izdanju", + "option": { + "showTitle": { + "label": "Prikaži naslov" + }, + "showRing": { + "label": "Prikaži prsten ažuriranja" + }, + "layout": { + "label": "Raspored", + "option": { + "horizontal": { + "label": "Horizontalno" + }, + "vertical": { + "label": "Okomito" + } + } + }, + "showUpdateList": { + "label": "Prikaži popis ažuriranja kontejnera", + "description": "Nabraja svaki nadzirani kontejner za koji je dostupno ažuriranje slike." + } + } + }, "dnsHoleSummary": { "name": "Sažetak DNS rupe", "description": "Prikazuje sažetak vaše DNS rupe", diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index 979b24bce..e9108a0ce 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumentumkezelő rendszer beolvasott dokumentumok archiválására és rendszerezésére" @@ -1437,8 +1441,18 @@ "here": "itt", "iconPicker": { "label": "Ikonhivatkozás", + "description": "", "header": "Írjon be nevet vagy objektumokat az ikonok szűréséhez... A Homarr a {countIcons} ikonok között keres.", "headerLoading": "", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "", + "svgIcons": "", + "otherImages": "", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "Cím megjelenítése" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "Elrendezés", + "option": { + "horizontal": { + "label": "Vízszintes" + }, + "vertical": { + "label": "Függőleges" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS Blokkoló Összefoglaló", "description": "Megjeleníti a DNS Blokkoló összefoglalóját", diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index d1fe23155..3ef5cc984 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Cloud-native reverse proxy e bilanciatore del carico" }, + "wud": { + "name": "Cos'è Il Docker", + "description": "Monitora quali dei tuoi contenitori Docker sono disponibili aggiornamenti delle immagini" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Sistema di gestione documentale per archiviare e organizzare documenti scansionati" @@ -1437,8 +1441,18 @@ "here": "qui", "iconPicker": { "label": "Icona URL", + "description": "Cerca nella libreria, incolla un URL di immagine, o carica un file.", "header": "Digita il nome o gli oggetti da filtrare per le icone... Homarr cercherà tra le icone {countIcons} per te.", "headerLoading": "Digita per cercare icone…", + "clear": "Cancella immagine", + "uploadImage": "Carica immagine", + "results": "Risultati della ricerca immagini", + "localImages": "Le tue immagini", + "svgIcons": "Icone SVG", + "otherImages": "Altre immagini", + "urlLoading": "Controllo immagine…", + "urlReady": "L'immagine è pronta per l'uso", + "urlError": "Questa immagine non può essere caricata. Controlla l'URL e riprova.", "noResults": "Nessuna icona corrisponde a \"{search}\".", "error": "Impossibile caricare le icone." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Cos'è Il Docker", + "description": "Mostra quanti contenitori visti hanno aggiornamenti disponibili.", + "title": "Cos'è Il Docker", + "monitored": "Monitorato", + "updatesAvailable": "{count, plural, one {# aggiornamento disponibile} other {# aggiornamenti disponibili}}", + "updateAvailable": "Aggiornamento disponibile", + "openReleaseNotes": "Apri note di rilascio", + "option": { + "showTitle": { + "label": "Mostra titolo" + }, + "showRing": { + "label": "Mostra anello di aggiornamento" + }, + "layout": { + "label": "Layout", + "option": { + "horizontal": { + "label": "Orizzontale" + }, + "vertical": { + "label": "Verticale" + } + } + }, + "showUpdateList": { + "label": "Mostra elenco aggiornamenti container", + "description": "Elenca ogni contenitore monitorato che ha un aggiornamento dell'immagine disponibile" + } + } + }, "dnsHoleSummary": { "name": "Riepilogo del filtraggio DNS", "description": "Mostra il riepilogo del tuo filtro DNS", diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index 4972ad11d..9d95c2a99 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "どのDockerコンテナがイメージアップデートを利用できるかを監視します" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "こちら", "iconPicker": { "label": "アイコン URL", + "description": "ライブラリを検索し、画像の URL を貼り付けるか、ファイルをアップロードします。", "header": "アイコンをフィルタするために、名前またはオブジェクトを入力してください... Homarrは {countIcons} アイコンを検索します。", - "headerLoading": "", + "headerLoading": "名前で画像を検索", + "clear": "画像をクリア", + "uploadImage": "画像をアップロード", + "results": "画像検索結果", + "localImages": "あなたの画像", + "svgIcons": "SVGアイコン", + "otherImages": "その他の画像", + "urlLoading": "", + "urlReady": "画像を使用する準備ができました", + "urlError": "この画像を読み込めませんでした。URLを確認して再度お試し下さい。", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "利用可能な更新があるコンテナの数を表示します。", + "title": "What's Up Docker", + "monitored": "監視中", + "updatesAvailable": "{count, plural, one {# アップデートが} other {# アップデートが}}", + "updateAvailable": "アップデートがあります", + "openReleaseNotes": "リリースノートを開く", + "option": { + "showTitle": { + "label": "タイトルを表示" + }, + "showRing": { + "label": "更新の着信音を表示" + }, + "layout": { + "label": "レイアウト", + "option": { + "horizontal": { + "label": "水平方向" + }, + "vertical": { + "label": "垂直方向" + } + } + }, + "showUpdateList": { + "label": "コンテナ更新リストを表示", + "description": "利用可能な画像の更新がある各監視対象のコンテナを一覧表示します" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole 概要", "description": "DNS Hole の概要を表示します", diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index 9941463ff..f6614e4ba 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "클라우드 네이티브 리버스 프록시 및 로드 밸런서" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "스캔된 문서를 보관하고 정리하는 문서 관리 시스템" @@ -1437,8 +1441,18 @@ "here": "여기", "iconPicker": { "label": "아이콘 URL", + "description": "", "header": "이름 또는 주제를 입력해 아이콘을 필터링하세요... Homarr가 {countIcons}에서 아이콘을 검색합니다.", "headerLoading": "아이콘을 검색하려면 입력…", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "내 이미지", + "svgIcons": "", + "otherImages": "기타 이미지", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "\"{search}\"에 일치하는 아이콘이 없습니다.", "error": "아이콘을 불러올 수 없습니다." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "레이아웃", + "option": { + "horizontal": { + "label": "가로" + }, + "vertical": { + "label": "세로" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS 홀 요약", "description": "DNS 홀의 요약을 표시합니다", diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index efd19f523..f25b7c271 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Kas naujo, Docker", + "description": "Stebėkite, kuriems jūsų Docker konteineriams yra prieinami atvaizdų naujinimai." + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumentų valdymo sistema, skirta nuskaitytų dokumentų archyvavimui ir tvarkymui" @@ -1437,8 +1441,18 @@ "here": "čia", "iconPicker": { "label": "Piktogramos URL", + "description": "Ieškokite bibliotekoje, įklijuokite paveikslėlio URL arba įkelkite failą.", "header": "Įveskite pavadinimą ar objektus, kad filtruoti piktogramas... Homarr ieškos per {countIcons} piktogramas.", - "headerLoading": "", + "headerLoading": "Ieškoti paveikslėlių pagal pavadinimą", + "clear": "Pašalinti paveikslėlį", + "uploadImage": "Įkelti paveikslėlį", + "results": "Vaizdų paieškos rezultatai", + "localImages": "Jūsų vaizdai", + "svgIcons": "SVG piktogramos", + "otherImages": "Kiti vaizdai", + "urlLoading": "Tikrinamas vaizdas…", + "urlReady": "Vaizdas paruoštas naudoti", + "urlError": "Šio vaizdo nepavyko įkelti. Patikrinkite URL ir bandykite dar kartą.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Kas naujo, Docker", + "description": "Rodo, kiek stebimų konteinerių turi prieinamų naujinimų.", + "title": "Kas naujo, Docker", + "monitored": "Stebimi", + "updatesAvailable": "{count, plural, one {# atnaujinimas prieinamas} few {# atnaujinimai prieinami} many {# atnaujinimų prieinama} other {# atnaujinimo prieinama}}", + "updateAvailable": "Galimas naujinimas", + "openReleaseNotes": "Atidaryti leidimo pastabas", + "option": { + "showTitle": { + "label": "Rodyti pavadinimą" + }, + "showRing": { + "label": "Rodyti naujinimo žiedą" + }, + "layout": { + "label": "Išdėstymas", + "option": { + "horizontal": { + "label": "Horizontalus" + }, + "vertical": { + "label": "Vertikalus" + } + } + }, + "showUpdateList": { + "label": "Rodyti konteinerių naujinimų sąrašą", + "description": "Išvardija kiekvieną stebimą konteinerį, kuriam yra prieinamas atvaizdo naujinimas" + } + } + }, "dnsHoleSummary": { "name": "DNS skylės suvestinė", "description": "Rodo jūsų DNS skylės suvestinę", diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index 86cfc30b6..bfd002541 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Uzrauga, kuriem no jūsu Docker konteineriem ir pieejami attēlu atjauninājumi" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumentu pārvaldības sistēma skenētu dokumentu arhivēšanai un organizēšanai" @@ -1437,8 +1441,18 @@ "here": "šeit", "iconPicker": { "label": "Ikonas URL", + "description": "Meklējiet bibliotēkā, ielīmējiet attēla URL vai augšupielādējiet failu.", "header": "Rakstiet nosaukumu vai objektus, lai filtrētu ikonas... Homarr pārmeklēs {countIcons} ikonas jūsu vietā.", - "headerLoading": "", + "headerLoading": "Meklēt attēlus pēc nosaukuma", + "clear": "Notīrīt attēlu", + "uploadImage": "Augšupielādēt attēlu", + "results": "Attēlu meklēšanas rezultāti", + "localImages": "Jūsu attēli", + "svgIcons": "SVG ikonas", + "otherImages": "Citi attēli", + "urlLoading": "Pārbauda attēlu…", + "urlReady": "Attēls ir gatavs lietošanai", + "urlError": "Šo attēlu nevarēja ielādēt. Pārbaudiet URL un mēģiniet vēlreiz.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Parāda, cik uzraudzītajiem konteineriem ir pieejami atjauninājumi.", + "title": "What's Up Docker", + "monitored": "Uzraudzītie", + "updatesAvailable": "{count, plural, zero {# atjauninājumu pieejami} one {# atjauninājums pieejams} other {# atjauninājumi pieejami}}", + "updateAvailable": "Pieejams atjauninājums", + "openReleaseNotes": "Atvērt laidiena piezīmes", + "option": { + "showTitle": { + "label": "Rādīt nosaukumu" + }, + "showRing": { + "label": "Rādīt atjaunināšanas gredzenu" + }, + "layout": { + "label": "Izkārtojums", + "option": { + "horizontal": { + "label": "Horizontāli" + }, + "vertical": { + "label": "Vertikāli" + } + } + }, + "showUpdateList": { + "label": "Rādīt konteineru atjauninājumu sarakstu", + "description": "Uzskaita katru uzraudzīto konteineru, kuram ir pieejams attēla atjauninājums" + } + } + }, "dnsHoleSummary": { "name": "DNS cauruma kopsavilkums", "description": "Parāda jūsu DNS cauruma kopsavilkumu", diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index 7f8103886..a82683aa5 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Wat is er een Docker", + "description": "Controleer welke van uw Docker containers afbeeldingen updates beschikbaar hebben" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Documentbeheersysteem voor het archiveren en organiseren van gescande documenten" @@ -1437,8 +1441,18 @@ "here": "hier", "iconPicker": { "label": "Icoon-URL", + "description": "Zoek in de bibliotheek, plak een afbeelding-URL of upload een bestand.", "header": "Typ naam of objecten om te filteren op iconen… Homarr doorzoekt {countIcons} iconen voor je.", - "headerLoading": "", + "headerLoading": "Afbeeldingen zoeken op naam", + "clear": "Verwijder afbeelding", + "uploadImage": "Afbeelding uploaden", + "results": "Zoekresultaten afbeeldingen", + "localImages": "Jouw afbeeldingen", + "svgIcons": "SVG iconen", + "otherImages": "Andere afbeeldingen", + "urlLoading": "Controleren van afbeelding…", + "urlReady": "Afbeelding is klaar voor gebruik", + "urlError": "Deze afbeelding kan niet worden geladen. Controleer de URL en probeer het opnieuw.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Wat is er een Docker", + "description": "Laat zien hoeveel containers er updates beschikbaar hebben.", + "title": "Wat is er een Docker", + "monitored": "Gecontroleerd", + "updatesAvailable": "{count, plural, one {# update beschikbaar} other {# updates zijn beschikbaar}}", + "updateAvailable": "Update beschikbaar", + "openReleaseNotes": "Open release notities", + "option": { + "showTitle": { + "label": "Toon titel" + }, + "showRing": { + "label": "Update ring tonen" + }, + "layout": { + "label": "Lay-out", + "option": { + "horizontal": { + "label": "Horizontaal" + }, + "vertical": { + "label": "Verticaal" + } + } + }, + "showUpdateList": { + "label": "Toon container update lijst", + "description": "Lijst van alle gemonitorde container met een afbeelding update beschikbaar" + } + } + }, "dnsHoleSummary": { "name": "DNS-hole overzicht", "description": "Toont het overzicht van je DNS-hole", diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index d9bc061a1..2b3763d25 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -10,7 +10,7 @@ "importOldmarr": "Importer fra Homarr før 1.0", "restoreSqlite": "Gjenopprett fra SQLite sikkerhetskopi", "restoreSqliteDescription": "Last opp en full SQLite database sikkerhetskopi fra en tidligere Homarr instans. Dette vil gjenopprette alle tavler, brukere, apper, integrasjoner og innstillinger.", - "backToOptions": "" + "backToOptions": "λ Tilbake til innstillingsvalg" } }, "import": { @@ -94,45 +94,45 @@ "subtitle": "Konfigurer serverinnstillinger." }, "integrations": { - "title": "", - "subtitle": "", - "description": "", + "title": "Integrasjoner", + "subtitle": "Velg tjenestene du bruker.", + "description": "Velg integrasjoner du vil koble til. Vi vil sette opp dashbordet med matchende widgets automatisk.", "action": { - "continue": "", - "skip": "" + "continue": "Fortsett", + "skip": "Hopp over for nå" }, "configure": { - "progress": "", - "skip": "", - "finishing": "", + "progress": "{current} av {total}", + "skip": "Hopp over denne integrasjonen", + "finishing": "Setter opp dashbordet ditt...", "error": { - "title": "", - "message": "" + "title": "Installasjon mislyktes", + "message": "Noe gikk galt under oppretting av dashbordet. Vennligst prøv på nytt." }, "helpers": { - "tooltip": "", - "description": "" + "tooltip": "URL helpers", + "description": "Disse hjelpere prøver å gjette URLen for tjenestene dine. Hvis det ikke fungerer, bare skriv inn adressen manuelt." } }, "urlTemplate": { - "label": "", - "placeholder": "", - "hint": "", - "warning": "", - "preview": "", + "label": "Standard URL", + "placeholder": "homelab.lokal eller 192.168.1.1", + "hint": "Angi ditt basisdomene eller IP til automatisk utfylling av integrasjons-URLer", + "warning": "Når du angir din basis-URL vil automatisk utfylle alle nettadresser, men lagrer deg tid under oppsett", + "preview": "f.eks {example}", "mode": { - "subdomain": "", - "hostPort": "" + "subdomain": "Underdomene", + "hostPort": "Vert:Port" } }, "docker": { - "detected": "", - "detectedBreakdown": "", - "summary": "", - "appBadge": "", - "appSectionLabel": "", - "scanning": "", - "scanningDescription": "" + "detected": "Docker oppdaget {count} tjenester", + "detectedBreakdown": "{integrations} integrasjoner · {apps} apper", + "summary": "Homarr oppdaget {apps} apper, {integrations} har innebygd integrasjoner", + "appBadge": "App", + "appSectionLabel": "Apper som legges til dashbord ({count} valgt)", + "scanning": "Skanner Docker...", + "scanningDescription": "Leter etter kjørende beholdere på systemet ditt" } }, "finish": { @@ -177,7 +177,7 @@ }, "password": { "label": "Passord", - "suggestionsTitle": "", + "suggestionsTitle": "Passord forslag", "suggestion": { "length": "Inkluderer minst 8 tegn", "lowercase": "Inkluderer liten bokstav", @@ -199,8 +199,8 @@ "label": "Bruk ikoner for pinger" }, "enableRightClickOnWidgets": { - "label": "", - "description": "" + "label": "Aktiver høyreklikk på widgets", + "description": "Vis Hjemmens kontekstmeny når høyre klikker en widget. Deaktiver for å bruke nettleserens standardmeny (f.eks \"Åpne link i ny fan\")." }, "defaultSearchEngine": { "label": "Standard søkemotor" @@ -691,206 +691,206 @@ "customWidget": { "page": { "list": { - "title": "", - "noResults": "", - "loading": "" + "title": "Egendefinerte Widgeter", + "noResults": "Ingen tilpassede miniprogrammer enda. Opprett din første!", + "loading": "Laster..." }, "create": { - "title": "", - "subtitle": "" + "title": "Opprett tilpasset widget", + "subtitle": "Angi en API URL, autentisering og hvordan du kan vise respons-dataene." }, "edit": { - "title": "" + "title": "Rediger tilpasset widget" } }, "action": { - "create": "", - "import": "", - "save": "", - "delete": "", - "deleteConfirm": "", - "export": "", - "addMapping": "", - "addColumn": "", - "edit": "", - "removeMapping": "", - "removeColumn": "", - "addItem": "", - "removeItem": "", - "addBar": "", - "duplicate": "", - "copyAiPrompt": "", - "enable": "", - "disable": "", - "menu": "" + "create": "Opprett", + "import": "Importer", + "save": "Lagre", + "delete": "Slett tilpasset widget", + "deleteConfirm": "Er du sikker på at du vil slette \"{name}\"? Handlingen kan ikke angres.", + "export": "Eksporter", + "addMapping": "Legg til tilordning", + "addColumn": "Legg til kolonne", + "edit": "Rediger", + "removeMapping": "Fjern tilordning", + "removeColumn": "Fjern kolonne", + "addItem": "Legg til element", + "removeItem": "Fjern vare", + "addBar": "Legg til linje", + "duplicate": "Duplicate", + "copyAiPrompt": "Kopier AI ledetekst", + "enable": "Aktiver", + "disable": "Deaktiver", + "menu": "Handlinger" }, "field": { - "name": "", - "description": "", - "iconUrl": "", - "url": "", - "authType": "", - "headerName": "", - "method": "", - "requestBody": "", - "displayType": "", - "jsonPath": "", - "jsonPathHint": "", - "label": "", - "unit": "", - "mappings": "", - "tablePath": "", - "tablePathHint": "", - "columns": "", - "header": "", - "items": "", - "gridColumns": "", - "cardStyle": "", - "bars": "", - "valuePath": "", - "maxPath": "", - "showPercentage": "", - "barSize": "", - "goodValues": "", - "dotSize": "", - "valueSize": "", - "labelPosition": "", - "kvLayout": "", - "striped": "", - "compact": "", - "maxHeight": "", - "color": "", - "buttonLabel": "", - "buttonColor": "", - "confirmText": "", - "confirmTextHint": "", - "successMessage": "", - "successMessageHint": "", - "enabled": "", + "name": "Navn", + "description": "Beskrivelse", + "iconUrl": "Ikonets URL", + "url": "Nettadresse", + "authType": "Autentisering Type", + "headerName": "Parameteren overskrift/spørring (Automatic Translation)", + "method": "Metode", + "requestBody": "Etterspør kropp", + "displayType": "Vis type", + "jsonPath": "JSON sti", + "jsonPathHint": "Bruk JSONPath syntaks for å pakke ut verdier, f.eks $.data.temperature or $.items[0].name", + "label": "Etikett", + "unit": "Enhet", + "mappings": "Tilordninger", + "tablePath": "Array JSON sti", + "tablePathHint": "Bane til listen i svaret, f.eks $.data.items", + "columns": "Kolonner", + "header": "Topptekst", + "items": "Elementer", + "gridColumns": "Rutenett kolonner", + "cardStyle": "Kort stil", + "bars": "Stolper", + "valuePath": "Verdi JSON sti", + "maxPath": "Max verdi JSON sti", + "showPercentage": "Vis prosent", + "barSize": "Bar størrelse", + "goodValues": "Gode verdier (komma-separert)", + "dotSize": "Dot Size", + "valueSize": "Verdi Størrelse", + "labelPosition": "Plassering av etikett", + "kvLayout": "Oppsett", + "striped": "Stripete rader", + "compact": "Kompakt modus", + "maxHeight": "Max Height (px)", + "color": "Farge", + "buttonLabel": "Etikett for knapp", + "buttonColor": "Farge på knapp", + "confirmText": "Bekreftelsestekst", + "confirmTextHint": "Hvis angitt, vil en bekreftelsesdialog vises før du utfører forespørselen", + "successMessage": "Suksess melding", + "successMessageHint": "Melding som vises etter vellykket utførelse", + "enabled": "Aktivert", "template": { - "label": "", - "description": "" + "label": "JSX mal", + "description": "Mal for memantin. Tilgang til API svar via databindinger (f.eks data.navn). Bruk hvitelistede komponenter. Forbud: constructor, __proto__, eval, Funksjon, vindu, dokument." } }, "placeholder": { - "exampleLabel": "", - "exampleLabelShort": "", - "exampleHeader": "", - "exampleUnit": "", - "iconUrl": "", - "url": "", - "headerName": "", - "jsonPath": "", - "tablePath": "", - "columnJsonPath": "", - "valuePath": "", - "maxPath": "", - "goodValues": "", - "color": "" + "exampleLabel": "CPU temperatur", + "exampleLabelShort": "Prosessor Temp", + "exampleHeader": "Navn", + "exampleUnit": "°C", + "iconUrl": "https://...", + "url": "https://api.eksempel.com/api/v1/status", + "headerName": "X-API-nøkkel", + "jsonPath": "$.data.value", + "tablePath": "$.data.items", + "columnJsonPath": "$.navn", + "valuePath": "$.data.used", + "maxPath": "$.data.totalt", + "goodValues": "online, true, opp", + "color": "blå" }, "cardStyleOption": { - "filled": "", - "outline": "", - "subtle": "" + "filled": "Fylt", + "outline": "Omriss", + "subtle": "Lilla" }, "layoutOption": { - "list": "", - "grid": "" + "list": "Liste", + "grid": "Rutenett" }, "sizeOption": { - "sm": "", - "md": "", - "lg": "", - "xl": "" + "sm": "Liten", + "md": "Middels", + "lg": "Stor", + "xl": "Ekstra stor" }, "labelPositionOption": { - "above": "", - "below": "" + "above": "Over", + "below": "Nedenfor" }, "fieldset": { - "general": "", - "connection": "", - "display": "" + "general": "Generelt", + "connection": "API Tilkobling", + "display": "Vis konfigurasjon" }, "displayTypeDescription": { - "singleValue": "", - "keyValue": "", - "table": "", - "statGrid": "", - "progressBars": "", - "statusIndicator": "", - "countGrid": "", - "raw": "", - "actionButton": "", - "customJsx": "" + "singleValue": "Vis en ekstrahert verdi med en etikett og enhet", + "keyValue": "Vis flere merkede verdier ved side", + "table": "Vis radene med data i et tabellformat", + "statGrid": "Fargede statistikkkort i rutenett - som Pi-Hole eller Speedtest widgets", + "progressBars": "Fremdriftsbarer som viser bruk eller ferdigstillelse – for disk, minne, kvoter", + "statusIndicator": "Farget status prikker som viser online/frakoblet eller helsetilstand", + "countGrid": "Kompakt antall + etiketttellere i tett rutenett", + "raw": "Veltiende JSON-output for feilsøking", + "actionButton": "En knapp som utløser en forespørsel når du klikket", + "customJsx": "Egendefinert JSX oppsett ved hjelp av hvitelistede Manton-komponenter med full API-data binding" }, "method": { - "GET": "", - "POST": "", - "PUT": "", - "DELETE": "", - "PATCH": "" + "GET": "SKAFF", + "POST": "POST", + "PUT": "KJØP", + "DELETE": "SLETT", + "PATCH": "SE" }, "authType": { - "none": "", - "bearer": "", - "basic": "", - "apiKeyHeader": "", - "apiKeyQuery": "" + "none": "Ingen", + "bearer": "Bærer Symbol", + "basic": "Standard Auth", + "apiKeyHeader": "API-nøkkel (overskrift)", + "apiKeyQuery": "API-nøkkel (Query)" }, "displayType": { - "singleValue": "", - "keyValue": "", - "table": "", - "statGrid": "", - "progressBars": "", - "statusIndicator": "", - "countGrid": "", - "raw": "", - "actionButton": "", - "customJsx": "" + "singleValue": "Enkel Verdi", + "keyValue": "Nøkkelverdi", + "table": "Tabell", + "statGrid": "Stat rutenett", + "progressBars": "Fremdriftsstreker", + "statusIndicator": "Status indikator", + "countGrid": "Antall rutenett", + "raw": "Rå JSON", + "actionButton": "Handlingsknapp", + "customJsx": "Egendefinert JSX" }, "secret": { - "apiKey": "", - "username": "", - "password": "", - "savedPlaceholder": "" + "apiKey": "API-nøkkel / Token", + "username": "Brukernavn", + "password": "Passord", + "savedPlaceholder": "•••••• (lagret, la være tom for å beholde)" }, "preview": { - "title": "", - "test": "", - "hint": "", - "rawResponse": "" + "title": "Forhåndsvisning", + "test": "Prøve", + "hint": "Klikk test for å forhåndsvise API svar med den gjeldende konfigurasjonen.", + "rawResponse": "Rå JSON-respons" }, "notification": { - "created": "", - "updated": "", - "deleted": "", - "imported": "", - "aiPromptCopied": "", - "aiPromptDescription": "", - "aiPromptCopy": "", - "aiPromptNoResponse": "", - "aiPromptCopyError": "", - "createError": "", - "updateError": "", - "importError": "", - "exportError": "", - "duplicated": "", - "duplicateError": "", - "toggleError": "", - "deleteError": "", - "previewError": "", - "executed": "", - "executeError": "" + "created": "Widget \"{name}\" opprettet.", + "updated": "Widget \"{name}\" oppdatert.", + "deleted": "Widget \"{name}\" slettet.", + "imported": "Widget ble importert.", + "aiPromptCopied": "AI prompt kopiert til utklippstavle", + "aiPromptDescription": "Kopier en forhåndsbygget prompt for å lime inn i en AI chatbot (ChatGPT, Claude, Gemini...). Det inkluderer hele widgetskjemaet og API-svaret slik at AI kan generere en JSON ferdig-til-import konfigurasjon for deg.", + "aiPromptCopy": "Kopier til utklippstavlen", + "aiPromptNoResponse": "Tips: Kjør en test først for å inkludere API-svaret i ledeteksten for å få bedre resultater.", + "aiPromptCopyError": "Kan ikke kopiere ledetekst til utklippstavlen. Nettleseren kan ikke støtte denne funksjonen.", + "createError": "Kunne ikke opprette widget. Sjekk API endepunktet er tilgjengelig.", + "updateError": "Kan ikke oppdatere widget. Dine endringer ble ikke lagret.", + "importError": "Kunne ikke importere widget. Påfør at filen er en gyldig egendefinert widget JSON eksport.", + "exportError": "Kunne ikke eksportere widget.", + "duplicated": "Widget \"{name}\" duplisert.", + "duplicateError": "Kunne ikke duplisere widget.", + "toggleError": "Kunne ikke bytte widget status.", + "deleteError": "Kunne ikke slette widget.", + "previewError": "Kan ikke hente forhåndsvisning. Kontroller URL-en og prøv på nytt.", + "executed": "Handlingen ble kjørt.", + "executeError": "Handlingen mislyktes: {error}" }, "table": { - "name": "", - "url": "", - "display": "" + "name": "Navn", + "url": "Nettadresse", + "display": "Skjerm" }, "widget": { - "disabled": "" + "disabled": "Denne widgeten er deaktivert" } }, "integration": { @@ -987,47 +987,47 @@ "placeholder": "Egendefinert app-URL" }, "apiKeySettings": { - "label": "" + "label": "Get API key" } }, "action": { "create": "Ny integrasjon" }, "grid": { - "widgetCount": "", - "noWidgets": "", - "detected": "" + "widgetCount": "{count} moduler", + "noWidgets": "Ingen widgets", + "detected": "Oppdaget via Docker" }, "category": { - "dnsHole": "", - "mediaService": "", - "calendar": "", - "mediaSearch": "", - "mediaRelease": "", - "mediaRequest": "", - "downloadClient": "", - "usenet": "", - "torrent": "", - "miscellaneous": "", - "smartHomeServer": "", - "indexerManager": "", - "healthMonitoring": "", - "search": "", - "mediaTranscoding": "", - "networkController": "", - "releasesProvider": "", - "notifications": "", - "firewall": "", - "timetable": "", - "photoService": "", - "documents": "", - "notes": "", - "mediaMonitoring": "", - "speedtest": "", - "analytics": "", - "vpn": "", - "mediaLibrary": "", - "uptimeMonitoring": "" + "dnsHole": "DNS", + "mediaService": "Medier", + "calendar": "Kalender", + "mediaSearch": "Søk", + "mediaRelease": "Utgivelser", + "mediaRequest": "Forespørsler", + "downloadClient": "Nedlastinger", + "usenet": "Usenet", + "torrent": "Torrent", + "miscellaneous": "Diverse", + "smartHomeServer": "Smart hjem", + "indexerManager": "Indekser", + "healthMonitoring": "Helse", + "search": "Søk", + "mediaTranscoding": "Transkoding", + "networkController": "Nettverk", + "releasesProvider": "Utgivelser", + "notifications": "Varsler", + "firewall": "Brannmur", + "timetable": "Tidsforløp", + "photoService": "Bilder", + "documents": "Dokumenter", + "notes": "Notater", + "mediaMonitoring": "Overvåking", + "speedtest": "Hastighet test", + "analytics": "Analyser", + "vpn": "VPN", + "mediaLibrary": "Mediabibliotek media", + "uptimeMonitoring": "Oppetid overvåking" }, "testConnection": { "action": { @@ -1290,12 +1290,12 @@ "newLabel": "Ny API Key (Secret)" }, "patchmonApiKey": { - "label": "", - "newLabel": "" + "label": "API-nøkkel (Automatic Translation)", + "newLabel": "Ny API-nøkkel" }, "patchmonApiSecret": { - "label": "", - "newLabel": "" + "label": "API hemmelighet", + "newLabel": "Nytt API hemmelighet" }, "githubAppId": { "label": "App Id", @@ -1310,8 +1310,8 @@ "newLabel": "Ny privat nøkkel" }, "slug": { - "label": "", - "newLabel": "" + "label": "Statusside slug", + "newLabel": "Ny statusside slug" } } }, @@ -1321,40 +1321,44 @@ "full": "Full integrasjons-tilgang" }, "audiobookshelf": { - "name": "", - "description": "" + "name": "Audiobokshylle", + "description": "Selvbetjent audiobok og podcast server" }, "navidrome": { - "name": "", - "description": "" + "name": "Navidrome", + "description": "Selvbetjent musikk-streaming server med Subsonic API kompatibilitet" }, "uptimeKuma": { - "name": "", - "description": "", + "name": "Opp til Kuma", + "description": "Selvbetjent oppetid overvåking med offentlige statussider", "secret": { "slug": { - "description": "" + "description": "Slo på din offentlige statusside. Standard til \"standard\" hvis ikke angitt." }, "apiKey": { - "description": "" + "description": "Valgfri API-nøkkel for godkjent /måltall tilgang" } } }, "traefik": { - "name": "", - "description": "" + "name": "Traefik", + "description": "Cloud-nativ revers-proxy og laste balanserer" + }, + "wud": { + "name": "Hva passer opp", + "description": "Overvåk hvilke av Docker-beholderene dine har bildeoppdateringer tilgjengelig" }, "paperlessNgx": { - "name": "", - "description": "" + "name": "Paperless-ngx", + "description": "System for dokumentstyring for arkivering og organisering av skannede dokumenter" }, "patchmon": { - "name": "", - "description": "" + "name": "PatchMon", + "description": "Styring og overvåking av Linux-verter" }, "bazarr": { - "name": "", - "description": "" + "name": "Bazarr", + "description": "Companion-applikasjon til Sonarr og Radarr som administrerer og laster ned undertekster" } }, "media": { @@ -1398,7 +1402,7 @@ } }, "noResults": { - "title": "" + "title": "Ingen media lastet opp" } }, "common": { @@ -1409,7 +1413,7 @@ "add": "Legg til", "apply": "Bruk", "backToOverview": "Tilbake til oversikt", - "skip": "", + "skip": "Hopp", "change": "Endre", "create": "Opprett", "createAnother": "Opprett og start på nytt", @@ -1431,16 +1435,26 @@ "checkLogs": "Sjekk loggene for mer informasjon", "tryAgain": "Prøv igjen", "loading": "Laster", - "show": "", - "hide": "" + "show": "Vis", + "hide": "Skjul" }, "here": "her", "iconPicker": { "label": "Ikon-URL", + "description": "Søk biblioteket, lim inn en bilde-URL, eller last opp en fil.", "header": "Skriv navn eller objekt å filtrere for ikoner... Homarr vil søke gjennom {countIcons} ikoner for deg.", - "headerLoading": "", - "noResults": "", - "error": "" + "headerLoading": "Søk etter navn", + "clear": "Fjern bilde", + "uploadImage": "Last opp bilde", + "results": "Søkeresultater for bilde", + "localImages": "Dine bilder", + "svgIcons": "SVG ikoner", + "otherImages": "Andre bilder", + "urlLoading": "Sjekker bildet…", + "urlReady": "Bildet er klart til bruk", + "urlError": "Dette bildet kan ikke lastes. Kontroller URL-en og prøv på nytt.", + "noResults": "Ingen ikoner samsvarer med \"{search}\".", + "error": "Kunne ikke laste ned ikoner." }, "colorScheme": { "options": { @@ -1492,7 +1506,7 @@ "switchToDarkMode": "Bytt til mørk modus", "switchToLightMode": "Bytt til lys modus", "management": "Administrasjon", - "docker": "", + "docker": "Docker", "preferences": "Dine innstillinger", "logout": "Logg ut", "login": "Logg Inn", @@ -1602,7 +1616,7 @@ "label": { "create": "Ny kategori", "changePosition": "Endre posisjon", - "settings": "" + "settings": "Innstillinger" } }, "openAllInNewTabs": { @@ -1623,15 +1637,15 @@ "menu": { "label": { "settings": "Innstillinger", - "refresh": "", - "options": "", - "actions": "" + "refresh": "Oppdater", + "options": "Alternativer", + "actions": "Handlinger" }, "status": { - "success": "", - "error": "", - "loading": "", - "idle": "" + "success": "Ok", + "error": "Feil", + "loading": "Laster", + "idle": "Inaktiv" } }, "create": { @@ -1659,11 +1673,11 @@ "edit": { "title": "Rediger element", "tab": { - "widget": "", - "app": "" + "widget": "Rediger widget", + "app": "Rediger app" }, "app": { - "propagationNotice": "" + "propagationNotice": "Endringer i denne appen vil bli brukt overalt det brukes på tvers av alle dashbord." }, "advancedOptions": { "label": "Avanserte innstillinger", @@ -1691,11 +1705,11 @@ }, "widget": { "integrationSelect": { - "configureIntegrationFirst": "", - "loading": "", - "placeholder": "", - "noResults": "", - "loadError": "" + "configureIntegrationFirst": "Koble til en integrasjon først", + "loading": "Laster...", + "placeholder": "Velg et alternativ", + "noResults": "Ingen resultater funnet", + "loadError": "Kan ikke laste inn innstillingene" }, "app": { "name": "App", @@ -1776,7 +1790,7 @@ "label": "Åpne i ny fane" }, "withBorder": { - "label": "" + "label": "Vis kantlinje" }, "items": { "label": "Bokmerke", @@ -1785,11 +1799,43 @@ } }, "archiveTeamWarrior": { - "name": "", - "description": "", + "name": "ArkivLag Kriger", + "description": "Monitor ArchiveTeam Warrior status, projects, and active archival jobs.", "option": { "showBroadcastMessage": { - "label": "" + "label": "Vis kringkastede meldinger" + } + } + }, + "wud": { + "name": "Hva passer opp", + "description": "Vis hvor mange sette containere som er tilgjengelige", + "title": "Hva passer opp", + "monitored": "Overvåket", + "updatesAvailable": "{count, plural, one {# oppdatering tilgjengelig} other {# oppdateringer tilgjengelig}}", + "updateAvailable": "Oppdatering tilgjengelig", + "openReleaseNotes": "Åpne utgivelsesnotater", + "option": { + "showTitle": { + "label": "Vis tittel" + }, + "showRing": { + "label": "Vis oppdatering ring" + }, + "layout": { + "label": "Oppsett", + "option": { + "horizontal": { + "label": "Horisontal" + }, + "vertical": { + "label": "Vertikal" + } + } + }, + "showUpdateList": { + "label": "Vis liste over containeroppdatering", + "description": "Viser hver overvåket beholder som har en bildeoppdatering tilgjengelig" } } }, @@ -1907,14 +1953,14 @@ "description": "Bruk ISO 8601 til å formatere datoen (dette vil overstyre andre alternativer)" }, "showWeather": { - "label": "", - "description": "" + "label": "Vis været", + "description": "Vis et lite animert værikon og temperatur i hjørnet av kortet" }, "weatherLocation": { - "label": "" + "label": "Værposisjon" }, "isWeatherFormatFahrenheit": { - "label": "" + "label": "Use Fahrenheit" } } }, @@ -1944,7 +1990,7 @@ "noStation": "Ingen stasjon valgt", "option": { "baseUrl": { - "label": "" + "label": "Søk.ch URL" }, "station": { "label": "Stasjon" @@ -1976,8 +2022,8 @@ "clear": "Fjern formatering", "heading": "Overskrift {level}", "align": "Juster tekst: {position}", - "directionLtr": "", - "directionRtl": "", + "directionLtr": "Angi tekstretning til høyre", + "directionRtl": "Angi tekstretning høyre til venstre", "blockquote": "Blokksitat", "horizontalLine": "Horisontal linje", "bulletList": "Punktliste", @@ -2268,7 +2314,7 @@ "sunset": "Solnedgang", "maxWindSpeed": "Maks vindhastighet: {maxWindSpeed} {unit}", "maxWindGusts": "Maks vindkast: {maxWindGusts} {unit}", - "humidity": "" + "humidity": "Fuktighet: {humidity}%" }, "kind": { "clear": "Tøm", @@ -2328,9 +2374,9 @@ "label": "Vis filsysteminfo" }, "visibleStorageVolumes": { - "label": "", - "description": "", - "placeholder": "" + "label": "Synlige lagringsvolumer", + "description": "Bare tilgjengelig når alle valgte integrasjoner er synologi. La stå tomt for å vise alle lagringsvolumer.", + "placeholder": "Velg lagringsvolum" }, "defaultTab": { "label": "Standard fane" @@ -2412,7 +2458,7 @@ "description": "Statistikk over containerne dine (denne widgeten kan bare legges til med administratorrettigheter)", "option": { "columns": { - "label": "" + "label": "Kolonner som skal vises" }, "enableRowSorting": { "label": "Aktiver sortering av elementer" @@ -2430,19 +2476,19 @@ "label": "Reverser sortering" }, "columnOrder": { - "label": "" + "label": "Rekkefølge på kolonne" }, "columnWidths": { - "label": "" + "label": "Kolonnebredde" } }, "error": { "internalServerError": "Kunne ikke hente containerstatistikk", - "layoutSaveTitle": "", - "layoutSaveMessage": "" + "layoutSaveTitle": "Tabelloppsett ikke lagret", + "layoutSaveMessage": "Kunne ikke lagre Docker tabelloppsett. Forsøk å flytte eller endre størrelse på kolonnen igjen." }, "empty": { - "noContainers": "" + "noContainers": "Ingen beholdere funnet" } }, "coolify": { @@ -2479,40 +2525,40 @@ } }, "vpn": { - "name": "", - "description": "", - "serviceUnavailable": "", + "name": "VPN", + "description": "Oversikt over VPN-tilkoblingene dine", + "serviceUnavailable": "VPN utilgjengelig", "option": {} }, "ups": { - "name": "", - "description": "", + "name": "OPPTAK", + "description": "Overvåk statusen for UPS-enhetene dine gjennom en NUT-server", "option": { "showBattery": { - "label": "" + "label": "Vis batteri" }, "showLoad": { - "label": "" + "label": "Vis last" }, "showVoltage": { - "label": "" + "label": "Vis spenning" } }, "status": { - "online": "", - "onBattery": "", - "lowBattery": "", - "charging": "", - "unknown": "" + "online": "Pålogget", + "onBattery": "På batteri", + "lowBattery": "Lavt batterinivå", + "charging": "Lader", + "unknown": "Ukjent" }, "field": { - "runtime": "", - "load": "", - "input": "", - "output": "" + "runtime": "Kjøretid", + "load": "Last", + "input": "Input", + "output": "Utgang" }, "error": { - "internalServerError": "" + "internalServerError": "Kunne ikke hente UPS-data" } }, "tracearr": { @@ -2738,31 +2784,31 @@ "description": "Å deaktivere dette fungerer ikke for Plex" }, "showBitrate": { - "label": "", - "description": "" + "label": "Vis bitrate", + "description": "Vis gjeldende avspilling bitrate ved siden av plasseringen" }, "showLocation": { - "label": "", - "description": "" + "label": "Vis posisjon", + "description": "Vis om strømmen er på din LAN eller WAN" } }, "footer": { - "streams": "", - "totalBitrate": "" + "streams": "{count, plural, one {# aktiv strøm} other {# aktive strømmer}}", + "totalBitrate": "Totalt: {bitrate}" }, "items": { "currentlyPlaying": "Spilles nå", "user": "Bruker", "name": "Navn", "id": "Id", - "status": "", - "directPlay": "", - "directStream": "", - "transcodeVideo": "", - "transcodeAudio": "", - "transcoding": "", - "paused": "", - "remaining": "", + "status": "Status:", + "directPlay": "Direkte avspilling", + "directStream": "Direkte strøm", + "transcodeVideo": "Konverterer video", + "transcodeAudio": "Konverterer lyd", + "transcoding": "Transkoding", + "paused": "Pauset", + "remaining": "{minutes} min igjen", "metadata": { "title": "Statistikk for nerder", "video": { @@ -2784,235 +2830,235 @@ } }, "paperlessNgx": { - "name": "", - "description": "", - "documentsTotal": "", - "documentsInbox": "", - "correspondents": "", - "tags": "", - "documentTypes": "", - "inboxRatio": "", - "inbox": "", - "total": "", + "name": "Paperless-ngx", + "description": "Oversikt over Paperless-ngx-dokumentarkivet", + "documentsTotal": "Totalt antall dokumenter", + "documentsInbox": "Innboks", + "correspondents": "Korrespondenter", + "tags": "Tagger", + "documentTypes": "Dokument typer", + "inboxRatio": "Innboks forhold", + "inbox": "innboks", + "total": "totalt", "option": { "showInboxRatio": { - "label": "", - "description": "" + "label": "Vis innboksforhold", + "description": "Vise forholdet mellom innboks-til-total dokumentasjon i helte" }, "showInboxRing": { - "label": "", - "description": "" + "label": "Vis innboksring", + "description": "Vis en fremgangsring ved siden av innboksens forhold" }, "showDocumentsTotal": { - "label": "", - "description": "" + "label": "Vis totale dokumenter", + "description": "Vis det totale antallet dokumenter i arkivet ditt" }, "showDocumentsInbox": { - "label": "", - "description": "" + "label": "Vis innboksen teller", + "description": "Vis antall ubehandlede dokumenter i innboksen" }, "showCorrespondents": { - "label": "", - "description": "" + "label": "Vis korrespondenter", + "description": "Vis det totale antallet korrespondenter" }, "showTags": { - "label": "", - "description": "" + "label": "Vis tagger", + "description": "Vis det totale antall emneord" }, "showDocumentTypes": { - "label": "", - "description": "" + "label": "Vis dokumenttyper", + "description": "Vis det totale antallet dokumenttyper" } }, "error": { - "internalServerError": "" + "internalServerError": "Kan ikke hente Paperless-ngx data" } }, "patchmon": { - "name": "", - "description": "", - "title": "", - "totalHosts": "", - "hostsNeedingUpdates": "", - "securityUpdates": "", - "upToDateHosts": "", - "hostsWithSecurityUpdates": "", - "recentUpdates24h": "", - "totalOutdatedPackages": "", - "totalRepos": "", - "osDistribution": "", - "compliance": "", - "complianceRatio": "", - "lastUpdated": "", + "name": "PatchMon", + "description": "Oversikt over vertsprogrammets status fra PatchMon", + "title": "PatchMon Statistikk", + "totalHosts": "Totalt antall verter", + "hostsNeedingUpdates": "Trenger oppdateringer", + "securityUpdates": "Sikkerhetsoppdateringer", + "upToDateHosts": "Oppdaterte verter", + "hostsWithSecurityUpdates": "Verter med sikkerhetsoppdateringer", + "recentUpdates24h": "Oppdateringer (2,4 timer)", + "totalOutdatedPackages": "Utdaterte pakker", + "totalRepos": "Depoter", + "osDistribution": "OS distribusjon", + "compliance": "Patch Compliance", + "complianceRatio": "{upToDate} / {total}", + "lastUpdated": "Oppdatert {time}", "option": { "showTotalHosts": { - "label": "", - "description": "" + "label": "Vis totale verter", + "description": "Vise totalt antall overvåkede verter" }, "showHostsNeedingUpdates": { - "label": "", - "description": "" + "label": "Vis verter som trenger oppdateringer", + "description": "Vis verter med minst en utdatert pakke" }, "showSecurityUpdates": { - "label": "", - "description": "" + "label": "Vis sikkerhetsoppdateringer", + "description": "Vis totalt antall sikkerhetsoppdateringer tilgjengelig" }, "showUpToDateHosts": { - "label": "", - "description": "" + "label": "Vis oppdaterte verter", + "description": "Vis verter med null utdaterte pakker" }, "showHostsWithSecurityUpdates": { - "label": "", - "description": "" + "label": "Vis verter med sikkerhetsoppdateringer", + "description": "Vis verter som krever sikkerhetsfeilrettinger" }, "showRecentUpdates24h": { - "label": "", - "description": "" + "label": "Vis nylige oppdateringer (24t)", + "description": "Vis antall oppdateringer som er lagt til de siste 24 timene" }, "showTotalOutdatedPackages": { - "label": "", - "description": "" + "label": "Vis utdaterte pakker", + "description": "Vise totalt antall utdaterte pakker over alle verter" }, "showTotalRepos": { - "label": "", - "description": "" + "label": "Vis kodelager", + "description": "Vis antall aktive kodelagre som overvåkes" }, "enableThresholdColors": { - "label": "", - "description": "" + "label": "Aktiver terskelfarger", + "description": "Fargede statistikkverdier grønn, gul, eller rød basert på forhåndsinnstillinger av alvorlighetsgrad" }, "useCustomThresholds": { - "label": "", - "description": "" + "label": "Avanserte terskler", + "description": "Tilpass advarsel og kritiske terskler per stat ved hjelp av absolutte tall eller prosentdeler av totale verter" }, "thresholdMode": { "option": { - "absolute": "", - "percent": "" + "absolute": "Antall absolutte", + "percent": "Prosent av totale verter" } }, "hostsNeedingUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Trenger oppdaterings-terskelmodus", + "description": "Sammenlign antall behov oppdateringer som en absolutt verdi eller prosentandel av totalt antall verter" }, "hostsNeedingUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Trenger oppdaterings varselsterskel", + "description": "Angi gul når verdien når denne terskelen" }, "hostsNeedingUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Trenger oppdateringskritisk terskel", + "description": "Angi rødt når verdien når denne terskelen" }, "securityUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Terskelmodus for sikkerhetsoppdateringer", + "description": "Sammenlign sikkerhetsvarianter antallet som en absolutt verdi eller prosentandel av totale verter" }, "securityUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Varselterskel for sikkerhetsoppdateringer", + "description": "Angi gul når verdien når denne terskelen" }, "securityUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Sikkerhetsoppdateringer kritisk terskel", + "description": "Angi rødt når verdien når denne terskelen" }, "hostsWithSecurityUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Verter med terskelmodus for sikkerhetsoppdateringer", + "description": "Sammenlign vertstallet som en absolutt verdi eller prosent av totale verter" }, "hostsWithSecurityUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Verter med varslingsterskel for sikkerhetsoppdateringer", + "description": "Angi gul når verdien når denne terskelen" }, "hostsWithSecurityUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Verter med kritisk terskel for sikkerhetsoppdateringer", + "description": "Angi rødt når verdien når denne terskelen" }, "upToDateHostsThresholdMode": { - "label": "", - "description": "" + "label": "Oppdatert verts-terskelmodus", + "description": "Sammenlign antall oppdaterte verter som en absolutt verdi eller prosent av totale verter" }, "upToDateHostsWarningAt": { - "label": "", - "description": "" + "label": "Oppdatert verter varselsterskel", + "description": "Angi gul når verdien er ved eller over denne grensen, men under full dekning" }, "upToDateHostsCriticalAt": { - "label": "", - "description": "" + "label": "Oppdaterte verter kritiske terskler", + "description": "Aktiver rød når verdien faller under denne grenseverdien" }, "totalOutdatedPackagesThresholdMode": { - "label": "", - "description": "" + "label": "Terskelmodus for utdaterte pakker", + "description": "Sammenlign antall utgående pakker som en absolutt verdi eller prosentandel av totale verter" }, "totalOutdatedPackagesWarningAt": { - "label": "", - "description": "" + "label": "Varsel ved utdaterte pakker", + "description": "Angi gul når verdien når denne terskelen" }, "totalOutdatedPackagesCriticalAt": { - "label": "", - "description": "" + "label": "Kritisk terskel for utdaterte pakker", + "description": "Angi rødt når verdien når denne terskelen" }, "showOsDistribution": { - "label": "", - "description": "" + "label": "Vis OS distribusjon", + "description": "Vis en oversikt over overvåkede verter ved hjelp av operativsystem" }, "osDistributionLimit": { - "label": "", - "description": "", + "label": "OS distribusjonsgrense", + "description": "Maksimalt antall operativsystemer å vise", "option": { - "3": "", - "5": "", - "10": "", - "all": "" + "3": "Topp 3", + "5": "5 på topp", + "10": "10 på topp", + "all": "Alle" } }, "showOsVersion": { - "label": "", - "description": "" + "label": "Vis OS-versjon", + "description": "Tilføy OS-versjonen til hver distribusjonsetikett når tilgjengelig" }, "showComplianceHero": { - "label": "", - "description": "" + "label": "Vis overholdelse helt", + "description": "Vis en samsvarende ring som viser prosentandelen oppdaterte verter" }, "osDisplayMode": { - "label": "", - "description": "", + "label": "OS visningsmodus", + "description": "Velg hvordan operativsystemdistribusjonen skal vises", "option": { - "bars": "", - "donut": "" + "bars": "Horisontale streker", + "donut": "Donut chart" } } }, "error": { - "internalServerError": "" + "internalServerError": "Fikk ikke tak i PatchMon data" } }, "bazarr": { - "name": "", - "description": "", - "episodes": "", - "movies": "", - "providers": "", - "status": "", + "name": "Bazarr", + "description": "Oversikt over manglende undertekster og helsestatus i Bazarr forekomsten", + "episodes": "Manglende episoder", + "movies": "Manglende filmer", + "providers": "Leverandørproblemer", + "status": "Helse problemer", "option": { "showMissingEpisodes": { - "label": "", - "description": "" + "label": "Vis manglende episoder", + "description": "Vis antall episoder med manglende undertekster" }, "showMissingMovies": { - "label": "", - "description": "" + "label": "Vis manglende filmer", + "description": "Vis antall filmer med manglende undertekster" }, "showProviderIssues": { - "label": "", - "description": "" + "label": "Vis leverandørproblemer", + "description": "Vis antall leverandører av undertekster med saker" }, "showHealthIssues": { - "label": "", - "description": "" + "label": "Vis helseproblemer", + "description": "Vis antall Bazarr helseproblemer" } }, "error": { - "internalServerError": "" + "internalServerError": "Kan ikke hente Bazarr data" } }, "immich-serverStats": { @@ -3043,7 +3089,7 @@ }, "immich-albumCarousel": { "name": "Immich Album", - "allPhotos": "", + "allPhotos": "Alle bilder", "option": { "albumId": { "label": "Album ID", @@ -3058,8 +3104,8 @@ "description": "Vis datoen for bildet og gjeldende indeks nederst i lysbildeserien" }, "randomizePhotos": { - "label": "", - "description": "" + "label": "Tilfeldig bilde", + "description": "Vis bilder i en tilfeldig rekkefølge i stedet for alltid å starte med samme albumrekkefølge." } }, "description": "Lysbildefremvisning av bilder i ditt Immich-album", @@ -3107,18 +3153,18 @@ "description": "Dette begrenser antall elementer vist per integrasjon, ikke globalt" }, "columnOrder": { - "label": "" + "label": "Rekkefølge på kolonne" }, "columnWidths": { - "label": "" + "label": "Kolonnebredde" } }, "errors": { "noColumns": "Velg kolonner i elementer", "noCommunications": "Kan ikke laste inn data fra integrasjon", - "noItems": "", - "actionFailed": "", - "actionFailedMessage": "" + "noItems": "Ingen nedlastinger", + "actionFailed": "Handlingen mislyktes", + "actionFailedMessage": "Handlingen kunne ikke fullføres. Vennligst prøv igjen." }, "items": { "actions": { @@ -3142,7 +3188,7 @@ }, "id": { "columnTitle": "Id", - "detailsTitle": "" + "detailsTitle": "Item ID" }, "integration": { "columnTitle": "Integrasjon" @@ -3177,7 +3223,7 @@ "time": { "columnTitle": "Fullfør tid", "detailsTitle": "Tid siden/til fullførelse", - "eta": "" + "eta": "ETA" }, "type": { "columnTitle": "Type", @@ -3223,21 +3269,21 @@ }, "globalRatio": "Global ratio", "contextMenu": { - "copyName": "", - "copyId": "", - "clearFilters": "" + "copyName": "Kopier navn", + "copyId": "Kopier ID", + "clearFilters": "Nullstill filtre" }, "footer": { - "filter": "" + "filter": "Filtrer nedlastinger" }, "stats": { - "show": "", - "hide": "", - "overallProgress": "", - "totalSize": "", - "clients": "" + "show": "Vis global statistikk", + "hide": "Skjul global statistikk", + "overallProgress": "Samlet fremdrift i kø", + "totalSize": "Total størrelse på kø", + "clients": "{count, plural, one {# client} other {# clients}}" }, - "disconnected": "" + "disconnected": "(frakoblet)" }, "mediaReleases": { "name": "Medieutgivelser", @@ -3276,10 +3322,10 @@ "label": "Åpne lenker i ny fane" }, "statusFilter": { - "label": "" + "label": "Statuser for å vise" }, "recentDays": { - "label": "" + "label": "Vis bare siste forespørsler" } }, "pending": { @@ -3388,33 +3434,33 @@ } }, "mediaMissing": { - "name": "", - "description": "", + "name": "Mangler & kommet i køen", + "description": "Viser manglende og kølagte filmer og episoder fra Radarr og Sonarr", "option": { "showMissing": { - "label": "" + "label": "Vis manglende elementer" }, "showQueued": { - "label": "" + "label": "Vis elementer i kø" }, "pageSize": { - "label": "" + "label": "Elementer per side" } }, "tab": { - "missing": "", - "queued": "" + "missing": "Mangler", + "queued": "Køet" }, "type": { - "movie": "", - "episode": "" + "movie": "Film", + "episode": "Episode" }, "empty": { - "missing": "", - "queued": "", - "noTabsEnabled": "" + "missing": "Ingen manglende produkter", + "queued": "Ingen elementer i kø", + "noTabsEnabled": "Aktiver minst en fane i widgetinnstillingene" }, - "timeLeft": "" + "timeLeft": "Gjenstående tid" }, "rssFeed": { "name": "RSS feed", @@ -3486,7 +3532,7 @@ "label": "Leverandør" }, "providerUrl": { - "label": "" + "label": "Leverandør nettadresse" }, "identifier": { "label": "Identifikator", @@ -3537,11 +3583,11 @@ "tooltip": "Leverandøren kunne ikke tolkes, sett den manuelt etter import av bildene" }, "tokens": { - "label": "", - "token": "", - "configured": "", - "notConfigured": "", - "save": "" + "label": "Søkeleverandør Tokens", + "token": "Sjetong", + "configured": "Sjetong konfigurert", + "notConfigured": "Ingen token valgt", + "save": "Lagre" } } }, @@ -3564,9 +3610,9 @@ "invalidIdentifier": "Ugyldig identifikator", "noMatchingVersion": "Ingen samsvarende versjon funnet", "noReleasesFound": "Ingen utgivelser funnet", - "noProviderSelected": "", + "noProviderSelected": "Ingen leverandør valgt", "noProviderResponse": "Ingen respons fra leverandør", - "unexpected": "" + "unexpected": "Uventet leverandørfeil" } } }, @@ -3661,7 +3707,7 @@ "noItems": "Ingen varsler å vise.", "option": { "hideLogos": { - "label": "" + "label": "Skjul logoer" } } }, @@ -3705,130 +3751,130 @@ } }, "uptimeKuma": { - "name": "", - "description": "", + "name": "Opp til Kuma", + "description": "Overvåke oppetid statistikk fra statussiden i Kuma", "option": { "showAverageUptime": { - "label": "", - "description": "" + "label": "Vis gjennomsnittlig oppetid", + "description": "Vis gjennomsnittlig 24 timers kombinert oppetid prosent" }, "showUptimeRing": { - "label": "", - "description": "" + "label": "Vis oppetid ring", + "description": "Vis en fremdriftsring ved siden av gjennomsnittet oppetid verdi" }, "showTotalMonitors": { - "label": "", - "description": "" + "label": "Vis totale skjermer", + "description": "Vise totalt antall konfigurerte skjermer" }, "showUpCount": { - "label": "", - "description": "" + "label": "Vis opp teller", + "description": "Vis hvor mange skjermer som er oppe" }, "showDownCount": { - "label": "", - "description": "" + "label": "Vis nedtelling", + "description": "Vis hvor mange skjermer som er nede for øyeblikket" }, "showPausedCount": { - "label": "", - "description": "" + "label": "Vis sperret antall", + "description": "Vis hvor mange skjermer som er satt på pause" } }, - "averageUptime": "", + "averageUptime": "Gjennomsnittlig opptid (24t)", "stats": { - "totalMonitors": "", - "upCount": "", - "downCount": "", - "pausedCount": "" + "totalMonitors": "Totalt antall skjermer", + "upCount": "Opp", + "downCount": "Ned", + "pausedCount": "Pauset" }, "error": { - "internalServerError": "" + "internalServerError": "Kunne ikke hente oppetid data" } }, "traefik": { - "name": "", - "description": "", + "name": "Traefik", + "description": "Oversikt over Traefik rutere, tjenester, middager og inngangspunkter", "option": { "showTcp": { - "label": "" + "label": "Vis TCP" }, "showUdp": { - "label": "" + "label": "Show UDP" }, "showEntryPoints": { - "label": "" + "label": "Vis enhetspunkter" } }, - "instances": "", - "versionUnknown": "", + "instances": "Traefik instanser", + "versionUnknown": "Ukjent versjon", "summary": { - "routers": "", - "entryPoints": "" + "routers": "Rutere", + "entryPoints": "Oppføringspoeng" }, "resource": { - "routers": "", - "services": "", - "middlewares": "" + "routers": "Rutere", + "services": "Tjenester", + "middlewares": "Midtbeslag" }, "status": { - "healthy": "", - "errors": "", - "warnings": "" + "healthy": "Frisk", + "errors": "{count} feil", + "warnings": "{count} advarsler" }, "error": { - "internalServerError": "" + "internalServerError": "Fikk ikke tak i Traefik data" } }, "audioStats": { - "name": "", - "description": "", + "name": "Lyd statistikk", + "description": "Bibliotek og avspillingsstatistikk fra Navidrome eller Audiobookshelf", "option": { "showArtists": { - "label": "", - "description": "" + "label": "Vis artister", + "description": "Vis det totale antallet artister i musikkbiblioteket ditt (Navidrome)" }, "showAlbums": { - "label": "", - "description": "" + "label": "Vis album", + "description": "Vis det totale antallet album i musikkbiblioteket ditt (Navidrome)" }, "showSongs": { - "label": "", - "description": "" + "label": "Vis sanger", + "description": "Vis det totale antallet sanger i musikkbiblioteket ditt (Navidrome)" }, "showLibraryCount": { - "label": "", - "description": "" + "label": "Vis antall bibliotek", + "description": "Vis antall bibliotek på din forekomst (Audiobookshelf)" }, "showAudiobooks": { - "label": "", - "description": "" + "label": "Vis lydobooks", + "description": "Vis det totale antallet lydoboker over alle biblioteker (lybookshelf)" }, "showPodcasts": { - "label": "", - "description": "" + "label": "Vis podcaster", + "description": "Vis det totale antallet podcasts over alle biblioteker (Audiobookshelf)" }, "showListeningTime": { - "label": "", - "description": "" + "label": "Vis lyttetid", + "description": "Vis din totale lyttetid (Lyder sokkel)" }, "showActiveSessions": { - "label": "", - "description": "" + "label": "Vis aktive økter", + "description": "Vis antall aktive avspillingsøkter (lyobookshelf)" }, "compactMode": { - "label": "", - "description": "" + "label": "Kompakt modus", + "description": "Bruk et tettere oppsett med mindre heller, ideelt for små widget-størrelser" } }, - "artists": "", - "albums": "", - "songs": "", - "libraryCount": "", - "audiobooks": "", - "podcasts": "", - "listeningTime": "", - "activeSessions": "", + "artists": "Artister", + "albums": "Album", + "songs": "Sanger", + "libraryCount": "Biblioteker", + "audiobooks": "Lydenoboks", + "podcasts": "Podcaster", + "listeningTime": "Hører på tid", + "activeSessions": "Aktive økter", "error": { - "internalServerError": "" + "internalServerError": "Klarte ikke å hente data om lydstatistikk" } }, "systemResources": { @@ -3892,9 +3938,9 @@ "label": "Vis bakgrunnsbrukslinje" }, "visibleStorageVolumes": { - "label": "", - "description": "", - "placeholder": "" + "label": "Synlige lagringsvolumer", + "description": "Bare tilgjengelig når alle valgte integrasjoner er synologi. La stå tomt for å vise alle lagringsvolumer.", + "placeholder": "Velg lagringsvolum" } }, "status": { @@ -3902,273 +3948,273 @@ } }, "customApi": { - "name": "", - "description": "", + "name": "Egendefinert API", + "description": "Vise data fra alle eksterne API med egendefinert konfigurasjon.", "option": { "definitionId": { - "label": "" + "label": "Definisjon ID" }, "refreshInterval": { - "label": "", - "description": "" + "label": "Oppdater intervall", + "description": "Hvor ofte skal data fra API (i sekunder) fylles" } }, - "noDefinition": "", - "definitionNotFound": "", - "noDisplayOutput": "", - "executeConfirm": "", - "executing": "", - "executeSuccess": "", - "executeFailed": "" + "noDefinition": "Ingen definisjon valgt", + "definitionNotFound": "Widgetdefinisjonen ikke funnet. Den kan ha blitt slettet.", + "noDisplayOutput": "Ingen visningsutdata", + "executeConfirm": "Er du sikker på at du vil utføre denne handlingen?", + "executing": "Utfører...", + "executeSuccess": "Handlingen kjøres vellykket", + "executeFailed": "Handlingen feilet. Sjekk widgetkonfigurasjonen." }, "beszelSystemTable": { - "name": "", - "description": "", + "name": "Beszel systemer (tabell)", + "description": "Tabellvisning for alle Beszel-overvåkede systemer med sorterbare kolonner og statusindikatorer", "option": { "statusFilter": { - "label": "" + "label": "Status filter" }, "sortBy": { - "label": "" + "label": "Sorter etter" }, "sortDirection": { - "label": "" + "label": "Sorter retning" }, "showCpu": { - "label": "" + "label": "Vis CPU" }, "showMemory": { - "label": "" + "label": "Vis minne" }, "showDisk": { - "label": "" + "label": "Vis disk" }, "showGpu": { - "label": "" + "label": "Vis GPU" }, "showLoadAvg": { - "label": "" + "label": "Vis gjennomsnitt for last" }, "showNet": { - "label": "" + "label": "Vis nettverk" }, "showTemp": { - "label": "" + "label": "Vis temperatur" }, "showBattery": { - "label": "" + "label": "Vis batteri" }, "showServices": { - "label": "" + "label": "Vis tjenester" }, "showUptime": { - "label": "" + "label": "Vis oppetid" }, "showAgent": { - "label": "" + "label": "Vis agent versjon" }, "columnOrder": { - "label": "" + "label": "Rekkefølge på kolonne" }, "columnWidths": { - "label": "" + "label": "Kolonnebredde" } }, - "noRecords": "", + "noRecords": "Ingen systemer funnet", "error": { - "internalServerError": "", - "layoutSaveTitle": "", - "layoutSaveMessage": "" + "internalServerError": "Kan ikke koble til Beszel. Sjekk dine integrasjonsinnstillinger.", + "layoutSaveTitle": "Kan ikke lagre tabelloppsett", + "layoutSaveMessage": "Bestillingen eller breddene på kolonnen kunne ikke lagres. Prøv på nytt." }, "column": { - "system": "", - "cpu": "", - "memory": "", - "disk": "", - "gpu": "", - "loadAvg": "", - "net": "", - "temp": "", - "battery": "", - "services": "", - "uptime": "", - "agent": "" + "system": "Systemadministrasjon", + "cpu": "Prosessor", + "memory": "Minne", + "disk": "Disk", + "gpu": "GPU", + "loadAvg": "Last snitt", + "net": "Netto", + "temp": "Temp.", + "battery": "Flaggermus", + "services": "Tjenester", + "uptime": "Oppetid", + "agent": "Agent" } }, "beszelSystemGrid": { - "name": "", - "description": "", + "name": "Beszel Systems (Grid)", + "description": "Korttabellvisning for alle Beszel-overvåkede systemer med sanntidsmåltall", "option": { "statusFilter": { - "label": "" + "label": "Status filter" }, "showCpu": { - "label": "" + "label": "Vis CPU" }, "showMemory": { - "label": "" + "label": "Vis minne" }, "showDisk": { - "label": "" + "label": "Vis disk" }, "showGpu": { - "label": "" + "label": "Vis GPU" }, "showLoadAvg": { - "label": "" + "label": "Vis gjennomsnitt for last" }, "showNet": { - "label": "" + "label": "Vis nettverk" }, "showTemp": { - "label": "" + "label": "Vis temperatur" }, "showBattery": { - "label": "" + "label": "Vis batteri" }, "showServices": { - "label": "" + "label": "Vis tjenester" }, "showUptime": { - "label": "" + "label": "Vis oppetid" }, "showAgent": { - "label": "" + "label": "Vis agent versjon" } }, "error": { - "internalServerError": "" + "internalServerError": "Kan ikke koble til Beszel. Sjekk dine integrasjonsinnstillinger." }, "empty": { - "noSystems": "" + "noSystems": "Ingen systemer funnet" }, "metric": { - "cpu": "", - "memory": "", - "disk": "", - "gpu": "", - "loadAvg": "", - "net": "", - "temp": "", - "battery": "", - "services": "", - "uptime": "", - "agent": "" + "cpu": "Prosessor", + "memory": "Minne", + "disk": "Disk", + "gpu": "GPU", + "loadAvg": "Last snitt", + "net": "Netto", + "temp": "Temp.", + "battery": "Flaggermus", + "services": "Tjenester", + "uptime": "Oppetid", + "agent": "Agent" } }, "beszelAlerts": { - "name": "", - "description": "", + "name": "Beszel Alerts", + "description": "Vis Beszel varslingskonfigurasjoner og historikk", "option": { "showHistory": { - "label": "" + "label": "Vis varselshistorikk" }, "maxHistoryItems": { - "label": "" + "label": "Maks oppføringer i historikk" } }, - "empty": "", + "empty": "Ingen varsler konfigurert", "error": { - "internalServerError": "" + "internalServerError": "Kan ikke koble til Beszel. Sjekk dine integrasjonsinnstillinger." }, - "history": "", - "resolved": "", + "history": "Historikk", + "resolved": "Løst", "status": { - "triggered": "", - "ok": "" + "triggered": "Utløst", + "ok": "Ok" } }, "beszelSystemStats": { - "name": "", - "description": "", + "name": "Beszel System Stats", + "description": "Tidsserier for CPU, minne, disk, nettverk og Docker container måltall", "option": { "systemId": { - "label": "", - "description": "" + "label": "Systemadministrasjon", + "description": "Velg et Beszel-system for å vise statistikk for" }, "timePeriod": { - "label": "" + "label": "Tid periode" }, "showCpu": { - "label": "" + "label": "Vis CPU-diagram" }, "showMemory": { - "label": "" + "label": "Vis minnediagram" }, "showDisk": { - "label": "" + "label": "Vis diskdiagram" }, "showDiskIO": { - "label": "" + "label": "Vis disk I/O-kart" }, "showNetwork": { - "label": "" + "label": "Vis nettverksdiagram" }, "showDockerCpu": { - "label": "" + "label": "Vis dokumentasjonsdiagram for Docker" }, "showDockerMemory": { - "label": "" + "label": "Vis Docker minnediagram" }, "showDockerNetwork": { - "label": "" + "label": "Vis nettverk av Docker" } }, - "selectSystem": "", + "selectSystem": "Velg system", "empty": { - "noSystems": "" + "noSystems": "Ingen systemer funnet" }, "error": { - "internalServerError": "", - "liveConnectionFailed": "", - "switchToHistorical": "", - "systemNotFound": "" + "internalServerError": "Kan ikke koble til Beszel. Sjekk dine integrasjonsinnstillinger.", + "liveConnectionFailed": "Direkte tilkobling mislyktes. Beszel-forekomsten din støtter kanskje ikke sanntidsstrømming.", + "switchToHistorical": "Bytt til historisk visning", + "systemNotFound": "Valgt system ble ikke funnet. Velg et annet system." }, "chart": { "cpu": { - "title": "", - "subtitle": "", - "series": "" + "title": "Prosessorbruk", + "subtitle": "Gjennomsnittlig prossessorutnyttelse i hele systemet", + "series": "Prosessor" }, "memory": { - "title": "", - "subtitle": "", - "series": "", - "cache": "" + "title": "Minne brukt", + "subtitle": "Presist bruk på det registrerte tidspunktet", + "series": "Brukt", + "cache": "Mellomlager/Buffere" }, "disk": { - "title": "", - "subtitle": "", - "series": "" + "title": "Bruk av diskplass", + "subtitle": "Bruk ved filsystem", + "series": "Rot" }, "diskIO": { - "title": "", - "subtitle": "", - "read": "", - "write": "" + "title": "Disk I/U", + "subtitle": "Gjennomsnitt av rotfilsystem", + "read": "Les", + "write": "Skriv" }, "storage": { - "title": "", - "subtitle": "", - "series": "" + "title": "Lagring", + "subtitle": "Per-filsystem diskbruk", + "series": "Brukt" }, "network": { - "title": "", - "subtitle": "", - "sent": "", - "recv": "" + "title": "Båndbredde", + "subtitle": "Nettverkstrafikk for offentlig grensesnitt", + "sent": "Sendt", + "recv": "Mottatt" }, "dockerCpu": { - "title": "", - "subtitle": "" + "title": "Prosessorbruk for dokker", + "subtitle": "Gjennomsnittlig CPU-bruk av containere" }, "dockerMemory": { - "title": "", - "subtitle": "" + "title": "Bruk av dokumentminne", + "subtitle": "Minne bruk av dokumentasjonsbeholdere" }, "dockerNetwork": { - "title": "", - "subtitle": "" + "title": "Docker nettverk I/O", + "subtitle": "Nettverkstrafikken til en dokerkolulator" } } } @@ -4545,9 +4591,9 @@ "text": "Fant ikke den forespurte ressursen" }, "error": { - "title": "", - "text": "", - "digest": "" + "title": "Denne siden kunne ikke lastes", + "text": "En uventet feil oppsto under lasting av denne siden. Navigasjonen din er fortsatt tilgjengelig — prøv å laste inn på nytt, eller bruk en annen seksjon fra sidepanelet.", + "digest": "Error reference: {digest}" }, "navbar": { "items": { @@ -4555,7 +4601,7 @@ "boards": "Tavler", "apps": "Apper", "integrations": "Integrasjoner", - "customWidgets": "", + "customWidgets": "Egendefinerte Widgeter", "searchEngies": "Søkemotorer", "medias": "Medier", "users": { @@ -4575,7 +4621,7 @@ "api": "API", "certificates": "Sertifikater", "tasks": "Oppgaver", - "backup": "" + "backup": "Sikkerhetskopi" } }, "settings": "Innstillinger", @@ -4656,7 +4702,7 @@ "private": "Denne tavlen er privat" }, "noResults": { - "title": "" + "title": "Ingen tavler ennå" }, "modal": { "createBoard": { @@ -4690,20 +4736,20 @@ "firstDayOfWeek": "Første dag i uken", "accessibility": "Hjelpemidler", "onboardingTours": { - "title": "", - "description": "", - "reset": "", + "title": "Onboarding timer", + "description": "Tilbakestille onboarding-turene for å se dem igjen ved neste besøk til ledelsen eller dashbord.", + "reset": "Tilbakestill onboarding turene", "resetSuccess": { - "title": "", - "message": "" + "title": "Tours reset", + "message": "Onboarding turene vil vises igjen ved neste besøk" }, "status": { - "completed": "", - "notStarted": "" + "completed": "Fullført", + "notStarted": "Ikke påbegynt" }, "name": { - "management": "", - "dashboard": "" + "management": "Administrasjon", + "dashboard": "Kontrollpanel" } } } @@ -5031,213 +5077,213 @@ } }, "mcp": { - "label": "", - "title": "", - "subtitle": "", - "description": "", - "noApiKey": "", - "createApiKeyButton": "", + "label": "AI / MCP", + "title": "AI Integrasjon", + "subtitle": "Modell Kontekstprotokoll (MCP) Server", + "description": "Koble AI assistenter til Homarr forekomsten og kontroller hele hjemmelappen med naturlig språk. Søk og forespørsel om medier ved OSS, administrer Docker containere, slå av Pi-hole, sjekk server-helse, kontrollere Home Assistant devices, og mer — alt fra din AI assistant.", + "noApiKey": "Du trenger en API-nøkkel for å godkjenne med MCP-serveren.", + "createApiKeyButton": "Opprett API-nøkkel", "endpoint": { - "title": "" + "title": "MCP endepunkt" }, "authentication": { - "title": "", - "intro": "", + "title": "Autentisering", + "intro": "Du kan autentisere med MCP-serveren din ved å bruke enten API-nøkkel eller OAuth. Begge metodene gir samme tilgangsnivå.", "apiKey": { - "title": "", - "description": "" + "title": "API-nøkkel (manuell)", + "description": "Passer ApiKey header med din fulle API-nøkkel i MCP klientkonfigurasjonen." }, "oauth": { - "title": "", - "description": "", - "hint": "" + "title": "OAuth (nettleserinnlogging)", + "description": "Klienter som støtter OAuth (som Claude Code, opencode eller Cursor) kan godkjenne ved å åpne et nettleservindu. Kjør auth-kommandoen i klienten din, logg inn på Homarr i nettleseren, og du er tilkoblet – en API-nøkkel er opprettet automatisk.", + "hint": "OAuth tokens vises som vanlige API-nøkler i autentiseringsfanen. Du kan kansellere dem når som helst." }, - "permissions": "" + "permissions": "API-nøkkelen bestemmer tillatelsene som er tilgjengelige for AI – den opererer med samme tilgangsnivå som nøkkeleier." }, "clientConfig": { - "title": "", + "title": "Klientkonfigurasjon", "streamableHttp": { - "recommended": "", - "title": "", - "worksWith": "", - "addToConfig": "", - "cursor": "", - "claudeDesktop": "", - "claudeCode": "", - "vsCodeCopilot": "", - "replaceHint": "" + "recommended": "Anbefalt", + "title": "Strammelig HTTP", + "worksWith": "Virker med: Cursor, Claude Desktop, VS Code Copilot, Windsurf, Claude Code", + "addToConfig": "Legg til i din MCP klientkonfigurasjonsfil:", + "cursor": "{name}: {file} i ditt prosjekt eller globale innstillinger", + "claudeDesktop": "{name}: {file}", + "claudeCode": "{name}: {file} eller bruk {command}", + "vsCodeCopilot": "{name}: {file} i arbeidsområde-innstillinger", + "replaceHint": "Erstatt plassholderen med API-nøkkelen du mottok når du skaper den." }, "stdio": { - "title": "", - "description": "" + "title": "stdio (tidligere klienter via mikrop-fjernbru)", + "description": "For klienter som bare støtter stdio-transport. Krever {dependency} (Node.js) installert lokalt:" } }, "testConnection": { - "title": "", - "description": "", - "hint": "" + "title": "Test tilkoblingen din", + "description": "Kjør dette i terminalen for å verifisere sluttpunktet er tilgjengelig og API-nøkkelen fungerer:", + "hint": "Et vellykket svar returnerer funksjonen til MCP tjener. Hvis du ser en feil, sjekk JSON svaret for hints." }, "availableTools": { - "title": "", - "description": "", - "columnType": "", - "columnName": "", - "columnDescription": "" + "title": "Tilgjengelige verktøy", + "description": "{count} verktøy tilgjengelig. Utvid en kategori for å se enkelte verktøy og tilhørende beskrivelser.", + "columnType": "Type:", + "columnName": "Verktøy", + "columnDescription": "Beskrivelse" }, "troubleshooting": { - "title": "", + "title": "Feilsøking", "missingHeader": { - "title": "", - "description": "" + "title": "\"Mangler ApiKey header\"", + "description": "Klienten din sender ikke headeren {header} . Verifiser {section} -delen i MCP-konfigurasjonen din er riktig. Noen klienter krever omstart etter konfigurasjonsendringer." }, "invalidFormat": { - "title": "", - "description": "" + "title": "\"Ugyldig ApiKey format\"", + "description": "Forsikre deg om at du kopierte hele API-nøkkelen, ikke bare en del av den." }, "invalidKey": { - "title": "", - "description": "" + "title": "\"Ugyldig API-nøkkel\"", + "description": "Nøkkel-ID ble ikke funnet, eller tokenet er galt. API-nøkler kan bare ses én gang når den ble opprettet. Om du mistet det, slett den gamle nøkkelen og lag en ny." }, "connectionRefused": { - "title": "", - "description": "" + "title": "Tilkobling avvist / tidsavbrudd", + "description": "Sørg for at nettadressen er tilgjengelig fra din AI-klient. Hvis Homarr kjører bak en omvendt proxy eller i Docker, bruk den eksterne URLen (ikke {localhost}). Bekreft at porten er korrekt (forvalg: 7575 for Docker)." }, "toolsNotAppearing": { - "title": "", - "description": "" + "title": "Verktøy ikke gjengis", + "description": "Noen verktøy krever spesifikke integrasjoner som skal konfigureres (f.eks. Docker, Overseerr). Verktøylisten er avhengig av hva som er tilgjengelig i Homarr forekomsten." } }, - "copy": "", + "copy": "Kopier", "oneClick": { - "title": "", - "subtitle": "", - "vsCode": "", - "cursor": "", - "copyUrl": "", - "copied": "", - "copyHint": "", - "manualConfig": "" + "title": "Installer i ett klikk", + "subtitle": "Benytt OAuth — autentisér i nettleseren din ved første bruk", + "vsCode": "Installer i VS-kode", + "cursor": "Installer i markøren", + "copyUrl": "Kopier MCP URL", + "copied": "Kopiert!", + "copyHint": "For ChatGPT, Claude kode eller enhver MCP-klient", + "manualConfig": "Manuell konfigurasjon" } } } }, "backup": { - "title": "", - "metaTitle": "", + "title": "Full database sikkerhetskopi", + "metaTitle": "Sikkerhetskopiering og gjenoppretting", "export": { - "title": "", - "description": "", - "button": "", - "error": "", + "title": "Eksporter database", + "description": "Last ned en fullstendig sikkerhetskopi av din SQLite database inkludert alle innstillinger, brukere, tavler og krypterte integrasjonshemminger. Sikkerhetskopien samles som en ZIP-fil med krypteringsnøkkelen og metadata.", + "button": "Last ned sikkerhetskopi", + "error": "Eksportering feilet", "confirm": { - "title": "", - "warningTitle": "", - "warningBody": "", - "typePrompt": "", - "submit": "", - "cancel": "" + "title": "Eksport av følsomme data", + "warningTitle": "Denne eksporten inneholder hele databasen.", + "warningBody": "Sikkerhetskopien omfatter alle brukere, integrasjonshemmeligheter (kryptert), API-nøkler, tavlekonfigurasjoner og appdata. Lagre den eksporterte filen sikkert og ikke del den.", + "typePrompt": "Skriv \"{phrase}\" for å fortsette", + "submit": "Eksporter database", + "cancel": "Avbryt" } }, "import": { - "title": "", - "description": "", - "warning": "", + "title": "Gjenopprett database", + "description": "Last opp en tidligere eksportert sikkerhetskopi ZIP for å gjenopprette databasen. Dette vil erstatte hele databasen din. Hvis sikkerhetskopien ble opprettet med en annen krypteringsnøkkel, blir hemmeligheter gjenkryptert automatisk.", + "warning": "Gjenoppretting av en sikkerhetskopi erstatter den nåværende databasen helt og restart applikasjonen. Denne handlingen kan ikke angres.", "dropzone": { - "title": "", - "description": "" + "title": "Slipp sikkerhetskopi ZIP her, eller klikk for å bla igjennom", + "description": "Kun .zip-filer fra en Homarr SQLite sikkerhetskopi er akseptert" }, - "changeFile": "", - "button": "", + "changeFile": "Endre fil", + "button": "Gjenopprett database", "success": { - "title": "", - "message": "" + "title": "Restore Complete", + "message": "Database er gjenopprettet. Programmet starter på nytt..." }, - "error": "" + "error": "Import feilet" }, "preview": { - "title": "", - "exported": "", - "loading": "", - "errorTitle": "", - "entity": "", - "count": "", - "boards": "", + "title": "Innhold i sikkerhetskopi", + "exported": "Eksportert {date}", + "loading": "Analyserer sikkerhetskopifil...", + "errorTitle": "Forhåndsvis feil", + "entity": "Enhet", + "count": "Antall", + "boards": "Tavler", "entities": { - "board": "", - "user": "", - "app": "", - "integration": "", - "item": "", - "media": "", - "search_engine": "" + "board": "Tavler", + "user": "Brukere", + "app": "Apper", + "integration": "Integrasjoner", + "item": "Moduler", + "media": "Medier", + "search_engine": "Søkemotorer" }, - "analyzeError": "", - "invalidMissingMetadata": "", - "invalidMissingDb": "" + "analyzeError": "Kunne ikke analysere sikkerhetskopifilen", + "invalidMissingMetadata": "Ugyldig sikkerhetskopi: manglende metadata.json", + "invalidMissingDb": "Ugyldig sikkerhetskopi: manglende db.sqlite" }, "restore": { "dropzone": { - "title": "", - "description": "" + "title": "Slipp sikkerhetskopi ZIP her", + "description": "Aksepterer .zip-filer fra en Homarr SQLite sikkerhetskopi (maks 256 MB)" }, - "analyzing": "", - "changeFile": "", - "continueToRestore": "", - "tryAgain": "", - "analysisError": "", + "analyzing": "Analyserer sikkerhetskopi...", + "changeFile": "Endre fil", + "continueToRestore": "Fortsett å gjenopprette", + "tryAgain": "Prøv igjen", + "analysisError": "Analyse feil", "preview": { - "title": "", - "exported": "", - "entity": "", - "count": "", - "boards": "", + "title": "Innhold i sikkerhetskopi", + "exported": "Eksportert {date}", + "entity": "Enhet", + "count": "Antall", + "boards": "Tavler", "entities": { - "board": "", - "user": "", - "app": "", - "integration": "", - "item": "", - "media": "", - "search_engine": "" + "board": "Tavler", + "user": "Brukere", + "app": "Apper", + "integration": "Integrasjoner", + "item": "Moduler", + "media": "Medier", + "search_engine": "Søkemotorer" }, - "migrationsApplied": "", - "migrationsAppliedPlural": "", - "migrationsOlderVersion": "", - "migrationsOlderVersionPlural": "", - "migrationsUpToDate": "", - "upToDate": "", - "migrationsPending": "" + "migrationsApplied": "{count} migrering benyttet", + "migrationsAppliedPlural": "{count} migrasjoner brukt", + "migrationsOlderVersion": "Denne sikkerhetskopien var fra en eldre Homarr versjon. {count} schema migrering ble brukt for å hente den oppdatert.", + "migrationsOlderVersionPlural": "Denne sikkerhetskopien var fra en eldre Homarr versjon. {count} skjemamigrasjoner ble brukt for å hente den oppdatert.", + "migrationsUpToDate": "Databaseskjema er oppdatert ({count} migrasjoner benyttet)", + "upToDate": "Opp til dato", + "migrationsPending": "Avventer på {count}" }, "migration": { - "title": "", - "migrationLabel": "" + "title": "Legger til migrasjoner ({current}/{total})", + "migrationLabel": "Migrasjon {index}" }, "confirm": { - "title": "", - "warningTitle": "", - "warningBody": "", - "typePrompt": "", - "cancel": "", - "submit": "" + "title": "Destruktiv handling", + "warningTitle": "Dette vil erstatte hele databasen permanent.", + "warningBody": "Alle nåværende tavler, brukere, apper, integrasjoner, innstillinger og økter vil gå tapt. Denne handlingen kan ikke angres. Programmet vil starte på nytt etter gjenopprettingen.", + "typePrompt": "Skriv \"{phrase}\" for å fortsette", + "cancel": "Avbryt", + "submit": "Gjenopprett database" }, "progress": { - "title": "", - "extracting": "", - "migrating": "", - "encrypting": "", - "swapping": "", - "restarting": "" + "title": "Gjenoppretter databasen...", + "extracting": "Trekker ut sikkerhetskopiarkiv", + "migrating": "Benytter databaseoverføringer", + "encrypting": "Rekrypterer integrasjon hemmeligheter", + "swapping": "Erstatter databasefil", + "restarting": "Restarter server" }, "complete": { - "title": "", - "message": "" + "title": "Restore Complete", + "message": "Databasen ble gjenopprettet. Serveren starter på nytt — vennligst oppdater siden om noen få sekunder." }, "failed": { - "title": "" + "title": "Gjenoppretting feilet" }, - "invalidMissingMetadata": "", - "invalidMissingDb": "", - "analyzeError": "" + "invalidMissingMetadata": "Ugyldig sikkerhetskopi: manglende metadata.json", + "invalidMissingDb": "Ugyldig sikkerhetskopi: manglende db.sqlite", + "analyzeError": "Kunne ikke analysere sikkerhetskopiering" } } }, @@ -5285,13 +5331,13 @@ "table": { "updated": "Oppdatert {when}", "refresh": { - "lastUpdated": "" + "lastUpdated": "Siste oppdatering {when}" }, "search": "Søk {count} containere", "selected": "{selectCount} av {totalCount} containere valgt", "footer": "Totalt {count} containere", - "totalCpu": "", - "totalMemory": "" + "totalCpu": "Total CPU: {cpu}%", + "totalMemory": "Total Mem: {memory}" }, "field": { "name": { @@ -5330,9 +5376,9 @@ "action": { "title": "Handlinger", "logs": { - "label": "", + "label": "Vis logg", "page": { - "title": "" + "title": "{name} logger" } }, "start": { @@ -5376,7 +5422,7 @@ }, "remove": { "label": "Fjern", - "confirm": "", + "confirm": "Klikk igjen for å fjerne permanent", "notification": { "success": { "title": "Containere fjernet", @@ -5420,7 +5466,7 @@ }, "error": { "internalServerError": "Klarte ikke hente Docker-containere", - "noColumns": "" + "noColumns": "Velg minst én kolonne i widget-innstillingene" } }, "kubernetes": { @@ -5729,14 +5775,14 @@ } }, "custom-widgets": { - "label": "", + "label": "Tilpassede widgets", "new": { - "label": "" + "label": "Ny" }, "edit": { - "label": "", + "label": "Rediger", "flow": { - "label": "" + "label": "Bevegelse" } } }, @@ -5763,7 +5809,7 @@ "docker": { "label": "Docker", "logs": { - "label": "" + "label": "Logger" } }, "kubernetes": { @@ -5915,146 +5961,146 @@ } }, "preferences": { - "title": "", + "title": "Innstillinger", "children": { "detail": { - "title": "", - "backHint": "", - "backAction": "" + "title": "Velg en preferanse du vil endre", + "backHint": "Trykk tilbaketasten eller bruk tilbake-knappen for å gå tilbake", + "backAction": "Gå tilbake" } }, "notification": { "error": { - "message": "" + "message": "Kan ikke oppdatere preferanse" } }, "option": { "preferences": { - "label": "" + "label": "Åpne preferanser" }, "boolean": { - "enabled": "", - "disabled": "" + "enabled": "Aktivert", + "disabled": "Deaktivert" }, "board": { - "none": "", - "unavailable": "" + "none": "Ingen", + "unavailable": "Valgt for øyeblikket (utilgjengelig)" }, "searchEngine": { - "none": "", - "unavailable": "" + "none": "Ingen", + "unavailable": "Valgt for øyeblikket (utilgjengelig)" }, "colorScheme": { - "label": "", + "label": "Farge Inndeling", "children": { "detail": { - "title": "" + "title": "Velg ditt fargevalg" } } }, "locale": { - "label": "", + "label": "Språk", "children": { "detail": { - "title": "" + "title": "Velg foretrukket språk" } } }, "defaultSearchEngineId": { - "label": "", + "label": "Standard søkemotor", "children": { "detail": { - "title": "" + "title": "Velg standard søkemotor" } } }, "openSearchInNewTab": { - "label": "", + "label": "Åpne søkeresultater i ny fane", "children": { "detail": { - "title": "" + "title": "Åpne søkeresultater i ny fane" } } }, "ddgBangs": { - "label": "", + "label": "Aktiver DuckDuckGo bangs", "children": { "detail": { - "title": "" + "title": "Aktiver DuckDuckGo bangs" } } }, "firstDayOfWeek": { - "label": "", + "label": "Ukens første dag", "children": { "detail": { - "title": "" + "title": "Velg den første dagen i uken" } } }, "homeBoardId": { - "label": "", + "label": "Hjemmelaget", "children": { "detail": { - "title": "" + "title": "Velg din hjemtavle" } } }, "mobileHomeBoardId": { - "label": "", + "label": "Mobil hjem-brett", "children": { "detail": { - "title": "" + "title": "Velg ditt mobilhjem-brett" } } }, "pingIconsEnabled": { - "label": "", + "label": "Bruk ikoner for pinger", "children": { "detail": { - "title": "" + "title": "Bruk ikoner for pinger" } } }, "enableRightClickOnWidgets": { - "label": "", + "label": "Aktiver høyreklikk på widgets", "children": { "detail": { - "title": "" + "title": "Aktiver høyreklikk på widgets" } } }, "fullPreferencesPage": { - "label": "" + "label": "Åpne hele innstillingssiden" } } } } }, "media": { - "help": "", + "help": "Søk etter filmer eller viser visning til forespørsel", "requestMovie": "Forespør en film", "requestSeries": "Forespør en serie", "openIn": "Åpne i {kind}", "group": { - "title": "" + "title": "Filmer og serier" }, "action": { "search": { - "label": "", - "description": "", + "label": "Søk etter filmer eller serier", + "description": "Begynn å skrive for å søke etter dine medieforespørsler", "disabled": { - "noIntegration": "", - "scoped": "" + "noIntegration": "Legge til en Overseerr, Jellyseerr, eller Seerr integrasjon for å tillate mediesøk.", + "scoped": "Denne widgeten har ingen tilgjengelig media forespørsel integrering." } } }, "availability": { - "available": "", - "partiallyAvailable": "", - "processing": "", - "requested": "", - "pending": "" + "available": "Tilgjengelig", + "partiallyAvailable": "Delvis", + "processing": "Behandler", + "requested": "Forespurt", + "pending": "Forespurt" } }, "external": { @@ -6332,10 +6378,10 @@ "header": { "season": "Sesong", "episodes": "Episoder", - "status": "" + "status": "Status:" }, "status": { - "requested": "" + "requested": "Forespurt" } }, "button": { @@ -6448,69 +6494,69 @@ } }, "onboardingTour": { - "learnMore": "", - "next": "", - "prev": "", - "done": "", - "skip": "", + "learnMore": "Les dokumentasjonen", + "next": "Neste", + "prev": "Tilbake", + "done": "Ferdig", + "skip": "Hopp over tur", "manage": { "welcome": { - "title": "", - "description": "" + "title": "Velkommen til Homarr!", + "description": "Dette er kontrollsenteret ditt. Fra her administrerer du tavler, apper, integrasjoner, brukere og serverinnstillinger. La oss ta en tur i hver del." }, "boardsList": { - "title": "", - "description": "" + "title": "Dine tavler", + "description": "Her er alle dine dashbord. Hver tavle har sitt eget oppsett, bakgrunn, og sine tilgangsinnstillinger. Du kan se hvem som opprettet hver og om det er offentlig eller privat." }, "boardsCreate": { - "title": "", - "description": "" + "title": "Opprett en tavle", + "description": "Klikk her for å opprette et nytt dashbord eller importere en fra en tidligere Homarr installasjon. Hver tavle får sin egen URL som du kan dele." }, "appsList": { - "title": "", - "description": "" + "title": "Dine Apper", + "description": "Dette er alle appene du har lagt til - linker til selvbetjente tjenester. Hver app har et ikon, valgfri helsesjekk, og et statusmerke på dashbordet." }, "appsCreate": { - "title": "", - "description": "" + "title": "Legg til en app", + "description": "Registrer en ny tjeneste her. Gi det et navn, en URL og et ikon – det vil vises som en flis på tavlene med statusovervåking av live status." }, "integrationsList": { - "title": "", - "description": "" + "title": "Dine Integrasjoner", + "description": "Disse er tjenestene som er koblet til Homarr — Sonarr, Radarr, Plex, Jellyfin, og 50+ mer. All legitimasjon er kryptert til hvile." }, "integrationsCreate": { - "title": "", - "description": "" + "title": "Legg til en integrasjon", + "description": "Koble til en ny tjeneste her. Velg typen, skriv inn URL og API-nøkkel – Homarr validerer tilkoblingen før du lagrer." }, "usersList": { - "title": "", - "description": "" + "title": "Dine brukere", + "description": "Se alle som har tilgang. Organiser brukere til grupper og kontroller som kan vise eller redigere hver tavle." }, "usersCreate": { - "title": "", - "description": "" + "title": "Opprett en bruker", + "description": "Legg til en ny brukerkonto her. Du kan også bruke invitasjonslenker for å enkelt kunne bruke rundskrivet. Derfor er du klar!" } }, "board": { "welcome": { - "title": "", - "description": "" + "title": "Dette er din tavle", + "description": "Et dra-og-slipp dashbord hvor du omorganiserer apper og widgets. Trykk Ctrl+K når som helst for å søke etter apper, tavler og handlinger." }, "editMode": { - "title": "", - "description": "" + "title": "Rediger modus", + "description": "Klikk her for å gå inn på redigeringsmodus. Du kan deretter legge til widgets, apper og seksjoner - dra for å endre posisjon, endre størrelse med håndtaket i hjørnet. Klikk igjen for å lagre endringene." }, "settings": { - "title": "", - "description": "" + "title": "Innstillinger for tavle", + "description": "Endre tavlens navn, kolonner, bakgrunn, farger og hvem som har tilgang til den. Hver tavle kan være offentlig eller privat." }, "switcher": { - "title": "", - "description": "" + "title": "Bytt tavler", + "description": "Gå mellom tavler. Opprett separate dashbord for forskjellige formål - media, nettverk, per-bruker, eller hva som helst ønsker." }, "userMenu": { - "title": "", - "description": "" + "title": "Din profil", + "description": "Endre fargetemaet, språket, tavlen og preferansene dine. Du kan også hoppe til området herfra." } } } diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 1d3ef1b91..a71c0489c 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Chmurowy reverse proxy i load balancer" }, + "wud": { + "name": "What's Up Docker", + "description": "Monitoruj, który z twoich kontenerów Docker ma dostępne aktualizacje obrazów" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "System zarządzania dokumentami do archiwizacji i organizacji zeskanowaych dokumnteów" @@ -1437,8 +1441,18 @@ "here": "tutaj", "iconPicker": { "label": "adres URL ikony", + "description": "Przeszukaj bibliotekę, wklej adres URL obrazu lub wgraj plik.", "header": "Wpisz nazwę lub obiekty do filtrowania ikon... Homarr przeszuka dla Ciebie ikony {countIcons}.", "headerLoading": "Wpisz, aby wyszukać ikony…", + "clear": "Wyczyść obraz", + "uploadImage": "Prześlij obraz", + "results": "Wyniki wyszukiwania obrazów", + "localImages": "Twoje obrazy", + "svgIcons": "Ikony SVG", + "otherImages": "Inne obrazy", + "urlLoading": "Sprawdzanie obrazu…", + "urlReady": "Obraz jest gotowy do użycia", + "urlError": "Nie można załadować tego obrazu. Sprawdź adres URL i spróbuj ponownie.", "noResults": "Brak ikon pasujących do \"{search}\".", "error": "Nie udało się załadować ikon." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Pokaż, ile oglądanych kontenerów ma dostępne aktualizacje.", + "title": "What's Up Docker", + "monitored": "Monitorowane", + "updatesAvailable": "{count, plural, one {# dostępna aktualizacja} other {# dostępne aktualizacje}}", + "updateAvailable": "Dostępna aktualizacja", + "openReleaseNotes": "Otwórz notatki o wydaniu", + "option": { + "showTitle": { + "label": "Pokaż tytuł" + }, + "showRing": { + "label": "Pokaż pierścień aktualizacji" + }, + "layout": { + "label": "Układ", + "option": { + "horizontal": { + "label": "Poziomy" + }, + "vertical": { + "label": "Pionowy" + } + } + }, + "showUpdateList": { + "label": "Pokaż listę aktualizacji kontenera", + "description": "Wymienia każdy monitorowany kontener z dostępną aktualizacją obrazu" + } + } + }, "dnsHoleSummary": { "name": "Podsumowanie DNS Hole", "description": "Wyświetla podsumowanie Twojego DNS Hole", diff --git a/packages/translation/src/lang/pt-br.json b/packages/translation/src/lang/pt-br.json index d96857250..2e54f3486 100644 --- a/packages/translation/src/lang/pt-br.json +++ b/packages/translation/src/lang/pt-br.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "O Docker", + "description": "Monitora qual dos seus contêineres Docker tem atualizações de imagem disponíveis" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Sistema de gerenciamento de documentos para arquivamento e organização de documentos digitalizados" @@ -1437,8 +1441,18 @@ "here": "aqui", "iconPicker": { "label": "URL do ícone", + "description": "Procure na biblioteca, cole uma URL da imagem ou envie um arquivo.", "header": "Digite o nome ou os objetos para filtrar os ícones... O Homarr pesquisará {countIcons} ícones para você.", "headerLoading": "Digite para pesquisar ícones…", + "clear": "Limpar imagem", + "uploadImage": "Upload de imagem", + "results": "Resultados da busca por imagem", + "localImages": "Suas imagens", + "svgIcons": "Ícones SVG", + "otherImages": "Outras imagens", + "urlLoading": "Verificando imagem…", + "urlReady": "A imagem está pronta para uso", + "urlError": "Esta imagem não pôde ser carregada. Verifique a URL e tente novamente.", "noResults": "Nenhum ícone corresponde a \"{search}\".", "error": "Não foi possível carregar os ícones." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "O Docker", + "description": "Mostrar quantos contêineres assistidos possuem atualizações disponíveis.", + "title": "O Docker", + "monitored": "Monitorado", + "updatesAvailable": "{count, plural, one {# atualização disponível} other {# atualizações disponíveis}}", + "updateAvailable": "Atualização disponível", + "openReleaseNotes": "Abrir notas de lançamento", + "option": { + "showTitle": { + "label": "Mostrar título" + }, + "showRing": { + "label": "Mostrar atualização de toque" + }, + "layout": { + "label": "Layout", + "option": { + "horizontal": { + "label": "Horizontal" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "Mostrar lista de atualização do recipiente", + "description": "Lista cada container monitorado que tem uma atualização de imagem disponível" + } + } + }, "dnsHoleSummary": { "name": "Resumo do DNS Hole", "description": "Exibe o resumo do seu DNS Hole", diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index 580ba60b3..e7fbd915e 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "O Docker", + "description": "Monitora qual dos seus contêineres Docker tem atualizações de imagem disponíveis" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Sistema de gerenciamento de documentos para arquivamento e organização de documentos digitalizados" @@ -1437,8 +1441,18 @@ "here": "aqui", "iconPicker": { "label": "URL do ícone", + "description": "Procure na biblioteca, cole uma URL da imagem ou envie um arquivo.", "header": "Digite o nome ou os objetos para filtrar os ícones... O Homarr pesquisará {countIcons} ícones para você.", - "headerLoading": "", + "headerLoading": "Pesquisar imagens por nome", + "clear": "Limpar imagem", + "uploadImage": "Upload de imagem", + "results": "Resultados da busca por imagem", + "localImages": "Suas imagens", + "svgIcons": "Ícones SVG", + "otherImages": "Outras imagens", + "urlLoading": "Verificando imagem…", + "urlReady": "A imagem está pronta para uso", + "urlError": "Esta imagem não pôde ser carregada. Verifique a URL e tente novamente.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "O Docker", + "description": "Mostrar quantos contêineres assistidos possuem atualizações disponíveis.", + "title": "O Docker", + "monitored": "Monitorado", + "updatesAvailable": "{count, plural, one {# atualização disponível} other {# atualizações disponíveis}}", + "updateAvailable": "Atualização disponível", + "openReleaseNotes": "Abrir notas de lançamento", + "option": { + "showTitle": { + "label": "Mostrar título" + }, + "showRing": { + "label": "Mostrar atualização de toque" + }, + "layout": { + "label": "Disposição", + "option": { + "horizontal": { + "label": "Horizontal" + }, + "vertical": { + "label": "Vertical" + } + } + }, + "showUpdateList": { + "label": "Mostrar lista de atualização do recipiente", + "description": "Lista cada container monitorado que tem uma atualização de imagem disponível" + } + } + }, "dnsHoleSummary": { "name": "Resumo do DNS Hole", "description": "Exibe o resumo do seu DNS Hole", diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index 86ad0b371..223ec755f 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -164,13 +164,13 @@ }, "init": { "title": "Instalare Homarr nouă", - "subtitle": "" + "subtitle": "Vă rugăm să creați utilizatorul administrator inițial" } }, "field": { "email": { "label": "E-mail", - "verified": "" + "verified": "Verificat" }, "username": { "label": "Utilizator" @@ -190,48 +190,48 @@ "label": "Confirmare parola" }, "previousPassword": { - "label": "" + "label": "Parola anterioară" }, "homeBoard": { - "label": "" + "label": "Tablou principal" }, "pingIconsEnabled": { - "label": "" + "label": "Folosește pictograme pentru ping-uri" }, "enableRightClickOnWidgets": { - "label": "", - "description": "" + "label": "Activează clic-dreapta pe widget-uri", + "description": "Arată meniul contextual al Homarr-ului când click dreapta pe un widget. Dezactivează pentru a utiliza meniul implicit al browser-ului (de ex. \"Deschide link-ul în fila nouă\")." }, "defaultSearchEngine": { - "label": "" + "label": "Motorul de căutare implicit" }, "openSearchInNewTab": { - "label": "" + "label": "Deschide rezultatele căutării într-o filă nouă" }, "ddgBangs": { "label": "Activează bang-urile DuckDuckGo" } }, "error": { - "usernameTaken": "" + "usernameTaken": "Nume utilizator deja luat" }, "action": { "login": { "label": "Utilizator", - "labelWith": "", + "labelWith": "Autentificare cu {provider}", "notification": { "success": { - "title": "", - "message": "" + "title": "Autentificare reușită", + "message": "Acum ești conectat" }, "error": { - "title": "", - "message": "" + "title": "Autentificare eșuată", + "message": "Autentificarea ta a eșuat" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "Ți-ai uitat parola?", + "description": "Un administrator poate folosi următoarea comandă pentru a reseta parola:" } }, "register": { @@ -239,63 +239,63 @@ "notification": { "success": { "title": "Contul a fost creat", - "message": "" + "message": "Te rugăm să te autentifici pentru a continua" }, "error": { - "title": "", - "message": "" + "title": "Crearea contului a eșuat", + "message": "Contul dvs. nu a putut fi creat" } } }, "create": "Creează utilizator", "changePassword": { - "label": "", + "label": "Schimbă parola", "notification": { "success": { - "message": "" + "message": "Parola schimbata cu succes" }, "error": { - "message": "" + "message": "Imposibil de modificat parola" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "Acasă schimbată cu succes" }, "error": { - "message": "" + "message": "Imposibil de schimbat tabla principală" } } }, "changeSearchPreferences": { "notification": { "success": { - "message": "" + "message": "Preferințe căutare schimbate cu succes" }, "error": { - "message": "" + "message": "Imposibil de modificat preferințele de căutare" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "Prima zi a săptămânii schimbată cu succes" }, "error": { - "message": "" + "message": "Imposibil de modificat prima zi a săptămânii" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Ping pictograme comutate cu succes" }, "error": { - "message": "" + "message": "Nu se pot comuta pictogramele de ping" } } }, @@ -311,29 +311,29 @@ }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Schimbă imaginea", "notification": { "success": { - "message": "" + "message": "Imaginea a fost schimbată" }, "error": { - "message": "" + "message": "Imposibil de schimbat imaginea" }, "toLarge": { - "title": "", - "message": "" + "title": "Imaginea este prea mare", + "message": "Dimensiunea maximă a imaginii este {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "Remove image", + "confirm": "Sunteţi sigur că doriţi să ştergeţi imaginea?", "notification": { "success": { - "message": "" + "message": "Imagine stearsa cu succes" }, "error": { - "message": "" + "message": "Imposibil de eliminat imaginea" } } } @@ -341,41 +341,41 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "Profil actualizat cu succes" }, "error": { - "message": "" + "message": "Imposibil de actualizat profilul" } } }, "delete": { - "label": "", - "description": "", - "confirm": "" + "label": "Ștergeți utilizatorul permanent", + "description": "Şterge acest utilizator, inclusiv preferinţele lor. Nu va şterge nicio secţiune. Utilizatorul nu va fi notificat.", + "confirm": "Sunteți sigur că doriți să ștergeți utilizatorul {username} cu preferințele lui?" }, "select": { - "label": "", - "notFound": "" + "label": "Selectați utilizatorul", + "notFound": "Niciun utilizator găsit" }, "transfer": { - "label": "" + "label": "Selectați un proprietar nou" } } }, "group": { - "title": "", - "name": "", - "search": "", + "title": "Grupuri", + "name": "Grup", + "search": "Găsește un grup", "field": { "name": "Nume", - "members": "", + "members": "Membri", "homeBoard": { - "label": "", - "description": "" + "label": "Tablou principal", + "description": "Numai secţiunile accesibile grupului pot fi selectate" }, "mobileBoard": { - "label": "", - "description": "" + "label": "Panou mobil", + "description": "Numai secţiunile accesibile grupului pot fi selectate" } }, "permission": { @@ -383,8 +383,8 @@ "title": "Administrator", "item": { "admin": { - "label": "", - "description": "" + "label": "Administrator", + "description": "Membrii cu această permisiune au acces deplin la toate caracteristicile și setările" } } }, @@ -392,20 +392,20 @@ "title": "Aplicații", "item": { "create": { - "label": "", - "description": "" + "label": "Creează aplicații", + "description": "Permite membrilor să creeze aplicații" }, "use-all": { - "label": "", - "description": "" + "label": "Utilizați toate aplicațiile", + "description": "Permite membrilor să adauge orice aplicație la secțiunile lor" }, "modify-all": { - "label": "", - "description": "" + "label": "Modifică toate aplicațiile", + "description": "Permite membrilor să modifice toate aplicațiile" }, "full-all": { - "label": "", - "description": "" + "label": "Acces complet al aplicației", + "description": "Permite membrilor să gestioneze, să utilizeze și să șteargă orice aplicație" } } }, @@ -413,176 +413,176 @@ "title": "Planșe", "item": { "create": { - "label": "", - "description": "" + "label": "Creează secţiuni", + "description": "Permite membrilor să creeze secţiuni" }, "view-all": { - "label": "", - "description": "" + "label": "Vezi toate secţiunile", + "description": "Permite membrilor să vizualizeze toate secţiunile" }, "modify-all": { - "label": "", - "description": "" + "label": "Modifică toate secţiunile", + "description": "Permite membrilor să modifice toate secţiunile (Nu include controlul accesului şi zona periculoasă)" }, "full-all": { - "label": "", - "description": "" + "label": "Acces complet la secţiune", + "description": "Permite membrilor să vizualizeze, modifice și șterge toate secțiunile (inclusiv controlul de acces și zona periculoasă)" } } }, "integration": { - "title": "", + "title": "Integrări", "item": { "create": { - "label": "", - "description": "" + "label": "Creare integrări", + "description": "Permite membrilor să creeze integrări" }, "use-all": { - "label": "", - "description": "" + "label": "Utilizați toate integrările", + "description": "Permite membrilor să adauge orice integrări la secţiunile lor" }, "interact-all": { - "label": "", - "description": "" + "label": "Interacționează cu orice integrare", + "description": "Permite membrilor să interacţioneze cu orice integrare" }, "full-all": { - "label": "", - "description": "" + "label": "Acces complet la integrare", + "description": "Permite membrilor să gestioneze, să utilizeze și să interacționeze cu orice integrare" } } }, "media": { - "title": "", + "title": "Medias", "item": { "upload": { - "label": "", - "description": "" + "label": "Încarcă mediile", + "description": "Permite membrilor să încarce fișiere media" }, "view-all": { - "label": "", - "description": "" + "label": "Vezi toate mediile", + "description": "Permite membrilor să vizualizeze toate mediile" }, "full-all": { - "label": "", - "description": "" + "label": "Acces complet la media", + "description": "Permite membrilor să gestioneze și să șteargă orice fișier media" } } }, "other": { - "title": "", + "title": "Altele", "item": { "view-logs": { - "label": "", - "description": "" + "label": "Vezi jurnalele", + "description": "Permite membrilor să vizualizeze jurnalele" } } }, "search-engine": { - "title": "", + "title": "Motoare de căutare", "item": { "create": { - "label": "", - "description": "" + "label": "Creare motoare de căutare", + "description": "Permite membrilor să creeze motoare de căutare" }, "modify-all": { - "label": "", - "description": "" + "label": "Modifică toate motoarele de căutare", + "description": "Permite membrilor să modifice toate motoarele de căutare" }, "full-all": { - "label": "", - "description": "" + "label": "Acces complet la motorul de căutare", + "description": "Permite membrilor să gestioneze și să șteargă orice motor de căutare" } } } }, "memberNotice": { - "mixed": "", - "external": "" + "mixed": "Unii membri provin de la furnizori externi și nu pot fi gestionați aici", + "external": "Toți membrii provin de la furnizori externi și nu pot fi gestionați aici" }, "reservedNotice": { - "message": "" + "message": "Acest grup este rezervat pentru utilizarea sistemului și restricționează unele acțiuni. " }, "action": { "create": { - "label": "", + "label": "Grup nou", "notification": { "success": { - "message": "" + "message": "Grupul a fost creat cu succes" }, "error": { - "message": "" + "message": "Grupul nu a putut fi creat" } } }, "transfer": { - "label": "", - "description": "", - "confirm": "", + "label": "Transferă proprietate", + "description": "Transferați proprietatea acestui grup către un alt utilizator.", + "confirm": "Sunteți sigur că doriți să transferați proprietatea pentru grupul {name} către {username}?", "notification": { "success": { - "message": "" + "message": "Grup transfuzat {group} cu succes la {user}" }, "error": { - "message": "" + "message": "Imposibil de transferat proprietatea" } } }, "addMember": { - "label": "" + "label": "Adaugă membru" }, "removeMember": { - "label": "", - "confirm": "" + "label": "Elimină membru", + "confirm": "Sunteţi sigur că doriţi să eliminaţi {user} din acest grup?" }, "delete": { - "label": "", - "description": "", - "confirm": "", + "label": "Șterge grup", + "description": "Odată ce ștergeți un grup, nu există cale de întoarcere. Vă rugăm să fiți sigur.", + "confirm": "Sunteţi sigur că doriţi să ştergeţi grupul {name}?", "notification": { "success": { "message": "" }, "error": { - "message": "" + "message": "Imposibil de șters grupul {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "Permisiuni salvate", + "message": "Permisiunile au fost salvate cu succes" }, "error": { - "title": "", - "message": "" + "title": "Permisiunile nu au fost salvate", + "message": "Permisiunile nu au fost salvate" } } }, "update": { "notification": { "success": { - "message": "" + "message": "Grupul {name} a fost salvat cu succes" }, "error": { - "message": "" + "message": "Imposibil de salvat grupul {name}" } } }, "select": { - "label": "", - "notFound": "" + "label": "Selectează grup", + "notFound": "Niciun grup găsit" }, "settings": { "board": { "notification": { "success": { - "title": "", - "message": "" + "title": "Setări salvate", + "message": "Setările forumului au fost salvate" }, "error": { - "title": "", - "message": "" + "title": "Salvarea setărilor a eșuat", + "message": "Imposibil de salvat setările forumului" } } } @@ -590,66 +590,66 @@ "changePosition": { "notification": { "success": { - "message": "" + "message": "Poziție schimbată cu succes" }, "error": { - "message": "" + "message": "Nu se poate schimba poziția" } } } }, "defaultGroup": { - "name": "", - "description": "" + "name": "Grup implicit", + "description": "{name} - Toți utilizatorii conectați" } }, "app": { - "search": "", + "search": "Găsește o aplicație", "page": { "list": { "title": "Aplicații", "noResults": { - "title": "", - "action": "" + "title": "Încă nu există aplicații", + "action": "Creează prima ta aplicație" } }, "create": { - "title": "", + "title": "Aplicație nouă", "notification": { "success": { - "title": "", - "message": "" + "title": "Creare reușită", + "message": "Aplicația a fost creată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Creare eșuată", + "message": "Aplicația nu a putut fi creată" } } }, "edit": { - "title": "", + "title": "Editare aplicație", "notification": { "success": { - "title": "", - "message": "" + "title": "Modificări aplicate cu succes", + "message": "Aplicația a fost salvată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Imposibil de aplicat modificările", + "message": "Aplicația nu a putut fi salvată" } } }, "delete": { - "title": "", - "message": "", + "title": "Ștergeți aplicația", + "message": "Sunteți sigur că doriți să ștergeți aplicația {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "Ștergere reușită", + "message": "Aplicația a fost ștearsă cu succes" }, "error": { - "title": "", - "message": "" + "title": "Ștergerea a eșuat", + "message": "Imposibil de șters aplicația" } } } @@ -659,308 +659,308 @@ "label": "Nume" }, "description": { - "label": "" + "label": "Descriere" }, "url": { - "label": "" + "label": "Url-ul" }, "useDifferentUrlForPing": { "checkbox": { - "label": "", - "description": "" + "label": "Folosiți un URL diferit pentru ping-uri", + "description": "Util dacă Homarr poate accesa direct folosind un nume de gazdă intern sau o rețea pentru a evita utilizarea lățimii de bandă a ISP" } } }, "action": { "select": { - "label": "", - "notFound": "", - "search": "", - "noResults": "", - "action": "", - "title": "" + "label": "Selectați aplicația", + "notFound": "Nicio aplicație găsită", + "search": "Caută o aplicație", + "noResults": "Niciun rezultat", + "action": "Selectați {app}", + "title": "Selectaţi o aplicaţie pentru a o adăuga la această secţiune" }, "create": { - "title": "", - "description": "", - "action": "" + "title": "Creează o aplicație nouă", + "description": "Creează o aplicație nouă ", + "action": "Deschide crearea aplicației" }, - "add": "" + "add": "Adăugați o aplicație" } }, "customWidget": { "page": { "list": { - "title": "", - "noResults": "", - "loading": "" + "title": "Widget-uri personalizate", + "noResults": "Nici un widget personalizat încă. Creați primul!", + "loading": "Încărcare..." }, "create": { - "title": "", - "subtitle": "" + "title": "Creați widget personalizat", + "subtitle": "Definiți un URL API, autentificare și cum să afișați datele de răspuns." }, "edit": { - "title": "" + "title": "Editare widget personalizat" } }, "action": { - "create": "", - "import": "", - "save": "", - "delete": "", - "deleteConfirm": "", - "export": "", - "addMapping": "", - "addColumn": "", - "edit": "", - "removeMapping": "", - "removeColumn": "", - "addItem": "", - "removeItem": "", - "addBar": "", - "duplicate": "", - "copyAiPrompt": "", - "enable": "", - "disable": "", - "menu": "" + "create": "Crează", + "import": "Importă", + "save": "Salvează", + "delete": "Ștergere widget personalizat", + "deleteConfirm": "Sunteţi sigur că doriţi să ştergeţi \"{name}\"? Această acţiune nu poate fi anulată.", + "export": "Exportă", + "addMapping": "Adaugă Mapare", + "addColumn": "Adaugă Coloană", + "edit": "Editare", + "removeMapping": "Elimină maparea", + "removeColumn": "Elimină coloana", + "addItem": "Adaugă element", + "removeItem": "Elimină element", + "addBar": "Adaugă Bară", + "duplicate": "Duplicate", + "copyAiPrompt": "Copiază solicitarea AI", + "enable": "Activare", + "disable": "Dezactivează", + "menu": "Acțiuni" }, "field": { - "name": "", - "description": "", - "iconUrl": "", - "url": "", - "authType": "", - "headerName": "", - "method": "", - "requestBody": "", - "displayType": "", - "jsonPath": "", - "jsonPathHint": "", - "label": "", - "unit": "", - "mappings": "", - "tablePath": "", - "tablePathHint": "", - "columns": "", - "header": "", - "items": "", - "gridColumns": "", - "cardStyle": "", - "bars": "", - "valuePath": "", - "maxPath": "", - "showPercentage": "", - "barSize": "", - "goodValues": "", - "dotSize": "", - "valueSize": "", - "labelPosition": "", - "kvLayout": "", - "striped": "", - "compact": "", - "maxHeight": "", - "color": "", - "buttonLabel": "", - "buttonColor": "", - "confirmText": "", - "confirmTextHint": "", - "successMessage": "", - "successMessageHint": "", - "enabled": "", + "name": "Nume", + "description": "Descriere", + "iconUrl": "Iconiță URL", + "url": "URL", + "authType": "Tip Auth", + "headerName": "Nume parametru antet/interogare", + "method": "Metodă", + "requestBody": "Cere corp", + "displayType": "Tip de afișare", + "jsonPath": "Cale JSON", + "jsonPathHint": "Folosește sintaxa JSONPath pentru a extrage valori, ex. $.data.temperature sau $.items[0].name", + "label": "Etichetă", + "unit": "Unitate", + "mappings": "Mapări", + "tablePath": "Array Calea JSON", + "tablePathHint": "Calea către array în răspuns, de ex. $.data.items", + "columns": "Coloane", + "header": "Antet", + "items": "Articole", + "gridColumns": "Coloane grilă", + "cardStyle": "Stilul cardului", + "bars": "Bare", + "valuePath": "Calea JSON Valoare", + "maxPath": "Valoarea maximă a căii JSON", + "showPercentage": "Arată procentul", + "barSize": "Dimensiune bară", + "goodValues": "Valori bune (separate prin virgulă)", + "dotSize": "Dot Size", + "valueSize": "Dimensiune Valoare", + "labelPosition": "Poziția Etichetei", + "kvLayout": "Aspect", + "striped": "Rânduri mutate", + "compact": "Mod compact", + "maxHeight": "Max Height (px)", + "color": "Culoare", + "buttonLabel": "Eticheta butonului", + "buttonColor": "Culoare buton", + "confirmText": "Text Confirmare", + "confirmTextHint": "Dacă este setat, va apărea un dialog de confirmare înainte de a executa cererea", + "successMessage": "Mesaj de succes", + "successMessageHint": "Mesaj afișat după executarea cu succes", + "enabled": "Activat", "template": { - "label": "", + "label": "Şablon JSX", "description": "" } }, "placeholder": { - "exampleLabel": "", - "exampleLabelShort": "", - "exampleHeader": "", - "exampleUnit": "", - "iconUrl": "", - "url": "", - "headerName": "", - "jsonPath": "", - "tablePath": "", - "columnJsonPath": "", - "valuePath": "", - "maxPath": "", - "goodValues": "", - "color": "" + "exampleLabel": "Temperatura procesorului", + "exampleLabelShort": "Temp CPU", + "exampleHeader": "Nume", + "exampleUnit": "C", + "iconUrl": "https://...", + "url": "https://api.example.com/api/v1/status", + "headerName": "X-API-cheie", + "jsonPath": "$.data.valoare", + "tablePath": "$.data.items", + "columnJsonPath": "$.name", + "valuePath": "$.data.utilizate", + "maxPath": "$.data.total", + "goodValues": "online, adevărat, sus", + "color": "albastru" }, "cardStyleOption": { - "filled": "", - "outline": "", - "subtle": "" + "filled": "Completat", + "outline": "Conturul", + "subtle": "Subtil" }, "layoutOption": { - "list": "", - "grid": "" + "list": "Listă", + "grid": "Grilă" }, "sizeOption": { - "sm": "", - "md": "", - "lg": "", - "xl": "" + "sm": "Mică", + "md": "Medie", + "lg": "Mare", + "xl": "Foarte mare" }, "labelPositionOption": { - "above": "", - "below": "" + "above": "Deasupra", + "below": "Sub" }, "fieldset": { - "general": "", - "connection": "", - "display": "" + "general": "Generalități", + "connection": "Conexiune API", + "display": "Configurare afișare" }, "displayTypeDescription": { - "singleValue": "", - "keyValue": "", - "table": "", - "statGrid": "", - "progressBars": "", - "statusIndicator": "", - "countGrid": "", - "raw": "", - "actionButton": "", - "customJsx": "" + "singleValue": "Arată o valoare extrasă cu o etichetă și o unitate", + "keyValue": "Arată mai multe valori etichetate una lângă alta", + "table": "Arată rândurile de date într-un format de tabel", + "statGrid": "Cărți de stat colorate într-o grilă - cum ar fi widget-uri Pi-Hole sau Speedtest", + "progressBars": "Bare de progres care indică utilizarea sau finalizarea — pentru disc, memorie, cote", + "statusIndicator": "Puncte de stare colorate care arată online/offline sau starea de sănătate", + "countGrid": "Numărul compact + contoare de etichete într-o grilă strânsă", + "raw": "Ieșire JSON pretipărită pentru depanare", + "actionButton": "Un buton care declanșează o solicitare când este apăsat", + "customJsx": "Aranjare JSX personalizată folosind componente Mantine whitelisted cu legare completă a datelor API" }, "method": { - "GET": "", - "POST": "", - "PUT": "", - "DELETE": "", - "PATCH": "" + "GET": "OBȚINE", + "POST": "POS", + "PUT": "Pune", + "DELETE": "Şterge", + "PATCH": "PLICURI" }, "authType": { - "none": "", - "bearer": "", - "basic": "", - "apiKeyHeader": "", - "apiKeyQuery": "" + "none": "Niciunul", + "bearer": "Token purtător", + "basic": "Autorizare de bază", + "apiKeyHeader": "Cheie API (Mediu)", + "apiKeyQuery": "Cheie API (Interogare)" }, "displayType": { - "singleValue": "", - "keyValue": "", - "table": "", - "statGrid": "", - "progressBars": "", - "statusIndicator": "", - "countGrid": "", - "raw": "", - "actionButton": "", - "customJsx": "" + "singleValue": "Valoare unică", + "keyValue": "Valoare Cheie", + "table": "Tabel", + "statGrid": "Grilă statistici", + "progressBars": "Bare de progres", + "statusIndicator": "Indicator Stare", + "countGrid": "Numără grila", + "raw": "JSON crud", + "actionButton": "Butonul de acţiune", + "customJsx": "JSX personalizat" }, "secret": { - "apiKey": "", - "username": "", - "password": "", - "savedPlaceholder": "" + "apiKey": "Cheie API / Token", + "username": "Nume", + "password": "Parolă", + "savedPlaceholder": "• • • (salvat, lasati gol pentru a fi păstrat)" }, "preview": { - "title": "", - "test": "", - "hint": "", - "rawResponse": "" + "title": "Previzualizare", + "test": "Testare", + "hint": "Faceți clic pe Test pentru a previzualiza răspunsul API cu configurația curentă.", + "rawResponse": "Răspuns brut JSON" }, "notification": { - "created": "", - "updated": "", - "deleted": "", - "imported": "", - "aiPromptCopied": "", - "aiPromptDescription": "", - "aiPromptCopy": "", - "aiPromptNoResponse": "", - "aiPromptCopyError": "", - "createError": "", - "updateError": "", - "importError": "", - "exportError": "", - "duplicated": "", - "duplicateError": "", - "toggleError": "", - "deleteError": "", - "previewError": "", - "executed": "", - "executeError": "" + "created": "Widget \"{name}\" creat cu succes.", + "updated": "Widget \"{name}\" a fost actualizat cu succes.", + "deleted": "Widget-ul \"{name}\" a fost șters.", + "imported": "Widget importat cu succes.", + "aiPromptCopied": "Cererea AI a fost copiată în clipboard", + "aiPromptDescription": "Copiați un prompt pre-construit pentru a lipi în orice robot de chat AI (ChatGPT, Claude, Gemini...). Acesta include schema completă de widget și răspunsul dvs. API astfel încât AI să poată genera o configurație JSON gata de import pentru dvs.", + "aiPromptCopy": "Copiază în clipboard", + "aiPromptNoResponse": "Sfat: Rulează mai întâi un test pentru a include răspunsul tău API în prompt pentru rezultate mai bune.", + "aiPromptCopyError": "Copierea promptă în clipboard. Este posibil ca browserul să nu suporte această funcție.", + "createError": "Crearea widget-ului a eșuat. Verificați dacă API-ul este accesibil.", + "updateError": "Actualizarea widget-ului a eșuat. Modificările nu au fost salvate.", + "importError": "Importul widget-ului a eșuat. Asigurați-vă că fișierul este un widget personalizat valid JSON export.", + "exportError": "Exportarea widget-ului a eșuat.", + "duplicated": "Widget \"{name}\" duplicat.", + "duplicateError": "Esuare duplicare widget.", + "toggleError": "Eroare la comutarea stării widget-ului.", + "deleteError": "Ștergerea widget-ului a eșuat.", + "previewError": "Previzualizarea nu a reușit. Verificați URL-ul și încercați din nou.", + "executed": "Acțiune executată cu succes.", + "executeError": "Acțiune eșuată: {error}" }, "table": { - "name": "", - "url": "", - "display": "" + "name": "Nume", + "url": "URL", + "display": "Afişare" }, "widget": { - "disabled": "" + "disabled": "Acest widget este dezactivat" } }, "integration": { "page": { "list": { - "title": "", - "search": "", + "title": "Integrări", + "search": "Căutare integrări", "noResults": { - "title": "" + "title": "Nu există încă integrări" } }, "create": { - "title": "", + "title": "Integrare nouă {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "Creare reușită", + "message": "Integrarea a fost creată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Creare eșuată", + "message": "Integrarea nu a putut fi creată" } }, "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Existente", + "label": "Selectaţi aplicaţia existentă" }, "new": { - "title": "", + "title": "Nou", "url": { - "label": "", - "description": "" + "label": "Url aplicație", + "description": "Url-ul aplicației se va deschide când este accesat din tabloul de bord" } } } } }, "edit": { - "title": "", + "title": "Editare integrare {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "Modificări aplicate cu succes", + "message": "Integrarea a fost salvată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Imposibil de aplicat modificările", + "message": "Integrarea nu a putut fi salvată" } }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Leagă o aplicație", + "remove": "Deconectare", + "select": "Selectați o aplicație pentru a vă conecta" } } }, "delete": { - "title": "", - "message": "", + "title": "Ștergeți integrarea", + "message": "Sunteţi sigur că doriţi să ştergeţi integrarea {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "Ștergere reușită", + "message": "Integrarea a fost ștearsă cu succes" }, "error": { - "title": "", - "message": "" + "title": "Ștergerea a eșuat", + "message": "Imposibil de șters integrarea" } } } @@ -970,28 +970,28 @@ "label": "Nume" }, "url": { - "label": "" + "label": "Url-ul" }, "attemptSearchEngineCreation": { - "label": "", - "description": "" + "label": "Crează Motor de Căutare", + "description": "Integrarea \"{kind}\" poate fi utilizată cu motoarele de căutare. Verificați acest lucru pentru a configura automat motorul de căutare." }, "app": { - "sectionTitle": "" + "sectionTitle": "Aplicație asociată" }, "createApp": { - "label": "", - "description": "" + "label": "Creare aplicație", + "description": "Creați o aplicație cu același nume și aceeași pictogramă ca și integrarea. Lăsați câmpul de intrare de mai jos gol pentru a crea aplicația cu URL-ul de integrare." }, "appHref": { - "placeholder": "" + "placeholder": "URL personalizat pentru aplicație" }, "apiKeySettings": { "label": "Obține cheia API" } }, "action": { - "create": "" + "create": "Noua integrare" }, "grid": { "widgetCount": "{count} widget-uri", @@ -1025,289 +1025,289 @@ "mediaMonitoring": "Monitorizare", "speedtest": "Test de viteză", "analytics": "Analiză", - "vpn": "", + "vpn": "VPN", "mediaLibrary": "Bibliotecă media", "uptimeMonitoring": "Monitorizare uptime" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "Testează conexiunea și creează", + "edit": "Testează conexiunea și salvează" }, "error": { "common": { "cause": { - "title": "" + "title": "Pauză cu mai multe detalii" } }, "unknown": { - "title": "", - "description": "" + "title": "Eroare necunoscută", + "description": "A apărut o eroare necunoscută, deschideți cauza de mai jos pentru a vedea mai multe detalii" }, "parse": { - "title": "", - "description": "" + "title": "Parse error", + "description": "Răspunsul nu a putut fi analizat. Vă rugăm să verificaţi dacă URL-ul este îndreptat către URL-ul de bază al serviciului." }, "authorization": { - "title": "", - "description": "" + "title": "Eroare de autorizare", + "description": "Solicitarea nu a fost autorizată. Verificați dacă acreditările sunt corecte și le aveți configurate cu suficiente permisiuni." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Eroare de răspuns", + "description": "S-a primit răspuns neașteptat {statusCode} ({reason}) de la . Vă rugăm să verificați dacă URL-ul este îndreptat către adresa URL de bază a integrării.", + "otherDescription": "S-a primit răspuns neașteptat {statusCode} de la . Vă rugăm să verificați dacă URL-ul este îndreptat către URL-ul de bază al integrării.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", - "serviceUnavailable": "", - "gatewayTimeout": "" + "badRequest": "Solicitare greșită", + "notFound": "Nu a fost găsit", + "tooManyRequests": "Prea multe solicitări", + "internalServerError": "Eroare internă de server", + "serviceUnavailable": "Serviciu indisponibil", + "gatewayTimeout": "Expirarea gateway-ului" } }, "certificate": { - "title": "", + "title": "Eroare de certificat", "description": { - "expired": "", - "notYetValid": "", - "untrusted": "", - "hostnameMismatch": "" + "expired": "Certificatul a expirat.", + "notYetValid": "Certificatul nu este încă valid.", + "untrusted": "Certificatul nu este de încredere.", + "hostnameMismatch": "Numele certificatului nu se potrivește cu adresa URL." }, "alert": { "permission": { - "title": "", - "message": "" + "title": "Nu există suficiente permisiuni", + "message": "Nu aveţi permisiunea de a avea încredere sau de a încărca certificate. Vă rugăm să contactaţi administratorul pentru a încărca certificatul root necesar." }, "hostnameMismatch": { - "title": "", - "message": "" + "title": "Nepotrivire nume gazdă", + "message": "Numele gazdei din certificat nu se potrivește cu numele de gazdă la care te conectezi. Acest lucru ar putea indica un risc de securitate, dar încă puteți alege să aveți încredere în acest certificat." }, "extract": { - "title": "", - "message": "" + "title": "Extragerea certificatului CA a eșuat", + "message": "Numai certificatele autosemnate fără lanț pot fi preluate automat. Dacă folosiți un certificat auto-semnat, asigurați-vă că încărcați certificatul CA manual. Poți găsi instrucțiuni despre cum să faci acest lucru ." } }, "action": { "retry": { - "label": "" + "label": "Reîncercați crearea" }, "trust": { - "label": "" + "label": "Certificat de încredere" }, "upload": { - "label": "" + "label": "Încărcați certificatul" } }, "hostnameMismatch": { "confirm": { - "title": "", - "message": "" + "title": "Nepotrivirea numelui gazdă de încredere", + "message": "Sunteți sigur că doriți să aveți încredere în certificat cu o nepotrivire a numelui gazdă?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Certificat de încredere", + "message": "Nume gazdă adăugat la lista de certificate de încredere" }, "error": { - "title": "", - "message": "" + "title": "Eșuare încredere în certificat", + "message": "Certificatul cu o nepotrivire de nume gazdă nu a putut fi de încredere" } } }, "selfSigned": { "confirm": { - "title": "", - "message": "" + "title": "Certificat auto-semnat de încredere", + "message": "Ești sigur că vrei să ai încredere în acest certificat auto-semnat?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Certificat de încredere", + "message": "Certificat adăugat la lista de certificate acreditate" }, "error": { - "title": "", - "message": "" + "title": "Eșuare încredere în certificat", + "message": "Nu s-a reușit adăugarea certificatului la lista de certificate acreditate" } } }, "details": { - "title": "", - "description": "", + "title": "Detalii", + "description": "Examinați informațiile referitoare la certificat înainte de a decide să aveți încredere în acestea.", "content": { - "action": "", - "title": "" + "action": "Afișare conținut", + "title": "Certificat PEM" } } }, "request": { - "title": "", + "title": "Eroare la solicitare", "description": { "connection": { - "hostUnreachable": "", - "networkUnreachable": "", - "refused": "", - "reset": "" + "hostUnreachable": "Serverul nu a putut fi accesat. De obicei înseamnă că gazda este offline sau inaccesibilă din rețea.", + "networkUnreachable": "Rețeaua nu este accesibilă. Vă rugăm să verificați conexiunea la internet sau configurarea rețelei.", + "refused": "Serverul a refuzat conexiunea. Nu poate rula sau respinge cereri în portul specificat.", + "reset": "Conexiunea a fost închisă în mod neașteptat de către server. Acest lucru se poate întâmpla în cazul în care serverul este instabil sau repornit." }, "dns": { - "notFound": "", - "timeout": "", - "noAnswer": "" + "notFound": "Adresa serverului nu a putut fi găsită. Vă rugăm să verificaţi URL-ul pentru caractere sau nume de domeniu invalide.", + "timeout": "DNS căutat a expirat. Aceasta poate fi o problemă temporară — vă rugăm să încercați din nou în câteva momente.", + "noAnswer": "Serverul DNS nu a returnat un răspuns valid. Domeniul poate exista, dar nu are înregistrări valide." }, "timeout": { - "aborted": "", - "timeout": "" + "aborted": "Cererea a fost anulată înainte de a se putea finaliza. Acest lucru ar putea fi cauzat de o acțiune a utilizatorului sau de un timeout de sistem.", + "timeout": "Solicitarea a durat prea mult pentru a fi finalizată și a fost finalizată. Verificați rețeaua sau încercați din nou mai târziu." } } } }, - "alertNotice": "", + "alertNotice": "Butonul Salvare este activat odată ce o conexiune reușită este stabilită", "notification": { "success": { - "title": "", - "message": "" + "title": "Conexiune reușită", + "message": "Conexiunea a fost stabilită cu succes" }, "invalidUrl": { "title": "Adresă URL invalidă", - "message": "" + "message": "URL-ul nu este valid" }, "secretNotDefined": { - "title": "", - "message": "" + "title": "Acreditări lipsă", + "message": "Nu toate acreditările au fost furnizate" }, "invalidCredentials": { - "title": "", - "message": "" + "title": "Acreditări nevalide", + "message": "Acreditările nu sunt valide" }, "commonError": { - "title": "", - "message": "" + "title": "Conexiune eșuată", + "message": "Conexiunea nu s-a putut stabili" }, "badRequest": { - "title": "", - "message": "" + "title": "Solicitare greșită", + "message": "Cererea a fost incorectă" }, "unauthorized": { - "title": "", - "message": "" + "title": "Neautorizat", + "message": "Probabil acreditări greșite" }, "forbidden": { - "title": "", - "message": "" + "title": "Interzis", + "message": "Probabil că lipsesc permisiunile" }, "notFound": { - "title": "", - "message": "" + "title": "Nu a fost găsit", + "message": "Probabil url sau cale greșită" }, "internalServerError": { - "title": "", - "message": "" + "title": "Eroare internă de server", + "message": "Serverul a întâlnit o eroare" }, "serviceUnavailable": { - "title": "", - "message": "" + "title": "Serviciu indisponibil", + "message": "Serverul este momentan indisponibil" }, "connectionAborted": { - "title": "", - "message": "" + "title": "Conexiune anulată", + "message": "Conexiunea a fost anulată" }, "domainNotFound": { - "title": "", - "message": "" + "title": "Domeniul nu a fost găsit", + "message": "Domeniul nu a putut fi găsit" }, "connectionRefused": { - "title": "", - "message": "" + "title": "Conexiune refuzată", + "message": "Conexiunea a fost refuzată" }, "invalidJson": { - "title": "", - "message": "" + "title": "JSON invalid", + "message": "Răspunsul nu a fost valid JSON" }, "wrongPath": { - "title": "", - "message": "" + "title": "Cale greșită", + "message": "Probabil că calea nu este corectă" }, "tooManyRequests": { - "title": "", - "message": "" + "title": "Prea multe solicitări într-un anumit timp", + "message": "Au fost prea multe solicitări. Probabil că aveți o rată limitată sau respinsă de sistemul țintă" } } }, "secrets": { - "title": "", - "lastUpdated": "", + "title": "Secrete", + "lastUpdated": "Ultima actualizare {date}", "notSet": { - "label": "", - "tooltip": "" + "label": "Nicio valoare setată", + "tooltip": "Acest secret necesar nu a fost setat încă" }, - "secureNotice": "", + "secureNotice": "Acest secret nu poate fi regăsit după creare", "reset": { - "title": "", - "message": "" + "title": "Resetare secret", + "message": "Sunteţi sigur că doriţi să resetaţi acest secret?" }, "noSecretsRequired": { - "segmentTitle": "", - "text": "" + "segmentTitle": "Fără secrete", + "text": "Nu sunt necesare secrete pentru această integrare" }, "kind": { "username": { "label": "Utilizator", - "newLabel": "" + "newLabel": "Nume utilizator nou" }, "apiKey": { - "label": "", - "newLabel": "" + "label": "Cheie API", + "newLabel": "Cheie API nouă" }, "password": { "label": "Parola", "newLabel": "Parolă nouă" }, "tokenId": { - "label": "", - "newLabel": "" + "label": "Token ID", + "newLabel": "ID token nou" }, "realm": { - "label": "", - "newLabel": "" + "label": "Tărâm", + "newLabel": "Domeniu nou" }, "personalAccessToken": { - "label": "", - "newLabel": "" + "label": "Token de acces personal", + "newLabel": "Token de acces personal nou" }, "topic": { - "label": "", - "newLabel": "" + "label": "Subiect", + "newLabel": "Subiect nou" }, "url": { - "label": "", - "newLabel": "" + "label": "Url-ul", + "newLabel": "URL nou" }, "opnsenseApiKey": { - "label": "", - "newLabel": "" + "label": "Cheie API (Key)", + "newLabel": "Cheie API nouă (Key)" }, "opnsenseApiSecret": { - "label": "", - "newLabel": "" + "label": "Cheie API (Secret)", + "newLabel": "Cheie API nouă (Secret)" }, "patchmonApiKey": { - "label": "", - "newLabel": "" + "label": "Cheie API", + "newLabel": "Cheie API nouă" }, "patchmonApiSecret": { - "label": "", - "newLabel": "" + "label": "Secret API", + "newLabel": "Secret API nou" }, "githubAppId": { - "label": "", - "newLabel": "" + "label": "Id Aplicație", + "newLabel": "Aplicație nouă ID" }, "githubInstallationId": { - "label": "", - "newLabel": "" + "label": "Id de instalare", + "newLabel": "ID de instalare nou" }, "privateKey": { - "label": "", - "newLabel": "" + "label": "Cheie privată", + "newLabel": "Cheie privată nouă" }, "slug": { "label": "Slug pagină de stare", @@ -1316,9 +1316,9 @@ } }, "permission": { - "use": "", - "interact": "", - "full": "" + "use": "Selectați integrările în elemente", + "interact": "Interacționează cu integrările", + "full": "Acces complet la integrare" }, "audiobookshelf": { "name": "Audiobookshelf", @@ -1330,71 +1330,75 @@ }, "uptimeKuma": { "name": "Uptime Kuma", - "description": "", + "description": "Monitorizare autogăzduită în timpul uptime cu pagini de stare publică", "secret": { "slug": { - "description": "" + "description": "slug din pagina publică de stare. Implicit este \"implicit\" dacă nu este setat." }, "apiKey": { - "description": "" + "description": "Cheie API opțională pentru acces autentificat/metrică" } } }, "traefik": { - "name": "", - "description": "" + "name": "Traefik", + "description": "Convertizorul opus invers proxy și echilibru de încărcare" + }, + "wud": { + "name": "Ce este Docker", + "description": "Monitorizează ce containere Docker au disponibile actualizări ale imaginilor" }, "paperlessNgx": { - "name": "", - "description": "" + "name": "Ngx", + "description": "Sistem de administrare a documentelor pentru arhivarea și organizarea documentelor scanate" }, "patchmon": { - "name": "", - "description": "" + "name": "PatchMon", + "description": "Managementul plasturelui și monitorizarea pentru gazdele Linux" }, "bazarr": { - "name": "", - "description": "" + "name": "Bazarr", + "description": "Aplicaţie de companie pentru Sonarr şi Radarr care gestionează şi descarcă subtitrări" } }, "media": { - "plural": "", - "search": "", + "plural": "Medias", + "search": "Găsește un fișier media", "field": { "name": "Nume", "size": "Mărime", - "creator": "" + "creator": "Creator" }, "action": { "upload": { - "label": "", - "file": "", + "label": "Încarcă media", + "file": "Selectaţi fişierul", "notification": { "success": { - "message": "" + "message": "Fișierele media au fost încărcate cu succes" }, "error": { - "message": "" + "message": "Fișierul media nu a putut fi încărcat" } } }, "delete": { - "label": "", - "description": "", + "label": "Șterge media", + "description": "Sunteţi sigur că doriţi să ştergeţi media ?", "notification": { "success": { - "message": "" + "message": "Fișierul a fost șters cu succes" }, "error": { - "message": "" + "message": "Fișierul media nu a putut fi șters" } } }, "copy": { - "label": "" + "label": "Copiază URL-ul" }, "open": { - "label": "" + "label": "Deschide media" } }, "noResults": { @@ -1402,114 +1406,124 @@ } }, "common": { - "success": "", - "beta": "", + "success": "Succes", + "beta": "Beta", "error": "Eroare", "action": { "add": "Adaugă", "apply": "Aplică", - "backToOverview": "", + "backToOverview": "Înapoi la prezentare generală", "skip": "Omite", - "change": "", + "change": "Schimbă", "create": "Creează", - "createAnother": "", + "createAnother": "Creează și începe din nou", "edit": "Editare", - "import": "", + "import": "Importă", "insert": "Introdu", "remove": "Elimină", "save": "Salvează", "saveChanges": "Salvați schimbările", "cancel": "Anulează", "delete": "Șterge", - "discard": "", - "close": "", + "discard": "Renunțați", + "close": "Inchide", "confirm": "Confirma", - "continue": "", + "continue": "Continuă", "previous": "Anteriorul", "next": "Următorul", - "checkoutDocs": "", - "checkLogs": "", + "checkoutDocs": "Verifică documentația", + "checkLogs": "Verifică jurnalele pentru mai multe detalii", "tryAgain": "Încearcă din nou", - "loading": "", + "loading": "Încărcare", "show": "Arată", "hide": "Ascunde" }, - "here": "", + "here": "aici", "iconPicker": { - "label": "", - "header": "", - "headerLoading": "", - "noResults": "", - "error": "" + "label": "Iconiță URL", + "description": "Căutaţi biblioteca, lipiţi un URL de imagine sau încărcaţi un fişier.", + "header": "Căutare {countIcons} imagini după nume", + "headerLoading": "Căutare imagini după nume", + "clear": "Șterge imaginea", + "uploadImage": "Încarcă imaginea", + "results": "Rezultatele căutării imaginii", + "localImages": "Imaginile tale", + "svgIcons": "Pictograme SVG", + "otherImages": "Alte imagini", + "urlLoading": "Se verifică imaginea…", + "urlReady": "Imaginea este gata de utilizare", + "urlError": "Această imagine nu a putut fi încărcată. Verificați adresa URL și încercați din nou.", + "noResults": "Nicio pictogramă nu se potrivește \"{search}\".", + "error": "Nu s-au putut încărca pictogramele." }, "colorScheme": { "options": { "auto": "Auto", - "light": "", - "dark": "" + "light": "Lumină", + "dark": "Întunecat" } }, "information": { - "min": "", - "max": "", - "days": "", - "hours": "", - "minutes": "" + "min": "Minim", + "max": "Maxim", + "days": "Zile", + "hours": "Ore", + "minutes": "Minute" }, "notification": { "create": { - "success": "", - "error": "" + "success": "Creare reușită", + "error": "Creare eșuată" }, "delete": { - "success": "", - "error": "" + "success": "Ștergere reușită", + "error": "Ștergerea a eșuat" }, "update": { - "success": "", - "error": "" + "success": "Modificări aplicate cu succes", + "error": "Imposibil de aplicat modificările" }, "transfer": { - "success": "", - "error": "" + "success": "Transfer cu succes", + "error": "Transfer eșuat" } }, "multiSelect": { - "placeholder": "" + "placeholder": "Alege una sau mai multe valori" }, "multiText": { - "placeholder": "", - "addLabel": "" + "placeholder": "Adaugă mai multe valori", + "addLabel": "Adaugă {value}" }, "select": { - "placeholder": "", + "placeholder": "Alege valoarea", "badge": { - "recommended": "" + "recommended": "Recomandat" } }, "userAvatar": { "menu": { - "switchToDarkMode": "", - "switchToLightMode": "", - "management": "", - "docker": "", + "switchToDarkMode": "Comutați la modul întunecat", + "switchToLightMode": "Comutați la modul lumină", + "management": "Gestionare", + "docker": "Doctor", "preferences": "Preferințele dvs.", - "logout": "", + "logout": "Deconectare", "login": "Utilizator", - "homeBoard": "", - "loggedOut": "", - "updateAvailable": "" + "homeBoard": "Tabloul de bord", + "loggedOut": "Delogat", + "updateAvailable": "{countUpdates} actualizări disponibile: {tag}" } }, "dangerZone": "Zonă periculoasă", "noResults": "Nici un rezultat găsit", - "unsavedChanges": "", - "servers": "", - "applications": "", - "services": "", + "unsavedChanges": "Ai modificări nesalvate!", + "servers": "Servere", + "applications": "Aplicații", + "services": "Servicii", "preview": { - "show": "", - "hide": "" + "show": "Arată previzualizarea", + "hide": "Ascunde previzualizare" }, "zod": { "errors": { @@ -1519,7 +1533,7 @@ "startsWith": "Acest câmp trebuie să înceapă cu {startsWith}", "endsWith": "Acest câmp trebuie să se termine cu {endsWith}", "includes": "Acest câmp trebuie să includă {includes}", - "invalidEmail": "" + "invalidEmail": "Acest câmp trebuie să fie un e-mail valid" }, "tooSmall": { "string": "Acest câmp trebuie să aibă cel puțin {minimum} caractere", @@ -1530,44 +1544,44 @@ "number": "Acest câmp trebuie să fie mai mic sau egal cu {maximum}" }, "custom": { - "passwordsDoNotMatch": "", - "passwordRequirements": "", - "boardAlreadyExists": "", - "invalidFileType": "", - "invalidFileName": "", - "fileTooLarge": "", - "invalidConfiguration": "", - "groupNameTaken": "" + "passwordsDoNotMatch": "Parolele nu corespund", + "passwordRequirements": "Parola nu îndeplinește cerințele", + "boardAlreadyExists": "O secţiune cu acest nume există deja", + "invalidFileType": "Tip de fișier nevalid, așteptat {expected}", + "invalidFileName": "Nume fișier nevalid", + "fileTooLarge": "Fișierul este prea mare, dimensiunea maximă este {maxSize}", + "invalidConfiguration": "Configurație nevalidă", + "groupNameTaken": "Numele grupului este deja luat" } } }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "km/h", + "milesPerHour": "milă" } } }, "section": { "dynamic": { "action": { - "create": "", - "remove": "" + "create": "Secţiune nouă dinamică", + "remove": "Elimină secţiunea dinamică" }, "option": { "title": { - "label": "" + "label": "Titlu" }, "customCssClasses": { - "label": "" + "label": "Clase css personalizate" }, "borderColor": { - "label": "" + "label": "Culoare chenar" } }, "remove": { - "title": "", - "message": "" + "title": "Elimină secţiunea dinamică", + "message": "Sunteţi sigur că doriţi să ştergeţi această secţiune dinamică? Elementele vor fi mutate în aceeaşi locaţie în secţiunea părinte." } }, "category": { @@ -1577,70 +1591,70 @@ } }, "action": { - "create": "", - "edit": "", - "remove": "", + "create": "Categorie nouă", + "edit": "Redenumire categorie", + "remove": "Elimină categoria", "moveUp": "Mută în sus", "moveDown": "Mută în jos", - "createAbove": "", - "createBelow": "", - "openAllInNewTabs": "" + "createAbove": "Categorie nouă de mai sus", + "createBelow": "Categorie nouă mai jos", + "openAllInNewTabs": "Deschide toate în file" }, "create": { - "title": "", - "submit": "" + "title": "Categorie nouă", + "submit": "Adaugă categorie" }, "remove": { - "title": "", - "message": "" + "title": "Elimină categoria", + "message": "Sigur doriți să eliminați categoria {name}?" }, "edit": { - "title": "", - "submit": "" + "title": "Redenumire categorie", + "submit": "Redenumire categorie" }, "menu": { "label": { - "create": "", + "create": "Categorie nouă", "changePosition": "Schimbă locația", "settings": "Setări" } }, "openAllInNewTabs": { - "title": "", - "text": "" + "title": "Deschide toate în file", + "text": "Unele browsere pot bloca deschiderea în bloc a filelor din motive de securitate. Homarr nu a putut deschide toate ferestrele, deoarece browserul dvs. a blocat această acțiune. Permiteți \"Deschideți ferestrele pop-up\" și reîncercați." } } }, "item": { "action": { - "create": "", - "import": "", - "edit": "", - "moveResize": "", - "duplicate": "", - "remove": "" + "create": "Element nou", + "import": "Importă articol", + "edit": "Editare articol", + "moveResize": "Mutare / redimensionare element", + "duplicate": "Element duplicat", + "remove": "Elimină element" }, "menu": { "label": { "settings": "Setări", - "refresh": "", - "options": "", - "actions": "" + "refresh": "Împrospătează", + "options": "Opţiuni", + "actions": "Acțiuni" }, "status": { - "success": "", - "error": "", - "loading": "", - "idle": "" + "success": "Ok", + "error": "Eroare", + "loading": "Încărcare", + "idle": "Inactiv" } }, "create": { - "title": "", - "search": "", - "addToBoard": "" + "title": "Alege elementul de adăugat", + "search": "Elemente filtru", + "addToBoard": "Adaugă la bord" }, "moveResize": { - "title": "", + "title": "Mutare / redimensionare element", "field": { "width": { "label": "Lățime" @@ -1649,15 +1663,15 @@ "label": "Înălțime" }, "xOffset": { - "label": "" + "label": "Decalaj X" }, "yOffset": { - "label": "" + "label": "Decalaj Y" } } }, "edit": { - "title": "", + "title": "Editare articol", "tab": { "widget": "Editează widget-ul", "app": "Editează aplicația" @@ -1666,85 +1680,85 @@ "propagationNotice": "Modificările acestei aplicații se vor aplica în toate locurile unde este utilizată pe toate planșele." }, "advancedOptions": { - "label": "", - "title": "" + "label": "Opțiuni avansate", + "title": "Opțiuni avansate ale articolului" }, "field": { "integrations": { - "label": "" + "label": "Integrări" }, "title": { - "label": "" + "label": "Titlu" }, "customCssClasses": { - "label": "" + "label": "Clase css personalizate" }, "borderColor": { - "label": "" + "label": "Culoare chenar" } } }, "remove": { - "title": "", - "message": "" + "title": "Elimină element", + "message": "Sunteţi sigur că doriţi să ştergeţi acest element?" } }, "widget": { "integrationSelect": { - "configureIntegrationFirst": "", - "loading": "", - "placeholder": "", - "noResults": "", - "loadError": "" + "configureIntegrationFirst": "Conectați mai întâi o integrare", + "loading": "Încărcare...", + "placeholder": "Selectați o opțiune", + "noResults": "Nici un rezultat găsit", + "loadError": "Încărcarea opțiunilor a eșuat" }, "app": { - "name": "", - "description": "", + "name": "Aplicație", + "description": "Încorporează o aplicație în tablă.", "option": { "appId": { - "label": "" + "label": "Alegeți aplicația" }, "openInNewTab": { "label": "Deschideți într-o pagină nouă" }, "showTitle": { - "label": "" + "label": "Arată numele aplicației" }, "pingEnabled": { - "label": "" + "label": "Activează verificarea stării" }, "layout": { - "label": "", + "label": "Aspect", "option": { - "row": "", - "row-reverse": "", - "column": "", - "column-reverse": "" + "row": "Orizontal", + "row-reverse": "Orizontal (inversat)", + "column": "Verticală", + "column-reverse": "Vertical (inversat)" } }, "descriptionDisplayMode": { - "label": "", - "description": "", + "label": "Modul de afişare descriere", + "description": "Alegeți cum se afișează descrierea aplicației", "option": { - "normal": "", - "tooltip": "", - "hidden": "" + "normal": "În cadrul widget-ului", + "tooltip": "Ca pont de unelte", + "hidden": "Hidden" } } }, "error": { "notFound": { - "label": "", - "tooltip": "" + "label": "Nicio aplicație", + "tooltip": "Nu ai selectat nicio aplicație validă" } } }, "bookmarks": { - "name": "", - "description": "", + "name": "Marcaje", + "description": "Afișează mai multe link-uri între aplicații", "option": { "title": { - "label": "" + "label": "Titlu" }, "layout": { "label": "Aspect", @@ -1753,49 +1767,81 @@ "label": "Orizontal" }, "column": { - "label": "" + "label": "Verticală" }, "grid": { - "label": "" + "label": "Grilă" }, "gridHorizontal": { - "label": "" + "label": "Grilă orizontală" } } }, "hideTitle": { - "label": "" + "label": "Ascunde titlul" }, "hideIcon": { - "label": "" + "label": "Ascunde pictograme" }, "hideHostname": { - "label": "" + "label": "Ascunde numele gazdei" }, "openNewTab": { - "label": "" + "label": "Deschide într-o filă nouă" }, "withBorder": { "label": "Arată chenarul" }, "items": { - "label": "", - "add": "" + "label": "Marcaje", + "add": "Adaugă marcaj" } } }, "archiveTeamWarrior": { - "name": "", - "description": "", + "name": "Războinic de arhivă", + "description": "Monitorizeaza statutul de \"ArchiveTeam Warrior\", proiecte si munca de arhivare activa.", "option": { "showBroadcastMessage": { - "label": "" + "label": "Arată mesajele de difuzare" + } + } + }, + "wud": { + "name": "Ce este Docker", + "description": "Arată câte containere vizionate au actualizări disponibile.", + "title": "Ce este Docker", + "monitored": "Monitorizat", + "updatesAvailable": "{count, plural, one {# actualizare disponibilă} other {# actualizări disponibile}}", + "updateAvailable": "Actualizare disponibilă", + "openReleaseNotes": "Deschide notele de lansare", + "option": { + "showTitle": { + "label": "Afișare titlu" + }, + "showRing": { + "label": "Arată inel de actualizare" + }, + "layout": { + "label": "Aspect", + "option": { + "horizontal": { + "label": "Orizontal" + }, + "vertical": { + "label": "Verticală" + } + } + }, + "showUpdateList": { + "label": "Arată lista de actualizări containere", + "description": "Listează fiecare container monitorizat care are o actualizare a imaginii disponibilă" } } }, "dnsHoleSummary": { - "name": "", - "description": "", + "name": "Sumar de gură DNS", + "description": "Afişează rezumatul cutiei DNS", "option": { "layout": { "label": "Aspect", @@ -1804,31 +1850,31 @@ "label": "Orizontal" }, "column": { - "label": "" + "label": "Verticală" }, "grid": { - "label": "" + "label": "Grilă" } } }, "usePiHoleColors": { - "label": "" + "label": "Folosește culori Pi-Hole" } }, "error": { - "internalServerError": "", - "integrationsDisconnected": "" + "internalServerError": "Nu s-a reușit preluarea sumarului de cache DNS", + "integrationsDisconnected": "Nu există date disponibile, toate integrările sunt deconectate" }, "data": { "adsBlockedToday": "Blocate astăzi", "adsBlockedTodayPercentage": "Blocate astăzi", "dnsQueriesToday": "Interogări astăzi", - "domainsBeingBlocked": "" + "domainsBeingBlocked": "Domenii pe lista de blocare" }, - "domainsTooltip": "" + "domainsTooltip": "Din cauza integrărilor multiple, Homarr nu poate calcula numărul exact de domenii blocate" }, "dnsHoleControls": { - "name": "", + "name": "Controale DNS", "description": "Controlați PiHole sau AdGuard din planșa dvs.", "option": { "layout": { @@ -1838,122 +1884,122 @@ "label": "Orizontal" }, "column": { - "label": "" + "label": "Verticală" }, "grid": { - "label": "" + "label": "Grilă" } } }, "showToggleAllButtons": { - "label": "" + "label": "Arată/dezactivează toate butoanele" } }, "error": { - "internalServerError": "" + "internalServerError": "Nu a reușit să controleze golul DNS" }, "controls": { - "enableAll": "", - "disableAll": "", - "setTimer": "", - "set": "", + "enableAll": "Activează toate", + "disableAll": "Dezactivează toate", + "setTimer": "Setează temporizator", + "set": "Setează", "enabled": "Activat", "disabled": "Dezactivat", - "processing": "", - "disconnected": "", - "hours": "", - "minutes": "", - "unlimited": "" + "processing": "Prelucrare", + "disconnected": "Deconectat", + "hours": "Ore", + "minutes": "Minute", + "unlimited": "Lăsați necompletat pentru a fi nelimitat" } }, "clock": { - "name": "", + "name": "Data și ora", "description": "Afișează data și ora curentă.", "option": { "customTitleToggle": { - "label": "", - "description": "" + "label": "Afișare personalizată Titlu/Oraș", + "description": "Arată un titlu personalizat sau numele orașului/țării deasupra ceasului." }, "customTitle": { - "label": "" + "label": "Titlu" }, "is24HourFormat": { - "label": "", - "description": "" + "label": "Format 24 ore", + "description": "Folosiți formatul 24 de ore în loc de formatul de 12 ore" }, "showSeconds": { - "label": "" + "label": "Afişare secunde" }, "useCustomTimezone": { - "label": "" + "label": "Folosește un fus orar fix" }, "timezone": { "label": "Fus orar", - "description": "" + "description": "Alege fusul orar urmând standardul IANA" }, "showDate": { - "label": "" + "label": "Arată data" }, "dateFormat": { - "label": "", - "description": "" + "label": "Formatul datei", + "description": "Cum ar trebui să arate data" }, "customTimeFormat": { - "label": "", - "description": "" + "label": "Format personalizat al orei", + "description": "Utilizați ISO 8601 pentru a formata timpul (aceasta va suprascrie alte opțiuni)" }, "customDateFormat": { - "label": "", - "description": "" + "label": "Format personalizat pentru dată", + "description": "Utilizați ISO 8601 pentru a formata data (aceasta va suprascrie alte opțiuni)" }, "showWeather": { - "label": "", - "description": "" + "label": "Arată vremea", + "description": "Afișează o mică pictogramă meteo animată și o temperatură în colțul cardului" }, "weatherLocation": { - "label": "" + "label": "Locație meteo" }, "isWeatherFormatFahrenheit": { - "label": "" + "label": "Use Fahrenheit" } } }, "minecraftServerStatus": { - "name": "", - "description": "", + "name": "Stare server Minecraft", + "description": "Afișează starea unui server Minecraft", "option": { "title": { - "label": "" + "label": "Titlu" }, "domain": { - "label": "" + "label": "Adresa serverului" }, "isBedrockServer": { - "label": "" + "label": "Serverul Bedrock" } }, "status": { - "online": "", - "offline": "" + "online": "Online", + "offline": "Offline" } }, "timetable": { - "name": "", - "description": "", - "title": "", - "noStation": "", + "name": "Calendar", + "description": "Afişează orele de plecare pentru o staţie", + "title": "Departamente {station}", + "noStation": "Nicio stație selectată", "option": { "baseUrl": { - "label": "" + "label": "URL cautare.ch" }, "station": { - "label": "" + "label": "Stație" } } }, "notebook": { "name": "Agendă", - "description": "", + "description": "Un widget simplu pentru notebook care acceptă markdown", "option": { "showToolbar": { "label": "Arată bara de instrumente pentru a te ajuta să notezi în tip markdown" @@ -1976,8 +2022,8 @@ "clear": "Curăță formatul", "heading": "Rubrica {level}", "align": "Așezați textul: {position}", - "directionLtr": "", - "directionRtl": "", + "directionLtr": "Setează direcția textului de la stânga la dreapta", + "directionRtl": "Setează direcția textului de la dreapta la stânga", "blockquote": "Citat", "horizontalLine": "Linie orizontală", "bulletList": "Listă cu puncte", @@ -1985,7 +2031,7 @@ "checkList": "Lista de verificare cu bifă", "increaseIndent": "Mărește spațierea", "decreaseIndent": "Scade spațierea", - "link": "", + "link": "Link-ul", "unlink": "Șterge link-ul", "image": "Încorporează imagine", "addTable": "Adaugă tabelă", @@ -2013,46 +2059,46 @@ "width": "Lățime", "height": "Înălțime" }, - "placeholder": "", + "placeholder": "Începe să scrii notițele", "dismiss": { - "title": "", - "message": "", + "title": "Renunțați la modificări?", + "message": "Aveți modificări nesalvate în caietul dvs. de observații. Sigur doriți să renunțați la ele?", "action": { - "discard": "", - "keepEditing": "" + "discard": "Renunță la modificări", + "keepEditing": "Continuă editarea" } } }, "anchorNote": { - "name": "", - "description": "", + "name": "Notă Ancoră", + "description": "Afişează o notă selectată din Anchor", "option": { "noteId": { - "label": "" + "label": "Notă" }, "showTitle": { - "label": "" + "label": "Afișare titlu" }, "showUpdatedAt": { - "label": "" + "label": "Arată ultima actualizare" } }, - "empty": "", - "emptyContent": "", - "notFound": "", - "noNotes": "", - "integrationRequired": "", - "updatedAt": "", - "untitled": "", - "edit": "", - "save": "", - "cancel": "", - "readOnlyViewer": "", - "saveForbidden": "", - "saveFailed": "" + "empty": "Selectați o notă de afișat", + "emptyContent": "Această notă nu are conținut", + "notFound": "Notă negăsită", + "noNotes": "Nici o notă găsită", + "integrationRequired": "Selectați mai întâi o integrare Anchor", + "updatedAt": "Actualizat {date}", + "untitled": "Fără titlu", + "edit": "Editare", + "save": "Salvează", + "cancel": "Anulează", + "readOnlyViewer": "Aveţi acces la această notă. Editarea este dezactivată.", + "saveForbidden": "Nu aveţi permisiunea de a edita această notă.", + "saveFailed": "Salvarea acestei note a eșuat. Te rugăm să încerci din nou." }, "iframe": { - "name": "", + "name": "iFrame", "description": "Încorporați orice conținut de pe internet. Unele site-uri web pot restricționa accesul.", "option": { "embedUrl": { @@ -2083,36 +2129,36 @@ "label": "Permiteți geolocalizarea" }, "allowModals": { - "label": "" + "label": "Permite modale" } }, "error": { - "noUrl": "", - "unsupportedProtocol": "", + "noUrl": "Nici un iFrame URL furnizat", + "unsupportedProtocol": "URL-ul furnizat folosește un protocol neacceptat. Vă rugăm să folosiți unul dintre ({supportedProtocols})", "noBrowerSupport": "Browser-ul tău nu acceptă iFrames. Te rugăm să actualizezi browser-ul." } }, "smartHome-entityState": { - "name": "", - "description": "", + "name": "Statul Entității", + "description": "Afișează starea unei entități și comută opțional", "option": { "entityId": { "label": "Identificator entitate" }, "displayName": { - "label": "" + "label": "Nume afisare" }, "entityUnit": { - "label": "" + "label": "Unitate entitate" }, "clickable": { - "label": "" + "label": "Clickable" } } }, "smartHome-executeAutomation": { - "name": "", - "description": "", + "name": "Execută Automatizarea", + "description": "Declanșează o automatizare cu un singur clic", "option": { "displayName": { "label": "Nume afișat" @@ -2122,108 +2168,108 @@ } }, "spotlightAction": { - "run": "" + "run": "Rulează {name}" } }, "stockPrice": { - "name": "", - "description": "", + "name": "Preț stoc", + "description": "Afiseaza pretul curent al actiunii unei companii", "option": { "stock": { - "label": "" + "label": "Simbol stoc" }, "timeRange": { - "label": "", + "label": "Interval de timp", "option": { "1d": { - "label": "" + "label": "1 zi" }, "5d": { - "label": "" + "label": "5 zile" }, "1mo": { - "label": "" + "label": "1 lună" }, "3mo": { - "label": "" + "label": "3 luni" }, "6mo": { - "label": "" + "label": "6 luni" }, "ytd": { - "label": "" + "label": "An la data" }, "1y": { - "label": "" + "label": "1 an" }, "2y": { - "label": "" + "label": "2 ani" }, "5y": { - "label": "" + "label": "5 ani" }, "10y": { - "label": "" + "label": "10 ani" }, "max": { - "label": "" + "label": "Maxim" } } }, "timeInterval": { - "label": "", + "label": "Interval de timp", "option": { "5m": { - "label": "" + "label": "5 minute" }, "15m": { - "label": "" + "label": "15 minute" }, "30m": { - "label": "" + "label": "30 de minute" }, "1h": { - "label": "" + "label": "1 oră" }, "1d": { - "label": "" + "label": "1 zi" }, "5d": { - "label": "" + "label": "5 zile" }, "1wk": { - "label": "" + "label": "1 săptămână" }, "1mo": { - "label": "" + "label": "1 lună" } } } } }, "calendar": { - "name": "", - "description": "", + "name": "Calendar", + "description": "Afișează evenimentele din integrările într-un calendar într-o anumită perioadă de timp relativă", "duration": { - "allDay": "" + "allDay": "Toată ziua" }, "option": { "releaseType": { "label": "Tip de evenimente ale Radarr", "options": { - "inCinemas": "", - "digitalRelease": "", - "physicalRelease": "" + "inCinemas": "În cinematografe", + "digitalRelease": "Lansare digitală", + "physicalRelease": "Lansare fizică" } }, "filterPastMonths": { - "label": "" + "label": "Pornire de la" }, "filterFutureMonths": { - "label": "" + "label": "Sfârșit la" }, "showUnmonitored": { - "label": "" + "label": "Arată nesupravegheate" } } }, @@ -2232,43 +2278,43 @@ "description": "Afișează informațiile meteo curente ale unei locații stabilite.", "option": { "isFormatFahrenheit": { - "label": "" + "label": "Temperatură în Fahrenheit" }, "disableTemperatureDecimals": { - "label": "" + "label": "Dezactivează zecimalele de temperatură" }, "showCurrentWindSpeed": { - "label": "", - "description": "" + "label": "Arată viteza vântului curentă", + "description": "Doar pe vremea curentă" }, "useImperialSpeed": { - "label": "" + "label": "Folosește mila pentru viteza vântului" }, "location": { "label": "Locație meteo" }, "showCity": { - "label": "" + "label": "Arată orașul" }, "hasForecast": { - "label": "" + "label": "Arată prognoza" }, "forecastDayCount": { - "label": "", - "description": "" + "label": "Cantitatea de zile prognozate", + "description": "Când widget-ul nu este suficient de larg, sunt afișate mai puține zile" }, "dateFormat": { - "label": "", - "description": "" + "label": "Formatul datei", + "description": "Cum ar trebui să arate data" } }, - "currentWindSpeed": "", + "currentWindSpeed": "{currentWindSpeed} {unit}", "dailyForecast": { - "sunrise": "", - "sunset": "", - "maxWindSpeed": "", - "maxWindGusts": "", - "humidity": "" + "sunrise": "Răsărit", + "sunset": "Amortizor", + "maxWindSpeed": "Viteza maximă a vântului: {maxWindSpeed} {unit}", + "maxWindGusts": "Buze maxime de vânt: {maxWindGusts} {unit}", + "humidity": "Umiditate: {humidity}" }, "kind": { "clear": "Senin", @@ -2289,24 +2335,24 @@ }, "indexerManager": { "name": "Starea managerului de clasificare", - "description": "", + "description": "Starea indexurilor tale", "option": { "openIndexerSiteInNewTab": { - "label": "" + "label": "Deschide site-ul de indexare într-o filă nouă" } }, "title": "Manager de clasificare", "testAll": "Verifică toate", "error": { - "internalServerError": "" + "internalServerError": "Nu s-a reușit preluarea stării de indexare" } }, "healthMonitoring": { "name": "Monitorizarea sănătății sistemului", "description": "Afișează informații care arată starea de sănătate și statistica sistemului (sistemelor) dumneavoastră.", "tab": { - "system": "", - "cluster": "" + "system": "Sistem", + "cluster": "Grup" }, "option": { "fahrenheit": { @@ -2319,169 +2365,169 @@ "label": "Afișare informații memorie" }, "gpu": { - "label": "" + "label": "Afișare informații GPU" }, "showUptime": { - "label": "" + "label": "Arată Uptime" }, "fileSystem": { "label": "Afișare informații despre sistemul de fișiere" }, "visibleStorageVolumes": { - "label": "", - "description": "", - "placeholder": "" + "label": "Volumele de stocare vizibile", + "description": "Disponibil numai atunci când toate integrările selectate sunt sincronizate. Lăsați gol pentru a afișa toate volumele de stocare detectate.", + "placeholder": "Selectați volumele de stocare" }, "defaultTab": { - "label": "" + "label": "Default tab" }, "visibleClusterSections": { - "label": "" + "label": "Secţiuni vizibile de cluster" }, "sectionIndicatorRequirement": { - "label": "" + "label": "Cerința privind indicatorul de secțiune" } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", - "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", + "information": "Informare", + "processor": "Procesor: {cpuModelName}", + "memory": "Memory: {memory}GiB", + "memoryAvailable": "Disponibil: {memoryAvailable}GiB ({percent}%)", + "version": "Versiune: {version}", + "uptime": "Uptime: {months} Luni, {days} Zile, {hours} ore, {minutes} Minute", + "loadAverage": "Media încărcării:", + "minute": "1 minut", + "minutes": "{count} minute", + "used": "Utilizat", "available": "Disponibil", - "lastSeen": "" + "lastSeen": "Ultima actualizare: {lastSeen}" }, "memory": {}, "error": { - "internalServerError": "" + "internalServerError": "Preluarea stării de sănătate nu a reușit" }, "cluster": { "summary": { - "cpu": "", - "memory": "" + "cpu": "procesor", + "memory": "RAM" }, "resource": { "node": { - "name": "" + "name": "Nodes" }, "qemu": { - "name": "" + "name": "VMs" }, "lxc": { - "name": "" + "name": "LXC" }, "storage": { - "name": "" + "name": "Depozitare" } }, "popover": { "rightSection": { - "node": "", - "vmId": "", - "plugin": "" + "node": "Nod", + "vmId": "VM ID", + "plugin": "Plugin" }, "detail": { - "cpu": "", - "memory": "", - "storage": "", - "uptime": "", - "haState": "", + "cpu": "Cores", + "memory": "Memorie", + "storage": "Depozitare", + "uptime": "Uptime", + "haState": "Stat HA", "storageType": { - "local": "", - "shared": "" + "local": "Stocare locală", + "shared": "Stocare partajată" } } }, "table": { "header": { - "name": "", - "cpu": "", - "memory": "", - "node": "" + "name": "Nume", + "cpu": "procesor", + "memory": "RAM", + "node": "Nod" } } } }, "dockerContainers": { - "name": "", - "description": "", + "name": "Statistici Docker", + "description": "Statistici containere (acest widget poate fi adăugat doar cu drepturi de administrator)", "option": { "columns": { - "label": "" + "label": "Coloane de afișat" }, "enableRowSorting": { - "label": "" + "label": "Activează sortarea articolelor" }, "defaultSort": { - "label": "", + "label": "Coloana folosită pentru sortare în mod implicit", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Nume", + "state": "Județ", + "cpuUsage": "Utilizare CPU", + "memoryUsage": "Utilizare memorie" } }, "descendingDefaultSort": { - "label": "" + "label": "Inversează sortarea" }, "columnOrder": { - "label": "" + "label": "Ordinea coloanei" }, "columnWidths": { - "label": "" + "label": "Lățime coloană" } }, "error": { - "internalServerError": "", - "layoutSaveTitle": "", - "layoutSaveMessage": "" + "internalServerError": "Nu s-a reușit preluarea statisticilor containerelor", + "layoutSaveTitle": "Structura tabelelor nu a fost salvată", + "layoutSaveMessage": "Structura tabelului Docker nu a putut fi salvată. Încercați să vă mutați sau să redimensionați coloana din nou." }, "empty": { - "noContainers": "" + "noContainers": "Nici un container găsit" } }, "coolify": { - "name": "", - "description": "", + "name": "Coolify", + "description": "Prezentare generală a instanței tale Coolify cu servere și aplicații", "option": { "showServers": { - "label": "" + "label": "Arată serverele" }, "showApplications": { - "label": "" + "label": "Arată aplicațiile" }, "showServices": { - "label": "" + "label": "Afișare servicii" } }, "empty": { - "servers": "", - "applications": "", - "services": "" + "servers": "Niciun server găsit", + "applications": "Nicio aplicație găsită", + "services": "Nici un serviciu găsit" }, "footer": { - "updated": "" + "updated": "Actualizat {when}" }, "error": { - "noIntegration": "", - "internalServerError": "" + "noIntegration": "Nicio integrare Coolify configurată", + "internalServerError": "Esuare preluare date Coolify" }, "server": { - "buildServer": "" + "buildServer": "Construire" }, "instances": { - "title": "" + "title": "Instanțe" } }, "vpn": { - "name": "", - "description": "", - "serviceUnavailable": "", + "name": "VPN", + "description": "Prezentare generală a conexiunilor VPN", + "serviceUnavailable": "VPN indisponibil", "option": {} }, "ups": { @@ -2516,85 +2562,85 @@ } }, "tracearr": { - "name": "", - "description": "", + "name": "Tracearr", + "description": "Monitorizare îmbunătățită a serverului media cu flux detaliat și date de transcodare", "option": { "showStreams": { - "label": "" + "label": "Arată stream-uri active" }, "showStats": { - "label": "" + "label": "Arată sumarul statisticilor" }, "showRecentActivity": { - "label": "" + "label": "Arată activitatea recentă" }, "showViolations": { - "label": "" + "label": "Arată încălcări" } }, "stats": { - "activeStreams": "", - "totalUsers": "", - "transcodes": "", - "bandwidth": "" + "activeStreams": "Stream-uri active", + "totalUsers": "Total utilizatori", + "transcodes": "Transcoduri", + "bandwidth": "Lățimea benzii" }, "streams": { - "empty": "", - "user": "", - "media": "", - "state": "", - "quality": "", - "device": "", - "progress": "", + "empty": "Nici un flux activ", + "user": "Utilizator", + "media": "Media", + "state": "Județ", + "quality": "Calitate", + "device": "Dispozitiv", + "progress": "Progresul", "videoDecision": { - "directPlay": "", - "transcode": "", - "directStream": "" + "directPlay": "Redare directă", + "transcode": "Transcodare", + "directStream": "direct stream" } }, "recentActivity": { - "title": "", - "empty": "", - "watched": "", - "partial": "" + "title": "Activitate recentă", + "empty": "Nicio activitate recentă", + "watched": "Vizionat", + "partial": "Parţial" }, "violations": { - "title": "", - "empty": "", - "rule": "", - "user": "" + "title": "Incalcari", + "empty": "Nicio încălcare recentă", + "rule": "Regulă", + "user": "Utilizator" }, - "noSectionsEnabled": "", + "noSectionsEnabled": "Nicio secțiune activată", "error": { - "noIntegration": "", - "internalServerError": "" + "noIntegration": "Nici o integrare Tracearr configurată", + "internalServerError": "Nu s-au putut obţine datele Tracearr" } }, "umami": { - "name": "", - "description": "", - "visitors": "", - "active": "", - "pageviews": "", - "visits": "", - "bounceRate": "", - "avgDuration": "", + "name": "Analize Umami", + "description": "Afişează statisticile vizitatorilor din instanţa dumneavoastră de analiză Umami", + "visitors": "vizitatori", + "active": "activ", + "pageviews": "pageview-uri", + "visits": "vizite", + "bounceRate": "saritura", + "avgDuration": "medie", "option": { "websiteId": { - "label": "", - "description": "", - "placeholder": "", - "loading": "", - "noWebsites": "", - "configureIntegrationFirst": "" + "label": "Website", + "description": "Selectați un site urmărit de instanța dvs. Umami", + "placeholder": "Selectaţi un site", + "loading": "Se încarcă site-urile...", + "noWebsites": "Nici un website găsit", + "configureIntegrationFirst": "Conectați mai întâi integrarea Umami" }, "timeFrame": { - "label": "", - "description": "", + "label": "Interval de timp", + "description": "Perioada de timp pentru afișarea datelor vizitatorilor pentru", "option": { - "today": "", - "24h": "", - "7d": "", + "today": "Astăzi", + "24h": "Ultimele 24 de ore", + "7d": "Ultimele 7 zile", "30d": "Ultimele 30 de zile", "month": "Luna aceasta", "lastMonth": "Luna trecută" @@ -2670,21 +2716,21 @@ }, "common": { "location": { - "query": "", - "latitude": "", - "longitude": "", - "disabledTooltip": "", - "unknownLocation": "", + "query": "Oraș / Cod poștal", + "latitude": "Latitudine", + "longitude": "Longitudine", + "disabledTooltip": "Vă rugăm să introduceți un oraș sau un cod poștal", + "unknownLocation": "Locație necunoscută", "search": "Caută", "table": { "header": { - "city": "", - "country": "", - "coordinates": "", - "population": "" + "city": "Oraș", + "country": "Țară", + "coordinates": "Coordonate", + "population": "Populație" }, "action": { - "select": "" + "select": "Selectați {city}, {countryCode}" }, "population": { "fallback": "Necunoscut" @@ -2692,17 +2738,17 @@ } }, "integration": { - "noData": "", - "description": "" + "noData": "Nicio integrare găsită", + "description": "Apăsați pentru a crea o nouă integrare" }, "app": { - "noData": "", - "description": "", - "quickCreate": "" + "noData": "Nicio aplicație găsită", + "description": "Apăsați pentru a crea o aplicație nouă", + "quickCreate": "Creează o aplicație pe zbor" }, "error": { - "noIntegration": "", - "noData": "" + "noIntegration": "Nicio integrare selectată", + "noData": "Nu sunt disponibile date privind integrarea" }, "option": {} }, @@ -2715,477 +2761,477 @@ }, "hasAutoPlay": { "label": "Redare automată", - "description": "" + "description": "Auto-redarea funcționează doar când este dezactivată din cauza restricțiilor browser-ului" }, "isMuted": { - "label": "" + "label": "Dezactivat" }, "hasControls": { - "label": "" + "label": "Arată comenzile" } }, "error": { - "noUrl": "", - "forYoutubeUseIframe": "" + "noUrl": "Nici un URL video furnizat", + "forYoutubeUseIframe": "Pentru videoclipurile de pe YouTube folosește opțiunea iframe" } }, "mediaServer": { - "name": "", - "description": "", + "name": "Media server stream-uri curente", + "description": "Arată stream-urile curente pe serverele media", "option": { "showOnlyPlaying": { - "label": "", - "description": "" + "label": "Arată doar redarea curentă", + "description": "Dezactivarea acestei opțiuni nu va funcționa pentru plex" }, "showBitrate": { - "label": "", - "description": "" + "label": "Arată bitrate", + "description": "Arată rata de biți a redării curente lângă locație" }, "showLocation": { - "label": "", - "description": "" + "label": "Arată locația", + "description": "Arată dacă fluxul este pe LAN sau WAN" } }, "footer": { - "streams": "", - "totalBitrate": "" + "streams": "{count, plural, one {# flux activ} other {# fluxuri active}}", + "totalBitrate": "Total: {bitrate}" }, "items": { - "currentlyPlaying": "", - "user": "", - "name": "", - "id": "", - "status": "", - "directPlay": "", - "directStream": "", - "transcodeVideo": "", - "transcodeAudio": "", - "transcoding": "", - "paused": "", - "remaining": "", + "currentlyPlaying": "Se redă în prezent", + "user": "Utilizator", + "name": "Nume", + "id": "Id", + "status": "Status", + "directPlay": "Redare directă", + "directStream": "Flux direct", + "transcodeVideo": "Transcodare video", + "transcodeAudio": "Transcodare audio", + "transcoding": "Transcodare", + "paused": "Pauză", + "remaining": "{minutes} min rămas", "metadata": { - "title": "", + "title": "Statistici pentru nervi", "video": { - "title": "", - "resolution": "" + "title": "Video", + "resolution": "Rezoluție" }, "audio": { - "title": "", - "channelCount": "", - "codec": "" + "title": "Audio", + "channelCount": "Canale audio", + "codec": "Codecul audio" }, "transcoding": { - "title": "", - "container": "", - "resolution": "", - "target": "" + "title": "Transcodare", + "container": "Recipient", + "resolution": "Rezoluție", + "target": "Target codec" } } } }, "paperlessNgx": { - "name": "", - "description": "", - "documentsTotal": "", - "documentsInbox": "", - "correspondents": "", - "tags": "", - "documentTypes": "", - "inboxRatio": "", - "inbox": "", - "total": "", + "name": "Ngx", + "description": "Prezentare generală a arhivei tale de documente pe suport de hârtie", + "documentsTotal": "Total documente", + "documentsInbox": "Mesaje", + "correspondents": "Corespondenți", + "tags": "Etichete", + "documentTypes": "Tipuri de documente", + "inboxRatio": "Raportul Inbox", + "inbox": "primite", + "total": "total", "option": { "showInboxRatio": { - "label": "", - "description": "" + "label": "Afișare raport mesaje primite", + "description": "Afișează raportul inbox-la-total al documentului în secțiunea Erou" }, "showInboxRing": { - "label": "", - "description": "" + "label": "Arată inelul primite", + "description": "Afișează un inel de progres alături de raportul de inbox" }, "showDocumentsTotal": { - "label": "", - "description": "" + "label": "Afișare documente totale", + "description": "Arată numărul total de documente în arhiva ta" }, "showDocumentsInbox": { - "label": "", - "description": "" + "label": "Arată numărul de mesaje", + "description": "Arată numărul de documente neprocesate în căsuța poștală" }, "showCorrespondents": { - "label": "", - "description": "" + "label": "Arată corespondenții", + "description": "Arată numărul total de corespondenți" }, "showTags": { - "label": "", - "description": "" + "label": "Afișare etichete", + "description": "Arată numărul total de etichete" }, "showDocumentTypes": { - "label": "", - "description": "" + "label": "Afișare tipuri de documente", + "description": "Arată numărul total de tipuri de documente" } }, "error": { - "internalServerError": "" + "internalServerError": "Nu s-a reușit preluarea datelor din Paperess-ngx" } }, "patchmon": { - "name": "", - "description": "", - "title": "", - "totalHosts": "", - "hostsNeedingUpdates": "", - "securityUpdates": "", - "upToDateHosts": "", - "hostsWithSecurityUpdates": "", - "recentUpdates24h": "", - "totalOutdatedPackages": "", - "totalRepos": "", - "osDistribution": "", - "compliance": "", - "complianceRatio": "", - "lastUpdated": "", + "name": "PatchMon", + "description": "Prezentare generală a stării plasturelui gazdă de la PatchMon", + "title": "Statistici PatchMon", + "totalHosts": "Total gazde", + "hostsNeedingUpdates": "Necesită actualizări", + "securityUpdates": "Actualizări de securitate", + "upToDateHosts": "Gazde la Up-to-Date", + "hostsWithSecurityUpdates": "Gazde cu Actualizări de Securitate", + "recentUpdates24h": "Actualizări (24h)", + "totalOutdatedPackages": "Pachete învechite", + "totalRepos": "Repertorii", + "osDistribution": "Distribuție OS", + "compliance": "Conformitatea patch-ului", + "complianceRatio": "{upToDate} / {total}", + "lastUpdated": "Actualizat {time}", "option": { "showTotalHosts": { - "label": "", - "description": "" + "label": "Arată numărul total de gazde", + "description": "Afișează numărul total de gazde monitorizate" }, "showHostsNeedingUpdates": { - "label": "", - "description": "" + "label": "Arată gazdele care necesită actualizări", + "description": "Afişează gazdele cu cel puţin un pachet învechit" }, "showSecurityUpdates": { - "label": "", - "description": "" + "label": "Arată actualizări de securitate", + "description": "Afișează numărul total de actualizări de securitate disponibile" }, "showUpToDateHosts": { - "label": "", - "description": "" + "label": "Arată gazdele actualizate", + "description": "Afişare host-uri cu pachete învechite zero" }, "showHostsWithSecurityUpdates": { - "label": "", - "description": "" + "label": "Arată gazdele cu actualizări de securitate", + "description": "Afişare gazde care necesită patch-uri de securitate" }, "showRecentUpdates24h": { - "label": "", - "description": "" + "label": "Arată actualizări recente (24h)", + "description": "Afișează numărul de actualizări aplicate în ultimele 24 de ore" }, "showTotalOutdatedPackages": { - "label": "", - "description": "" + "label": "Arată pachetele învechite", + "description": "Afișează numărul total de pachete învechite pe toate gazdele" }, "showTotalRepos": { - "label": "", - "description": "" + "label": "Arată depozitele", + "description": "Afișează numărul de depozite active monitorizate" }, "enableThresholdColors": { - "label": "", - "description": "" + "label": "Activează culorile pragurilor", + "description": "Valori de culoare stat verde, galben, sau roșu, pe baza presetărilor cu severitate" }, "useCustomThresholds": { - "label": "", - "description": "" + "label": "Praguri avansate", + "description": "Personalizați avertismentul și pragurile critice per stat, utilizând numărul absolut sau procentajele din totalul gazdelor" }, "thresholdMode": { "option": { - "absolute": "", - "percent": "" + "absolute": "Număr absolut", + "percent": "Procent din totalul gazdelor" } }, "hostsNeedingUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Necesită actualizări prag", + "description": "Compară numărul de actualizări ale nevoilor ca valoare absolută sau procent din totalul gazde" }, "hostsNeedingUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Necesită un prag de avertizare pentru actualizări", + "description": "Introduceți galben când valoarea atinge acest prag" }, "hostsNeedingUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Necesită un prag critic pentru actualizări", + "description": "Introduceți roșu când valoarea atinge acest prag" }, "securityUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Modul de actualizare de securitate", + "description": "Compară numărul de actualizări de securitate ca valoare absolută sau procent din totalul gazdei" }, "securityUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Limită de avertizare actualizări de securitate", + "description": "Introduceți galben când valoarea atinge acest prag" }, "securityUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Actualizări de securitate prag critic", + "description": "Introduceți roșu când valoarea atinge acest prag" }, "hostsWithSecurityUpdatesThresholdMode": { - "label": "", - "description": "" + "label": "Gazde cu modul actualizări de securitate", + "description": "Compară numărul de gazdă ca valoare absolută sau procent din totalul gazde" }, "hostsWithSecurityUpdatesWarningAt": { - "label": "", - "description": "" + "label": "Gazde cu prag de avertizare actualizări de securitate", + "description": "Introduceți galben când valoarea atinge acest prag" }, "hostsWithSecurityUpdatesCriticalAt": { - "label": "", - "description": "" + "label": "Gazde cu pragul critic pentru actualizările de securitate", + "description": "Introduceți roșu când valoarea atinge acest prag" }, "upToDateHostsThresholdMode": { - "label": "", - "description": "" + "label": "Actualizare modul host-uri", + "description": "Compară numărul de gazde actualizat ca valoare absolută sau procent din totalul gazde" }, "upToDateHostsWarningAt": { - "label": "", - "description": "" + "label": "Pragul de avertizare actualizat al gazdelor", + "description": "Introduceți galben când valoarea este la sau peste acest prag, dar sub acoperirea completă" }, "upToDateHostsCriticalAt": { - "label": "", - "description": "" + "label": "Prag critic actualizat găzduiește în prezent", + "description": "Introduceți roșu atunci când valoarea scade sub acest prag" }, "totalOutdatedPackagesThresholdMode": { - "label": "", - "description": "" + "label": "Modul învechit de praguri pachete", + "description": "Compară numărul de pachete învechite ca valoare absolută sau procent din totalul gazde" }, "totalOutdatedPackagesWarningAt": { - "label": "", - "description": "" + "label": "Pragul de avertizare al pachetelor învechite", + "description": "Introduceți galben când valoarea atinge acest prag" }, "totalOutdatedPackagesCriticalAt": { - "label": "", - "description": "" + "label": "Pragul critic al pachetelor învechite", + "description": "Introduceți roșu când valoarea atinge acest prag" }, "showOsDistribution": { - "label": "", - "description": "" + "label": "Arată distribuția OS", + "description": "Afișează o defalcare a gazdelor monitorizate în funcție de sistemul de operare" }, "osDistributionLimit": { - "label": "", - "description": "", + "label": "Limita de distribuție OS", + "description": "Numărul maxim de sisteme de operare care trebuie afișate", "option": { - "3": "", - "5": "", - "10": "", - "all": "" + "3": "Top 3", + "5": "Top 5", + "10": "Top 10", + "all": "Toate" } }, "showOsVersion": { - "label": "", - "description": "" + "label": "Arată versiunea OS", + "description": "Adăugaţi versiunea OS la fiecare etichetă de distribuţie când este disponibilă" }, "showComplianceHero": { - "label": "", - "description": "" + "label": "Arată eroul de conformitate", + "description": "Afișează un inel de conformitate care arată procentajul de gazde actualizate" }, "osDisplayMode": { - "label": "", - "description": "", + "label": "Mod de afișare OS", + "description": "Alegeți cum să afișați distribuția sistemului de operare", "option": { - "bars": "", - "donut": "" + "bars": "Bare orizontale", + "donut": "Donut chart" } } }, "error": { - "internalServerError": "" + "internalServerError": "Nu s-a reușit preluarea datelor PatchMon" } }, "bazarr": { - "name": "", - "description": "", - "episodes": "", - "movies": "", - "providers": "", - "status": "", + "name": "Bazarr", + "description": "Prezentare generală a subtitrărilor lipsă şi starea de sănătate din instanţa Bazarr", + "episodes": "Episoade lipsă", + "movies": "Lipsesc filmele", + "providers": "Probleme furnizor", + "status": "Probleme de sănătate", "option": { "showMissingEpisodes": { - "label": "", - "description": "" + "label": "Arată episoadele lipsă", + "description": "Afișează numărul de episoade cu subtitrări lipsă" }, "showMissingMovies": { - "label": "", - "description": "" + "label": "Arată filmele lipsă", + "description": "Afișează numărul de filme cu subtitrări lipsă" }, "showProviderIssues": { - "label": "", - "description": "" + "label": "Arată problemele furnizorului", + "description": "Afișează numărul furnizorilor de subtitrări cu probleme" }, "showHealthIssues": { - "label": "", - "description": "" + "label": "Arată problemele de sănătate", + "description": "Afișează numărul de probleme de sănătate cu Bazarr" } }, "error": { - "internalServerError": "" + "internalServerError": "Obținerea datelor Bazarr a eșuat" } }, "immich-serverStats": { - "name": "", - "description": "", + "name": "Immich Statistici server", + "description": "Informații despre instanța Immich", "option": { "showUsers": { - "label": "", - "description": "" + "label": "Arată utilizatorii", + "description": "Arată numărul de utilizatori pe instanța ta" }, "showPhotos": { - "label": "", - "description": "" + "label": "Arată fotografiile", + "description": "Arată numărul de fotografii pe instanța ta" }, "showVideos": { - "label": "", - "description": "" + "label": "Arată videoclipurile", + "description": "Arată numărul de videoclipuri pe instanța ta" }, "showStorage": { - "label": "", - "description": "" + "label": "Arată stocarea", + "description": "Arată cantitatea totală de stocare utilizată" } }, - "users": "", - "photos": "", - "videos": "", - "storage": "" + "users": "Utilizatori", + "photos": "Imagini", + "videos": "Video-uri", + "storage": "Stocare utilizată" }, "immich-albumCarousel": { - "name": "", - "allPhotos": "", + "name": "Album Immich", + "allPhotos": "Toate fotografiile", "option": { "albumId": { - "label": "", - "description": "" + "label": "Album", + "description": "Selectați un album Immich sau toate fotografiile. O selecție goală afișează, de asemenea, fotografii aleatoare din întreaga dvs. bibliotecă." }, "rotationIntervalSeconds": { - "label": "", - "description": "" + "label": "Interval în secunde", + "description": "Rotește între imagini în albumul la fiecare X secunde. Trebuie să fie cel puțin 1. Trebuie să fie sub 3600." }, "showPhotoInfo": { - "label": "", - "description": "" + "label": "Afișare informații fotografie", + "description": "Afișează data imaginii și indexul curent în partea de jos a diapozitivului" }, "randomizePhotos": { - "label": "", - "description": "" + "label": "Randomizează fotografii", + "description": "Arată fotografiile într-o ordine aleatorie în loc să înceapă întotdeauna cu aceeași ordine album." } }, - "description": "", - "noPhotos": "" + "description": "Prezentare de imagini dintr-un album Immich sau biblioteca ta completă", + "noPhotos": "Nicio poză găsită" }, "downloads": { - "name": "", - "description": "", + "name": "Descarcă clientul", + "description": "Vă permite să vizualizați și să gestionați descărcările de la clienții care folosesc Torrent și Usenet.", "option": { "columns": { - "label": "" + "label": "Coloane de afișat" }, "enableRowSorting": { - "label": "" + "label": "Activează sortarea articolelor" }, "defaultSort": { - "label": "" + "label": "Coloana folosită pentru sortare în mod implicit" }, "descendingDefaultSort": { - "label": "" + "label": "Inversează sortarea" }, "showCompletedUsenet": { - "label": "" + "label": "Arată intrările de tip usenet marcate ca finalizate" }, "showCompletedTorrent": { - "label": "" + "label": "Arată intrările torentului marcate ca finalizate" }, "showCompletedHttp": { - "label": "" + "label": "Arată diverse intrări marcate ca completate" }, "activeTorrentThreshold": { - "label": "" + "label": "Ascunde torentul completat sub acest prag (în kiB/s)" }, "categoryFilter": { - "label": "" + "label": "Categorii/etichete de filtrat" }, "filterIsWhitelist": { - "label": "" + "label": "Filtrare ca whitelist" }, "applyFilterToRatio": { - "label": "" + "label": "Utilizați filtrul pentru a calcula raportul" }, "limitPerIntegration": { - "label": "", - "description": "" + "label": "Limitează elementele pe integrare", + "description": "Acest lucru va limita numărul de elemente afișate per integrare, nu la nivel global" }, "columnOrder": { - "label": "" + "label": "Ordinea coloanei" }, "columnWidths": { - "label": "" + "label": "Lățime coloană" } }, "errors": { - "noColumns": "", - "noCommunications": "", - "noItems": "", - "actionFailed": "", - "actionFailedMessage": "" + "noColumns": "Selectați Coloane în Elemente", + "noCommunications": "Nu se pot încărca datele de la integrare", + "noItems": "Nicio descărcare găsită", + "actionFailed": "Acțiune eșuată", + "actionFailedMessage": "Acțiunea nu a putut fi finalizată. Vă rugăm să încercați din nou." }, "items": { "actions": { - "columnTitle": "" + "columnTitle": "Controale" }, "added": { - "columnTitle": "", + "columnTitle": "Adăugat", "detailsTitle": "Data adăugării" }, "category": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Extras", + "detailsTitle": "Categorii (Informații suplimentare)" }, "downSpeed": { "columnTitle": "În jos", "detailsTitle": "Viteza de descărcare" }, "index": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "#", + "detailsTitle": "Indicele curent din interiorul clientului" }, "id": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Id", + "detailsTitle": "Item ID" }, "integration": { "columnTitle": "Integrare" }, "name": { - "columnTitle": "" + "columnTitle": "Numele postului" }, "progress": { "columnTitle": "Progres", - "detailsTitle": "" + "detailsTitle": "Progres descărcare" }, "ratio": { "columnTitle": "Raport", - "detailsTitle": "" + "detailsTitle": "Raport torrent (primit/trimis)" }, "received": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Total în scădere", + "detailsTitle": "Total descărcat" }, "sent": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Total în creștere", + "detailsTitle": "Total încărcat" }, "size": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Dimensiune fișier", + "detailsTitle": "Dimensiunea totală a selecţiei/fişierelor" }, "state": { "columnTitle": "Stare", - "detailsTitle": "" + "detailsTitle": "Stare Job" }, "time": { - "columnTitle": "", - "detailsTitle": "", - "eta": "" + "columnTitle": "Timp de finalizare", + "detailsTitle": "Timp de la /până la finalizare", + "eta": "ETA" }, "type": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Tip", + "detailsTitle": "Descarcă tipul de client" }, "upSpeed": { "columnTitle": "În sus", - "detailsTitle": "" + "detailsTitle": "Viteza de Încărcare" } }, "states": { @@ -3193,121 +3239,121 @@ "queued": "Pus în așteptare", "paused": "În pauză", "completed": "Finalizat", - "failed": "", - "processing": "", - "leeching": "", - "stalled": "", + "failed": "Eșuat", + "processing": "Prelucrare", + "leeching": "Leeching", + "stalled": "Blocat", "unknown": "Necunoscut", - "seeding": "" + "seeding": "Seeding" }, "actions": { "clients": { - "modalTitle": "", - "pause": "", - "resume": "" + "modalTitle": "Descarcă lista de clienți", + "pause": "Întrerupeți toți clienții/elemente", + "resume": "Reluați toți clienții/articole" }, "client": { - "pause": "", - "resume": "" + "pause": "Pauză pasager", + "resume": "Reluați pasagerul" }, "item": { - "pause": "", - "resume": "", + "pause": "Pauză Element", + "resume": "Reluare element", "delete": { - "title": "", - "modalTitle": "", - "entry": "", - "entryAndFiles": "" + "title": "Ștergere element", + "modalTitle": "Sunteţi sigur că doriţi să ştergeţi acest job?", + "entry": "Ștergeți intrarea", + "entryAndFiles": "Ştergeţi intrarea şi fişierul" } } }, - "globalRatio": "", + "globalRatio": "Raport Global", "contextMenu": { - "copyName": "", - "copyId": "", - "clearFilters": "" + "copyName": "Copiază numele", + "copyId": "Copiază ID", + "clearFilters": "Ștergeți filtrele" }, "footer": { - "filter": "" + "filter": "Descărcări filtre" }, "stats": { - "show": "", - "hide": "", - "overallProgress": "", - "totalSize": "", - "clients": "" + "show": "Arată statistici globale", + "hide": "Ascunde statistici globale", + "overallProgress": "Progres global în coadă", + "totalSize": "Dimensiunea totală a cozii", + "clients": "{count, plural, one {# client} other {# clients}}" }, - "disconnected": "" + "disconnected": "(deconectat)" }, "mediaReleases": { - "name": "", - "description": "", + "name": "Comunicate media", + "description": "Afişează mediile nou adăugate sau versiunile viitoare din diferite integrări", "option": { "layout": { - "label": "", + "label": "Aspect", "option": { "backdrop": { - "label": "" + "label": "Fundal" }, "poster": { - "label": "" + "label": "Poster" } } }, "showDescriptionTooltip": { - "label": "" + "label": "Arată indicatorul de descriere" }, "showType": { - "label": "" + "label": "Arată insigna tip media" }, "showSource": { - "label": "" + "label": "Arată integrarea sursei" } }, "length": { - "duration": "" + "duration": "{length}min" } }, "mediaRequests-requestList": { - "name": "", + "name": "Listă Cereri Media", "description": "Vezi o listă cu toate cererile media de la instanțele Overseerr sau Jellyseerr", "option": { "linksTargetNewTab": { "label": "Deschide link-ul într-o pagină nouă" }, "statusFilter": { - "label": "" + "label": "Statusuri de afișat" }, "recentDays": { - "label": "" + "label": "Arată doar cererile recente" } }, "pending": { - "approve": "", - "approving": "", - "decline": "" + "approve": "Aprobați cererea", + "approving": "Aprobare cerere...", + "decline": "Refuzați solicitarea" }, "availability": { "unknown": "Necunoscut", - "pending": "", - "processing": "", - "requested": "", + "pending": "In asteptare", + "processing": "Prelucrare", + "requested": "Solicitat", "partiallyAvailable": "Parțial", "available": "Disponibil", - "blacklisted": "", - "deleted": "" + "blacklisted": "Lista neagra", + "deleted": "Șters" }, "status": { - "pending": "", - "approved": "", - "declined": "", - "failed": "", - "completed": "" + "pending": "In asteptare", + "approved": "Aprobat", + "declined": "Refuzat", + "failed": "Eșuat", + "completed": "Completat" }, - "toBeDetermined": "" + "toBeDetermined": "TBD" }, "mediaRequests-requestStats": { - "name": "", + "name": "Statistici Cereri Media", "description": "Statistici despre solicitările dvs. media", "option": {}, "titles": { @@ -3315,28 +3361,28 @@ "main": "Situația media", "approved": "Deja aprobat", "pending": "În curs de aprobare", - "processing": "", - "declined": "", - "available": "", + "processing": "Se procesează", + "declined": "Deja refuzată", + "available": "Deja Disponibil", "tv": "Cereri seriale TV", "movie": "Cereri filme", - "total": "" + "total": "Total" }, "users": { "main": "Top utilizatori", - "requests": "" + "requests": "Cereri" } } }, "mediaTranscoding": { - "name": "", - "description": "", + "name": "Transcodare media", + "description": "Statistici, coadă curentă și statutul de lucrător pentru transcodarea media", "option": { "defaultView": { "label": "Afișare implicită" }, "queuePageSize": { - "label": "" + "label": "Dimensiunea paginii de aşteptare" } }, "tab": { @@ -3344,9 +3390,9 @@ "queue": "Listă de așteptare", "statistics": "Statistici" }, - "currentIndex": "", + "currentIndex": "{start}-{end} {total}", "healthCheck": { - "title": "", + "title": "Verificarea stării de sănătate", "queued": "Pus în așteptare", "status": { "healthy": "Sănătos", @@ -3357,11 +3403,11 @@ "statistics": { "empty": "Gol", "transcodes": "Transcrieri", - "transcodesCount": "", - "healthChecksCount": "", - "filesCount": "", - "savedSpace": "", - "healthChecks": "", + "transcodesCount": "Transcoduri", + "healthChecksCount": "Controalele de sănătate", + "filesCount": "Fișiere", + "savedSpace": "Spațiu salvat", + "healthChecks": "Controalele de sănătate", "videoCodecs": "Codec-uri", "videoContainers": "Containere", "videoResolutions": "Rezoluţie" @@ -3373,7 +3419,7 @@ "eta": "Timp rămas estimat", "progress": "Progres", "transcode": "Transcriere", - "healthCheck": "" + "healthCheck": "Verificarea stării de sănătate" } }, "queue": { @@ -3382,191 +3428,191 @@ "file": "Fișier", "size": "Mărime", "transcode": "Transcriere", - "healthCheck": "" + "healthCheck": "Verificarea stării de sănătate" } } } }, "mediaMissing": { - "name": "", - "description": "", + "name": "Media lipsă și în așteptare", + "description": "Afişează filme lipsă şi coadă şi episoade de la Radarr şi Sonarr", "option": { "showMissing": { - "label": "" + "label": "Arată elementele lipsă" }, "showQueued": { - "label": "" + "label": "Afișare elemente în așteptare" }, "pageSize": { - "label": "" + "label": "Elemente pe pagină" } }, "tab": { - "missing": "", - "queued": "" + "missing": "Lipsă", + "queued": "În aşteptare" }, "type": { - "movie": "", - "episode": "" + "movie": "Film", + "episode": "Episod" }, "empty": { - "missing": "", - "queued": "", - "noTabsEnabled": "" + "missing": "Niciun element lipsă", + "queued": "Niciun element în așteptare", + "noTabsEnabled": "Activează cel puțin o filă în setările widget-ului" }, - "timeLeft": "" + "timeLeft": "Timp rămas" }, "rssFeed": { - "name": "", - "description": "", + "name": "Fluxuri RSS", + "description": "Monitorizează și afișează unul sau mai multe fluxuri generice RSS, ATOM sau JSON", "option": { "feedUrls": { - "label": "" + "label": "URL-uri flux" }, "enableRtl": { - "label": "" + "label": "Activează RTL" }, "textLinesClamp": { - "label": "" + "label": "Cimbru linie descriere" }, "maximumAmountPosts": { - "label": "" + "label": "Limită sumă postări" }, "hideDescription": { - "label": "" + "label": "Ascunde descrierea" }, "showPosterImage": { - "label": "" + "label": "Afișare imagine poster" } } }, "releases": { - "name": "", - "description": "", + "name": "Lansări", + "description": "Afişează o listă a versiunii curente a depozitelor date cu o anumită versiune regex.", "option": { "newReleaseWithin": { - "label": "", - "description": "" + "label": "Nouă lansare în", + "description": "Exemplu de utilizare: 1 g (1 săptămână), 10 M (10 luni). Tipuri de unități acceptate h (ore), d (zile), w (săptămâni), M (luni), y (ani). Lăsați gol pentru a nu sublinia noile versiuni." }, "staleReleaseWithin": { - "label": "", - "description": "" + "label": "Eliberare veche în", + "description": "Exemplu de utilizare: 1 g (1 săptămână), 10 M (10 luni). Tipuri de unități acceptate h (ore), d (zile), w (săptămâni), M (luni), y (ani). Lăsați gol pentru a nu evidenția versiunile vechi." }, "showOnlyHighlighted": { - "label": "", - "description": "" + "label": "Arată doar evidențiate", + "description": "Arată doar versiunile noi sau vechi. Conform celor de mai sus." }, "showDetails": { - "label": "" + "label": "Arată detalii" }, "showOnlyIcon": { - "label": "" + "label": "Arată doar pictograma" }, "topReleases": { - "label": "", - "description": "" + "label": "Top lansări", + "description": "Numărul maxim de versiuni recente pentru afișare. Zero înseamnă nelimitat." }, "repositories": { - "label": "", + "label": "Repertorii", "addRepository": { - "label": "" + "label": "Adaugă depozit" }, "importRepositories": { - "label": "", - "loading": "", - "noImagesFound": "", - "listFoundImages": "", - "listAlreadyImportedImages": "", - "allImagesAlreadyImported": "", - "onlyAdminCanImport": "", - "selectAll": "", - "deselectAll": "" + "label": "Importă din docker", + "loading": "Încărcare imagini docker", + "noImagesFound": "Nu s-au găsit imagini în docker", + "listFoundImages": "Lista imaginilor găsite", + "listAlreadyImportedImages": "Lista imaginilor deja importate", + "allImagesAlreadyImported": "Toate imaginile sunt deja importate", + "onlyAdminCanImport": "Doar administratorii pot importa din docker", + "selectAll": "Selectează tot", + "deselectAll": "Deselectează tot" }, "provider": { - "label": "" + "label": "Furnizor" }, "providerUrl": { - "label": "" + "label": "URL furnizor" }, "identifier": { - "label": "", - "placeholder": "" + "label": "Identifier", + "placeholder": "Nume sau proprietar/nume" }, "name": { - "label": "" + "label": "Nume" }, "versionFilter": { - "label": "", + "label": "Filtru versiune", "prefix": { - "label": "" + "label": "Prefix" }, "precision": { - "label": "", + "label": "Precizie", "options": { - "none": "" + "none": "Niciunul" } }, "suffix": { - "label": "" + "label": "Suffix" }, "regex": { - "label": "" + "label": "Expresie regulată" } }, "edit": { - "label": "" + "label": "Editare" }, "editForm": { - "title": "", + "title": "Editare Repositoriu", "cancel": { - "label": "" + "label": "Anulează" }, "confirm": { - "label": "" + "label": "Confirmare" } }, "importForm": { - "title": "" + "title": "Importă din Docker" }, "example": { - "label": "" + "label": "Exemplu" }, - "invalid": "", + "invalid": "Definiția depozitului invalidă, vă rugăm să verificați valorile", "noProvider": { - "label": "", - "tooltip": "" + "label": "Niciun furnizor", + "tooltip": "Furnizorul nu a putut fi analizat, vă rugăm să-l setați manual după importul imaginilor" }, "tokens": { - "label": "", - "token": "", - "configured": "", - "notConfigured": "", - "save": "" + "label": "Furnizor jetoane", + "token": "Token", + "configured": "Token configurat", + "notConfigured": "Niciun token setat", + "save": "Salvează" } } }, - "not-found": "", - "pre-release": "", - "archived": "", - "forked": "", - "starsCount": "", - "forksCount": "", - "issuesCount": "", - "markViewed": "", - "openProjectPage": "", - "openReleasePage": "", - "releaseDescription": "", - "projectDescription": "", - "created": "", + "not-found": "Nu s-a găsit", + "pre-release": "Pre-lansare", + "archived": "Arhivat", + "forked": "Făcut", + "starsCount": "Stele", + "forksCount": "Forks", + "issuesCount": "Probleme deschise", + "markViewed": "Marchează ca vizualizat", + "openProjectPage": "Deschide Pagina Proiectului", + "openReleasePage": "Deschide pagina de lansare", + "releaseDescription": "Descriere lansare", + "projectDescription": "Descriere proiect", + "created": "Creat", "error": { - "label": "", + "label": "Eroare", "messages": { - "invalidIdentifier": "", - "noMatchingVersion": "", - "noReleasesFound": "", - "noProviderSelected": "", - "noProviderResponse": "", - "unexpected": "" + "invalidIdentifier": "Identificator nevalid", + "noMatchingVersion": "Nu s-a găsit nicio versiune potrivită", + "noReleasesFound": "Nu s-au găsit Partajări", + "noProviderSelected": "Niciun furnizor selectat", + "noProviderResponse": "Niciun răspuns din partea furnizorului", + "unexpected": "Eroare neașteptată la furnizor" } } }, @@ -3574,352 +3620,352 @@ "option": {}, "card": { "vpn": { - "countConnected": "" + "countConnected": "{count} conectat" } }, "error": { - "integrationsDisconnected": "", - "unknownContentOption": "" + "integrationsDisconnected": "Nu există date disponibile, toate integrările sunt deconectate", + "unknownContentOption": "Opțiune necunoscută de conținut pentru widget-ul sumar al controlerului de rețea: " }, - "name": "", - "description": "" + "name": "Rezumatul controlorului de rețea", + "description": "Afişează rezumatul unui controler de reţea (cum ar fi UniFi Controller)" }, "networkControllerStatus": { "card": { "variants": { "wired": { - "name": "" + "name": "Cablu" }, "wifi": { - "name": "" + "name": "Wi-Fi" } }, "users": { - "label": "" + "label": "Utilizatori" }, "guests": { - "label": "" + "label": "Vizitatori" } }, "option": { "content": { "option": { "wifi": { - "label": "" + "label": "Wi-Fi" }, "wired": { - "label": "" + "label": "Cablu" } }, - "label": "" + "label": "Conținut widget" } }, "error": { - "integrationsDisconnected": "", - "unknownContentOption": "" + "integrationsDisconnected": "Nu există date disponibile, toate integrările sunt deconectate", + "unknownContentOption": "Opțiune de conținut necunoscut pentru widget-ul stare de rețea: " }, - "name": "", - "description": "" + "name": "Starea Rețelei", + "description": "Afiseaza dispozitivele conectate intr-o retea" }, "networkController": { "error": { - "internalServerError": "" + "internalServerError": "Nu s-a reușit preluarea sumarului Controlerului de rețea" } }, "firewall": { - "name": "", - "description": "", + "name": "Monitorizare Firewall", + "description": "Afișează un sumar al firewall-urilor", "tab": { - "system": "", - "interfaces": "" + "system": "Sistem", + "interfaces": "Interfețe" }, "error": { - "internalServerError": "" + "internalServerError": "Imposibil de obținut date din firewall" }, "option": { - "interfaces": "" + "interfaces": "Interfețe de rețea de afișat" }, "widget": { - "fwname": "", - "version": "", - "versiontitle": "", - "cputitle": "", - "memorytitle": "", - "cpu": "", - "memory": "", + "fwname": "Nume", + "version": "Versiune", + "versiontitle": "Versiuni", + "cputitle": "Utilizare CPU", + "memorytitle": "Utilizare memorie", + "cpu": "procesor", + "memory": "Memorie", "interfaces": { - "name": "", - "trans": "", - "recv": "", - "title": "" + "name": "nume", + "trans": "Transmitere", + "recv": "Primit", + "title": "Interfețe de rețea" } } }, "notifications": { - "name": "", - "description": "", - "noItems": "", + "name": "Notificări", + "description": "Afișează istoricul notificărilor de la o integrare", + "noItems": "Nu există notificări de afișat.", "option": { "hideLogos": { - "label": "" + "label": "Ascunde logo-uri" } } }, "speedtestTracker": { - "name": "", - "description": "", + "name": "Tracker de accelerare", + "description": "Afișează rezultatele testului de viteză din instanta Trackerului de Viteză.", "option": { "showLatestResult": { - "label": "" + "label": "Arată cele mai recente rezultate" }, "showStats": { - "label": "" + "label": "Arată mediile" }, "showRecentResults": { - "label": "" + "label": "Arată rezultatele recente" }, "showPingGraph": { - "label": "" + "label": "Arată graficul de ping" } }, - "latestResult": "", - "averages": "", - "tests": "", - "recentResults": "", - "recentResultsSpeed": "", - "recentResultsPing": "", - "download": "", - "upload": "", - "ping": "", - "status": "", - "avgDownload": "", - "avgUpload": "", - "avgPing": "", - "healthy": "", - "unhealthy": "", - "ok": "", - "fail": "", - "noSectionsEnabled": "", + "latestResult": "Ultimul rezultat", + "averages": "Medie", + "tests": "{count} teste", + "recentResults": "Rezultate recente", + "recentResultsSpeed": "Viteză", + "recentResultsPing": "Ping", + "download": "Descărcare", + "upload": "Incarca", + "ping": "Ping", + "status": "Status", + "avgDownload": "Descărcare medie", + "avgUpload": "Încărcare medie", + "avgPing": "Ping mediu", + "healthy": "sănătos", + "unhealthy": "nesănătoase", + "ok": "Ok", + "fail": "Eșec", + "noSectionsEnabled": "Activează cel puțin o secțiune în opțiunile widget-ului.", "error": { - "internalServerError": "" + "internalServerError": "Obținerea datelor testului de viteză a eșuat" } }, "uptimeKuma": { - "name": "", - "description": "", + "name": "Kuma de uptime", + "description": "Monitorizează statisticile uptime din pagina de stare Kuma Uptime", "option": { "showAverageUptime": { - "label": "", - "description": "" + "label": "Afișare uptime medie", + "description": "Afișează procentul mediu combinat de uptime pe 24 de ore" }, "showUptimeRing": { - "label": "", - "description": "" + "label": "Arată inelul uptime", + "description": "Afișează un inel de progres alături de valoarea medie de uptime" }, "showTotalMonitors": { - "label": "", - "description": "" + "label": "Arată totalul de monitoare", + "description": "Afișează numărul total de monitoare configurate" }, "showUpCount": { - "label": "", - "description": "" + "label": "Arată numărul de sus", + "description": "Afișează câte monitoare sunt în prezent în funcțiune" }, "showDownCount": { - "label": "", - "description": "" + "label": "Arată numărul în jos", + "description": "Afișează câte monitoare sunt în prezent jos" }, "showPausedCount": { - "label": "", - "description": "" + "label": "Arată numărul de întreruperi", + "description": "Afișează câte monitoare sunt întrerupte în prezent" } }, - "averageUptime": "", + "averageUptime": "Durată medie ascendentă (24h)", "stats": { - "totalMonitors": "", - "upCount": "", - "downCount": "", - "pausedCount": "" + "totalMonitors": "Total monitoare", + "upCount": "Sus", + "downCount": "Jos", + "pausedCount": "Pauză" }, "error": { - "internalServerError": "" + "internalServerError": "Preluarea datelor de uptime a eșuat" } }, "traefik": { - "name": "", - "description": "", + "name": "Traefik", + "description": "Prezentare generală a routerelor Traefik, serviciilor, middleware-urilor și punctelor de intrare", "option": { "showTcp": { - "label": "" + "label": "Arată TCP" }, "showUdp": { - "label": "" + "label": "Show UDP" }, "showEntryPoints": { - "label": "" + "label": "Arată punctele de intrare" } }, - "instances": "", - "versionUnknown": "", + "instances": "Traefik instances", + "versionUnknown": "Versiune necunoscută", "summary": { - "routers": "", - "entryPoints": "" + "routers": "Routere", + "entryPoints": "Puncte de intrare" }, "resource": { - "routers": "", - "services": "", - "middlewares": "" + "routers": "Routere", + "services": "Servicii", + "middlewares": "Middlewares" }, "status": { - "healthy": "", - "errors": "", - "warnings": "" + "healthy": "sănătos", + "errors": "{count} erori", + "warnings": "{count} avertismente" }, "error": { - "internalServerError": "" + "internalServerError": "Obținerea datelor Traefik a eșuat" } }, "audioStats": { - "name": "", - "description": "", + "name": "Statistici audio", + "description": "Statistici bibliotecă și redare de la Navidrome sau Audiobookshelf", "option": { "showArtists": { - "label": "", - "description": "" + "label": "Afișare artiști", + "description": "Arată numărul total de artiști din biblioteca ta de muzică (Navidrome)" }, "showAlbums": { - "label": "", - "description": "" + "label": "Arată albumele", + "description": "Arată numărul total de albume în biblioteca ta de muzică (Navidrome)" }, "showSongs": { - "label": "", - "description": "" + "label": "Arată melodiile", + "description": "Arată numărul total de melodii în biblioteca ta de muzică (Navidrome)" }, "showLibraryCount": { - "label": "", - "description": "" + "label": "Arată numărul de biblioteci", + "description": "Arată numărul de biblioteci pe instanța ta (Audiobookshelf)" }, "showAudiobooks": { - "label": "", - "description": "" + "label": "Afişare audio-oboks", + "description": "Arată numărul total de audioboks în toate bibliotecile (Audiobookshelf)" }, "showPodcasts": { - "label": "", - "description": "" + "label": "Arată podcast-uri", + "description": "Arată numărul total de podcast-uri din toate bibliotecile (Audiobookshelf)" }, "showListeningTime": { - "label": "", - "description": "" + "label": "Arată timpul de ascultare", + "description": "Arată timpul total de ascultare (Audiobookshelf)" }, "showActiveSessions": { - "label": "", - "description": "" + "label": "Arată sesiunile active", + "description": "Arată numărul de sesiuni de redare active în prezent (Audiobookshelf)" }, "compactMode": { - "label": "", - "description": "" + "label": "Mod compact", + "description": "Utilizați un aspect mai dens cu dale mai mici, ideal pentru mărimi mici de widget" } }, - "artists": "", - "albums": "", - "songs": "", - "libraryCount": "", - "audiobooks": "", - "podcasts": "", - "listeningTime": "", - "activeSessions": "", + "artists": "Artişti", + "albums": "Albume", + "songs": "Melodii", + "libraryCount": "Biblioteci", + "audiobooks": "Audioboks", + "podcasts": "Podcasturi", + "listeningTime": "Timp de ascultare", + "activeSessions": "Sesiuni active", "error": { - "internalServerError": "" + "internalServerError": "Preluarea datelor din statisticile audio a eșuat" } }, "systemResources": { - "name": "", - "description": "", + "name": "Resurse sistem", + "description": "CPU, memorie, disc şi alte utilizări hardware ale sistemului dumneavoastră", "option": { "hasShadow": { - "label": "" + "label": "Activează umbra graficului" }, "visibleCharts": { - "label": "", - "description": "", + "label": "Grafice vizibile", + "description": "Selectați graficele care doriți să fie vizibile.", "option": { - "cpu": "", - "memory": "", - "gpu": "", - "network": "" + "cpu": "procesor", + "memory": "Memorie", + "gpu": "GPU", + "network": "Rețea" } }, "labelDisplayMode": { - "label": "", + "label": "Mod afișare etichete", "option": { - "textWithIcon": "", - "text": "", - "icon": "", - "hidden": "" + "textWithIcon": "Afișare text cu pictogramă", + "text": "Arată doar textul", + "icon": "Arată doar pictograma", + "hidden": "Ascunde eticheta" } } }, "card": { - "cpu": "", - "memory": "", - "gpu": "", - "network": "", - "up": "", - "down": "" + "cpu": "procesor", + "memory": "MEM", + "gpu": "GPU", + "network": "NET", + "up": "PLU", + "down": "JOS" } }, "systemDisks": { - "name": "", - "description": "", + "name": "Discuri de sistem", + "description": "Utilizarea pe disc a sistemului dumneavoastră", "option": { "showTemperatureIfAvailable": { - "label": "" + "label": "Arată temperatura dacă este disponibilă" }, "displayMode": { - "label": "", + "label": "Mod de afişare", "option": { "percentage": { - "label": "" + "label": "Procent (de exemplu, 76%)" }, "absolute": { - "label": "" + "label": "Valori absolute (de exemplu 800GB / 1TB)" }, "free": { - "label": "" + "label": "Procent spațiu liber (de exemplu, 24% gratuit)" } } }, "showBackgroundBar": { - "label": "" + "label": "Arată bara de utilizare în fundal" }, "visibleStorageVolumes": { - "label": "", - "description": "", - "placeholder": "" + "label": "Volumele de stocare vizibile", + "description": "Disponibil numai atunci când toate integrările selectate sunt sincronizate. Lăsați gol pentru a afișa toate volumele de stocare detectate.", + "placeholder": "Selectați volumele de stocare" } }, "status": { - "unhealthy": "" + "unhealthy": "nesănătoase" } }, "customApi": { - "name": "", - "description": "", + "name": "API personalizat", + "description": "Afișează datele din orice API extern cu configurație personalizată.", "option": { "definitionId": { - "label": "" + "label": "ID Definiție" }, "refreshInterval": { - "label": "", - "description": "" + "label": "Interval reîmprospătare", + "description": "Cât de des să refetch datele de la API (în secunde)" } }, - "noDefinition": "", - "definitionNotFound": "", - "noDisplayOutput": "", - "executeConfirm": "", - "executing": "", - "executeSuccess": "", - "executeFailed": "" + "noDefinition": "Nicio definiție selectată", + "definitionNotFound": "Definiția widget-ului nu a fost găsită. Este posibil să fi fost ștearsă.", + "noDisplayOutput": "Niciun rezultat afișat", + "executeConfirm": "Sunteţi sigur că doriţi să executaţi această acţiune?", + "executing": "Executare...", + "executeSuccess": "Acțiune executată cu succes", + "executeFailed": "Acțiune eșuată. Verificați configurația widgetului." }, "beszelSystemTable": { "name": "Sisteme Beszel (Tabel)", @@ -3968,17 +4014,17 @@ "label": "Arată versiunea agentului" }, "columnOrder": { - "label": "" + "label": "Ordinea coloanei" }, "columnWidths": { - "label": "" + "label": "Lățime coloană" } }, "noRecords": "Niciun sistem găsit", "error": { - "internalServerError": "", - "layoutSaveTitle": "", - "layoutSaveMessage": "" + "internalServerError": "Nu s-a putut conecta la Beszel. Verificaţi setările de integrare.", + "layoutSaveTitle": "Imposibil de salvat aspectul tabelei", + "layoutSaveMessage": "Ordinea de coloane sau lățimile nu au putut fi salvate. Vă rugăm să încercați din nou." }, "column": { "system": "Sistem", @@ -4037,10 +4083,10 @@ } }, "error": { - "internalServerError": "" + "internalServerError": "Nu s-a putut conecta la Beszel. Verificaţi setările de integrare." }, "empty": { - "noSystems": "" + "noSystems": "Niciun sistem găsit" }, "metric": { "cpu": "CPU", @@ -4069,7 +4115,7 @@ }, "empty": "Nicio alertă configurată", "error": { - "internalServerError": "" + "internalServerError": "Nu s-a putut conecta la Beszel. Verificaţi setările de integrare." }, "history": "Istoric", "resolved": "Rezolvat", @@ -4083,8 +4129,8 @@ "description": "Grafice de serie temporală pentru CPU, memorie, disc, rețea și Docker container metrics", "option": { "systemId": { - "label": "", - "description": "" + "label": "Sistem", + "description": "Selectați un sistem Beszel pentru a afișa statistici" }, "timePeriod": { "label": "Perioadă de timp" @@ -4116,13 +4162,13 @@ }, "selectSystem": "Selectează sistemul", "empty": { - "noSystems": "" + "noSystems": "Niciun sistem găsit" }, "error": { - "internalServerError": "", - "liveConnectionFailed": "", - "switchToHistorical": "", - "systemNotFound": "" + "internalServerError": "Nu s-a putut conecta la Beszel. Verificaţi setările de integrare.", + "liveConnectionFailed": "Conexiunea live a eșuat. Este posibil ca instanța Beszel să nu suporte streaming.", + "switchToHistorical": "Treceți la vizualizarea istorică", + "systemNotFound": "Sistemul selectat nu a fost găsit. Alege un alt sistem." }, "chart": { "cpu": { @@ -4138,8 +4184,8 @@ }, "disk": { "title": "Utilizare disc", - "subtitle": "", - "series": "" + "subtitle": "Utilizare de către sistemul de fişiere", + "series": "Rădăcină" }, "diskIO": { "title": "I/O disc", @@ -4148,9 +4194,9 @@ "write": "Scriere" }, "storage": { - "title": "", - "subtitle": "", - "series": "" + "title": "Depozitare", + "subtitle": "Utilizare per-filesystem disk", + "series": "Utilizat" }, "network": { "title": "Lățime de bandă", @@ -4175,79 +4221,79 @@ }, "widgetPreview": { "toggle": { - "enabled": "", - "disabled": "" + "enabled": "Mod editare activat", + "disabled": "Mod editare dezactivat" }, "dimensions": { - "title": "" + "title": "Schimbă dimensiunile" } }, "board": { "action": { "duplicate": { - "title": "", - "message": "", + "title": "Duplică tabla", + "message": "Aceasta va duplica secţiunea {name} cu tot conţinutul său. Dacă widget-urile integrează referinţa, pe care nu aveţi permisiunea să o folosiţi, acestea vor fi eliminate.", "notification": { "success": { - "title": "", - "message": "" + "title": "Secţiune duplicată", + "message": "Secţiunea a fost duplicată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Imposibil de duplicat tabla", + "message": "Secţiunea nu a putut fi duplicată" } } }, "edit": { "notification": { "success": { - "title": "", - "message": "" + "title": "Modificări aplicate cu succes", + "message": "Secţiunea a fost salvată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Imposibil de aplicat modificările", + "message": "Secţiunea nu a putut fi salvată" } }, "confirmLeave": { - "title": "", - "message": "" + "title": "Modificări nesalvate", + "message": "Aveți modificări nesalvate, sunteți sigur că doriți să ieșiți?" } }, "oldImport": { - "label": "", + "label": "Importă din homarr înainte de 1.0.0", "notification": { "success": { - "title": "", - "message": "" + "title": "Importare reușită", + "message": "Secţiunea a fost importată cu succes" }, "error": { - "title": "", - "message": "" + "title": "Importare eșuată", + "message": "Secţiunea nu a putut fi importată, verificaţi jurnalele pentru detalii suplimentare" } }, "form": { "file": { - "label": "", - "invalidError": "" + "label": "Selectaţi fişierul JSON", + "invalidError": "Fișier de configurare nevalid" }, "apps": { "label": "Aplicații", "avoidDuplicates": { - "label": "", - "description": "" + "label": "Evită dublurile", + "description": "Ignoră aplicațiile unde există deja o aplicație cu același href" }, "onlyImportApps": { - "label": "", - "description": "" + "label": "Importă numai aplicații", + "description": "Doar adaugă aplicațiile, tabla trebuie să fie recreată manual" } }, "name": { - "label": "" + "label": "Numele forumului" }, "screenSize": { - "label": "", - "description": "", + "label": "Dimensiune ecran", + "description": "În versiunile înainte să existe 1.0 trei moduri diferite, așa că ați putut alege numărul de coloane pentru fiecare mărime de ecran.", "option": { "sm": "Mic", "md": "Mediu", @@ -4255,16 +4301,16 @@ } }, "sidebarBehavior": { - "label": "", - "description": "", + "label": "Comportament bară laterală", + "description": "Sidebars au fost eliminate în 1.0, puteți selecta ce ar trebui să se întâmple cu elementele din ele.", "option": { "lastSection": { - "label": "", - "description": "" + "label": "Ultima secţiune", + "description": "Bara laterală va fi afișată sub ultima secțiune" }, "removeItems": { - "label": "", - "description": "" + "label": "Elimină elemente", + "description": "Articolele conținute în bara laterală vor fi eliminate" } } } @@ -4272,63 +4318,63 @@ }, "quickCreateApp": { "modal": { - "title": "", - "createAndUse": "" + "title": "Creează o aplicație pe zbor", + "createAndUse": "Creează și folosește" } } }, "field": { "pageTitle": { - "label": "" + "label": "Titlul paginii" }, "metaTitle": { - "label": "" + "label": "Titlu meta" }, "logoImageUrl": { - "label": "" + "label": "URL imagine logo" }, "faviconImageUrl": { - "label": "" + "label": "URL imagine fichar@@0icon" }, "backgroundImageUrl": { - "label": "", - "placeholder": "", + "label": "URL-ul imaginii de fundal", + "placeholder": "Începeți să tastați pentru a căuta imagini locale", "group": { - "your": "", - "other": "" + "your": "Imaginile tale", + "other": "Alte imagini" } }, "backgroundImageAttachment": { "label": "Atașare imagine de fundal", "option": { "fixed": { - "label": "", - "description": "" + "label": "Fixat", + "description": "Contextul rămâne în aceeași poziție." }, "scroll": { - "label": "", - "description": "" + "label": "Derulează", + "description": "Fundalul se derulează cu mouse-ul." } } }, "backgroundImageRepeat": { - "label": "", + "label": "Repetare imagine de fundal", "option": { "repeat": { - "label": "", - "description": "" + "label": "Repetă", + "description": "Imaginea este repetată atât cât este necesar pentru a acoperi întreaga zonă de imagine de fundal." }, "no-repeat": { - "label": "", - "description": "" + "label": "Fără repetare", + "description": "Imaginea nu este repetată și este posibil să nu umple întregul spațiu." }, "repeat-x": { - "label": "", - "description": "" + "label": "Repetă X", + "description": "La fel ca „Repetă”, dar numai pe axa orizontală." }, "repeat-y": { - "label": "", - "description": "" + "label": "Repetă Y", + "description": "La fel ca „Repetă”, dar numai pe axa verticală." } } }, @@ -4336,12 +4382,12 @@ "label": "Dimensiunea imaginii de fundal", "option": { "cover": { - "label": "", - "description": "" + "label": "Copertă", + "description": "Scalează imaginea cât mai mică posibil pentru a acoperi întreaga fereastră prin decuparea spațiului excesiv." }, "contain": { - "label": "", - "description": "" + "label": "Conține", + "description": "Redimensionează imaginea cât mai mare posibil în container, fără a decupa sau a extinde imaginea." } } }, @@ -4352,64 +4398,64 @@ "label": "Culoare secundară" }, "opacity": { - "label": "" + "label": "Opacitate" }, "iconColor": { - "label": "" + "label": "Culoare pictogramă" }, "clearColor": { - "label": "" + "label": "Golire culoare" }, "customCss": { - "label": "", + "label": "Css personalizat pentru această secţiune", "description": "În plus, personalizați-vă planșa folosind CSS, recomandat doar pentru utilizatorii experimentați", "customClassesAlert": { - "title": "", - "description": "" + "title": "Clase personalizate", + "description": "Puteți adăuga clase personalizate la elementele forumului în opțiunile avansate ale fiecărui element și să le folosiți în personalizarea CSS de mai sus." } }, "disableStatus": { - "label": "", - "description": "" + "label": "Dezactivează starea aplicației", + "description": "Dezactivează verificarea stării pentru toate aplicațiile de pe această secţiune" }, "columnCount": { - "label": "" + "label": "Număr de coloane" }, "itemRadius": { - "label": "", - "description": "", + "label": "Raza elementului", + "description": "Modifică rotunjirea plăcilor de pe tablă", "option": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Foarte mic", + "sm": "Mică", + "md": "Medie", + "lg": "Mare", + "xl": "Foarte mare" } }, "name": { "label": "Nume" }, "isPublic": { - "label": "", - "description": "" + "label": "Publice", + "description": "Consiliile publice sunt accesibile tuturor, chiar și fără niciun cont." } }, "content": { - "metaTitle": "" + "metaTitle": "{boardName} tablă" }, "setting": { - "title": "", + "title": "Setări pentru {boardName} tablă", "section": { "general": { - "title": "", - "unrecognizedLink": "" + "title": "Generalități", + "unrecognizedLink": "Link-ul furnizat nu este recunoscut și nu va previzualiza, ar putea totuși să funcționeze." }, "layout": { "title": "Aspect", "responsive": { - "title": "", + "title": "Aspecte Responsive", "action": { - "add": "" + "add": "Adaugă aspect" } } }, @@ -4417,26 +4463,26 @@ "title": "Fundal" }, "appearance": { - "title": "" + "title": "Aspectul" }, "customCss": { - "title": "" + "title": "Custom css" }, "behavior": { - "title": "" + "title": "Comportament" }, "access": { - "title": "", + "title": "Control acces", "permission": { "item": { "view": { "label": "Vezi planșa" }, "modify": { - "label": "" + "label": "Modifică tabla" }, "full": { - "label": "" + "label": "Acces complet" } } } @@ -4445,41 +4491,41 @@ "title": "Zonă periculoasă", "action": { "rename": { - "label": "", - "description": "", - "button": "", + "label": "Redenumiţi tabla", + "description": "Schimbarea numelui va rupe orice link-uri către această secţiune.", + "button": "Schimbă numele", "modal": { - "title": "" + "title": "Redenumiţi tabla" } }, "visibility": { - "label": "", + "label": "Schimbă vizibilitatea forumului", "description": { - "public": "", - "private": "" + "public": "Această secţiune este în prezent publică.", + "private": "Această secţiune este în prezent privată." }, "button": { - "public": "", - "private": "" + "public": "Fă privat", + "private": "Fă public" }, "confirm": { "public": { - "title": "", - "description": "" + "title": "Fă panoul privat", + "description": "Sunteţi sigur că doriţi să faceţi această secţiune privată? Acest lucru va ascunde secţiunea de public. Link-urile pentru utilizatorii invitaţi se vor rupe." }, "private": { - "title": "", - "description": "" + "title": "Fă panoul public", + "description": "Sunteţi sigur că doriţi să faceţi această secţiune publică? Acest lucru va face panoul accesibil tuturor." } } }, "delete": { - "label": "", - "description": "", - "button": "", + "label": "Şterge această secţiune", + "description": "După ce ştergeţi o secţiune, nu există cale de întoarcere. Vă rugăm să fiţi sigur.", + "button": "Şterge această secţiune", "confirm": { "title": "Șterge planșa", - "description": "" + "description": "Sunteţi sigur că doriţi să ştergeţi această secţiune? Acest lucru va şterge definitiv secţiunea şi tot conţinutul acesteia." } } } @@ -4488,33 +4534,33 @@ }, "error": { "noBoard": { - "title": "", - "description": "", - "link": "", - "notice": "" + "title": "Bine ai venit la Homarr", + "description": "Un tablou de bord modern și cu mânecă care îți pune toate aplicațiile și serviciile la îndemână.", + "link": "Creează prima ta secţiune", + "notice": "Pentru a face această pagină să dispară, creaţi o secţiune şi setaţi-o ca pe prima pagină" }, "notFound": { - "title": "", - "description": "", - "link": "", - "notice": "" + "title": "Secţiunea nu a fost găsită", + "description": "Secţiunea specificată fie nu a fost găsită, fie nu ai acces la ea.", + "link": "Vezi toate secţiunile", + "notice": "Verificați link-ul sau contactați un administrator dacă credeți că acesta ar trebui să fie accesibil" }, "homeBoard": { - "title": "", + "title": "Nicio tabelă principală", "admin": { - "description": "", - "link": "", - "notice": "" + "description": "Încă nu ai setat o tabelă de start pentru server.", + "link": "Configurați panoul de pornire al serverului", + "notice": "Pentru a face această pagină să dispară pentru toţi utilizatorii, setaţi o pagină de start pentru server" }, "user": { - "description": "", - "link": "", - "notice": "" + "description": "Nu aţi setat încă o secţiune de acasă.", + "link": "Configurează-ți tabla principală", + "notice": "Pentru a face această pagină să dispară, specificaţi secţiunea de pornire în preferinţele dvs" }, "anonymous": { - "description": "", - "link": "", - "notice": "" + "description": "Administratorul serverului nu a setat încă o secţiune principală.", + "link": "Vezi secţiunile publice", + "notice": "Pentru a face această pagină să dispară, cereți administratorului serverului să seteze o tabelă de pornire pentru server" } } } @@ -4522,59 +4568,59 @@ "layout": { "field": { "name": { - "label": "" + "label": "Nume" }, "columnCount": { - "label": "" + "label": "Număr de coloane" }, "breakpoint": { - "label": "", - "description": "" + "label": "Breakpoint", + "description": "Aspect va fi utilizat pe toate ecranele mai mari decât acest punct de întrerupere până la următorul punct de întrerupere mai mare." } } }, "management": { - "metaTitle": "", + "metaTitle": "Gestionare", "title": { - "morning": "", - "afternoon": "", - "evening": "" + "morning": "Bună dimineața, {username}", + "afternoon": "Bună ziua, {username}", + "evening": "Bună seara, {username}" }, "notFound": { - "title": "", - "text": "" + "title": "Nu s-a găsit", + "text": "Nu am găsit resursa solicitată" }, "error": { - "title": "", - "text": "", - "digest": "" + "title": "Această pagină nu a putut fi încărcată", + "text": "O eroare neașteptată a apărut la încărcarea acestei pagini. Navigarea dvs. este încă disponibilă - încercați să reîncărcați sau să folosiți o altă secțiune din bara laterală.", + "digest": "Referință eroare: {digest}" }, "navbar": { "items": { "home": "Acasă", "boards": "Planșe", "apps": "Aplicații", - "integrations": "", - "customWidgets": "", - "searchEngies": "", - "medias": "", + "integrations": "Integrări", + "customWidgets": "Widget-uri personalizate", + "searchEngies": "Motoare de căutare", + "medias": "Medias", "users": { "label": "Utilizatori", "items": { "manage": "Gestionați", "invites": "Invitații", - "groups": "" + "groups": "Grupuri" } }, "tools": { "label": "Unelte", "items": { - "docker": "", - "kubernetes": "", - "logs": "", - "api": "", - "certificates": "", - "tasks": "", + "docker": "Doctor", + "kubernetes": "Kubernetes", + "logs": "Jurnale", + "api": "API & MCP", + "certificates": "Certificate", + "tasks": "Sarcini", "backup": "Copie de rezervă" } }, @@ -4583,9 +4629,9 @@ "label": "Ajutor", "items": { "documentation": "Documentație", - "submitIssue": "", + "submitIssue": "Trimite o problema", "discord": "Comunitatea Discord", - "sourceCode": "" + "sourceCode": "Cod sursă" } }, "about": "Despre" @@ -4597,63 +4643,63 @@ "board": "Planșe", "user": "Utilizatori", "invite": "Invitații", - "integration": "", + "integration": "Integrări", "app": "Aplicații", - "group": "", - "searchEngine": "", - "media": "" + "group": "Grupuri", + "searchEngine": "Motoare de căutare", + "media": "Medias" }, "statisticLabel": { "boards": "Planșe", - "resources": "", - "authentication": "", - "authorization": "" + "resources": "Resurse", + "authentication": "Autentificare", + "authorization": "Autorizare" }, "heroBanner": { - "title": "", - "subtitle": "" + "title": "Bine ai revenit la tine", + "subtitle": "{app} Secţiune" } }, "board": { "title": "Planșele dumneavoastră", "action": { "new": { - "label": "" + "label": "Panou nou" }, "open": { - "label": "" + "label": "Deschide tabla" }, "settings": { "label": "Setări" }, "setHomeBoard": { - "label": "", + "label": "Setează ca tabla de start", "badge": { "label": "Acasă", - "tooltip": "" + "tooltip": "Această secţiune se va afişa ca panoul tău principal" } }, "setMobileHomeBoard": { - "label": "", + "label": "Setează ca tabla mobilă", "badge": { - "label": "", - "tooltip": "" + "label": "Mobil", + "tooltip": "Această secţiune se va afişa ca tablă pentru mobil" } }, "duplicate": { - "label": "" + "label": "Duplică tabla" }, "delete": { "label": "Șterge definitiv", "confirm": { "title": "Șterge planșa", - "description": "" + "description": "Sunteţi sigur că doriţi să ştergeţi secţiunea {name}?" } } }, "visibility": { - "public": "", - "private": "" + "public": "Această secţiune este publică", + "private": "Această secţiune este privată" }, "noResults": { "title": "Nicio planșă încă" @@ -4669,24 +4715,24 @@ } }, "media": { - "includeFromAllUsers": "" + "includeFromAllUsers": "Include media de la toți utilizatorii" }, "user": { - "back": "", - "fieldsDisabledExternalProvider": "", + "back": "Înapoi la utilizatori", + "fieldsDisabledExternalProvider": "Anumite câmpuri sunt dezactivate deoarece sunt gestionate de un furnizor extern de autentificare.", "setting": { "general": { - "title": "", + "title": "Generalități", "item": { - "language": "", + "language": "Limba și regiunea", "board": { - "title": "", + "title": "Tablou principal", "type": { - "general": "", - "mobile": "" + "general": "Generalități", + "mobile": "Mobil" } }, - "search": "", + "search": "Caută", "firstDayOfWeek": "Prima zi a săptămâni", "accessibility": "Accesibilitate", "onboardingTours": { @@ -4720,50 +4766,50 @@ "title": "Utilizatori" }, "edit": { - "metaTitle": "" + "metaTitle": "Editare utilizator {username}" }, "create": { "metaTitle": "Creează utilizator", - "title": "", + "title": "Creare utilizator nou", "step": { "personalInformation": { - "label": "" + "label": "Informaţii personale" }, "security": { "label": "Securitate" }, "groups": { - "label": "", - "title": "", - "description": "" + "label": "Grupuri", + "title": "Selectați toate grupurile în care utilizatorul trebuie să fie membru al", + "description": "Grupul {everyoneGroup} este atribuit tuturor utilizatorilor și nu poate fi eliminat." }, "review": { - "label": "" + "label": "Revizuire" }, "completed": { - "title": "" + "title": "Utilizator creat" }, "error": { - "title": "" + "title": "Crearea utilizatorului a eșuat" } }, "action": { - "createAnother": "", - "back": "" + "createAnother": "Creează un alt utilizator", + "back": "Revenire la lista de utilizatori" } }, "invite": { "title": "Gestionează invitațiile utilizatorului", "action": { "new": { - "title": "", + "title": "Invitație nouă", "description": "După expirare, invitația nu va mai fi valabilă iar destinatarul invitației nu va mai putea crea un cont." }, "copy": { - "title": "", - "description": "", + "title": "Copiază invitația", + "description": "Invitația dvs. a fost generată. După închiderea acestei modalități, nu veți mai putea copia acest link. Dacă nu mai doriţi să invitaţi persoana menţionată, puteţi şterge oricând această invitaţie.", "link": "Link de invitație", - "button": "" + "button": "Copiază și închide" }, "delete": { "title": "Șterge invitație", @@ -4772,45 +4818,45 @@ }, "field": { "id": { - "label": "" + "label": "ID" }, "creator": { - "label": "" + "label": "Creator" }, "expirationDate": { "label": "Data expirării" }, "token": { - "label": "" + "label": "Token" } } } }, "group": { - "back": "", + "back": "Înapoi la grupuri", "setting": { "general": { - "title": "", + "title": "Generalități", "owner": "Proprietar", - "ownerOfGroup": "", - "ownerOfGroupDeleted": "" + "ownerOfGroup": "Proprietarul acestui grup", + "ownerOfGroupDeleted": "Proprietarul acestui grup a fost șters. În prezent nu are proprietar." }, "setting": { - "title": "", - "alert": "", + "title": "Setări", + "alert": "Setările de grup sunt prioritizate de ordinea grupurilor din listă. Setările de sus suprascriu setările de jos.", "board": { - "title": "" + "title": "Secţiuni" } }, "members": { - "title": "", - "search": "", - "notFound": "" + "title": "Membri", + "search": "Găsește un membru", + "notFound": "Niciun membru găsit" }, "permissions": { - "title": "", + "title": "Permisiuni", "form": { - "unsavedChanges": "" + "unsavedChanges": "Ai modificări nesalvate!" } } } @@ -4819,191 +4865,191 @@ "title": "Setări", "notification": { "success": { - "message": "" + "message": "Setări salvate cu succes" }, "error": { - "message": "" + "message": "Salvarea setărilor a eșuat" } }, "section": { "analytics": { - "title": "", + "title": "Analize", "general": { - "title": "", - "text": "" + "title": "Ajută-ne să îmbunătățim Homarr", + "text": "Acest lucru ne ajută să ne dăm seama ce folosesc de fapt oamenii, astfel încât să știm unde să ne petrecem timpul. Vedem lucruri cum ar fi câte widget-uri sau integrări aveți, versiunea Homarr și ce bază de date vă aflați. Asta e — fără informații personale, fără URL-uri, fără nume, fără nimic care să te poată identifica pe tine sau pe configurația ta." } }, "crawlingAndIndexing": { - "title": "", - "warning": "", + "title": "Crawling și Indexarea", + "warning": "Activarea sau dezactivarea oricăror setări de aici va avea un impact grav asupra modului în care motoarele de căutare vor indexa și vor face crawl pagina dvs. Orice setare este o cerere și este la latitudinea șoferului să aplice aceste setări. Orice modificare poate dura până la mai multe zile sau săptămâni de aplicat. Unele setări pot fi specifice motorului de căutare.", "noIndex": { - "title": "", - "text": "" + "title": "Nici un index", + "text": "Nu indexați site-ul pe motoarele de căutare și nu îl afișați în rezultatele căutării" }, "noFollow": { - "title": "", - "text": "" + "title": "Nici o urmărire", + "text": "Nu urmări niciun link în timpul indexării. Dezactivarea acestui lucru va duce la tentative de a urmări toate link-urile de pe Homarr." }, "noTranslate": { - "title": "", - "text": "" + "title": "Nici o traducere", + "text": "Atunci când limba site-ului nu este probabil ca utilizatorul să dorească să citească, Google va afișa un link de traducere în rezultatele căutării" }, "noSiteLinksSearchBox": { - "title": "", - "text": "" + "title": "Nici o caseta de cautare link-uri site", + "text": "Google va construi o casetă de căutare cu link-urile crawled împreună cu alte link-uri directe. Activarea acestui lucru va cere Google să dezactiveze acea casetă." } }, "board": { "title": "Planșe", "homeBoard": { - "label": "", - "mobileLabel": "", - "description": "" + "label": "Panou global acasă", + "mobileLabel": "Tablou global pentru mobil", + "description": "Numai secţiunile publice sunt disponibile pentru selecţie" }, "status": { - "title": "", + "title": "Starea aplicației", "enableStatusByDefault": { - "label": "", - "description": "" + "label": "Activează implicit starea", + "description": "Când se adaugă un element al aplicației, starea va fi activată în mod implicit" }, "forceDisableStatus": { - "label": "", - "description": "" + "label": "Forțează dezactivarea stării", + "description": "Starea aplicațiilor va fi dezactivată pentru toți utilizatorii și nu poate fi activată" } } }, "user": { - "title": "", + "title": "Utilizatori", "enableGravatar": { - "label": "", - "description": "" + "label": "Activează Gravatar", + "description": "Revine la avatarele utilizatorului de la Libravatar/Gravatar atunci când nu este setat nici un avatar personalizat și un e-mail este configurat" } }, "search": { - "title": "", + "title": "Caută", "defaultSearchEngine": { - "label": "", - "description": "" + "label": "Motorul de căutare implicit global", + "description": "Motoarele de căutare de integrare nu pot fi selectate aici" } }, "appearance": { "title": "Aspect", "defaultColorScheme": { - "label": "", + "label": "Schema de culori implicită", "options": { "auto": "Auto", - "light": "", - "dark": "" + "light": "Lumină", + "dark": "Întunecat" } } }, "culture": { - "title": "", + "title": "Cultură", "defaultLocale": { - "label": "" + "label": "Limba implicită" } } } }, "tool": { "tasks": { - "title": "", + "title": "Sarcini", "status": { - "idle": "", + "idle": "Inactiv", "running": "Rulează", "error": "Eroare", - "disabled": "" + "disabled": "Dezactivat" }, "job": { "iconsUpdater": { - "label": "" + "label": "Actualizare pictograme" }, "analytics": { - "label": "" + "label": "Analize" }, "ping": { - "label": "" + "label": "Ping-uri" } }, "interval": { - "seconds": "", - "minutes": "", - "hours": "", - "midnight": "", - "weeklyMonday": "", + "seconds": "La fiecare {interval, plural, =1 {secundă} other {# secunde}}", + "minutes": "Fiecare {interval, plural, =1 {minut} other {# minute}}", + "hours": "La fiecare {interval, plural, =1 {oră} other {# ore}}", + "midnight": "În fiecare zi la miezul nopții", + "weeklyMonday": "În fiecare săptămână de luni", "update": { "success": { - "message": "" + "message": "Interval actualizat cu succes" }, "error": { - "message": "" + "message": "Actualizarea intervalului a eșuat" } } }, "settings": { - "title": "" + "title": "Setări sarcină pentru {jobName}" }, "field": { "name": { - "label": "" + "label": "Nume" }, "interval": { - "label": "" + "label": "Interval de programare" }, "lastExecution": { - "label": "" + "label": "Ultima execuție" }, "actions": { - "label": "" + "label": "Acțiuni" } }, "table": { - "search": "" + "search": "Căutare {count} activități..." }, "action": { "refresh": { - "label": "" + "label": "Împrospătează" } }, "refresh": { "success": { - "message": "" + "message": "Sarcini reîmprospătate cu succes" }, "error": { - "message": "" + "message": "Reîmprospătarea sarcinilor a eșuat" } }, "trigger": { "success": { - "message": "" + "message": "Sarcină declanșată cu succes" }, "error": { - "message": "" + "message": "Declanșarea sarcinii a eșuat" } }, "enable": { "success": { - "message": "" + "message": "Sarcină activată cu succes" } }, "disable": { "success": { - "message": "" + "message": "Sarcină dezactivată cu succes" } }, "toggle": { "error": { - "message": "" + "message": "Eroare la comutarea statusului sarcinii" } } }, "api": { - "title": "", + "title": "API", "modal": { "createApiToken": { - "title": "", - "description": "", - "button": "" + "title": "Token API creat", + "description": "Token API a fost creat. Ai grijă, acest token este criptat în baza de date și nu va mai fi transferat niciodată către tine. Dacă ai pierdut acest token, nu vei mai putea prelua acest token specific.", + "button": "Copiază și închide" } }, "tab": { @@ -5011,112 +5057,112 @@ "label": "Documentație" }, "apiKey": { - "label": "", - "title": "", + "label": "Autentificare", + "title": "Chei API", "button": { - "createApiToken": "" + "createApiToken": "Creare simbol API" }, "modal": { "delete": { - "title": "", - "text": "" + "title": "Șterge token API", + "text": "Acest lucru va șterge permanent token-ul API. Clienții API care folosesc acest token nu se mai pot autentifica și efectua cereri API. Această acțiune nu poate fi anulată." } }, "table": { "header": { - "id": "", - "createdBy": "", - "actions": "" + "id": "ID", + "createdBy": "Creat de", + "actions": "Acțiuni" } } }, "mcp": { - "label": "", - "title": "", - "subtitle": "", - "description": "", - "noApiKey": "", - "createApiKeyButton": "", + "label": "AI / MCP", + "title": "Integrare AI", + "subtitle": "Server model de protocol contextual (MCP)", + "description": "Conectează AI asistenți la instanța ta Homarr și controlează întregul tău homelab prin limbajul natural. Căutați și solicitați media pe Overseerr, gestionați containerele Docker, comutați Pi-hole, verifică sănătatea serverului, controlează dispozitivele Asistent la domiciliu, și multe altele - toate de la AI asistent.", + "noApiKey": "Ai nevoie de o cheie API pentru a te autentifica cu serverul MCP.", + "createApiKeyButton": "Creare cheie API", "endpoint": { - "title": "" + "title": "Punct final MCP" }, "authentication": { - "title": "", - "intro": "", + "title": "Autentificare", + "intro": "Vă puteți autentifica cu serverul MCP folosind fie o cheie API, fie OAuth. Ambele metode permit același nivel de acces.", "apiKey": { - "title": "", - "description": "" + "title": "Cheie API (manual)", + "description": "Transmite antetul ApiKey cu cheia API completă în configurarea clientului MCP." }, "oauth": { - "title": "", - "description": "", - "hint": "" + "title": "OAuth (browser login)", + "description": "Clienții care acceptă OAuth (cum ar fi Claude Code, opencode, sau Cursor) se pot autentifica deschizând o fereastră de browser. Rulează comanda de autentificare în clientul tău, loghează-te la Homarr în browser și ești conectat — o cheie API este creată automat.", + "hint": "Token-urile OAuth apar ca chei API obișnuite în fila de autentificare. Le puteți revoca în orice moment." }, - "permissions": "" + "permissions": "Cheia API determină permisiunile disponibile pentru AI - operează cu același nivel de acces ca și proprietarul cheii." }, "clientConfig": { - "title": "", + "title": "Configurare client", "streamableHttp": { - "recommended": "", - "title": "", - "worksWith": "", - "addToConfig": "", - "cursor": "", - "claudeDesktop": "", - "claudeCode": "", - "vsCodeCopilot": "", - "replaceHint": "" + "recommended": "Recomandat", + "title": "HTTP Streamabil", + "worksWith": "Lucrări cu: Cursor, Claude Desktop, VS Code Copilot, Windsurf, Claude Code", + "addToConfig": "Adaugă la fișierul de configurare a clientului MCP:", + "cursor": "{name}: {file} în proiectul sau setările globale", + "claudeDesktop": "{name}: {file}", + "claudeCode": "{name}: {file} sau folosiți {command}", + "vsCodeCopilot": "{name}: {file} în setările spațiului de lucru", + "replaceHint": "Înlocuiți substituentul cu cheia API pe care ați primit-o atunci când l-ați creat." }, "stdio": { - "title": "", - "description": "" + "title": "stdio (moștenitor clienți prin podul mcp)", + "description": "Pentru clienții care acceptă numai transport stdio. Necesită {dependency} (Node.js) instalat local:" } }, "testConnection": { - "title": "", - "description": "", - "hint": "" + "title": "Testează-ți conexiunea", + "description": "Rulează acest lucru în terminalul tău pentru a verifica obiectivul final este accesibil și cheia ta API:", + "hint": "Un răspuns de succes returnează capabilitățile serverului MCP. Dacă vezi o eroare, verifică răspunsul JSON pentru indicii." }, "availableTools": { - "title": "", - "description": "", - "columnType": "", - "columnName": "", - "columnDescription": "" + "title": "Instrumente disponibile", + "description": "{count} unelte disponibile. Extinde o categorie pentru a vedea uneltele individuale și descrierile lor.", + "columnType": "Tip", + "columnName": "Unelte", + "columnDescription": "Descriere" }, "troubleshooting": { - "title": "", + "title": "Depanare", "missingHeader": { - "title": "", - "description": "" + "title": "\"Lipsă header ApiKey", + "description": "Clientul dvs. nu trimite headerul {header} . Verificați dacă secțiunea {section} din configurația MCP este corectă. Unii clienți necesită repornirea după modificarea configurării." }, "invalidFormat": { - "title": "", - "description": "" + "title": "\"Format ApiKey nevalid\"", + "description": "Asigurați-vă că ați copiat cheia API completă, nu doar o parte a ei." }, "invalidKey": { - "title": "", - "description": "" + "title": "Cheie API invalida", + "description": "ID-ul cheii nu a fost găsit sau token-ul este greșit. Chei API pot fi vizualizate doar o dată când a fost creat. Dacă ați pierdut-o, ștergeți cheia veche și creați una nouă." }, "connectionRefused": { - "title": "", - "description": "" + "title": "Conexiune refuzată / expirare", + "description": "Asigură-te că adresa URL este accesibilă clientului tău AI. Dacă Homarr rulează în spatele unui proxy inversat sau în Docker, utilizați URL-ul extern (nu {localhost}). Verificarea portului este corectă (implicit: 7575 pentru Docker)." }, "toolsNotAppearing": { - "title": "", - "description": "" + "title": "Unelte care nu apar", + "description": "Unele unelte necesită integrări specifice pentru a fi configurate (de ex. Docker, Overseerr). Lista de unelte depinde de ce este disponibil în instanța de Homarr." } }, - "copy": "", + "copy": "Copiază", "oneClick": { - "title": "", - "subtitle": "", - "vsCode": "", - "cursor": "", - "copyUrl": "", - "copied": "", - "copyHint": "", - "manualConfig": "" + "title": "Instalează cu un singur clic", + "subtitle": "Folosește OAuth - autentifică-te în browser la prima utilizare", + "vsCode": "Instalează în VS Code", + "cursor": "Instalează în Cursor", + "copyUrl": "Copiază URL-ul MCP", + "copied": "Copiat!", + "copyHint": "Pentru ChatGPT, Claude Code sau orice client MCP", + "manualConfig": "Configurare manuală" } } } @@ -5242,39 +5288,39 @@ } }, "about": { - "version": "", - "text": "", + "version": "{version} versiune", + "text": "Homarr este un proiect open source condus de comunitate, care este întreținut de voluntari. Datorită acestor persoane, Homarr este un proiect în creştere din 2021. Echipa noastră lucrează la distanţă totală din multe ţări diferite pe Homarr în timpul liber fără nicio compensaţie.", "accordion": { "contributors": { - "title": "", - "subtitle": "" + "title": "Colaboratori", + "subtitle": "{count} menținere cod & Homarr" }, "translators": { - "title": "", - "subtitle": "" + "title": "Traducători", + "subtitle": "{count} contribuind cu traduceri în mai multe limbi" }, "sponsors": { - "title": "", - "subtitle": "" + "title": "Sponsori", + "subtitle": "{count} pentru susținerea financiară a proiectului" }, "libraries": { - "title": "", - "subtitle": "" + "title": "Biblioteci", + "subtitle": "{count} utilizat în Codul de Homarr" }, "hotkeys": { - "title": "", - "subtitle": "", + "title": "Taste", + "subtitle": "Scurtături tastatură pentru a îmbunătăți fluxul de lucru", "field": { - "shortcut": "", - "action": "" + "shortcut": "Scurtătură", + "action": "Acțiune" }, "action": { - "toggleBoardEdit": "", - "toggleColorScheme": "", - "saveNotebook": "", - "openSpotlight": "" + "toggleBoardEdit": "Comutare mod editare secţiune", + "toggleColorScheme": "Comută modul lumină/întunecat", + "saveNotebook": "Salvare notebook (doar în interiorul widget-ului pe notebook)", + "openSpotlight": "Deschide căutarea" }, - "note": "" + "note": "Sfat: Mod se referă atât la tasta Ctrl cât și la tasta q pe macOS" } } } @@ -5283,15 +5329,15 @@ "docker": { "title": "Containere", "table": { - "updated": "", + "updated": "Actualizat {when}", "refresh": { - "lastUpdated": "" + "lastUpdated": "Ultima reîmprospătare {when}" }, - "search": "", - "selected": "", - "footer": "", - "totalCpu": "", - "totalMemory": "" + "search": "Sfiecare {count} recipiente", + "selected": "{selectCount} de {totalCount} recipiente selectate", + "footer": "Total {count} containere", + "totalCpu": "Total CPU: {cpu}%", + "totalMemory": "Total Mem: {memory}" }, "field": { "name": { @@ -5304,17 +5350,17 @@ "running": "Rulează", "paused": "În pauză", "restarting": "Repornire", - "exited": "", + "exited": "Ieşit", "removing": "Eliminare", - "dead": "" + "dead": "Mort" } }, "stats": { "cpu": { - "label": "" + "label": "procesor" }, "memory": { - "label": "" + "label": "Memorie" } }, "containerImage": { @@ -5328,7 +5374,7 @@ } }, "action": { - "title": "", + "title": "Acțiuni", "logs": { "label": "Vezi jurnalele", "page": { @@ -5339,12 +5385,12 @@ "label": "Pornește", "notification": { "success": { - "title": "", - "message": "" + "title": "Containere pornite", + "message": "Containerele au fost pornite cu succes" }, "error": { - "title": "", - "message": "" + "title": "Containerele nu au pornit", + "message": "Recipientele nu au putut fi pornite" } } }, @@ -5352,12 +5398,12 @@ "label": "Opreşte", "notification": { "success": { - "title": "", - "message": "" + "title": "Containere oprite", + "message": "Containerele au fost oprite cu succes" }, "error": { - "title": "", - "message": "" + "title": "Recipientele nu s-au oprit", + "message": "Containerele nu au putut fi oprite" } } }, @@ -5365,331 +5411,331 @@ "label": "Repornește", "notification": { "success": { - "title": "", - "message": "" + "title": "Recipiente repornit", + "message": "Recipientele au fost restartate cu succes" }, "error": { - "title": "", - "message": "" + "title": "Recipientele nu au fost repornite", + "message": "Recipientele nu au putut fi repornite" } } }, "remove": { "label": "Elimină", - "confirm": "", + "confirm": "Click din nou pentru a elimina permanent", "notification": { "success": { - "title": "", - "message": "" + "title": "Recipiente eliminate", + "message": "Containerele au fost eliminate cu succes" }, "error": { - "title": "", - "message": "" + "title": "Containerele nu au fost șterse", + "message": "Recipientele nu au putut fi scoase" } } }, "refresh": { - "label": "", + "label": "Împrospătează", "notification": { "success": { - "title": "", - "message": "" + "title": "Recipiente reîmprospătate", + "message": "Acum vizualizați cele mai recente date" }, "error": { - "title": "", - "message": "" + "title": "Recipiente nereîmprospătate", + "message": "Ceva nu a funcționat în timpul reîmprospătării containerelor" } } }, "addToHomarr": { - "label": "", + "label": "Adaugă la Homarr", "notification": { "success": { - "title": "", - "message": "" + "title": "Adăugat la Homarr", + "message": "Aplicațiile selectate au fost adăugate la Homarr" }, "error": { - "title": "", - "message": "" + "title": "Nu s-a putut adăuga la Homarr", + "message": "Aplicațiile selectate nu au putut fi adăugate la Homarr" } }, "modal": { - "title": "" + "title": "Adaugă docker container(-s) în Homarr" } } }, "error": { - "internalServerError": "", - "noColumns": "" + "internalServerError": "Eșec la preluarea containerelor Docker", + "noColumns": "Selectaţi cel puţin o coloană în setările widget-ului" } }, "kubernetes": { "cluster": { - "title": "", - "label": "", - "providers": "", - "version": "", - "architecture": "", + "title": "Tablou de bord", + "label": "Grup", + "providers": "Furnizori", + "version": "Versiune", + "architecture": "Arhitectură", "capacity": { - "title": "", + "title": "Capacitate", "resource": { - "reserved": "", - "used": "" + "reserved": "Rezervat", + "used": "Utilizat" } }, "resources": { - "title": "", - "nodes": "", - "namespaces": "", - "ingresses": "", - "services": "", - "pods": "", - "configmaps": "", - "secrets": "", - "volumes": "" + "title": "Resurse", + "nodes": "Nodes", + "namespaces": "Numespaces", + "ingresses": "Ingrese", + "services": "Servicii", + "pods": "Poze", + "configmaps": "ConfigMaps", + "secrets": "Secrete", + "volumes": "Volume" } }, "nodes": { - "label": "", + "label": "Nodes", "field": { "name": { - "label": "" + "label": "Nume" }, "state": { - "label": "", + "label": "Județ", "option": { - "ready": "", - "NotReady": "" + "ready": "Gata", + "NotReady": "Nu este gata" } }, "cpu": { - "label": "" + "label": "procesor" }, "memory": { - "label": "" + "label": "RAM" }, "pods": { - "label": "" + "label": "Poze" }, "operatingSystem": { - "label": "" + "label": "SG" }, "architecture": { - "label": "" + "label": "Arhitectură" }, "kubernetesVersion": { - "label": "" + "label": "Versiune Kubernetes" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} noduri" } }, "namespaces": { - "label": "", + "label": "Numespaces", "field": { "name": { - "label": "" + "label": "Nume" }, "state": { - "label": "", + "label": "Județ", "option": { - "active": "", - "terminating": "" + "active": "Activ", + "terminating": "Terminare" } }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} spații de nume" } }, "ingresses": { - "label": "", + "label": "Ingrese", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Numespace" }, "className": { - "label": "" + "label": "Numele clasei" }, "rulesAndPaths": { - "label": "" + "label": "Reguli și căi" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} ingresses" } }, "services": { - "label": "", + "label": "Servicii", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Numespace" }, "type": { - "label": "" + "label": "Tip" }, "ports": { - "label": "" + "label": "Porturi" }, "targetPorts": { - "label": "" + "label": "Porturi vizate" }, "clusterIP": { - "label": "" + "label": "IP cluster" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Caută servicii {count}" } }, "pods": { - "label": "", + "label": "Poze", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Numespace" }, "image": { - "label": "" + "label": "Imagine" }, "applicationType": { - "label": "" + "label": "Tipul aplicației" }, "status": { - "label": "" + "label": "Status" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Caută {count} poduri" } }, "secrets": { - "label": "", + "label": "Secrete", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Spațiu de nume" }, "type": { - "label": "" + "label": "tip" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} secrete" } }, "configmaps": { - "label": "", + "label": "ConfigMaps", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Spațiu de nume" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} configurație Hărți" } }, "volumes": { - "label": "", + "label": "Volume", "field": { "name": { - "label": "" + "label": "Nume" }, "namespace": { - "label": "" + "label": "Numespace" }, "accessModes": { - "label": "" + "label": "Modul de acces" }, "storage": { - "label": "" + "label": "Depozitare" }, "storageClassName": { - "label": "" + "label": "Numele clasei de stocare" }, "volumeMode": { - "label": "" + "label": "Mod volum" }, "volumeName": { - "label": "" + "label": "Denumire volum" }, "status": { - "label": "" + "label": "Status" }, "creationTimestamp": { - "label": "" + "label": "Creat" } }, "table": { - "search": "" + "search": "Căutare {count} volume" } }, "error": { - "internalServerError": "" + "internalServerError": "Nu s-a reușit preluarea datelor Kubernetes" } }, "permission": { - "title": "", + "title": "Permisiuni", "userSelect": { - "title": "" + "title": "Adaugă permisiuni utilizator" }, "groupSelect": { - "title": "" + "title": "Adaugă permisiune de grup" }, "tab": { "user": "Utilizatori", - "group": "", - "inherited": "" + "group": "Grupuri", + "inherited": "Grupuri moștenite" }, "field": { "user": { "label": "Utilizator" }, "group": { - "label": "" + "label": "Grup" }, "permission": { - "label": "" + "label": "Permisiune" } }, "action": { - "saveUser": "", - "saveGroup": "" + "saveUser": "Salvează permisiunile utilizatorului", + "saveGroup": "Salvează permisiune de grup" } }, "navigationStructure": { @@ -5699,44 +5745,44 @@ "label": "Planșe" }, "integrations": { - "label": "", + "label": "Integrări", "edit": { "label": "Editare" }, "new": { - "label": "" + "label": "Nou" } }, "search-engines": { - "label": "", + "label": "Motoare de căutare", "new": { - "label": "" + "label": "Nou" }, "edit": { "label": "Editare" } }, "medias": { - "label": "" + "label": "Medias" }, "apps": { "label": "Aplicații", "new": { - "label": "" + "label": "Nou" }, "edit": { "label": "Editare" } }, "custom-widgets": { - "label": "", + "label": "Widget-uri personalizate", "new": { - "label": "" + "label": "Nou" }, "edit": { - "label": "", + "label": "Editare", "flow": { - "label": "" + "label": "Fluxuri" } } }, @@ -5745,11 +5791,11 @@ "create": { "label": "Creează" }, - "general": "", + "general": "Generalități", "security": "Securitate", "board": "Planșe", "groups": { - "label": "" + "label": "Grupuri" }, "invites": { "label": "Invitații" @@ -5758,48 +5804,48 @@ "tools": { "label": "Unelte", "tasks": { - "label": "" + "label": "Sarcini" }, "docker": { - "label": "", + "label": "Doctor", "logs": { "label": "Jurnale" } }, "kubernetes": { - "label": "", + "label": "Kubernetes", "nodes": { - "label": "" + "label": "Nodes" }, "namespaces": { - "label": "" + "label": "Numespaces" }, "ingresses": { - "label": "" + "label": "Ingrese" }, "services": { - "label": "" + "label": "Servicii" }, "pods": { - "label": "" + "label": "pode" }, "configmaps": { - "label": "" + "label": "ConfigMaps" }, "secrets": { - "label": "" + "label": "Secrete" }, "volumes": { - "label": "" + "label": "Volume" } }, "logs": { - "label": "" + "label": "Jurnale" }, "certificates": { - "label": "", + "label": "Certificate", "hostnames": { - "label": "" + "label": "Nume gazdă" } } }, @@ -5812,28 +5858,28 @@ } }, "search": { - "placeholder": "", - "nothingFound": "", + "placeholder": "Caută orice", + "nothingFound": "Nimic găsit", "error": { - "fetch": "" + "fetch": "A apărut o eroare la preluarea datelor" }, "mode": { "appIntegrationBoard": { - "help": "", + "help": "Caută aplicații, integrări sau secțiuni", "group": { "app": { "title": "Aplicații", "children": { "action": { "open": { - "label": "" + "label": "Deschide URL-ul aplicației" }, "edit": { - "label": "" + "label": "Editare aplicație" } }, "detail": { - "title": "" + "title": "Selectați o acțiune pentru aplicație" } } }, @@ -5842,75 +5888,75 @@ "children": { "action": { "open": { - "label": "" + "label": "Deschide tabla" }, "homeBoard": { - "label": "" + "label": "Setează ca tabla principală" }, "mobileBoard": { - "label": "" + "label": "Setează ca forum mobil" }, "settings": { - "label": "" + "label": "Deschideți setările" } }, "detail": { - "title": "" + "title": "Selectează o acțiune pentru tablă" } } }, "integration": { - "title": "" + "title": "Integrări" } } }, "command": { - "help": "", + "help": "Activează modul de comandă", "group": { "localCommand": { - "title": "" + "title": "Comenzi locale" }, "globalCommand": { - "title": "", + "title": "Comenzi globale", "option": { "colorScheme": { "auto": "Comută modul de aspect", - "light": "", - "dark": "" + "light": "Comutați la modul lumină", + "dark": "Comutați la modul întunecat" }, "language": { - "label": "", + "label": "Schimbă limba", "children": { "detail": { - "title": "" + "title": "Selectează limba preferată" } } }, "newBoard": { - "label": "" + "label": "Creează o nouă secţiune" }, "importBoard": { - "label": "" + "label": "Importă o secţiune" }, "newApp": { - "label": "" + "label": "Creează o aplicație nouă" }, "newIntegration": { - "label": "", + "label": "Creează o nouă integrare", "children": { "detail": { - "title": "" + "title": "Selectați tipul de integrare pe care doriți să îl creați" } } }, "newUser": { - "label": "" + "label": "Creează un utilizator nou" }, "newInvite": { - "label": "" + "label": "Creează o invitație nouă" }, "newGroup": { - "label": "" + "label": "Creează un grup nou" } } }, @@ -6017,10 +6063,10 @@ } }, "enableRightClickOnWidgets": { - "label": "", + "label": "Activează clic-dreapta pe widget-uri", "children": { "detail": { - "title": "" + "title": "Activează clic-dreapta pe widget-uri" } } }, @@ -6033,9 +6079,9 @@ }, "media": { "help": "Căutați filme sau seriale pentru a le solicita", - "requestMovie": "", - "requestSeries": "", - "openIn": "", + "requestMovie": "Cere film", + "requestSeries": "Cerere de serie", + "openIn": "Deschide în {kind}", "group": { "title": "Filme și seriale" }, @@ -6058,10 +6104,10 @@ } }, "external": { - "help": "", + "help": "Utilizați un motor de căutare extern", "group": { "searchEngine": { - "title": "", + "title": "Motoare de căutare", "tipDdgBangs": "Sfat: puteți folosi orice bang DuckDuckGo și aici, de ex. !ceva", "bang": { "searchWithQuery": "Caută „{query}” cu {label}", @@ -6073,36 +6119,36 @@ "children": { "action": { "search": { - "label": "" + "label": "Căutare cu {name}" } }, "detail": { - "title": "" + "title": "Selectați o acțiune pentru motorul de căutare" }, "searchResults": { - "title": "" + "title": "Selectați un rezultat de căutare pentru acțiuni" } }, "option": { "google": { - "name": "", - "description": "" + "name": "Google", + "description": "Caută pe web cu Google" }, "bing": { - "name": "", - "description": "" + "name": "Bing", + "description": "Caută pe web cu Bing" }, "duckduckgo": { - "name": "", - "description": "" + "name": "DuckDuckGo", + "description": "Caută pe web cu DuckDuckGo" }, "torrent": { "name": "Torrent", - "description": "" + "description": "Caută torente pe torrentdownloads.pro" }, "youTube": { - "name": "", - "description": "" + "name": "YouTube", + "description": "Caută videoclipuri pe YouTube" } } } @@ -6111,7 +6157,7 @@ "help": { "group": { "mode": { - "title": "" + "title": "Moduri" }, "help": { "title": "Ajutor", @@ -6120,7 +6166,7 @@ "label": "Documentație" }, "submitIssue": { - "label": "" + "label": "Trimite o problema" }, "discord": { "label": "Comunitatea Discord" @@ -6132,81 +6178,81 @@ "home": { "group": { "search": { - "title": "", + "title": "Caută", "option": { "other": { - "label": "" + "label": "Căutare cu un alt motor de căutare" }, "no-default": { - "label": "", - "description": "" + "label": "Niciun motor de căutare implicit", + "description": "Setați un motor de căutare implicit în preferințe" }, "search": { - "label": "" + "label": "Caută \"{query}\" cu {name}" }, "from-integration": { - "description": "" + "description": "Începeți să tastați pentru a căuta" } } }, "local": { - "title": "" + "title": "Rezultate locale" } } }, "page": { - "help": "", + "help": "Caută pagini", "group": { "page": { - "title": "", + "title": "Pagini", "option": { "manageHome": { - "label": "" + "label": "Gestionați pagina principală" }, "manageBoard": { - "label": "" + "label": "Gestionează secţiuni" }, "manageApp": { - "label": "" + "label": "Gestionați aplicațiile" }, "manageIntegration": { - "label": "" + "label": "Gestionează integrările" }, "manageSearchEngine": { - "label": "" + "label": "Gestionează motoarele de căutare" }, "manageMedia": { - "label": "" + "label": "Gestionează mediile" }, "manageUser": { "label": "Gestionați utilizatorii" }, "manageInvite": { - "label": "" + "label": "Gestionează invitațiile" }, "manageGroup": { - "label": "" + "label": "Gestionează grupuri" }, "manageDocker": { - "label": "" + "label": "Gestionează docker" }, "manageApi": { - "label": "" + "label": "Swagger API" }, "manageLog": { - "label": "" + "label": "Vezi jurnalele" }, "manageTask": { - "label": "" + "label": "Gestionare sarcini" }, "manageSettings": { - "label": "" + "label": "Setări globale" }, "about": { "label": "Despre" }, "homeBoard": { - "label": "" + "label": "Tablou principal" }, "preferences": { "label": "Preferințele dvs." @@ -6216,37 +6262,37 @@ } }, "userGroup": { - "help": "", + "help": "Caută utilizatori sau grupuri", "group": { "user": { "title": "Utilizatori", "children": { "action": { "detail": { - "label": "" + "label": "Arată detaliile utilizatorului" } }, "detail": { - "title": "" + "title": "Selectați o acțiune pentru utilizator" } } }, "group": { - "title": "", + "title": "Grupuri", "children": { "action": { "detail": { - "label": "" + "label": "Arată detaliile grupului" }, "manageMember": { - "label": "" + "label": "Gestionează membrii" }, "managePermission": { - "label": "" + "label": "Gestionare permisiuni" } }, "detail": { - "title": "" + "title": "Selectați o acțiune pentru grup" } } } @@ -6254,72 +6300,72 @@ } }, "engine": { - "search": "", + "search": "Găsește un motor de căutare", "field": { "name": { "label": "Nume" }, "short": { - "label": "" + "label": "Scurt" }, "urlTemplate": { - "label": "" + "label": "Șablon de căutare URL" }, "description": { - "label": "" + "label": "Descriere" } }, "page": { "list": { - "title": "", + "title": "Motoare de căutare", "noResults": { - "title": "", - "action": "" + "title": "Nu există încă motoare de căutare", + "action": "Creați primul dvs. motor de căutare" }, - "interactive": "" + "interactive": "Interactiv, folosește o integrare" }, "create": { - "title": "", + "title": "Motor de căutare nou", "notification": { "success": { - "title": "", - "message": "" + "title": "Motor de căutare creat", + "message": "Motorul de căutare a fost creat cu succes" }, "error": { - "title": "", - "message": "" + "title": "Motorul de căutare nu a fost creat", + "message": "Motorul de căutare nu a putut fi creat" } } }, "edit": { - "title": "", + "title": "Editare motor de căutare", "notification": { "success": { - "title": "", - "message": "" + "title": "Modificări aplicate cu succes", + "message": "Motorul de căutare a fost salvat cu succes" }, "error": { - "title": "", - "message": "" + "title": "Imposibil de aplicat modificările", + "message": "Motorul de căutare nu a putut fi salvat" } }, - "configControl": "", + "configControl": "Configurare", "searchEngineType": { - "generic": "", - "fromIntegration": "" + "generic": "Generic", + "fromIntegration": "De la integrare" } }, "delete": { - "title": "", - "message": "", + "title": "Șterge motorul de căutare", + "message": "Sigur doriți să ștergeți motorul de căutare {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "Motor de căutare șters", + "message": "Motorul de căutare a fost șters cu succes" }, "error": { - "title": "", - "message": "" + "title": "Motorul de căutare nu a fost șters", + "message": "Motorul de căutare nu a putut fi șters" } } } @@ -6327,11 +6373,11 @@ "media": { "request": { "modal": { - "title": "", + "title": "Solicită \"{name}\"", "table": { "header": { - "season": "", - "episodes": "", + "season": "Sezon", + "episodes": "Episoade", "status": "Stare" }, "status": { @@ -6339,7 +6385,7 @@ } }, "button": { - "send": "" + "send": "Trimite cerere" } } } @@ -6349,89 +6395,89 @@ "certificate": { "field": { "hostname": { - "label": "" + "label": "Hostname" }, "subject": { - "label": "" + "label": "Subiect" }, "issuer": { - "label": "" + "label": "Emitent" }, "validFrom": { - "label": "" + "label": "Valabil de la" }, "validTo": { - "label": "" + "label": "Valabil până la" }, "serialNumber": { - "label": "" + "label": "Număr de serie" }, "fingerprint": { - "label": "" + "label": "Amprentă" } }, "page": { "list": { - "title": "", - "description": "", + "title": "Certificate de încredere", + "description": "Folosit de Homarr pentru a solicita date de la integrări.", "noResults": { - "title": "" + "title": "Nu există încă certificate" }, "invalid": { - "title": "", - "description": "" + "title": "Invalid certificate", + "description": "Analiza certificatului a eșuat" }, - "expires": "", - "toHostnames": "" + "expires": "Expiră {when}", + "toHostnames": "Nume de host-uri de încredere" }, "hostnames": { - "title": "", - "description": "", + "title": "Numele de gazdă certificat de încredere", + "description": "Unele certificate nu permit domeniului specific pe care Homarr îl utilizează pentru a le solicita, din acest motiv, toate numele gazdei de încredere cu thumbprint-urile lor certificate sunt folosite pentru a ocoli aceste restricții.", "noResults": { - "title": "" + "title": "Nu există încă nume de gazdă" }, - "toCertificates": "" + "toCertificates": "Certificate" } }, "action": { "create": { - "label": "", + "label": "Adaugă certificat", "notification": { "success": { - "title": "", - "message": "" + "title": "Certificat adăugat", + "message": "Certificatul a fost adăugat cu succes" }, "error": { - "title": "", - "message": "" + "title": "Adăugarea certificatului a eșuat", + "message": "Certificatul nu a putut fi adăugat" } } }, "remove": { - "label": "", - "confirm": "", + "label": "Eliminați certificatul", + "confirm": "Sunteţi sigur că doriţi să ştergeţi certificatul?", "notification": { "success": { - "title": "", - "message": "" + "title": "Certificat eliminat", + "message": "Certificatul a fost eliminat cu succes" }, "error": { - "title": "", - "message": "" + "title": "Certificat neeliminat", + "message": "Certificatul nu a putut fi eliminat" } } }, "removeHostname": { - "label": "", - "confirm": "", + "label": "Elimină hostname de încredere", + "confirm": "Sunteţi sigur că doriţi să eliminaţi acest nume de gazdă de încredere? Acest lucru poate cauza unele integrări să nu mai funcţioneze.", "notification": { "success": { - "title": "", - "message": "" + "title": "Hostname eliminat", + "message": "Numele gazdei a fost eliminat cu succes" }, "error": { - "title": "", - "message": "" + "title": "Hostname neeliminat", + "message": "Numele de gazdă nu a putut fi eliminat" } } } @@ -6440,10 +6486,10 @@ "log": { "level": { "option": { - "debug": "", - "info": "", - "warn": "", - "error": "" + "debug": "Debug", + "info": "Info", + "warn": "Avertizare", + "error": "Eroare" } } }, diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index c48dd7d8c..65a4715a2 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Что же докер", + "description": "Мониторинг того, какие из контейнеров Docker доступны для обновления изображений" + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "здесь", "iconPicker": { "label": "URL иконки", + "description": "Поиск в библиотеке, вставьте URL изображения или загрузите файл.", "header": "Введите название или объекты для фильтрации иконок... Homarr найдёт для вас среди {countIcons} иконок.", - "headerLoading": "", + "headerLoading": "Поиск изображений по имени", + "clear": "Очистить изображение", + "uploadImage": "Загрузить изображение", + "results": "Результаты поиска изображений", + "localImages": "Ваши изображения", + "svgIcons": "Значки SVG", + "otherImages": "Другие изображения", + "urlLoading": "Проверка изображения…", + "urlReady": "Изображение готово к использованию", + "urlError": "Это изображение не может быть загружено. Проверьте URL и повторите попытку.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Что же докер", + "description": "Показывать количество доступных обновлений в просмотренных контейнерах.", + "title": "Что же докер", + "monitored": "Мониторинг", + "updatesAvailable": "{count, plural, one {# доступно обновление} other {# доступно обновлений}}", + "updateAvailable": "Доступно обновление", + "openReleaseNotes": "Открыть примечания к релизу", + "option": { + "showTitle": { + "label": "Показать название" + }, + "showRing": { + "label": "Показать обновление кольца" + }, + "layout": { + "label": "Макет", + "option": { + "horizontal": { + "label": "Горизонтально" + }, + "vertical": { + "label": "Вертикально" + } + } + }, + "showUpdateList": { + "label": "Показать список обновлений контейнеров", + "description": "Список каждого контролируемого контейнера, имеющего доступное обновление изображений" + } + } + }, "dnsHoleSummary": { "name": "Сводка DNS-фильтра", "description": "Отображает сводную информацию о вашем DNS-фильтре", diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index c19915673..378b423e0 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Sledujte, ktoré z vašich Docker kontajnerov majú k dispozícii aktualizácie obrazov." + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Systém správy dokumentov na archiváciu a organizáciu naskenovaných dokumentov" @@ -1437,8 +1441,18 @@ "here": "tu", "iconPicker": { "label": "URL ikony", + "description": "Vyhľadajte v knižnici, prilepte URL obrázka alebo nahrajte súbor.", "header": "Zadajte názov alebo objekty na filtrovanie ikon... Homarr pre vás vyhľadá ikony na stránke {countIcons} .", - "headerLoading": "", + "headerLoading": "Vyhľadať obrázky podľa názvu", + "clear": "Odstrániť obrázok", + "uploadImage": "Nahrať obrázok", + "results": "Výsledky vyhľadávania obrázkov", + "localImages": "Vaše obrázky", + "svgIcons": "SVG ikony", + "otherImages": "Ostatné obrázky", + "urlLoading": "Kontrolujem obrázok…", + "urlReady": "Obrázok je pripravený na použitie", + "urlError": "Tento obrázok sa nepodarilo načítať. Skontrolujte adresu URL a skúste to znova.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Zobrazuje, koľko sledovaných kontajnerov má k dispozícii aktualizácie.", + "title": "What's Up Docker", + "monitored": "Sledované", + "updatesAvailable": "{count, plural, one {# aktualizácia je k dispozícii} few {# aktualizácie sú k dispozícii} many {# aktualizácií je k dispozícii} other {# aktualizácie je k dispozícii}}", + "updateAvailable": "Dostupná aktualizácia", + "openReleaseNotes": "Otvorte poznámky k vydaniu", + "option": { + "showTitle": { + "label": "Zobraziť názov" + }, + "showRing": { + "label": "Zobraziť prstenec aktualizácie" + }, + "layout": { + "label": "Rozloženie", + "option": { + "horizontal": { + "label": "Horizontálne" + }, + "vertical": { + "label": "Vertikálne" + } + } + }, + "showUpdateList": { + "label": "Zobraziť zoznam aktualizácií kontajnerov", + "description": "Uvádza každý sledovaný kontajner, ktorý má dostupnú aktualizáciu obrazu." + } + } + }, "dnsHoleSummary": { "name": "Zhrnutie dier DNS", "description": "Zobrazí súhrn vašej diery DNS", diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index 9490c28d1..3f82b5373 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Spremljajte, kateri vaši Docker vsebniki imajo na voljo posodobitve slik." + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "tukaj", "iconPicker": { "label": "URL ikone", + "description": "Iščite po knjižnici, prilepite URL slike ali naložite datoteko.", "header": "Vnesite ime ali predmete za filtriranje ikon... Homarr bo za vas iskal med {countIcons} ikonami.", - "headerLoading": "", + "headerLoading": "Išči slike po imenu", + "clear": "Počisti sliko", + "uploadImage": "Naloži sliko", + "results": "Rezultati iskanja slik", + "localImages": "Vaše slike", + "svgIcons": "Ikone SVG", + "otherImages": "Druge slike", + "urlLoading": "Preverjanje slike…", + "urlReady": "Slika je pripravljena za uporabo", + "urlError": "Te slike ni bilo mogoče naložiti. Preverite URL in poskusite znova.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Prikaže, koliko spremljanih vsebnikov ima na voljo posodobitve.", + "title": "What's Up Docker", + "monitored": "Spremljani", + "updatesAvailable": "{count, plural, one {# posodobitev na voljo} two {# posodobitvi na voljo} few {# posodobitve na voljo} other {# posodobitev na voljo}}", + "updateAvailable": "Na voljo je posodobitev", + "openReleaseNotes": "Odpri opombe ob izdaji", + "option": { + "showTitle": { + "label": "Pokaži naslov" + }, + "showRing": { + "label": "Pokaži obroč posodobitev" + }, + "layout": { + "label": "Postavitev", + "option": { + "horizontal": { + "label": "Vodoravno" + }, + "vertical": { + "label": "Navpično" + } + } + }, + "showUpdateList": { + "label": "Pokaži seznam posodobitev vsebnikov", + "description": "Prikaže seznam vseh nadzorovanih vsebnikov, ki imajo na voljo posodobitev slike." + } + } + }, "dnsHoleSummary": { "name": "Povzetek DNS luknje", "description": "Prikaže povzetek vaše DNS luknje", diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index e77420845..bec206ef7 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "Vad är Upp Docker", + "description": "Övervaka vilken av dina Docker behållare har bilduppdateringar tillgängliga" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Dokumenthanteringssystem för arkivering och organisering av skannade dokument" @@ -1437,8 +1441,18 @@ "here": "", "iconPicker": { "label": "", - "header": "", - "headerLoading": "", + "description": "Sök i biblioteket, klistra in en bild-URL eller ladda upp en fil.", + "header": "Sök {countIcons} bilder efter namn", + "headerLoading": "Sök bilder med namn", + "clear": "Rensa bild", + "uploadImage": "Ladda upp bild", + "results": "Sökresultat för bild", + "localImages": "Dina bilder", + "svgIcons": "SVG ikoner", + "otherImages": "Andra bilder", + "urlLoading": "Kontrollerar bild…", + "urlReady": "Bilden är klar att användas", + "urlError": "Bilden kunde inte laddas. Kontrollera URL:en och försök igen.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Vad är Upp Docker", + "description": "Visa hur många bevakade behållare som har uppdateringar tillgängliga.", + "title": "Vad är Upp Docker", + "monitored": "Övervakad", + "updatesAvailable": "{count, plural, one {# uppdatering tillgänglig} other {# uppdateringar tillgängliga}}", + "updateAvailable": "Uppdatering tillgänglig", + "openReleaseNotes": "Öppna versionsfakta", + "option": { + "showTitle": { + "label": "Visa titel" + }, + "showRing": { + "label": "Visa uppdateringsring" + }, + "layout": { + "label": "Layout", + "option": { + "horizontal": { + "label": "Horisontell" + }, + "vertical": { + "label": "Vertikal" + } + } + }, + "showUpdateList": { + "label": "Visa uppdateringslista för behållare", + "description": "Listar varje övervakad behållare som har en bild uppdatering tillgänglig" + } + } + }, "dnsHoleSummary": { "name": "", "description": "", diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 46296c573..af790a57d 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Bulut tabanlı ters proxy ve yük dengeleyici" }, + "wud": { + "name": "What's Up Docker", + "description": "Docker konteynerlerinizden hangilerinde imaj güncellemeleri olduğunu izleyin." + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "Taranmış belgeleri arşivlemek ve düzenlemek için belge yönetim sistemi" @@ -1437,8 +1441,18 @@ "here": "buraya", "iconPicker": { "label": "Simge URL'si", + "description": "Kütüphanede arayın, bir görsel URL'si yapıştırın veya bir dosya yükleyin.", "header": "Simgeleri filtrelemek için isim veya nesne yazın... Homarr sizin için {countIcons} simge arasında arama yapacaktır.", "headerLoading": "Simge aramak için yazın…", + "clear": "Görseli temizle", + "uploadImage": "Görsel yükle", + "results": "Görsel arama sonuçları", + "localImages": "Görselleriniz", + "svgIcons": "SVG simgeleri", + "otherImages": "Diğer görseller", + "urlLoading": "Görsel kontrol ediliyor…", + "urlReady": "Görsel kullanıma hazır", + "urlError": "Bu görsel yüklenemedi. URL'yi kontrol edip yeniden deneyin.", "noResults": "“{search}” aramasıyla eşleşen simge yok.", "error": "Simgeler yüklenemedi." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "İzlenen konteynerlerin kaçında güncelleme mevcut olduğunu gösterir.", + "title": "What's Up Docker", + "monitored": "İzlenen", + "updatesAvailable": "{count, plural, one {# güncelleme mevcut} other {# güncelleme mevcut}}", + "updateAvailable": "Güncelleme mevcut", + "openReleaseNotes": "Sürüm notlarını aç", + "option": { + "showTitle": { + "label": "Başlığı göster" + }, + "showRing": { + "label": "Güncelleme halkasını göster" + }, + "layout": { + "label": "Düzen", + "option": { + "horizontal": { + "label": "Yatay" + }, + "vertical": { + "label": "Dikey" + } + } + }, + "showUpdateList": { + "label": "Konteyner güncelleme listesini göster", + "description": "İmaj güncellemesi mevcut olan her izlenen konteyneri listeler" + } + } + }, "dnsHoleSummary": { "name": "DNS Çözümleyici Özeti", "description": "DNS Çözümleyici özetini görüntüler", diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index fd87688e4..373ef3286 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "Хмарний зворотний проксі-сервер та балансувальник навантаження" }, + "wud": { + "name": "Що таке Docker", + "description": "Контролювати контейнери Docker мають доступні оновлення зображення" + }, "paperlessNgx": { "name": "Безпаперовий ngx", "description": "Система керування документами для архівування та організації відсканованих документів" @@ -1437,8 +1441,18 @@ "here": "тут", "iconPicker": { "label": "URL іконки", + "description": "Знайдіть бібліотеку, вставте URL-адресу зображення або завантажте файл.", "header": "Введіть назву або об'єкти для фільтрації значків... Homarr виконає пошук серед {countIcons} значків для вас.", "headerLoading": "Введіть для пошуку іконок…", + "clear": "Очистити зображення", + "uploadImage": "Вивантажити зображення", + "results": "Результати пошуку зображень", + "localImages": "Ваші зображення", + "svgIcons": "Іконки SVG", + "otherImages": "Інші зображення", + "urlLoading": "Перевірка зображень…", + "urlReady": "Зображення можна використовувати", + "urlError": "Це зображення не може бути завантажене. Перевірте URL-адресу та повторіть спробу.", "noResults": "Немає іконок, що відповідають{search}\".", "error": "Не вдалося завантажити іконки." }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "Що таке Docker", + "description": "Показати скільки переглянутих контейнерів мають доступні оновлення.", + "title": "Що таке Docker", + "monitored": "Відстежено", + "updatesAvailable": "{count, plural, one {# оновлення доступні} other {# оновлень доступні}}", + "updateAvailable": "Доступне оновлення", + "openReleaseNotes": "Відкрити замітки до випуску", + "option": { + "showTitle": { + "label": "Показати назву" + }, + "showRing": { + "label": "Показати кільце оновлення" + }, + "layout": { + "label": "Макет", + "option": { + "horizontal": { + "label": "Горизонтально" + }, + "vertical": { + "label": "Вертикально" + } + } + }, + "showUpdateList": { + "label": "Показати список оновлень контейнерів", + "description": "Відображає список кожного моніторного контейнера, у якого є доступне оновлення зображення" + } + } + }, "dnsHoleSummary": { "name": "Звіт DNS-Hole", "description": "Відображає резюме вашого DNS Hole", diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index 017569e36..16b6ef43d 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -1344,6 +1344,10 @@ "name": "", "description": "" }, + "wud": { + "name": "What's Up Docker", + "description": "Theo dõi các container Docker của bạn có bản cập nhật hình ảnh." + }, "paperlessNgx": { "name": "", "description": "" @@ -1437,8 +1441,18 @@ "here": "tại đây", "iconPicker": { "label": "URL biểu tượng", + "description": "Tìm kiếm trong thư viện, dán URL hình ảnh hoặc tải lên tệp.", "header": "Nhập tên hoặc đối tượng để lọc biểu tượng... Homarr sẽ tìm qua {countIcons} biểu tượng cho bạn.", - "headerLoading": "", + "headerLoading": "Tìm kiếm hình ảnh theo tên", + "clear": "Xóa hình ảnh", + "uploadImage": "Tải lên hình ảnh", + "results": "Kết quả tìm kiếm hình ảnh", + "localImages": "Hình ảnh của bạn", + "svgIcons": "Biểu tượng SVG", + "otherImages": "Hình ảnh khác", + "urlLoading": "Đang kiểm tra hình ảnh…", + "urlReady": "Hình ảnh đã sẵn sàng để sử dụng", + "urlError": "Không thể tải hình ảnh này. Kiểm tra URL và thử lại.", "noResults": "", "error": "" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "What's Up Docker", + "description": "Hiển thị số container được theo dõi có bản cập nhật.", + "title": "What's Up Docker", + "monitored": "Đã theo dõi", + "updatesAvailable": "{count, plural, other {# bản cập nhật có sẵn}}", + "updateAvailable": "Có bản cập nhật", + "openReleaseNotes": "Mở ghi chú phát hành", + "option": { + "showTitle": { + "label": "Hiển thị tiêu đề" + }, + "showRing": { + "label": "Hiển thị vòng cập nhật" + }, + "layout": { + "label": "Bố cục", + "option": { + "horizontal": { + "label": "Nằm ngang" + }, + "vertical": { + "label": "Thẳng đứng" + } + } + }, + "showUpdateList": { + "label": "Hiển thị danh sách cập nhật container", + "description": "Liệt kê từng container được giám sát có bản cập nhật image sẵn có" + } + } + }, "dnsHoleSummary": { "name": "Tổng quan DNS Hole", "description": "Hiển thị tổng quan về DNS Hole của bạn", diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index 58e679768..7746c3620 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -1344,6 +1344,10 @@ "name": "Traefik", "description": "雲原生反向代理和負載平衡器" }, + "wud": { + "name": "", + "description": "" + }, "paperlessNgx": { "name": "Paperless-ngx", "description": "用於歸檔和組織掃描文件的文件管理系統" @@ -1437,8 +1441,18 @@ "here": "此處", "iconPicker": { "label": "Icon 網址", + "description": "", "header": "輸入名稱或物件來篩選 icons,Homarr 會自動搜尋 {countIcons}", "headerLoading": "輸入以搜尋圖示…", + "clear": "", + "uploadImage": "", + "results": "", + "localImages": "你的圖像", + "svgIcons": "", + "otherImages": "其他圖像", + "urlLoading": "", + "urlReady": "", + "urlError": "", "noResults": "沒有符合 \"{search}\" 的圖示。", "error": "無法載入圖示。" }, @@ -1793,6 +1807,38 @@ } } }, + "wud": { + "name": "", + "description": "", + "title": "", + "monitored": "", + "updatesAvailable": "", + "updateAvailable": "", + "openReleaseNotes": "", + "option": { + "showTitle": { + "label": "" + }, + "showRing": { + "label": "" + }, + "layout": { + "label": "顯示布局", + "option": { + "horizontal": { + "label": "橫向" + }, + "vertical": { + "label": "垂直" + } + } + }, + "showUpdateList": { + "label": "", + "description": "" + } + } + }, "dnsHoleSummary": { "name": "DNS Hole 概況", "description": "顯示 DNS Hole 的概況", From 5488bf4d18dad837a6efc716a33e438dbad8c667 Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Sat, 15 Aug 2026 01:33:20 +0200 Subject: [PATCH 09/19] fix(truenas): use lowercase in operator for dataset query --- .../src/truenas/test/truenas-integration.spec.ts | 12 ++++++++++++ .../integrations/src/truenas/truenas-integration.ts | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/integrations/src/truenas/test/truenas-integration.spec.ts b/packages/integrations/src/truenas/test/truenas-integration.spec.ts index a53f74bc2..d0856630e 100644 --- a/packages/integrations/src/truenas/test/truenas-integration.spec.ts +++ b/packages/integrations/src/truenas/test/truenas-integration.spec.ts @@ -199,6 +199,18 @@ describe("TrueNasIntegration", () => { // JSON-RPC does not use the legacy "connect" session handshake. expect(ws.sentPayloads.some((payload) => payload.msg === "connect")).toBe(false); + const datasetPayload = ws.sentPayloads.find((payload) => payload.method === "pool.dataset.query"); + expect(datasetPayload).toMatchObject({ + params: [ + [["id", "in", ["tank"]]], + { + extra: { + properties: ["used", "available"], + }, + }, + ], + }); + expect(result).toMatchObject({ version: "TrueNAS-SCALE-24.10", cpuModelName: "Intel Xeon", diff --git a/packages/integrations/src/truenas/truenas-integration.ts b/packages/integrations/src/truenas/truenas-integration.ts index c061332f2..c5ba02c76 100644 --- a/packages/integrations/src/truenas/truenas-integration.ts +++ b/packages/integrations/src/truenas/truenas-integration.ts @@ -122,7 +122,7 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni if (activePools.length === 0) return []; const datasets = await this.requestAsync("pool.dataset.query", [ - [["id", "IN", activePools.map((pool) => pool.name)]], + [["id", "in", activePools.map((pool) => pool.name)]], { extra: { properties: ["used", "available"], From 56e6b23af6be1acc30ba43d40549315437cb9e8f Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Sat, 15 Aug 2026 11:05:06 +0200 Subject: [PATCH 10/19] test(e2e): remove flaky credentials onboarding test --- e2e/onboarding.spec.ts | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/e2e/onboarding.spec.ts b/e2e/onboarding.spec.ts index 39f473c20..d97bae59d 100644 --- a/e2e/onboarding.spec.ts +++ b/e2e/onboarding.spec.ts @@ -7,42 +7,6 @@ import { createHomarrContainer } from "./shared/create-homarr-container"; import { createSqliteDbFileAsync } from "./shared/e2e-db"; describe("Onboarding", () => { - test("Credentials onboarding should be successful", async () => { - // Arrange - const { db, localMountPath } = await createSqliteDbFileAsync(); - const homarrContainer = await createHomarrContainer({ - mounts: { - "/appdata": localMountPath, - }, - }).start(); - - const browser = await chromium.launch(); - const context = await browser.newContext(); - const page = await context.newPage(); - const actions = new OnboardingActions(page, db); - const assertions = new OnboardingAssertions(page, db); - - try { - // Act - await page.goto(`http://${homarrContainer.getHost()}:${homarrContainer.getMappedPort(7575)}`); - await actions.startOnboardingAsync("scratch"); - await actions.processUserStepAsync({ - username: "admin", - password: "Comp(exP4sswOrd", - confirmPassword: "Comp(exP4sswOrd", - }); - await actions.processSettingsStepAsync(); - await actions.processIntegrationsStepAsync(); - - // Assert - await assertions.assertFinishStepVisibleAsync(); - await assertions.assertUserAndAdminGroupInsertedAsync("admin"); - await assertions.assertDbOnboardingStepAsync("finish"); - } finally { - await Promise.all([browser.close(), homarrContainer.stop()]); - } - }, 60_000); - test("External provider onboarding setup should be successful", async () => { // Arrange const { db, localMountPath } = await createSqliteDbFileAsync(); From 8d5ffb2dd96520abb97b6a9546cc35d24b1659a3 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 15 Aug 2026 12:29:52 +0200 Subject: [PATCH 11/19] feat(paseo): add worktree install script (#6599) * feat(paseo): add worktree install script * feat(paseo): inline worktree setup in paseo.json * feat(paseo): add scripts and teardown to paseo.json * feat(paseo): expand workspace scripts catalog * feat(paseo): reset encryption key in worktree env --- paseo.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 paseo.json diff --git a/paseo.json b/paseo.json new file mode 100644 index 000000000..74553abb8 --- /dev/null +++ b/paseo.json @@ -0,0 +1,26 @@ +{ + "worktree": { + "setup": "mise trust\nmise install\npnpm install\n\nif [ -n \"${PASEO_SOURCE_CHECKOUT_PATH:-}\" ] && [ -f \"$PASEO_SOURCE_CHECKOUT_PATH/.env\" ]; then\n cp \"$PASEO_SOURCE_CHECKOUT_PATH/.env\" .env\nelse\n cp .env.example .env\nfi\n\nDB_PATH=\"$PWD/homarr.sqlite\"\nZERO_KEY=\"0000000000000000000000000000000000000000000000000000000000000000\"\nsed -i.bak \\\n -e \"s|^DB_DRIVER=.*|DB_DRIVER='better-sqlite3'|\" \\\n -e \"s|^DB_URL=.*|DB_URL='$DB_PATH'|\" \\\n -e \"s|^SECRET_ENCRYPTION_KEY=.*|SECRET_ENCRYPTION_KEY=$ZERO_KEY|\" \\\n .env\nrm -f .env.bak\n\nrm -f homarr.sqlite\npnpm db:migration:sqlite:run", + "teardown": "rm -f homarr.sqlite", + "servicePorts": { + "range": "3000-4000" + } + }, + "scripts": { + "dev": { + "type": "service", + "command": "PORT=$PASEO_PORT pnpm -F nextjs dev" + }, + "docs": { + "type": "service", + "command": "pnpm -F @homarr/docs dev --port $PASEO_PORT" + }, + "build": { "command": "pnpm build" }, + "test": { "command": "pnpm test" }, + "test:e2e": { "command": "pnpm test:e2e" }, + "lint": { "command": "pnpm lint" }, + "typecheck": { "command": "pnpm typecheck" }, + "db:seed": { "command": "pnpm db:seed" }, + "db:studio": { "command": "pnpm db:studio" } + } +} From ddbf05524b77d2c8b158755eaa36e9d9a5fab9fd Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 16 Aug 2026 16:09:15 +0200 Subject: [PATCH 12/19] feat(http): set custom User-Agent on outbound integration requests (#6606) * feat(http): set custom User-Agent on outbound integration requests Set a default 'User-Agent: Homarr/ (+https://homarr.dev)' header on all outbound HTTP requests made via fetchWithTrustedCertificatesAsync, so Homarr's integration traffic is distinguishable in reverse-proxy, WAF, and security-monitoring logs instead of appearing as generic undici. Closes #6604 * refactor(version): centralize Homarr version in @homarr/version package Replace fragile deep-relative 'package.json' imports across the monorepo with a single source of truth: the new @homarr/version leaf package reads the version once from the root package.json and exports it as VERSION. Consumers now import by package name incl. the new User-Agent header in fetchWithTrustedCertificatesAsync (packages/core): - core, api (info router), analytics, request-handler (update checker) This also removes all manually-maintained relative version imports. * fix(http): normalize User-Agent injection with Headers Object-spreading fetchOptions.headers breaks when callers pass a Headers instance (spread yields no entries) or a tuple array (numeric keys), and is case-sensitive. Build a Headers instance and set the default User-Agent only when no case-insensitive User-Agent entry exists, via a shared helper in both fetch paths. Adds unit tests covering record, Headers, tuple-array, and casing variants. * revert(version): undo version refactor and tests, keep single-file change Keep the User-Agent change as a single edit to packages/core/src/infrastructure/http/request.ts. Remove the @homarr/version package, the consumer migrations, and the unit tests. --- packages/core/src/infrastructure/http/request.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/core/src/infrastructure/http/request.ts b/packages/core/src/infrastructure/http/request.ts index b3c3ea354..20af8232f 100644 --- a/packages/core/src/infrastructure/http/request.ts +++ b/packages/core/src/infrastructure/http/request.ts @@ -14,6 +14,10 @@ import { UndiciHttpAgent } from "@homarr/core/infrastructure/http"; import type { TrustedCertificateHostname } from "../certificates/hostnames"; import { withTimeoutAsync } from "./timeout"; +import packageJson from "../../../../../package.json"; + +export const getDefaultUserAgent = () => `Homarr/${packageJson.version} (+https://homarr.dev)`; + export const createCustomCheckServerIdentity = ( trustedHostnames: TrustedCertificateHostname[], ): typeof checkServerIdentity => { @@ -79,6 +83,10 @@ export const fetchWithTrustedCertificatesAsync = async ( async (signal) => fetch(url, { ...fetchOptions, + headers: { + "User-Agent": getDefaultUserAgent(), + ...fetchOptions.headers, + }, signal, dispatcher: agent, }), @@ -89,6 +97,10 @@ export const fetchWithTrustedCertificatesAsync = async ( const { bodyTimeout: _bodyTimeout, dispatcher: _dispatcher, ...fetchOptions } = options ?? {}; return fetch(url, { ...fetchOptions, + headers: { + "User-Agent": getDefaultUserAgent(), + ...fetchOptions.headers, + }, dispatcher: agent, }); }; From 05ba57c2fa12a25984a1d93df7aef62c535f4fad Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 16 Aug 2026 16:27:51 +0200 Subject: [PATCH 13/19] chore: migrate cursor rules to portable agent skills + mantine MCP guidance * chore: migrate cursor rules to portable agent skills and add mantine MCP guidance Replace Cursor-only .cursor/rules/*.mdc with Agent Skills open-standard SKILL.md files in .agents/skills/ (canonical), mirrored to .cursor/skills/ and .claude/skills/ so they work across Claude Code, Cursor, Codex, and OpenCode. Add mantine MCP server guidance to AGENTS.md and un-ignore .agents/skills/ in .gitignore. * refactor: single-source agent skills at .agents/skills Cursor, Codex, and OpenCode all read .agents/skills/ natively, so the .cursor/skills/ mirror was redundant. Claude Code reads .claude/skills/, which is now a symlink back to .agents/skills/ so the content lives once. Deletes .cursor/skills/ and converts .claude/skills/ to a symlink. * chore: ship mantine MCP server via project-scoped .mcp.json Declares the keyless @mantine/mcp-server in .mcp.json (Claude Code project-scope standard, committable) and documents MCP server setup and the mantine entry in AGENTS.md. * chore: address coderabbit security-review and markdown lint findings Add explicit security-review guidance before exposing MCP tools and label plain-text code fences to satisfy markdownlint MD040. --- .../skills/codebase-context/SKILL.md | 35 +-- .../skills/datatable-migration/SKILL.md | 215 ++++++++++++------ .agents/skills/documentation-sync/SKILL.md | 44 ++++ .../skills/mcp-integration/SKILL.md | 23 +- .claude/skills | 1 + .cursor/rules/documentation-sync.mdc | 50 ---- .gitignore | 3 +- .mcp.json | 8 + AGENTS.md | 10 + 9 files changed, 234 insertions(+), 155 deletions(-) rename .cursor/rules/codebase-context.mdc => .agents/skills/codebase-context/SKILL.md (89%) rename .cursor/rules/mantine-datatable-migration.mdc => .agents/skills/datatable-migration/SKILL.md (80%) create mode 100644 .agents/skills/documentation-sync/SKILL.md rename .cursor/rules/mcp-integration.mdc => .agents/skills/mcp-integration/SKILL.md (81%) create mode 120000 .claude/skills delete mode 100644 .cursor/rules/documentation-sync.mdc create mode 100644 .mcp.json diff --git a/.cursor/rules/codebase-context.mdc b/.agents/skills/codebase-context/SKILL.md similarity index 89% rename from .cursor/rules/codebase-context.mdc rename to .agents/skills/codebase-context/SKILL.md index b04b1db1d..d10509bff 100644 --- a/.cursor/rules/codebase-context.mdc +++ b/.agents/skills/codebase-context/SKILL.md @@ -1,6 +1,6 @@ --- -description: Comprehensive Homarr codebase architecture and conventions reference -alwaysApply: true +name: codebase-context +description: Comprehensive Homarr codebase architecture and conventions reference. Use when orienting in the monorepo, understanding package dependency layers, the three runtime services and ports, tRPC router structure, multi-database support, widget/integration/cron system architecture, routing, auth providers, env vars, or key patterns before writing code. --- # Homarr Codebase Context @@ -27,7 +27,7 @@ Homarr is an open-source, self-hosted dashboard for managing homelab services. I ## Repository Structure -``` +```text homarr/ ├── apps/ │ ├── nextjs/ # Main Next.js application (port 3000) @@ -66,8 +66,6 @@ homarr/ │ ├── analytics/ # Server-side analytics (Umami) │ ├── server-settings/ # Server setting keys/types │ ├── settings/ # User-facing settings UI context -│ ├── old-import/ # Legacy Homarr import -│ ├── old-schema/ # Legacy Homarr zod schemas │ └── cli/ # Node CLI for ops (brocli) ├── tooling/ │ ├── typescript/ # Base tsconfig @@ -79,11 +77,11 @@ homarr/ ## Three Runtime Services -| Service | Port | Role | -|---------|------|------| -| Next.js | 3000 | Main web app (SSR + API routes) | -| WebSocket | 3001 | tRPC subscriptions via `ws` | -| Tasks | 3002 | Cron job runner + management API via Fastify | +| Service | Port | Role | +| --------- | ---- | -------------------------------------------- | +| Next.js | 3000 | Main web app (SSR + API routes) | +| WebSocket | 3001 | tRPC subscriptions via `ws` | +| Tasks | 3002 | Cron job runner + management API via Fastify | In Docker, nginx listens on **7575** and proxies to all three. The tasks service authenticates via `CRON_JOB_API_KEY` header. @@ -112,6 +110,7 @@ In Docker, nginx listens on **7575** and proxies to all three. The tasks service ### Multi-Database Support Drizzle schemas exist in three parallel implementations: + - `packages/db/schema/sqlite.ts` - `packages/db/schema/mysql.ts` - `packages/db/schema/postgresql.ts` @@ -121,6 +120,7 @@ Selected at runtime via `DB_DRIVER` env (`better-sqlite3` | `mysql2` | `node-pos ### Widget System Widgets are registered in `packages/widgets/src/index.tsx` as `widgetImports` (must satisfy `Record`). Each widget: + - Has a `definition` created via `createWidgetDefinition(kind, { icon, createOptions, supportedIntegrations? })` - Uses `optionsBuilder.from(factory => ({ ... }))` for typed options - Loads dynamically via `next/dynamic` @@ -133,6 +133,7 @@ Integrations are defined in `packages/definitions/src/integration.ts` (`integrat ### Cron Job System Jobs defined in `packages/cron-jobs/src/jobs/`. Each job: + - Uses `createCronJob` with a cron expression - Publishes results to Redis channels - Widget subscriptions consume those channels via tRPC subscriptions @@ -160,6 +161,7 @@ Configured via `AUTH_PROVIDERS` env. Supports: `credentials` (local), `ldap`, `o ## Environment Variables Key env vars (from `.env.example`): + - `DB_DRIVER`: `better-sqlite3` | `mysql2` | `node-postgres` - `DB_URL`: Database connection string - `AUTH_SECRET`: NextAuth secret @@ -191,16 +193,3 @@ Key env vars (from `.env.example`): - Drag-and-drop via `@dnd-kit/*` - `typescript.ignoreBuildErrors: true` in next.config (types checked separately via `typecheck`) - `serverExternalPackages`: `dockerode`, `isomorphic-dompurify`, `jsdom` - -## Documentation (`apps/docs`) - -Docusaurus 3 site at `apps/docs/`, package name `@homarr/docs`. - -- Run with `pnpm dev:docs` from root -- Build with `pnpm turbo build --filter=@homarr/docs` -- Uses Tailwind CSS 3 for custom pages (not Mantine) -- Imports `@homarr/definitions` for type-safe integration/widget metadata -- When adding or modifying widgets, integrations, cron jobs, API routes, env vars, or user-facing features, you MUST also update corresponding docs in `apps/docs/docs/` -- Integration docs: `apps/docs/docs/integrations//index.mdx` + `index.ts` -- Widget docs: `apps/docs/docs/widgets//index.mdx` + `index.ts` -- Strict link checking: broken links/anchors cause build failure diff --git a/.cursor/rules/mantine-datatable-migration.mdc b/.agents/skills/datatable-migration/SKILL.md similarity index 80% rename from .cursor/rules/mantine-datatable-migration.mdc rename to .agents/skills/datatable-migration/SKILL.md index 08d2b8202..62bbc94c3 100644 --- a/.cursor/rules/mantine-datatable-migration.mdc +++ b/.agents/skills/datatable-migration/SKILL.md @@ -1,3 +1,8 @@ +--- +name: datatable-migration +description: Playbook for migrating tables from mantine-react-table (MRT) to mantine-datatable. Use when converting any table component from mantine-react-table to mantine-datatable, working on DataTable column/sort/expansion/context-menu code, or implementing responsive column visibility, column persistence, or transparent tables in widgets. +--- + # Migrating Tables from mantine-react-table to mantine-datatable This document captures every pattern, fix, and decision from the downloads widget rework (PR #6430). Use it as a playbook when porting other tables. @@ -7,10 +12,12 @@ This document captures every pattern, fix, and decision from the downloads widge Current `mantine-react-table` consumers that could be migrated: **Widgets (in `packages/widgets/`):** + - `docker/component.tsx` — Docker container table - `media-server/component.tsx` — Media server sessions **Admin pages (in `apps/nextjs/src/app/[locale]/manage/`):** + - `tools/docker/docker-table.tsx` - `tools/tasks/_components/tasks-table.tsx` - `tools/api/components/api-keys.tsx` @@ -19,12 +26,12 @@ Current `mantine-react-table` consumers that could be migrated: - `tools/kubernetes/` — 8 Kubernetes resource tables **Modals:** + - `packages/modals-collection/src/search-engines/request-media-modal.tsx` **Shared hook to remove once all migrated:** -- `packages/ui/src/hooks/use-translated-mantine-react-table.ts` ---- +- `packages/ui/src/hooks/use-translated-mantine-react-table.ts` ## 1. Core Migration: mantine-react-table → mantine-datatable @@ -67,6 +74,7 @@ const columns: DataTableColumn[] = [ ``` Key differences: + - `accessorKey` → `accessor` - `header` → `title` - `size` → `width` @@ -118,8 +126,6 @@ const sortedData = useMemo(() => { ``` ---- - ## 2. Making Tables Transparent (Widget Context) Widgets sit inside board cards that have user-controlled opacity. The table must be fully transparent so the card background shows through. mantine-datatable defaults to `var(--mantine-color-body)` which is opaque. @@ -144,13 +150,21 @@ Create a CSS file alongside the component: /* Hover: translucent instead of opaque */ .my-table .mantine-datatable-table tbody tr:hover { - background-color: color-mix(in srgb, var(--mantine-color-default-hover) 40%, transparent) !important; + background-color: color-mix( + in srgb, + var(--mantine-color-default-hover) 40%, + transparent + ) !important; } /* Headers: frosted glass effect */ .my-table th { white-space: nowrap; - background-color: color-mix(in srgb, var(--mantine-color-body) 60%, transparent) !important; + background-color: color-mix( + in srgb, + var(--mantine-color-body) 60%, + transparent + ) !important; backdrop-filter: blur(8px); } @@ -172,14 +186,16 @@ Create a CSS file alongside the component: /* Row expansion area */ .my-table .mantine-datatable-row-expansion-cell { - background-color: color-mix(in srgb, var(--mantine-color-body) 40%, transparent) !important; + background-color: color-mix( + in srgb, + var(--mantine-color-body) 40%, + transparent + ) !important; } ``` Import it: `import "./styles.css";` and apply via `className="my-table"`. ---- - ## 3. Responsive Column Visibility Use a lookup table of width breakpoints instead of media queries. The widget receives `width` as a prop. @@ -195,11 +211,38 @@ interface SizeConfig { } const SIZE_BREAKPOINTS: { maxWidth: number; config: SizeConfig }[] = [ - { maxWidth: 300, config: { fontSize: "xs", iconSize: 12, cellPadding: 2, showSpeedColumns: false, showTimeColumn: false, showStateColumn: false } }, - { maxWidth: 500, config: { fontSize: "xs", iconSize: 14, cellPadding: 4, showSpeedColumns: false, showTimeColumn: true, showStateColumn: false } }, + { + maxWidth: 300, + config: { + fontSize: "xs", + iconSize: 12, + cellPadding: 2, + showSpeedColumns: false, + showTimeColumn: false, + showStateColumn: false, + }, + }, + { + maxWidth: 500, + config: { + fontSize: "xs", + iconSize: 14, + cellPadding: 4, + showSpeedColumns: false, + showTimeColumn: true, + showStateColumn: false, + }, + }, ]; -const DEFAULT_SIZE_CONFIG: SizeConfig = { fontSize: "sm", iconSize: 14, cellPadding: 4, showSpeedColumns: true, showTimeColumn: true, showStateColumn: true }; +const DEFAULT_SIZE_CONFIG: SizeConfig = { + fontSize: "sm", + iconSize: 14, + cellPadding: 4, + showSpeedColumns: true, + showTimeColumn: true, + showStateColumn: true, +}; function getSizeConfig(width: number): SizeConfig { for (const { maxWidth, config } of SIZE_BREAKPOINTS) { @@ -215,7 +258,9 @@ const size = useMemo(() => getSizeConfig(width), [width]); Then use a visibility check lookup table for columns: ```typescript -const columnVisibilityChecks: Partial boolean>> = { +const columnVisibilityChecks: Partial< + Record boolean> +> = { upSpeed: (ctx) => ctx.hasTorrents && ctx.size.showSpeedColumns, downSpeed: (ctx) => ctx.size.showSpeedColumns, time: (ctx) => ctx.size.showTimeColumn, @@ -230,8 +275,6 @@ function shouldIncludeColumn(accessor: string, ctx: ColumnContext): boolean { } ``` ---- - ## 4. Column Persistence (Drag/Resize → Server) `useDataTableColumns` stores column order and widths in localStorage by default. For widgets, this must persist server-side so it works across devices. @@ -263,15 +306,6 @@ Even hidden options need translation keys or the translation test fails: "widget.mywidget.option.columnWidths.label": "Column widths" ``` -### Old-import mappings - -Add to `packages/old-import/src/widgets/options.ts`: - -```typescript -columnOrder: () => undefined, -columnWidths: () => undefined, -``` - ### Dynamic storeKey Use a key that includes `itemId` and sorted column names. This prevents cross-widget localStorage bleeding: @@ -285,8 +319,13 @@ const storeKey = `mytable-${itemId ?? "preview"}-${[...options.columns].toSorted On mount, seed `useDataTableColumns` with server-persisted values. Use a `hydrated` ref to prevent the persist effect from immediately writing defaults back: ```typescript -const { effectiveColumns, columnsOrder, columnsWidth, setColumnsOrder, setMultipleColumnWidths } = - useDataTableColumns({ key: storeKey, columns }); +const { + effectiveColumns, + columnsOrder, + columnsWidth, + setColumnsOrder, + setMultipleColumnWidths, +} = useDataTableColumns({ key: storeKey, columns }); const lastStoreKey = useRef(storeKey); const hydrated = useRef(false); @@ -300,11 +339,22 @@ useEffect(() => { if (savedOrder.length > 0) setColumnsOrder(savedOrder); if (Object.keys(savedWidths).length > 0) { setMultipleColumnWidths( - Object.entries(savedWidths).map(([accessor, w]) => ({ accessor, width: w })), + Object.entries(savedWidths).map(([accessor, w]) => ({ + accessor, + width: w, + })), ); } - requestAnimationFrame(() => { hydrated.current = true; }); -}, [storeKey, savedOrder, savedWidths, setColumnsOrder, setMultipleColumnWidths]); + requestAnimationFrame(() => { + hydrated.current = true; + }); +}, [ + storeKey, + savedOrder, + savedWidths, + setColumnsOrder, + setMultipleColumnWidths, +]); ``` ### Persist localStorage → server @@ -317,22 +367,26 @@ const prevWidths = useRef(columnsWidth); useEffect(() => { if (!hydrated.current) return; - const orderChanged = JSON.stringify(columnsOrder) !== JSON.stringify(prevOrder.current); - const widthsChanged = JSON.stringify(columnsWidth) !== JSON.stringify(prevWidths.current); + const orderChanged = + JSON.stringify(columnsOrder) !== JSON.stringify(prevOrder.current); + const widthsChanged = + JSON.stringify(columnsWidth) !== JSON.stringify(prevWidths.current); prevOrder.current = columnsOrder; prevWidths.current = columnsWidth; if (!orderChanged && !widthsChanged) return; - if (orderChanged) persistOption({ columnOrder: JSON.stringify(columnsOrder) }); + if (orderChanged) + persistOption({ columnOrder: JSON.stringify(columnsOrder) }); if (widthsChanged) { const widthMap: Record = {}; for (const entry of columnsWidth) { const key = Object.keys(entry)[0]; if (!key) continue; - const w = entry[key as keyof typeof entry]; - if (typeof w === "number") widthMap[key] = w; - else if (typeof w === "string" && w.endsWith("px")) widthMap[key] = parseInt(w, 10); + const v = entry[key as keyof typeof entry]; + if (typeof v === "number") widthMap[key] = v; + else if (typeof v === "string" && v.endsWith("px")) + widthMap[key] = parseInt(v, 10); } persistOption({ columnWidths: JSON.stringify(widthMap) }); } @@ -341,8 +395,6 @@ useEffect(() => { The `persistOption` helper calls both `setOptions` (local state) and `saveItemOptions` (server mutation). ---- - ## 5. Context Menu (Right-Click) Do NOT install `mantine-contextmenu`. Use Mantine's `Menu` + `Portal` directly: @@ -374,15 +426,41 @@ const handleContextMenu = useCallback( The menu component uses `Portal` for correct z-index: ```tsx -function RowContextMenu({ state, onClose }: { state: ContextMenuState; onClose: () => void }) { +function RowContextMenu({ + state, + onClose, +}: { + state: ContextMenuState; + onClose: () => void; +}) { return ( - + - + - { /* action */ onClose(); }}>Action + { + /* action */ onClose(); + }} + > + Action + @@ -392,8 +470,6 @@ function RowContextMenu({ state, onClose }: { state: ContextMenuState; onClose: **Key fix:** Use `closeOnItemClick={false}` if any menu item needs a two-step confirmation (like delete → confirm). Close the menu on scroll: `onScroll={() => { if (contextMenu) closeContextMenu(); }}`. ---- - ## 6. Row Expansion ```typescript @@ -413,8 +489,6 @@ function RowContextMenu({ state, onClose }: { state: ContextMenuState; onClose: **Critical:** Do NOT set `onRowClick` when using `rowExpansion` with `trigger: "click"`. They conflict and the expansion won't work. ---- - ## 7. Common Pitfalls & Fixes ### Status indicator dots @@ -475,8 +549,11 @@ Always wrap in try/catch: ```typescript function parseJsonOption(value: string | undefined, fallback: T): T { if (!value) return fallback; - try { return JSON.parse(value) as T; } - catch { return fallback; } + try { + return JSON.parse(value) as T; + } catch { + return fallback; + } } ``` @@ -494,20 +571,19 @@ If the widget has configurable default sort, sync it: ```typescript useEffect(() => { - setSortStatus({ columnAccessor: options.defaultSort, direction: defaultSortDirection }); + setSortStatus({ + columnAccessor: options.defaultSort, + direction: defaultSortDirection, + }); }, [options.defaultSort, defaultSortDirection]); ``` ---- - ## 8. Accessibility - All `ActionIcon` components need `aria-label` - Filter toggles (client badges, status badges) need `aria-pressed={isActive}` - `textSelectionDisabled` on DataTable prevents accidental text selection during drag/resize ---- - ## 9. Error Handling - Every mutation needs an `onError` callback with `showErrorNotification` @@ -518,12 +594,14 @@ useEffect(() => { ```typescript const mutationOptions = { onSettled: () => void utils.myQuery.invalidate(), - onError: () => showErrorNotification({ title: t("errors.actionFailed"), message: t("errors.actionFailedMessage") }), + onError: () => + showErrorNotification({ + title: t("errors.actionFailed"), + message: t("errors.actionFailedMessage"), + }), }; ``` ---- - ## 10. i18n - No hardcoded strings. Every user-visible string goes through `useScopedI18n` @@ -534,8 +612,6 @@ const mutationOptions = { - Errors: `t("errors.{errorKey}")` - Hidden options still need `.label` translation keys ---- - ## 11. Edit Mode Disable pointer events on the table during edit mode to prevent conflicts with the board's drag-and-drop: @@ -550,8 +626,6 @@ if (isEditMode) rowContextMenuHandler = undefined; ``` ---- - ## 12. DataTable Props Reference (Commonly Used) ```typescript @@ -590,8 +664,6 @@ if (isEditMode) rowContextMenuHandler = undefined; /> ``` ---- - ## 13. Layout Stability - Don't use `table-layout: fixed` — it fights mantine-datatable's resize logic @@ -600,8 +672,6 @@ if (isEditMode) rowContextMenuHandler = undefined; - Names should truncate at the cell boundary, not a character count, so the layout is stable regardless of content length - `flexShrink: 0` on badges/icons prevents them from being squeezed by long names ---- - ## 14. Checklist for Each Migration 1. Replace imports (`mantine-react-table` → `mantine-datatable`) @@ -610,13 +680,12 @@ if (isEditMode) rowContextMenuHandler = undefined; 4. Add CSS file for transparent backgrounds (if widget context) 5. Add responsive column visibility (if widget context) 6. Add hidden options + hydration logic (if column persistence needed) -7. Add old-import mappings for new options -8. Add translation keys (including hidden option labels) -9. Add context menu if row actions exist -10. Add row expansion if detail view exists -11. Add error handling on all mutations -12. Add accessibility attributes -13. Test at multiple widget widths -14. Update docs in `apps/docs/docs/widgets/` if applicable -15. Run `pnpm turbo typecheck` — catches old-import mismatches -16. Run translation spec — catches missing keys +7. Add translation keys (including hidden option labels) +8. Add context menu if row actions exist +9. Add row expansion if detail view exists +10. Add error handling on all mutations +11. Add accessibility attributes +12. Test at multiple widget widths +13. Update docs in `apps/docs/docs/widgets/` if applicable +14. Run `pnpm turbo typecheck` +15. Run translation spec — catches missing keys diff --git a/.agents/skills/documentation-sync/SKILL.md b/.agents/skills/documentation-sync/SKILL.md new file mode 100644 index 000000000..48aed0e7e --- /dev/null +++ b/.agents/skills/documentation-sync/SKILL.md @@ -0,0 +1,44 @@ +--- +name: documentation-sync +description: Keep Homarr documentation in sync with code changes. Use when modifying code that affects user-facing behavior, or when adding/modifying widgets, integrations, cron jobs, API routes, env vars, permissions, auth providers, or UI in apps/docs. Covers the docs/ mapping table, integration doc pattern, and widget doc pattern. +--- + +# Documentation Sync + +When modifying code that affects user-facing behavior, you MUST also update the documentation in `apps/docs/`. + +## What triggers a doc update + +| Code change | Doc location | +| ---------------------- | ----------------------------------------------------------- | +| New integration | `apps/docs/docs/integrations//index.mdx` + `index.ts` | +| New widget | `apps/docs/docs/widgets//index.mdx` + `index.ts` | +| Changed API surface | `apps/docs/docs/management/api.mdx` | +| New/changed env vars | `apps/docs/docs/advanced/` | +| New CLI commands | `apps/docs/docs/advanced/command-line/` | +| Changed auth providers | `apps/docs/docs/advanced/` SSO pages | +| UI/UX changes | Relevant getting-started or management pages | +| New cron job | `apps/docs/docs/management/tasks.mdx` | +| Changed permissions | `apps/docs/docs/management/users.mdx` | + +## Integration doc pattern + +Each integration has a folder under `apps/docs/docs/integrations//`: + +- `index.ts` — exports a typed `IntegrationDefinition` with name, description, iconUrl, path +- `index.mdx` — uses shared components: `IntegrationHeader`, `IntegrationCapabilites`, `IntegrationSecrets` +- Import metadata from `@homarr/definitions` where possible + +## Widget doc pattern + +Each widget has a folder under `apps/docs/docs/widgets//`: + +- `index.ts` — exports a typed `WidgetDefinition` with icon, name, description, path, configuration +- `index.mdx` — uses shared components: `WidgetHeader`, `WidgetConfig`, `WidgetAdding` + +## Development + +- Run docs locally: `pnpm dev:docs` from root +- Build docs: `pnpm turbo build --filter=@homarr/docs` +- The docs app can import from `@homarr/definitions` for type-safe integration/widget metadata +- Docusaurus strict mode throws on broken links — fix any broken references before committing diff --git a/.cursor/rules/mcp-integration.mdc b/.agents/skills/mcp-integration/SKILL.md similarity index 81% rename from .cursor/rules/mcp-integration.mdc rename to .agents/skills/mcp-integration/SKILL.md index 989b0c4f6..38658da5a 100644 --- a/.cursor/rules/mcp-integration.mdc +++ b/.agents/skills/mcp-integration/SKILL.md @@ -1,13 +1,14 @@ --- -description: How to expose tRPC procedures as MCP tools for AI clients -globs: packages/api/src/router/**/*.ts -alwaysApply: false +name: mcp-integration +description: Expose tRPC procedures as MCP tools for AI clients. Use when modifying procedures in packages/api/src/router, adding a new tRPC procedure or router, or deciding what to expose via Homarr's MCP interface. Covers .meta({ mcp }), router registration in packages/api/src/mcp.ts, input schema rules, and what to expose vs skip. --- -# MCP Integration Guide +# MCP Integration Every new tRPC procedure that provides useful functionality should be exposed as an MCP tool so AI assistants (Claude, Cursor, etc.) can use it. This is a first-class feature of Homarr. +Exposing a procedure makes it callable by any AI client with an API key. Before adding `.meta({ mcp })`, review what the tool exposes: authorization requirements, sensitive data, tenant isolation, auditability, and whether the action is destructive. Prefer exposing read-only queries over mutations unless the mutation is safe and permission-scoped. When in doubt, ask for a security review before shipping a new MCP tool. + ## Adding MCP to a procedure Add `.meta({ mcp: { enabled: true, description: "..." } })` to the procedure chain: @@ -16,7 +17,7 @@ Add `.meta({ mcp: { enabled: true, description: "..." } })` to the procedure cha // Read-only tool (query) myProcedure: protectedProcedure .meta({ mcp: { enabled: true, description: "Get all items with their status and metadata" } }) - .input(z.object({ limit: z.number().default(50) })) + .input(z.object({ limit: z.number().default(10) })) .query(async ({ ctx, input }) => { ... }) // Write tool (mutation) @@ -38,23 +39,27 @@ The `.meta()` call must come **before** `.input()` and `.query()`/`.mutation()` The description is the **only thing** an AI sees to decide when and how to use the tool. Write it like you're explaining to a colleague who has never used Homarr. **Must include:** + - What the tool returns or does - Which integrations/services it works with (if applicable) - How to get required IDs (e.g., "Use integration_all to get the integrationId") - Permission requirements (if non-obvious) **Good:** -``` + +```text "Get calendar events for upcoming and recent media releases. Fetches from all connected Sonarr (TV), Radarr (movies), Lidarr (music), and Readarr (books) integrations. Requires integrationIds from integration_all" ``` **Bad:** -``` + +```text "Get calendar events" ``` **For tools that return permission fields**, explain what they mean: -``` + +```text "List all integrations. Returns permissions.hasUseAccess (read) and permissions.hasInteractAccess (actions) — false means the API key lacks that permission, not an error" ``` @@ -77,11 +82,13 @@ export const mcpRouter = createTRPCRouter({ ## What to expose vs. what to skip **Expose:** + - Data queries (list, search, get by ID) - Actions users would ask an AI to do (toggle, create, delete, approve) - Status checks (health, stats, summaries) **Skip:** + - Subscriptions (WebSocket-only, not supported by MCP) - Internal procedures (session management, onboarding steps) - File upload/download procedures diff --git a/.claude/skills b/.claude/skills new file mode 120000 index 000000000..2b7a412b8 --- /dev/null +++ b/.claude/skills @@ -0,0 +1 @@ +../.agents/skills \ No newline at end of file diff --git a/.cursor/rules/documentation-sync.mdc b/.cursor/rules/documentation-sync.mdc deleted file mode 100644 index a05ca5d84..000000000 --- a/.cursor/rules/documentation-sync.mdc +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: Keep documentation in sync with code changes -globs: - - packages/definitions/src/** - - packages/widgets/src/** - - packages/integrations/src/** - - packages/api/src/** - - apps/nextjs/src/** - - apps/docs/** ---- - -# Documentation Sync Rule - -When modifying code that affects user-facing behavior, you MUST also update the documentation in `apps/docs/`. - -## What triggers a doc update - -| Code change | Doc location | -|---|---| -| New integration | `apps/docs/docs/integrations//index.mdx` + `index.ts` | -| New widget | `apps/docs/docs/widgets//index.mdx` + `index.ts` | -| Changed API surface | `apps/docs/docs/management/api.mdx` | -| New/changed env vars | `apps/docs/docs/advanced/` | -| New CLI commands | `apps/docs/docs/advanced/command-line/` | -| Changed auth providers | `apps/docs/docs/advanced/` SSO pages | -| UI/UX changes | Relevant getting-started or management pages | -| New cron job | `apps/docs/docs/management/tasks.mdx` | -| Changed permissions | `apps/docs/docs/management/users.mdx` | - -## Integration doc pattern - -Each integration has a folder under `apps/docs/docs/integrations//`: - -- `index.ts` — exports a typed `IntegrationDefinition` with name, description, iconUrl, path -- `index.mdx` — uses shared components: `IntegrationHeader`, `IntegrationCapabilites`, `IntegrationSecrets` -- Import metadata from `@homarr/definitions` where possible - -## Widget doc pattern - -Each widget has a folder under `apps/docs/docs/widgets//`: - -- `index.ts` — exports a typed `WidgetDefinition` with icon, name, description, path, configuration -- `index.mdx` — uses shared components: `WidgetHeader`, `WidgetConfig`, `WidgetAdding` - -## Development - -- Run docs locally: `pnpm dev:docs` from root -- Build docs: `pnpm turbo build --filter=@homarr/docs` -- The docs app can import from `@homarr/definitions` for type-safe integration/widget metadata -- Docusaurus strict mode throws on broken links — fix any broken references before committing diff --git a/.gitignore b/.gitignore index 71a27829a..932d6c9c8 100644 --- a/.gitignore +++ b/.gitignore @@ -71,7 +71,8 @@ apps/nextjs/public/images/background.png # personal agent config .opencode -.agents/ +.agents/* +!.agents/skills/ skills-lock.json # docusaurus diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 000000000..515d300c4 --- /dev/null +++ b/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "mantine": { + "command": "npx", + "args": ["-y", "@mantine/mcp-server"] + } + } +} \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 6c3d36da4..42e69efdd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -84,6 +84,16 @@ When modifying user-facing code, you MUST also update the corresponding document - Lint: oxlint (not ESLint) - Format: oxfmt (not Prettier) - UI: Mantine (not Tailwind) — Tailwind is only used in docs app +- Mantine: use the `mantine` MCP server (configured in `.mcp.json`; tools `get_item_doc` / `get_item_props` / `search_docs`) for current v9 APIs before writing component code. Prefer built-in primitives (`Combobox`/`useCombobox` for selects, the polymorphic `component` prop, `@mantine/hooks`) over hand-rolled equivalents. Check `packages/ui/` for existing conventions first. + +## MCP servers + +`.mcp.json` at the repo root declares project-scoped MCP servers (the standard Claude Code layout; other tools can import the same `mcpServers` block). See the `mantine` entry there for the Mantine v9 server, and the upstream docs at https://mantine.dev/guides/llms/ for per-tool setup (OpenCode: `.opencode/opencode.json`, Codex: `.codex/config.toml`). Only keyless server definitions belong in `.mcp.json`; anything needing secrets stays in local dotfiles. + +## Agent Skills + +Portable agent skills live in `.agents/skills/` (the Agent Skills open standard). Cursor, Codex, and OpenCode read `.agents/skills/` natively. Claude Code does not scan it, so `.claude/skills/` is a symlink back to `.agents/skills/`. Install skills at `.agents/skills//SKILL.md` — that single copy is used everywhere. See `.agents/skills/` for available skills (documentation-sync, mcp-integration, codebase-context, datatable-migration). + - Icons: @tabler/icons-react - Docs app can import from `@homarr/definitions` for shared types - Run `pnpm dev:cli -- dev` to browse local `homarr:*` images and remote PR images. From ec2f8c6c2c0d1b1914902ee1969a0647db41e70d Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 18 Aug 2026 19:39:27 +0200 Subject: [PATCH 14/19] fix(widgets): match OMV disk temperature via normalized partition names (#6615) (#6619) OMV reports filesystem devices (sda1) without the /dev/ prefix, so the partition-suffix normalization never applied and filesystem-to-SMART matching returned no temperature. Strip partition suffixes from unprefixed sd/vd, nvme and mmcblk names, and use the shared normalized matcher in both the health monitoring and system disks widgets. --- .../src/filter-storage-volumes.spec.ts | 44 ++++++++++++++++--- .../widgets/src/filter-storage-volumes.ts | 14 +++--- .../src/health-monitoring/system-health.tsx | 9 +--- .../widgets/src/system-disks/component.tsx | 4 +- 4 files changed, 51 insertions(+), 20 deletions(-) diff --git a/packages/widgets/src/filter-storage-volumes.spec.ts b/packages/widgets/src/filter-storage-volumes.spec.ts index 51d84169a..bcdfe09e4 100644 --- a/packages/widgets/src/filter-storage-volumes.spec.ts +++ b/packages/widgets/src/filter-storage-volumes.spec.ts @@ -1,10 +1,6 @@ import { describe, expect, test } from "vitest"; -import { - filterStorageVolumes, - normalizeStorageDeviceName, - toScopedStorageVolumeValue, -} from "./filter-storage-volumes"; +import { filterStorageVolumes, normalizeStorageDeviceName, toScopedStorageVolumeValue } from "./filter-storage-volumes"; import { matchFileSystemAndSmart } from "./health-monitoring/system-health"; describe("normalizeStorageDeviceName", () => { @@ -13,6 +9,12 @@ describe("normalizeStorageDeviceName", () => { expect(normalizeStorageDeviceName("/dev/sda")).toBe("/dev/sda"); }); + test("strips partition suffixes from unprefixed device names (OpenMediaVault)", () => { + expect(normalizeStorageDeviceName("sda1")).toBe("sda"); + expect(normalizeStorageDeviceName("sda")).toBe("sda"); + expect(normalizeStorageDeviceName("nvme0n1p1")).toBe("nvme0n1"); + }); + test("preserves Synology-style volume names", () => { expect(normalizeStorageDeviceName("volume_1")).toBe("volume_1"); expect(normalizeStorageDeviceName("volume_2")).toBe("volume_2"); @@ -143,4 +145,36 @@ describe("matchFileSystemAndSmart", () => { overallStatus: "", }); }); + + test("joins unprefixed OMV partitions with their base device SMART data", () => { + const result = matchFileSystemAndSmart( + [ + { deviceName: "sda1", used: "3.13 GiB", available: "26853056512", percentage: 12 }, + { deviceName: "sdb1", used: "396.24 GiB", available: "1542365618176", percentage: 22 }, + ], + [ + { deviceName: "sda", temperature: 0, overallStatus: "BAD_STATUS" }, + { deviceName: "sdb", temperature: 33, overallStatus: "GOOD" }, + ], + ); + + expect(result).toEqual([ + { + deviceName: "sda", + used: "3.13 GiB", + available: "26853056512", + percentage: 12, + temperature: 0, + overallStatus: "BAD_STATUS", + }, + { + deviceName: "sdb", + used: "396.24 GiB", + available: "1542365618176", + percentage: 22, + temperature: 33, + overallStatus: "GOOD", + }, + ]); + }); }); diff --git a/packages/widgets/src/filter-storage-volumes.ts b/packages/widgets/src/filter-storage-volumes.ts index 5e88584be..b1788b27f 100644 --- a/packages/widgets/src/filter-storage-volumes.ts +++ b/packages/widgets/src/filter-storage-volumes.ts @@ -5,10 +5,16 @@ interface StorageVolumeEntry { const partitionSuffixPatterns: ReadonlyArray<{ pattern: RegExp; baseGroupIndex: number }> = [ // SCSI/SATA/VirtIO: /dev/sda1 -> /dev/sda { pattern: /^(\/dev\/(?:sd|vd|hd|xvd)[a-z]+)[0-9]+$/, baseGroupIndex: 1 }, + // SCSI/SATA/VirtIO without device node prefix: sda1 -> sda (OMV reports unprefixed names) + { pattern: /^((?:sd|vd)[a-z]+)[0-9]+$/, baseGroupIndex: 1 }, // NVMe: /dev/nvme0n1p2 -> /dev/nvme0n1 { pattern: /^(\/dev\/nvme[0-9]+n[0-9]+)p[0-9]+$/, baseGroupIndex: 1 }, + // NVMe without device node prefix: nvme0n1p2 -> nvme0n1 + { pattern: /^(nvme[0-9]+n[0-9]+)p[0-9]+$/, baseGroupIndex: 1 }, // eMMC: /dev/mmcblk0p1 -> /dev/mmcblk0 { pattern: /^(\/dev\/mmcblk[0-9]+)p[0-9]+$/, baseGroupIndex: 1 }, + // eMMC without device node prefix: mmcblk0p1 -> mmcblk0 + { pattern: /^(mmcblk[0-9]+)p[0-9]+$/, baseGroupIndex: 1 }, ]; export const normalizeStorageDeviceName = (deviceName: string): string => { @@ -28,18 +34,14 @@ export const toScopedStorageVolumeValue = (integrationId: string, value: string) return `${integrationId}:${volumeName}`; }; -const storageDeviceNamesMatch = (leftDeviceName: string, rightDeviceName: string): boolean => { +export const storageDeviceNamesMatch = (leftDeviceName: string, rightDeviceName: string): boolean => { return ( leftDeviceName === rightDeviceName || normalizeStorageDeviceName(leftDeviceName) === normalizeStorageDeviceName(rightDeviceName) ); }; -const matchesVisibleStorageVolume = ( - visibleVolume: string, - integrationId: string, - deviceName: string, -): boolean => { +const matchesVisibleStorageVolume = (visibleVolume: string, integrationId: string, deviceName: string): boolean => { const separatorIndex = visibleVolume.indexOf(":"); if (separatorIndex === -1) { return storageDeviceNamesMatch(visibleVolume, deviceName); diff --git a/packages/widgets/src/health-monitoring/system-health.tsx b/packages/widgets/src/health-monitoring/system-health.tsx index 3614a570c..e83fef9eb 100644 --- a/packages/widgets/src/health-monitoring/system-health.tsx +++ b/packages/widgets/src/health-monitoring/system-health.tsx @@ -36,7 +36,7 @@ import { formatBytes } from "@homarr/common"; import type { TranslationFunction } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import { filterStorageVolumes, normalizeStorageDeviceName } from "../filter-storage-volumes"; +import { filterStorageVolumes, storageDeviceNamesMatch } from "../filter-storage-volumes"; import { WidgetEmptyState } from "../common/empty-state"; import type { WidgetComponentProps } from "../definition"; import { CpuRing } from "./rings/cpu-ring"; @@ -296,12 +296,7 @@ interface SmartData { export const matchFileSystemAndSmart = (fileSystems: FileSystem[], smartData: SmartData[]) => { return fileSystems .map((fileSystem) => { - const normalizedFileSystemName = normalizeStorageDeviceName(fileSystem.deviceName); - const smartDisk = smartData.find( - (smart) => - smart.deviceName === fileSystem.deviceName || - normalizeStorageDeviceName(smart.deviceName) === normalizedFileSystemName, - ); + const smartDisk = smartData.find((smart) => storageDeviceNamesMatch(smart.deviceName, fileSystem.deviceName)); return { deviceName: smartDisk?.deviceName ?? fileSystem.deviceName, diff --git a/packages/widgets/src/system-disks/component.tsx b/packages/widgets/src/system-disks/component.tsx index 5f84dd0b4..5cd45cf0f 100644 --- a/packages/widgets/src/system-disks/component.tsx +++ b/packages/widgets/src/system-disks/component.tsx @@ -10,7 +10,7 @@ import { useI18n } from "@homarr/translation/client"; import { WidgetEmptyState } from "../common/empty-state"; import type { WidgetComponentProps } from "../definition"; -import { filterStorageVolumes } from "../filter-storage-volumes"; +import { filterStorageVolumes, storageDeviceNamesMatch } from "../filter-storage-volumes"; import { NoIntegrationDataError } from "../errors/no-data-integration"; type DisplayMode = WidgetComponentProps<"systemDisks">["options"]["displayMode"]; @@ -140,7 +140,7 @@ export default function SystemResources({ integrationIds, options }: WidgetCompo return ( {fileSystem.map((item) => { - const smartItem = smart.find((smart) => smart.deviceName === item.deviceName); + const smartItem = smart.find((smart) => storageDeviceNamesMatch(smart.deviceName, item.deviceName)); return ( Date: Tue, 18 Aug 2026 19:56:47 +0200 Subject: [PATCH 15/19] fix(widgets): stop Health Monitoring system tab firing NOT_FOUND when Proxmox is mixed in (#6623) --- packages/widgets/src/health-monitoring/component.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/widgets/src/health-monitoring/component.tsx b/packages/widgets/src/health-monitoring/component.tsx index ead4fef92..40ba2da0a 100644 --- a/packages/widgets/src/health-monitoring/component.tsx +++ b/packages/widgets/src/health-monitoring/component.tsx @@ -18,16 +18,18 @@ const isClusterIntegration = (integration: { kind: IntegrationKind }) => integration.kind === "proxmox" || integration.kind === "mock"; export default function HealthMonitoringWidget(props: WidgetComponentProps<"healthMonitoring">) { - const { data: integrations = [] } = clientApi.integration.byIds.useQuery(props.integrationIds); + const { data: integrations, isPending, isError } = clientApi.integration.byIds.useQuery(props.integrationIds); const t = useI18n(); - const clusterIntegrationId = integrations.find(isClusterIntegration)?.id; + if (isPending || isError) return null; + + const clusterIntegrationId = integrations?.find(isClusterIntegration)?.id; if (!clusterIntegrationId) { return ; } - const otherIntegrationIds = integrations + const otherIntegrationIds = (integrations ?? []) // We want to have the mock integration also in the system tab, so we use it for both .filter((integration) => integration.kind !== "proxmox") .map((integration) => integration.id); From f1c49d1fbf6f51cd39904e59e8fc03235cb77147 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 19 Aug 2026 08:29:17 +0200 Subject: [PATCH 16/19] fix(startup): only chown runtime paths for custom PUID/PGID (#6598) --- scripts/entrypoint.sh | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh index f4d7c9fa4..fbfe8756d 100644 --- a/scripts/entrypoint.sh +++ b/scripts/entrypoint.sh @@ -7,14 +7,31 @@ export PGID=${PGID:-0} echo "Starting with UID='$PUID', GID='$PGID'" if [ "${PUID}" != "0" ] || [ "${PGID}" != "0" ]; then - # The below command will change the owner of all files in the /app directory (except node_modules) to the new UID and GID - echo "Changing owner to $PUID:$PGID, this will take about 10 seconds..." - find . -name 'node_modules' -prune -o -mindepth 1 -maxdepth 1 -exec chown -R $PUID:$PGID {} + - chown -R $PUID:$PGID /var/cache/nginx - chown -R $PUID:$PGID /var/log/nginx - chown -R $PUID:$PGID /var/lib/nginx - chown -R $PUID:$PGID /run/nginx/nginx.pid - chown -R $PUID:$PGID /etc/nginx + # Only chown the paths the non-root user must actually write to at runtime. + # Recursively chowning the whole /app tree is extremely slow on network- or + # HDD-backed storage (e.g. TrueNAS Apps), because the Next.js standalone + # bundle and its node_modules contain tens of thousands of tiny files. This + # turned a ~10s step into 15+ minutes for some users (#2190). Application + # code, migrations and native modules are only read/executed, so they stay + # owned by root and do not need chowning. + echo "Changing owner to $PUID:$PGID..." + # Application data volume (db, redis dumps, trusted certificates). + # Ensure the known subdirectories exist and migrate ownership of any + # existing content, so a persistent volume with stale or root-owned + # entries stays writable after a PUID/PGID change. These trees are small + # (a single sqlite db, a redis dump, a few certs), unlike the /app tree. + mkdir -p /appdata/db /appdata/redis /appdata/trusted-certificates + chown "${PUID}:${PGID}" /appdata + chown -R "${PUID}:${PGID}" /appdata/db /appdata/redis /appdata/trusted-certificates + # Next.js runtime cache (image optimization, fetch cache, ...) + mkdir -p /app/apps/nextjs/.next/cache + chown -R "${PUID}:${PGID}" /app/apps/nextjs/.next/cache + # nginx runtime directories and the rendered configuration + chown -R "${PUID}:${PGID}" /var/cache/nginx + chown -R "${PUID}:${PGID}" /var/log/nginx + chown -R "${PUID}:${PGID}" /var/lib/nginx + chown -R "${PUID}:${PGID}" /run/nginx/nginx.pid + chown -R "${PUID}:${PGID}" /etc/nginx echo "Changing owner to $PUID:$PGID, done." fi From 993a267e0c4d71ccaf9db153e7d0ae4ae478ffb1 Mon Sep 17 00:00:00 2001 From: Afonso Jorge Ramos Date: Thu, 20 Aug 2026 15:37:10 +0200 Subject: [PATCH 17/19] fix(truenas): keep reporting pools without usable dataset space (#6635) --- apps/docs/docs/integrations/truenas/index.mdx | 2 +- .../truenas/test/truenas-integration.spec.ts | 121 ++++++++++++++++- .../src/truenas/truenas-integration.ts | 122 +++++++++++++----- 3 files changed, 209 insertions(+), 36 deletions(-) diff --git a/apps/docs/docs/integrations/truenas/index.mdx b/apps/docs/docs/integrations/truenas/index.mdx index 5e57f3a89..00f8f0093 100644 --- a/apps/docs/docs/integrations/truenas/index.mdx +++ b/apps/docs/docs/integrations/truenas/index.mdx @@ -27,7 +27,7 @@ import Alert from '@theme/Admonition'; ]} /> -The storage values shown by these widgets use the root ZFS dataset's usable `used` and `available` space, including RAIDZ parity overhead and dataset limits. +The storage values shown by these widgets come from each pool's root ZFS dataset, so they already account for RAIDZ parity overhead and dataset limits and match what `zfs list` and the TrueNAS web interface report. When a pool cannot report its dataset space, Homarr falls back to the pool's physical values, which read higher on RAIDZ. ### Adding the integration diff --git a/packages/integrations/src/truenas/test/truenas-integration.spec.ts b/packages/integrations/src/truenas/test/truenas-integration.spec.ts index d0856630e..237b41e3f 100644 --- a/packages/integrations/src/truenas/test/truenas-integration.spec.ts +++ b/packages/integrations/src/truenas/test/truenas-integration.spec.ts @@ -59,10 +59,12 @@ const ws = vi.hoisted(() => { } const result = responder(payload.method as string, (payload.params as unknown[] | undefined) ?? []); + // A responder returning an Error mimics a method the server rejects, e.g. an unsupported filter. + const body = result instanceof Error ? { error: { message: result.message } } : { result }; const envelope = payload.jsonrpc === "2.0" - ? { jsonrpc: "2.0", id: payload.id, result } - : { msg: "result", id: payload.id, result }; + ? { jsonrpc: "2.0", id: payload.id, ...body } + : { msg: "result", id: payload.id, ...body }; this.respond(JSON.stringify(envelope)); } @@ -91,7 +93,10 @@ const ws = vi.hoisted(() => { }; }); +const logs = vi.hoisted(() => ({ debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn() })); + vi.mock("ws", () => ({ WebSocket: ws.FakeWebSocket })); +vi.mock("@homarr/core/infrastructure/logs", () => ({ createLogger: () => logs })); vi.mock("@homarr/core/infrastructure/certificates", () => ({ getAllTrustedCertificatesAsync: vi.fn().mockResolvedValue([]), getTrustedCertificateHostnamesAsync: vi.fn().mockResolvedValue([]), @@ -167,6 +172,11 @@ const happyResponder = (method: string) => { const emptyAggregations = () => ({ min: {}, mean: {}, max: {} }); +// `pool.query` reports 500 allocated of a 1000 byte pool, leaving 500 free. +const physicalFallbackFileSystem = [{ deviceName: "tank", available: "500", used: "500", percentage: 50 }]; + +const ERROR_MESSAGE_LIMIT = 200; + let integrationCounter = 0; const createIntegration = (decryptedSecrets: IntegrationSecret[]) => new TrueNasIntegration({ @@ -188,6 +198,7 @@ describe("TrueNasIntegration", () => { ws.constructedUrls.length = 0; ws.failures.length = 0; ws.setResponder(happyResponder); + logs.warn.mockClear(); }); test("fetches and maps system info over the JSON-RPC API", async () => { @@ -230,6 +241,112 @@ describe("TrueNasIntegration", () => { }); }); + test("falls back to physical pool space when the root dataset is not returned", async () => { + ws.setResponder((method) => (method === "pool.dataset.query" ? [] : happyResponder(method))); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem).toMatchObject(physicalFallbackFileSystem); + // Dropping the pool would also hide its health status. + expect(result.smart).toMatchObject([{ deviceName: "tank", healthy: true, overallStatus: "ONLINE" }]); + }); + + test("falls back to physical pool space when the root dataset reports no usable values", async () => { + ws.setResponder((method) => + method === "pool.dataset.query" + ? [{ id: "tank", used: { parsed: null }, available: null }] + : happyResponder(method), + ); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem).toMatchObject(physicalFallbackFileSystem); + }); + + test("falls back to physical pool space when the root dataset omits the requested properties", async () => { + // Datasets that cannot report space, e.g. while locked, come back without `used` and `available`. + ws.setResponder((method) => + method === "pool.dataset.query" ? [{ id: "tank", locked: true }] : happyResponder(method), + ); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem).toMatchObject(physicalFallbackFileSystem); + }); + + test("falls back to physical pool space when the dataset response fails schema validation", async () => { + ws.setResponder((method) => + method === "pool.dataset.query" ? { unexpected: "not an array" } : happyResponder(method), + ); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem).toMatchObject(physicalFallbackFileSystem); + // A malformed payload must not take the rest of the system info down with it. + expect(result).toMatchObject({ cpuTemp: 45, memAvailableInBytes: 6_000_000_000, uptime: 3600 }); + }); + + test("falls back to physical pool space when the dataset query is rejected", async () => { + ws.setResponder((method) => + method === "pool.dataset.query" + ? new Error("[EINVAL] filters: Value error, Invalid operation: in") + : happyResponder(method), + ); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.fileSystem).toMatchObject(physicalFallbackFileSystem); + // A rejected dataset query must not take the rest of the system info down with it. + expect(result).toMatchObject({ cpuTemp: 45, memAvailableInBytes: 6_000_000_000, uptime: 3600 }); + }); + + test("logs the truncated rejection reason rather than the generic wrapper message", async () => { + // TrueNAS answers a rejected method with its Python traceback, which runs to several kilobytes. + ws.setResponder((method) => + method === "pool.dataset.query" + ? new Error(`[EINVAL] query-filters ${"x".repeat(5000)}`) + : happyResponder(method), + ); + const integration = createIntegration(credentials); + + await integration.getSystemInfoAsync(); + + const logged = logs.warn.mock.calls.find(([message]) => String(message).includes("Could not retrieve")); + const reason = String((logged?.[1] as { error?: string } | undefined)?.error); + // The decorator would otherwise surface only "An unknown error occured while executing Integration method". + expect(reason).toContain("[EINVAL] query-filters"); + expect(reason).toHaveLength(ERROR_MESSAGE_LIMIT + 1); // truncated, plus the ellipsis + }); + + test("keeps reporting a pool that is unhealthy but has no usable dataset space", async () => { + ws.setResponder((method) => { + if (method === "pool.query") + return [ + { name: "tank", status: "ONLINE", healthy: true, free: 500, size: 1000, allocated: 500 }, + { name: "backup", status: "DEGRADED", healthy: false, free: 10, size: 100, allocated: 90 }, + ]; + if (method === "pool.dataset.query") return [{ id: "tank", used: { parsed: 200 }, available: { parsed: 300 } }]; + return happyResponder(method); + }); + const integration = createIntegration(credentials); + + const result = await integration.getSystemInfoAsync(); + + expect(result.smart).toMatchObject([ + { deviceName: "tank", healthy: true, overallStatus: "ONLINE" }, + { deviceName: "backup", healthy: false, overallStatus: "DEGRADED" }, + ]); + expect(result.fileSystem).toMatchObject([ + { deviceName: "tank", available: "300", used: "200", percentage: 40 }, + { deviceName: "backup", available: "10", used: "90", percentage: 90 }, + ]); + }); + test("reports zero usage for an empty root dataset", async () => { ws.setResponder((method) => method === "pool.dataset.query" diff --git a/packages/integrations/src/truenas/truenas-integration.ts b/packages/integrations/src/truenas/truenas-integration.ts index c5ba02c76..ffb2225d9 100644 --- a/packages/integrations/src/truenas/truenas-integration.ts +++ b/packages/integrations/src/truenas/truenas-integration.ts @@ -15,6 +15,20 @@ const logger = createLogger({ module: "trueNasIntegration" }); const NETWORK_MULTIPLIER = 100; +const ERROR_MESSAGE_LIMIT = 200; + +/** + * The error decorator replaces a rejected request with a generic message and moves the actionable + * reason to `cause`. TrueNAS puts its middleware traceback in there, several kilobytes of it, so the + * reason is truncated before it reaches a log line that repeats on every poll. + */ +const describeRequestError = (error: unknown) => { + const cause = error instanceof Error ? error.cause : undefined; + const reason = cause instanceof Error ? cause.message : error instanceof Error ? error.message : String(error); + + return reason.length > ERROR_MESSAGE_LIMIT ? `${reason.slice(0, ERROR_MESSAGE_LIMIT)}…` : reason; +}; + export class TrueNasIntegration extends Integration implements ISystemHealthMonitoringIntegration { private client?: TrueNasClient; @@ -108,9 +122,10 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni .map((pool) => { if (pool.allocated !== null && pool.size !== null && pool.free !== null) { return { - ...pool, + name: pool.name, + status: pool.status, + healthy: pool.healthy, allocated: pool.allocated, - size: pool.size, free: pool.free, }; } @@ -119,39 +134,75 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni }) .filter((pool) => pool !== null); - if (activePools.length === 0) return []; - - const datasets = await this.requestAsync("pool.dataset.query", [ - [["id", "in", activePools.map((pool) => pool.name)]], - { - extra: { - properties: ["used", "available"], - }, - }, - ]); - const parsedDatasets = await poolDatasetSchema.parseAsync(datasets); - - const poolsWithUsableSpace = activePools - .map((pool) => { - const dataset = parsedDatasets.find((candidate) => candidate.id === pool.name); - if (!dataset || dataset.used.parsed === null || dataset.available.parsed === null) return null; - - return { - name: pool.name, - status: pool.status, - healthy: pool.healthy, - used: dataset.used.parsed, - available: dataset.available.parsed, - }; - }) - .filter((pool) => pool !== null); - logger.debug("Retrieved pools", { url: this.integration.url, totalCount: result.length, - activeCount: poolsWithUsableSpace.length, + activeCount: activePools.length, }); - return poolsWithUsableSpace; + + if (activePools.length === 0) return []; + + const usableSpaceByPool = await this.getUsableSpaceByPoolAsync(activePools.map((pool) => pool.name)); + + return activePools.map((pool) => { + const usableSpace = usableSpaceByPool.get(pool.name); + if (!usableSpace) { + logger.warn("Falling back to physical pool space, the root dataset reported no usable space", { + url: this.integration.url, + pool: pool.name, + }); + } + + return { + name: pool.name, + status: pool.status, + healthy: pool.healthy, + used: usableSpace?.used ?? pool.allocated, + available: usableSpace?.available ?? pool.free, + }; + }); + } + + /** + * Returns the usable space of each pool's root ZFS dataset, keyed by pool name. Unlike the physical + * `pool.query` values, these account for RAIDZ parity overhead and dataset limits, matching `zfs list`. + * See https://github.com/homarr-labs/homarr/issues/6566 + * + * A pool is left out when its usable space is unavailable, so the caller keeps reporting the pool with + * its physical values instead of dropping it, which would also hide its health status: + * - request rejected → method or `extra.properties` unsupported, or the API key lacks the dataset role + * - response rejected → the payload does not match the expected shape + * - dataset missing → the pool's root dataset was not returned by the query + * - property absent → the dataset does not report `used` / `available`, e.g. while locked + */ + private async getUsableSpaceByPoolAsync(poolNames: string[]) { + const usableSpaceByPool = new Map(); + + try { + const datasets = await this.requestAsync("pool.dataset.query", [ + [["id", "in", poolNames]], + { + extra: { + properties: ["used", "available"], + }, + }, + ]); + + for (const dataset of await poolDatasetSchema.parseAsync(datasets)) { + const used = dataset.used?.parsed; + const available = dataset.available?.parsed; + if (typeof used !== "number" || typeof available !== "number") continue; + + usableSpaceByPool.set(dataset.id, { used, available }); + } + } catch (error) { + logger.warn("Could not retrieve root dataset space, continuing with physical pool space", { + url: this.integration.url, + error: describeRequestError(error), + }); + } + + return usableSpaceByPool; } /** @@ -292,11 +343,16 @@ const poolSchema = z.array( }), ); +// Properties are absent or unparsed for datasets that do not report them, e.g. while locked, +// so they are optional here and the pool falls back to its physical values instead of failing +// the whole request, which would also drop cpu, memory and network data +const poolDatasetPropertySchema = z.object({ parsed: z.number().min(0).nullish() }).nullish(); + const poolDatasetSchema = z.array( z.object({ id: z.string(), - used: z.object({ parsed: z.number().min(0).nullable() }), - available: z.object({ parsed: z.number().min(0).nullable() }), + used: poolDatasetPropertySchema, + available: poolDatasetPropertySchema, }), ); From 73a742154e4bb90e3fcd19942261693e4a178c1f Mon Sep 17 00:00:00 2001 From: Danura30082 Date: Thu, 20 Aug 2026 18:51:58 +0200 Subject: [PATCH 18/19] docs: Proxmox certificate obtention instructions (#6613) --- apps/docs/docs/management/certificates/index.mdx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/docs/docs/management/certificates/index.mdx b/apps/docs/docs/management/certificates/index.mdx index cceaa54fd..010e9f9a9 100644 --- a/apps/docs/docs/management/certificates/index.mdx +++ b/apps/docs/docs/management/certificates/index.mdx @@ -52,14 +52,21 @@ The certificates are stored in the `/appdata/trusted-certificates` directory whi This means you can automate the update of the certificates by simply replacing or adding a new file in the directory. ## Obtaining certificates - Every integration has its own way of obtaining certificates. Generally it is recommended to search for the documentation of the integration you are using. Most of the time you can find the certificate in the file system of the integration. +The certificate file needs to be uploaded to Homarr. To first get the file on your computer you can either: +- use `scp user@host:/path/to/file ./certificate.pem` +- use `cat /path/to/file` to print the certificate. Then recreate the file on your machine. + Below you can find instructions for some of the integrations. ### Pi-hole (v6) - Since version 6 of Pi-hole, the web interface can be accessed through HTTPS. -The certificate can be found in the path `/etc/pihole/tls_ca.crt`. To add the certificate, this file needs to be copied and uploaded to Homarr. -You can find more details regarding SSL / TLS for Pi-hole [here](https://docs.pi-hole.net/api/tls/). \ No newline at end of file +The certificate can be found in the path `/etc/pihole/tls_ca.crt`. +You can find more details regarding SSL / TLS for Pi-hole [here](https://docs.pi-hole.net/api/tls/). + +### Proxmox +By default, Proxmox VE uses a node certificate signed by the cluster. You only need to configure Homarr with the certificate of a single node. +The certificate can be found in any node on the path `/etc/pve/pve-root-ca.pem`. +You can learn more about certificate management in Proxmox [here](https://pve.proxmox.com/wiki/Certificate_Management). From 97195bc463f714421da1d99738cbc1ef84efffc8 Mon Sep 17 00:00:00 2001 From: "homarr-update-contributors[bot]" <210161987+homarr-update-contributors[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 12:53:40 +0000 Subject: [PATCH 19/19] chore: update contributors (#6649) Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com> --- static-data/contributors.json | 2 +- static-data/translators.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/static-data/contributors.json b/static-data/contributors.json index 265bc3dd8..af5ba0ab8 100644 --- a/static-data/contributors.json +++ b/static-data/contributors.json @@ -1 +1 @@ -[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"marektancak0106","avatar_url":"https://avatars.githubusercontent.com/u/25422667?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"beanbag420","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"Hamad3bdulla","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"afonsojramos","avatar_url":"https://avatars.githubusercontent.com/u/19473034?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"Bergasha","avatar_url":"https://avatars.githubusercontent.com/u/25044200?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"junkerderprovinz","avatar_url":"https://avatars.githubusercontent.com/u/133605895?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"Nerdy-Technician","avatar_url":"https://avatars.githubusercontent.com/u/45691205?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"darbyjack","avatar_url":"https://avatars.githubusercontent.com/u/21014720?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"tvervest","avatar_url":"https://avatars.githubusercontent.com/u/5818471?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"kylegrieder","avatar_url":"https://avatars.githubusercontent.com/u/25424229?v=4"},{"login":"mrjoshuap","avatar_url":"https://avatars.githubusercontent.com/u/5722442?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"lopsch","avatar_url":"https://avatars.githubusercontent.com/u/4073114?v=4"},{"login":"Gilmoursa","avatar_url":"https://avatars.githubusercontent.com/u/10321421?v=4"},{"login":"svengo","avatar_url":"https://avatars.githubusercontent.com/u/2502366?v=4"},{"login":"Sveeeeeen","avatar_url":"https://avatars.githubusercontent.com/u/18014962?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"ohmzi","avatar_url":"https://avatars.githubusercontent.com/u/6551272?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"Euclid0192","avatar_url":"https://avatars.githubusercontent.com/u/114103526?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"angusmaul","avatar_url":"https://avatars.githubusercontent.com/u/1232390?v=4"},{"login":"tiimonn","avatar_url":"https://avatars.githubusercontent.com/u/64960609?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"VIVAAN-DHAWAN","avatar_url":"https://avatars.githubusercontent.com/u/150339722?v=4"},{"login":"euduardo","avatar_url":"https://avatars.githubusercontent.com/u/22860571?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"sharpsalat","avatar_url":"https://avatars.githubusercontent.com/u/15666932?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"xanyl","avatar_url":"https://avatars.githubusercontent.com/u/59596981?v=4"},{"login":"arturict","avatar_url":"https://avatars.githubusercontent.com/u/145776561?v=4"},{"login":"ashtonbatty","avatar_url":"https://avatars.githubusercontent.com/u/230635?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"cethien","avatar_url":"https://avatars.githubusercontent.com/u/60463918?v=4"},{"login":"Clarkar00","avatar_url":"https://avatars.githubusercontent.com/u/133609856?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"d-lindahl","avatar_url":"https://avatars.githubusercontent.com/u/690410?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"Ayush7614","avatar_url":"https://avatars.githubusercontent.com/u/67006255?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"febrile42","avatar_url":"https://avatars.githubusercontent.com/u/14597122?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"Lok3sh-kumar","avatar_url":"https://avatars.githubusercontent.com/u/110459168?v=4"},{"login":"Bricklou","avatar_url":"https://avatars.githubusercontent.com/u/15181236?v=4"}] \ No newline at end of file +[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"marektancak0106","avatar_url":"https://avatars.githubusercontent.com/u/25422667?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"beanbag420","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"Hamad3bdulla","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"afonsojramos","avatar_url":"https://avatars.githubusercontent.com/u/19473034?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"Bergasha","avatar_url":"https://avatars.githubusercontent.com/u/25044200?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"junkerderprovinz","avatar_url":"https://avatars.githubusercontent.com/u/133605895?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"Nerdy-Technician","avatar_url":"https://avatars.githubusercontent.com/u/45691205?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"darbyjack","avatar_url":"https://avatars.githubusercontent.com/u/21014720?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"tvervest","avatar_url":"https://avatars.githubusercontent.com/u/5818471?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"kylegrieder","avatar_url":"https://avatars.githubusercontent.com/u/25424229?v=4"},{"login":"mrjoshuap","avatar_url":"https://avatars.githubusercontent.com/u/5722442?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"lopsch","avatar_url":"https://avatars.githubusercontent.com/u/4073114?v=4"},{"login":"Gilmoursa","avatar_url":"https://avatars.githubusercontent.com/u/10321421?v=4"},{"login":"Sveeeeeen","avatar_url":"https://avatars.githubusercontent.com/u/18014962?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"ohmzi","avatar_url":"https://avatars.githubusercontent.com/u/6551272?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"Euclid0192","avatar_url":"https://avatars.githubusercontent.com/u/114103526?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"},{"login":"svengo","avatar_url":"https://avatars.githubusercontent.com/u/2502366?v=4"},{"login":"angusmaul","avatar_url":"https://avatars.githubusercontent.com/u/1232390?v=4"},{"login":"tiimonn","avatar_url":"https://avatars.githubusercontent.com/u/64960609?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"VIVAAN-DHAWAN","avatar_url":"https://avatars.githubusercontent.com/u/150339722?v=4"},{"login":"euduardo","avatar_url":"https://avatars.githubusercontent.com/u/22860571?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"sharpsalat","avatar_url":"https://avatars.githubusercontent.com/u/15666932?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"xanyl","avatar_url":"https://avatars.githubusercontent.com/u/59596981?v=4"},{"login":"arturict","avatar_url":"https://avatars.githubusercontent.com/u/145776561?v=4"},{"login":"ashtonbatty","avatar_url":"https://avatars.githubusercontent.com/u/230635?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"cethien","avatar_url":"https://avatars.githubusercontent.com/u/60463918?v=4"},{"login":"Clarkar00","avatar_url":"https://avatars.githubusercontent.com/u/133609856?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"Danura30082","avatar_url":"https://avatars.githubusercontent.com/u/135959478?v=4"},{"login":"d-lindahl","avatar_url":"https://avatars.githubusercontent.com/u/690410?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"Ayush7614","avatar_url":"https://avatars.githubusercontent.com/u/67006255?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"febrile42","avatar_url":"https://avatars.githubusercontent.com/u/14597122?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"Lok3sh-kumar","avatar_url":"https://avatars.githubusercontent.com/u/110459168?v=4"},{"login":"Bricklou","avatar_url":"https://avatars.githubusercontent.com/u/15181236?v=4"}] \ No newline at end of file diff --git a/static-data/translators.json b/static-data/translators.json index 9276816f7..0261550de 100644 --- a/static-data/translators.json +++ b/static-data/translators.json @@ -1 +1 @@ -[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/aaa1f083e04c572f953fde4563171e4a.jpeg"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"KydoxOwn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17764383/medium/0bc150a09d77f5fda43988e6342777dc.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"RollstuhlJack","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12386691/medium/192fa7d350b148a55d37332c9d17c529_default.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ascalon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12743376/medium/7845361ea1fae14e71978df906d60250.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"thrmda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13431074/medium/c79736af3a4140a01254ea1a887f64bc_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"rimasx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13578080/medium/c356991f3a0c2cfadb22e62cab0cd1bd.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"colonnelli.st","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13835985/medium/69aac81cc1475cff06fff0dc6ee7ad51.jpg"},{"username":"olavinto","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14424644/medium/37c01732bd2b7a272b421807a05ccfeb.png"},{"username":"OzakIOne","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14446246/medium/3abb08846344706d3a16a9fb196655ee.jpeg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"angrystar170","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14736454/medium/7a70edc6b50122877533e95a4e971203.jpeg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"legocuedy09","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15206280/medium/a93129b77a54ffbb2c9f136f18718e80.png"},{"username":"catvari","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15442102/medium/f5cbda04afc08aa9134878cbd1f7db86.png"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"on9686","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16768173/medium/6282fed9aafe0262a173a5ec0887e5d9_default.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"renan.costaalencar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16938427/medium/6d25b25320c5bde734118dec4af9cd5b.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"Master3307","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17161852/medium/94ec577dd53e16b434f2aac9c34f64c6.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"Pakura","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17396930/medium/18602738018348bf2ffa83a78bf165e2_default.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"},{"username":"hongminzheng","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17683860/medium/a764f4963912777d27a7cd98e136a2b2.png"},{"username":"d-lindahl","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17726729/medium/cbde348582fbabcfadd89a56cd5a0b40.png"},{"username":"Enoal-Fauchille-Bolle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17734649/medium/6e6fb29198782dc7856ea21811db669c.jpeg"},{"username":"manos-grigorakis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17737973/medium/b37f685587c920c81fdaf9a357962434.jpeg"},{"username":"SertraFurr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17738703/medium/5f1e9f270e315ee3185cf2ccb3f5a833.png"},{"username":"Kle.Ma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17739207/medium/b767d6093e6608f251ca152f53d359b8_default.png"},{"username":"WalkerLukas","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17744485/medium/87508ce83a9b6e5391f55883a66a054b.png"},{"username":"mtya","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17748447/medium/f574d5a770d74814f8c49ee68e00f5b7.jpeg"},{"username":"Elaktrato","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17750977/medium/f4109d379f29dc8ea2e7799ac9e208c8.png"},{"username":"marcelmeis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17753627/medium/4ba32116c27e427d3073e45713f6564e.png"},{"username":"ProKafelek12e","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17760377/medium/5199af152f1ea42cee718e7729bd41ff.png"},{"username":"zalaghi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17763367/medium/a06f7b15222663517b58b8dc8902f8a1.png"},{"username":"Amato21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17776775/medium/214b1f1581a85fe10f1ae3241aab43e4.png"},{"username":"jabalv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17778347/medium/14dd47fff64f6543e6015be7373420c3.png"},{"username":"agiledivider","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17801131/medium/0039d926d5a716e712e36b06004369ab_default.png"},{"username":"nocteln","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17806203/medium/fc84143ba6b94cc8e8a37415a0d91fb0_default.png"},{"username":"b.yatsenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17810347/medium/6db1ce1d6b9f07afbcec0ca43b8015c8.png"},{"username":"wolliS","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17824457/medium/ab196ecab415d34826955027ae36a72f_default.png"},{"username":"agentusmentus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826645/medium/2ccb13073c04fba9cc4ee65cf879110a.png"},{"username":"--AMT--","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826763/medium/265bab26069472b490520acc75e42f71_default.png"},{"username":"aleh1771","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17828077/medium/2408df7f4b85a3294a0ceed8895d5239.png"}] \ No newline at end of file +[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/aaa1f083e04c572f953fde4563171e4a.jpeg"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"KydoxOwn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17764383/medium/0bc150a09d77f5fda43988e6342777dc.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"RollstuhlJack","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12386691/medium/192fa7d350b148a55d37332c9d17c529_default.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ascalon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12743376/medium/7845361ea1fae14e71978df906d60250.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"thrmda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13431074/medium/c79736af3a4140a01254ea1a887f64bc_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"rimasx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13578080/medium/c356991f3a0c2cfadb22e62cab0cd1bd.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"colonnelli.st","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13835985/medium/69aac81cc1475cff06fff0dc6ee7ad51.jpg"},{"username":"Fabian9895","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14188755/medium/db4ddd4064bfe3a2b7aeb0f0e2952f0d.jpg"},{"username":"olavinto","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14424644/medium/37c01732bd2b7a272b421807a05ccfeb.png"},{"username":"OzakIOne","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14446246/medium/3abb08846344706d3a16a9fb196655ee.jpeg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"angrystar170","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14736454/medium/7a70edc6b50122877533e95a4e971203.jpeg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"legocuedy09","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15206280/medium/a93129b77a54ffbb2c9f136f18718e80.png"},{"username":"catvari","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15442102/medium/f5cbda04afc08aa9134878cbd1f7db86.png"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"on9686","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16768173/medium/6282fed9aafe0262a173a5ec0887e5d9_default.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"danura30082","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781783/medium/17923be963d2a69a5f3b0c81eebb7fb4.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"renan.costaalencar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16938427/medium/6d25b25320c5bde734118dec4af9cd5b.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"Master3307","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17161852/medium/94ec577dd53e16b434f2aac9c34f64c6.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"Pakura","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17396930/medium/18602738018348bf2ffa83a78bf165e2_default.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"},{"username":"hongminzheng","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17683860/medium/a764f4963912777d27a7cd98e136a2b2.png"},{"username":"d-lindahl","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17726729/medium/cbde348582fbabcfadd89a56cd5a0b40.png"},{"username":"Enoal-Fauchille-Bolle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17734649/medium/6e6fb29198782dc7856ea21811db669c.jpeg"},{"username":"manos-grigorakis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17737973/medium/b37f685587c920c81fdaf9a357962434.jpeg"},{"username":"SertraFurr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17738703/medium/5f1e9f270e315ee3185cf2ccb3f5a833.png"},{"username":"Kle.Ma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17739207/medium/b767d6093e6608f251ca152f53d359b8_default.png"},{"username":"WalkerLukas","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17744485/medium/87508ce83a9b6e5391f55883a66a054b.png"},{"username":"mtya","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17748447/medium/f574d5a770d74814f8c49ee68e00f5b7.jpeg"},{"username":"Elaktrato","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17750977/medium/f4109d379f29dc8ea2e7799ac9e208c8.png"},{"username":"marcelmeis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17753627/medium/4ba32116c27e427d3073e45713f6564e.png"},{"username":"ProKafelek12e","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17760377/medium/5199af152f1ea42cee718e7729bd41ff.png"},{"username":"zalaghi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17763367/medium/a06f7b15222663517b58b8dc8902f8a1.png"},{"username":"Amato21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17776775/medium/214b1f1581a85fe10f1ae3241aab43e4.png"},{"username":"jabalv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17778347/medium/14dd47fff64f6543e6015be7373420c3.png"},{"username":"agiledivider","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17801131/medium/0039d926d5a716e712e36b06004369ab_default.png"},{"username":"nocteln","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17806203/medium/fc84143ba6b94cc8e8a37415a0d91fb0_default.png"},{"username":"b.yatsenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17810347/medium/6db1ce1d6b9f07afbcec0ca43b8015c8.png"},{"username":"wolliS","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17824457/medium/ab196ecab415d34826955027ae36a72f_default.png"},{"username":"agentusmentus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826645/medium/2ccb13073c04fba9cc4ee65cf879110a.png"},{"username":"--AMT--","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17826763/medium/265bab26069472b490520acc75e42f71_default.png"},{"username":"aleh1771","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17828077/medium/2408df7f4b85a3294a0ceed8895d5239.png"},{"username":"dmmc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17832649/medium/5ad460dcf35f39f4c6567e911a8a3abb.jpeg"},{"username":"riscurred","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17837663/medium/7cb18f3e9f58e8f946b9bc454fd1e60e.jpeg"}] \ No newline at end of file