mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-18 03:01:09 +01:00
Merge branch 'dev' of https://github.com/ajnart/homarr into common-troubleshoot-and-auto-handling
This commit is contained in:
23
.env.example
23
.env.example
@@ -1,23 +1,14 @@
|
||||
# Since the ".env" file is gitignored, you can use the ".env.example" file to
|
||||
# build a new ".env" file when you clone the repo. Keep this file up-to-date
|
||||
# when you add new variables to `.env`.
|
||||
|
||||
# This file will be committed to version control, so make sure not to have any
|
||||
# secrets in it. If you are cloning this repo, create a copy of this file named
|
||||
# ".env" and populate it with your secrets.
|
||||
|
||||
# When adding additional environment variables, the schema in "/src/env.js"
|
||||
# should be updated accordingly.
|
||||
|
||||
# Prisma
|
||||
# https://www.prisma.io/docs/reference/database-reference/connection-urls#env
|
||||
DATABASE_URL="file:../database/db.sqlite"
|
||||
DATABASE_URL="file:./database/db.sqlite"
|
||||
|
||||
# Next Auth
|
||||
# You can generate a new secret on the command line with:
|
||||
# openssl rand -base64 32
|
||||
# https://next-auth.js.org/configuration/options#secret
|
||||
# NEXTAUTH_SECRET=""
|
||||
NEXTAUTH_URL="http://localhost:3000"
|
||||
|
||||
NEXTAUTH_SECRET=""
|
||||
NEXTAUTH_SECRET="anything"
|
||||
|
||||
# Disable analytics
|
||||
NEXT_PUBLIC_DISABLE_ANALYTICS="true"
|
||||
|
||||
DEFAULT_COLOR_SCHEME="light"
|
||||
7
.github/workflows/docker_dev.yml
vendored
7
.github/workflows/docker_dev.yml
vendored
@@ -41,6 +41,7 @@ jobs:
|
||||
permissions:
|
||||
packages: write
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
|
||||
- name: Setup
|
||||
@@ -74,7 +75,11 @@ jobs:
|
||||
|
||||
- run: yarn turbo build
|
||||
|
||||
- run: yarn test:run
|
||||
- run: yarn test:coverage
|
||||
|
||||
- name: Report coverage
|
||||
if: always()
|
||||
uses: davelosert/vitest-coverage-report-action@v2
|
||||
|
||||
- name: Docker meta
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -58,8 +58,9 @@ public/locales/*
|
||||
!public/locales/en
|
||||
|
||||
#database
|
||||
prisma/db.sqlite
|
||||
sqlite.db
|
||||
database/*.sqlite
|
||||
WILL_BE_OVERWRITTEN.sqlite
|
||||
|
||||
# IDE
|
||||
.idea/*
|
||||
28
Dockerfile
28
Dockerfile
@@ -2,31 +2,45 @@ FROM node:20.5-slim
|
||||
WORKDIR /app
|
||||
|
||||
# Define node.js environment variables
|
||||
ARG PORT=7575
|
||||
|
||||
ENV NEXT_TELEMETRY_DISABLED 1
|
||||
ENV NODE_ENV production
|
||||
ENV NODE_OPTIONS '--no-experimental-fetch'
|
||||
|
||||
COPY next.config.js ./
|
||||
COPY public ./public
|
||||
COPY package.json ./package.json
|
||||
COPY yarn.lock ./yarn.lock
|
||||
COPY package.json ./temp_package.json
|
||||
COPY yarn.lock ./temp_yarn.lock
|
||||
# Automatically leverage output traces to reduce image size
|
||||
# https://nextjs.org/docs/advanced-features/output-file-tracing
|
||||
COPY .next/standalone ./
|
||||
COPY .next/static ./.next/static
|
||||
COPY prisma/schema.prisma prisma/schema.prisma
|
||||
COPY ./scripts/run.sh ./scripts/run.sh
|
||||
COPY ./drizzle ./drizzle
|
||||
RUN mkdir database
|
||||
COPY ./src/migrate.ts ./src/migrate.ts
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update -y && apt-get install -y openssl
|
||||
RUN yarn global add prisma
|
||||
RUN apt-get update -y && apt-get install -y openssl wget
|
||||
|
||||
# Required for migration
|
||||
RUN mv node_modules _node_modules
|
||||
RUN rm package.json
|
||||
RUN yarn add typescript ts-node dotenv drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3
|
||||
RUN mv node_modules node_modules_migrate
|
||||
RUN mv _node_modules node_modules
|
||||
|
||||
# Expose the default application port
|
||||
EXPOSE 7575
|
||||
EXPOSE $PORT
|
||||
ENV PORT=${PORT}
|
||||
|
||||
ENV DATABASE_URL "file:../database/db.sqlite"
|
||||
ENV DATABASE_URL "file:./database/db.sqlite"
|
||||
ENV NEXTAUTH_URL "http://localhost:3000"
|
||||
ENV PORT 7575
|
||||
ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED
|
||||
|
||||
HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \
|
||||
CMD wget --no-verbose --tries=1 --spider http://localhost:${PORT} || exit 1
|
||||
|
||||
CMD ["sh", "./scripts/run.sh"]
|
||||
|
||||
@@ -492,7 +492,7 @@
|
||||
"pageTitle": "Homarr ⭐️",
|
||||
"logoImageUrl": "/imgs/logo/logo.png",
|
||||
"faviconUrl": "/imgs/favicon/favicon-squared.png",
|
||||
"backgroundImageUrl": "https://images.unsplash.com/32/Mc8kW4x9Q3aRR3RkP5Im_IMG_4417.jpg?ixid=M3wxMjA3fDB8MXxzZWFyY2h8MTV8fGJhY2tncm91bmQlMjBpbWFnZXxlbnwwfHx8fDE2OTE0NDQ5NjF8MA&ixlib=rb-4.0.3",
|
||||
"backgroundImageUrl": "",
|
||||
"customCss": "",
|
||||
"colors": {
|
||||
"primary": "red",
|
||||
|
||||
0
database/.gitkeep
Normal file
0
database/.gitkeep
Normal file
11
drizzle.config.ts
Normal file
11
drizzle.config.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import 'dotenv';
|
||||
import { type Config } from 'drizzle-kit';
|
||||
|
||||
export default {
|
||||
schema: './src/server/db/schema.ts',
|
||||
driver: 'better-sqlite',
|
||||
out: './drizzle',
|
||||
dbCredentials: {
|
||||
url: process.env.DATABASE_URL!,
|
||||
},
|
||||
} satisfies Config;
|
||||
69
drizzle/0000_supreme_the_captain.sql
Normal file
69
drizzle/0000_supreme_the_captain.sql
Normal file
@@ -0,0 +1,69 @@
|
||||
CREATE TABLE `account` (
|
||||
`userId` text NOT NULL,
|
||||
`type` text NOT NULL,
|
||||
`provider` text NOT NULL,
|
||||
`providerAccountId` text NOT NULL,
|
||||
`refresh_token` text,
|
||||
`access_token` text,
|
||||
`expires_at` integer,
|
||||
`token_type` text,
|
||||
`scope` text,
|
||||
`id_token` text,
|
||||
`session_state` text,
|
||||
PRIMARY KEY(`provider`, `providerAccountId`),
|
||||
FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `invite` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`token` text NOT NULL,
|
||||
`expires` integer NOT NULL,
|
||||
`created_by_id` text NOT NULL,
|
||||
FOREIGN KEY (`created_by_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `session` (
|
||||
`sessionToken` text PRIMARY KEY NOT NULL,
|
||||
`userId` text NOT NULL,
|
||||
`expires` integer NOT NULL,
|
||||
FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `user_setting` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`user_id` text NOT NULL,
|
||||
`color_scheme` text DEFAULT 'environment' NOT NULL,
|
||||
`language` text DEFAULT 'en' NOT NULL,
|
||||
`default_board` text DEFAULT 'default' NOT NULL,
|
||||
`first_day_of_week` text DEFAULT 'monday' NOT NULL,
|
||||
`search_template` text DEFAULT 'https://google.com/search?q=%s' NOT NULL,
|
||||
`open_search_in_new_tab` integer DEFAULT true NOT NULL,
|
||||
`disable_ping_pulse` integer DEFAULT false NOT NULL,
|
||||
`replace_ping_with_icons` integer DEFAULT false NOT NULL,
|
||||
`use_debug_language` integer DEFAULT false NOT NULL,
|
||||
`auto_focus_search` integer DEFAULT false NOT NULL,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `user` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`name` text,
|
||||
`email` text,
|
||||
`emailVerified` integer,
|
||||
`image` text,
|
||||
`password` text,
|
||||
`salt` text,
|
||||
`is_admin` integer DEFAULT false NOT NULL,
|
||||
`is_owner` integer DEFAULT false NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `verificationToken` (
|
||||
`identifier` text NOT NULL,
|
||||
`token` text NOT NULL,
|
||||
`expires` integer NOT NULL,
|
||||
PRIMARY KEY(`identifier`, `token`)
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE INDEX `userId_idx` ON `account` (`userId`);--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `invite_token_unique` ON `invite` (`token`);--> statement-breakpoint
|
||||
CREATE INDEX `user_id_idx` ON `session` (`userId`);
|
||||
468
drizzle/meta/0000_snapshot.json
Normal file
468
drizzle/meta/0000_snapshot.json
Normal file
@@ -0,0 +1,468 @@
|
||||
{
|
||||
"version": "5",
|
||||
"dialect": "sqlite",
|
||||
"id": "32c1bc91-e69f-4e1d-b53c-9c43f2e6c9d3",
|
||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||
"tables": {
|
||||
"account": {
|
||||
"name": "account",
|
||||
"columns": {
|
||||
"userId": {
|
||||
"name": "userId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"type": {
|
||||
"name": "type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"provider": {
|
||||
"name": "provider",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"providerAccountId": {
|
||||
"name": "providerAccountId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"refresh_token": {
|
||||
"name": "refresh_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"access_token": {
|
||||
"name": "access_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires_at": {
|
||||
"name": "expires_at",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token_type": {
|
||||
"name": "token_type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"scope": {
|
||||
"name": "scope",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"id_token": {
|
||||
"name": "id_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"session_state": {
|
||||
"name": "session_state",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"userId_idx": {
|
||||
"name": "userId_idx",
|
||||
"columns": [
|
||||
"userId"
|
||||
],
|
||||
"isUnique": false
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"account_userId_user_id_fk": {
|
||||
"name": "account_userId_user_id_fk",
|
||||
"tableFrom": "account",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"userId"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {
|
||||
"account_provider_providerAccountId_pk": {
|
||||
"columns": [
|
||||
"provider",
|
||||
"providerAccountId"
|
||||
]
|
||||
}
|
||||
},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"invite": {
|
||||
"name": "invite",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token": {
|
||||
"name": "token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"created_by_id": {
|
||||
"name": "created_by_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"invite_token_unique": {
|
||||
"name": "invite_token_unique",
|
||||
"columns": [
|
||||
"token"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"invite_created_by_id_user_id_fk": {
|
||||
"name": "invite_created_by_id_user_id_fk",
|
||||
"tableFrom": "invite",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"created_by_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"session": {
|
||||
"name": "session",
|
||||
"columns": {
|
||||
"sessionToken": {
|
||||
"name": "sessionToken",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"userId": {
|
||||
"name": "userId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_id_idx": {
|
||||
"name": "user_id_idx",
|
||||
"columns": [
|
||||
"userId"
|
||||
],
|
||||
"isUnique": false
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"session_userId_user_id_fk": {
|
||||
"name": "session_userId_user_id_fk",
|
||||
"tableFrom": "session",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"userId"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"user_setting": {
|
||||
"name": "user_setting",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"user_id": {
|
||||
"name": "user_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"color_scheme": {
|
||||
"name": "color_scheme",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'environment'"
|
||||
},
|
||||
"language": {
|
||||
"name": "language",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'en'"
|
||||
},
|
||||
"default_board": {
|
||||
"name": "default_board",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'default'"
|
||||
},
|
||||
"first_day_of_week": {
|
||||
"name": "first_day_of_week",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'monday'"
|
||||
},
|
||||
"search_template": {
|
||||
"name": "search_template",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'https://google.com/search?q=%s'"
|
||||
},
|
||||
"open_search_in_new_tab": {
|
||||
"name": "open_search_in_new_tab",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": true
|
||||
},
|
||||
"disable_ping_pulse": {
|
||||
"name": "disable_ping_pulse",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"replace_ping_with_icons": {
|
||||
"name": "replace_ping_with_icons",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"use_debug_language": {
|
||||
"name": "use_debug_language",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"auto_focus_search": {
|
||||
"name": "auto_focus_search",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {
|
||||
"user_setting_user_id_user_id_fk": {
|
||||
"name": "user_setting_user_id_user_id_fk",
|
||||
"tableFrom": "user_setting",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"user_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"user": {
|
||||
"name": "user",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"email": {
|
||||
"name": "email",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"emailVerified": {
|
||||
"name": "emailVerified",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"image": {
|
||||
"name": "image",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"password": {
|
||||
"name": "password",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"salt": {
|
||||
"name": "salt",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"is_admin": {
|
||||
"name": "is_admin",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"is_owner": {
|
||||
"name": "is_owner",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"verificationToken": {
|
||||
"name": "verificationToken",
|
||||
"columns": {
|
||||
"identifier": {
|
||||
"name": "identifier",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token": {
|
||||
"name": "token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {
|
||||
"verificationToken_identifier_token_pk": {
|
||||
"columns": [
|
||||
"identifier",
|
||||
"token"
|
||||
]
|
||||
}
|
||||
},
|
||||
"uniqueConstraints": {}
|
||||
}
|
||||
},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
}
|
||||
}
|
||||
13
drizzle/meta/_journal.json
Normal file
13
drizzle/meta/_journal.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"version": "5",
|
||||
"dialect": "sqlite",
|
||||
"entries": [
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "5",
|
||||
"when": 1695874816934,
|
||||
"tag": "0000_supreme_the_captain",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
1
next-env.d.ts
vendored
1
next-env.d.ts
vendored
@@ -1,6 +1,5 @@
|
||||
/// <reference types="next" />
|
||||
/// <reference types="next/image-types/global" />
|
||||
/// <reference types="next/navigation-types/compat/navigation" />
|
||||
|
||||
// NOTE: This file should not be edited
|
||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
||||
|
||||
38
package.json
38
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homarr",
|
||||
"version": "0.13.2",
|
||||
"version": "0.14.0",
|
||||
"description": "Homarr - A homepage for your server.",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
@@ -18,15 +18,16 @@
|
||||
"lint": "next lint",
|
||||
"prettier:check": "prettier --check \"**/*.{ts,tsx}\"",
|
||||
"prettier:write": "prettier --write \"**/*.{ts,tsx}\"",
|
||||
"test": "vitest",
|
||||
"test:ui": "vitest --ui",
|
||||
"test:run": "vitest run",
|
||||
"test:coverage": "vitest run --coverage",
|
||||
"test": "SKIP_ENV_VALIDATION=1 vitest",
|
||||
"test:ui": "SKIP_ENV_VALIDATION=1 vitest --ui",
|
||||
"test:run": "SKIP_ENV_VALIDATION=1 vitest run",
|
||||
"test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage",
|
||||
"docker:build": "turbo build && docker build . -t homarr:local-dev",
|
||||
"docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev",
|
||||
"postinstall": "prisma generate"
|
||||
"db:migrate": "ts-node src/migrate.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@auth/drizzle-adapter": "^0.3.2",
|
||||
"@ctrl/deluge": "^4.1.0",
|
||||
"@ctrl/qbittorrent": "^6.0.0",
|
||||
"@ctrl/shared-torrent": "^4.1.1",
|
||||
@@ -44,12 +45,10 @@
|
||||
"@mantine/notifications": "^6.0.0",
|
||||
"@mantine/prism": "^6.0.19",
|
||||
"@mantine/tiptap": "^6.0.17",
|
||||
"@next-auth/prisma-adapter": "^1.0.7",
|
||||
"@nivo/core": "^0.83.0",
|
||||
"@nivo/line": "^0.83.0",
|
||||
"@prisma/client": "^5.0.0",
|
||||
"@react-native-async-storage/async-storage": "^1.18.1",
|
||||
"@t3-oss/env-nextjs": "^0.6.0",
|
||||
"@t3-oss/env-nextjs": "^0.7.1",
|
||||
"@tabler/icons-react": "^2.20.0",
|
||||
"@tanstack/query-async-storage-persister": "^4.27.1",
|
||||
"@tanstack/query-sync-storage-persister": "^4.27.1",
|
||||
@@ -60,20 +59,24 @@
|
||||
"@tiptap/pm": "^2.0.4",
|
||||
"@tiptap/react": "^2.0.4",
|
||||
"@tiptap/starter-kit": "^2.0.4",
|
||||
"@trpc/client": "^10.29.1",
|
||||
"@trpc/next": "^10.29.1",
|
||||
"@trpc/react-query": "^10.29.1",
|
||||
"@trpc/server": "^10.29.1",
|
||||
"@trpc/client": "^10.37.1",
|
||||
"@trpc/next": "^10.37.1",
|
||||
"@trpc/react-query": "^10.37.1",
|
||||
"@trpc/server": "^10.37.1",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@vitejs/plugin-react": "^4.0.0",
|
||||
"axios": "^1.0.0",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"better-sqlite3": "^8.6.0",
|
||||
"browser-geo-tz": "^0.0.4",
|
||||
"consola": "^3.0.0",
|
||||
"cookies": "^0.8.0",
|
||||
"cookies-next": "^2.1.1",
|
||||
"dayjs": "^1.11.7",
|
||||
"dockerode": "^3.3.2",
|
||||
"dotenv": "^16.3.1",
|
||||
"drizzle-kit": "^0.19.13",
|
||||
"drizzle-orm": "^0.28.6",
|
||||
"fily-publish-gridstack": "^0.0.13",
|
||||
"flag-icons": "^6.9.2",
|
||||
"framer-motion": "^10.0.0",
|
||||
@@ -86,10 +89,9 @@
|
||||
"moment": "^2.29.4",
|
||||
"moment-timezone": "^0.5.43",
|
||||
"next": "13.4.12",
|
||||
"next-auth": "^4.22.3",
|
||||
"next-auth": "^4.23.0",
|
||||
"next-i18next": "^14.0.0",
|
||||
"nzbget-api": "^0.0.3",
|
||||
"prisma": "^5.0.0",
|
||||
"prismjs": "^1.29.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
@@ -110,17 +112,20 @@
|
||||
"@testing-library/jest-dom": "^5.16.5",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
|
||||
"@types/better-sqlite3": "^7.6.5",
|
||||
"@types/cookies": "^0.7.7",
|
||||
"@types/dockerode": "^3.3.9",
|
||||
"@types/node": "18.17.8",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"@types/react": "^18.2.11",
|
||||
"@types/umami": "^0.1.4",
|
||||
"@types/uuid": "^9.0.0",
|
||||
"@types/video.js": "^7.3.51",
|
||||
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
||||
"@typescript-eslint/parser": "^6.0.0",
|
||||
"@vitest/coverage-c8": "^0.33.0",
|
||||
"@vitest/ui": "^0.33.0",
|
||||
"@vitest/coverage-v8": "^0.34.5",
|
||||
"@vitest/ui": "^0.34.4",
|
||||
"eslint": "^8.0.1",
|
||||
"eslint-config-next": "^13.4.5",
|
||||
"eslint-plugin-promise": "^6.0.0",
|
||||
@@ -134,6 +139,7 @@
|
||||
"prettier": "^3.0.0",
|
||||
"sass": "^1.56.1",
|
||||
"ts-node": "latest",
|
||||
"ts-node-esm": "^0.0.6",
|
||||
"turbo": "^1.10.12",
|
||||
"typescript": "^5.1.0",
|
||||
"video.js": "^8.0.3",
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
binaryTargets = ["native", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x", "debian-openssl-3.0.x"]
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "sqlite"
|
||||
// NOTE: When using mysql or sqlserver, uncomment the @db.Text annotations in model Account below
|
||||
// Further reading:
|
||||
// https://next-auth.js.org/adapters/prisma#create-the-prisma-schema
|
||||
// https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#string
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
// Necessary for Next auth
|
||||
model Account {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
type String
|
||||
provider String
|
||||
providerAccountId String
|
||||
refresh_token String? // @db.Text
|
||||
access_token String? // @db.Text
|
||||
expires_at Int?
|
||||
token_type String?
|
||||
scope String?
|
||||
id_token String? // @db.Text
|
||||
session_state String?
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([provider, providerAccountId])
|
||||
}
|
||||
|
||||
model Session {
|
||||
id String @id @default(cuid())
|
||||
sessionToken String @unique
|
||||
userId String
|
||||
expires DateTime
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(cuid())
|
||||
name String?
|
||||
email String? @unique
|
||||
emailVerified DateTime?
|
||||
image String?
|
||||
password String?
|
||||
salt String?
|
||||
isAdmin Boolean @default(false)
|
||||
isOwner Boolean @default(false)
|
||||
accounts Account[]
|
||||
sessions Session[]
|
||||
settings UserSettings?
|
||||
createdInvites Invite[]
|
||||
}
|
||||
|
||||
model VerificationToken {
|
||||
identifier String
|
||||
token String @unique
|
||||
expires DateTime
|
||||
|
||||
@@unique([identifier, token])
|
||||
}
|
||||
|
||||
model Invite {
|
||||
id String @id @default(cuid())
|
||||
token String @unique
|
||||
expires DateTime
|
||||
createdById String
|
||||
createdBy User @relation(fields: [createdById], references: [id], onDelete: Cascade)
|
||||
}
|
||||
|
||||
model UserSettings {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
colorScheme String @default("environment") // environment, light, dark
|
||||
language String @default("en")
|
||||
defaultBoard String @default("default")
|
||||
firstDayOfWeek String @default("monday") // monday, saturnday, sunday
|
||||
searchTemplate String @default("https://google.com/search?q=%s")
|
||||
openSearchInNewTab Boolean @default(true)
|
||||
disablePingPulse Boolean @default(false)
|
||||
replacePingWithIcons Boolean @default(false)
|
||||
useDebugLanguage Boolean @default(false)
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([userId])
|
||||
}
|
||||
35
public/locales/da/authentication/invite.json
Normal file
35
public/locales/da/authentication/invite.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"metaTitle": "Opret konto",
|
||||
"title": "Opret konto",
|
||||
"text": "Angiv venligst dine legitimationsoplysninger nedenfor",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Brugernavn"
|
||||
},
|
||||
"password": {
|
||||
"label": "Adgangskode"
|
||||
},
|
||||
"passwordConfirmation": {
|
||||
"label": "Bekræft kodeord"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Opret konto"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"loading": {
|
||||
"title": "Opretter konto",
|
||||
"text": "Vent venligst"
|
||||
},
|
||||
"success": {
|
||||
"title": "Konto oprettet",
|
||||
"text": "Din konto er blevet oprettet med succes"
|
||||
},
|
||||
"error": {
|
||||
"title": "Fejl",
|
||||
"text": "Noget gik galt, fik følgende fejl: {{error}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,20 @@
|
||||
{
|
||||
"metaTitle": "Log ind",
|
||||
"title": "Velkommen tilbage!",
|
||||
"text": "Indtast venligst din adgangskode",
|
||||
"text": "Indtast venligst dine legitimationsoplysninger",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Brugernavn"
|
||||
},
|
||||
"password": {
|
||||
"label": "Adgangskode",
|
||||
"placeholder": "Din adgangskode"
|
||||
"label": "Adgangskode"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Log ind"
|
||||
}
|
||||
},
|
||||
"afterLoginRedirection": "Når du er logget ind, bliver du omdirigeret til {{url}}"
|
||||
},
|
||||
"notifications": {
|
||||
"checking": {
|
||||
"title": "Tjekker din adgangskode",
|
||||
"message": "Din adgangskode er ved at blive tjekket..."
|
||||
},
|
||||
"correct": {
|
||||
"title": "Log ind vellykket, omdirigerer..."
|
||||
},
|
||||
"wrong": {
|
||||
"title": "Kodeordet du tastede ind, var forkert. Prøv venligst igen."
|
||||
}
|
||||
}
|
||||
}
|
||||
"alert": "Dine legitimationsoplysninger er forkerte, eller denne konto findes ikke. Prøv venligst igen."
|
||||
}
|
||||
5
public/locales/da/boards/common.json
Normal file
5
public/locales/da/boards/common.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"header": {
|
||||
"customize": "Tilpas board"
|
||||
}
|
||||
}
|
||||
29
public/locales/da/boards/customize.json
Normal file
29
public/locales/da/boards/customize.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"metaTitle": "Tilpas {{name}} Board",
|
||||
"pageTitle": "Tilpasning til {{name}} Board",
|
||||
"backToBoard": "Tilbage til board",
|
||||
"settings": {
|
||||
"appearance": {
|
||||
"primaryColor": "Primær farve",
|
||||
"secondaryColor": "Sekundær farve"
|
||||
}
|
||||
},
|
||||
"save": {
|
||||
"button": "Gem ændringer",
|
||||
"note": "Pas på, du har ændringer, der ikke er gemt!"
|
||||
},
|
||||
"notifications": {
|
||||
"pending": {
|
||||
"title": "Gemmer tilpasning",
|
||||
"message": "Vent venligst, mens vi gemmer din tilpasning"
|
||||
},
|
||||
"success": {
|
||||
"title": "Tilpasning gemt",
|
||||
"message": "Din tilpasning er blevet gemt med succes"
|
||||
},
|
||||
"error": {
|
||||
"title": "Fejl",
|
||||
"message": "Kan ikke gemme ændringer"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
"about": "Om",
|
||||
"cancel": "Annuller",
|
||||
"close": "Luk",
|
||||
"back": "Tilbage",
|
||||
"delete": "Slet",
|
||||
"ok": "OK",
|
||||
"edit": "Rediger",
|
||||
"next": "Næste",
|
||||
"previous": "Forrige",
|
||||
"confirm": "Bekræft",
|
||||
"enabled": "Aktiveret",
|
||||
"disabled": "Deaktiveret",
|
||||
"enableAll": "Aktiver alle",
|
||||
|
||||
34
public/locales/da/layout/header.json
Normal file
34
public/locales/da/layout/header.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"experimentalNote": {
|
||||
"label": "Dette er en eksperimentel funktion i Homarr. Rapporter venligst eventuelle problemer på <gh>GitHub</gh> eller <dc>Discord</dc>."
|
||||
},
|
||||
"search": {
|
||||
"label": "Søg",
|
||||
"engines": {
|
||||
"web": "Søg efter {{query}} på nettet",
|
||||
"youtube": "Søg efter {{query}} på YouTube",
|
||||
"torrent": "Søg efter {{query}} torrents",
|
||||
"movie": "Søg efter {{query}} på {{app}}"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"avatar": {
|
||||
"switchTheme": "Skift tema",
|
||||
"preferences": "Brugerindstillinger",
|
||||
"defaultBoard": "Standard dashboard",
|
||||
"manage": "Administrer",
|
||||
"about": {
|
||||
"label": "Om",
|
||||
"new": "Ny"
|
||||
},
|
||||
"logout": "Log {{username}} ud",
|
||||
"login": "Log ind"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"movie": {
|
||||
"title": "",
|
||||
"topResults": "Top {{count}} resultater for <b>{{search}}</b>."
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/da/layout/manage.json
Normal file
32
public/locales/da/layout/manage.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"navigation": {
|
||||
"home": {
|
||||
"title": "Hjem"
|
||||
},
|
||||
"boards": {
|
||||
"title": "Boards"
|
||||
},
|
||||
"users": {
|
||||
"title": "Brugere",
|
||||
"items": {
|
||||
"manage": "Administrer",
|
||||
"invites": "Invitationer"
|
||||
}
|
||||
},
|
||||
"help": {
|
||||
"title": "Hjælp",
|
||||
"items": {
|
||||
"documentation": "Dokumentation",
|
||||
"report": "Rapporter et problem / en fejl",
|
||||
"discord": "Discordfællesskab",
|
||||
"contribute": "Bidrag!"
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"title": "Værktøjer",
|
||||
"items": {
|
||||
"docker": "Docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
44
public/locales/da/manage/boards.json
Normal file
44
public/locales/da/manage/boards.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"metaTitle": "Boards",
|
||||
"pageTitle": "Boards",
|
||||
"cards": {
|
||||
"statistics": {
|
||||
"apps": "Apps",
|
||||
"widgets": "Widgets",
|
||||
"categories": "Kategorier"
|
||||
},
|
||||
"buttons": {
|
||||
"view": "Se board"
|
||||
},
|
||||
"menu": {
|
||||
"setAsDefault": "Indstil som din standardboard",
|
||||
"delete": {
|
||||
"label": "Slet permanent",
|
||||
"disabled": "Sletning deaktiveret, fordi ældre Homarr-komponenter ikke tillader sletning af standardkonfigurationen. Sletning vil være mulig i fremtiden."
|
||||
}
|
||||
},
|
||||
"badges": {
|
||||
"fileSystem": "Filsystem",
|
||||
"default": "Standard"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Opret nyt board"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Slet board",
|
||||
"text": "Er du sikker på, at du vil slette dette board? Denne handling kan ikke fortrydes, og dine data vil gå tabt permanent."
|
||||
},
|
||||
"create": {
|
||||
"title": "Opret et board",
|
||||
"text": "Navnet kan ikke ændres, efter at et board er blevet oprettet.",
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "Navn"
|
||||
},
|
||||
"submit": "Opret"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
public/locales/da/manage/index.json
Normal file
23
public/locales/da/manage/index.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"metaTitle": "Administrer",
|
||||
"hero": {
|
||||
"title": "Velkommen tilbage, {{username}}",
|
||||
"fallbackUsername": "Anonym",
|
||||
"subtitle": "Velkommen til din applikationshub. Organiser, optimer og erobr!"
|
||||
},
|
||||
"quickActions": {
|
||||
"title": "Hurtige handlinger",
|
||||
"boards": {
|
||||
"title": "Dine boards",
|
||||
"subtitle": "Opret og administrer dine boards"
|
||||
},
|
||||
"inviteUsers": {
|
||||
"title": "Inviter en ny bruger",
|
||||
"subtitle": "Opret og send en invitation til registrering"
|
||||
},
|
||||
"manageUsers": {
|
||||
"title": "Administrér brugere",
|
||||
"subtitle": "Slet og administrer dine brugere"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
public/locales/da/manage/users.json
Normal file
36
public/locales/da/manage/users.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"metaTitle": "Brugere",
|
||||
"pageTitle": "Administrér brugere",
|
||||
"text": "Ved hjælp af brugere kan du konfigurere, hvem der kan redigere dine dashboards. Fremtidige versioner af Homarr vil have endnu mere detaljeret kontrol over tilladelser og tavler.",
|
||||
"buttons": {
|
||||
"create": "Opret"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"user": "Bruger"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"deleteUser": "Slet bruger",
|
||||
"demoteAdmin": "Degrader administrator",
|
||||
"promoteToAdmin": "Promover til administrator"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Slet brugeren {{name}}",
|
||||
"text": "Er du sikker på, at du vil slette brugeren {{name}}? Dette vil slette data, der er knyttet til denne konto, men ikke dashboards, der er oprettet af denne bruger."
|
||||
},
|
||||
"change-role": {
|
||||
"promote": {
|
||||
"title": "Forfrem brugeren {{name}} til administrator",
|
||||
"text": "Er du sikker på, at du vil promovere brugeren {{name}} til administrator? Dette vil give brugeren adgang til alle ressourcer i din Homarr instans."
|
||||
},
|
||||
"demote": {
|
||||
"title": "Degrader bruger {{name}} til bruger",
|
||||
"text": "Er du sikker på, at du vil degradere brugeren {{name}} til bruger? Dette vil fjerne brugerens adgang til alle ressourcer på din Homarr-instans."
|
||||
},
|
||||
"confirm": "Bekræft"
|
||||
}
|
||||
},
|
||||
"searchDoesntMatch": "Din søgning matcher ikke nogen poster. Juster venligst dit filter."
|
||||
}
|
||||
52
public/locales/da/manage/users/create.json
Normal file
52
public/locales/da/manage/users/create.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"metaTitle": "Opret bruger",
|
||||
"steps": {
|
||||
"account": {
|
||||
"title": "Første trin",
|
||||
"text": "Opret konto",
|
||||
"username": {
|
||||
"label": "Brugernavn"
|
||||
},
|
||||
"email": {
|
||||
"label": "E-mail"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "Andet trin",
|
||||
"text": "Adgangskode",
|
||||
"password": {
|
||||
"label": "Adgangskode"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
"title": "Bekræftelse",
|
||||
"text": "Gem i databasen",
|
||||
"card": {
|
||||
"title": "Gennemgå dine input",
|
||||
"text": "Når du har sendt dine data til databasen, vil brugeren kunne logge ind. Er du sikker på, at du vil gemme denne bruger i databasen og aktivere login?"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"property": "Egenskaber",
|
||||
"value": "Værdi",
|
||||
"username": "Brugernavn",
|
||||
"email": "E-mail",
|
||||
"password": "Adgangskode"
|
||||
},
|
||||
"notSet": "Ikke angivet",
|
||||
"valid": "Gyldig"
|
||||
},
|
||||
"failed": "Brugeroprettelse er mislykkedes: {{error}}"
|
||||
},
|
||||
"completed": {
|
||||
"alert": {
|
||||
"title": "Brugeren blev oprettet",
|
||||
"text": "Brugeren blev oprettet i databasen. De kan nu logge ind."
|
||||
}
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"generateRandomPassword": "Generer tilfældig",
|
||||
"createAnother": "Opret en anden"
|
||||
}
|
||||
}
|
||||
48
public/locales/da/manage/users/invites.json
Normal file
48
public/locales/da/manage/users/invites.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Brugerinvitationer",
|
||||
"pageTitle": "Administrer brugerinvitationer",
|
||||
"description": "Ved hjælp af invitationer kan du invitere brugere til din Homarr-instans. En invitation vil kun være gyldig i et bestemt tidsrum og kan kun bruges én gang. Udløbsdatoen skal være mellem 5 minutter og 12 måneder ved oprettelsen.",
|
||||
"button": {
|
||||
"createInvite": "Opret invitation",
|
||||
"deleteInvite": "Slet invitation"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"id": "ID",
|
||||
"creator": "Skaber",
|
||||
"expires": "Udløber",
|
||||
"action": "Handlinger"
|
||||
},
|
||||
"data": {
|
||||
"expiresAt": "udløb {{at}}",
|
||||
"expiresIn": "i {{in}}"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"create": {
|
||||
"title": "Opret Invitation",
|
||||
"description": "Efter udløb vil en invitation ikke længere være gyldig, og modtageren af invitationen vil ikke være i stand til at oprette en konto.",
|
||||
"form": {
|
||||
"expires": "Udløbsdato",
|
||||
"submit": "Opret"
|
||||
}
|
||||
},
|
||||
"copy": {
|
||||
"title": "Kopier invitation",
|
||||
"description": "Din invitation er blevet genereret. Når denne modal lukker, <b>vil du ikke længere kunne kopiere dette link</b>. Hvis du ikke længere ønsker at invitere den pågældende person, kan du til enhver tid slette denne invitation.",
|
||||
"invitationLink": "Invitationslink",
|
||||
"details": {
|
||||
"id": "ID",
|
||||
"token": "Token"
|
||||
},
|
||||
"button": {
|
||||
"close": "Kopier og afvis"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"title": "Slet invitation",
|
||||
"description": "Er du sikker på, at du vil slette denne invitation? Brugere med dette link vil ikke længere kunne oprette en konto ved hjælp af dette link."
|
||||
}
|
||||
},
|
||||
"noInvites": "Der er endnu ingen invitationer."
|
||||
}
|
||||
@@ -7,9 +7,6 @@
|
||||
"useSonarrv4": {
|
||||
"label": "Brug Sonarr v4 API"
|
||||
},
|
||||
"sundayStart": {
|
||||
"label": "Søndag første ugedag"
|
||||
},
|
||||
"radarrReleaseType": {
|
||||
"label": "Radarr udgivelsestype",
|
||||
"data": {
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole kontrol",
|
||||
"description": "Kontroller PiHole eller AdGuard fra dit dashboard"
|
||||
"description": "Kontroller PiHole eller AdGuard fra dit dashboard",
|
||||
"settings": {
|
||||
"title": "Indstillinger for DNS hole",
|
||||
"showToggleAllButtons": {
|
||||
"label": "Vis 'Aktiver/deaktiver alle'-knapper"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Kan ikke finde et DNS-hul",
|
||||
"text": "Der opstod et problem med at oprette forbindelse til dit/dine DNS-hul(ler). Bekræft venligst din(e) konfiguration(er)/integration(er)."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,5 +33,5 @@
|
||||
"unknown": "Ukendt"
|
||||
}
|
||||
},
|
||||
"error": "Der er opstået en fejl"
|
||||
"error": "Der opstod en fejl"
|
||||
}
|
||||
|
||||
7
public/locales/da/password-requirements.json
Normal file
7
public/locales/da/password-requirements.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"number": "Inkluderer nummer",
|
||||
"lowercase": "Inkluderer små bogstaver",
|
||||
"uppercase": "Inkluderer store bogstaver",
|
||||
"special": "Inkluderer specialtegn",
|
||||
"length": "Indeholder mindst {{count}} tegn"
|
||||
}
|
||||
6
public/locales/da/settings/customization/access.json
Normal file
6
public/locales/da/settings/customization/access.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"allowGuests": {
|
||||
"label": "Tillad anonym",
|
||||
"description": "Tillad brugere, der ikke er logget ind, at se dit board"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,10 @@
|
||||
"accessibility": {
|
||||
"name": "Hjælpefunktioner",
|
||||
"description": "Konfigurer Homarr for deaktiverede og handicappede brugere"
|
||||
},
|
||||
"access": {
|
||||
"name": "Adgang",
|
||||
"description": "Konfigurer, hvem der har adgang til dit board"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,5 @@
|
||||
"description": "Yderligere, tilpasse dit dashboard ved hjælp af CSS, anbefales kun til erfarne brugere",
|
||||
"placeholder": "Brugerdefineret CSS vil blive anvendt sidst",
|
||||
"applying": "Anvender CSS..."
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Indsend"
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/da/tools/docker.json
Normal file
32
public/locales/da/tools/docker.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"title": "Docker",
|
||||
"alerts": {
|
||||
"notConfigured": {
|
||||
"text": "Din Homarr-instans har ikke Docker konfigureret, eller den har fejlet i at hente containere. Se i dokumentationen, hvordan du sætter integrationen op."
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"selectBoard": {
|
||||
"title": "Vælg et board",
|
||||
"text": "Vælg det board, hvor du vil tilføje applikationer til de valgte Docker-containere.",
|
||||
"form": {
|
||||
"board": {
|
||||
"label": "Board"
|
||||
},
|
||||
"submit": "Tilføj apps"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"selectBoard": {
|
||||
"success": {
|
||||
"title": "Tilføjede apps til board",
|
||||
"message": "Apps til de valgte Docker-containere er blevet tilføjet til boardet."
|
||||
},
|
||||
"error": {
|
||||
"title": "Kunne ikke tilføje apps til board",
|
||||
"message": "Apps til de valgte Docker-containere kunne ikke føjes til boardet."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
48
public/locales/da/user/preferences.json
Normal file
48
public/locales/da/user/preferences.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Indstillinger",
|
||||
"pageTitle": "Dine indstillinger",
|
||||
"boards": {
|
||||
"defaultBoard": {
|
||||
"label": "Standard board"
|
||||
}
|
||||
},
|
||||
"accessibility": {
|
||||
"title": "Hjælpefunktioner",
|
||||
"disablePulse": {
|
||||
"label": "Deaktiver ping-puls",
|
||||
"description": "Som standard vil ping-indikatorerne i Homarr pulsere. Det kan være irriterende. Denne skyder vil deaktivere animationen"
|
||||
},
|
||||
"replaceIconsWithDots": {
|
||||
"label": "Udskift ping-prikker med ikoner",
|
||||
"description": "For farveblinde brugere kan ping-prikker være uigenkendelige. Dette vil erstatte indikatorer med ikoner"
|
||||
}
|
||||
},
|
||||
"localization": {
|
||||
"language": {
|
||||
"label": "Sprog"
|
||||
},
|
||||
"firstDayOfWeek": {
|
||||
"label": "Første ugedag",
|
||||
"options": {
|
||||
"monday": "Mandag",
|
||||
"saturday": "Lørdag",
|
||||
"sunday": "Søndag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"searchEngine": {
|
||||
"title": "Søgemaskine",
|
||||
"custom": "Brugerdefineret",
|
||||
"newTab": {
|
||||
"label": "Åben søgeresultater i en ny fane"
|
||||
},
|
||||
"autoFocus": {
|
||||
"label": "Fokuser søgefeltet, når siden indlæses.",
|
||||
"description": "Dette vil automatisk fokusere søgefeltet, når du navigerer til board sider. Det virker kun på desktop-enheder."
|
||||
},
|
||||
"template": {
|
||||
"label": "Forespørgsels URL",
|
||||
"description": "Brug %s som pladsholder for forespørgslen"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/da/zod.json
Normal file
22
public/locales/da/zod.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"errors": {
|
||||
"default": "Dette felt er ugyldigt",
|
||||
"required": "Dette felt er påkrævet",
|
||||
"string": {
|
||||
"startsWith": "Dette felt skal starte med {{startsWith}}",
|
||||
"endsWith": "Dette felt skal slutte med {{endsWith}}",
|
||||
"includes": "Dette felt skal indeholde {{includes}}"
|
||||
},
|
||||
"tooSmall": {
|
||||
"string": "Dette felt skal være mindst {{minimum}} tegn langt",
|
||||
"number": "Dette felt skal være større end eller lig med {{minimum}}"
|
||||
},
|
||||
"tooBig": {
|
||||
"string": "Dette felt må højst være på {{maximum}} tegn",
|
||||
"number": "Dette felt skal være mindre end eller lig med {{maximum}}"
|
||||
},
|
||||
"custom": {
|
||||
"passwordMatch": "Adgangskoderne skal stemme overens"
|
||||
}
|
||||
}
|
||||
}
|
||||
35
public/locales/de/authentication/invite.json
Normal file
35
public/locales/de/authentication/invite.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"metaTitle": "Account erstellen",
|
||||
"title": "Account erstellen",
|
||||
"text": "Bitte geben Sie Ihre Anmeldedaten an",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Benutzername"
|
||||
},
|
||||
"password": {
|
||||
"label": "Passwort"
|
||||
},
|
||||
"passwordConfirmation": {
|
||||
"label": "Passwort bestätigen"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Account erstellen"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"loading": {
|
||||
"title": "Account wird erstellt",
|
||||
"text": "Bitte warten"
|
||||
},
|
||||
"success": {
|
||||
"title": "Account erstellt",
|
||||
"text": "Ihr Account wurde erfolgreich erstellt"
|
||||
},
|
||||
"error": {
|
||||
"title": "Fehler",
|
||||
"text": "Etwas ist schiefgelaufen. Folgender Fehler ist aufgetreten: {{error}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,20 @@
|
||||
{
|
||||
"metaTitle": "Anmelden",
|
||||
"title": "Willkommen zurück!",
|
||||
"text": "Bitte geben Sie Ihr Kennwort ein",
|
||||
"text": "Bitte geben Sie Ihre Anmeldedaten ein",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Benutzername"
|
||||
},
|
||||
"password": {
|
||||
"label": "Passwort",
|
||||
"placeholder": "Ihr Passwort"
|
||||
"label": "Passwort"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Anmelden"
|
||||
}
|
||||
},
|
||||
"afterLoginRedirection": "Nach der Anmeldung werden Sie zu {{url}} weitergeleitet"
|
||||
},
|
||||
"notifications": {
|
||||
"checking": {
|
||||
"title": "Ihr Passwort wird überprüft",
|
||||
"message": "Ihr Passwort wird geprüft..."
|
||||
},
|
||||
"correct": {
|
||||
"title": "Anmeldung erfolgreich, Weiterleitung..."
|
||||
},
|
||||
"wrong": {
|
||||
"title": "Das von dir eingegebene Passwort ist nicht korrekt. Bitte versuche es noch mal."
|
||||
}
|
||||
}
|
||||
}
|
||||
"alert": "Ihre Anmeldedaten sind falsch oder dieses Konto existiert nicht. Bitte versuchen Sie es erneut."
|
||||
}
|
||||
5
public/locales/de/boards/common.json
Normal file
5
public/locales/de/boards/common.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"header": {
|
||||
"customize": "Board anpassen"
|
||||
}
|
||||
}
|
||||
29
public/locales/de/boards/customize.json
Normal file
29
public/locales/de/boards/customize.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"metaTitle": "{{name}} Board anpassen",
|
||||
"pageTitle": "Anpassungen für {{name}} Board",
|
||||
"backToBoard": "Zurück zum Board",
|
||||
"settings": {
|
||||
"appearance": {
|
||||
"primaryColor": "Primärfarbe",
|
||||
"secondaryColor": "Sekundärfarbe"
|
||||
}
|
||||
},
|
||||
"save": {
|
||||
"button": "Änderungen speichern",
|
||||
"note": "Vorsicht, Sie haben ungespeicherte Änderungen!"
|
||||
},
|
||||
"notifications": {
|
||||
"pending": {
|
||||
"title": "Anpassungen werden gespeichert",
|
||||
"message": "Bitte warten Sie, während wir Ihre Anpassungen speichern"
|
||||
},
|
||||
"success": {
|
||||
"title": "Anpassungen gespeichert",
|
||||
"message": "Ihre Anpassungen wurden erfolgreich gespeichert"
|
||||
},
|
||||
"error": {
|
||||
"title": "Fehler",
|
||||
"message": "Ihre Anpassungen konnten nicht gespeichert werden"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
"about": "Über",
|
||||
"cancel": "Abbrechen",
|
||||
"close": "Schließen",
|
||||
"back": "Zurück",
|
||||
"delete": "Löschen",
|
||||
"ok": "OK",
|
||||
"edit": "Bearbeiten",
|
||||
"next": "Weiter",
|
||||
"previous": "Zurück",
|
||||
"confirm": "Bestätigen",
|
||||
"enabled": "Aktiviert",
|
||||
"disabled": "Deaktiviert",
|
||||
"enableAll": "Alle aktivieren",
|
||||
|
||||
34
public/locales/de/layout/header.json
Normal file
34
public/locales/de/layout/header.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"experimentalNote": {
|
||||
"label": "Dies ist eine experimentelle Funktion von Homarr. Bitte melde Probleme auf <gh>GitHub</gh> oder <dc>Discord</dc>."
|
||||
},
|
||||
"search": {
|
||||
"label": "Suchen",
|
||||
"engines": {
|
||||
"web": "Suche nach {{query}} im Internet",
|
||||
"youtube": "Suche nach {{query}} auf YouTube",
|
||||
"torrent": "Suche nach {{query}} torrents",
|
||||
"movie": "Suche nach {{query}} auf {{app}}"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"avatar": {
|
||||
"switchTheme": "Design wechseln",
|
||||
"preferences": "Benutzereinstellungen",
|
||||
"defaultBoard": "Standard-Dashboard",
|
||||
"manage": "Verwalten",
|
||||
"about": {
|
||||
"label": "Über",
|
||||
"new": "Neu"
|
||||
},
|
||||
"logout": "{{username}} abmelden",
|
||||
"login": "Anmelden"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"movie": {
|
||||
"title": "",
|
||||
"topResults": "Die ersten {{count}} Ergebnisse für <b>{{search}}</b>."
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/de/layout/manage.json
Normal file
32
public/locales/de/layout/manage.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"navigation": {
|
||||
"home": {
|
||||
"title": "Startseite"
|
||||
},
|
||||
"boards": {
|
||||
"title": "Boards"
|
||||
},
|
||||
"users": {
|
||||
"title": "Benutzer",
|
||||
"items": {
|
||||
"manage": "Verwalten",
|
||||
"invites": "Einladungen"
|
||||
}
|
||||
},
|
||||
"help": {
|
||||
"title": "Hilfe",
|
||||
"items": {
|
||||
"documentation": "Dokumentation",
|
||||
"report": "Ein Problem / einen Fehler melden",
|
||||
"discord": "Community Discord",
|
||||
"contribute": "Mitwirken"
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"title": "Werkzeuge",
|
||||
"items": {
|
||||
"docker": "Docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
44
public/locales/de/manage/boards.json
Normal file
44
public/locales/de/manage/boards.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"metaTitle": "Boards",
|
||||
"pageTitle": "Boards",
|
||||
"cards": {
|
||||
"statistics": {
|
||||
"apps": "Apps",
|
||||
"widgets": "Widgets",
|
||||
"categories": "Kategorien"
|
||||
},
|
||||
"buttons": {
|
||||
"view": "Board anzeigen"
|
||||
},
|
||||
"menu": {
|
||||
"setAsDefault": "Als Standard-Board festlegen",
|
||||
"delete": {
|
||||
"label": "Dauerhaft löschen",
|
||||
"disabled": "Ein Löschen wurde deaktiviert, da ältere Homarr-Komponenten das Löschen der Standardkonfiguration nicht erlauben. Die Löschung wird in Zukunft möglich sein."
|
||||
}
|
||||
},
|
||||
"badges": {
|
||||
"fileSystem": "Dateisystem",
|
||||
"default": "Standard"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Neues Board erstellen"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Board löschen",
|
||||
"text": "Sind Sie sicher, dass Sie dieses Board löschen wollen? Diese Aktion kann nicht rückgängig gemacht werden und Ihre Daten gehen dauerhaft verloren."
|
||||
},
|
||||
"create": {
|
||||
"title": "Board erstellen",
|
||||
"text": "Der Name kann nicht mehr geändert werden, nachdem ein Board erstellt wurde.",
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "Name"
|
||||
},
|
||||
"submit": "Erstellen"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
public/locales/de/manage/index.json
Normal file
23
public/locales/de/manage/index.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"metaTitle": "Verwalten",
|
||||
"hero": {
|
||||
"title": "Willkommen zurück, {{username}}",
|
||||
"fallbackUsername": "Anonym",
|
||||
"subtitle": "Willkommen bei Ihrem Application Hub. Organisieren, Optimieren und Erobern!"
|
||||
},
|
||||
"quickActions": {
|
||||
"title": "Quick Actions",
|
||||
"boards": {
|
||||
"title": "Deine Boards",
|
||||
"subtitle": "Erstellen und verwalten Sie Ihre Boards"
|
||||
},
|
||||
"inviteUsers": {
|
||||
"title": "Einen neuen Benutzer einladen",
|
||||
"subtitle": "Erstellen und versenden Sie eine Einladung zur Registrierung"
|
||||
},
|
||||
"manageUsers": {
|
||||
"title": "Verwaltung von Benutzern",
|
||||
"subtitle": "Löschen und Verwalten Ihrer Benutzer"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
public/locales/de/manage/users.json
Normal file
36
public/locales/de/manage/users.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"metaTitle": "Benutzer",
|
||||
"pageTitle": "Verwaltung von Benutzern",
|
||||
"text": "Mit Benutzern können Sie konfigurieren, wer Ihre Dashboards bearbeiten kann. Zukünftige Versionen von Homarr werden eine noch detailliertere Kontrolle über Berechtigungen und Boards haben.",
|
||||
"buttons": {
|
||||
"create": "Erstellen"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"user": "Benutzer"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"deleteUser": "Benutzer löschen",
|
||||
"demoteAdmin": "Administrator degradieren",
|
||||
"promoteToAdmin": "Zum Administrator befördern"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Benutzer \"{{name}}\" löschen",
|
||||
"text": "Sind Sie sicher, dass Sie den Benutzer {{name}} löschen möchten? Dadurch werden die mit diesem Konto verbundenen Daten gelöscht, nicht aber die von diesem Benutzer erstellten Dashboards."
|
||||
},
|
||||
"change-role": {
|
||||
"promote": {
|
||||
"title": "Benutzer {{name}} zum Administrator ernennen",
|
||||
"text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Admin befördern wollen? Dadurch erhält der Benutzer Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz."
|
||||
},
|
||||
"demote": {
|
||||
"title": "Benutzer {{name}} zum Benutzer degradieren",
|
||||
"text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Benutzer degradieren wollen? Dadurch wird dem Benutzer der Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz entzogen."
|
||||
},
|
||||
"confirm": "Bestätigen"
|
||||
}
|
||||
},
|
||||
"searchDoesntMatch": "Ihre Suche ergab keine Treffer. Bitte passen Sie Ihren Filter an."
|
||||
}
|
||||
52
public/locales/de/manage/users/create.json
Normal file
52
public/locales/de/manage/users/create.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"metaTitle": "Benutzer erstellen",
|
||||
"steps": {
|
||||
"account": {
|
||||
"title": "Erster Schritt",
|
||||
"text": "Account erstellen",
|
||||
"username": {
|
||||
"label": "Benutzername"
|
||||
},
|
||||
"email": {
|
||||
"label": "E-Mail"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "Zweiter Schritt",
|
||||
"text": "Passwort",
|
||||
"password": {
|
||||
"label": "Passwort"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
"title": "Bestätigung",
|
||||
"text": "In Datenbank speichern",
|
||||
"card": {
|
||||
"title": "Überprüfen Sie Ihre Eingaben",
|
||||
"text": "Nachdem Sie Ihre Daten an die Datenbank übermittelt haben, kann sich der Benutzer anmelden. Sind Sie sicher, dass Sie diesen Benutzer in der Datenbank speichern und die Anmeldung aktivieren wollen?"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"property": "Eigenschaft",
|
||||
"value": "Wert",
|
||||
"username": "Benutzername",
|
||||
"email": "E-Mail",
|
||||
"password": "Passwort"
|
||||
},
|
||||
"notSet": "Nicht festgelegt",
|
||||
"valid": "Gültig"
|
||||
},
|
||||
"failed": "Die Erstellung eines Benutzers ist fehlgeschlagen: {{error}}"
|
||||
},
|
||||
"completed": {
|
||||
"alert": {
|
||||
"title": "Benutzer wurde erstellt",
|
||||
"text": "Der Benutzer wurde in der Datenbank angelegt. Er kann sich nun anmelden."
|
||||
}
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"generateRandomPassword": "Zufällig generieren",
|
||||
"createAnother": "Weiteren erstellen"
|
||||
}
|
||||
}
|
||||
48
public/locales/de/manage/users/invites.json
Normal file
48
public/locales/de/manage/users/invites.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Benutzereinladungen",
|
||||
"pageTitle": "Verwalten von Benutzereinladungen",
|
||||
"description": "Mit Einladungen können Sie Benutzer zu Ihrer Homarr-Instanz einladen. Eine Einladung ist nur für eine bestimmte Zeitspanne gültig und kann nur einmal verwendet werden. Die Gültigkeitsdauer muss bei der Erstellung zwischen 5 Minuten und 12 Monaten liegen.",
|
||||
"button": {
|
||||
"createInvite": "Einladung erstellen",
|
||||
"deleteInvite": "Einladung löschen"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"id": "ID",
|
||||
"creator": "Ersteller",
|
||||
"expires": "Endet",
|
||||
"action": "Aktivitäten"
|
||||
},
|
||||
"data": {
|
||||
"expiresAt": "Abgelaufen {{at}}",
|
||||
"expiresIn": "in {{in}}"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"create": {
|
||||
"title": "Einladung erstellen",
|
||||
"description": "Nach Ablauf der Frist ist eine Einladung nicht mehr gültig und der Empfänger der Einladung kann kein Konto erstellen.",
|
||||
"form": {
|
||||
"expires": "Ablaufdatum",
|
||||
"submit": "Erstellen"
|
||||
}
|
||||
},
|
||||
"copy": {
|
||||
"title": "Einladung kopieren",
|
||||
"description": "Ihre Einladung wurde erstellt. Nachdem dieses Modal geschlossen wurde, <b>können Sie diesen Link nicht mehr kopieren</b>. Wenn Sie die besagte Person nicht mehr einladen möchten, können Sie diese Einladung jederzeit löschen.",
|
||||
"invitationLink": "Link zur Einladung",
|
||||
"details": {
|
||||
"id": "ID",
|
||||
"token": "Token"
|
||||
},
|
||||
"button": {
|
||||
"close": "Kopieren & Verwerfen"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"title": "Einladung löschen",
|
||||
"description": "Sind Sie sicher, dass Sie diese Einladung löschen möchten? Benutzer mit diesem Link können dann kein Konto mehr über diesen Link erstellen."
|
||||
}
|
||||
},
|
||||
"noInvites": "Es liegen noch keine Einladungen vor."
|
||||
}
|
||||
@@ -7,9 +7,6 @@
|
||||
"useSonarrv4": {
|
||||
"label": "Sonarr v4 API verwenden"
|
||||
},
|
||||
"sundayStart": {
|
||||
"label": "Wochenbeginn am Sonntag"
|
||||
},
|
||||
"radarrReleaseType": {
|
||||
"label": "Radarr Veröffentlichungs Typ",
|
||||
"data": {
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS-Hole Steuerung",
|
||||
"description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus"
|
||||
"description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus",
|
||||
"settings": {
|
||||
"title": "Einstellungen für DNS-Kontrollen",
|
||||
"showToggleAllButtons": {
|
||||
"label": "Schaltflächen \"Alle aktivieren/deaktivieren\" anzeigen"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Konnte kein DNS Hole finden",
|
||||
"text": "Es gab ein Problem bei der Verbindung zu Ihrem DNS Hole(s). Bitte überprüfen Sie Ihre Konfiguration/Integration(en)."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
public/locales/de/password-requirements.json
Normal file
7
public/locales/de/password-requirements.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"number": "Enthält Ziffern",
|
||||
"lowercase": "Enthält Kleinbuchstaben",
|
||||
"uppercase": "Enthält Großbuchstaben",
|
||||
"special": "Enthält Sonderzeichen",
|
||||
"length": "Enthält mindestens {{count}} Zeichen"
|
||||
}
|
||||
6
public/locales/de/settings/customization/access.json
Normal file
6
public/locales/de/settings/customization/access.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"allowGuests": {
|
||||
"label": "Anonyme zulassen",
|
||||
"description": "Benutzern die nicht eingeloggt sind, erlauben, Ihr Board anzusehen"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,10 @@
|
||||
"accessibility": {
|
||||
"name": "Barrierefreiheit",
|
||||
"description": "Homarr für behinderte und gehandicapte Benutzer einrichten"
|
||||
},
|
||||
"access": {
|
||||
"name": "Zugriff",
|
||||
"description": "Konfigurieren Sie, wer Zugriff auf Ihr Board hat"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,5 @@
|
||||
"description": "Außerdem können Sie Ihr Dashboard mittels CSS anpassen, dies wird nur für erfahrene Benutzer empfohlen",
|
||||
"placeholder": "Benutzerdefiniertes CSS wird zuletzt angewendet",
|
||||
"applying": "CSS wird übernommen..."
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Absenden"
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/de/tools/docker.json
Normal file
32
public/locales/de/tools/docker.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"title": "Docker",
|
||||
"alerts": {
|
||||
"notConfigured": {
|
||||
"text": "Auf Ihrer Homarr-Instanz ist Docker nicht konfiguriert oder es ist nicht möglich, Container zu erkennen. Bitte lesen Sie in der Dokumentation nach, wie Sie diese Integration einrichten können."
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"selectBoard": {
|
||||
"title": "Board auswählen",
|
||||
"text": "Wählen Sie das Board, dem Sie die Anwendungen für die ausgewählten Docker-Container hinzufügen möchten.",
|
||||
"form": {
|
||||
"board": {
|
||||
"label": "Board"
|
||||
},
|
||||
"submit": "Apps hinzufügen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"selectBoard": {
|
||||
"success": {
|
||||
"title": "Anwendungen zum Board hinzugefügt",
|
||||
"message": "Die Anwendungen für die ausgewählten Docker-Container wurden dem Board hinzugefügt."
|
||||
},
|
||||
"error": {
|
||||
"title": "Anwendungen konnten nicht zum Board hinzugefügt werden",
|
||||
"message": "Die Anwendungen für die ausgewählten Docker-Container konnten dem Board nicht hinzugefügt werden."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
48
public/locales/de/user/preferences.json
Normal file
48
public/locales/de/user/preferences.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Einstellungen",
|
||||
"pageTitle": "Ihre Einstellungen",
|
||||
"boards": {
|
||||
"defaultBoard": {
|
||||
"label": "Standard-Board"
|
||||
}
|
||||
},
|
||||
"accessibility": {
|
||||
"title": "Barrierefreiheit",
|
||||
"disablePulse": {
|
||||
"label": "Ping-Puls deaktivieren",
|
||||
"description": "Standardmäßig pulsieren die Ping-Indikatoren in Homarr. Dies kann irritierend sein. Mit diesem Regler kann diese Animation deaktiviert werden"
|
||||
},
|
||||
"replaceIconsWithDots": {
|
||||
"label": "Ping Punkte mit Icons ersetzen",
|
||||
"description": "Für farbenblinde Benutzer können Ping-Punkte nicht erkennbar sein. Dies ersetzt Indikatoren durch Icons"
|
||||
}
|
||||
},
|
||||
"localization": {
|
||||
"language": {
|
||||
"label": "Sprache"
|
||||
},
|
||||
"firstDayOfWeek": {
|
||||
"label": "Erster Tag der Woche",
|
||||
"options": {
|
||||
"monday": "Montag",
|
||||
"saturday": "Samstag",
|
||||
"sunday": "Sonntag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"searchEngine": {
|
||||
"title": "Suchmaschine",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"newTab": {
|
||||
"label": "Suchergebnisse in neuem Tab öffnen"
|
||||
},
|
||||
"autoFocus": {
|
||||
"label": "Suchleiste beim Laden der Seite fokussieren.",
|
||||
"description": "Dadurch wird die Suchleiste automatisch fokussiert, wenn Sie auf den Seiten des Boards navigieren. Dies funktioniert nur auf Desktop-Geräten."
|
||||
},
|
||||
"template": {
|
||||
"label": "Suchanfrage URL",
|
||||
"description": "Verwenden Sie %s als Platzhalter für die Suchanfrage"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/de/zod.json
Normal file
22
public/locales/de/zod.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"errors": {
|
||||
"default": "Dieses Feld ist ungültig",
|
||||
"required": "Dieses Feld ist erforderlich",
|
||||
"string": {
|
||||
"startsWith": "Dieses Feld muss mit {{startsWith}} beginnen",
|
||||
"endsWith": "Dieses Feld muss mit {{endsWith}} enden",
|
||||
"includes": "Dieses Feld muss {{includes}} beinhalten"
|
||||
},
|
||||
"tooSmall": {
|
||||
"string": "Dieses Feld muss mindestens {{minimum}} Zeichen lang sein",
|
||||
"number": "Dieses Feld muss größer oder gleich {{minimum}} sein"
|
||||
},
|
||||
"tooBig": {
|
||||
"string": "Dieses Feld muss mindestens {{maximum}} Zeichen lang sein",
|
||||
"number": "Dieses Feld muss größer oder gleich {{maximum}} sein"
|
||||
},
|
||||
"custom": {
|
||||
"passwordMatch": "Die Passwörter müssen übereinstimmen"
|
||||
}
|
||||
}
|
||||
}
|
||||
35
public/locales/el/authentication/invite.json
Normal file
35
public/locales/el/authentication/invite.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"metaTitle": "Δημιουργία λογαριασμού",
|
||||
"title": "Δημιουργία λογαριασμού",
|
||||
"text": "Παρακαλώ καθορίστε τα διαπιστευτήριά σας παρακάτω",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Όνομα Χρήστη"
|
||||
},
|
||||
"password": {
|
||||
"label": "Κωδικός"
|
||||
},
|
||||
"passwordConfirmation": {
|
||||
"label": "Επιβεβαίωση κωδικού"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Δημιουργία λογαριασμού"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"loading": {
|
||||
"title": "Δημιουργία λογαριασμού",
|
||||
"text": "Παρακαλώ περιμένετε"
|
||||
},
|
||||
"success": {
|
||||
"title": "Ο λογαριασμός δημιουργήθηκε",
|
||||
"text": "Ο λογαριασμός σας έχει δημιουργηθεί επιτυχώς"
|
||||
},
|
||||
"error": {
|
||||
"title": "Σφάλμα",
|
||||
"text": "Κάτι πήγε στραβά, προέκυψε το ακόλουθο σφάλμα: {{error}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,20 @@
|
||||
{
|
||||
"metaTitle": "Σύνδεση",
|
||||
"title": "Καλώς ήρθατε!",
|
||||
"text": "Παρακαλώ εισάγετε τον κωδικό σας",
|
||||
"text": "Παρακαλώ εισάγετε τα στοιχεία σας",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Όνομα Χρήστη"
|
||||
},
|
||||
"password": {
|
||||
"label": "Κωδικός",
|
||||
"placeholder": "Ο κωδικός σας"
|
||||
"label": "Κωδικός"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Σύνδεση"
|
||||
}
|
||||
},
|
||||
"afterLoginRedirection": "Μετά τη σύνδεση, θα μεταφερθείτε στο {{url}}"
|
||||
},
|
||||
"notifications": {
|
||||
"checking": {
|
||||
"title": "Έλεγχος κωδικού πρόσβασης",
|
||||
"message": "Ο κωδικός πρόσβασής σας ελέγχεται..."
|
||||
},
|
||||
"correct": {
|
||||
"title": "Σύνδεση επιτυχής, ανακατεύθυνση..."
|
||||
},
|
||||
"wrong": {
|
||||
"title": "Ο κωδικός που εισαγάγατε είναι εσφαλμένος. Προσπαθήστε ξανά."
|
||||
}
|
||||
}
|
||||
}
|
||||
"alert": "Τα διαπιστευτήριά σας είναι λανθασμένα ή αυτός ο λογαριασμός δεν υπάρχει. Προσπαθήστε ξανά."
|
||||
}
|
||||
5
public/locales/el/boards/common.json
Normal file
5
public/locales/el/boards/common.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"header": {
|
||||
"customize": "Προσαρμογή ταμπλό"
|
||||
}
|
||||
}
|
||||
29
public/locales/el/boards/customize.json
Normal file
29
public/locales/el/boards/customize.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"metaTitle": "Προσαρμογή {{name}} ταμπλό",
|
||||
"pageTitle": "Προσαρμογή για το ταμπλό {{name}}",
|
||||
"backToBoard": "Πίσω στο ταμπλό",
|
||||
"settings": {
|
||||
"appearance": {
|
||||
"primaryColor": "Βασικό χρώμα",
|
||||
"secondaryColor": "Δευτερεύον χρώμα"
|
||||
}
|
||||
},
|
||||
"save": {
|
||||
"button": "Αποθήκευση αλλαγών",
|
||||
"note": "Προσοχή, έχετε μη αποθηκευμένες αλλαγές!"
|
||||
},
|
||||
"notifications": {
|
||||
"pending": {
|
||||
"title": "Αποθήκευση προσαρμογής",
|
||||
"message": "Παρακαλώ περιμένετε όσο αποθηκεύουμε την προσαρμογή σας"
|
||||
},
|
||||
"success": {
|
||||
"title": "Η προσαρμογή αποθηκεύτηκε",
|
||||
"message": "Η προσαρμογή σας έχει αποθηκευτεί με επιτυχία"
|
||||
},
|
||||
"error": {
|
||||
"title": "Σφάλμα",
|
||||
"message": "Αδυναμία αποθήκευσης αλλαγών"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
"about": "Σχετικά",
|
||||
"cancel": "Ακύρωση",
|
||||
"close": "Κλείσιμο",
|
||||
"back": "Πίσω",
|
||||
"delete": "Διαγραφή",
|
||||
"ok": "ΟΚ",
|
||||
"edit": "Επεξεργασία",
|
||||
"next": "Επόμενο",
|
||||
"previous": "Προηγούμενο",
|
||||
"confirm": "Επιβεβαίωση",
|
||||
"enabled": "Ενεργοποιημένο",
|
||||
"disabled": "Απενεργοποιημένο",
|
||||
"enableAll": "Ενεργοποίηση όλων",
|
||||
|
||||
34
public/locales/el/layout/header.json
Normal file
34
public/locales/el/layout/header.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"experimentalNote": {
|
||||
"label": "Αυτή είναι μια πειραματική λειτουργία του Homarr. Αναφέρετε τυχόν προβλήματα στο <gh>GitHub</gh> ή στο <dc>Discord</dc>."
|
||||
},
|
||||
"search": {
|
||||
"label": "Αναζήτηση",
|
||||
"engines": {
|
||||
"web": "Αναζήτηση για {{query}} στο διαδίκτυο",
|
||||
"youtube": "Αναζήτηση για {{query}} στο YouTube",
|
||||
"torrent": "Αναζήτηση για {{query}} torrents",
|
||||
"movie": "Αναζήτηση για {{query}} στο {{app}}"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"avatar": {
|
||||
"switchTheme": "Αλλαγή θέματος",
|
||||
"preferences": "Προτιμήσεις χρήστη",
|
||||
"defaultBoard": "Προεπιλεγμένο ταμπλό",
|
||||
"manage": "Διαχείριση",
|
||||
"about": {
|
||||
"label": "Σχετικά",
|
||||
"new": "Νέο"
|
||||
},
|
||||
"logout": "Αποσύνδεση από {{username}}",
|
||||
"login": "Σύνδεση"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"movie": {
|
||||
"title": "",
|
||||
"topResults": "Κορυφαία αποτελέσματα {{count}} για <b>{{search}}</b>."
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/el/layout/manage.json
Normal file
32
public/locales/el/layout/manage.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"navigation": {
|
||||
"home": {
|
||||
"title": "Αρχική"
|
||||
},
|
||||
"boards": {
|
||||
"title": "Πίνακες"
|
||||
},
|
||||
"users": {
|
||||
"title": "Χρήστες",
|
||||
"items": {
|
||||
"manage": "Διαχείριση",
|
||||
"invites": "Προσκλήσεις"
|
||||
}
|
||||
},
|
||||
"help": {
|
||||
"title": "Βοήθεια",
|
||||
"items": {
|
||||
"documentation": "Τεκμηρίωση",
|
||||
"report": "Αναφορά προβλήματος / σφάλματος",
|
||||
"discord": "Κοινότητα Discord",
|
||||
"contribute": "Συνεισφέρετε"
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"title": "Εργαλεία",
|
||||
"items": {
|
||||
"docker": "Docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
44
public/locales/el/manage/boards.json
Normal file
44
public/locales/el/manage/boards.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"metaTitle": "Πίνακες",
|
||||
"pageTitle": "Πίνακες",
|
||||
"cards": {
|
||||
"statistics": {
|
||||
"apps": "Εφαρμογές",
|
||||
"widgets": "Widgets",
|
||||
"categories": "Κατηγορίες"
|
||||
},
|
||||
"buttons": {
|
||||
"view": "Προβολή πίνακα"
|
||||
},
|
||||
"menu": {
|
||||
"setAsDefault": "Ορισμός ως προεπιλεγμένος πίνακας",
|
||||
"delete": {
|
||||
"label": "Οριστική διαγραφή",
|
||||
"disabled": "Η διαγραφή απενεργοποιήθηκε, επειδή τα παλαιότερα components του Homarr δεν επιτρέπουν τη διαγραφή των προεπιλεγμένων ρυθμίσεων. Η διαγραφή θα είναι δυνατή στο μέλλον."
|
||||
}
|
||||
},
|
||||
"badges": {
|
||||
"fileSystem": "Σύστημα αρχείων",
|
||||
"default": "Προεπιλογή"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Δημιουργία νέου πίνακα"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Διαγραφή πίνακα",
|
||||
"text": "Είστε σίγουροι, ότι θέλετε να διαγράψετε αυτόν τον πίνακα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί και τα δεδομένα σας θα χαθούν μόνιμα."
|
||||
},
|
||||
"create": {
|
||||
"title": "Δημιουργία πίνακα",
|
||||
"text": "Το όνομα δεν μπορεί να αλλάξει μετά τη δημιουργία του πίνακα.",
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "Όνομα"
|
||||
},
|
||||
"submit": "Δημιουργία"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
public/locales/el/manage/index.json
Normal file
23
public/locales/el/manage/index.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"metaTitle": "Διαχείριση",
|
||||
"hero": {
|
||||
"title": "Καλώς ήρθατε, {{username}}",
|
||||
"fallbackUsername": "Ανώνυμος",
|
||||
"subtitle": "Καλώς ήρθατε στον κόμβο εφαρμογών σας. Οργανώστε, βελτιστοποιήστε και κατακτήστε!"
|
||||
},
|
||||
"quickActions": {
|
||||
"title": "Γρήγορες ενέργειες",
|
||||
"boards": {
|
||||
"title": "Οι πίνακές σας",
|
||||
"subtitle": "Δημιουργήστε και διαχειριστείτε τους πίνακες σας"
|
||||
},
|
||||
"inviteUsers": {
|
||||
"title": "Πρόσκληση νέου χρήστη",
|
||||
"subtitle": "Δημιουργία και αποστολή πρόσκλησης για εγγραφή"
|
||||
},
|
||||
"manageUsers": {
|
||||
"title": "Διαχείριση χρηστών",
|
||||
"subtitle": "Διαγραφή και διαχείριση των χρηστών σας"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
public/locales/el/manage/users.json
Normal file
36
public/locales/el/manage/users.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"metaTitle": "Χρήστες",
|
||||
"pageTitle": "Διαχείριση χρηστών",
|
||||
"text": "Χρησιμοποιώντας τους χρήστες, μπορείτε να ρυθμίσετε ποιος μπορεί να επεξεργάζεται τους πίνακές σας. Οι μελλοντικές εκδόσεις του Homarr θα έχουν ακόμα πιο λεπτομερή έλεγχο των δικαιωμάτων και των πινάκων.",
|
||||
"buttons": {
|
||||
"create": "Δημιουργία"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"user": "Χρήστης"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"deleteUser": "Διαγραφή χρήστη",
|
||||
"demoteAdmin": "Υποβίβαση διαχειριστή",
|
||||
"promoteToAdmin": "Προαγωγή σε διαχειριστή"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Διαγραφή χρήστη {{name}}",
|
||||
"text": "Είστε σίγουροι ότι θέλετε να διαγράψετε τον χρήστη {{name}}; Αυτό θα διαγράψει τα δεδομένα που σχετίζονται με αυτόν τον λογαριασμό, αλλά όχι τους πίνακες που έχουν δημιουργηθεί από αυτόν τον χρήστη."
|
||||
},
|
||||
"change-role": {
|
||||
"promote": {
|
||||
"title": "Προαγωγή του χρήστη {{name}} σε διαχειριστή",
|
||||
"text": "Είστε σίγουροι ότι θέλετε να προάγετε τον χρήστη {{name}} σε διαχειριστή; Αυτό θα δώσει στον χρήστη πρόσβαση σε όλους τους πόρους της Homarr εγκατάστασης σας."
|
||||
},
|
||||
"demote": {
|
||||
"title": "Υποβιβασμός του χρήστη {{name}} σε χρήστη",
|
||||
"text": "Είστε σίγουροι ότι θέλετε να υποβιβάσετε τον χρήστη {{name}} σε χρήστη; Αυτό θα αφαιρέσει την πρόσβαση του χρήστη σε όλους τους πόρους της Homarr εγκατάστασης σας."
|
||||
},
|
||||
"confirm": "Επιβεβαίωση"
|
||||
}
|
||||
},
|
||||
"searchDoesntMatch": "Η αναζήτησή σας δεν ταιριάζει με καμία καταχώριση. Παρακαλώ προσαρμόστε το φίλτρο σας."
|
||||
}
|
||||
52
public/locales/el/manage/users/create.json
Normal file
52
public/locales/el/manage/users/create.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"metaTitle": "Δημιουργία χρήστη",
|
||||
"steps": {
|
||||
"account": {
|
||||
"title": "Πρώτο βήμα",
|
||||
"text": "Δημιουργία λογαριασμού",
|
||||
"username": {
|
||||
"label": "Όνομα Χρήστη"
|
||||
},
|
||||
"email": {
|
||||
"label": "E-Mail"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "Δεύτερο βήμα",
|
||||
"text": "Κωδικός",
|
||||
"password": {
|
||||
"label": "Κωδικός"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
"title": "Επιβεβαίωση",
|
||||
"text": "Αποθήκευση στη βάση δεδομένων",
|
||||
"card": {
|
||||
"title": "Ελέγξτε τις εισαγωγές σας",
|
||||
"text": "Μετά την υποβολή των δεδομένων σας στη βάση δεδομένων, ο χρήστης θα είναι σε θέση να συνδεθεί. Είστε βέβαιοι ότι θέλετε να αποθηκεύσετε αυτό το χρήστη στη βάση δεδομένων και να ενεργοποιήσετε τη σύνδεση;"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"property": "Ιδιότητα",
|
||||
"value": "Τιμή",
|
||||
"username": "Όνομα Χρήστη",
|
||||
"email": "E-Mail",
|
||||
"password": "Κωδικός"
|
||||
},
|
||||
"notSet": "Δεν έχει οριστεί",
|
||||
"valid": "Έγκυρο"
|
||||
},
|
||||
"failed": "Η δημιουργία χρήστη απέτυχε: {{error}}"
|
||||
},
|
||||
"completed": {
|
||||
"alert": {
|
||||
"title": "Ο χρήστης δημιουργήθηκε",
|
||||
"text": "Ο χρήστης δημιουργήθηκε στη βάση δεδομένων. Μπορεί πλέον να συνδεθεί."
|
||||
}
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"generateRandomPassword": "Δημιουργία τυχαίου",
|
||||
"createAnother": "Δημιουργία άλλου"
|
||||
}
|
||||
}
|
||||
48
public/locales/el/manage/users/invites.json
Normal file
48
public/locales/el/manage/users/invites.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Προσκλήσεις χρηστών",
|
||||
"pageTitle": "Διαχείριση προσκλήσεων χρηστών",
|
||||
"description": "Χρησιμοποιώντας προσκλήσεις, μπορείτε να προσκαλέσετε χρήστες στο Homarr σας. Μια πρόσκληση ισχύει μόνο για συγκεκριμένο χρονικό διάστημα και μπορεί να χρησιμοποιηθεί μία φορά. Η λήξη πρέπει να είναι μεταξύ 5 λεπτών και 12 μηνών κατά τη δημιουργία.",
|
||||
"button": {
|
||||
"createInvite": "Δημιουργία πρόσκλησης",
|
||||
"deleteInvite": "Διαγραφή πρόσκλησης"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"id": "Αναγνωριστικό (ID)",
|
||||
"creator": "Δημιουργός",
|
||||
"expires": "Λήγει",
|
||||
"action": "Ενέργειες"
|
||||
},
|
||||
"data": {
|
||||
"expiresAt": "έληξε {{at}}",
|
||||
"expiresIn": "σε {{in}}"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"create": {
|
||||
"title": "Δημιουργία πρόσκλησης",
|
||||
"description": "Μετά τη λήξη, μια πρόσκληση δε θα είναι πλέον έγκυρη και ο παραλήπτης της πρόσκλησης δε θα είναι σε θέση να δημιουργήσει λογαριασμό.",
|
||||
"form": {
|
||||
"expires": "Ημερομηνία λήξης",
|
||||
"submit": "Δημιουργία"
|
||||
}
|
||||
},
|
||||
"copy": {
|
||||
"title": "Αντιγραφή πρόσκλησης",
|
||||
"description": "Η πρόσκλησή σας έχει δημιουργηθεί. Αφού κλείσει αυτό το modal, <b>δεν θα μπορείτε πλέον να αντιγράψετε αυτόν τον σύνδεσμο</b>. Εάν δεν επιθυμείτε πλέον να προσκαλέσετε το εν λόγω άτομο, μπορείτε να διαγράψετε αυτή την πρόσκληση ανά πάσα στιγμή.",
|
||||
"invitationLink": "Σύνδεσμος πρόσκλησης",
|
||||
"details": {
|
||||
"id": "Αναγνωριστικό (ID)",
|
||||
"token": "Token"
|
||||
},
|
||||
"button": {
|
||||
"close": "Αντιγραφή & Απόρριψη"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"title": "Διαγραφή πρόσκλησης",
|
||||
"description": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την πρόσκληση; Οι χρήστες με αυτόν τον σύνδεσμο δεν θα μπορούν πλέον να δημιουργήσουν λογαριασμό χρησιμοποιώντας αυτόν τον σύνδεσμο."
|
||||
}
|
||||
},
|
||||
"noInvites": "Δεν υπάρχουν ακόμη προσκλήσεις."
|
||||
}
|
||||
@@ -7,9 +7,6 @@
|
||||
"useSonarrv4": {
|
||||
"label": "Χρήση του API Sonarr v4"
|
||||
},
|
||||
"sundayStart": {
|
||||
"label": "Ξεκινήστε την εβδομάδα από την Κυριακή"
|
||||
},
|
||||
"radarrReleaseType": {
|
||||
"label": "Τύπος κυκλοφορίας Radarr",
|
||||
"data": {
|
||||
@@ -22,7 +19,7 @@
|
||||
"label": "Απόκρυψη εργάσιμων"
|
||||
},
|
||||
"showUnmonitored": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση αντικειμένων που δεν παρακολουθούνται"
|
||||
},
|
||||
"fontSize": {
|
||||
"label": "Μέγεθος γραμματοσειράς",
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Στοιχεία ελέγχου DNS hole",
|
||||
"description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας"
|
||||
"description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις ελέγχου DNS hole",
|
||||
"showToggleAllButtons": {
|
||||
"label": "Εμφάνιση Κουμπιών 'Ενεργοποίηση/Απενεργοποίηση Όλων'"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Αδυναμία εύρεσης DNS hole",
|
||||
"text": "Υπήρξε ένα πρόβλημα κατά τη σύνδεση στο/α DNS Hole(s) σας. Παρακαλώ επαληθεύστε τις ρυθμίσεις / ενσωμάτωση."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,5 +33,5 @@
|
||||
"unknown": "Άγνωστο"
|
||||
}
|
||||
},
|
||||
"error": "Προέκυψε ένα σφάλμα"
|
||||
"error": "Παρουσιάστηκε ένα σφάλμα"
|
||||
}
|
||||
|
||||
7
public/locales/el/password-requirements.json
Normal file
7
public/locales/el/password-requirements.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"number": "Περιλαμβάνει αριθμό",
|
||||
"lowercase": "Περιλαμβάνει πεζό γράμμα",
|
||||
"uppercase": "Περιλαμβάνει κεφαλαίο γράμμα",
|
||||
"special": "Περιλαμβάνει ειδικό χαρακτήρα",
|
||||
"length": "Περιλαμβάνει τουλάχιστον {{count}} χαρακτήρες"
|
||||
}
|
||||
6
public/locales/el/settings/customization/access.json
Normal file
6
public/locales/el/settings/customization/access.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"allowGuests": {
|
||||
"label": "Να επιτρέπεται η ανωνυμία",
|
||||
"description": "Επιτρέψτε σε χρήστες που δεν είναι συνδεδεμένοι να δουν τον πίνακα σας"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,10 @@
|
||||
"accessibility": {
|
||||
"name": "Προσβασιμότητα",
|
||||
"description": "Διαμόρφωση του Homarr για χρήστες με αναπηρία και άτομα με ειδικές ανάγκες"
|
||||
},
|
||||
"access": {
|
||||
"name": "Πρόσβαση",
|
||||
"description": "Ρυθμίστε ποιος έχει πρόσβαση στο ταμπλό σας"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,5 @@
|
||||
"description": "Περαιτέρω, προσαρμόστε τον πίνακα ελέγχου σας χρησιμοποιώντας CSS, συνιστάται μόνο για έμπειρους χρήστες",
|
||||
"placeholder": "Το προσαρμοσμένο CSS θα εφαρμοστεί τελευταίο",
|
||||
"applying": "Εφαρμογή CSS..."
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Υποβολή"
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/el/tools/docker.json
Normal file
32
public/locales/el/tools/docker.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"title": "Docker",
|
||||
"alerts": {
|
||||
"notConfigured": {
|
||||
"text": "Η Homarr εγκατάσταση σας δεν έχει το Docker εγκατεστημένο ή απέτυχε να ανακτήσει τα containers. Ελέγξτε την τεκμηρίωση για το πώς να ρυθμίσετε την ενσωμάτωση."
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"selectBoard": {
|
||||
"title": "Επιλέξτε έναν πίνακα",
|
||||
"text": "Επιλέξτε τον πίνακα όπου θέλετε να προσθέσετε τις εφαρμογές για τα επιλεγμένα Docker containers.",
|
||||
"form": {
|
||||
"board": {
|
||||
"label": "Πίνακας"
|
||||
},
|
||||
"submit": "Προσθήκη εφαρμογών"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"selectBoard": {
|
||||
"success": {
|
||||
"title": "Προστέθηκαν εφαρμογές στον πίνακα",
|
||||
"message": "Οι εφαρμογές για τα επιλεγμένα Docker containers έχουν προστεθεί στον πίνακα."
|
||||
},
|
||||
"error": {
|
||||
"title": "Αποτυχία προσθήκης εφαρμογών στον πίνακα",
|
||||
"message": "Οι εφαρμογές για τα επιλεγμένα Docker containers δεν μπόρεσαν να προστεθούν στον πίνακα."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
48
public/locales/el/user/preferences.json
Normal file
48
public/locales/el/user/preferences.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Ρυθμίσεις",
|
||||
"pageTitle": "Οι ρυθμίσεις σας",
|
||||
"boards": {
|
||||
"defaultBoard": {
|
||||
"label": "Προεπιλεγμένο ταμπλο"
|
||||
}
|
||||
},
|
||||
"accessibility": {
|
||||
"title": "Προσβασιμότητα",
|
||||
"disablePulse": {
|
||||
"label": "Απενεργοποίηση παλμού ping",
|
||||
"description": "Από προεπιλογή, οι δείκτες ping στο Homarr θα πάλλονται. Αυτό μπορεί να είναι ενοχλητικό. Αυτή η ρύθμιση θα απενεργοποιήσει το παλλόμενο εφέ"
|
||||
},
|
||||
"replaceIconsWithDots": {
|
||||
"label": "Αντικαταστήστε τις τελείες ping με εικονίδια",
|
||||
"description": "Για τους χρήστες με αχρωματοψία, οι κουκκίδες ping μπορεί να μην είναι αναγνωρίσιμες. Αυτό θα αντικαταστήσει τις ενδείξεις με εικονίδια"
|
||||
}
|
||||
},
|
||||
"localization": {
|
||||
"language": {
|
||||
"label": "Γλώσσα"
|
||||
},
|
||||
"firstDayOfWeek": {
|
||||
"label": "Πρώτη ημέρα της εβδομάδας",
|
||||
"options": {
|
||||
"monday": "Δευτέρα",
|
||||
"saturday": "Σάββατο",
|
||||
"sunday": "Κυριακή"
|
||||
}
|
||||
}
|
||||
},
|
||||
"searchEngine": {
|
||||
"title": "Μηχανή αναζήτησης",
|
||||
"custom": "Προσαρμοσμένη",
|
||||
"newTab": {
|
||||
"label": "Άνοιγμα αποτελεσμάτων αναζήτησης σε νέα καρτέλα"
|
||||
},
|
||||
"autoFocus": {
|
||||
"label": "Εστίαση της γραμμής αναζήτησης κατά τη φόρτωση της σελίδας.",
|
||||
"description": "Αυτό θα εστιάσει αυτόματα τη γραμμή αναζήτησης, όταν μεταβείτε στις σελίδες του πίνακα. Θα λειτουργήσει μόνο σε συσκευές γραφείου."
|
||||
},
|
||||
"template": {
|
||||
"label": "Ερώτημα URL",
|
||||
"description": "Χρησιμοποιήστε το %s ως placeholder για το query"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/el/zod.json
Normal file
22
public/locales/el/zod.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"errors": {
|
||||
"default": "Το πεδίο δεν είναι έγκυρο",
|
||||
"required": "Αυτό το πεδίο είναι υποχρεωτικό",
|
||||
"string": {
|
||||
"startsWith": "Αυτό το πεδίο πρέπει να ξεκινά με {{startsWith}}",
|
||||
"endsWith": "Το πεδίο αυτό πρέπει να τελειώνει με {{endsWith}}",
|
||||
"includes": "Το πεδίο αυτό πρέπει να περιλαμβάνει το {{includes}}"
|
||||
},
|
||||
"tooSmall": {
|
||||
"string": "Το πεδίο αυτό πρέπει να έχει μήκος τουλάχιστον {{minimum}} χαρακτήρες",
|
||||
"number": "Το πεδίο αυτό πρέπει να είναι μεγαλύτερο ή ίσο του {{minimum}}"
|
||||
},
|
||||
"tooBig": {
|
||||
"string": "Το πεδίο αυτό πρέπει να έχει μήκος το πολύ {{maximum}} χαρακτήρες",
|
||||
"number": "Το πεδίο αυτό πρέπει να είναι μικρότερο ή ίσο του {{maximum}}"
|
||||
},
|
||||
"custom": {
|
||||
"passwordMatch": "Οι κωδικοί πρέπει να είναι ίδιοι"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,8 @@
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Sign in"
|
||||
}
|
||||
},
|
||||
"afterLoginRedirection": "After login, you'll be redirected to {{url}}"
|
||||
},
|
||||
"alert": "Your credentials are incorrect or this account doesn't exist. Please try again."
|
||||
}
|
||||
5
public/locales/en/layout/errors/access-denied.json
Normal file
5
public/locales/en/layout/errors/access-denied.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"title": "Access denied",
|
||||
"text": "You do not have sufficient permissions to access this page. If you believe, that this is not intentional, please contact your administrator.",
|
||||
"switchAccount": "Switch to a different account"
|
||||
}
|
||||
@@ -7,6 +7,9 @@
|
||||
"useSonarrv4": {
|
||||
"label": "Use Sonarr v4 API"
|
||||
},
|
||||
"useRadarrv5": {
|
||||
"label": "Use Radarr v5 API"
|
||||
},
|
||||
"radarrReleaseType": {
|
||||
"label": "Radarr release type",
|
||||
"data":{
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole controls",
|
||||
"description": "Control PiHole or AdGuard from your dashboard"
|
||||
"description": "Control PiHole or AdGuard from your dashboard",
|
||||
"settings": {
|
||||
"title": "DNS hole controls settings",
|
||||
"showToggleAllButtons": {
|
||||
"label": "Show 'Enable/Disable All' Buttons"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Unable to find a DNS hole",
|
||||
"text": "There was a problem connecting to your DNS Hole(s). Please verify your configuration/integration(s)."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,6 @@
|
||||
}
|
||||
},
|
||||
"noRequests": "No requests found. Please ensure that you've configured your apps correctly.",
|
||||
"pending": "There are {{countPendingApproval}} requests waiting for approval.",
|
||||
"nonePending": "There are currently no pending approvals. You're good to go!",
|
||||
"state": {
|
||||
"approved": "Approved",
|
||||
"pendingApproval": "Pending approval",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "RSS Widget",
|
||||
"description": "",
|
||||
"description": "The rss widget allows you to display RSS feeds on your dashboard.",
|
||||
"settings": {
|
||||
"title": "Settings for RSS widget",
|
||||
"rssFeedUrl": {
|
||||
|
||||
@@ -33,5 +33,5 @@
|
||||
"unknown": "Unknown"
|
||||
}
|
||||
},
|
||||
"error": "An error occured"
|
||||
"error": "An error occurred"
|
||||
}
|
||||
|
||||
6
public/locales/en/settings/customization/access.json
Normal file
6
public/locales/en/settings/customization/access.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"allowGuests": {
|
||||
"label": "Allow anonymous",
|
||||
"description": "Allow users that are not logged in to view your board"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,10 @@
|
||||
"accessibility": {
|
||||
"name": "Accessibility",
|
||||
"description": "Configure Homarr for disabled and handicapped users"
|
||||
},
|
||||
"access": {
|
||||
"name": "Acccess",
|
||||
"description": "Configure who has access to your board"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
"newTab": {
|
||||
"label": "Open search results in a new tab"
|
||||
},
|
||||
"autoFocus": {
|
||||
"label": "Focus search bar on page load.",
|
||||
"description": "This will automatically focus the search bar, when you navigate to the board pages. It will only work on desktop devices."
|
||||
},
|
||||
"template": {
|
||||
"label": "Query URL",
|
||||
"description": "Use %s as a placeholder for the query"
|
||||
|
||||
35
public/locales/es/authentication/invite.json
Normal file
35
public/locales/es/authentication/invite.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"metaTitle": "Crear cuenta",
|
||||
"title": "Crear cuenta",
|
||||
"text": "Por favor, define tus credenciales a continuación",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Nombre de usuario"
|
||||
},
|
||||
"password": {
|
||||
"label": "Contraseña"
|
||||
},
|
||||
"passwordConfirmation": {
|
||||
"label": "Confirmar contraseña"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Crear cuenta"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"loading": {
|
||||
"title": "Creando cuenta",
|
||||
"text": "Por favor, espera"
|
||||
},
|
||||
"success": {
|
||||
"title": "Cuenta creada",
|
||||
"text": "Tu cuenta ha sido creada con éxito"
|
||||
},
|
||||
"error": {
|
||||
"title": "Error",
|
||||
"text": "Algo salió mal, se encontró el siguiente error: {{error}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,20 @@
|
||||
{
|
||||
"metaTitle": "Iniciar sesión",
|
||||
"title": "¡Bienvenido/a otra vez!",
|
||||
"text": "Por favor, introduce tu contraseña",
|
||||
"text": "Por favor, introduce tus credenciales",
|
||||
"form": {
|
||||
"fields": {
|
||||
"username": {
|
||||
"label": "Nombre de usuario"
|
||||
},
|
||||
"password": {
|
||||
"label": "Contraseña",
|
||||
"placeholder": "Tu contraseña"
|
||||
"label": "Contraseña"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Iniciar sesión"
|
||||
}
|
||||
},
|
||||
"afterLoginRedirection": "Después de iniciar sesión, serás redirigido a {{url}}"
|
||||
},
|
||||
"notifications": {
|
||||
"checking": {
|
||||
"title": "Comprobando tu contraseña",
|
||||
"message": "Tu contraseña está siendo comprobada..."
|
||||
},
|
||||
"correct": {
|
||||
"title": "Inicio de sesión satisfactorio, redirigiendo..."
|
||||
},
|
||||
"wrong": {
|
||||
"title": "La contraseña introducida es incorrecta, por favor, inténtalo de nuevo."
|
||||
}
|
||||
}
|
||||
}
|
||||
"alert": "Tus credenciales son incorrectas o esta cuenta no existe. Por favor, inténtalo de nuevo."
|
||||
}
|
||||
5
public/locales/es/boards/common.json
Normal file
5
public/locales/es/boards/common.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"header": {
|
||||
"customize": "Personalizar tablero"
|
||||
}
|
||||
}
|
||||
29
public/locales/es/boards/customize.json
Normal file
29
public/locales/es/boards/customize.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"metaTitle": "Personalizar tablero {{name}}",
|
||||
"pageTitle": "Personalización para el tablero {{name}}",
|
||||
"backToBoard": "Volver al tablero",
|
||||
"settings": {
|
||||
"appearance": {
|
||||
"primaryColor": "Color primario",
|
||||
"secondaryColor": "Color secundario"
|
||||
}
|
||||
},
|
||||
"save": {
|
||||
"button": "Guardar cambios",
|
||||
"note": "¡Cuidado, tienes cambios sin guardar!"
|
||||
},
|
||||
"notifications": {
|
||||
"pending": {
|
||||
"title": "Guardando personalización",
|
||||
"message": "Por favor, espera mientras guardamos tu personalización"
|
||||
},
|
||||
"success": {
|
||||
"title": "Personalización guardada",
|
||||
"message": "Tu personalización se ha guardado correctamente"
|
||||
},
|
||||
"error": {
|
||||
"title": "Error",
|
||||
"message": "No se pueden guardar los cambios"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
"about": "Acerca de",
|
||||
"cancel": "Cancelar",
|
||||
"close": "Cerrar",
|
||||
"back": "Atrás",
|
||||
"delete": "Eliminar",
|
||||
"ok": "OK",
|
||||
"edit": "Editar",
|
||||
"next": "Siguiente",
|
||||
"previous": "Anterior",
|
||||
"confirm": "Confirmar",
|
||||
"enabled": "Activado",
|
||||
"disabled": "Desactivado",
|
||||
"enableAll": "Activar todo",
|
||||
|
||||
34
public/locales/es/layout/header.json
Normal file
34
public/locales/es/layout/header.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"experimentalNote": {
|
||||
"label": "Esta es una característica experimental de Homarr. Por favor, reporta cualquier problema en <gh>GitHub</gh> o <dc>Discord</dc>."
|
||||
},
|
||||
"search": {
|
||||
"label": "Buscar",
|
||||
"engines": {
|
||||
"web": "Buscar {{query}} en la web",
|
||||
"youtube": "Buscar {{query}} en YouTube",
|
||||
"torrent": "Buscar {{query}} en torrents",
|
||||
"movie": "Buscar {{query}} en {{app}}"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"avatar": {
|
||||
"switchTheme": "Cambiar tema",
|
||||
"preferences": "Preferencias de usuario",
|
||||
"defaultBoard": "Panel predeterminado",
|
||||
"manage": "Administrar",
|
||||
"about": {
|
||||
"label": "Acerca de",
|
||||
"new": "Nuevo"
|
||||
},
|
||||
"logout": "Cerrar sesión de {{username}}",
|
||||
"login": "Iniciar sesión"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"movie": {
|
||||
"title": "",
|
||||
"topResults": "Mejores {{count}} resultados para <b>{{search}}</b>."
|
||||
}
|
||||
}
|
||||
}
|
||||
32
public/locales/es/layout/manage.json
Normal file
32
public/locales/es/layout/manage.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"navigation": {
|
||||
"home": {
|
||||
"title": "Inicio"
|
||||
},
|
||||
"boards": {
|
||||
"title": "Tableros"
|
||||
},
|
||||
"users": {
|
||||
"title": "Usuarios",
|
||||
"items": {
|
||||
"manage": "Administrar",
|
||||
"invites": "Invitaciones"
|
||||
}
|
||||
},
|
||||
"help": {
|
||||
"title": "Ayuda",
|
||||
"items": {
|
||||
"documentation": "Documentación",
|
||||
"report": "Reportar un problema / error",
|
||||
"discord": "Comunidad Discord",
|
||||
"contribute": "Contribuir"
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"title": "Herramientas",
|
||||
"items": {
|
||||
"docker": "Docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
44
public/locales/es/manage/boards.json
Normal file
44
public/locales/es/manage/boards.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"metaTitle": "Tableros",
|
||||
"pageTitle": "Tableros",
|
||||
"cards": {
|
||||
"statistics": {
|
||||
"apps": "Aplicaciones",
|
||||
"widgets": "Widgets",
|
||||
"categories": "Categorías"
|
||||
},
|
||||
"buttons": {
|
||||
"view": "Ver tablero"
|
||||
},
|
||||
"menu": {
|
||||
"setAsDefault": "Establecer como tu tablero predeterminado",
|
||||
"delete": {
|
||||
"label": "Eliminar permanentemente",
|
||||
"disabled": "Eliminación deshabilitada, porque los componentes más antiguos de Homarr no permiten la eliminación de la configuración predeterminada. La eliminación será posible en el futuro."
|
||||
}
|
||||
},
|
||||
"badges": {
|
||||
"fileSystem": "Sistema de archivos",
|
||||
"default": "Por defecto"
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"create": "Crear nuevo tablero"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Eliminar tablero",
|
||||
"text": "¿Estás seguro de que deseas eliminar este tablero? Esta acción no se puede deshacer y tus datos se perderán permanentemente."
|
||||
},
|
||||
"create": {
|
||||
"title": "Crear tablero",
|
||||
"text": "El nombre no se puede cambiar una vez creado el tablero.",
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "Nombre"
|
||||
},
|
||||
"submit": "Crear"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
public/locales/es/manage/index.json
Normal file
23
public/locales/es/manage/index.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"metaTitle": "Administrar",
|
||||
"hero": {
|
||||
"title": "Bienvenido/a de nuevo, {{username}}",
|
||||
"fallbackUsername": "Anónimo",
|
||||
"subtitle": "Bienvenido/a a tu centro de aplicaciones. ¡Organiza, optimiza y conquista!"
|
||||
},
|
||||
"quickActions": {
|
||||
"title": "Acciones rápidas",
|
||||
"boards": {
|
||||
"title": "Tus tableros",
|
||||
"subtitle": "Crea y administra tus tableros"
|
||||
},
|
||||
"inviteUsers": {
|
||||
"title": "Invitar a un nuevo usuario",
|
||||
"subtitle": "Crear y enviar una invitación para registrarse"
|
||||
},
|
||||
"manageUsers": {
|
||||
"title": "Administrar usuarios",
|
||||
"subtitle": "Elimina y administra tus usuarios"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
public/locales/es/manage/users.json
Normal file
36
public/locales/es/manage/users.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"metaTitle": "Usuarios",
|
||||
"pageTitle": "Administrar usuarios",
|
||||
"text": "Mediante los usuarios, puedes configurar quién puede editar tus paneles. Las versiones futuras de Homarr tendrán un control aún más granular sobre los permisos y los tableros.",
|
||||
"buttons": {
|
||||
"create": "Crear"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"user": "Usuario"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"deleteUser": "Eliminar usuario",
|
||||
"demoteAdmin": "Degradar administrador",
|
||||
"promoteToAdmin": "Promover a administrador"
|
||||
},
|
||||
"modals": {
|
||||
"delete": {
|
||||
"title": "Eliminar usuario {{name}}",
|
||||
"text": "¿Estás seguro de que deseas eliminar el usuario {{name}}? Esto eliminará los datos asociados con esta cuenta, pero no los paneles creados por este usuario."
|
||||
},
|
||||
"change-role": {
|
||||
"promote": {
|
||||
"title": "Promover al usuario {{name}} a administrador",
|
||||
"text": "¿Estás seguro de que deseas promocionar al usuario {{name}} a administrador? Esto le dará al usuario acceso a todos los recursos en tu instancia de Homarr."
|
||||
},
|
||||
"demote": {
|
||||
"title": "Degradar al usuario {{name}} a usuario",
|
||||
"text": "¿Estás seguro de que deseas degradar al usuario {{name}} a usuario? Esto eliminará el acceso del usuario a todos los recursos en tu instancia de Homarr."
|
||||
},
|
||||
"confirm": "Confirmar"
|
||||
}
|
||||
},
|
||||
"searchDoesntMatch": "Tu búsqueda no coincide con ningún registro. Por favor, ajusta tu filtro."
|
||||
}
|
||||
52
public/locales/es/manage/users/create.json
Normal file
52
public/locales/es/manage/users/create.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"metaTitle": "Crear usuario",
|
||||
"steps": {
|
||||
"account": {
|
||||
"title": "Primer paso",
|
||||
"text": "Crear cuenta",
|
||||
"username": {
|
||||
"label": "Nombre de usuario"
|
||||
},
|
||||
"email": {
|
||||
"label": "Correo electrónico"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "Segundo paso",
|
||||
"text": "Contraseña",
|
||||
"password": {
|
||||
"label": "Contraseña"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
"title": "Confirmación",
|
||||
"text": "Guardar en la base de datos",
|
||||
"card": {
|
||||
"title": "Revisar datos introducidos",
|
||||
"text": "Después de enviar tus datos a la base de datos, el usuario podrá iniciar sesión. ¿Está seguro de que desea almacenar este usuario en la base de datos y activar el inicio de sesión?"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"property": "Propiedad",
|
||||
"value": "Valor",
|
||||
"username": "Nombre de usuario",
|
||||
"email": "Correo electrónico",
|
||||
"password": "Contraseña"
|
||||
},
|
||||
"notSet": "No configurado",
|
||||
"valid": "Válido"
|
||||
},
|
||||
"failed": "La creación del usuario ha fallado: {{error}}"
|
||||
},
|
||||
"completed": {
|
||||
"alert": {
|
||||
"title": "El usuario fue creado",
|
||||
"text": "El usuario fue creado en la base de datos. Ahora pueden iniciar sesión."
|
||||
}
|
||||
}
|
||||
},
|
||||
"buttons": {
|
||||
"generateRandomPassword": "Generar aleatorio",
|
||||
"createAnother": "Crear otro"
|
||||
}
|
||||
}
|
||||
48
public/locales/es/manage/users/invites.json
Normal file
48
public/locales/es/manage/users/invites.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"metaTitle": "Invitaciones de usuario",
|
||||
"pageTitle": "Administrar invitaciones de usuario",
|
||||
"description": "Mediante invitaciones, puedes invitar usuarios a tu instancia de Homarr. Una invitación solo será válida por un período de tiempo determinado y podrá usarse una vez. La caducidad debe ser entre 5 minutos y 12 meses desde su creación.",
|
||||
"button": {
|
||||
"createInvite": "Crear invitación",
|
||||
"deleteInvite": "Eliminar invitación"
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"id": "ID",
|
||||
"creator": "Creador",
|
||||
"expires": "Caduca",
|
||||
"action": "Acciones"
|
||||
},
|
||||
"data": {
|
||||
"expiresAt": "Caducado {{at}}",
|
||||
"expiresIn": "en {{in}}"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"create": {
|
||||
"title": "Crear invitación",
|
||||
"description": "Después de la caducidad, una invitación ya no será válida y el destinatario de la invitación no podrá crear una cuenta.",
|
||||
"form": {
|
||||
"expires": "Fecha de caducidad",
|
||||
"submit": "Crear"
|
||||
}
|
||||
},
|
||||
"copy": {
|
||||
"title": "Copiar invitación",
|
||||
"description": "Tu invitación ha sido generada. Después de que se cierre esta ventana, <b>ya no podrás copiar este enlace</b>. Si ya no deseas invitar a dicha persona, puedes eliminar esta invitación en cualquier momento.",
|
||||
"invitationLink": "Link de invitación",
|
||||
"details": {
|
||||
"id": "ID",
|
||||
"token": "Token"
|
||||
},
|
||||
"button": {
|
||||
"close": "Copiar y Descartar"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"title": "Eliminar invitación",
|
||||
"description": "¿Estás seguro de que deseas eliminar esta invitación? Los usuarios con este enlace ya no podrán crear una cuenta usando ese enlace."
|
||||
}
|
||||
},
|
||||
"noInvites": "Aún no hay invitaciones."
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user