Compare commits
338 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bfa8ac982 | ||
|
|
bbe6d0bcc4 | ||
|
|
75ad912d04 | ||
|
|
703b6c30aa | ||
|
|
f377ee03ed | ||
|
|
8cba5e4683 | ||
|
|
6b254b10ae | ||
|
|
82c6e8ab21 | ||
|
|
61612b2bf7 | ||
|
|
7da3ba5981 | ||
|
|
a307287d36 | ||
|
|
7eabc9a62f | ||
|
|
ba659b6247 | ||
|
|
240747307d | ||
|
|
3dd03fb7e0 | ||
|
|
a8b9327bd7 | ||
|
|
2d7d386e8b | ||
|
|
a2c71caa89 | ||
|
|
0180c39c5c | ||
|
|
e92e8397c2 | ||
|
|
a23fc22dc9 | ||
|
|
64aacaf464 | ||
|
|
cee5911259 | ||
|
|
7cb094e127 | ||
|
|
69927dfcab | ||
|
|
dc92c9acda | ||
|
|
165275cc34 | ||
|
|
4702c83415 | ||
|
|
50eaa8ebcc | ||
|
|
2973104f98 | ||
|
|
3ce24239e2 | ||
|
|
cec8bd82ff | ||
|
|
ae9027d6e1 | ||
|
|
6b01cf4efc | ||
|
|
64f30fcbd4 | ||
|
|
ebb226dda9 | ||
|
|
389df03b83 | ||
|
|
24a4429c7b | ||
|
|
6c786c0ac2 | ||
|
|
a5d96a8457 | ||
|
|
e2a6418a71 | ||
|
|
f7aae89f5b | ||
|
|
97fa1e6dad | ||
|
|
059d2b3377 | ||
|
|
dcea858e0e | ||
|
|
db6d5a6075 | ||
|
|
aa0bb92a20 | ||
|
|
b50dcfe022 | ||
|
|
bdf61fa35f | ||
|
|
ccff2061f1 | ||
|
|
fec53846d3 | ||
|
|
b4d6420952 | ||
|
|
da8bf32b96 | ||
|
|
32c8d3dcb1 | ||
|
|
72dd59661d | ||
|
|
d3b495b489 | ||
|
|
a54f03df1f | ||
|
|
173b40684c | ||
|
|
ca878eced9 | ||
|
|
11659dde78 | ||
|
|
0a7292106d | ||
|
|
12e09c683a | ||
|
|
faecf3bcbf | ||
|
|
ad1ab2a66d | ||
|
|
fb3feaebbe | ||
|
|
c337a0492a | ||
|
|
a72ec68b6f | ||
|
|
0af6e04ce3 | ||
|
|
fd66c620b9 | ||
|
|
c42aed14dd | ||
|
|
15f5d74e09 | ||
|
|
8876537cc0 | ||
|
|
6a876ca309 | ||
|
|
48d3c7cc92 | ||
|
|
336aff13cc | ||
|
|
f8e0ffabd4 | ||
|
|
cd6b812a38 | ||
|
|
e63321f5ad | ||
|
|
d615f49f47 | ||
|
|
4da32832b9 | ||
|
|
b0503e1995 | ||
|
|
a7f99c7366 | ||
|
|
fb52c4b003 | ||
|
|
85dfb5bb58 | ||
|
|
bc267d3e8b | ||
|
|
3133e07fc7 | ||
|
|
f1fcd071a8 | ||
|
|
2a384d47b0 | ||
|
|
cead7d2355 | ||
|
|
7ab8c14c5c | ||
|
|
eb2a8ba997 | ||
|
|
ba8ef4a844 | ||
|
|
3e6413d9f2 | ||
|
|
d0180b1f87 | ||
|
|
04564c22ae | ||
|
|
48448e273c | ||
|
|
d84a2c3e51 | ||
|
|
48c348d83d | ||
|
|
5f5c914b63 | ||
|
|
7b81a3bc43 | ||
|
|
1c80e13cf8 | ||
|
|
2ce5547c90 | ||
|
|
8284c3bab6 | ||
|
|
ea950d6445 | ||
|
|
1bff6ed225 | ||
|
|
841cd6ab28 | ||
|
|
80b40426cc | ||
|
|
052a8c9489 | ||
|
|
96584485b5 | ||
|
|
109e53df5d | ||
|
|
a8ea56543b | ||
|
|
83b171cd4e | ||
|
|
6facd4b10e | ||
|
|
c21e54e620 | ||
|
|
dca15f8723 | ||
|
|
2288ab37d9 | ||
|
|
cbb1fe789e | ||
|
|
b8ea9dbb39 | ||
|
|
be5c60fa3e | ||
|
|
ec08953514 | ||
|
|
f8dcd40286 | ||
|
|
f717f4e8d6 | ||
|
|
329c38c989 | ||
|
|
a4d6c278db | ||
|
|
7aa6f90e17 | ||
|
|
c788f6bc1e | ||
|
|
b1d49e3a9e | ||
|
|
04918865ea | ||
|
|
f4b610e5a3 | ||
|
|
76b5b3024d | ||
|
|
7371bb5559 | ||
|
|
b9a43aeaad | ||
|
|
a6441056fe | ||
|
|
954eabc217 | ||
|
|
03eb843a2f | ||
|
|
c195987564 | ||
|
|
631864dfaf | ||
|
|
03f07dbd81 | ||
|
|
3bda652f4b | ||
|
|
9924d5a80b | ||
|
|
bdf7a40713 | ||
|
|
8d1bb71a22 | ||
|
|
5e3f0da581 | ||
|
|
7f49ca7983 | ||
|
|
29d0b63f40 | ||
|
|
bea4e86167 | ||
|
|
6f48cafd42 | ||
|
|
dc7e860263 | ||
|
|
b35bbedb77 | ||
|
|
141004c39f | ||
|
|
96713f5223 | ||
|
|
3770fdb05f | ||
|
|
1f6858ee8b | ||
|
|
165eb74c9d | ||
|
|
5d34ef3544 | ||
|
|
44b48ce475 | ||
|
|
d713d5f7e4 | ||
|
|
45db7dfcb0 | ||
|
|
a982773c0d | ||
|
|
27c0ef608e | ||
|
|
9f2517cce1 | ||
|
|
0c7d64c8e6 | ||
|
|
37342a54be | ||
|
|
830adad22f | ||
|
|
c52acd2913 | ||
|
|
194da2b6e5 | ||
|
|
599ccda1ed | ||
|
|
9f4f3794b0 | ||
|
|
c2c0d0bb55 | ||
|
|
6901c985fd | ||
|
|
86913d2244 | ||
|
|
f34d1d0096 | ||
|
|
3efe18d06f | ||
|
|
92e8d79c5a | ||
|
|
6ad799efe8 | ||
|
|
e6c4b1e78c | ||
|
|
81292a8b5a | ||
|
|
c71c36f6b3 | ||
|
|
20f3dc3b3f | ||
|
|
400c5d1229 | ||
|
|
a0ad61beb8 | ||
|
|
1c0c9cc282 | ||
|
|
50aba040e4 | ||
|
|
678c8d0018 | ||
|
|
5c61f81c03 | ||
|
|
85e90700a6 | ||
|
|
e2426ed6e5 | ||
|
|
7c6ac76ace | ||
|
|
815d4d6a62 | ||
|
|
59238ae2a6 | ||
|
|
39c89c3f6d | ||
|
|
9b45e24584 | ||
|
|
cd433b0e3c | ||
|
|
f4df411d47 | ||
|
|
2494ee6a34 | ||
|
|
d1b7ef3707 | ||
|
|
cd9fa354ec | ||
|
|
f308e64788 | ||
|
|
da2dcf821c | ||
|
|
5a6c039f5b | ||
|
|
f4d936e3e5 | ||
|
|
2ed085831b | ||
|
|
e7731651f2 | ||
|
|
8c752a01a8 | ||
|
|
e14ff314c7 | ||
|
|
42b7254a94 | ||
|
|
a18c8df664 | ||
|
|
252651c1fb | ||
|
|
543113292b | ||
|
|
ec76c10fdc | ||
|
|
cad111de6d | ||
|
|
66d7bb414e | ||
|
|
f94266c1ad | ||
|
|
75cf90c7ea | ||
|
|
1f044a0172 | ||
|
|
5ae6b39fa9 | ||
|
|
632a9967fd | ||
|
|
fb9a8ed094 | ||
|
|
e8cc9cc338 | ||
|
|
02f187914c | ||
|
|
0ac591d353 | ||
|
|
049492917a | ||
|
|
530b158f4e | ||
|
|
76479503ad | ||
|
|
e8179d01af | ||
|
|
d920c6319f | ||
|
|
b45a614cd8 | ||
|
|
5a46ecc901 | ||
|
|
3850bc2dbe | ||
|
|
afbb0e6944 | ||
|
|
6b3fe8951a | ||
|
|
2e0478b2a7 | ||
|
|
3977885c9a | ||
|
|
31a0b5553f | ||
|
|
972aff26f7 | ||
|
|
984292482a | ||
|
|
648f60fab4 | ||
|
|
c1463b3aa6 | ||
|
|
42ce621197 | ||
|
|
18c84e7e1e | ||
|
|
31a80f5588 | ||
|
|
9d51e2ce52 | ||
|
|
1a7ae434b7 | ||
|
|
1930a4c1f6 | ||
|
|
0c99b77843 | ||
|
|
405219c081 | ||
|
|
54aa5f7f4d | ||
|
|
6811388991 | ||
|
|
7cf6fe53fc | ||
|
|
217e5b861f | ||
|
|
f1e39ba911 | ||
|
|
56e824267d | ||
|
|
2fc4adfbb0 | ||
|
|
b2f04937b9 | ||
|
|
2c9fbb5a1b | ||
|
|
5a41de0eb9 | ||
|
|
69dd4ea75c | ||
|
|
e2311fedc0 | ||
|
|
77c8cb8f9e | ||
|
|
18d58ad4e7 | ||
|
|
8c59ab0846 | ||
|
|
525985b1dc | ||
|
|
43dc1cd70c | ||
|
|
66f9dd51dd | ||
|
|
1652f6e368 | ||
|
|
e8d82c866e | ||
|
|
4c13e8c2f0 | ||
|
|
51a1156e68 | ||
|
|
13531a007c | ||
|
|
41e142634f | ||
|
|
ca47f2d240 | ||
|
|
0506cd542c | ||
|
|
3f44c59e00 | ||
|
|
497e22830e | ||
|
|
e966fdad71 | ||
|
|
64e8e85aac | ||
|
|
964b65477c | ||
|
|
39a4e89d66 | ||
|
|
c7317c7278 | ||
|
|
31f562a223 | ||
|
|
577e467048 | ||
|
|
8d1ebba2e1 | ||
|
|
fdeac8eb29 | ||
|
|
b87cfb4853 | ||
|
|
64dec6ce3f | ||
|
|
a114e6c623 | ||
|
|
c2af38caab | ||
|
|
0d6346c73a | ||
|
|
e0eb195097 | ||
|
|
94f13b805c | ||
|
|
c507a8892f | ||
|
|
b923f8261b | ||
|
|
13670c5626 | ||
|
|
59504ff6c4 | ||
|
|
3bb0f20066 | ||
|
|
850375767e | ||
|
|
ed159ea3c3 | ||
|
|
c799d507d2 | ||
|
|
4c9d1a1c01 | ||
|
|
6633d21788 | ||
|
|
9aebcf0c69 | ||
|
|
63f82971c8 | ||
|
|
4c28a77e00 | ||
|
|
c41f547af3 | ||
|
|
b3aae68469 | ||
|
|
2063adc6c0 | ||
|
|
04a304dcd6 | ||
|
|
0b237f27f7 | ||
|
|
5ed363146f | ||
|
|
77bad9d6b3 | ||
|
|
464b9d4142 | ||
|
|
4a856c6267 | ||
|
|
47cb9cd5b6 | ||
|
|
13999e44eb | ||
|
|
749f492034 | ||
|
|
c6fa03ba8c | ||
|
|
b78ed7fb04 | ||
|
|
c8ef6bae1a | ||
|
|
457e9cf2bd | ||
|
|
68cea4b6a8 | ||
|
|
85120e3816 | ||
|
|
c6d8bcd574 | ||
|
|
1aeee38c0d | ||
|
|
387f155b29 | ||
|
|
5dae500ac3 | ||
|
|
caa625c3ec | ||
|
|
faf5d11900 | ||
|
|
5c183e83f3 | ||
|
|
ab212e36d0 | ||
|
|
402f05f265 | ||
|
|
46938db8f3 | ||
|
|
1dd205c441 | ||
|
|
f906214fa9 | ||
|
|
e734af0109 | ||
|
|
8850e3a027 | ||
|
|
0b7f407b8c | ||
|
|
6f7692c086 | ||
|
|
623bfe58bd |
10
.deepsource.toml
Normal file
10
.deepsource.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
version = 1
|
||||
|
||||
[[analyzers]]
|
||||
name = "javascript"
|
||||
|
||||
[analyzers.meta]
|
||||
plugins = ["react"]
|
||||
|
||||
[[transformers]]
|
||||
name = "prettier"
|
||||
12
.eslintrc.js
12
.eslintrc.js
@@ -2,12 +2,12 @@ module.exports = {
|
||||
extends: [
|
||||
'mantine',
|
||||
'plugin:@next/next/recommended',
|
||||
'plugin:jest/recommended',
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/eslint-recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:vitest/recommended',
|
||||
],
|
||||
plugins: ['testing-library', 'jest', 'react-hooks', 'react', 'unused-imports'],
|
||||
plugins: ['testing-library', 'react-hooks', 'react', 'unused-imports', 'vitest'],
|
||||
overrides: [
|
||||
{
|
||||
files: ['**/?(*.)+(spec|test).[jt]s?(x)'],
|
||||
@@ -31,5 +31,13 @@ module.exports = {
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'no-continue': 'off',
|
||||
'linebreak-style': 0,
|
||||
'import/extensions': 'off',
|
||||
'vitest/max-nested-describe': [
|
||||
'error',
|
||||
{
|
||||
max: 3,
|
||||
},
|
||||
],
|
||||
'testing-library/no-node-access': ['error', { allowContainerFirstChild: true }],
|
||||
},
|
||||
};
|
||||
|
||||
19
.github/ISSUE_TEMPLATE/bug.yml
vendored
19
.github/ISSUE_TEMPLATE/bug.yml
vendored
@@ -32,8 +32,15 @@ body:
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Additional info
|
||||
description: Logs? Screenshots? More info?
|
||||
label: Logs
|
||||
description: Provide your Homarr logs so we can investigate what's going on
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Context
|
||||
description: Screenshots? More info?
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
@@ -42,9 +49,11 @@ body:
|
||||
label: Please tick the boxes
|
||||
description: Before submitting, please ensure that
|
||||
options:
|
||||
- label: You've read the [docs](https://github.com/ajnart/homarr#readme)
|
||||
- label: I confirm that I attached the proper logs
|
||||
required: true
|
||||
- label: You've checked for [duplicate issues](https://github.com/ajnart/homarr/issues)
|
||||
- label: I've read the [docs](https://github.com/ajnart/homarr#readme)
|
||||
required: true
|
||||
- label: You've tried to debug yourself
|
||||
- label: I've checked for [duplicate issues](https://github.com/ajnart/homarr/issues)
|
||||
required: true
|
||||
- label: I've tried to debug myself
|
||||
required: true
|
||||
|
||||
7
.github/workflows/docker.yml
vendored
7
.github/workflows/docker.yml
vendored
@@ -19,6 +19,9 @@ env:
|
||||
REGISTRY: ghcr.io
|
||||
# github.repository as <account>/<repo>
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
|
||||
jobs:
|
||||
# Push image to GitHub Packages.
|
||||
@@ -49,7 +52,7 @@ jobs:
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Restore NextJS cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
# See here for caching with `yarn` https://github.com/actions/cache/blob/main/examples.md#node---yarn or you can leverage caching with actions/setup-node https://github.com/actions/setup-node
|
||||
path: |
|
||||
@@ -89,7 +92,7 @@ jobs:
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
context: .
|
||||
|
||||
133
.github/workflows/docker_dev.yml
vendored
133
.github/workflows/docker_dev.yml
vendored
@@ -1,8 +1,5 @@
|
||||
name: Development CI
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [dev]
|
||||
@@ -19,16 +16,27 @@ on:
|
||||
required: true
|
||||
description: 'Tag to deploy to'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./
|
||||
|
||||
env:
|
||||
# Use docker.io for Docker Hub if empty
|
||||
REGISTRY: ghcr.io
|
||||
# github.repository as <account>/<repo>
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
permissions:
|
||||
contents: read # for checkout repository
|
||||
actions: read # for fetching base branch bundle stats
|
||||
pull-requests: write # for comments
|
||||
|
||||
jobs:
|
||||
# Push image to GitHub Packages.
|
||||
# See also https://docs.docker.com/docker-hub/builds/
|
||||
yarn_install_and_build:
|
||||
yarn_install_and_build_dev:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
packages: write
|
||||
@@ -53,21 +61,20 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Restore NextJS cache
|
||||
uses: actions/cache@v2
|
||||
- name: Restore next build
|
||||
uses: actions/cache@v3
|
||||
id: restore-build-cache
|
||||
env:
|
||||
cache-name: cache-next-build
|
||||
with:
|
||||
# See here for caching with `yarn` https://github.com/actions/cache/blob/main/examples.md#node---yarn or you can leverage caching with actions/setup-node https://github.com/actions/setup-node
|
||||
path: |
|
||||
${{ github.workspace }}/.next/cache
|
||||
# Generate a new cache whenever packages or source files change.
|
||||
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
|
||||
# If source files changed but packages didn't, rebuild from a prior cache.
|
||||
restore-keys: |
|
||||
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
|
||||
path: .next/cache
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}
|
||||
|
||||
- run: yarn install --immutable
|
||||
|
||||
- run: yarn build
|
||||
- run: yarn turbo build
|
||||
|
||||
- run: yarn test:run
|
||||
|
||||
- name: Docker meta
|
||||
if: github.event_name != 'pull_request'
|
||||
@@ -98,7 +105,7 @@ jobs:
|
||||
|
||||
- name: Build and push
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
context: .
|
||||
@@ -107,3 +114,95 @@ jobs:
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
analyze:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarn-cache-dir-path
|
||||
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
|
||||
|
||||
- uses: actions/cache@v3
|
||||
id: yarn-cache
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Restore next build
|
||||
uses: actions/cache@v3
|
||||
id: restore-build-cache
|
||||
env:
|
||||
cache-name: cache-next-build
|
||||
with:
|
||||
# if you use a custom build directory, replace all instances of `.next` in this file with your build directory
|
||||
# ex: if your app builds to `dist`, replace `.next` with `dist`
|
||||
path: .next/cache
|
||||
# change this if you prefer a more strict cache
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}
|
||||
|
||||
- run: yarn install
|
||||
|
||||
- name: Build next.js app
|
||||
# change this if your site requires a custom build command
|
||||
run: yarn turbo build
|
||||
|
||||
# Here's the first place where next-bundle-analysis' own script is used
|
||||
# This step pulls the raw bundle stats for the current bundle
|
||||
- name: Analyze bundle
|
||||
run: npx -p nextjs-bundle-analysis report
|
||||
|
||||
- name: Upload bundle
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bundle
|
||||
path: .next/analyze/__bundle_analysis.json
|
||||
|
||||
- name: Download base branch bundle stats
|
||||
uses: dawidd6/action-download-artifact@v2
|
||||
continue-on-error: true
|
||||
if: success() && github.event.number
|
||||
with:
|
||||
workflow: nextjs_bundle_analysis.yml
|
||||
branch: ${{ github.event.pull_request.base.ref }}
|
||||
path: .next/analyze/base
|
||||
|
||||
# And here's the second place - this runs after we have both the current and
|
||||
# base branch bundle stats, and will compare them to determine what changed.
|
||||
# There are two configurable arguments that come from package.json:
|
||||
#
|
||||
# - budget: optional, set a budget (bytes) against which size changes are measured
|
||||
# it's set to 350kb here by default, as informed by the following piece:
|
||||
# https://infrequently.org/2021/03/the-performance-inequality-gap/
|
||||
#
|
||||
# - red-status-percentage: sets the percent size increase where you get a red
|
||||
# status indicator, defaults to 20%
|
||||
#
|
||||
# Either of these arguments can be changed or removed by editing the `nextBundleAnalysis`
|
||||
# entry in your package.json file.
|
||||
- name: Compare with base branch bundle
|
||||
if: success() && github.event.number
|
||||
run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare
|
||||
|
||||
- name: Get Comment Body
|
||||
id: get-comment-body
|
||||
if: success() && github.event.number
|
||||
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
run: |
|
||||
echo "body<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(cat .next/analyze/__bundle_analysis_comment.txt)" >> $GITHUB_OUTPUT
|
||||
echo EOF >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Comment
|
||||
uses: marocchino/sticky-pull-request-comment@v2
|
||||
with:
|
||||
header: next-touched-pages
|
||||
message: ${{ steps.get-comment-body.outputs.body }}
|
||||
11
.gitignore
vendored
11
.gitignore
vendored
@@ -25,6 +25,7 @@ yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# local env files
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
@@ -32,6 +33,7 @@ yarn-error.log*
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
.turbo
|
||||
*.tsbuildinfo
|
||||
|
||||
# storybook
|
||||
@@ -46,4 +48,11 @@ data/configs
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
!.yarn/versions
|
||||
|
||||
#envfiles
|
||||
.env
|
||||
|
||||
#Languages other than 'en'
|
||||
public/locales/*
|
||||
!public/locales/en
|
||||
786
.yarn/releases/yarn-3.2.1.cjs
vendored
786
.yarn/releases/yarn-3.2.1.cjs
vendored
File diff suppressed because one or more lines are too long
874
.yarn/releases/yarn-3.6.0.cjs
vendored
Executable file
874
.yarn/releases/yarn-3.6.0.cjs
vendored
Executable file
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.2.1.cjs
|
||||
yarnPath: .yarn/releases/yarn-3.6.0.cjs
|
||||
|
||||
@@ -104,3 +104,11 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/ajnart
|
||||
Homarr uses [GitMoji](https://gitmoji.dev/).
|
||||
We would appreciate it if everyone keeps their commit messages withing these rulings.
|
||||
|
||||
### Tests
|
||||
|
||||
> Components should be tested using unit tests. A unit is the smallest isolated part of the component. Unit tests must not have any dependencies and must be isolated.
|
||||
|
||||
- Place testfiles directly at the root of the unit
|
||||
- Only test a single unit of work inside a unit test
|
||||
- You may test multiple units inside one test file
|
||||
- Testnames do not begin with ``should`` or the unit name
|
||||
@@ -1,15 +1,15 @@
|
||||
FROM node:16-alpine
|
||||
FROM node:20-alpine
|
||||
WORKDIR /app
|
||||
|
||||
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
|
||||
|
||||
# Automatically leverage output traces to reduce image size
|
||||
# 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
|
||||
|
||||
72
README.md
72
README.md
@@ -1,23 +1,21 @@
|
||||
|
||||
<!-- Project Title -->
|
||||
<picture id="banner">
|
||||
<img src="./docs/banner.png" />
|
||||
</picture>
|
||||

|
||||
|
||||
<!-- Badges -->
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/github/stars/ajnart/homarr?label=%E2%AD%90%20Stars&style=flat-square?branch=master&kill_cache=1%22">
|
||||
<a href="https://github.com/ajnart/homarr/releases/latest">
|
||||
<img alt="Latest Release (Semver)" src="https://img.shields.io/github/v/release/ajnart/homarr?label=%F0%9F%9A%80%20Release">
|
||||
<img alt="Latest Release (Semver)" src="https://img.shields.io/github/v/release/ajnart/homarr?label=%F0%9F%9A%80%20Release">
|
||||
</a>
|
||||
<a href="https://github.com/ajnart/homarr/actions/workflows/docker.yml">
|
||||
<img title="Docker CI Status" src="https://github.com/ajnart/homarr/actions/workflows/docker.yml/badge.svg" alt="CI Status">
|
||||
<img title="Docker CI Status" src="https://github.com/ajnart/homarr/actions/workflows/docker.yml/badge.svg" alt="CI Status">
|
||||
</a>
|
||||
<a href=https://crowdin.com/project/homarr>
|
||||
<img title="Translations" src="https://badges.crowdin.net/homarr/localized.svg" />
|
||||
</a>
|
||||
<a href="https://discord.gg/aCsmEV5RgA">
|
||||
<img title="Discord" src="https://discordapp.com/api/guilds/972958686051962910/widget.png?style=shield">
|
||||
<img title="Discord" src="https://discordapp.com/api/guilds/972958686051962910/widget.png?style=shield">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
@@ -38,43 +36,38 @@
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
Simplify the management of your server with Homarr - a sleek, modern dashboard that puts all of your apps and services at your fingertips. With Homarr, you can access and control everything in one convenient location. Homarr seamlessly integrates with the apps you've added, providing you with valuable information and giving you complete control. Installation is a breeze, and Homarr supports a wide range of deployment methods.
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<picture id="features">
|
||||
<img src="docs/section-features.png" />
|
||||
</picture>
|
||||

|
||||
|
||||
- 🖌️ Highly customizeable with extensive drag and drop grid system
|
||||
- 🖌️ Highly customizable with an extensive drag and drop grid system
|
||||
- ✨ Integrates seamlessly with your favorite self-hosted applications
|
||||
- 📌 Easy and fast app management - no yaml involved
|
||||
- 🙊 Advanced secrets management system for enhanced security
|
||||
- 📌 Easy and fast app management - no YAML involved
|
||||
- 🙊 Advanced secrets' management system for enhanced security
|
||||
- 📄 Detailed documentation and active community
|
||||
- 🔍 Search though the web or supported integrations in an instant
|
||||
- 🏴 Monitor your application with a built in status system
|
||||
- 🦞 Comprehensive built-in icon picker with over 1000 icons
|
||||
- 🐳 Easy deployment with Docker, Unraid, Synology
|
||||
- 🚀 Comatible with any major consumer hardware (x86, Rasperry Pi, ...)
|
||||
- 💵 Free and Open-Source - your data stays on your device
|
||||
- 🔍 Search through the web or supported integrations in an instant
|
||||
- 🏴 Monitor your application with a built-in status system
|
||||
- 🦞 Comprehensive built-in icon picker with over 7000 icons
|
||||
- 🐳 Easy deployment with Docker, unRAID, and Synology
|
||||
- 🚀 Compatible with any major consumer hardware (x86, Raspberry Pi, old laptops, ...)
|
||||
- 💵 Free and Open-Source - your data stays on your device. No telemetry data.
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<picture id="widgets-and-integrations">
|
||||
<img src="docs/section-widgets-and-integrations.png" />
|
||||
</picture>
|
||||

|
||||
|
||||
Homarr has a [built in collection of widgets and integrations](https://homarr.dev/docs/integrations/) , that connect to your applications and enable you to control them directly from the dashboard.
|
||||
Each widget and integration has a comprehensive documentation for your confort.
|
||||
Homarr has a [built-in collection of widgets and integrations](https://homarr.dev/docs/integrations/), that connect to your applications and enable you to control them directly from the dashboard.
|
||||
Each widget and integration has a comprehensive documentation for your comfort.
|
||||
Homarr will integrate with the following applications of yours:
|
||||
|
||||
- 📥 Torrent clients
|
||||
- [Delguge](https://homarr.dev/docs/integrations/#deluge)
|
||||
- [Deluge](https://homarr.dev/docs/integrations/#deluge)
|
||||
- [Transmission](https://homarr.dev/docs/integrations/#transmission)
|
||||
- [qBittorrent](https://homarr.dev/docs/integrations/#qbittorrent-integration)
|
||||
- [qBittorent](https://homarr.dev/docs/integrations/#qbittorrent-integration)
|
||||
- 📥 Usenet clients
|
||||
- [SABnzbd](https://homarr.dev/docs/integrations/#sabnzbd)
|
||||
- [NZBGet](https://homarr.dev/docs/integrations/#nzbget)
|
||||
@@ -94,21 +87,16 @@ We're constantly adding new integrations and widgets, which will enhance your ex
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<picture id="preview">
|
||||
<img src="docs/section-preview.png" />
|
||||
</picture>
|
||||

|
||||
|
||||
https://user-images.githubusercontent.com/30572287/217098893-5880e7de-13d0-42c5-b505-f7921593396f.mp4
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<picture id="installation">
|
||||
<img src="docs/section-installation.png" />
|
||||
</picture>
|
||||

|
||||
|
||||
There are many different ways, how Homarr can be installed.
|
||||
Since we are developing Homarr very frequently, we recommend to read our official installation guides:
|
||||
Since we are updating Homarr very frequently, we recommend reading our official installation guides:
|
||||
|
||||
<a href="https://homarr.dev/docs/introduction/installation">
|
||||
<img src="docs/installation-button.png" width="200" />
|
||||
@@ -117,19 +105,19 @@ Since we are developing Homarr very frequently, we recommend to read our officia
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<picture id="contribute">
|
||||
<img src="docs/section-contribute.png" />
|
||||
</picture>
|
||||

|
||||
Homarr is maintained by motivated developers in their free-time.
|
||||
We work for fun and learning on this project.
|
||||
|
||||
Hence, we're glad for all help and support we can get.
|
||||
Altough a donation is apprechiated, there are also other ways you can support us.
|
||||
Hence, we're glad for all the help and support we can get.
|
||||
Although a donation is appreciated, there are other ways you can support us.
|
||||
|
||||
[__](https://ko-fi.com/ajnart)
|
||||
<a href="https://ko-fi.com/ajnart">
|
||||
<img src="https://cdn.ko-fi.com/cdn/kofi3.png?v=3" width="200" />
|
||||
</a>
|
||||
|
||||
You can also support us [translating the entire project in as many languages as possible](https://homarr.dev/docs/community/translations) or contribute directly to the code or documentation.
|
||||
You can also support us by helping with [translating the entire project](https://homarr.dev/docs/community/translations) to as many language as possible or contributing directly to the code or documentation.
|
||||
|
||||
**Please read our [Contribution Guidelines](/CONTRIBUTING.md)**
|
||||
|
||||
All contributions, regardless of their size or scope, are welcome and highly apprechiated! Thank you ❤️
|
||||
All contributions, regardless of their size or scope, are welcome and highly appreciated! Thank you ❤️
|
||||
|
||||
44
checkly.config.ts
Normal file
44
checkly.config.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { defineConfig } from 'checkly'
|
||||
|
||||
/**
|
||||
* See https://www.checklyhq.com/docs/cli/project-structure/
|
||||
*/
|
||||
const config = defineConfig({
|
||||
/* A human friendly name for your project */
|
||||
projectName: 'homarr',
|
||||
/** A logical ID that needs to be unique across your Checkly account,
|
||||
* See https://www.checklyhq.com/docs/cli/constructs/ to learn more about logical IDs.
|
||||
*/
|
||||
logicalId: 'homarr',
|
||||
/* An optional URL to your Git repo */
|
||||
repoUrl: 'https://github.com/checkly/checkly-cli',
|
||||
/* Sets default values for Checks */
|
||||
checks: {
|
||||
/* A default for how often your Check should run in minutes */
|
||||
frequency: 10,
|
||||
/* Checkly data centers to run your Checks as monitors */
|
||||
locations: ['us-east-1', 'eu-west-1'],
|
||||
/* An optional array of tags to organize your Checks */
|
||||
tags: ['mac'],
|
||||
/** The Checkly Runtime identifier, determining npm packages and the Node.js version available at runtime.
|
||||
* See https://www.checklyhq.com/docs/cli/npm-packages/
|
||||
*/
|
||||
runtimeId: '2023.02',
|
||||
/* A glob pattern that matches the Checks inside your repo, see https://www.checklyhq.com/docs/cli/using-check-test-match/ */
|
||||
checkMatch: '**/__checks__/**/*.check.ts',
|
||||
browserChecks: {
|
||||
/* A glob pattern matches any Playwright .spec.ts files and automagically creates a Browser Check. This way, you
|
||||
* can just write native Playwright code. See https://www.checklyhq.com/docs/cli/using-check-test-match/
|
||||
* */
|
||||
testMatch: '**/__checks__/**/*.spec.ts',
|
||||
},
|
||||
},
|
||||
cli: {
|
||||
/* The default datacenter location to use when running npx checkly test */
|
||||
runLocation: 'eu-west-1',
|
||||
/* An array of default reporters to use when a reporter is not specified with the "--reporter" flag */
|
||||
reporters: ['list'],
|
||||
},
|
||||
})
|
||||
|
||||
export default config
|
||||
@@ -1,387 +1,389 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"configProperties": {
|
||||
"name": "default"
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f",
|
||||
"position": 1,
|
||||
"name": "Welcome to Homarr 🎉",
|
||||
"type": "category"
|
||||
"schemaVersion": 1,
|
||||
"configProperties": {
|
||||
"name": "default"
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f",
|
||||
"position": 1,
|
||||
"name": "Welcome to Homarr 🎉",
|
||||
"type": "category"
|
||||
}
|
||||
],
|
||||
"wrappers": [
|
||||
{
|
||||
"id": "default",
|
||||
"position": 0
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a326",
|
||||
"position": 1
|
||||
}
|
||||
],
|
||||
"apps": [
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a337",
|
||||
"name": "Discord",
|
||||
"url": "https://discord.com/invite/aCsmEV5RgA",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://discord.com/invite/aCsmEV5RgA",
|
||||
"isOpeningNewTab": true,
|
||||
"externalUrl": "https://discord.com/invite/aCsmEV5RgA"
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"statusCodes": [
|
||||
"200"
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/discord.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 3,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a990",
|
||||
"name": "Donate",
|
||||
"url": "https://ko-fi.com/ajnart",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://ko-fi.com/ajnart",
|
||||
"externalUrl": "https://ko-fi.com/ajnart",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"statusCodes": [
|
||||
"200"
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/ko-fi.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 2
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a330",
|
||||
"name": "Contribute",
|
||||
"url": "https://github.com/ajnart/homarr",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://github.com/ajnart/homarr",
|
||||
"externalUrl": "https://github.com/ajnart/homarr",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"statusCodes": []
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/github.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 2
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 4,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5df743d9-5cb1-457c-85d2-64ff86855652",
|
||||
"name": "Documentation",
|
||||
"url": "https://homarr.dev",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://homarr.dev",
|
||||
"externalUrl": "https://homarr.dev",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"statusCodes": [
|
||||
"200"
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "/imgs/logo/logo.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"widgets": [
|
||||
{
|
||||
"id": "971aa859-8570-49a1-8d34-dd5c7b3638d1",
|
||||
"type": "date",
|
||||
"properties": {
|
||||
"display24HourFormat": true
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 4,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "e3004052-6b83-480e-b458-56e8ccdca5f0",
|
||||
"type": "weather",
|
||||
"properties": {
|
||||
"displayInFahrenheit": false,
|
||||
"location": "Paris"
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"common": {
|
||||
"searchEngine": {
|
||||
"type": "google",
|
||||
"properties": {}
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
"layout": {
|
||||
"enabledLeftSidebar": false,
|
||||
"enabledRightSidebar": false,
|
||||
"enabledDocker": false,
|
||||
"enabledPing": false,
|
||||
"enabledSearchbar": true
|
||||
},
|
||||
"pageTitle": "Homarr v0.12 ⭐️",
|
||||
"logoImageUrl": "/imgs/logo/logo.png",
|
||||
"faviconUrl": "/imgs/favicon/favicon-squared.png",
|
||||
"backgroundImageUrl": "",
|
||||
"customCss": "",
|
||||
"colors": {
|
||||
"primary": "red",
|
||||
"secondary": "yellow",
|
||||
"shade": 7
|
||||
},
|
||||
"appOpacity": 100
|
||||
}
|
||||
}
|
||||
],
|
||||
"wrappers": [
|
||||
{
|
||||
"id": "default",
|
||||
"position": 0
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a326",
|
||||
"position": 1
|
||||
}
|
||||
],
|
||||
"apps": [
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a337",
|
||||
"name": "Discord",
|
||||
"url": "https://discord.com/invite/aCsmEV5RgA",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://discord.com/invite/aCsmEV5RgA",
|
||||
"isOpeningNewTab": true,
|
||||
"externalUrl": "https://discord.com/invite/aCsmEV5RgA"
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"okStatus": [
|
||||
200
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/discord.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 3,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a990",
|
||||
"name": "Donate",
|
||||
"url": "https://ko-fi.com/ajnart",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://ko-fi.com/ajnart",
|
||||
"externalUrl": "https://ko-fi.com/ajnart",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"okStatus": [
|
||||
200
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/ko-fi.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 2
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a330",
|
||||
"name": "Contribute",
|
||||
"url": "https://github.com/ajnart/homarr",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://github.com/ajnart/homarr",
|
||||
"externalUrl": "https://github.com/ajnart/homarr",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"okStatus": []
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/github.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 2
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 4,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5df743d9-5cb1-457c-85d2-64ff86855652",
|
||||
"name": "Documentation",
|
||||
"url": "https://homarr.dev",
|
||||
"behaviour": {
|
||||
"onClickUrl": "https://homarr.dev",
|
||||
"externalUrl": "https://homarr.dev",
|
||||
"isOpeningNewTab": true
|
||||
},
|
||||
"network": {
|
||||
"enabledStatusChecker": false,
|
||||
"okStatus": [
|
||||
200
|
||||
]
|
||||
},
|
||||
"appearance": {
|
||||
"iconUrl": "/imgs/logo/logo.png"
|
||||
},
|
||||
"integration": {
|
||||
"type": null,
|
||||
"properties": []
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 1,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"widgets": [
|
||||
{
|
||||
"id": "date",
|
||||
"properties": {
|
||||
"display24HourFormat": true
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 4,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 2,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "weather",
|
||||
"properties": {
|
||||
"displayInFahrenheit": false,
|
||||
"location": "Paris"
|
||||
},
|
||||
"area": {
|
||||
"type": "category",
|
||||
"properties": {
|
||||
"id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a33f"
|
||||
}
|
||||
},
|
||||
"shape": {
|
||||
"md": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"sm": {
|
||||
"location": {
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
},
|
||||
"lg": {
|
||||
"location": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"size": {
|
||||
"width": 2,
|
||||
"height": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"common": {
|
||||
"searchEngine": {
|
||||
"type": "google",
|
||||
"properties": {}
|
||||
}
|
||||
},
|
||||
"customization": {
|
||||
"layout": {
|
||||
"enabledLeftSidebar": false,
|
||||
"enabledRightSidebar": false,
|
||||
"enabledDocker": false,
|
||||
"enabledPing": false,
|
||||
"enabledSearchbar": true
|
||||
},
|
||||
"pageTitle": "Homarr v0.11 ⭐️",
|
||||
"logoImageUrl": "/imgs/logo/logo.png",
|
||||
"faviconUrl": "/imgs/favicon/favicon-squared",
|
||||
"backgroundImageUrl": "",
|
||||
"customCss": "",
|
||||
"colors": {
|
||||
"primary": "red",
|
||||
"secondary": "yellow",
|
||||
"shade": 7
|
||||
},
|
||||
"appOpacity": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,13 +27,15 @@ module.exports = {
|
||||
'el',
|
||||
'sk',
|
||||
'no',
|
||||
'tr',
|
||||
'lv'
|
||||
],
|
||||
localePath: path.resolve('./public/locales'),
|
||||
fallbackLng: 'en',
|
||||
|
||||
localeDetection: true,
|
||||
returnEmptyString: false,
|
||||
debug: false,
|
||||
appendNamespaceToCIMode: true,
|
||||
reloadOnPrerender: process.env.NODE_ENV === 'development',
|
||||
},
|
||||
returnEmptyString: false,
|
||||
appendNamespaceToCIMode: true,
|
||||
reloadOnPrerender: process.env.NODE_ENV === 'development',
|
||||
fallbackLng: 'en',
|
||||
localePath: path.resolve('./public/locales'),
|
||||
};
|
||||
|
||||
@@ -11,4 +11,5 @@ module.exports = withBundleAnalyzer({
|
||||
reactStrictMode: true,
|
||||
output: 'standalone',
|
||||
i18n,
|
||||
transpilePackages: ['@jellyfin/sdk'],
|
||||
});
|
||||
|
||||
123
package.json
123
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homarr",
|
||||
"version": "0.11.5",
|
||||
"version": "0.12.3",
|
||||
"description": "Homarr - A homepage for your server.",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
@@ -11,94 +11,137 @@
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"analyze": "ANALYZE=true next build",
|
||||
"turbo": "turbo run build",
|
||||
"start": "next start",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"export": "next build && next export",
|
||||
"lint": "next lint",
|
||||
"jest": "jest",
|
||||
"jest:watch": "jest --watch",
|
||||
"prettier:check": "prettier --check \"**/*.{ts,tsx}\"",
|
||||
"prettier:write": "prettier --write \"**/*.{ts,tsx}\"",
|
||||
"test": "npm run prettier:check && npm run lint && npm run typecheck && npm run jest",
|
||||
"ci": "yarn test && yarn lint --fix && yarn typecheck && yarn prettier:write"
|
||||
"test": "vitest",
|
||||
"test:ui": "vitest --ui",
|
||||
"test:run": "vitest run",
|
||||
"test:coverage": "vitest run --coverage"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ctrl/deluge": "^4.1.0",
|
||||
"@ctrl/qbittorrent": "^4.1.0",
|
||||
"@ctrl/qbittorrent": "^6.0.0",
|
||||
"@ctrl/shared-torrent": "^4.1.1",
|
||||
"@ctrl/transmission": "^4.1.1",
|
||||
"@emotion/react": "^11.10.5",
|
||||
"@emotion/react": "^11.10.6",
|
||||
"@emotion/server": "^11.10.0",
|
||||
"@jellyfin/sdk": "^0.7.0",
|
||||
"@mantine/core": "^5.9.3",
|
||||
"@mantine/dates": "^5.9.3",
|
||||
"@mantine/dropzone": "^5.9.3",
|
||||
"@mantine/form": "^5.9.3",
|
||||
"@mantine/hooks": "^5.9.3",
|
||||
"@mantine/modals": "^5.9.3",
|
||||
"@mantine/next": "^5.9.3",
|
||||
"@mantine/notifications": "^5.9.3",
|
||||
"@nivo/core": "^0.80.0",
|
||||
"@nivo/line": "^0.80.0",
|
||||
"@tabler/icons": "^1.106.0",
|
||||
"@jellyfin/sdk": "^0.8.0",
|
||||
"@mantine/core": "^6.0.0",
|
||||
"@mantine/dates": "^6.0.0",
|
||||
"@mantine/dropzone": "^6.0.0",
|
||||
"@mantine/form": "^6.0.0",
|
||||
"@mantine/hooks": "^6.0.0",
|
||||
"@mantine/modals": "^6.0.0",
|
||||
"@mantine/next": "^6.0.0",
|
||||
"@mantine/notifications": "^6.0.0",
|
||||
"@nivo/core": "^0.83.0",
|
||||
"@nivo/line": "^0.83.0",
|
||||
"@react-native-async-storage/async-storage": "^1.18.1",
|
||||
"@tabler/icons-react": "^2.18.0",
|
||||
"@tanstack/query-async-storage-persister": "^4.27.1",
|
||||
"@tanstack/query-sync-storage-persister": "^4.27.1",
|
||||
"@tanstack/react-query": "^4.2.1",
|
||||
"@tanstack/react-query-devtools": "^4.24.4",
|
||||
"axios": "^0.27.2",
|
||||
"consola": "^2.15.3",
|
||||
"@tanstack/react-query-persist-client": "^4.28.0",
|
||||
"@vitejs/plugin-react": "^4.0.0",
|
||||
"axios": "^1.0.0",
|
||||
"consola": "^3.0.0",
|
||||
"cookies-next": "^2.1.1",
|
||||
"dayjs": "^1.11.7",
|
||||
"dockerode": "^3.3.2",
|
||||
"fily-publish-gridstack": "^0.0.13",
|
||||
"framer-motion": "^9.0.2",
|
||||
"framer-motion": "^10.0.0",
|
||||
"html-entities": "^2.3.3",
|
||||
"i18next": "^21.9.1",
|
||||
"i18next": "^22.5.1",
|
||||
"js-file-download": "^0.4.12",
|
||||
"next": "^13.1.6",
|
||||
"next-i18next": "^11.3.0",
|
||||
"next": "^13.4.2",
|
||||
"next-i18next": "^13.0.0",
|
||||
"nzbget-api": "^0.0.3",
|
||||
"prismjs": "^1.29.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-i18next": "^12.3.1",
|
||||
"react-simple-code-editor": "^0.13.1",
|
||||
"rss-parser": "^3.12.0",
|
||||
"sabnzbd-api": "^1.5.0",
|
||||
"uuid": "^8.3.2",
|
||||
"uuid": "^9.0.0",
|
||||
"xml-js": "^1.6.11",
|
||||
"xss": "^1.0.14",
|
||||
"yarn": "^1.22.19",
|
||||
"zustand": "^4.1.4"
|
||||
"zod": "^3.21.4",
|
||||
"zustand": "^4.3.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@next/bundle-analyzer": "^12.1.4",
|
||||
"@next/eslint-plugin-next": "^12.1.4",
|
||||
"@next/bundle-analyzer": "^13.0.0",
|
||||
"@next/eslint-plugin-next": "^13.0.0",
|
||||
"@testing-library/jest-dom": "^5.16.5",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@types/dockerode": "^3.3.9",
|
||||
"@types/node": "17.0.1",
|
||||
"@types/node": "18.16.17",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"@types/react": "17.0.1",
|
||||
"@types/uuid": "^8.3.4",
|
||||
"@types/react": "17.0.60",
|
||||
"@types/uuid": "^9.0.0",
|
||||
"@types/video.js": "^7.3.51",
|
||||
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
||||
"@typescript-eslint/parser": "^5.30.7",
|
||||
"@vitest/coverage-c8": "^0.32.0",
|
||||
"@vitest/ui": "^0.32.0",
|
||||
"checkly": "latest",
|
||||
"eslint": "^8.20.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-config-airbnb-typescript": "^17.0.0",
|
||||
"eslint-config-mantine": "^2.0.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-jest": "^26.6.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.6.1",
|
||||
"eslint-plugin-react": "^7.30.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"eslint-plugin-testing-library": "^5.5.1",
|
||||
"eslint-plugin-unused-imports": "^2.0.0",
|
||||
"jest": "^28.1.3",
|
||||
"eslint-plugin-vitest": "^0.2.0",
|
||||
"happy-dom": "^9.0.0",
|
||||
"node-mocks-http": "^1.12.2",
|
||||
"prettier": "^2.7.1",
|
||||
"sass": "^1.56.1",
|
||||
"turbo": "^1.7.4",
|
||||
"typescript": "^4.7.4",
|
||||
"video.js": "^8.0.3"
|
||||
"ts-node": "latest",
|
||||
"turbo": "latest",
|
||||
"typescript": "^5.0.4",
|
||||
"video.js": "^8.0.3",
|
||||
"vitest": "^0.32.0",
|
||||
"vitest-fetch-mock": "^0.2.2"
|
||||
},
|
||||
"resolutions": {
|
||||
"@types/react": "17.0.2",
|
||||
"@types/react-dom": "17.0.2"
|
||||
"@types/react": "17.0.60",
|
||||
"@types/react-dom": "17.0.20"
|
||||
},
|
||||
"packageManager": "yarn@3.2.1"
|
||||
"packageManager": "yarn@3.6.0",
|
||||
"nextBundleAnalysis": {
|
||||
"budget": null,
|
||||
"budgetPercentIncreaseRed": 20,
|
||||
"minimumChangeThreshold": 0,
|
||||
"showDetails": true
|
||||
},
|
||||
"renovate": {
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:base"
|
||||
],
|
||||
"commitMessagePrefix": "⬆️",
|
||||
"lockFileMaintenance": {
|
||||
"automerge": true
|
||||
},
|
||||
"minor": {
|
||||
"automerge": true
|
||||
},
|
||||
"patch": {
|
||||
"automerge": true
|
||||
},
|
||||
"pin": {
|
||||
"automerge": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,15 @@
|
||||
"delete": "Slet",
|
||||
"ok": "OK",
|
||||
"edit": "Rediger",
|
||||
"enabled": "Aktiveret",
|
||||
"disabled": "Deaktiveret",
|
||||
"enableAll": "Aktiver alle",
|
||||
"disableAll": "Deaktiver alle",
|
||||
"version": "Version",
|
||||
"changePosition": "Ændre placering",
|
||||
"remove": "Fjern",
|
||||
"removeConfirm": "Er du sikker på, at du ønsker at fjerne {{item}} ?",
|
||||
"removeConfirm": "Er du sikker på, at du ønsker at fjerne {{item}}?",
|
||||
"createItem": "+ opret {{item}}",
|
||||
"sections": {
|
||||
"settings": "Indstillinger",
|
||||
"dangerZone": "Farezone"
|
||||
|
||||
18
public/locales/da/layout/common.json
Normal file
18
public/locales/da/layout/common.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"modals": {
|
||||
"blockedPopups": {
|
||||
"title": "Popups blokeret",
|
||||
"text": "Din browser har blokeret Homarr fra at få adgang til dens API. Dette er oftest forårsaget af AdBlockers eller nægtede tilladelser. Homarr kan ikke anmode om tilladelser automatisk.",
|
||||
"list": {
|
||||
"browserPermission": "Klik på ikonet ved siden af URL'en, og tjek tilladelserne. Tillad popups og vinduer",
|
||||
"adBlockers": "Deaktiver annonceblokkere og sikkerhedsværktøjer fra din browser",
|
||||
"otherBrowser": "Prøv en anden browser"
|
||||
}
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"category": {
|
||||
"openAllInNewTab": "Åbn alle i nye faneblade"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,10 @@
|
||||
"description": "Homarr er et <strong>elegant</strong>, <strong>moderne</strong> dashboard, der giver dig alle dine apps og tjenester lige ved hånden. Med Homarr kan du få adgang til og styre alt på ét praktisk sted. Homarr integrerer problemfrit med de apps, du har tilføjet, og giver dig værdifulde oplysninger og fuld kontrol. Installationen er en leg, og Homarr understøtter en lang række implementeringsmetoder.",
|
||||
"contact": "Har du problemer eller spørgsmål? Kontakt os!",
|
||||
"addToDashboard": "Tilføj til dashboard",
|
||||
"tip": "Mod henviser til din modificeringstast, det er Ctrl og Command/Super/Windows-tasten",
|
||||
"key": "Genvejstast",
|
||||
"action": "Handling",
|
||||
"keybinds": "Genvejstaster",
|
||||
"metrics": {
|
||||
"configurationSchemaVersion": "Konfigurationsskema version",
|
||||
"configurationsCount": "Tilgængelige konfigurationer",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"appearance": {
|
||||
"icon": {
|
||||
"label": "App Ikon",
|
||||
"description": "Vælg et ikon der skal vises på dit dashboard. Vælg mellem {{suggestionsCount}} ikoner eller indtast din egen URL",
|
||||
"description": "Begynd at skrive for at finde et ikon. Du kan også indsætte en billed-URL for at bruge et brugerdefineret ikon.",
|
||||
"autocomplete": {
|
||||
"title": "Ingen resultater fundet",
|
||||
"text": "Prøv at bruge et mere specifikt søgeord. Hvis du ikke kan finde det ønskede ikon, kan du indsætte billedets URL ovenfor for at få et brugerdefineret ikon"
|
||||
|
||||
21
public/locales/da/modules/bookmark.json
Normal file
21
public/locales/da/modules/bookmark.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Bogmærke",
|
||||
"description": "Viser en statisk liste over strenge eller links",
|
||||
"settings": {
|
||||
"title": "Bogmærke indstillinger",
|
||||
"items": {
|
||||
"label": "Elementer"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Layout"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"noneFound": {
|
||||
"title": "Bogmærkelisten er tom",
|
||||
"text": "Tilføj nye elementer til denne liste i redigeringstilstand"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"unmappedOptions": {
|
||||
"text": "<b>Der er fundet en ubrugt parameter i konfigurationen</b><br /><code>{{key}}</code>. Homarr kan ikke fortolke og bruge denne parameter. For at undgå uventet adfærd skal du sikkerhedskopiere din konfiguration og rette konfigurationen."
|
||||
"text": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"description": "Viser graferne for en ekstern Dash. instans i Homarr.",
|
||||
"settings": {
|
||||
"title": "Indstillinger for Dash. widget",
|
||||
"dashName": {
|
||||
"label": "Dash. Navn"
|
||||
},
|
||||
"url": {
|
||||
"label": "Dash. URL"
|
||||
},
|
||||
@@ -85,7 +88,7 @@
|
||||
"noInformation": "Kan ikke hente information fra dash. - kører du den nyeste version?",
|
||||
"protocolDowngrade": {
|
||||
"title": "Registreret protokolnedgradering",
|
||||
"text": "Protokollen til din Dash. instans bliver nedgraderet. Dette er sikkerhedsrisiko, da HTTP er ukrypteret og angribere kunne misbruge denne forbindelse. Sørg for, at Dash. kører på HTTPS også eller nedgraderer Homarr til HTTP (anbefales ikke)."
|
||||
"text": "Forbindelsen til din Dash.-instans bruger HTTP. Dette er en sikkerhedsrisiko, fordi HTTP er ukrypteret, og angribere kan misbruge denne forbindelse. Sørg for, at Dash. bruger HTTPS, eller nedgrader Homarr til HTTP (anbefales ikke)."
|
||||
}
|
||||
},
|
||||
"graphs": {
|
||||
|
||||
6
public/locales/da/modules/dns-hole-controls.json
Normal file
6
public/locales/da/modules/dns-hole-controls.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole kontrol",
|
||||
"description": "Kontroller PiHole eller AdGuard fra dit dashboard"
|
||||
}
|
||||
}
|
||||
20
public/locales/da/modules/dns-hole-summary.json
Normal file
20
public/locales/da/modules/dns-hole-summary.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole oversigt",
|
||||
"description": "Viser vigtige data fra PiHole eller AdGuard",
|
||||
"settings": {
|
||||
"title": "Indstillinger for DNS Hole oversigt",
|
||||
"usePiHoleColors": {
|
||||
"label": "Brug farver fra PiHole"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"metrics": {
|
||||
"domainsOnAdlist": "Domæner på adlister",
|
||||
"queriesToday": "Forespørgsler i dag",
|
||||
"queriesBlockedTodayPercentage": "blokeret i dag",
|
||||
"queriesBlockedToday": "blokeret i dag"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "IFrame",
|
||||
"name": "indlejret dokument (iframe)",
|
||||
"description": "Indlejr ethvert indhold fra internettet. Nogle websteder kan begrænse adgang.",
|
||||
"settings": {
|
||||
"title": "IFrame indstillinger",
|
||||
"title": "iFrame indstillinger",
|
||||
"embedUrl": {
|
||||
"label": "Indlejr URL"
|
||||
},
|
||||
@@ -15,7 +15,7 @@
|
||||
"card": {
|
||||
"errors": {
|
||||
"noUrl": {
|
||||
"title": "Indtast URL",
|
||||
"title": "",
|
||||
"text": "Sørg for, at du har indtastet en gyldig adresse i konfigurationen af din widget"
|
||||
}
|
||||
}
|
||||
|
||||
24
public/locales/da/modules/media-requests-list.json
Normal file
24
public/locales/da/modules/media-requests-list.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Medieforespørgsler",
|
||||
"description": "Se en liste over alle medieforespørgsler fra din Overseerr eller Jellyseerr instans",
|
||||
"settings": {
|
||||
"title": "Liste over medieforespørgsler",
|
||||
"replaceLinksWithExternalHost": {
|
||||
"label": "Udskift links med ekstern vært"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noRequests": "Ingen anmodninger fundet. Kontroller, at du har konfigureret dine apps korrekt.",
|
||||
"pending": "Der er {{countPendingApproval}} anmodninger, der venter på godkendelse.",
|
||||
"nonePending": "Der er i øjeblikket ingen godkendelser, der er under behandling. Du er i mål!",
|
||||
"state": {
|
||||
"approved": "Godkendt",
|
||||
"pendingApproval": "Afventer godkendelse",
|
||||
"declined": "Afvist"
|
||||
},
|
||||
"tooltips": {
|
||||
"approve": "Godkend anmodninger",
|
||||
"decline": "Afvis alle anmodninger"
|
||||
}
|
||||
}
|
||||
14
public/locales/da/modules/media-requests-stats.json
Normal file
14
public/locales/da/modules/media-requests-stats.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Statistik for medieanmodning",
|
||||
"description": "Statistik over dine medieanmodninger",
|
||||
"settings": {
|
||||
"title": "Statistikker over medieanmodninger"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"pending": "Afventer godkendelse",
|
||||
"tvRequests": "TV-anmodninger",
|
||||
"movieRequests": "Film anmodninger"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Ping",
|
||||
"description": "Viser en statusindikator afhængig af HTTP-svarkoden for en given URL."
|
||||
"description": "Viser en statusindikator afhængigt af HTTP-svarkoden for en given URL."
|
||||
},
|
||||
"states": {
|
||||
"online": "Online {{response}}",
|
||||
|
||||
@@ -1,20 +1,30 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "RSS Widget",
|
||||
"description": "Griber elementerne fra et RSS-feed og viser dem. Anvendes normalt til online-nyheder",
|
||||
"description": "",
|
||||
"settings": {
|
||||
"title": "Indstillinger for RSS-widget",
|
||||
"rssFeedUrl": {
|
||||
"label": "RSS-feed url"
|
||||
"label": "RSS-feed URL'er",
|
||||
"description": "URL'erne for de RSS-feeds, du vil vise fra."
|
||||
},
|
||||
"refreshInterval": {
|
||||
"label": "Opdateringsinterval (i minutter)"
|
||||
},
|
||||
"dangerousAllowSanitizedItemContent": {
|
||||
"label": "Farligt: Tillad renset genstands-indhold"
|
||||
},
|
||||
"settings.textLinesClamp": {
|
||||
"label": "Klemme til tekstlinjer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Det er ikke muligt at hente RSS-feed",
|
||||
"text": "Der var et problem med at nå ud til RSS-feedet. Sørg for, at du'har konfigureret feedet korrekt og bruger en gyldig RSS-url, der passer til den officielle standardspecifikation. Når du har opdateret feed'et, skal du muligvis gemme dit dashboard og opdatere siden."
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Det er ikke muligt at hente RSS-feed",
|
||||
"text": "Der var et problem med at hente RSS-feedet. Sørg for, at du har konfigureret RSS-feedet korrekt ved hjælp af en gyldig URL. URL'er skal stemme overens med den officielle specifikation. Når du har opdateret feed'et, skal du muligvis opdatere dashboardet."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
},
|
||||
"displayStaleTorrents": {
|
||||
"label": "Vis torrents uden aktivitet"
|
||||
},
|
||||
"labelFilterIsWhitelist": {
|
||||
"label": "Etiketlisten er en whitelist (i stedet for en blackliste)"
|
||||
},
|
||||
"labelFilter": {
|
||||
"label": "Etiket liste",
|
||||
"description": "Når \"er whitelist\" er markeret, fungerer dette som en whitelist. Hvis det ikke er markeret, er det en blackliste. Gør ikke noget, hvis den er tom"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33,7 +40,8 @@
|
||||
"text": "Administreret af {{appName}}, {{ratio}} ratio"
|
||||
},
|
||||
"body": {
|
||||
"nothingFound": "Ingen torrents fundet"
|
||||
"nothingFound": "Ingen torrents fundet",
|
||||
"filterHidingItems": "{{count}} poster er skjult af dine filtre"
|
||||
}
|
||||
},
|
||||
"lineChart": {
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
"settings": {
|
||||
"title": "Indstillinger for video stream widget",
|
||||
"FeedUrl": {
|
||||
"label": "Feed url"
|
||||
"label": "Feed URL"
|
||||
},
|
||||
"autoPlay": {
|
||||
"label": "Automatisk afspilning"
|
||||
"label": "Auto-afspilning"
|
||||
},
|
||||
"muted": {
|
||||
"label": "Slå lyden fra"
|
||||
|
||||
@@ -5,22 +5,22 @@
|
||||
},
|
||||
"metaTitle": {
|
||||
"label": "Metatitel",
|
||||
"description": "Titlen, der vises som dit fanebladsnavn"
|
||||
"description": "Den titel, der vises i fanen i din browser"
|
||||
},
|
||||
"logo": {
|
||||
"label": "Logo",
|
||||
"description": "Dashboard-logoet øverst til venstre"
|
||||
"description": "Logoet, der vises øverst til venstre"
|
||||
},
|
||||
"favicon": {
|
||||
"label": "Favicon",
|
||||
"description": "Ikonet, der bruges foran dit fanebladsnavn"
|
||||
"description": "Det ikon, der vises i fanen i din browser"
|
||||
},
|
||||
"background": {
|
||||
"label": "Baggrund"
|
||||
},
|
||||
"customCSS": {
|
||||
"label": "Tilpasset CSS",
|
||||
"description": "Tilpas alle elementer på dit dashboard, kun anbefalet til erfarne brugere",
|
||||
"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..."
|
||||
},
|
||||
|
||||
7
public/locales/da/widgets/draggable-list.json
Normal file
7
public/locales/da/widgets/draggable-list.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"noEntries": {
|
||||
"title": "Ingen poster",
|
||||
"text": "Brug knapperne nedenfor til at tilføje flere elementer"
|
||||
},
|
||||
"buttonAdd": "Tilføj"
|
||||
}
|
||||
14
public/locales/da/widgets/error-boundary.json
Normal file
14
public/locales/da/widgets/error-boundary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"card": {
|
||||
"title": "Ups, der opstod en fejl!",
|
||||
"buttons": {
|
||||
"details": "Detaljer",
|
||||
"tryAgain": "Prøv igen"
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "Der er opstået en uventet fejl. Tjek venligst din konfiguration. Rapporter venligst dette problem, hvis du mener, at det er en fejl.",
|
||||
"label": "Din fejl",
|
||||
"reportButton": "Rapportér denne fejl"
|
||||
}
|
||||
}
|
||||
@@ -6,16 +6,21 @@
|
||||
"delete": "Löschen",
|
||||
"ok": "OK",
|
||||
"edit": "Bearbeiten",
|
||||
"enabled": "Aktiviert",
|
||||
"disabled": "Deaktiviert",
|
||||
"enableAll": "Alle aktivieren",
|
||||
"disableAll": "Alles deaktivieren",
|
||||
"version": "Version",
|
||||
"changePosition": "Position wechseln",
|
||||
"remove": "Entfernen",
|
||||
"removeConfirm": "Sind Sie sicher, dass Sie {{item}} entfernen möchten?",
|
||||
"createItem": "+ Erstelle {{item}}",
|
||||
"sections": {
|
||||
"settings": "Einstellungen",
|
||||
"dangerZone": "Gefahrenzone"
|
||||
},
|
||||
"secrets": {
|
||||
"apiKey": "API-Schlüssel",
|
||||
"apiKey": "API Schlüssel",
|
||||
"username": "Benutzername",
|
||||
"password": "Passwort"
|
||||
},
|
||||
|
||||
18
public/locales/de/layout/common.json
Normal file
18
public/locales/de/layout/common.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"modals": {
|
||||
"blockedPopups": {
|
||||
"title": "Popup blockiert",
|
||||
"text": "Ihr Browser hat den Zugriff von Homarr auf seine API blockiert. Dies wird am häufigsten durch AdBlocker oder verweigerte Berechtigungen verursacht. Homarr ist nicht in der Lage, Berechtigungen automatisch anzufordern.",
|
||||
"list": {
|
||||
"browserPermission": "Klicken Sie auf das Symbol neben der URL und prüfen Sie die Berechtigungen. Popups und Fenster zulassen",
|
||||
"adBlockers": "Deaktivieren Sie Werbeblocker und Sicherheitstools in Ihrem Browser",
|
||||
"otherBrowser": "Versuche es mit einem anderen Browser"
|
||||
}
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"category": {
|
||||
"openAllInNewTab": "Alle Lesezeichen öffnen"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
{
|
||||
"description": "Homarr ist ein <strong>schlankes</strong>, <strong>modernes</strong> Dashboard, das alle Ihre Apps und Dienste auf Knopfdruck zur Verfügung stellt. Mittels Homarr können Sie von einem einzigen Ort aus auf alles zugreifen und steuern. Es lässt sich nahtlos in die von Ihnen bevorzugten Apps integrieren und versorgt Sie mit wertvollen Informationen und der vollständige Kontrolle. Die Installation ist ein Kinderspiel, und es werden eine breite Palette von Konfigurations unterstützt.",
|
||||
"description": "Homarr ist ein <strong>schlankes</strong> und <strong>modernes</strong> Dashboard, das alle Ihre Apps und Dienste auf Knopfdruck zur Verfügung stellt. Mittels Homarr können Sie von einem einzigen Ort aus auf alles zugreifen und steuern. Es lässt sich nahtlos in die von Ihnen bevorzugten Apps integrieren und versorgt Sie mit wertvollen Informationen und der vollständige Kontrolle. Die Installation ist ein Kinderspiel, und es werden eine breite Palette von Konfigurations unterstützt.",
|
||||
"contact": "Haben Sie Probleme oder Fragen? Nehmen Sie Kontakt mit uns auf!",
|
||||
"addToDashboard": "Zum Dashboard hinzufügen",
|
||||
"tip": "Mod bezieht sich auf die Modifikator Taste, d. h. Strg und Befehl/Super/Windows-Taste",
|
||||
"key": "Kurzbefehl Taste",
|
||||
"action": "Aktion",
|
||||
"keybinds": "Tastenbelegung",
|
||||
"metrics": {
|
||||
"configurationSchemaVersion": "Version des Konfigurationsschemas",
|
||||
"configurationsCount": "Verfügbare Konfigurationen",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"appearance": {
|
||||
"icon": {
|
||||
"label": "App Symbol",
|
||||
"description": "Wählen Sie ein Symbol, das auf Ihrem Dashboard angezeigt werden soll. Wählen Sie aus {{suggestionsCount}} Icons oder geben Sie Ihre eigene URL ein",
|
||||
"description": "Beginnen Sie zu tippen, um ein Symbol zu finden. Sie können auch eine Bild-URL einfügen, um ein benutzerdefiniertes Symbol zu verwenden.",
|
||||
"autocomplete": {
|
||||
"title": "Die Suche ergab keine Treffer",
|
||||
"text": "Versuchen Sie, einen spezifischeren Suchbegriff zu verwenden. Wenn Sie das gewünschte Symbol nicht finden können, fügen Sie die obige Bild-URL für ein benutzerdefiniertes Symbol ein"
|
||||
|
||||
21
public/locales/de/modules/bookmark.json
Normal file
21
public/locales/de/modules/bookmark.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Lesezeichen",
|
||||
"description": "Zeigt eine statische Liste von Zeichenfolgen oder Links an",
|
||||
"settings": {
|
||||
"title": "Lesezeichen-Einstellungen",
|
||||
"items": {
|
||||
"label": "Elemente"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Ansicht"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"noneFound": {
|
||||
"title": "Lesezeichenliste leer",
|
||||
"text": "Neue Elemente im Bearbeitungsmodus zu dieser Liste hinzufügen"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"unmappedOptions": {
|
||||
"text": "<b>Ungenutzter Parameter in der Konfiguration erkannt</b><br /><code>{{key}}</code>. Homarr ist nicht in der Lage, diesen Parameter zu interpretieren und zu verwenden. Um ein unerwartetes Verhalten zu vermeiden, sichern Sie Ihre Konfiguration und korrigieren Sie diese."
|
||||
"text": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"description": "Zeigt die Graphen einer externen Dash.-Instanz innerhalb von Homarr an.",
|
||||
"settings": {
|
||||
"title": "Einstellungen für Dash. Widget",
|
||||
"dashName": {
|
||||
"label": "Dash. Name"
|
||||
},
|
||||
"url": {
|
||||
"label": "Dash. URL"
|
||||
},
|
||||
@@ -14,23 +17,23 @@
|
||||
"label": "Spalten anzeigen"
|
||||
},
|
||||
"graphHeight": {
|
||||
"label": "Höhe der Graphen"
|
||||
"label": "Höhe des Graphen"
|
||||
},
|
||||
"graphsOrder": {
|
||||
"label": "Graphen (Reihenfolge)",
|
||||
"label": "Reihenfolge der Graphen",
|
||||
"storage": {
|
||||
"label": "Speicher",
|
||||
"enabled": {
|
||||
"label": "Im Widget anzeigen"
|
||||
"label": "In Widget anzeigen"
|
||||
},
|
||||
"span": {
|
||||
"label": "Spaltenbreite"
|
||||
"label": "Länge der Säulen"
|
||||
},
|
||||
"compactView": {
|
||||
"label": "Als Text anzeigen (Kompakt)"
|
||||
"label": "Als Text anzeigen (kompakt)"
|
||||
},
|
||||
"multiView": {
|
||||
"label": "Als Multi-Laufwerk anzeigen"
|
||||
"label": "Als Multi-Laufwerk-Ansicht anzeigen"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
@@ -39,10 +42,10 @@
|
||||
"label": "In Widget anzeigen"
|
||||
},
|
||||
"span": {
|
||||
"label": "Spaltenbreite"
|
||||
"label": "Länge der Säulen"
|
||||
},
|
||||
"compactView": {
|
||||
"label": "Als Text anzeigen (Kompakt)"
|
||||
"label": "Als Text anzeigen (kompakt)"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
@@ -51,10 +54,10 @@
|
||||
"label": "In Widget anzeigen"
|
||||
},
|
||||
"span": {
|
||||
"label": "Spaltenbreite"
|
||||
"label": "Länge der Säulen"
|
||||
},
|
||||
"multiView": {
|
||||
"label": "Als Multi-Core anzeigen"
|
||||
"label": "Als Multi-Core-Ansicht anzeigen"
|
||||
}
|
||||
},
|
||||
"ram": {
|
||||
@@ -63,7 +66,7 @@
|
||||
"label": "In Widget anzeigen"
|
||||
},
|
||||
"span": {
|
||||
"label": "Spaltenbreite"
|
||||
"label": "Länge der Säulen"
|
||||
}
|
||||
},
|
||||
"gpu": {
|
||||
@@ -72,7 +75,7 @@
|
||||
"label": "In Widget anzeigen"
|
||||
},
|
||||
"span": {
|
||||
"label": "Spaltenbreite"
|
||||
"label": "Länge der Säulen"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -85,7 +88,7 @@
|
||||
"noInformation": "Es können keine Informationen vom Dash. abgerufen werden. - Verwenden Sie die neueste Version?",
|
||||
"protocolDowngrade": {
|
||||
"title": "Protokoll-Downgrade erkannt",
|
||||
"text": "Das Protokoll zu Ihrer Dash.-Instanz wird herabgestuft. Dies ist ein Sicherheitsrisiko, da HTTP unverschlüsselt ist und Angreifer diese Verbindung missbrauchen könnten. Stellen Sie sicher, dass Dash. auch auf HTTPS läuft oder downgraden Sie Homarr auf HTTP (wird nicht empfohlen)."
|
||||
"text": "Die Verbindung zu Ihrer Dash.-Instanz erfolgt über HTTP. Dies ist ein Sicherheitsrisiko, da HTTP unverschlüsselt ist und Angreifer diese Verbindung missbrauchen könnten. Stellen Sie sicher, dass Dash. HTTPS verwendet, oder setzen Sie Homarr auf HTTP herab (nicht empfohlen)."
|
||||
}
|
||||
},
|
||||
"graphs": {
|
||||
|
||||
6
public/locales/de/modules/dns-hole-controls.json
Normal file
6
public/locales/de/modules/dns-hole-controls.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS-Hole Steuerung",
|
||||
"description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus"
|
||||
}
|
||||
}
|
||||
20
public/locales/de/modules/dns-hole-summary.json
Normal file
20
public/locales/de/modules/dns-hole-summary.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS-Hole Zusammenfassung",
|
||||
"description": "Zeigt wichtige Daten von PiHole oder AdGuard an",
|
||||
"settings": {
|
||||
"title": "Einstellungen für die DNS-Hole Zusammenfassung",
|
||||
"usePiHoleColors": {
|
||||
"label": "Farben von PiHole verwenden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"metrics": {
|
||||
"domainsOnAdlist": "Domains auf der Adlist",
|
||||
"queriesToday": "Heutige Anfragen",
|
||||
"queriesBlockedTodayPercentage": "heute blockiert",
|
||||
"queriesBlockedToday": "heute blockiert"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
"card": {
|
||||
"errors": {
|
||||
"noUrl": {
|
||||
"title": "Geben Sie eine URL ein",
|
||||
"title": "",
|
||||
"text": "Stellen Sie sicher, dass Sie in der Konfiguration Ihres Widgets eine gültige Adresse eingegeben haben"
|
||||
}
|
||||
}
|
||||
|
||||
24
public/locales/de/modules/media-requests-list.json
Normal file
24
public/locales/de/modules/media-requests-list.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Medienanfragen",
|
||||
"description": "Sehen Sie eine Liste aller Medienanfragen von Ihrer Overseerr- oder Jellyseerr-Instanz",
|
||||
"settings": {
|
||||
"title": "Liste der Medienanfragen",
|
||||
"replaceLinksWithExternalHost": {
|
||||
"label": "Links durch externen Host ersetzen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noRequests": "Keine Anfragen gefunden. Bitte stellen Sie sicher, dass Sie Ihre Anwendungen richtig konfiguriert haben.",
|
||||
"pending": "{{countPendingApproval}} Anfragen warten auf eine Genehmigung.",
|
||||
"nonePending": "Es sind derzeit keine Genehmigungen ausstehend. Sie sind startklar!",
|
||||
"state": {
|
||||
"approved": "Genehmigt",
|
||||
"pendingApproval": "Warten auf Freigabe",
|
||||
"declined": "Abgelehnt"
|
||||
},
|
||||
"tooltips": {
|
||||
"approve": "Anfrage bestätigen",
|
||||
"decline": "Anfrage ablehnen"
|
||||
}
|
||||
}
|
||||
14
public/locales/de/modules/media-requests-stats.json
Normal file
14
public/locales/de/modules/media-requests-stats.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Statistik der Medienanfragen",
|
||||
"description": "Statistiken über Ihre Medienanfragen",
|
||||
"settings": {
|
||||
"title": "Statistik der Medienanfragen"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"pending": "Ausstehende Freigaben",
|
||||
"tvRequests": "TV-Anfragen",
|
||||
"movieRequests": "Filmanfragen"
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,30 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "RSS-Widget",
|
||||
"description": "Nimmt die Einträge aus einem RSS-Feed und zeigt sie an. Wird üblicherweise für Online-Nachrichten verwendet",
|
||||
"description": "",
|
||||
"settings": {
|
||||
"title": "Einstellungen für das RSS-Widget",
|
||||
"rssFeedUrl": {
|
||||
"label": "RSS-Feed URL"
|
||||
"label": "RSS-Feed URL",
|
||||
"description": "Die URLs der RSS Feeds, die angezeigt werden sollen."
|
||||
},
|
||||
"refreshInterval": {
|
||||
"label": "Aktualisierungsintervall (in Minuten)"
|
||||
},
|
||||
"dangerousAllowSanitizedItemContent": {
|
||||
"label": "Vorsicht: Bereinigte Artikelinhalte zulassen"
|
||||
},
|
||||
"settings.textLinesClamp": {
|
||||
"label": "Textzeilen Klammer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "RSS-Feed konnte nicht abgerufen werden",
|
||||
"text": "Es gab ein Problem beim Erreichen des RSS-Feeds. Vergewissern Sie sich, dass Sie den Feed richtig konfiguriert haben und eine gültige RSS-URL verwenden, die der offiziellen Standardspezifikation entspricht. Nachdem Sie den Feed aktualisiert haben, müssen Sie möglicherweise Ihr Dashboard speichern und die Seite aktualisieren."
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "RSS Feed konnte nicht abgerufen werden",
|
||||
"text": "Es ist ein Fehler beim Erreichen des RSS Feeds passiert. Stelle sicher, dass die eingetragene URL des RSS Feeds richtig ist. URLs sollten den offiziellen Spezifikationen entsprechen. Nach einem Update des Feeds muss möglicherweise die Dashboard-Seite aktualisiert werden."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
},
|
||||
"displayStaleTorrents": {
|
||||
"label": "Angehaltene Torrents anzeigen"
|
||||
},
|
||||
"labelFilterIsWhitelist": {
|
||||
"label": "Labelliste ist eine Whitelist (statt einer Blacklist)"
|
||||
},
|
||||
"labelFilter": {
|
||||
"label": "Labelliste",
|
||||
"description": "Wenn \"ist Whitelist\" ausgewählt ist, handel es sich um eine Whitelist. Ist \"ist Whitelist\" nicht ausgewählt, handelt es sich um eine Blacklist. Wenn die Auswahl leer ist, wird nicht passieren"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33,7 +40,8 @@
|
||||
"text": "Verwaltet von {{appName}}, {{ratio}} ratio"
|
||||
},
|
||||
"body": {
|
||||
"nothingFound": "Keine Torrents gefunden"
|
||||
"nothingFound": "Keine Torrents gefunden",
|
||||
"filterHidingItems": "{{count}} Einträge sind durch Filter ausgeblendet"
|
||||
}
|
||||
},
|
||||
"lineChart": {
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
"settings": {
|
||||
"title": "Einstellungen für das Video Stream Widget",
|
||||
"FeedUrl": {
|
||||
"label": "Feed URL"
|
||||
"label": "Feed-URL"
|
||||
},
|
||||
"autoPlay": {
|
||||
"label": "Automatisch abspielen"
|
||||
"label": "Automatische Wiedergabe"
|
||||
},
|
||||
"muted": {
|
||||
"label": "Audio stummschalten"
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
"description": "Titel, Logo und PWA anpassen"
|
||||
},
|
||||
"appereance": {
|
||||
"name": "Erscheinungsbild",
|
||||
"description": "Anpassen des Hintergrunds, der Farben und des Erscheinungsbilds der Anwendung"
|
||||
"name": "Aussehen",
|
||||
"description": "Anpassen des Hintergrunds, der Farben und des Erscheinungsbilds"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,22 +5,22 @@
|
||||
},
|
||||
"metaTitle": {
|
||||
"label": "Meta Titel",
|
||||
"description": "Der Titel, der als Tab-Name angezeigt wird"
|
||||
"description": "Der in der Registerkarte Ihres Browsers angezeigte Titel"
|
||||
},
|
||||
"logo": {
|
||||
"label": "Logo",
|
||||
"description": "Der Logo des Dashboards oben links"
|
||||
"description": "Das oben links angezeigte Logo"
|
||||
},
|
||||
"favicon": {
|
||||
"label": "Favicon",
|
||||
"description": "Das Symbol, das vor dem Namen Ihres Tabs verwendet wird"
|
||||
"description": "Der in der Registerkarte Ihres Browsers angezeigte Symbol"
|
||||
},
|
||||
"background": {
|
||||
"label": "Hintergrund"
|
||||
},
|
||||
"customCSS": {
|
||||
"label": "Benutzerdefiniertes CSS",
|
||||
"description": "Anpassen aller Elemente auf Ihrem Dashboard, nur für erfahrene Benutzer empfohlen",
|
||||
"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..."
|
||||
},
|
||||
|
||||
7
public/locales/de/widgets/draggable-list.json
Normal file
7
public/locales/de/widgets/draggable-list.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"noEntries": {
|
||||
"title": "Keine Einträge",
|
||||
"text": "Verwenden Sie die Schaltflächen unten, um weitere Einträge hinzuzufügen"
|
||||
},
|
||||
"buttonAdd": "Hinzufügen"
|
||||
}
|
||||
14
public/locales/de/widgets/error-boundary.json
Normal file
14
public/locales/de/widgets/error-boundary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"card": {
|
||||
"title": "Ups, ein Fehler ist aufgetreten!",
|
||||
"buttons": {
|
||||
"details": "Details",
|
||||
"tryAgain": "Erneut versuchen"
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "Es ist ein unerwarteter Fehler aufgetreten. Bitte überprüfen Sie Ihre Konfiguration. Bitte melden Sie dieses Problem, wenn Sie glauben, dass es sich um einen Fehler handelt.",
|
||||
"label": "Dein Fehler",
|
||||
"reportButton": "Fehler melden"
|
||||
}
|
||||
}
|
||||
@@ -6,16 +6,21 @@
|
||||
"delete": "Διαγραφή",
|
||||
"ok": "ΟΚ",
|
||||
"edit": "Επεξεργασία",
|
||||
"enabled": "Ενεργοποιημένο",
|
||||
"disabled": "Απενεργοποιημένο",
|
||||
"enableAll": "Ενεργοποίηση όλων",
|
||||
"disableAll": "Απενεργοποίηση όλων",
|
||||
"version": "Έκδοση",
|
||||
"changePosition": "Αλλαγή θέσης",
|
||||
"remove": "Αφαίρεση",
|
||||
"removeConfirm": "Είστε σίγουροι ότι θέλετε να καταργήσετε το {{item}} ;",
|
||||
"removeConfirm": "Είστε σίγουροι ότι θέλετε να καταργήσετε το {{item}};",
|
||||
"createItem": "+ δημιουργήστε {{item}}",
|
||||
"sections": {
|
||||
"settings": "Ρυθμίσεις",
|
||||
"dangerZone": "Επικίνδυνη Περιοχή"
|
||||
},
|
||||
"secrets": {
|
||||
"apiKey": "Κλειδί Api",
|
||||
"apiKey": "Κλειδί API",
|
||||
"username": "Όνομα Χρήστη",
|
||||
"password": "Κωδικός"
|
||||
},
|
||||
|
||||
18
public/locales/el/layout/common.json
Normal file
18
public/locales/el/layout/common.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"modals": {
|
||||
"blockedPopups": {
|
||||
"title": "Αποκλεισμένα αναδυόμενα παράθυρα",
|
||||
"text": "Ο περιηγητής σας έχει αποκλείσει το Homarr από την πρόσβαση στο API του. Αυτό συνήθως προκαλείται από AdBlockers ή δεν άρνηση δικαιωμάτων. Το Homarr δεν είναι σε θέση να ζητήσει δικαιώματα αυτόματα.",
|
||||
"list": {
|
||||
"browserPermission": "Κάντε κλικ στο εικονίδιο δίπλα από τη διεύθυνση URL και ελέγξτε τα δικαιώματα. Να επιτρέπονται αναδυόμενα παράθυρα",
|
||||
"adBlockers": "Απενεργοποιήστε τα AdBlockers και τα εργαλεία ασφαλείας από τον περιηγητή σας",
|
||||
"otherBrowser": "Δοκιμάστε διαφορετικό περιηγητή"
|
||||
}
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"category": {
|
||||
"openAllInNewTab": "Άνοιγμα όλων σε νέα καρτέλα"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,13 +2,17 @@
|
||||
"description": "Το Homarr είναι ένα <strong>κομψό</strong>, <strong>μοντέρνο</strong> ταμπλό που βάζει όλες τις εφαρμογές και τις υπηρεσίες σας στα χέρια σας. Με το Homarr, μπορείτε να έχετε πρόσβαση και να ελέγχετε τα πάντα σε μια βολική τοποθεσία. Το Homarr ενσωματώνεται απρόσκοπτα με τις εφαρμογές που έχετε προσθέσει, παρέχοντάς σας πολύτιμες πληροφορίες και δίνοντάς σας πλήρη έλεγχο. Η εγκατάσταση είναι πανεύκολη και το Homarr υποστηρίζει ένα ευρύ φάσμα μεθόδων ανάπτυξης.",
|
||||
"contact": "Έχετε προβλήματα ή ερωτήσεις; Συνδεθείτε μαζί μας!",
|
||||
"addToDashboard": "Προσθήκη στο ταμπλό",
|
||||
"tip": "Το Mod αναφέρεται στο πλήκτρο τροποποίησης, είναι τα πλήκτρα Ctrl και Command/Super/Windows",
|
||||
"key": "Πλήκτρο συντόμευσης",
|
||||
"action": "Ενέργεια",
|
||||
"keybinds": "Δεσμοί πλήκτρων",
|
||||
"metrics": {
|
||||
"configurationSchemaVersion": "",
|
||||
"configurationsCount": "",
|
||||
"configurationSchemaVersion": "Έκδοση σχήματος διαμόρφωσης",
|
||||
"configurationsCount": "Διαθέσιμες διαμορφώσεις",
|
||||
"version": "Έκδοση",
|
||||
"nodeEnvironment": "",
|
||||
"i18n": "",
|
||||
"locales": "",
|
||||
"experimental_disableEditMode": ""
|
||||
"nodeEnvironment": "Περιβάλλον κόμβου",
|
||||
"i18n": "Φορτωμένα πεδία ονομάτων μετάφρασης I18n",
|
||||
"locales": "Διαμορφωμένες τοπικές ρυθμίσεις I18n",
|
||||
"experimental_disableEditMode": "<b>ΠΕΙΡΑΜΑΤΙΚΟ</b>: Απενεργοποίηση της λειτουργίας επεξεργασίας"
|
||||
}
|
||||
}
|
||||
@@ -39,14 +39,14 @@
|
||||
"appearance": {
|
||||
"icon": {
|
||||
"label": "Εικονίδιο εφαρμογής",
|
||||
"description": "",
|
||||
"description": "Αρχίστε να πληκτρολογείτε για να βρείτε ένα εικονίδιο. Μπορείτε επίσης να επικολλήσετε μια διεύθυνση URL εικόνας για να χρησιμοποιήσετε ένα προσαρμοσμένο εικονίδιο.",
|
||||
"autocomplete": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
"title": "Δεν βρέθηκαν αποτελέσματα",
|
||||
"text": "Προσπαθήστε να χρησιμοποιήσετε έναν πιο συγκεκριμένο όρο αναζήτησης. Αν δεν μπορείτε να βρείτε το εικονίδιο που επιθυμείτε, επικολλήστε την παραπάνω διεύθυνση URL εικόνας για ένα προσαρμοσμένο εικονίδιο"
|
||||
},
|
||||
"noItems": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
"title": "Φόρτωση εξωτερικών εικονιδίων",
|
||||
"text": "Αυτό μπορεί να διαρκέσει μερικά δευτερόλεπτα"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
21
public/locales/el/modules/bookmark.json
Normal file
21
public/locales/el/modules/bookmark.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Σελιδοδείκτης",
|
||||
"description": "Εμφανίζει μια στατική λίστα κειμένων ή συνδέσμων",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις σελιδοδεικτών",
|
||||
"items": {
|
||||
"label": "Στοιχεία"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Διάταξη"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"noneFound": {
|
||||
"title": "Λίστα σελιδοδεικτών κενή",
|
||||
"text": "Προσθέστε νέα αντικείμενα σε αυτή τη λίστα στη λειτουργία επεξεργασίας"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις για το widget ημερολογίου",
|
||||
"useSonarrv4": {
|
||||
"label": ""
|
||||
"label": "Χρήση του API Sonarr v4"
|
||||
},
|
||||
"sundayStart": {
|
||||
"label": "Ξεκινήστε την εβδομάδα από την Κυριακή"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"unmappedOptions": {
|
||||
"text": "<b>Εντοπίστηκε αχρησιμοποίητη παράμετρος στη διαμόρφωση</b><br /><code>{{key}}</code>. Το Homarr δεν μπορεί να ερμηνεύσει και να χρησιμοποιήσει αυτή την παράμετρο. Για να αποφύγετε οποιαδήποτε απροσδόκητη συμπεριφορά, δημιουργήστε αντίγραφα ασφαλείας των ρυθμίσεων σας και διορθώστε τις ρυθμίσεις σας."
|
||||
"text": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,78 +1,81 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Dash.",
|
||||
"description": "Εμφανίζει τα γραφήματα μιας εξωτερικής Dash. μέσα στο Homarr.",
|
||||
"description": "Εμφανίζει τα γραφήματα ενός εξωτερικού Dash. Instance μέσα στο Homarr.",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις για το widget Dash",
|
||||
"dashName": {
|
||||
"label": "Όνομα Dash"
|
||||
},
|
||||
"url": {
|
||||
"label": "Dash. URL"
|
||||
},
|
||||
"usePercentages": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση ποσοστών"
|
||||
},
|
||||
"columns": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στηλών"
|
||||
},
|
||||
"graphHeight": {
|
||||
"label": ""
|
||||
"label": "Ύψος γραφημάτων"
|
||||
},
|
||||
"graphsOrder": {
|
||||
"label": "",
|
||||
"label": "Γραφήματα (σειρά)",
|
||||
"storage": {
|
||||
"label": "Αποθηκευτικός χώρος",
|
||||
"enabled": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στο widget"
|
||||
},
|
||||
"span": {
|
||||
"label": ""
|
||||
"label": "Εύρος στήλης"
|
||||
},
|
||||
"compactView": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση ως κείμενο (συμπαγές)"
|
||||
},
|
||||
"multiView": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση ως multi-drive-view"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"label": "Δίκτυο",
|
||||
"enabled": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στο widget"
|
||||
},
|
||||
"span": {
|
||||
"label": ""
|
||||
"label": "Εύρος στήλης"
|
||||
},
|
||||
"compactView": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση ως κείμενο (συμπαγές)"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU",
|
||||
"enabled": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στο widget"
|
||||
},
|
||||
"span": {
|
||||
"label": ""
|
||||
"label": "Εύρος στήλης"
|
||||
},
|
||||
"multiView": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση ως προβολή πολλαπλών πυρήνων"
|
||||
}
|
||||
},
|
||||
"ram": {
|
||||
"label": "",
|
||||
"label": "RAM",
|
||||
"enabled": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στο widget"
|
||||
},
|
||||
"span": {
|
||||
"label": ""
|
||||
"label": "Εύρος στήλης"
|
||||
}
|
||||
},
|
||||
"gpu": {
|
||||
"label": "GPU",
|
||||
"enabled": {
|
||||
"label": ""
|
||||
"label": "Εμφάνιση στο widget"
|
||||
},
|
||||
"span": {
|
||||
"label": ""
|
||||
"label": "Εύρος στήλης"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,8 +87,8 @@
|
||||
"noService": "Δεν βρέθηκε υπηρεσία Dash. Παρακαλούμε προσθέστε μία στο ταμπλό Homarr ή ορίστε μια Dash. URL στις επιλογές της ενότητας",
|
||||
"noInformation": "Δεν μπορεί να αποκτήσει πληροφορίες από το dash. - τρέχετε την τελευταία έκδοση;",
|
||||
"protocolDowngrade": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
"title": "Εντοπισμένη υποβάθμιση πρωτοκόλλου",
|
||||
"text": "Η σύνδεση με την εμφάνισή σας Dash. χρησιμοποιεί HTTP. Αυτό αποτελεί κίνδυνο για την ασφάλεια, επειδή το HTTP δεν είναι κρυπτογραφημένο και οι επιτιθέμενοι θα μπορούσαν να κάνουν κατάχρηση αυτής της σύνδεσης. Βεβαιωθείτε ότι το Dash. χρησιμοποιεί HTTPS ή υποβαθμίστε το Homarr σε HTTP (δεν συνιστάται)."
|
||||
}
|
||||
},
|
||||
"graphs": {
|
||||
@@ -105,7 +108,7 @@
|
||||
"title": "CPU"
|
||||
},
|
||||
"ram": {
|
||||
"title": "Μνήμη RAM"
|
||||
"title": "RAM"
|
||||
},
|
||||
"gpu": {
|
||||
"title": "GPU"
|
||||
|
||||
6
public/locales/el/modules/dns-hole-controls.json
Normal file
6
public/locales/el/modules/dns-hole-controls.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Στοιχεία ελέγχου DNS hole",
|
||||
"description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας"
|
||||
}
|
||||
}
|
||||
20
public/locales/el/modules/dns-hole-summary.json
Normal file
20
public/locales/el/modules/dns-hole-summary.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Περίληψη DNS hole",
|
||||
"description": "Εμφανίζει σημαντικά δεδομένα από το PiHole ή το AdGuard",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις για την περίληψη του DNS hole",
|
||||
"usePiHoleColors": {
|
||||
"label": "Χρήση χρωμάτων από το PiHole"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"metrics": {
|
||||
"domainsOnAdlist": "Domains σε λίστες διαφημίσεων",
|
||||
"queriesToday": "Σημερινά queries",
|
||||
"queriesBlockedTodayPercentage": "σημερινοί αποκλεισμοί",
|
||||
"queriesBlockedToday": "σημερινοί αποκλεισμοί"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "iframe",
|
||||
"description": "Ενσωματώστε οποιοδήποτε περιεχόμενο από το διαδίκτυο. Ορισμένοι ιστότοποι ενδέχεται να περιορίζουν την πρόσβαση.",
|
||||
"settings": {
|
||||
"title": "",
|
||||
"title": "ρυθμίσεις iFrame",
|
||||
"embedUrl": {
|
||||
"label": ""
|
||||
"label": "URL ενσωμάτωσης"
|
||||
},
|
||||
"allowFullScreen": {
|
||||
"label": ""
|
||||
"label": "Επιτρέψτε την πλήρη οθόνη"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -16,7 +16,7 @@
|
||||
"errors": {
|
||||
"noUrl": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
"text": "Βεβαιωθείτε ότι έχετε εισάγει μια έγκυρη διεύθυνση στη διαμόρφωση του widget σας"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
24
public/locales/el/modules/media-requests-list.json
Normal file
24
public/locales/el/modules/media-requests-list.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Αιτήματα μέσων ενημέρωσης",
|
||||
"description": "Δείτε μια λίστα με όλα τα αιτήματα μέσων ενημέρωσης από την περίπτωση Overseerr ή Jellyseerr",
|
||||
"settings": {
|
||||
"title": "Κατάλογος αιτημάτων των μέσων ενημέρωσης",
|
||||
"replaceLinksWithExternalHost": {
|
||||
"label": "Αντικατάσταση συνδέσμων με εξωτερικό διακομιστή"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noRequests": "Δεν βρέθηκαν αιτήσεις. Βεβαιωθείτε ότι έχετε ρυθμίσει σωστά τις εφαρμογές σας.",
|
||||
"pending": "Υπάρχουν αιτήσεις {{countPendingApproval}} που περιμένουν έγκριση.",
|
||||
"nonePending": "Επί του παρόντος δεν εκκρεμούν εγκρίσεις. Είστε έτοιμοι να ξεκινήσετε!",
|
||||
"state": {
|
||||
"approved": "Εγκρίθηκε",
|
||||
"pendingApproval": "Αναμένεται έγκριση",
|
||||
"declined": "Απορρίφθηκε"
|
||||
},
|
||||
"tooltips": {
|
||||
"approve": "Έγκριση αιτημάτων",
|
||||
"decline": "Απόρριψη αιτημάτων"
|
||||
}
|
||||
}
|
||||
14
public/locales/el/modules/media-requests-stats.json
Normal file
14
public/locales/el/modules/media-requests-stats.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Στατιστικά στοιχεία αιτήματος των μέσων ενημέρωσης",
|
||||
"description": "Στατιστικά στοιχεία σχετικά με τα αιτήματά σας για τα μέσα ενημέρωσης",
|
||||
"settings": {
|
||||
"title": "Στατιστικά στοιχεία αιτημάτων μέσων ενημέρωσης"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"pending": "Εκκρεμείς εγκρίσεις",
|
||||
"tvRequests": "Τηλεοπτικά αιτήματα",
|
||||
"movieRequests": "Αιτήματα ταινιών"
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "Διακομιστής πολυμέσων",
|
||||
"description": "Αλληλεπίδραση με τον διακομιστή πολυμέσων Jellyfin ή Plex",
|
||||
"settings": {
|
||||
"title": ""
|
||||
"title": "Ρυθμίσεις για το widget του διακομιστή πολυμέσων"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"table": {
|
||||
"header": {
|
||||
"session": "",
|
||||
"user": "",
|
||||
"currentlyPlaying": ""
|
||||
"session": "Συνεδρία",
|
||||
"user": "Χρήστης",
|
||||
"currentlyPlaying": "Παίζει Τώρα"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
"title": "Αδυναμία φόρτωσης περιεχομένου",
|
||||
"text": "Αδυναμία ανάκτησης πληροφοριών από το διακομιστή. Ελέγξτε τα αρχεία καταγραφής για περισσότερες λεπτομέρειες"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,30 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "",
|
||||
"name": "RSS Widget",
|
||||
"description": "",
|
||||
"settings": {
|
||||
"title": "",
|
||||
"title": "Ρυθμίσεις για το widget RSS",
|
||||
"rssFeedUrl": {
|
||||
"label": ""
|
||||
"label": "URLs τροφοδοσίας RSS",
|
||||
"description": "Οι διευθύνσεις URL των RSS feeds που θέλετε να εμφανίσετε."
|
||||
},
|
||||
"refreshInterval": {
|
||||
"label": "Διάστημα ανανέωσης (σε λεπτά)"
|
||||
},
|
||||
"dangerousAllowSanitizedItemContent": {
|
||||
"label": "Επικίνδυνο: Επιτρέψτε φιλτραρισμένο περιεχόμενο αντικειμένων"
|
||||
},
|
||||
"settings.textLinesClamp": {
|
||||
"label": "Περιορισμός γραμμών κειμένου"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Αδυναμία ανάκτησης RSS feed",
|
||||
"text": "Υπήρξε ένα πρόβλημα με την πρόσβαση στην τροφοδοσία RSS. Βεβαιωθείτε ότι έχετε ρυθμίσει σωστά την τροφοδοσία RSS χρησιμοποιώντας μια έγκυρη διεύθυνση URL. Οι διευθύνσεις URL πρέπει να συμφωνούν με τις επίσημες προδιαγραφές. Μετά την ενημέρωση της τροφοδοσίας, ενδέχεται να χρειαστεί να ανανεώσετε το ταμπλό."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
},
|
||||
"displayStaleTorrents": {
|
||||
"label": "Εμφάνιση stale torrents"
|
||||
},
|
||||
"labelFilterIsWhitelist": {
|
||||
"label": "Η λίστα ετικετών είναι επιτρεπόμενη λίστα (αντί για αποκλεισμένη λίστα)"
|
||||
},
|
||||
"labelFilter": {
|
||||
"label": "Λίστα ετικετών",
|
||||
"description": "Όταν είναι επιλεγμένο το 'is whitelist', τότε θα συμπεριφερθεί σαν επιτρεπόμενη λίστα. Εάν δεν είναι επιλεγμένο, τότε είναι αποκλεισμένη λίστα. Εάν είναι άδειο δε θα κάνει τίποτα"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33,7 +40,8 @@
|
||||
"text": "Διαχειρίζεται από {{appName}}, {{ratio}} αναλογία"
|
||||
},
|
||||
"body": {
|
||||
"nothingFound": "Δεν βρέθηκαν torrents"
|
||||
"nothingFound": "Δεν βρέθηκαν torrents",
|
||||
"filterHidingItems": "{{count}} καταχωρήσεις αποκρύπτονται από τα φίλτρα σας"
|
||||
}
|
||||
},
|
||||
"lineChart": {
|
||||
@@ -50,7 +58,7 @@
|
||||
"text": "Προσθέστε έναν υποστηριζόμενης εφαρμογής Torrent για να δείτε τις τρέχουσες λήψεις σας"
|
||||
},
|
||||
"generic": {
|
||||
"title": "Παρουσιάστηκε ένα απροσδόκητο σφάλμα",
|
||||
"title": "Προέκυψε ένα απρόσμενο σφάλμα",
|
||||
"text": "Το Homarr δεν μπόρεσε να επικοινωνήσει με τις εφαρμογές Torrent. Ελέγξτε τις ρυθμίσεις σας"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "Ροή Βίντεο",
|
||||
"description": "Ενσωματώστε μια ροή βίντεο ή βίντεο από μια κάμερα ή έναν ιστότοπο",
|
||||
"settings": {
|
||||
"title": "",
|
||||
"title": "Ρυθμίσεις για widget ροής βίντεο",
|
||||
"FeedUrl": {
|
||||
"label": ""
|
||||
"label": "URL τροφοδοσίας"
|
||||
},
|
||||
"autoPlay": {
|
||||
"label": ""
|
||||
"label": "Αυτόματη αναπαραγωγή"
|
||||
},
|
||||
"muted": {
|
||||
"label": ""
|
||||
"label": "Ήχος σε σίγαση"
|
||||
},
|
||||
"controls": {
|
||||
"label": ""
|
||||
"label": "Έλεγχοι αναπαραγωγής βίντεο"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"invalidStream": ""
|
||||
"invalidStream": "Μη έγκυρη ροή"
|
||||
}
|
||||
}
|
||||
@@ -10,19 +10,19 @@
|
||||
},
|
||||
"credits": {
|
||||
"madeWithLove": "Φτιαγμένο με ❤️ από @",
|
||||
"thirdPartyContent": "",
|
||||
"thirdPartyContent": "Δείτε το περιεχόμενο τρίτων",
|
||||
"thirdPartyContentTable": {
|
||||
"dependencyName": "",
|
||||
"dependencyName": "Εξάρτηση",
|
||||
"dependencyVersion": "Έκδοση"
|
||||
}
|
||||
},
|
||||
"grow": "Πλέγμα ανάπτυξης (παίρνει όλο το χώρο)",
|
||||
"layout": {
|
||||
"preview": {
|
||||
"title": "",
|
||||
"subtitle": ""
|
||||
"title": "Προεπισκόπηση",
|
||||
"subtitle": "Οι αλλαγές θα αποθηκευτούν αυτόματα"
|
||||
},
|
||||
"divider": "",
|
||||
"divider": "Επιλογές διάταξης",
|
||||
"main": "Κύριο",
|
||||
"sidebar": "Πλαϊνή μπάρα",
|
||||
"cannotturnoff": "Δεν μπορεί να απενεργοποιηθεί",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"colors": "Χρώματα",
|
||||
"suffix": "{{color}} χρώμα"
|
||||
}
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"text": "",
|
||||
"text": "Οι προσαρμογές σας επιτρέπουν να διαμορφώσετε και να προσαρμόσετε την εμπειρία σας με το Homarr στις προτιμήσεις σας.",
|
||||
"accordeon": {
|
||||
"layout": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Διάταξη",
|
||||
"description": "Ενεργοποίηση και απενεργοποίηση στοιχείων στην κεφαλίδα και στα πλακίδια του ταμπλό σας"
|
||||
},
|
||||
"gridstack": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Gridstack",
|
||||
"description": "Προσαρμόστε τη συμπεριφορά και τις στήλες της περιοχής του ταμπλό σας"
|
||||
},
|
||||
"pageMetadata": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Μεταδεδομένα σελίδας",
|
||||
"description": "Προσαρμόστε τίτλους, λογότυπο και PWA"
|
||||
},
|
||||
"appereance": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Εμφάνιση",
|
||||
"description": "Προσαρμόστε το φόντο, τα χρώματα και την εμφάνιση των εφαρμογών"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"columnsCount": {
|
||||
"labelPreset": "",
|
||||
"descriptionPreset": "",
|
||||
"descriptionExceedsPreset": ""
|
||||
"labelPreset": "Στήλες σε μέγεθος {{size}}",
|
||||
"descriptionPreset": "Αριθμός στηλών όταν το πλάτος της οθόνης είναι μικρότερο από {{pixels}} pixels",
|
||||
"descriptionExceedsPreset": "Αριθμός στηλών όταν το μέγεθος της οθόνης υπερβαίνει τα {{pixels}} pixels"
|
||||
},
|
||||
"unsavedChanges": "",
|
||||
"applyChanges": "",
|
||||
"defaultValues": ""
|
||||
"unsavedChanges": "Έχετε μη αποθηκευμένες αλλαγές. Κάντε κλικ στο κουμπί Εφαρμογή αλλαγών παρακάτω για να τις εφαρμόσετε και να τις αποθηκεύσετε.",
|
||||
"applyChanges": "Εφαρμογή αλλαγών",
|
||||
"defaultValues": "Προεπιλεγμένες τιμές"
|
||||
}
|
||||
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"pageTitle": {
|
||||
"label": "Τίτλος Σελίδας",
|
||||
"description": ""
|
||||
"description": "Ο τίτλος του ταμπλό στο επάνω αριστερό μέρος"
|
||||
},
|
||||
"metaTitle": {
|
||||
"label": "Meta Τίτλος",
|
||||
"description": ""
|
||||
"description": "Ο τίτλος που εμφανίζεται στην καρτέλα του προγράμματος περιήγησης"
|
||||
},
|
||||
"logo": {
|
||||
"label": "Λογότυπο",
|
||||
"description": ""
|
||||
"description": "Το λογότυπο που εμφανίζεται πάνω αριστερά"
|
||||
},
|
||||
"favicon": {
|
||||
"label": "Έμβλημα",
|
||||
"description": ""
|
||||
"description": "Το εικονίδιο που εμφανίζεται στην καρτέλα του προγράμματος περιήγησης"
|
||||
},
|
||||
"background": {
|
||||
"label": "Φόντο"
|
||||
},
|
||||
"customCSS": {
|
||||
"label": "Προσαρμοσμένη CSS",
|
||||
"description": "",
|
||||
"description": "Περαιτέρω, προσαρμόστε τον πίνακα ελέγχου σας χρησιμοποιώντας CSS, συνιστάται μόνο για έμπειρους χρήστες",
|
||||
"placeholder": "Το προσαρμοσμένο CSS θα εφαρμοστεί τελευταίο",
|
||||
"applying": ""
|
||||
"applying": "Εφαρμογή CSS..."
|
||||
},
|
||||
"buttons": {
|
||||
"submit": "Υποβολή"
|
||||
|
||||
7
public/locales/el/widgets/draggable-list.json
Normal file
7
public/locales/el/widgets/draggable-list.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"noEntries": {
|
||||
"title": "Καμία εγγραφή",
|
||||
"text": "Χρησιμοποιήστε τα παρακάτω κουμπιά για να προσθέσετε περισσότερες εγγραφές"
|
||||
},
|
||||
"buttonAdd": "Προσθήκη"
|
||||
}
|
||||
14
public/locales/el/widgets/error-boundary.json
Normal file
14
public/locales/el/widgets/error-boundary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"card": {
|
||||
"title": "Ουπς, έγινε λάθος!",
|
||||
"buttons": {
|
||||
"details": "Λεπτομέρειες",
|
||||
"tryAgain": "Προσπαθήστε ξανά"
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "Εμφανίστηκε ένα απροσδόκητο σφάλμα. Ελέγξτε τις ρυθμίσεις σας. Παρακαλούμε αναφέρετε αυτό το θέμα, αν πιστεύετε ότι πρόκειται για bug.",
|
||||
"label": "Το σφάλμα σας",
|
||||
"reportButton": "Αναφέρετε αυτό το σφάλμα"
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,15 @@
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"edit": "Edit",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"enableAll": "Enable all",
|
||||
"disableAll": "Disable all",
|
||||
"version": "Version",
|
||||
"changePosition": "Change position",
|
||||
"remove": "Remove",
|
||||
"removeConfirm": "Are you sure that you want to remove {{item}}?",
|
||||
"createItem": "+ create {{item}}",
|
||||
"sections": {
|
||||
"settings": "Settings",
|
||||
"dangerZone": "Danger zone"
|
||||
|
||||
18
public/locales/en/layout/common.json
Normal file
18
public/locales/en/layout/common.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"modals": {
|
||||
"blockedPopups": {
|
||||
"title": "Popups blocked",
|
||||
"text": "Your browser has blocked Homarr from accessing it's API. This is most commonly caused by AdBlockers or denied permissions. Homarr is unable to request permissions automatically.",
|
||||
"list": {
|
||||
"browserPermission": "Click on the icon besides the URL and check the permisions. Allow Popups and windows",
|
||||
"adBlockers": "Disable ad blockers and security tools from your browser",
|
||||
"otherBrowser": "Try a different browser"
|
||||
}
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"category": {
|
||||
"openAllInNewTab": "Open all in new tab"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,10 @@
|
||||
"description": "Homarr is a <strong>sleek</strong>, <strong>modern</strong> dashboard that puts all of your apps and services at your fingertips. With Homarr, you can access and control everything in one convenient location. Homarr seamlessly integrates with the apps you've added, providing you with valuable information and giving you complete control. Installation is a breeze, and Homarr supports a wide range of deployment methods.",
|
||||
"contact": "Having trouble or questions? Connect with us!",
|
||||
"addToDashboard": "Add to Dashboard",
|
||||
"tip": "Mod refers to your modifier key, it is Ctrl and Command/Super/Windows key",
|
||||
"key": "Shortcut key",
|
||||
"action": "Action",
|
||||
"keybinds": "Keybinds",
|
||||
"metrics": {
|
||||
"configurationSchemaVersion": "Configuration schema version",
|
||||
"configurationsCount": "Available configurations",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"appearance": {
|
||||
"icon": {
|
||||
"label": "App Icon",
|
||||
"description": "Choose a an icon to be displayed on your dashboard. Choose from {{suggestionsCount}} icons or enter your own URL",
|
||||
"description": "Start typing to find an icon. You can also paste an image URL to use a custom icon.",
|
||||
"autocomplete": {
|
||||
"title": "No results found",
|
||||
"text": "Try to use a more specific search term. If you can't find your desired icon, paste the image URL above for a custom icon"
|
||||
|
||||
21
public/locales/en/modules/bookmark.json
Normal file
21
public/locales/en/modules/bookmark.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Bookmark",
|
||||
"description": "Displays a static list of strings or links",
|
||||
"settings": {
|
||||
"title": "Bookmark settings",
|
||||
"items": {
|
||||
"label": "Items"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Layout"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"noneFound": {
|
||||
"title": "Bookmark list empty",
|
||||
"text": "Add new items to this list in the edit mode"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"unmappedOptions": {
|
||||
"text": "<b>Unused parameter in configuration detected</b><br /><code>{{key}}</code>. Homarr is unable to interpret and use this parameter. To avoid any unexpected behavior, back up your configuration and correct your configuration."
|
||||
"text": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"description": "Displays the graphs of an external Dash. Instance inside Homarr.",
|
||||
"settings": {
|
||||
"title": "Settings for Dash. widget",
|
||||
"dashName": {
|
||||
"label": "Dash. Name"
|
||||
},
|
||||
"url": {
|
||||
"label": "Dash. URL"
|
||||
},
|
||||
|
||||
6
public/locales/en/modules/dns-hole-controls.json
Normal file
6
public/locales/en/modules/dns-hole-controls.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole controls",
|
||||
"description": "Control PiHole or AdGuard from your dashboard"
|
||||
}
|
||||
}
|
||||
20
public/locales/en/modules/dns-hole-summary.json
Normal file
20
public/locales/en/modules/dns-hole-summary.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "DNS hole summary",
|
||||
"description": "Displays important data from PiHole or AdGuard",
|
||||
"settings": {
|
||||
"title": "Settings for DNS Hole summary",
|
||||
"usePiHoleColors": {
|
||||
"label": "Use colors from PiHole"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"metrics": {
|
||||
"domainsOnAdlist": "Domains on adlists",
|
||||
"queriesToday": "Queries today",
|
||||
"queriesBlockedTodayPercentage": "blocked today",
|
||||
"queriesBlockedToday": "blocked today"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,15 +9,36 @@
|
||||
},
|
||||
"allowFullScreen": {
|
||||
"label": "Allow full screen"
|
||||
},
|
||||
"allowTransparency": {
|
||||
"label": "Allow transparency"
|
||||
},
|
||||
"allowScrolling": {
|
||||
"label": "Allow scrolling"
|
||||
},
|
||||
"allowPayment": {
|
||||
"label": "Allow payment"
|
||||
},
|
||||
"allowAutoPlay": {
|
||||
"label": "Allow auto play"
|
||||
},
|
||||
"allowMicrophone": {
|
||||
"label": "Allow microphone"
|
||||
},
|
||||
"allowCamera": {
|
||||
"label": "Allow camera"
|
||||
},
|
||||
"allowGeolocation": {
|
||||
"label": "Allow geolocation"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"noUrl": {
|
||||
"title": "Enter an URL",
|
||||
"title": "Invalid URL",
|
||||
"text": "Ensure that you've entered a valid address in the configuration of your widget"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
24
public/locales/en/modules/media-requests-list.json
Normal file
24
public/locales/en/modules/media-requests-list.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Media Requests",
|
||||
"description": "See a list of all media requests from your Overseerr or Jellyseerr instance",
|
||||
"settings": {
|
||||
"title": "Media requests list",
|
||||
"replaceLinksWithExternalHost": {
|
||||
"label": "Replace links with external host"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"declined": "Declined"
|
||||
},
|
||||
"tooltips": {
|
||||
"approve": "Approve requests",
|
||||
"decline": "Decline requests"
|
||||
}
|
||||
}
|
||||
14
public/locales/en/modules/media-requests-stats.json
Normal file
14
public/locales/en/modules/media-requests-stats.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Media request stats",
|
||||
"description": "Statistics about your media requests",
|
||||
"settings": {
|
||||
"title": "Media requests stats"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"pending": "Pending approvals",
|
||||
"tvRequests": "TV requests",
|
||||
"movieRequests": "Movie requests"
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,30 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "RSS Widget",
|
||||
"description": "Grabs the items from a RSS feed and displays them. Commonly used for online news",
|
||||
"description": "",
|
||||
"settings": {
|
||||
"title": "Settings for RSS widget",
|
||||
"rssFeedUrl": {
|
||||
"label": "RSS feed url"
|
||||
"label": "RSS feed URLs",
|
||||
"description": "The URLs of the RSS feeds you want to display from."
|
||||
},
|
||||
"refreshInterval": {
|
||||
"label": "Refresh interval (in minutes)"
|
||||
},
|
||||
"dangerousAllowSanitizedItemContent": {
|
||||
"label": "Dangerous: Allow sanitized item content"
|
||||
},
|
||||
"textLinesClamp": {
|
||||
"label": "Text lines clamp"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Unable to retrieve RSS feed",
|
||||
"text": "There was a problem reaching out the RSS feed. Make sure that you have correctly configured the RSS feed using a valid URL. URLs should match the official specification. After updating the feed, you may need to refresh the dashboard."
|
||||
},
|
||||
"card": {
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Unable to retrieve RSS feed",
|
||||
"text": "There was a problem reaching out the RSS feed. Make sure that you have correctly configured the RSS feed using a valid URL. URLs should match the official specification. After updating the feed, you may need to refresh the dashboard."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
},
|
||||
"displayStaleTorrents": {
|
||||
"label": "Display stale torrents"
|
||||
},
|
||||
"labelFilterIsWhitelist": {
|
||||
"label": "Label list is a whitelist (instead of blacklist)"
|
||||
},
|
||||
"labelFilter": {
|
||||
"label": "Label list",
|
||||
"description": "When 'is whitelist' checked, this will act as a whitelist. If not checked, this is a blacklist. Will not do anything when empty"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33,7 +40,8 @@
|
||||
"text": "Managed by {{appName}}, {{ratio}} ratio"
|
||||
},
|
||||
"body": {
|
||||
"nothingFound": "No torrents found"
|
||||
"nothingFound": "No torrents found",
|
||||
"filterHidingItems": "{{count}} entries are hidden by your filters"
|
||||
}
|
||||
},
|
||||
"lineChart": {
|
||||
|
||||
7
public/locales/en/widgets/draggable-list.json
Normal file
7
public/locales/en/widgets/draggable-list.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"noEntries": {
|
||||
"title": "No entries",
|
||||
"text": "Use the buttons below to add more entries"
|
||||
},
|
||||
"buttonAdd": "Add"
|
||||
}
|
||||
14
public/locales/en/widgets/error-boundary.json
Normal file
14
public/locales/en/widgets/error-boundary.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"card": {
|
||||
"title": "Oops, there was an error!",
|
||||
"buttons": {
|
||||
"details": "Details",
|
||||
"tryAgain": "Try again"
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "An unexpected error has occurred. Please check your configuration. Please report this issue, if you believe that this is a bug.",
|
||||
"label": "Your error",
|
||||
"reportButton": "Report this error"
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,15 @@
|
||||
"delete": "Eliminar",
|
||||
"ok": "OK",
|
||||
"edit": "Editar",
|
||||
"enabled": "Activado",
|
||||
"disabled": "Desactivado",
|
||||
"enableAll": "Activar todo",
|
||||
"disableAll": "Desactivar todo",
|
||||
"version": "Versión",
|
||||
"changePosition": "Cambiar posición",
|
||||
"remove": "Eliminar",
|
||||
"removeConfirm": "Seguro que quieres eliminar {{item}} ?",
|
||||
"removeConfirm": "¿Seguro que quieres eliminar {{item}}?",
|
||||
"createItem": "+ crear {{item}}",
|
||||
"sections": {
|
||||
"settings": "Ajustes",
|
||||
"dangerZone": "Zona de riesgo"
|
||||
|
||||
18
public/locales/es/layout/common.json
Normal file
18
public/locales/es/layout/common.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"modals": {
|
||||
"blockedPopups": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"list": {
|
||||
"browserPermission": "",
|
||||
"adBlockers": "",
|
||||
"otherBrowser": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"category": {
|
||||
"openAllInNewTab": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,10 @@
|
||||
"description": "Homarr es un dashboard <strong>elegante</strong> y <strong>moderno</strong> que pone todas tus apps y servicios a tu alcance. Con Homarr, puedes acceder y controlar todo desde una sola ubicación. Homarr se integra a la perfección con las apps que hayas añadido, ofreciendote información valiosa y dándote control total. La instalación es muy sencilla, y Homarr soporta una amplia gama de métodos de implementación.",
|
||||
"contact": "¿Tienes problemas o preguntas? ¡Conéctate con nosotros!",
|
||||
"addToDashboard": "Añadir al Dashboard",
|
||||
"tip": "Mod se refiere a tu tecla modificadora, es Ctrl y tecla Command/Super/Windows",
|
||||
"key": "Tecla de acceso directo",
|
||||
"action": "Acción",
|
||||
"keybinds": "Combinaciones de teclas",
|
||||
"metrics": {
|
||||
"configurationSchemaVersion": "Versión del esquema de configuración",
|
||||
"configurationsCount": "Configuraciones disponibles",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"appearance": {
|
||||
"icon": {
|
||||
"label": "Icono App",
|
||||
"description": "Elige un icono para mostrarse en tu dashboard. Elige entre {{suggestionsCount}} iconos o introduce tu propia URL",
|
||||
"description": "Empieza escribiendo para encontrar un icono. También puedes pegar la URL de una imagen para usar un icono personalizado.",
|
||||
"autocomplete": {
|
||||
"title": "Ningún resultado encontrado",
|
||||
"text": "Intenta usar un término de búsqueda más específico. Si no puedes encontrar tu icono deseado, pega la URL de la imagen encima para establecer un icono personalizado"
|
||||
|
||||
21
public/locales/es/modules/bookmark.json
Normal file
21
public/locales/es/modules/bookmark.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Marcador",
|
||||
"description": "Muestra una lista estática de cadenas de texto o enlaces",
|
||||
"settings": {
|
||||
"title": "Ajustes de marcadores",
|
||||
"items": {
|
||||
"label": "Elementos"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Disposición"
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"noneFound": {
|
||||
"title": "Lista de marcadores vacía",
|
||||
"text": "Añadir nuevos elementos a la lista en el modo edición"
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user