mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Compare commits
170 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fbe080b28 | ||
|
|
4047f8d6e8 | ||
|
|
59cd5564f8 | ||
|
|
5f19e4af91 | ||
|
|
5ea46881ee | ||
|
|
9545757bb9 | ||
|
|
95507aab54 | ||
|
|
564dfb7ce3 | ||
|
|
7b72442114 | ||
|
|
65370a7668 | ||
|
|
6e9339b14c | ||
|
|
241c786710 | ||
|
|
801ce479d8 | ||
|
|
16730ffec2 | ||
|
|
b35dd80e8c | ||
|
|
82b159bf14 | ||
|
|
6292a0709c | ||
|
|
42af93bef3 | ||
|
|
964991781c | ||
|
|
607a14083e | ||
|
|
133a0a6539 | ||
|
|
0d0f465e16 | ||
|
|
16c1b2da9b | ||
|
|
4761a56b3d | ||
|
|
9d40b67d49 | ||
|
|
97f4bcbdb0 | ||
|
|
ea1375e575 | ||
|
|
733a3140d1 | ||
|
|
b5ac617597 | ||
|
|
9b06212a92 | ||
|
|
6b4182ab96 | ||
|
|
8656b8e2f1 | ||
|
|
dd8e9270f2 | ||
|
|
90dd8e5967 | ||
|
|
6fca9e342d | ||
|
|
66a8b1c21e | ||
|
|
a0dc8c9ccb | ||
|
|
8190260400 | ||
|
|
7ced73b206 | ||
|
|
a2f4dd289b | ||
|
|
0c7cac74ea | ||
|
|
d81fcee31f | ||
|
|
f7889eab27 | ||
|
|
91518d972d | ||
|
|
a090f98fab | ||
|
|
5629440acf | ||
|
|
471800d5bc | ||
|
|
6ab57b7b14 | ||
|
|
f767ff047f | ||
|
|
26242d657d | ||
|
|
3ff61cfad6 | ||
|
|
9c1ac747be | ||
|
|
859bd459a8 | ||
|
|
544b9aef2f | ||
|
|
bea02fc8c7 | ||
|
|
1f282a1a93 | ||
|
|
bb5cb36491 | ||
|
|
9a6489c117 | ||
|
|
955baf9cb1 | ||
|
|
e9630afa30 | ||
|
|
4c91dfa71b | ||
|
|
f33ff582fd | ||
|
|
b8b5c1a4cb | ||
|
|
03cd98b1d6 | ||
|
|
f7def5c2ce | ||
|
|
d26ec27942 | ||
|
|
548b5f8081 | ||
|
|
b466be684f | ||
|
|
99cde187d8 | ||
|
|
d55a5e5efe | ||
|
|
fdf405fe0a | ||
|
|
9b8dd94aae | ||
|
|
8b1f1c391f | ||
|
|
a8961c3345 | ||
|
|
7f910814f8 | ||
|
|
862b0e5821 | ||
|
|
d682b6a4bf | ||
|
|
bee16c7eb6 | ||
|
|
9097da2341 | ||
|
|
58391ff33f | ||
|
|
666d075ec4 | ||
|
|
7b7c7a5b80 | ||
|
|
1dd5a9e1b0 | ||
|
|
0fd4ac17cd | ||
|
|
94738e2c0d | ||
|
|
1c24bd7449 | ||
|
|
2881114816 | ||
|
|
f1ec02fb6f | ||
|
|
68480a65db | ||
|
|
63b9d395dd | ||
|
|
a5bdfd92d7 | ||
|
|
48e2c494eb | ||
|
|
d95709de95 | ||
|
|
cf90312089 | ||
|
|
bcdd4a149b | ||
|
|
96af6cf804 | ||
|
|
b63d740ed1 | ||
|
|
fea4b27bb4 | ||
|
|
455103a9f1 | ||
|
|
277fbe8051 | ||
|
|
477392aa29 | ||
|
|
e46377f461 | ||
|
|
f283b83e6e | ||
|
|
0a1265455b | ||
|
|
05af70d11b | ||
|
|
91d5fc8e42 | ||
|
|
2a95f88cdf | ||
|
|
0615799c6c | ||
|
|
839f6d4baf | ||
|
|
cc6fe63d40 | ||
|
|
ae500fd983 | ||
|
|
873c265205 | ||
|
|
07dff4c8a5 | ||
|
|
cbacf458b2 | ||
|
|
cae304b7eb | ||
|
|
e6a821ecc3 | ||
|
|
49036a9738 | ||
|
|
0197b449ed | ||
|
|
dc3382447c | ||
|
|
6beaf665fb | ||
|
|
b9622f75b0 | ||
|
|
cd8c7d9016 | ||
|
|
9021182c2c | ||
|
|
fe462a71d6 | ||
|
|
1e556e105d | ||
|
|
b5f4daa8ef | ||
|
|
fd50241e2a | ||
|
|
6a0fbba407 | ||
|
|
2ee5fd123b | ||
|
|
86a13817df | ||
|
|
2f7d948a5c | ||
|
|
1b79e51194 | ||
|
|
2d98ac30f2 | ||
|
|
1a85175b15 | ||
|
|
6f429a6a4b | ||
|
|
3020a2d1fd | ||
|
|
a6e85240c6 | ||
|
|
98e816204a | ||
|
|
a0b5ac318a | ||
|
|
101461b7b5 | ||
|
|
ba6f50f21d | ||
|
|
dd3a229559 | ||
|
|
630d5024ac | ||
|
|
d239687e2e | ||
|
|
81a3dfbfe4 | ||
|
|
034720f47a | ||
|
|
0717607a97 | ||
|
|
ee5442c15c | ||
|
|
b2158b0921 | ||
|
|
a158866ca1 | ||
|
|
4f27ffbe2d | ||
|
|
10bc8a15a9 | ||
|
|
5d63b3d212 | ||
|
|
43decb0ed9 | ||
|
|
e4d42b5393 | ||
|
|
f717e59085 | ||
|
|
fd05ae377c | ||
|
|
cc9b4782f2 | ||
|
|
14cda38dbb | ||
|
|
27e3c9f1ed | ||
|
|
607c4b7750 | ||
|
|
1c6480586c | ||
|
|
31c04006da | ||
|
|
499ab4d701 | ||
|
|
fbb35d3dc8 | ||
|
|
94936ed09d | ||
|
|
31a511de02 | ||
|
|
2d91b2b748 | ||
|
|
7dabd0335f | ||
|
|
d0937fe6a8 |
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"extends": ["airbnb", "next/core-web-vitals", "prettier"],
|
||||
"extends": [
|
||||
"next/core-web-vitals",
|
||||
"prettier",
|
||||
"plugin:react-hooks/recommended"
|
||||
],
|
||||
"plugins": ["prettier"],
|
||||
"rules": {
|
||||
"import/no-cycle": [
|
||||
@@ -27,5 +31,12 @@
|
||||
"paths": ["src"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"modules": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10
.github/DISCUSSION_TEMPLATE/support.yml
vendored
10
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -51,6 +51,14 @@ body:
|
||||
id: troubleshooting
|
||||
attributes:
|
||||
label: Troubleshooting
|
||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||
description: Please include output from your [troubleshooting steps](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||
validations:
|
||||
required: true
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## ⚠️ STOP ⚠️
|
||||
|
||||
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem.
|
||||
|
||||
*Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.*
|
||||
|
||||
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -6,6 +6,7 @@
|
||||
==================== STOP ====
|
||||
|
||||
⚠️ Before opening this pull request please review the guidelines in the checklist below.
|
||||
|
||||
If this PR does not meet those guidelines it will not be accepted, and everyone will be sad.
|
||||
-->
|
||||
|
||||
@@ -14,9 +15,6 @@ If this PR does not meet those guidelines it will not be accepted, and everyone
|
||||
<!--
|
||||
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
|
||||
|
||||
*** Please see the development guidelines for new widgets: https://gethomepage.dev/more/development/#service-widget-guidelines
|
||||
*** If you do not follow these guidelines your PR will likely be closed without review.
|
||||
|
||||
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
|
||||
-->
|
||||
|
||||
@@ -30,13 +28,13 @@ What type of change does your PR introduce to Homepage?
|
||||
|
||||
- [ ] New service widget
|
||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||
- [ ] New feature (non-breaking change which adds functionality)
|
||||
- [ ] New feature or enhancement (non-breaking change which adds functionality)
|
||||
- [ ] Documentation only
|
||||
- [ ] Other (please explain)
|
||||
|
||||
## Checklist:
|
||||
|
||||
- [ ] If applicable, I have added corresponding documentation changes.
|
||||
- [ ] If applicable, I have reviewed the [feature](https://gethomepage.dev/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/more/development/#service-widget-guidelines).
|
||||
- [ ] If applicable, I have reviewed the [feature / enhancement](https://gethomepage.dev/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/more/development/#service-widget-guidelines).
|
||||
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/more/development/#code-linting).
|
||||
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
|
||||
|
||||
50
.github/workflows/docker-publish.yml
vendored
50
.github/workflows/docker-publish.yml
vendored
@@ -46,6 +46,24 @@ jobs:
|
||||
-
|
||||
name: Check files
|
||||
uses: pre-commit/action@v3.0.1
|
||||
-
|
||||
name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
run_install: false
|
||||
-
|
||||
name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
-
|
||||
name: Install dependencies
|
||||
run: pnpm install
|
||||
-
|
||||
name: Lint frontend
|
||||
run: pnpm run lint
|
||||
|
||||
build:
|
||||
name: Docker Build & Push
|
||||
@@ -64,26 +82,7 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Setup QEMU
|
||||
# https://github.com/marketplace/actions/docker-setup-buildx#with-qemu
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
# Workaround: https://github.com/docker/build-push-action/issues/461
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
# This step is being disabled because the runner is on a self-hosted machine
|
||||
# where the cache will stick between runs.
|
||||
# - name: Cache Docker layers
|
||||
# uses: actions/cache@v3
|
||||
# with:
|
||||
# path: /tmp/.buildx-cache
|
||||
# key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-buildx-
|
||||
|
||||
# Login against a Docker registry except on PR
|
||||
# Login to Docker Registry
|
||||
# https://github.com/docker/login-action
|
||||
- name: Log into registry ${{ env.REGISTRY }}
|
||||
if: github.event_name != 'pull_request'
|
||||
@@ -99,6 +98,15 @@ jobs:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
# Setup QEMU
|
||||
# https://github.com/marketplace/actions/docker-setup-buildx#with-qemu
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
# Workaround: https://github.com/docker/build-push-action/issues/461
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
# Extract metadata (tags, labels) for Docker
|
||||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
@@ -127,7 +135,7 @@ jobs:
|
||||
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
|
||||
# https://github.com/docker/setup-qemu-action#about
|
||||
# platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
|
||||
platforms: linux/amd64,linux/arm64
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
|
||||
|
||||
|
||||
2
.github/workflows/reaction-comments.yml
vendored
2
.github/workflows/reaction-comments.yml
vendored
@@ -5,8 +5,6 @@ on:
|
||||
types: [created, edited]
|
||||
pull_request_review_comment:
|
||||
types: [created, edited]
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
|
||||
@@ -63,7 +63,7 @@ The homepage team appreciates all effort and interest from the community in fili
|
||||
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
|
||||
- Discussions with a marked answer will be automatically closed.
|
||||
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
|
||||
- Feature requests that do not meet the following thresholds will be closed: 5 "up-votes" after 180 days of inactivity or 10 "up-votes" after 365 days.
|
||||
- Feature requests that do not meet the following thresholds will be closed: 10 "up-votes" after 180 days of inactivity or 20 "up-votes" after 365 days.
|
||||
|
||||
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
|
||||
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.
|
||||
|
||||
23
Dockerfile
23
Dockerfile
@@ -1,7 +1,5 @@
|
||||
# syntax = docker/dockerfile:latest
|
||||
|
||||
# Install dependencies only when needed
|
||||
FROM docker.io/node:18-alpine AS deps
|
||||
FROM docker.io/node:22-alpine AS deps
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -17,9 +15,11 @@ RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm f
|
||||
RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm install -r --offline
|
||||
|
||||
# Rebuild the source code only when needed
|
||||
FROM docker.io/node:18-alpine AS builder
|
||||
FROM docker.io/node:22-alpine AS builder
|
||||
WORKDIR /app
|
||||
|
||||
RUN mkdir config
|
||||
|
||||
ARG BUILDTIME
|
||||
ARG VERSION
|
||||
ARG REVISION
|
||||
@@ -28,12 +28,12 @@ COPY --link --from=deps /app/node_modules ./node_modules/
|
||||
COPY . .
|
||||
|
||||
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
|
||||
RUN npm run telemetry \
|
||||
&& mkdir config \
|
||||
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
|
||||
RUN npm install -g pnpm \
|
||||
&& pnpm run telemetry \
|
||||
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION pnpm run build
|
||||
|
||||
# Production image, copy all the files and run next
|
||||
FROM docker.io/node:18-alpine AS runner
|
||||
FROM docker.io/node:22-alpine AS runner
|
||||
LABEL org.opencontainers.image.title "Homepage"
|
||||
LABEL org.opencontainers.image.description "A self-hosted services landing page, with docker and service integrations."
|
||||
LABEL org.opencontainers.image.url="https://github.com/gethomepage/homepage"
|
||||
@@ -41,7 +41,7 @@ LABEL org.opencontainers.image.documentation='https://github.com/gethomepage/hom
|
||||
LABEL org.opencontainers.image.source='https://github.com/gethomepage/homepage'
|
||||
LABEL org.opencontainers.image.licenses='Apache-2.0'
|
||||
|
||||
ENV NODE_ENV production
|
||||
ENV NODE_ENV=production
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -56,11 +56,12 @@ COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
RUN apk add --no-cache su-exec
|
||||
|
||||
ENV PORT 3000
|
||||
ENV HOSTNAME=0.0.0.0
|
||||
ENV PORT=3000
|
||||
EXPOSE $PORT
|
||||
|
||||
HEALTHCHECK --interval=10s --timeout=3s --start-period=20s \
|
||||
CMD wget --no-verbose --tries=1 --spider --no-check-certificate http://localhost:$PORT/api/healthcheck || exit 1
|
||||
CMD wget --no-verbose --tries=1 --spider --no-check-certificate http://127.0.0.1:$PORT/api/healthcheck || exit 1
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
CMD ["node", "server.js"]
|
||||
|
||||
@@ -10,7 +10,7 @@ RUN <<EOF
|
||||
apk add libc6-compat
|
||||
apk add --virtual .gyp python3 make g++
|
||||
npm install -g pnpm
|
||||
npm install -g next
|
||||
pnpm install -g next
|
||||
EOF
|
||||
|
||||
RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"
|
||||
|
||||
@@ -38,7 +38,7 @@ With features like quick search, bookmarks, weather support, a wide range of int
|
||||
|
||||
- **Fast** - The site is statically generated at build time for instant load times.
|
||||
- **Secure** - All API requests to backend services are proxied, keeping your API keys hidden. Constantly reviewed for security by the community.
|
||||
- **For Everyone** - Images built for AMD64, ARM64, ARMv7, and ARMv6.
|
||||
- **For Everyone** - Images built for AMD64, ARM64.
|
||||
- **Full i18n** - Support for over 40 languages.
|
||||
- **Service & Web Bookmarks** - Add custom links to the homepage.
|
||||
- **Docker Integration** - Container status and stats. Automatic service discovery via labels.
|
||||
@@ -80,6 +80,7 @@ services:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage
|
||||
environment:
|
||||
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
|
||||
PUID: 1000 # optional, your user id
|
||||
PGID: 1000 # optional, your group id
|
||||
ports:
|
||||
@@ -94,6 +95,7 @@ or docker run:
|
||||
|
||||
```bash
|
||||
docker run --name homepage \
|
||||
-e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev \
|
||||
-e PUID=1000 \
|
||||
-e PGID=1000 \
|
||||
-p 3000:3000 \
|
||||
@@ -111,7 +113,7 @@ First, clone the repository:
|
||||
git clone https://github.com/gethomepage/homepage.git
|
||||
```
|
||||
|
||||
Then install dependencies and build the production bundle (I'm using pnpm here, you can use npm or yarn if you like):
|
||||
Then install dependencies and build the production bundle:
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
@@ -157,12 +157,12 @@ Multiple widgets can be specified by incrementing the index, e.g.
|
||||
|
||||
```yaml
|
||||
labels: ...
|
||||
- homepage.widget[0].type=emby
|
||||
- homepage.widget[0].url=http://emby.home
|
||||
- homepage.widget[0].key=yourembyapikeyhere
|
||||
- homepage.widget[1].type=uptimekuma
|
||||
- homepage.widget[1].url=http://uptimekuma.home
|
||||
- homepage.widget[1].slug=youreventslughere
|
||||
- homepage.widgets[0].type=emby
|
||||
- homepage.widgets[0].url=http://emby.home
|
||||
- homepage.widgets[0].key=yourembyapikeyhere
|
||||
- homepage.widgets[1].type=uptimekuma
|
||||
- homepage.widgets[1].url=http://uptimekuma.home
|
||||
- homepage.widgets[1].slug=youreventslughere
|
||||
```
|
||||
|
||||
You can add specify fields for e.g. the [CustomAPI](../widgets/services/customapi.md) widget by using array-style dot notation:
|
||||
|
||||
@@ -8,6 +8,7 @@ The Kubernetes connectivity has the following requirements:
|
||||
- Kubernetes 1.19+
|
||||
- Metrics Service
|
||||
- An Ingress controller
|
||||
- Optionally: Gateway-API
|
||||
|
||||
The Kubernetes connection is configured in the `kubernetes.yaml` file. There are 3 modes to choose from:
|
||||
|
||||
@@ -19,6 +20,22 @@ The Kubernetes connection is configured in the `kubernetes.yaml` file. There are
|
||||
mode: default
|
||||
```
|
||||
|
||||
To configure Kubernetes gateway-api, ingress or ingressRoute service discovery, add one or multiple of the following settings.
|
||||
|
||||
Example settings:
|
||||
|
||||
```yaml
|
||||
ingress: true # default, enable ingress only
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```yaml
|
||||
ingress: true # default, enable ingress
|
||||
traefik: true # enable traefik ingressRoute
|
||||
gateway: true # enable gateway-api
|
||||
```
|
||||
|
||||
## Services
|
||||
|
||||
Once the Kubernetes connection is configured, individual services can be configured to pull statistics. Only CPU and Memory are currently supported.
|
||||
@@ -142,6 +159,10 @@ spec:
|
||||
|
||||
If the `href` attribute is not present, Homepage will ignore the specific IngressRoute.
|
||||
|
||||
### Gateway API HttpRoute support
|
||||
|
||||
Homepage also features automatic service discovery for Gateway API. Service definitions are read by annotating the HttpRoute custom resource definition and are indentical to the Ingress example as defined in [Automatic Service Discovery](#automatic-service-discovery).
|
||||
|
||||
## Caveats
|
||||
|
||||
Similarly to Docker service discovery, there currently is no rigid ordering to discovered services and discovered services will be displayed above those specified in the `services.yaml`.
|
||||
|
||||
@@ -97,6 +97,10 @@ Each service can have multiple widgets attached to it, for example:
|
||||
slug: statuspageslug
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
||||
Multiple widgets per service are not yet supported with Kubernetes ingress annotations.
|
||||
|
||||
#### Field Visibility
|
||||
|
||||
Each widget can optionally provide a list of which fields should be visible via the `fields` widget property. If no fields are specified, then all fields will be displayed. The `fields` property must be a valid YAML array of strings. As an example, here is the entry for Sonarr showing only a couple of fields.
|
||||
@@ -134,7 +138,7 @@ Services may have descriptions,
|
||||
|
||||
## Icons
|
||||
|
||||
Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/walkxcode/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png` or with `.svg` to use the svg version.
|
||||
Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/homarr-labs/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png`, `.webp` or `.svg` to specify the desired version.
|
||||
|
||||
You can also specify prefixed icons from:
|
||||
|
||||
@@ -178,6 +182,10 @@ To use a local icon, first create a Docker mount to `/app/public/icons` and then
|
||||
|
||||
Services may have an optional `ping` property that allows you to monitor the availability of an external host. As of v0.8.0, the ping feature attempts to use a true (ICMP) ping command on the underlying host. Currently, only IPv4 is supported.
|
||||
|
||||
!!! note
|
||||
|
||||
Because ping uses the ping command on the underlying host, in some cases you may need to install e.g. the `iputils-ping` package on the host system.
|
||||
|
||||
```yaml
|
||||
- Group A:
|
||||
- Sonarr:
|
||||
|
||||
@@ -13,6 +13,14 @@ You can customize the title of the page if you'd like.
|
||||
title: My Awesome Homepage
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
You can customize the description of the page if you'd like.
|
||||
|
||||
```yaml
|
||||
description: A description of my awesome homepage
|
||||
```
|
||||
|
||||
## Start URL
|
||||
|
||||
You can customize the start_url as required for installable apps. The default is "/".
|
||||
@@ -439,7 +447,7 @@ quicklaunch:
|
||||
suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q=
|
||||
```
|
||||
|
||||
## Homepage Version
|
||||
## Homepage Version & Update Checking
|
||||
|
||||
By default the release version is displayed at the bottom of the page. To hide this, use the `hideVersion` setting, like so:
|
||||
|
||||
@@ -447,6 +455,12 @@ By default the release version is displayed at the bottom of the page. To hide t
|
||||
hideVersion: true
|
||||
```
|
||||
|
||||
You can disable checking for new versions from GitHub (enabled by default) with:
|
||||
|
||||
```yaml
|
||||
disableUpdateCheck: true
|
||||
```
|
||||
|
||||
## Log Path
|
||||
|
||||
By default the homepage logfile is written to the a `logs` subdirectory of the `config` folder. In order to customize this path, you can set the `logpath` setting. A `logs` folder will be created in that location where the logfile will be written.
|
||||
|
||||
@@ -15,6 +15,8 @@ services:
|
||||
volumes:
|
||||
- /path/to/config:/app/config # Make sure your local config directory exists
|
||||
- /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations
|
||||
environment:
|
||||
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
|
||||
```
|
||||
|
||||
### Running as non-root
|
||||
@@ -36,6 +38,7 @@ services:
|
||||
- /path/to/config:/app/config # Make sure your local config directory exists
|
||||
- /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations, see alternative methods
|
||||
environment:
|
||||
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
|
||||
PUID: $PUID
|
||||
PGID: $PGID
|
||||
```
|
||||
@@ -43,7 +46,7 @@ services:
|
||||
### With Docker Run
|
||||
|
||||
```bash
|
||||
docker run -p 3000:3000 -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
|
||||
docker run -p 3000:3000 -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
|
||||
```
|
||||
|
||||
### Using Environment Secrets
|
||||
|
||||
@@ -4,11 +4,9 @@ description: Docs intro
|
||||
icon: simple/docker
|
||||
---
|
||||
|
||||
<p>
|
||||
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
|
||||
</p>
|
||||
|
||||
!!! warning
|
||||
!!! info
|
||||
|
||||
Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.
|
||||
|
||||
@@ -28,3 +26,15 @@ You have a few options for deploying homepage, depending on your needs. We offer
|
||||
{ .card }
|
||||
|
||||
</div>
|
||||
|
||||
### `HOMEPAGE_ALLOWED_HOSTS`
|
||||
|
||||
As of v1.0 there is one required environment variable to access homepage via a URL other than `localhost`, <code>HOMEPAGE_ALLOWED_HOSTS</code>. The setting helps prevent certain kinds of attacks when retrieving data from the homepage API proxy.
|
||||
|
||||
The value is a comma-separated (no spaces) list of allowed hosts (sometimes with the port) that can host your homepage install. See the [docker](docker.md), [kubernetes](k8s.md) and [source](source.md) installation pages for more information about where / how to set the variable.
|
||||
|
||||
`localhost:3000` and `127.0.0.1:3000` are always included, but you can add a domain or IP address to this list to allow that host such as `HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,192.168.1.2:1234`, etc.
|
||||
|
||||
If you are seeing errors about host validation, check the homepage logs and ensure that the host exactly as output in the logs is in the `HOMEPAGE_ALLOWED_HOSTS` list.
|
||||
|
||||
This can be disabled by setting `HOMEPAGE_ALLOWED_HOSTS` to `*` but this is not recommended.
|
||||
|
||||
@@ -3,85 +3,6 @@ title: Kubernetes Installation
|
||||
description: Install on Kubernetes
|
||||
---
|
||||
|
||||
## Install with Helm
|
||||
|
||||
There is an [unofficial helm chart](https://github.com/jameswynn/helm-charts/tree/main/charts/homepage) that creates all the necessary manifests, including the service account and RBAC entities necessary for service discovery.
|
||||
|
||||
```sh
|
||||
helm repo add jameswynn https://jameswynn.github.io/helm-charts
|
||||
helm install homepage jameswynn/homepage -f values.yaml
|
||||
```
|
||||
|
||||
The helm chart allows for all the configurations to be inlined directly in your `values.yaml`:
|
||||
|
||||
```yaml
|
||||
config:
|
||||
bookmarks:
|
||||
- Developer:
|
||||
- Github:
|
||||
- abbr: GH
|
||||
href: https://github.com/
|
||||
services:
|
||||
- My First Group:
|
||||
- My First Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is awesome
|
||||
|
||||
- My Second Group:
|
||||
- My Second Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is the best
|
||||
|
||||
- My Third Group:
|
||||
- My Third Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is 😎
|
||||
widgets:
|
||||
# show the kubernetes widget, with the cluster summary and individual nodes
|
||||
- kubernetes:
|
||||
cluster:
|
||||
show: true
|
||||
cpu: true
|
||||
memory: true
|
||||
showLabel: true
|
||||
label: "cluster"
|
||||
nodes:
|
||||
show: true
|
||||
cpu: true
|
||||
memory: true
|
||||
showLabel: true
|
||||
- search:
|
||||
provider: duckduckgo
|
||||
target: _blank
|
||||
kubernetes:
|
||||
mode: cluster
|
||||
settings:
|
||||
|
||||
# The service account is necessary to allow discovery of other services
|
||||
serviceAccount:
|
||||
create: true
|
||||
name: homepage
|
||||
|
||||
# This enables the service account to access the necessary resources
|
||||
enableRbac: true
|
||||
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
annotations:
|
||||
# Example annotations to add Homepage to your Homepage!
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/name: "Homepage"
|
||||
gethomepage.dev/description: "Dynamically Detected Homepage"
|
||||
gethomepage.dev/group: "Dynamic"
|
||||
gethomepage.dev/icon: "homepage.png"
|
||||
hosts:
|
||||
- host: homepage.example.com
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
```
|
||||
|
||||
## Install with Kubernetes Manifests
|
||||
|
||||
If you don't want to use the unofficial Helm chart, you can also create your own Kubernetes manifest(s) and apply them with `kubectl apply -f filename.yaml`.
|
||||
@@ -216,6 +137,14 @@ rules:
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- gateway.networking.k8s.io
|
||||
resources:
|
||||
- httproutes
|
||||
- gateways
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- metrics.k8s.io
|
||||
resources:
|
||||
@@ -294,6 +223,9 @@ spec:
|
||||
- name: homepage
|
||||
image: "ghcr.io/gethomepage/homepage:latest"
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: HOMEPAGE_ALLOWED_HOSTS
|
||||
value: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 3000
|
||||
|
||||
@@ -21,5 +21,9 @@ If this is your first time starting, copy the `src/skeleton` directory to `confi
|
||||
Finally, run the server:
|
||||
|
||||
```bash
|
||||
pnpm start
|
||||
HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:1234 pnpm start
|
||||
```
|
||||
|
||||
When updating homepage versions you will need to re-build the static files i.e. repeat the process above.
|
||||
|
||||
See [HOMEPAGE_ALLOWED_HOSTS](index.md#homepage_allowed_hosts) for more information on this environment variable.
|
||||
|
||||
@@ -12,14 +12,17 @@ hide:
|
||||
- Check config/logs/homepage.log, on docker simply e.g. `docker logs homepage`. This may provide some insight into the reason for an error.
|
||||
- Check the browser error console, this can also sometimes provide useful information.
|
||||
- Consider setting the `ENV` variable `LOG_LEVEL` to `debug`.
|
||||
- If certain widgets are failing when connecting to public APIs, consider [disabling IPv6](#disabling-ipv6).
|
||||
|
||||
## Service Widget Errors
|
||||
|
||||
All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to try:
|
||||
All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to check:
|
||||
|
||||
1. **URLs should not end with a / or other API path. Each widget will handle the path on its own.**. Including a trailing slash can result in an error.
|
||||
1. URLs should not end with a / or other API path. Each widget will handle the path on its own.
|
||||
|
||||
2. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
||||
2. All services with a widget require a unique name.
|
||||
|
||||
3. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
||||
|
||||
```
|
||||
docker exec homepage ping SERVICEIPORDOMAIN
|
||||
@@ -27,7 +30,7 @@ All service widgets work essentially the same, that is, homepage makes a proxied
|
||||
|
||||
If your homepage install (container) cannot reach the service then you need to figure out why, for example in Docker this can mean putting the two containers on the same network, checking firewall issues, etc.
|
||||
|
||||
3. If you have verified that homepage can in fact reach the service then you can also check the API output using e.g. `curl`, which is often helpful if you do need to file a bug report. Again, depending on your networking setup this may need to be run from _inside the container_ as IP / hostname resolution can differ inside vs outside.
|
||||
4. If you have verified that homepage can in fact reach the service then you can also check the API output using e.g. `curl`, which is often helpful if you do need to file a bug report. Again, depending on your networking setup this may need to be run from _inside the container_ as IP / hostname resolution can differ inside vs outside.
|
||||
|
||||
!!! note
|
||||
|
||||
@@ -64,3 +67,24 @@ All service widgets work essentially the same, that is, homepage makes a proxied
|
||||
## Missing custom icons
|
||||
|
||||
If, after correctly adding and mapping your custom icons via the [Icons](../configs/services.md#icons) instructions, you are still unable to see your icons please try recreating your container.
|
||||
|
||||
## Disabling IPv6
|
||||
|
||||
If you are having issues with certain widgets that are unable to reach public APIs (e.g. weather), you may need to disable IPv6 on your host machine. This can be done by adding the following to your `docker-compose.yml` file (or for docker run, the equivalent flag):
|
||||
|
||||
```yaml
|
||||
services:
|
||||
homepage:
|
||||
...
|
||||
sysctls:
|
||||
- net.ipv6.conf.all.disable_ipv6=1
|
||||
```
|
||||
|
||||
or disable IPv6 for the docker network:
|
||||
|
||||
```yaml
|
||||
networks:
|
||||
some_network:
|
||||
driver: bridge
|
||||
enable_ipv6: false
|
||||
```
|
||||
|
||||
@@ -46,9 +46,9 @@ See the [pre-commit documentation](https://pre-commit.com/#install) to get start
|
||||
In general, homepage is meant to be a dashboard for 'self-hosted' services and we believe it is a small way we can help showcase this kind of software. While exceptions are made, mostly when there is no viable
|
||||
self-hosted / open-source alternative, we ask that any widgets, etc. are developed primarily for a self-hosted tool.
|
||||
|
||||
## New Feature Guidelines
|
||||
## New Feature or Enhancement Guidelines {#new-feature-guidelines}
|
||||
|
||||
- New features should usually be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
||||
- New features or enhancements, **no matter how small**, must be linked to an existing feature request with some comments or 'up-votes' that demonstrate community interest. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
||||
- If you have ideas for a larger feature you may want to open a discussion first.
|
||||
|
||||
## Service Widget Guidelines
|
||||
|
||||
@@ -22,9 +22,8 @@ An optional 'site' parameter can be supplied, if it is not the widget will use t
|
||||
```yaml
|
||||
- unifi_console:
|
||||
url: https://unifi.host.or.ip:port
|
||||
site: Site Name # optional
|
||||
username: user
|
||||
password: pass
|
||||
site: Site Name # optional
|
||||
key: unifiapikey # required if using API key instead of username/password
|
||||
```
|
||||
|
||||
_Added in v0.4.18, updated in 0.6.7_
|
||||
|
||||
16
docs/widgets/services/apcups.md
Normal file
16
docs/widgets/services/apcups.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: APC UPS Monitoring
|
||||
description: Lightweight monitoring widget for APC UPSs using apcupsd daemon
|
||||
---
|
||||
|
||||
This widget extracts UPS information from an apcupsd daemon.
|
||||
Only works for [APC/Schneider](https://www.se.com/us/en/product-range/61915-smartups/#products) UPS products.
|
||||
|
||||
[!NOTE]
|
||||
By default apcupsd daemon is bound to 127.0.0.1. Edit `/etc/apcupsd.conf` and change `NISIP` to an IP accessible from your homepage docker (usually your internal LAN interface).
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: apcups
|
||||
url: tcp://your.acpupsd.host:3551
|
||||
```
|
||||
@@ -7,7 +7,9 @@ Learn more about [Beszel](https://github.com/henrygd/beszel)
|
||||
|
||||
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
||||
|
||||
The `systemID` in the `id` field on the collections page of Beszel.
|
||||
The `systemID` is the `id` field on the collections page of Beszel under the PocketBase admin panel. You can also use the 'nice name' from the Beszel UI.
|
||||
|
||||
A "superuser" is currently required to access the data from tbe Beszel API.
|
||||
|
||||
Allowed fields for 'overview' mode: `["systems", "up"]`
|
||||
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
||||
|
||||
@@ -62,10 +62,12 @@ widget:
|
||||
format: size
|
||||
```
|
||||
|
||||
Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes`, `bitrate`, `size`, `date` and `relativeDate`.
|
||||
Supported formats for the values are `text`, `number`, `float`, `percent`, `duration`, `bytes`, `bitrate`, `size`, `date` and `relativeDate`.
|
||||
|
||||
The `dateStyle` and `timeStyle` options of the `date` format are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) and the `style` and `numeric` options of `relativeDate` are passed to [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
|
||||
|
||||
The `duration` format expects the duration to be specified in seconds. The `scale` transformation tool can be used if a conversion is required.
|
||||
|
||||
The `size` format will return the length of the array or string, or the number of keys in an object. This is then formatted as `number`.
|
||||
|
||||
## Example
|
||||
|
||||
17
docs/widgets/services/firefly.md
Normal file
17
docs/widgets/services/firefly.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Firefly III
|
||||
description: Firefly III Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Firefly III](https://www.firefly-iii.org/).
|
||||
|
||||
Find your API key under `Options > Profile > OAuth > Personal Access Tokens`.
|
||||
|
||||
Allowed fields: `["networth" ,"budget"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: firefly
|
||||
url: https://firefly.host.or.ip
|
||||
key: personalaccesstoken.personalaccesstoken.personalaccesstoken
|
||||
```
|
||||
@@ -13,7 +13,7 @@ Home Network > Network > Network Settings > Access Settings in the Home Network
|
||||
|
||||
Credentials are not needed and, as such, you may want to consider using `http` instead of `https` as those requests are significantly faster.
|
||||
|
||||
Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress"]`.
|
||||
Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress", "externalIPv6Address", "externalIPv6Prefix"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
|
||||
@@ -11,7 +11,7 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
|
||||
|
||||
Allowed fields: `["public_ip", "region", "country"]`.
|
||||
|
||||
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication).
|
||||
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
|
||||
17
docs/widgets/services/hoarder.md
Normal file
17
docs/widgets/services/hoarder.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Hoarder
|
||||
description: Hoarder Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Hoarder](https://hoarder.app).
|
||||
|
||||
Generate an API key for your user at `User Settings > API Keys`.
|
||||
|
||||
Allowed fields: `["bookmarks", "favorites", "archived", "highlights", "lists", "tags"]` (maximum of 4).
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: hoarder
|
||||
url: http[s]://hoarder.host.or.ip[:port]
|
||||
key: hoarderapikey
|
||||
```
|
||||
@@ -8,6 +8,7 @@ search:
|
||||
You can also find a list of all available service widgets in the sidebar navigation.
|
||||
|
||||
- [Adguard Home](adguard-home.md)
|
||||
- [APC UPS](apcups.md)
|
||||
- [ArgoCD](argocd.md)
|
||||
- [Atsumeru](atsumeru.md)
|
||||
- [Audiobookshelf](audiobookshelf.md)
|
||||
@@ -33,6 +34,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [ESPHome](esphome.md)
|
||||
- [EVCC](evcc.md)
|
||||
- [Fileflows](fileflows.md)
|
||||
- [Firefly III](firefly.md)
|
||||
- [Flood](flood.md)
|
||||
- [FreshRSS](freshrss.md)
|
||||
- [Frigate](frigate.md)
|
||||
@@ -49,6 +51,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [HDHomeRun](hdhomerun.md)
|
||||
- [Headscale](headscale.md)
|
||||
- [Healthchecks](healthchecks.md)
|
||||
- [Hoarder](hoarder.md)
|
||||
- [Home Assistant](homeassistant.md)
|
||||
- [HomeBox](homebox.md)
|
||||
- [Homebridge](homebridge.md)
|
||||
|
||||
@@ -15,4 +15,5 @@ widget:
|
||||
url: http://kavita.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
key: kavitaapikey # Optional, e.g. if not using username and password
|
||||
```
|
||||
|
||||
@@ -9,10 +9,16 @@ Uses the same username and password used to login from the web.
|
||||
|
||||
Allowed fields: `["libraries", "series", "books"]`.
|
||||
|
||||
| Komga API Version | Homepage Widget Version |
|
||||
| ----------------- | ----------------------- |
|
||||
| < v2 | 1 (default) |
|
||||
| >= v2 | 2 |
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: komga
|
||||
url: http://komga.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
key: komgaapikey # optional
|
||||
```
|
||||
|
||||
@@ -20,4 +20,6 @@ widget:
|
||||
type: peanut
|
||||
url: http://peanut.host.or.ip:port
|
||||
key: nameofyourups
|
||||
username: username # only needed if set
|
||||
password: password # only needed if set
|
||||
```
|
||||
|
||||
@@ -10,7 +10,5 @@ If more than (4) fields are provided, only the first (4) will be used.
|
||||
widget:
|
||||
type: romm
|
||||
url: http://romm.host.or.ip
|
||||
username: username # optional
|
||||
password: password # optional
|
||||
fields: ["platforms", "totalRoms", "saves", "states"] # optional - default fields shown
|
||||
```
|
||||
|
||||
@@ -8,7 +8,12 @@ Learn more about [Speedtest Tracker](https://github.com/alexjustesen/speedtest-t
|
||||
|
||||
No extra configuration is required.
|
||||
|
||||
This widget is compatible with both [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker) and [henrywhitaker3/Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker).
|
||||
Version 1 of the widget is compatible with both [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker) and [henrywhitaker3/Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker), while version 2 is only compatible with [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker).
|
||||
|
||||
| Speedtest Version (AJ) | Speedtest Version (HW) | Homepage Widget Version |
|
||||
| ---------------------- | ---------------------- | ----------------------- |
|
||||
| < 1.2.1 | ≤ 1.12.0 | 1 (default) |
|
||||
| >= 1.2.1 | N/A | 2 |
|
||||
|
||||
Allowed fields: `["download", "upload", "ping"]`.
|
||||
|
||||
@@ -16,5 +21,7 @@ Allowed fields: `["download", "upload", "ping"]`.
|
||||
widget:
|
||||
type: speedtest
|
||||
url: http://speedtest.host.or.ip
|
||||
version: 1 # optional, default is 1
|
||||
key: speedtestapikey # required for version 2
|
||||
bitratePrecision: 3 # optional, default is 0
|
||||
```
|
||||
|
||||
@@ -19,15 +19,14 @@ Allowed fields: `["uptime", "wan", "lan", "lan_users", "lan_devices", "wlan", "w
|
||||
|
||||
!!! hint
|
||||
|
||||
If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container to clear the cache.
|
||||
If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container or restart the service to clear the cache.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: unifi
|
||||
url: https://unifi.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
site: Site Name # optional
|
||||
username: user
|
||||
password: pass
|
||||
key: unifiapikey # required if using API key instead of username/password
|
||||
```
|
||||
|
||||
_Added in v0.4.18, updated in 0.6.7_
|
||||
|
||||
@@ -46,6 +46,10 @@ config:
|
||||
docker:
|
||||
settings:
|
||||
|
||||
env:
|
||||
- name: HOMEPAGE_ALLOWED_HOSTS
|
||||
value: "homepage.k3d.localhost:8080"
|
||||
|
||||
serviceAccount:
|
||||
create: true
|
||||
name: homepage
|
||||
|
||||
@@ -23,6 +23,12 @@ Set the `mode` in the `kubernetes.yaml` to `cluster`.
|
||||
mode: default
|
||||
```
|
||||
|
||||
To enable Kubernetes gateway-api compatibility, set `route` to `gateway`.
|
||||
|
||||
```yaml
|
||||
route: gateway
|
||||
```
|
||||
|
||||
## Widgets
|
||||
|
||||
The Kubernetes widget can show a high-level overview of the cluster,
|
||||
|
||||
@@ -31,6 +31,7 @@ nav:
|
||||
- "Service Widgets":
|
||||
- widgets/services/index.md
|
||||
- widgets/services/adguard-home.md
|
||||
- widgets/services/apcups.md
|
||||
- widgets/services/argocd.md
|
||||
- widgets/services/atsumeru.md
|
||||
- widgets/services/audiobookshelf.md
|
||||
@@ -56,6 +57,7 @@ nav:
|
||||
- widgets/services/esphome.md
|
||||
- widgets/services/evcc.md
|
||||
- widgets/services/fileflows.md
|
||||
- widgets/services/firefly.md
|
||||
- widgets/services/flood.md
|
||||
- widgets/services/freshrss.md
|
||||
- widgets/services/frigate.md
|
||||
@@ -72,6 +74,7 @@ nav:
|
||||
- widgets/services/hdhomerun.md
|
||||
- widgets/services/headscale.md
|
||||
- widgets/services/healthchecks.md
|
||||
- widgets/services/hoarder.md
|
||||
- widgets/services/homeassistant.md
|
||||
- widgets/services/homebox.md
|
||||
- widgets/services/homebridge.md
|
||||
|
||||
8660
package-lock.json
generated
8660
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
60
package.json
60
package.json
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"name": "homepage",
|
||||
"version": "0.9.6",
|
||||
"version": "1.0.4",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
@@ -10,55 +11,54 @@
|
||||
"telemetry": "next telemetry disable"
|
||||
},
|
||||
"dependencies": {
|
||||
"@headlessui/react": "^1.7.18",
|
||||
"@kubernetes/client-node": "^0.17.1",
|
||||
"@headlessui/react": "^1.7.19",
|
||||
"@kubernetes/client-node": "^1.0.0",
|
||||
"cal-parser": "^1.0.2",
|
||||
"classnames": "^2.5.1",
|
||||
"compare-versions": "^6.1.0",
|
||||
"dockerode": "^4.0.2",
|
||||
"compare-versions": "^6.1.1",
|
||||
"dockerode": "^4.0.4",
|
||||
"follow-redirects": "^1.15.9",
|
||||
"gamedig": "^5.1.4",
|
||||
"gamedig": "^5.2.0",
|
||||
"i18next": "^21.10.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-rpc-2.0": "^1.7.0",
|
||||
"luxon": "^3.5.0",
|
||||
"memory-cache": "^0.2.0",
|
||||
"minecraft-ping-js": "^1.0.2",
|
||||
"next": "^12.3.4",
|
||||
"minecraftstatuspinger": "^1.2.2",
|
||||
"next": "^15.1.7",
|
||||
"next-i18next": "^12.1.0",
|
||||
"ping": "^0.4.4",
|
||||
"pretty-bytes": "^6.1.1",
|
||||
"raw-body": "^3.0.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-i18next": "^11.18.6",
|
||||
"react-icons": "^4.12.0",
|
||||
"recharts": "^2.12.6",
|
||||
"react-icons": "^5.4.0",
|
||||
"recharts": "^2.15.1",
|
||||
"rrule": "^2.8.1",
|
||||
"swr": "^1.3.0",
|
||||
"systeminformation": "^5.23.8",
|
||||
"tough-cookie": "^4.1.3",
|
||||
"urbackup-server-api": "^0.52.1",
|
||||
"winston": "^3.11.0",
|
||||
"systeminformation": "^5.25.11",
|
||||
"tough-cookie": "^5.1.2",
|
||||
"urbackup-server-api": "^0.8.9",
|
||||
"winston": "^3.17.0",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.8",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-config-next": "^14.2.3",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"@tailwindcss/forms": "^0.5.10",
|
||||
"@tailwindcss/postcss": "^4.0.9",
|
||||
"eslint": "^9.21.0",
|
||||
"eslint-config-next": "^15.1.7",
|
||||
"eslint-config-prettier": "^10.0.2",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-react": "^7.37.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"postcss": "^8.4.47",
|
||||
"prettier": "^3.2.5",
|
||||
"tailwind-scrollbar": "^3.0.5",
|
||||
"tailwindcss": "^3.4.14",
|
||||
"typescript": "^5.6.3"
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
"eslint-plugin-prettier": "^5.2.3",
|
||||
"eslint-plugin-react": "^7.37.4",
|
||||
"eslint-plugin-react-hooks": "^5.1.0",
|
||||
"postcss": "^8.5.2",
|
||||
"prettier": "^3.5.2",
|
||||
"tailwind-scrollbar": "^4.0.1",
|
||||
"tailwindcss": "^4.0.9",
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"osx-temperature-sensor": "^1.0.8"
|
||||
|
||||
4421
pnpm-lock.yaml
generated
4421
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
"@tailwindcss/postcss": {},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Op",
|
||||
"received": "Ontvang",
|
||||
"sent": "Gestuur",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Voorvoegsel"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Stroomop",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Gekoppelde APs",
|
||||
"activeUser": "Aktiewe toestelle",
|
||||
"alerts": "Waarskuwings",
|
||||
"connectedGateway": "Gekoppelde poorte",
|
||||
"connectedGateways": "Gekoppelde poorte",
|
||||
"connectedSwitches": "Gekoppelde skakelaars"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Verwerk",
|
||||
"time": "Tyd"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Netto Waarde",
|
||||
"budget": "Begroting"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Databronne",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Naam",
|
||||
"systems": "Stelsels",
|
||||
"up": "Op",
|
||||
"down": "Af",
|
||||
"paused": "Onderbreek",
|
||||
"pending": "Afwagtend",
|
||||
"status": "Status",
|
||||
"updated": "Opgedateer",
|
||||
"cpu": "SVE",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Kwessies",
|
||||
"merges": "Saamvleg Versoeke",
|
||||
"projects": "Projekte"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Las",
|
||||
"bcharge": "Batterylading",
|
||||
"timeleft": "Oorblywende Tyd"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Merkers"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "يعمل",
|
||||
"received": "تم الإستلام",
|
||||
"sent": "تم الإرسال",
|
||||
"externalIPAddress": "IP الخارجي"
|
||||
"externalIPAddress": "IP الخارجي",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "تدفق",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "المتصلة APs",
|
||||
"activeUser": "الأجهزة النشطة",
|
||||
"alerts": "تنبيهات",
|
||||
"connectedGateway": "البوابات المتصلة",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "مفاتيح التبديل المتصلة"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "معالجة",
|
||||
"time": "الوقت"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "لوحات المعلومات",
|
||||
"datasources": "مصادر البيانات",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "الاسم",
|
||||
"systems": "Systems",
|
||||
"up": "يعمل",
|
||||
"down": "لا يعمل",
|
||||
"paused": "متوقف",
|
||||
"pending": "معلق",
|
||||
"status": "الحالة",
|
||||
"updated": "محدث",
|
||||
"cpu": "المعالج",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "المُشكِلات",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "الحالة",
|
||||
"load": "الضغط",
|
||||
"bcharge": "شحن البطارية",
|
||||
"timeleft": "الوقت المتبقي"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "التصنيفات"
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -148,7 +148,9 @@
|
||||
"up": "Actiu",
|
||||
"received": "Rebuts",
|
||||
"sent": "Enviats",
|
||||
"externalIPAddress": "IP ext."
|
||||
"externalIPAddress": "IP ext.",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "AP connectats",
|
||||
"activeUser": "Dispositius actius",
|
||||
"alerts": "Alertes",
|
||||
"connectedGateway": "Pasarel·les connectades",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Conmutadors connectats"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processat",
|
||||
"time": "Temps"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Taulells",
|
||||
"datasources": "Orígens de dades",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nom",
|
||||
"systems": "Sistemes",
|
||||
"up": "Actiu",
|
||||
"down": "Inactiu",
|
||||
"paused": "En pausa",
|
||||
"pending": "Pendent",
|
||||
"status": "Estat",
|
||||
"updated": "Actualitzat",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problemes",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projectes"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Estat",
|
||||
"load": "Càrrega",
|
||||
"bcharge": "Càrrega de la bateria",
|
||||
"timeleft": "Temps restant"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Etiquetes"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Přijaté",
|
||||
"sent": "Odeslané",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Odesílání dat",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Připojené APs",
|
||||
"activeUser": "Aktivní zařízení",
|
||||
"alerts": "Upozornění",
|
||||
"connectedGateway": "Připojené brány",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Připojené přepínače"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Zpracováno",
|
||||
"time": "Čas"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Nástěnky",
|
||||
"datasources": "Zdroje dat",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Pozastaveno",
|
||||
"pending": "Čeká",
|
||||
"status": "Stav",
|
||||
"updated": "Aktualizováno",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problémy",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stav",
|
||||
"load": "Zatížení",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Zbývající čas"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Op",
|
||||
"received": "Modtaget",
|
||||
"sent": "Sendt",
|
||||
"externalIPAddress": "Ekstern IP"
|
||||
"externalIPAddress": "Ekstern IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Forbundne APs",
|
||||
"activeUser": "Aktive enheder",
|
||||
"alerts": "Advarsler",
|
||||
"connectedGateway": "Forbundne gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Forbundne switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Behandlet",
|
||||
"time": "Tid"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Kontrolpanel",
|
||||
"datasources": "Data Kilder",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Navn",
|
||||
"systems": "Systems",
|
||||
"up": "Op",
|
||||
"down": "Ned",
|
||||
"paused": "Pause",
|
||||
"pending": "Afventer",
|
||||
"status": "Status",
|
||||
"updated": "Opdateret",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problemer",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Belastning",
|
||||
"bcharge": "Batteriniveau",
|
||||
"timeleft": "Resterende tid"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,16 +85,16 @@
|
||||
"ping": {
|
||||
"error": "Fehler",
|
||||
"ping": "Ping",
|
||||
"down": "Empfangen",
|
||||
"up": "Senden",
|
||||
"down": "Offline",
|
||||
"up": "Online",
|
||||
"not_available": "Nicht verfügbar"
|
||||
},
|
||||
"siteMonitor": {
|
||||
"http_status": "HTTP-Status",
|
||||
"error": "Fehler",
|
||||
"response": "Antwort",
|
||||
"down": "Empfangen",
|
||||
"up": "Senden",
|
||||
"down": "Offline",
|
||||
"up": "Online",
|
||||
"not_available": "Nicht verfügbar"
|
||||
},
|
||||
"emby": {
|
||||
@@ -144,11 +144,13 @@
|
||||
"uptime": "Betriebszeit",
|
||||
"maxDown": "Max. Down",
|
||||
"maxUp": "Max. Up",
|
||||
"down": "Empfangen",
|
||||
"up": "Senden",
|
||||
"down": "Offline",
|
||||
"up": "Online",
|
||||
"received": "Empfangen",
|
||||
"sent": "Gesendet",
|
||||
"externalIPAddress": "Externe IP"
|
||||
"externalIPAddress": "Externe IP",
|
||||
"externalIPv6Address": "Externe IPv6",
|
||||
"externalIPv6Prefix": "Externer IPv4-Präfix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Verbundene APs",
|
||||
"activeUser": "Aktive Geräte",
|
||||
"alerts": "Warnungen",
|
||||
"connectedGateway": "Verbundene Gateways",
|
||||
"connectedGateways": "Verbundene Gateways",
|
||||
"connectedSwitches": "Verbundene Switche"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -350,7 +352,7 @@
|
||||
"queue": "Warteschlange",
|
||||
"processed": "Verarbeitet",
|
||||
"errored": "Fehlgeschlagen",
|
||||
"saved": "Gespeichert"
|
||||
"saved": "Eingespart"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Router",
|
||||
@@ -521,15 +523,15 @@
|
||||
"up_to_date": "Aktuell",
|
||||
"child_bridges": "Unter-Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Senden",
|
||||
"up": "Online",
|
||||
"pending": "Ausstehend",
|
||||
"down": "Empfangen"
|
||||
"down": "Offline"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Neu",
|
||||
"up": "Senden",
|
||||
"up": "Online",
|
||||
"grace": "In Karenzzeit",
|
||||
"down": "Empfangen",
|
||||
"down": "Offline",
|
||||
"paused": "Pausiert",
|
||||
"status": "Status",
|
||||
"last_ping": "Letzter Ping",
|
||||
@@ -644,8 +646,8 @@
|
||||
"load": "Durchschnittliche Last",
|
||||
"memory": "Speichernutzung",
|
||||
"wanStatus": "WAN-Status",
|
||||
"up": "Senden",
|
||||
"down": "Empfangen",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"temp": "Temperatur",
|
||||
"disk": "Datenträgernutzung",
|
||||
"wanIP": "WAN-IP"
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Verarbeitet",
|
||||
"time": "Zeit"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Reinvermögen",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Datenquellen",
|
||||
@@ -826,8 +832,8 @@
|
||||
"openwrt": {
|
||||
"uptime": "Betriebszeit",
|
||||
"cpuLoad": "CPU-Last (5 min-Durchschnitt)",
|
||||
"up": "Senden",
|
||||
"down": "Empfangen",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"bytesTx": "Übertragen",
|
||||
"bytesRx": "Empfangen"
|
||||
},
|
||||
@@ -840,9 +846,9 @@
|
||||
"sitesDown": "Seiten nicht verfügbar",
|
||||
"paused": "Pausiert",
|
||||
"notyetchecked": "Noch nicht geprüft",
|
||||
"up": "Senden",
|
||||
"up": "Online",
|
||||
"seemsdown": "Scheint nicht verfügbar",
|
||||
"down": "Empfangen",
|
||||
"down": "Offline",
|
||||
"unknown": "Unbekannt"
|
||||
},
|
||||
"calendar": {
|
||||
@@ -981,7 +987,10 @@
|
||||
"beszel": {
|
||||
"name": "Name",
|
||||
"systems": "Systeme",
|
||||
"up": "Senden",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"paused": "Pausiert",
|
||||
"pending": "Ausstehend",
|
||||
"status": "Status",
|
||||
"updated": "Aktualisiert",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Probleme",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projekte"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Last",
|
||||
"bcharge": "Akkuladung",
|
||||
"timeleft": "Verbleibende Zeit"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Schlagwörter"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Ping up",
|
||||
"received": "Ληφθέντα",
|
||||
"sent": "Απεσταλμένα",
|
||||
"externalIPAddress": "Εξωτερική IP"
|
||||
"externalIPAddress": "Εξωτερική IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Συνδεδεμένα APs",
|
||||
"activeUser": "Ενεργές συσκευές",
|
||||
"alerts": "Ειδοποιήσεις",
|
||||
"connectedGateway": "Συνδεδεμένα gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Συνδεδεμένα switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Σε επεξεργασία",
|
||||
"time": "Ώρα"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Πίνακας Ελέγχου",
|
||||
"datasources": "Πηγές Δεδομένων",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Όνομα",
|
||||
"systems": "Systems",
|
||||
"up": "Ping up",
|
||||
"down": "Ping down",
|
||||
"paused": "Paused",
|
||||
"pending": "Σε εκκρεμότητα",
|
||||
"status": "Κατάσταση",
|
||||
"updated": "Ενημερώθηκε",
|
||||
"cpu": "Επεξεργαστής",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Κατάσταση",
|
||||
"load": "Φόρτωση",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Χρόνος που απομένει"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Ετικέτες"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Load",
|
||||
"bcharge":"Battery Charge",
|
||||
"timeleft":"Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Stato",
|
||||
"updated": "Updated",
|
||||
"cpu": "Ĉefprocesoro",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stato",
|
||||
"load": "Ŝarĝo",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Activo",
|
||||
"received": "Recibido",
|
||||
"sent": "Enviado",
|
||||
"externalIPAddress": "IP ext."
|
||||
"externalIPAddress": "IP ext.",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstream (desarrollo de software)",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "AP conectados",
|
||||
"activeUser": "Dispositivos activos",
|
||||
"alerts": "Alertas",
|
||||
"connectedGateway": "Puertas de enlace conectadas",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Conmutadores conectados"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -311,13 +313,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Descargado",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"nondownload": "No descargado",
|
||||
"read": "Leer",
|
||||
"unread": "Sin leer",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
"downloadedread": "Descargado y leído",
|
||||
"downloadedunread": "Descargado y no leído",
|
||||
"nondownloadedread": "No descargado y leído",
|
||||
"nondownloadedunread": "No descargado y no leído"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Dirección",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Procesado",
|
||||
"time": "Tiempo"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Tableros",
|
||||
"datasources": "Fuentes de datos",
|
||||
@@ -980,32 +986,49 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Nombre",
|
||||
"systems": "Systems",
|
||||
"systems": "Sistemas",
|
||||
"up": "Activo",
|
||||
"down": "Inactivo",
|
||||
"paused": "Pausado",
|
||||
"pending": "Pendiente",
|
||||
"status": "Estado",
|
||||
"updated": "Actualizado",
|
||||
"cpu": "CPU",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"network": "NET"
|
||||
"disk": "Disco",
|
||||
"network": "RED"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"synced": "Sincronizado",
|
||||
"outOfSync": "Desincronizado",
|
||||
"healthy": "Saludable",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "Degradado",
|
||||
"progressing": "Progresando",
|
||||
"missing": "Faltantes",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Suspendido"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Cargando"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Grupos",
|
||||
"issues": "Números",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "Solicitudes de fusión",
|
||||
"projects": "Proyectos"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Estado",
|
||||
"load": "Carga",
|
||||
"bcharge": "Carga de la batería",
|
||||
"timeleft": "Tiempo restante"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Etiquetas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,16 +85,16 @@
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
"ping": "Ping",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"down": "Behera",
|
||||
"up": "Gora",
|
||||
"not_available": "Not Available"
|
||||
},
|
||||
"siteMonitor": {
|
||||
"http_status": "HTTP status",
|
||||
"error": "Error",
|
||||
"response": "Response",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"response": "Erantzuna",
|
||||
"down": "Behera",
|
||||
"up": "Gora",
|
||||
"not_available": "Not Available"
|
||||
},
|
||||
"emby": {
|
||||
@@ -102,8 +102,8 @@
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bit-tasa",
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"movies": "Filmak",
|
||||
"series": "Serieak",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Abestiak"
|
||||
},
|
||||
@@ -115,40 +115,42 @@
|
||||
"unknown": "Ezezaguna"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"pv_power": "Produkzioak",
|
||||
"battery_soc": "Bateria",
|
||||
"grid_power": "Sarea",
|
||||
"home_power": "Kontsumoa",
|
||||
"charge_power": "Kargagailua",
|
||||
"kilowatt": "kW"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Harpidetzak",
|
||||
"unread": "Irakurri gabe"
|
||||
},
|
||||
"fritzbox": {
|
||||
"connectionStatus": "Status",
|
||||
"connectionStatusUnconfigured": "Unconfigured",
|
||||
"connectionStatusConnecting": "Connecting",
|
||||
"connectionStatusConnecting": "Konektatzen",
|
||||
"connectionStatusAuthenticating": "Authenticating",
|
||||
"connectionStatusPendingDisconnect": "Pending Disconnect",
|
||||
"connectionStatusDisconnecting": "Disconnecting",
|
||||
"connectionStatusDisconnected": "Disconnected",
|
||||
"connectionStatusConnected": "Connected",
|
||||
"connectionStatusDisconnected": "Deskonektatuta",
|
||||
"connectionStatusConnected": "Konektatuta",
|
||||
"uptime": "Uptime",
|
||||
"maxDown": "Max. Down",
|
||||
"maxUp": "Max. Up",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"down": "Behera",
|
||||
"up": "Gora",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"sent": "Bidalita",
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -187,7 +189,7 @@
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"albums": "Albums",
|
||||
"movies": "Movies",
|
||||
"movies": "Filmak",
|
||||
"tv": "TV Shows"
|
||||
},
|
||||
"sabnzbd": {
|
||||
@@ -197,18 +199,18 @@
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Active",
|
||||
"upload": "Upload",
|
||||
"download": "Download"
|
||||
"upload": "Kargatu",
|
||||
"download": "Jeitsierak"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
@@ -221,8 +223,8 @@
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
@@ -231,15 +233,15 @@
|
||||
"cachemissbytes": "Cache Miss Bytes"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series",
|
||||
"series": "Serieak",
|
||||
"queue": "Queue",
|
||||
"unknown": "Ezezaguna"
|
||||
},
|
||||
@@ -247,7 +249,7 @@
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies",
|
||||
"movies": "Filmak",
|
||||
"queue": "Queue",
|
||||
"unknown": "Ezezaguna"
|
||||
},
|
||||
@@ -283,7 +285,7 @@
|
||||
},
|
||||
"netalertx": {
|
||||
"total": "Guztira",
|
||||
"connected": "Connected",
|
||||
"connected": "Konektatuta",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
},
|
||||
@@ -300,8 +302,8 @@
|
||||
"latency": "Latency"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"upload": "Kargatu",
|
||||
"download": "Jeitsierak",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
@@ -313,7 +315,7 @@
|
||||
"download": "Downloaded",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"read": "Read",
|
||||
"unread": "Unread",
|
||||
"unread": "Irakurri gabe",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
@@ -403,7 +405,7 @@
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Serieak"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Jokalariak",
|
||||
@@ -414,7 +416,7 @@
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"unread": "Irakurri gabe"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
@@ -521,15 +523,15 @@
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"up": "Gora",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
"down": "Behera"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Up",
|
||||
"up": "Gora",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Down",
|
||||
"down": "Behera",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
@@ -644,8 +646,8 @@
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"up": "Gora",
|
||||
"down": "Behera",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
@@ -658,7 +660,7 @@
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"photos": "Argazkiak",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
},
|
||||
@@ -670,14 +672,14 @@
|
||||
"m": "m"
|
||||
},
|
||||
"atsumeru": {
|
||||
"series": "Series",
|
||||
"series": "Serieak",
|
||||
"archives": "Archives",
|
||||
"chapters": "Chapters",
|
||||
"categories": "Categories"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"series": "Serieak",
|
||||
"books": "Books"
|
||||
},
|
||||
"diskstation": {
|
||||
@@ -686,13 +688,13 @@
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"series": "Serieak",
|
||||
"issues": "Arazoak",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"photos": "Argazkiak",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -766,7 +772,7 @@
|
||||
"books": "Books",
|
||||
"authors": "Authors",
|
||||
"categories": "Categories",
|
||||
"series": "Series"
|
||||
"series": "Serieak"
|
||||
},
|
||||
"jdownloader": {
|
||||
"downloadCount": "Queue",
|
||||
@@ -775,7 +781,7 @@
|
||||
"downloadSpeed": "Speed"
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "Series",
|
||||
"seriesCount": "Serieak",
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"azuredevops": {
|
||||
@@ -795,8 +801,8 @@
|
||||
"status": "Status",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"name": "Izena",
|
||||
"map": "Mapa",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Jokalariak",
|
||||
"maxPlayers": "Max players",
|
||||
@@ -813,10 +819,10 @@
|
||||
"recipes": "Recipes",
|
||||
"users": "Users",
|
||||
"categories": "Categories",
|
||||
"tags": "Tags"
|
||||
"tags": "Etiketak"
|
||||
},
|
||||
"openmediavault": {
|
||||
"downloading": "Downloading",
|
||||
"downloading": "Deskargatzen",
|
||||
"total": "Guztira",
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
@@ -826,8 +832,8 @@
|
||||
"openwrt": {
|
||||
"uptime": "Uptime",
|
||||
"cpuLoad": "CPU Load Avg (5m)",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"up": "Gora",
|
||||
"down": "Behera",
|
||||
"bytesTx": "Transmitted",
|
||||
"bytesRx": "Received"
|
||||
},
|
||||
@@ -840,9 +846,9 @@
|
||||
"sitesDown": "Sites Down",
|
||||
"paused": "Paused",
|
||||
"notyetchecked": "Not Yet Checked",
|
||||
"up": "Up",
|
||||
"up": "Gora",
|
||||
"seemsdown": "Seems Down",
|
||||
"down": "Down",
|
||||
"down": "Behera",
|
||||
"unknown": "Ezezaguna"
|
||||
},
|
||||
"calendar": {
|
||||
@@ -850,7 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found"
|
||||
"noEventsFound": "Ez da gertaerarik aurkitu."
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -862,7 +868,7 @@
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mailboxes": "Gutunontziak",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
@@ -871,14 +877,14 @@
|
||||
"criticals": "Criticals"
|
||||
},
|
||||
"plantit": {
|
||||
"events": "Events",
|
||||
"plants": "Plants",
|
||||
"photos": "Photos",
|
||||
"events": "Ekitaldiak",
|
||||
"plants": "Landareak",
|
||||
"photos": "Argazkiak",
|
||||
"species": "Species"
|
||||
},
|
||||
"gitea": {
|
||||
"notifications": "Notifications",
|
||||
"issues": "Issues",
|
||||
"notifications": "Jakinarazpenak",
|
||||
"issues": "Arazoak",
|
||||
"pulls": "Pull Requests"
|
||||
},
|
||||
"stash": {
|
||||
@@ -888,34 +894,34 @@
|
||||
"playDuration": "Time Watched",
|
||||
"sceneSize": "Scenes Size",
|
||||
"sceneDuration": "Scenes Duration",
|
||||
"images": "Images",
|
||||
"imageSize": "Images Size",
|
||||
"images": "Irudia",
|
||||
"imageSize": "Irudiaren tamaina",
|
||||
"galleries": "Galleries",
|
||||
"performers": "Performers",
|
||||
"studios": "Studios",
|
||||
"movies": "Movies",
|
||||
"tags": "Tags",
|
||||
"movies": "Filmak",
|
||||
"tags": "Etiketak",
|
||||
"oCount": "O Count"
|
||||
},
|
||||
"tandoor": {
|
||||
"users": "Users",
|
||||
"recipes": "Recipes",
|
||||
"keywords": "Keywords"
|
||||
"keywords": "Hitz gakoak"
|
||||
},
|
||||
"homebox": {
|
||||
"items": "Items",
|
||||
"items": "Elementuak",
|
||||
"totalWithWarranty": "With Warranty",
|
||||
"locations": "Locations",
|
||||
"labels": "Labels",
|
||||
"labels": "Etiketak",
|
||||
"users": "Users",
|
||||
"totalValue": "Total Value"
|
||||
"totalValue": "Guztira"
|
||||
},
|
||||
"crowdsec": {
|
||||
"alerts": "Alerts",
|
||||
"bans": "Bans"
|
||||
},
|
||||
"wgeasy": {
|
||||
"connected": "Connected",
|
||||
"connected": "Konektatuta",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "Guztira"
|
||||
@@ -928,8 +934,8 @@
|
||||
},
|
||||
"myspeed": {
|
||||
"ping": "Ping",
|
||||
"download": "Download",
|
||||
"upload": "Upload"
|
||||
"download": "Jeitsierak",
|
||||
"upload": "Kargatu"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Stocks",
|
||||
@@ -945,23 +951,23 @@
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
"collections": "Collections",
|
||||
"tags": "Tags"
|
||||
"collections": "Bildumak",
|
||||
"tags": "Etiketak"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Not classified",
|
||||
"information": "Informazioa",
|
||||
"warning": "Warning",
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"warning": "Abisua",
|
||||
"average": "Batez besteko",
|
||||
"high": "Altua",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"vehicles": "Ibilgailuak",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"reminders": "Oroigarriak",
|
||||
"nextReminder": "Hurrengo abisua",
|
||||
"none": "None"
|
||||
},
|
||||
"vikunja": {
|
||||
@@ -971,7 +977,7 @@
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Name",
|
||||
"name": "Izena",
|
||||
"address": "Address",
|
||||
"last_seen": "Last Seen",
|
||||
"status": "Status",
|
||||
@@ -979,9 +985,12 @@
|
||||
"offline": "Offline"
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Name",
|
||||
"name": "Izena",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"up": "Gora",
|
||||
"down": "Behera",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -990,22 +999,36 @@
|
||||
"network": "NET"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"apps": "Aplikazioak",
|
||||
"synced": "Sinkronizatuta",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"healthy": "Osasuntsu",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"missing": "Missing",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Etenda"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Loading"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"issues": "Issues",
|
||||
"groups": "Taldeak",
|
||||
"issues": "Arazoak",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"projects": "Proiektuak"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Load",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Laster-markak",
|
||||
"favorites": "Gogokoak",
|
||||
"archived": "Artxibatuta",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Zerrendak",
|
||||
"tags": "Etiketak"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Vireillä",
|
||||
"status": "Tila",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Tila",
|
||||
"load": "Kuorma",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Aikaa jäljellä"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,14 +57,14 @@
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Équipt.",
|
||||
"lan_devices": "Équipt. LAN",
|
||||
"wlan_devices": "Équipt. WLAN",
|
||||
"lan_devices": "Périphériques LAN",
|
||||
"wlan_devices": "Périphériques WLAN",
|
||||
"lan_users": "Utilisateurs LAN",
|
||||
"wlan_users": "Utilisateurs WLAN",
|
||||
"up": "Up",
|
||||
"down": "INACTIF",
|
||||
"wait": "Veuillez patienter",
|
||||
"empty_data": "Statut sous-système inconnu"
|
||||
"empty_data": "Statut du sous-système inconnu"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
@@ -77,24 +77,24 @@
|
||||
"unknown": "Inconnu",
|
||||
"healthy": "Fonctionnel",
|
||||
"starting": "Démarrage",
|
||||
"unhealthy": "Dysfonctionnement",
|
||||
"not_found": "Inconnu",
|
||||
"unhealthy": "Mauvaise santé",
|
||||
"not_found": "Introuvable",
|
||||
"exited": "Arrêté",
|
||||
"partial": "Partiel"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Erreur",
|
||||
"ping": "Ping",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"ping": "Latence",
|
||||
"down": "Bas",
|
||||
"up": "Haut",
|
||||
"not_available": "Non disponible"
|
||||
},
|
||||
"siteMonitor": {
|
||||
"http_status": "Statut HTTP",
|
||||
"error": "Erreur",
|
||||
"response": "Réponse",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"down": "Bas",
|
||||
"up": "Haut",
|
||||
"not_available": "Non disponible"
|
||||
},
|
||||
"emby": {
|
||||
@@ -105,7 +105,7 @@
|
||||
"movies": "Films",
|
||||
"series": "Séries TV",
|
||||
"episodes": "Épisodes",
|
||||
"songs": "Musique"
|
||||
"songs": "Chansons"
|
||||
},
|
||||
"esphome": {
|
||||
"offline": "Hors ligne",
|
||||
@@ -124,7 +124,7 @@
|
||||
},
|
||||
"flood": {
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
@@ -144,23 +144,25 @@
|
||||
"uptime": "Démarré depuis",
|
||||
"maxDown": "Max. Bas",
|
||||
"maxUp": "Max. Haut",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"down": "Bas",
|
||||
"up": "Haut",
|
||||
"received": "Reçu",
|
||||
"sent": "Envoyé",
|
||||
"externalIPAddress": "IP externe"
|
||||
"externalIPAddress": "IP externe",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"upstreams": "En amont",
|
||||
"requests": "Demandes en cours",
|
||||
"requests_failed": "Demandes échouées"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observé",
|
||||
"diffsDetected": "Diffs détectées"
|
||||
"diffsDetected": "Différences détectées"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Affichages",
|
||||
"shows": "Séries",
|
||||
"recordings": "Enregistrements",
|
||||
"scheduled": "Planifié",
|
||||
"passes": "Passes"
|
||||
@@ -174,10 +176,10 @@
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "AP connectés",
|
||||
"activeUser": "Équipts actifs",
|
||||
"activeUser": "Périphériques actifs",
|
||||
"alerts": "Alertes",
|
||||
"connectedGateway": "Passerelles connectées",
|
||||
"connectedSwitches": "Switches connectés"
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Switchs connectés"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Débit",
|
||||
@@ -188,7 +190,7 @@
|
||||
"streams": "Flux actif",
|
||||
"albums": "Albums",
|
||||
"movies": "Films",
|
||||
"tv": "Séries TV"
|
||||
"tv": "Séries"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Débit",
|
||||
@@ -197,32 +199,32 @@
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Actif",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"download": "Récep."
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "Cpu",
|
||||
"memUsage": "Mém",
|
||||
"systemTempC": "Temp",
|
||||
"poolUsage": "Pool",
|
||||
"volumeUsage": "Volume",
|
||||
"cpuUsage": "Processeur utilisé",
|
||||
"memUsage": "Mémoire utilisée",
|
||||
"systemTempC": "Température système",
|
||||
"poolUsage": "Utilisation de la pool",
|
||||
"volumeUsage": "Utilisation du volume",
|
||||
"invalid": "Invalide"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
@@ -232,33 +234,33 @@
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"series": "Séries TV",
|
||||
"queue": "En attente",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Demande",
|
||||
"wanted": "Demandé",
|
||||
"missing": "Manquant",
|
||||
"queued": "Attente",
|
||||
"queued": "En file d'attente",
|
||||
"movies": "Films",
|
||||
"queue": "En attente",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"artists": "Artistes"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"books": "Livres"
|
||||
},
|
||||
"bazarr": {
|
||||
@@ -267,18 +269,18 @@
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "En attente",
|
||||
"approved": "Validé",
|
||||
"approved": "Approuvé",
|
||||
"available": "Disponible"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "En attente",
|
||||
"approved": "Validé",
|
||||
"approved": "Approuvé",
|
||||
"available": "Disponible"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "En attente",
|
||||
"processing": "Traitement",
|
||||
"approved": "Validé",
|
||||
"processing": "En cours de traitement",
|
||||
"approved": "Approuvé",
|
||||
"available": "Disponible"
|
||||
},
|
||||
"netalertx": {
|
||||
@@ -290,7 +292,7 @@
|
||||
"pihole": {
|
||||
"queries": "Requêtes",
|
||||
"blocked": "Bloqué",
|
||||
"blocked_percent": "Bloqué %",
|
||||
"blocked_percent": "% bloqué",
|
||||
"gravity": "Listes dom. bloqués"
|
||||
},
|
||||
"adguard": {
|
||||
@@ -300,9 +302,9 @@
|
||||
"latency": "Latence"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Envoi",
|
||||
"upload": "Téléverser",
|
||||
"download": "Récep.",
|
||||
"ping": "Ping"
|
||||
"ping": "Latence"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Démarré",
|
||||
@@ -335,7 +337,7 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Requêtes",
|
||||
"totalNoError": "Effectué avec succès",
|
||||
"totalNoError": "Succès",
|
||||
"totalServerFailure": "Échecs",
|
||||
"totalNxDomain": "Domaines NX",
|
||||
"totalRefused": "Refusés",
|
||||
@@ -349,8 +351,8 @@
|
||||
"tdarr": {
|
||||
"queue": "En attente",
|
||||
"processed": "Traité",
|
||||
"errored": "En erreur",
|
||||
"saved": "Libéré"
|
||||
"errored": "Erroné",
|
||||
"saved": "Enregistré"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routeurs",
|
||||
@@ -374,35 +376,35 @@
|
||||
"30days": "30 Jours"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applis",
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Msg"
|
||||
"messages": "Messages"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexeur",
|
||||
"numberOfGrabs": "Capture",
|
||||
"numberOfGrabs": "Captures",
|
||||
"numberOfQueries": "Requêtes",
|
||||
"numberOfFailGrabs": "Capt. échouée",
|
||||
"numberOfFailQueries": "Dem. échouée"
|
||||
"numberOfFailGrabs": "Captures échouées",
|
||||
"numberOfFailQueries": "Demandes échouées"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configuré",
|
||||
"errored": "En erreur"
|
||||
"errored": "Erroné"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Cnx",
|
||||
"numConnections": "Connexions",
|
||||
"dataRelayed": "Relayé",
|
||||
"transferRate": "Débit"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Utilisateurs",
|
||||
"status_count": "Messages",
|
||||
"status_count": "Articles",
|
||||
"domain_count": "Domaines"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"series": "Séries TV"
|
||||
},
|
||||
"minecraft": {
|
||||
@@ -418,13 +420,13 @@
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Utilisateurs",
|
||||
"loginsLast24H": "Cnx. (24h)",
|
||||
"failedLoginsLast24H": "Cnx. échouées (24h)"
|
||||
"loginsLast24H": "Connexions (24 h)",
|
||||
"failedLoginsLast24H": "Connexions échouées (24 h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MÉM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LxC",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
"glances": {
|
||||
@@ -432,7 +434,7 @@
|
||||
"load": "Charge",
|
||||
"wait": "Veuillez patienter",
|
||||
"temp": "Temp",
|
||||
"_temp": "T°",
|
||||
"_temp": "Température",
|
||||
"warn": "Alerte",
|
||||
"uptime": "Up",
|
||||
"total": "Total",
|
||||
@@ -443,12 +445,12 @@
|
||||
"crit": "Crit.",
|
||||
"read": "Lu",
|
||||
"write": "Écrit.",
|
||||
"gpu": "GPU",
|
||||
"gpu": "Carte Graphique",
|
||||
"mem": "Mém.",
|
||||
"swap": "Swap"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Signet",
|
||||
"bookmark": "Marque-Page",
|
||||
"service": "Service",
|
||||
"search": "Recherche",
|
||||
"custom": "Personnalisé",
|
||||
@@ -458,13 +460,13 @@
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Ensoleillé",
|
||||
"0-night": "Ciel clair",
|
||||
"0-night": "Clair",
|
||||
"1-day": "Principalement ensoleillé",
|
||||
"1-night": "Principalement clair",
|
||||
"2-day": "Partiellement couvert",
|
||||
"2-night": "Partiellement couvert",
|
||||
"3-day": "Couvert",
|
||||
"3-night": "Couvert",
|
||||
"2-day": "Partiellement nuageux",
|
||||
"2-night": "Partiellement nuageux",
|
||||
"3-day": "Nuageux",
|
||||
"3-night": "Nuageux",
|
||||
"45-day": "Brumeux",
|
||||
"45-night": "Brumeux",
|
||||
"48-day": "Brumeux",
|
||||
@@ -483,14 +485,14 @@
|
||||
"61-night": "Pluie légère",
|
||||
"63-day": "Pluie",
|
||||
"63-night": "Pluie",
|
||||
"65-day": "Pluie forte",
|
||||
"65-night": "Pluie forte",
|
||||
"65-day": "Forte pluie",
|
||||
"65-night": "Forte pluie",
|
||||
"66-day": "Pluie verglaçante",
|
||||
"66-night": "Pluie verglaçante",
|
||||
"67-day": "Pluie verglaçante",
|
||||
"67-night": "Pluie verglaçante",
|
||||
"71-day": "Neige légère",
|
||||
"71-night": "Neige légère",
|
||||
"71-day": "Légères chutes de neige",
|
||||
"71-night": "Légères chutes de neige",
|
||||
"73-day": "Neige",
|
||||
"73-night": "Neige",
|
||||
"75-day": "Neige abondante",
|
||||
@@ -521,15 +523,15 @@
|
||||
"up_to_date": "À jour",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"up": "Haut",
|
||||
"pending": "En attente",
|
||||
"down": "Down"
|
||||
"down": "Bas"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nouveau",
|
||||
"up": "Up",
|
||||
"up": "Haut",
|
||||
"grace": "En Période de Grâce",
|
||||
"down": "Down",
|
||||
"down": "Bas",
|
||||
"paused": "En Pause",
|
||||
"status": "Statut",
|
||||
"last_ping": "Dernier Ping",
|
||||
@@ -541,7 +543,7 @@
|
||||
"containers_failed": "Échoué"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Validé",
|
||||
"approvedPushes": "Approuvé",
|
||||
"rejectedPushes": "Rejeté",
|
||||
"filters": "Filtres",
|
||||
"indexers": "Indexeur"
|
||||
@@ -550,7 +552,7 @@
|
||||
"downloads": "En attente",
|
||||
"videos": "Vidéos",
|
||||
"channels": "Chaînes",
|
||||
"playlists": "Playlists"
|
||||
"playlists": "Listes de lecture"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "Charge Système",
|
||||
@@ -590,9 +592,9 @@
|
||||
"total": "Total"
|
||||
},
|
||||
"peanut": {
|
||||
"battery_charge": "Charge Batterie",
|
||||
"ups_load": "Charge de l'UPS",
|
||||
"ups_status": "État de l'UPS",
|
||||
"battery_charge": "Charge de la batterie",
|
||||
"ups_load": "Charge de l’ASI",
|
||||
"ups_status": "État de l’ASI",
|
||||
"online": "En ligne",
|
||||
"on_battery": "Sur Batterie",
|
||||
"low_battery": "Batterie Faible"
|
||||
@@ -602,8 +604,8 @@
|
||||
"no_devices": "Aucune donnée d'appareil reçue"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "Charge CPU",
|
||||
"memoryUsed": "Mém. Utilisée",
|
||||
"cpuLoad": "Charge du processeur",
|
||||
"memoryUsed": "Mémoire utilisée",
|
||||
"uptime": "Démarré depuis",
|
||||
"numberOfLeases": "Baux"
|
||||
},
|
||||
@@ -615,25 +617,25 @@
|
||||
"opendtu": {
|
||||
"yieldDay": "Aujourd'hui",
|
||||
"absolutePower": "Puissance",
|
||||
"relativePower": "Puissance %",
|
||||
"relativePower": "% de puissance",
|
||||
"limit": "Limite"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "Charge CPU",
|
||||
"memory": "Mém. utilisée",
|
||||
"cpu": "Charge du processeur",
|
||||
"memory": "Mémoire utilisée",
|
||||
"wanUpload": "WAN Envoi",
|
||||
"wanDownload": "WAN Récep."
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "État Imprimante",
|
||||
"print_status": "Statut Imprimante",
|
||||
"printer_state": "État de l'imprimante",
|
||||
"print_status": "Statut de l'imprimante",
|
||||
"print_progress": "Progression",
|
||||
"layers": "Couches"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Statut",
|
||||
"temp_tool": "Tool T°",
|
||||
"temp_bed": "Bed T°",
|
||||
"temp_tool": "Temp. de l'outil",
|
||||
"temp_bed": "Temp. du lit",
|
||||
"job_completion": "Achèvement"
|
||||
},
|
||||
"cloudflared": {
|
||||
@@ -644,9 +646,9 @@
|
||||
"load": "Charge moy.",
|
||||
"memory": "Util. Mém.",
|
||||
"wanStatus": "Statut WAN",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "T°",
|
||||
"up": "Haut",
|
||||
"down": "Bas",
|
||||
"temp": "Température",
|
||||
"disk": "Util. Disque",
|
||||
"wanIP": "IP WAN"
|
||||
},
|
||||
@@ -688,7 +690,7 @@
|
||||
"mylar": {
|
||||
"series": "Séries TV",
|
||||
"issues": "Anomalies",
|
||||
"wanted": "Demande"
|
||||
"wanted": "Demandé"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
@@ -698,10 +700,14 @@
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "En attente",
|
||||
"processing": "Traitement",
|
||||
"processing": "En cours de traitement",
|
||||
"processed": "Traité",
|
||||
"time": "Temps"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Valeur Nette",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Tableau de bord",
|
||||
"datasources": "Sources données",
|
||||
@@ -754,9 +760,9 @@
|
||||
"booksDuration": "Durée"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"people_home": "Personne à la maison",
|
||||
"lights_on": "Lumières allumées",
|
||||
"switches_on": "Commutateur On"
|
||||
"switches_on": "Interrupteurs allumés"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Conteneurs",
|
||||
@@ -789,7 +795,7 @@
|
||||
"inProgress": "En cours",
|
||||
"totalPrs": "PRs Total",
|
||||
"myPrs": "Mes PRs",
|
||||
"approved": "Validé"
|
||||
"approved": "Approuvé"
|
||||
},
|
||||
"gamedig": {
|
||||
"status": "Statut",
|
||||
@@ -800,8 +806,8 @@
|
||||
"currentPlayers": "Joueurs actuels",
|
||||
"players": "Joueurs",
|
||||
"maxPlayers": "Joueurs max",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
"bots": "Robots",
|
||||
"ping": "Latence"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
@@ -826,8 +832,8 @@
|
||||
"openwrt": {
|
||||
"uptime": "Démarré depuis",
|
||||
"cpuLoad": "Charge moyenne CPU (5 min)",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"up": "Haut",
|
||||
"down": "Bas",
|
||||
"bytesTx": "Transmis",
|
||||
"bytesRx": "Reçu"
|
||||
},
|
||||
@@ -840,9 +846,9 @@
|
||||
"sitesDown": "Hors ligne",
|
||||
"paused": "En Pause",
|
||||
"notyetchecked": "Non vérifié",
|
||||
"up": "Up",
|
||||
"up": "Haut",
|
||||
"seemsdown": "Semble hors ligne",
|
||||
"down": "Down",
|
||||
"down": "Bas",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
"calendar": {
|
||||
@@ -912,7 +918,7 @@
|
||||
},
|
||||
"crowdsec": {
|
||||
"alerts": "Alertes",
|
||||
"bans": "Exclusions"
|
||||
"bans": "Bannissements"
|
||||
},
|
||||
"wgeasy": {
|
||||
"connected": "Connecté",
|
||||
@@ -927,12 +933,12 @@
|
||||
"banned": "Banni"
|
||||
},
|
||||
"myspeed": {
|
||||
"ping": "Ping",
|
||||
"ping": "Latence",
|
||||
"download": "Récep.",
|
||||
"upload": "Envoi"
|
||||
"upload": "Téléverser"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Actions",
|
||||
"stocks": "Stocks",
|
||||
"loading": "Chargement",
|
||||
"open": "Ouvert - Marché américain",
|
||||
"closed": "Fermé - marché américain",
|
||||
@@ -981,7 +987,10 @@
|
||||
"beszel": {
|
||||
"name": "Nom",
|
||||
"systems": "Systèmes",
|
||||
"up": "Up",
|
||||
"up": "Haut",
|
||||
"down": "Bas",
|
||||
"paused": "En Pause",
|
||||
"pending": "En attente",
|
||||
"status": "Statut",
|
||||
"updated": "Mis à jour",
|
||||
"cpu": "CPU",
|
||||
@@ -990,22 +999,36 @@
|
||||
"network": "Réseau"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"apps": "Applications",
|
||||
"synced": "Synchronisé",
|
||||
"outOfSync": "Désynchronisé",
|
||||
"healthy": "Fonctionnel",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "Dégradé",
|
||||
"progressing": "En cours",
|
||||
"missing": "Manquant",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Suspendu"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Chargement"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Groupes",
|
||||
"issues": "Anomalies",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "Demandes de fusion de branches",
|
||||
"projects": "Projets"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Statut",
|
||||
"load": "Charge",
|
||||
"bcharge": "Charge de la batterie",
|
||||
"timeleft": "Temps restant"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Étiquettes"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "ממתין",
|
||||
"status": "סטטוס",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "סטטוס",
|
||||
"load": "עומס",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "זמן שנותר"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Load",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Dostupno",
|
||||
"received": "Primljeno",
|
||||
"sent": "Poslano",
|
||||
"externalIPAddress": "Eksterna IP adresa"
|
||||
"externalIPAddress": "Eksterna IP adresa",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Glavne grane",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Povezani AP-ovi",
|
||||
"activeUser": "Aktivni uređaji",
|
||||
"alerts": "Upozorenja",
|
||||
"connectedGateway": "Povezani pristupi",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Povezani prekidači"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Obrađeno",
|
||||
"time": "Vrijeme"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Pregledne ploče",
|
||||
"datasources": "Izvori podataka",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Ime",
|
||||
"systems": "Systems",
|
||||
"up": "Dostupno",
|
||||
"down": "Nedostupno",
|
||||
"paused": "Zaustavljeno",
|
||||
"pending": "U tijeku",
|
||||
"status": "Stanje",
|
||||
"updated": "Aktualizirano",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problemi",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stanje",
|
||||
"load": "Opterećenje",
|
||||
"bcharge": "Napunjenost baterije",
|
||||
"timeleft": "Preostalo vrijeme"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Oznake"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Fel",
|
||||
"received": "Fogadott",
|
||||
"sent": "Küldött",
|
||||
"externalIPAddress": "Külső IP cím"
|
||||
"externalIPAddress": "Külső IP cím",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreamek",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Csatlakoztatott AP-k",
|
||||
"activeUser": "Aktív eszközök",
|
||||
"alerts": "Riasztások",
|
||||
"connectedGateway": "Csatlakoztatott gateway-ek",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Csatlakoztatott switch-ek"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Feldolgozott",
|
||||
"time": "Idő"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Nettó érték",
|
||||
"budget": "Költségkeret"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Műszerfalak",
|
||||
"datasources": "Adatforrások",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Név",
|
||||
"systems": "Rendszerek",
|
||||
"up": "Fel",
|
||||
"down": "Le",
|
||||
"paused": "Szünetel",
|
||||
"pending": "Függőben",
|
||||
"status": "Státusz",
|
||||
"updated": "Frissített",
|
||||
"cpu": "Processzor",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problémák",
|
||||
"merges": "Merge kérések",
|
||||
"projects": "Projektek"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Státusz",
|
||||
"load": "Terhelés",
|
||||
"bcharge": "Akku töltöttsége",
|
||||
"timeleft": "Hátralévő idő"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Címkék"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"date": "{{value, date}}",
|
||||
"relativeDate": "{{value, relativeDate}}",
|
||||
"duration": "{{value, duration}}",
|
||||
"months": "bulan",
|
||||
"months": "bln",
|
||||
"days": "h",
|
||||
"hours": "j",
|
||||
"minutes": "m",
|
||||
@@ -140,7 +140,7 @@
|
||||
"connectionStatusPendingDisconnect": "Menunggu Terputus",
|
||||
"connectionStatusDisconnecting": "Sedan Memutus",
|
||||
"connectionStatusDisconnected": "Terputus",
|
||||
"connectionStatusConnected": "Connected",
|
||||
"connectionStatusConnected": "Tersambung",
|
||||
"uptime": "Waktu Aktif",
|
||||
"maxDown": "Maks Unduh",
|
||||
"maxUp": "Maks Unggah",
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Hidup",
|
||||
"received": "Diterima",
|
||||
"sent": "Terkirim",
|
||||
"externalIPAddress": "IP Eksternal"
|
||||
"externalIPAddress": "IP Eksternal",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Strim Luar",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "AP Tersambung",
|
||||
"activeUser": "Perangakat yang Aktif",
|
||||
"alerts": "Peringatan",
|
||||
"connectedGateway": "Gateway Tersambung",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Switch Tersambung"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -283,9 +285,9 @@
|
||||
},
|
||||
"netalertx": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
"connected": "Tersambung",
|
||||
"new_devices": "Perangkat Baru",
|
||||
"down_alerts": "Peringatan Pemadaman"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Kueri",
|
||||
@@ -311,17 +313,17 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Terunduh",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"nondownload": "Belum Diunduh",
|
||||
"read": "Baca",
|
||||
"unread": "Belum Dibaca",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
"downloadedread": "Diunduh & Dibaca",
|
||||
"downloadedunread": "Diunduh & Belum Dibaca",
|
||||
"nondownloadedread": "Belum Diunduh & Dibaca",
|
||||
"nondownloadedunread": "Belum Diunduh & Belum Dibaca"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Alamat",
|
||||
"expires": "Kadaluarsa",
|
||||
"expires": "Kedaluwarsa",
|
||||
"never": "Tidak Pernah",
|
||||
"last_seen": "Terakhir terlihat",
|
||||
"now": "Sekarang",
|
||||
@@ -335,10 +337,10 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Kueri",
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalNoError": "Berhasil",
|
||||
"totalServerFailure": "Gagal",
|
||||
"totalNxDomain": "Domain NX",
|
||||
"totalRefused": "Ditolak",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Terproses",
|
||||
"time": "Waktu"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dasbor",
|
||||
"datasources": "Sumber Data",
|
||||
@@ -854,16 +860,16 @@
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platform",
|
||||
"totalRoms": "Games",
|
||||
"totalRoms": "Permainan",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
"states": "Kondisi",
|
||||
"screenshots": "Tangkapan Layar",
|
||||
"totalfilesize": "Total Ukuran"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Jumlah Domain",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"mailboxes": "Kotak surat",
|
||||
"mails": "Surat",
|
||||
"storage": "Penyimpanan"
|
||||
},
|
||||
"netdata": {
|
||||
@@ -882,48 +888,48 @@
|
||||
"pulls": "Pull Requests"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "Scenes",
|
||||
"scenesPlayed": "Scenes Played",
|
||||
"playCount": "Total Plays",
|
||||
"playDuration": "Time Watched",
|
||||
"sceneSize": "Scenes Size",
|
||||
"sceneDuration": "Scenes Duration",
|
||||
"images": "Images",
|
||||
"imageSize": "Images Size",
|
||||
"galleries": "Galleries",
|
||||
"performers": "Performers",
|
||||
"studios": "Studios",
|
||||
"scenes": "Adegan",
|
||||
"scenesPlayed": "Adegan Dimainkan",
|
||||
"playCount": "Total Dimainkan",
|
||||
"playDuration": "Waktu Ditonton",
|
||||
"sceneSize": "Ukuran Adegan",
|
||||
"sceneDuration": "Durasi Adegan",
|
||||
"images": "Gambar",
|
||||
"imageSize": "Ukuran Gambar",
|
||||
"galleries": "Galeri",
|
||||
"performers": "Pemain",
|
||||
"studios": "Studio",
|
||||
"movies": "Film",
|
||||
"tags": "Tag",
|
||||
"oCount": "O Count"
|
||||
"oCount": "Jumlah O"
|
||||
},
|
||||
"tandoor": {
|
||||
"users": "Pengguna",
|
||||
"recipes": "Resep",
|
||||
"keywords": "Keywords"
|
||||
"keywords": "Kata Kunci"
|
||||
},
|
||||
"homebox": {
|
||||
"items": "Items",
|
||||
"totalWithWarranty": "With Warranty",
|
||||
"locations": "Locations",
|
||||
"labels": "Labels",
|
||||
"totalWithWarranty": "Dengan Garansi",
|
||||
"locations": "Lokasi",
|
||||
"labels": "Label",
|
||||
"users": "Pengguna",
|
||||
"totalValue": "Total Value"
|
||||
"totalValue": "Total Nilai"
|
||||
},
|
||||
"crowdsec": {
|
||||
"alerts": "Peringatan",
|
||||
"bans": "Bans"
|
||||
},
|
||||
"wgeasy": {
|
||||
"connected": "Connected",
|
||||
"connected": "Tersambung",
|
||||
"enabled": "Aktif",
|
||||
"disabled": "Nonaktif",
|
||||
"total": "Total"
|
||||
},
|
||||
"swagdashboard": {
|
||||
"proxied": "Proxied",
|
||||
"proxied": "Diproksi",
|
||||
"auth": "With Auth",
|
||||
"outdated": "Outdated",
|
||||
"outdated": "Usang",
|
||||
"banned": "Banned"
|
||||
},
|
||||
"myspeed": {
|
||||
@@ -932,43 +938,43 @@
|
||||
"upload": "Unggah"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Stocks",
|
||||
"loading": "Loading",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Invalid Configuration"
|
||||
"stocks": "Saham",
|
||||
"loading": "Memuat",
|
||||
"open": "Buka - Pasar AS",
|
||||
"closed": "Tutup - Pasar AS",
|
||||
"invalidConfiguration": "Konfigurasi Invalid"
|
||||
},
|
||||
"frigate": {
|
||||
"cameras": "Cameras",
|
||||
"cameras": "Kamera",
|
||||
"uptime": "Waktu Aktif",
|
||||
"version": "Versi"
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
"collections": "Collections",
|
||||
"links": "Tautan",
|
||||
"collections": "Koleksi",
|
||||
"tags": "Tag"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Not classified",
|
||||
"information": "Informasi",
|
||||
"warning": "Warning",
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
"warning": "Peringatan",
|
||||
"average": "Rata-rata",
|
||||
"high": "Tinggi",
|
||||
"disaster": "Bencana"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"vehicle": "Kendaraan",
|
||||
"vehicles": "Kendaraan",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
"reminders": "Pengingat",
|
||||
"nextReminder": "Pengingat Berikutnya",
|
||||
"none": "Tidak ada"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Active Projects",
|
||||
"tasks7d": "Tasks Due This Week",
|
||||
"tasksOverdue": "Overdue Tasks",
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
"projects": "Proyek Aktif",
|
||||
"tasks7d": "Tugas Jatuh Tempo Minggu Ini",
|
||||
"tasksOverdue": "Tugas Terlewat",
|
||||
"tasksInProgress": "Tugas Berlangsung"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Nama",
|
||||
@@ -980,32 +986,49 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Nama",
|
||||
"systems": "Systems",
|
||||
"systems": "Sistem",
|
||||
"up": "Hidup",
|
||||
"down": "Mati",
|
||||
"paused": "Pause",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Terbarui",
|
||||
"cpu": "CPU",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"disk": "Diska",
|
||||
"network": "NET"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"apps": "Apl",
|
||||
"synced": "Tersinkron",
|
||||
"outOfSync": "Tidak Sinkron",
|
||||
"healthy": "Lancar",
|
||||
"degraded": "Degraded",
|
||||
"degraded": "Terdegradasi",
|
||||
"progressing": "Progressing",
|
||||
"missing": "Tidak Ditemukan",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Ditangguhkan"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Loading"
|
||||
"loading": "Memuat"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Grup",
|
||||
"issues": "Isu",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"projects": "Proyek"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Beban",
|
||||
"bcharge": "Sisa Baterai",
|
||||
"timeleft": "Sisa Waktu"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tag"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Ricevuti",
|
||||
"sent": "Inviati",
|
||||
"externalIPAddress": "IP Esterno"
|
||||
"externalIPAddress": "IP Esterno",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstream",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "AP Connessi",
|
||||
"activeUser": "Dispositivi attivi",
|
||||
"alerts": "Allarmi",
|
||||
"connectedGateway": "Gateway connessi",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Switch connessi"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -335,7 +337,7 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Richieste",
|
||||
"totalNoError": "Success",
|
||||
"totalNoError": "Successo",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
@@ -590,7 +592,7 @@
|
||||
"total": "Totale"
|
||||
},
|
||||
"peanut": {
|
||||
"battery_charge": "Battery Charge",
|
||||
"battery_charge": "Carica Batteria",
|
||||
"ups_load": "Carico UPS",
|
||||
"ups_status": "Stato UPS",
|
||||
"online": "Online",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Elaborati",
|
||||
"time": "Tempo"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboard",
|
||||
"datasources": "Origine dei Dati",
|
||||
@@ -854,7 +860,7 @@
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Piattaforme",
|
||||
"totalRoms": "Games",
|
||||
"totalRoms": "Giochi",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
@@ -890,7 +896,7 @@
|
||||
"sceneDuration": "Durata Delle Scene",
|
||||
"images": "Immagini",
|
||||
"imageSize": "Dimensioni immagine",
|
||||
"galleries": "Galleries",
|
||||
"galleries": "Gallerie",
|
||||
"performers": "Esecutori",
|
||||
"studios": "Studi",
|
||||
"movies": "Film",
|
||||
@@ -933,7 +939,7 @@
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Stocks",
|
||||
"loading": "Loading",
|
||||
"loading": "Caricamento",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Invalid Configuration"
|
||||
@@ -944,8 +950,8 @@
|
||||
"version": "Versione"
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
"collections": "Collections",
|
||||
"links": "Collegamenti",
|
||||
"collections": "Raccolte",
|
||||
"tags": "Tag"
|
||||
},
|
||||
"zabbix": {
|
||||
@@ -957,12 +963,12 @@
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"vehicle": "Veicolo",
|
||||
"vehicles": "Veicoli",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
"reminders": "Promemoria",
|
||||
"nextReminder": "Promemoria Seguente",
|
||||
"none": "Nessuno"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Active Projects",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "In Pausa",
|
||||
"pending": "In attesa",
|
||||
"status": "Stato",
|
||||
"updated": "Aggiornato",
|
||||
"cpu": "CPU",
|
||||
@@ -1000,12 +1009,26 @@
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Loading"
|
||||
"loading": "Caricamento"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"issues": "Problemi",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stato",
|
||||
"load": "Carico",
|
||||
"bcharge": "Carica Batteria",
|
||||
"timeleft": "Tempo Rimanente"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tag"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "稼働",
|
||||
"received": "受信済み",
|
||||
"sent": "送信済み",
|
||||
"externalIPAddress": "退出ID"
|
||||
"externalIPAddress": "退出ID",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "アップストリーム",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "接続されたAP",
|
||||
"activeUser": "アクティブデバイス",
|
||||
"alerts": "アラート",
|
||||
"connectedGateway": "接続されたゲートウェイ",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "接続スイッチ"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "処理済み",
|
||||
"time": "時間"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "ダッシュ ボード",
|
||||
"datasources": "データソース",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "名前",
|
||||
"systems": "Systems",
|
||||
"up": "稼働",
|
||||
"down": "下へ",
|
||||
"paused": "一時停止中",
|
||||
"pending": "保留中",
|
||||
"status": "状態",
|
||||
"updated": "更新済",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "課題",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "状態",
|
||||
"load": "ロード",
|
||||
"bcharge": "バッテリー充電",
|
||||
"timeleft": "残り時間"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "タグ"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "수신됨",
|
||||
"sent": "전송됨",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "연결된 AP",
|
||||
"activeUser": "활성 장치",
|
||||
"alerts": "경고",
|
||||
"connectedGateway": "연결된 게이트웨이",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "연결된 스위치"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "처리됨",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "대시보드",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "이름",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "대기 중",
|
||||
"status": "상태",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "상태",
|
||||
"load": "부하",
|
||||
"bcharge": "배터리 충전 중",
|
||||
"timeleft": "남은 시간"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "태그"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Savienotie piekļuves punkti",
|
||||
"activeUser": "Aktīvās ierīces",
|
||||
"alerts": "Paziņojumi",
|
||||
"connectedGateway": "Savienotās vārtejas",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Savienotie komutatori"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Statuss",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Statuss",
|
||||
"load": "Ielādē",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Atlikušais laiks"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Hidup",
|
||||
"received": "Diterima",
|
||||
"sent": "Telah dihantar",
|
||||
"externalIPAddress": "IP Luaran"
|
||||
"externalIPAddress": "IP Luaran",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Peranti aktif",
|
||||
"alerts": "Perhatian",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Sudah diprosess",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nama",
|
||||
"systems": "Systems",
|
||||
"up": "Hidup",
|
||||
"down": "Mati",
|
||||
"paused": "Tangguh",
|
||||
"pending": "Tertunda",
|
||||
"status": "Status",
|
||||
"updated": "Dikemaskini",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Beban",
|
||||
"bcharge": "Bateri dicas",
|
||||
"timeleft": "Masa Tinggal"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tanda nama"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Online",
|
||||
"received": "Ontvangen",
|
||||
"sent": "Verzonden",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Verbonden APs",
|
||||
"activeUser": "Actieve apparaten",
|
||||
"alerts": "Meldingen",
|
||||
"connectedGateway": "Verbonden gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Verbonden switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -311,13 +313,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Gedownload",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"nondownload": "Niet gedownload",
|
||||
"read": "Gelezen",
|
||||
"unread": "Ongelezen",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
"downloadedread": "Gedownload & gelezen",
|
||||
"downloadedunread": "Gedownload & ongelezen",
|
||||
"nondownloadedread": "Niet-gedownload & gelezen",
|
||||
"nondownloadedunread": "Niet-gedownload & ongelezen"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adres",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Verwerkt",
|
||||
"time": "Tijd"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Bronnen",
|
||||
@@ -980,32 +986,49 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Naam",
|
||||
"systems": "Systems",
|
||||
"systems": "Systemen",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"paused": "Gepauzeerd",
|
||||
"pending": "In afwachting",
|
||||
"status": "Status",
|
||||
"updated": "Bijgewerkt",
|
||||
"cpu": "CPU",
|
||||
"memory": "GEH",
|
||||
"disk": "Disk",
|
||||
"disk": "Schijf",
|
||||
"network": "NET"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"synced": "Gesynchroniseerd",
|
||||
"outOfSync": "Niet gesynchroniseerd",
|
||||
"healthy": "Gezond",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "Gedegradeerd",
|
||||
"progressing": "Doorvoeren",
|
||||
"missing": "Ontbreekt",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Onderbroken"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Laden"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Groepen",
|
||||
"issues": "Problemen",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "Merge Verzoeken",
|
||||
"projects": "Projecten"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Belasting",
|
||||
"bcharge": "Batterij opladen",
|
||||
"timeleft": "Resterende Tijd"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Label"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Oppe",
|
||||
"received": "Mottatt",
|
||||
"sent": "Sendt",
|
||||
"externalIPAddress": "Ekstern IP"
|
||||
"externalIPAddress": "Ekstern IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Oppstrøms",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Tilkoblede AP'er",
|
||||
"activeUser": "Aktive enheter",
|
||||
"alerts": "Varsler",
|
||||
"connectedGateway": "Tilkoblede gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Tilkoblede switcher"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Behandlet",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Navn",
|
||||
"systems": "Systems",
|
||||
"up": "Oppe",
|
||||
"down": "Nede",
|
||||
"paused": "Pauset",
|
||||
"pending": "Ventende",
|
||||
"status": "Status",
|
||||
"updated": "Oppdatert",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Last",
|
||||
"bcharge": "Batteriladning",
|
||||
"timeleft": "Gjenstående tid"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Stikkord"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ms": "{{value, number}}",
|
||||
"date": "{{value, date}}",
|
||||
"relativeDate": "{{value, relativeDate}}",
|
||||
"duration": "{value, duration}",
|
||||
"duration": "{{value, duration}}",
|
||||
"months": "mc",
|
||||
"days": "d",
|
||||
"hours": "g",
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Dostępny",
|
||||
"received": "Odebrane",
|
||||
"sent": "Wysłane",
|
||||
"externalIPAddress": "Pub. IP"
|
||||
"externalIPAddress": "Pub. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Połączone punkty dostępowe",
|
||||
"activeUser": "Aktywne urządzenia",
|
||||
"alerts": "Alarmy",
|
||||
"connectedGateway": "Połączone bramy",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Połączone przełączniki"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Przetworzone",
|
||||
"time": "Czas"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Panel główny",
|
||||
"datasources": "Źródła danych",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nazwa",
|
||||
"systems": "Systemy",
|
||||
"up": "Dostępny",
|
||||
"down": "Niedostępny",
|
||||
"paused": "Zatrzymane",
|
||||
"pending": "Oczekiwane",
|
||||
"status": "Stan",
|
||||
"updated": "Zaktualizowane",
|
||||
"cpu": "Procesor",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Zgłoszenia",
|
||||
"merges": "Żądania scaleń",
|
||||
"projects": "Projekty"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stan",
|
||||
"load": "Obciążenie",
|
||||
"bcharge": "Stan baterii",
|
||||
"timeleft": "Pozostało"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tagi"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Recebido",
|
||||
"sent": "Enviado",
|
||||
"externalIPAddress": "Endereço IP Externo"
|
||||
"externalIPAddress": "Endereço IP Externo",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "APs Ligados",
|
||||
"activeUser": "Dispositivos activos",
|
||||
"alerts": "Alertas",
|
||||
"connectedGateway": "Gateways ligados",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Switches ligados"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processado",
|
||||
"time": "Hora"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Painéis",
|
||||
"datasources": "Origem de Dados",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Pausa",
|
||||
"pending": "Pendente",
|
||||
"status": "Estado",
|
||||
"updated": "Atualizado",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problemas",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Estado",
|
||||
"load": "Carga",
|
||||
"bcharge": "Carga da bateria",
|
||||
"timeleft": "Tempo Restante"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Etiquetas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Ativo",
|
||||
"received": "Recebido",
|
||||
"sent": "Enviado",
|
||||
"externalIPAddress": "IP Externo"
|
||||
"externalIPAddress": "IP Externo",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Streams de Envio",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "APs Ligados",
|
||||
"activeUser": "Dispositivos ativos",
|
||||
"alerts": "Alertas",
|
||||
"connectedGateway": "Gateways conectados",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Switches conectados"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processado",
|
||||
"time": "Hora"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Painéis",
|
||||
"datasources": "Origem de Dados",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Ativo",
|
||||
"down": "Inativo",
|
||||
"paused": "Pausado",
|
||||
"pending": "Pendente",
|
||||
"status": "Status",
|
||||
"updated": "Atualizado",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problemas",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Carga",
|
||||
"bcharge": "Carga da bateria",
|
||||
"timeleft": "Tempo restante"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Marcadores"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Sus",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreamuri",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Sus",
|
||||
"down": "Jos",
|
||||
"paused": "Paused",
|
||||
"pending": "În așteptare",
|
||||
"status": "Stare",
|
||||
"updated": "Updated",
|
||||
"cpu": "Procesor",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stare",
|
||||
"load": "Sarcină",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Timp rămas"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Онлайн",
|
||||
"received": "Получено",
|
||||
"sent": "Отправлено",
|
||||
"externalIPAddress": "Внеш. IP"
|
||||
"externalIPAddress": "Внеш. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Входящие каналы",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Подключенные точки доступа",
|
||||
"activeUser": "Активные устройства",
|
||||
"alerts": "Предупреждения",
|
||||
"connectedGateway": "Подключенные шлюзы",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Подключенные коммутаторы"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Обработано",
|
||||
"time": "Время"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Панели",
|
||||
"datasources": "Источники данных",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Имя",
|
||||
"systems": "Системы",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн",
|
||||
"paused": "Приостановлено",
|
||||
"pending": "В обработке",
|
||||
"status": "Статус",
|
||||
"updated": "Обновленно",
|
||||
"cpu": "ЦП",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Вопросы",
|
||||
"merges": "Мердж-реквесты",
|
||||
"projects": "Проекты"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Статус",
|
||||
"load": "Загрузка",
|
||||
"bcharge": "Заряд батареи",
|
||||
"timeleft": "Осталось"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Теги"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Nahrávanie",
|
||||
"received": "Prijaté",
|
||||
"sent": "Odoslané",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Odosielanie dát",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Pripojené prístupové body",
|
||||
"activeUser": "Aktívne zariadenia",
|
||||
"alerts": "Upozornenia",
|
||||
"connectedGateway": "Pripojené sieťové brány",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Pripojené prepínače"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Spracované",
|
||||
"time": "Čas"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Panely",
|
||||
"datasources": "Zdroje dát",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Meno",
|
||||
"systems": "Systems",
|
||||
"up": "Nahrávanie",
|
||||
"down": "Sťahovanie",
|
||||
"paused": "Pozastavené",
|
||||
"pending": "Čakajúce",
|
||||
"status": "Stav",
|
||||
"updated": "Aktualizované",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Problémy",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stav",
|
||||
"load": "Záťaž",
|
||||
"bcharge": "Nabitie batérie",
|
||||
"timeleft": "Zostávajúci čas"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Štítky"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Povezan",
|
||||
"received": "Prejeto",
|
||||
"sent": "Poslano",
|
||||
"externalIPAddress": "Zun. IP"
|
||||
"externalIPAddress": "Zun. IP",
|
||||
"externalIPv6Address": "Eks. IPv6",
|
||||
"externalIPv6Prefix": "Eks. IPv6-predpona"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Pretok gor",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Povezanih AP",
|
||||
"activeUser": "Aktivne naprave",
|
||||
"alerts": "Opozorila",
|
||||
"connectedGateway": "Povezan prehod",
|
||||
"connectedGateways": "Povezani prehodi",
|
||||
"connectedSwitches": "Povezana stikala"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Procesiran",
|
||||
"time": "Čas"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Neto vrednost",
|
||||
"budget": "Proračun"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Nadzorne plošče",
|
||||
"datasources": "Viri podatkov",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Naziv",
|
||||
"systems": "Sistemi",
|
||||
"up": "Povezan",
|
||||
"down": "Nepovezan",
|
||||
"paused": "Pavziran",
|
||||
"pending": "V teku",
|
||||
"status": "Stanje",
|
||||
"updated": "Posodobljen",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Težave",
|
||||
"merges": "Združi zahtevke",
|
||||
"projects": "Projekti"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stanje",
|
||||
"load": "Bremenitev",
|
||||
"bcharge": "Napolnjenost baterije",
|
||||
"timeleft": "Preostali čas"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Značke"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Load",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Avvaktar",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Status",
|
||||
"load": "Laddar",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Tid kvar"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "పెండింగ్",
|
||||
"status": "హోదా",
|
||||
"updated": "నవీకరించబడింది",
|
||||
"cpu": "సీపియూ",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "హోదా",
|
||||
"load": "లోడ్",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "మిగిలి వున్న సమయం"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "สถานะ",
|
||||
"updated": "Updated",
|
||||
"cpu": "ซีพียู",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "สถานะ",
|
||||
"load": "โหลด",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Yükleme",
|
||||
"received": "Alınan",
|
||||
"sent": "Gönderilen",
|
||||
"externalIPAddress": "Harici IP"
|
||||
"externalIPAddress": "Harici IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Akış",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Bağlı AP'ler",
|
||||
"activeUser": "Aktif cihazlar",
|
||||
"alerts": "Alarmlar",
|
||||
"connectedGateway": "Bağlı ağ geçitleri",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Bağlı anahtarlar"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "İşlendi",
|
||||
"time": "Zaman"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Kontrol Paneli",
|
||||
"datasources": "Veri Kaynakları",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "İsim",
|
||||
"systems": "Systems",
|
||||
"up": "Yükleme",
|
||||
"down": "İndirme",
|
||||
"paused": "Duraklatıldı",
|
||||
"pending": "Bekleyen",
|
||||
"status": "Durum",
|
||||
"updated": "Güncellendi",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Sorunlar",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Durum",
|
||||
"load": "Yük",
|
||||
"bcharge": "Pil Yüzdesi",
|
||||
"timeleft": "Kalan Zaman"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Etiketler"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Онлайн",
|
||||
"received": "Отримано",
|
||||
"sent": "Надіслано",
|
||||
"externalIPAddress": "Зовнішній IP"
|
||||
"externalIPAddress": "Зовнішній IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Потоки",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Підключені точки доступу",
|
||||
"activeUser": "Активні пристрої",
|
||||
"alerts": "Оповіщення",
|
||||
"connectedGateway": "Підключені шлюзи",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Підключені перемикачі"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -285,13 +287,13 @@
|
||||
"total": "Усього",
|
||||
"connected": "З'єднано",
|
||||
"new_devices": "Нові пристрої",
|
||||
"down_alerts": "Спов. про падіння"
|
||||
"down_alerts": "Сповіщення про падіння"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Запити",
|
||||
"blocked": "Заблоковано",
|
||||
"blocked_percent": "Заблоковано %",
|
||||
"gravity": "Гравітація"
|
||||
"gravity": "Доменів в списку"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Запити",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Обробка",
|
||||
"time": "Час"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Інформаційні панелі",
|
||||
"datasources": "Джерела даних",
|
||||
@@ -856,7 +862,7 @@
|
||||
"platforms": "Платформи",
|
||||
"totalRoms": "Ігри",
|
||||
"saves": "Збереження",
|
||||
"states": "Штати",
|
||||
"states": "Стани",
|
||||
"screenshots": "Знімки екрану",
|
||||
"totalfilesize": "Загальний обсяг"
|
||||
},
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Назва",
|
||||
"systems": "Системи",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн",
|
||||
"paused": "Призупинено",
|
||||
"pending": "В очікуванні",
|
||||
"status": "Стан",
|
||||
"updated": "Оновлено",
|
||||
"cpu": "ЦП",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Питання",
|
||||
"merges": "Запити на злиття",
|
||||
"projects": "Проєкти"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Стан",
|
||||
"load": "Завантаження",
|
||||
"bcharge": "Заряд батареї",
|
||||
"timeleft": "Залишилось"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Теги"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP"
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Đang xử lý",
|
||||
"status": "Trạng thái",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Trạng thái",
|
||||
"load": "Load",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Thời gian còn lại"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "在線",
|
||||
"received": "已接收",
|
||||
"sent": "已送出",
|
||||
"externalIPAddress": "外部 IP"
|
||||
"externalIPAddress": "外部 IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "上行",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "已連接的存取點",
|
||||
"activeUser": "在線裝置",
|
||||
"alerts": "警示",
|
||||
"connectedGateway": "已連接的閘道",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "已連接的交換器"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "已處理",
|
||||
"time": "時間"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "控制面板",
|
||||
"datasources": "數據來源",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "名稱",
|
||||
"systems": "Systems",
|
||||
"up": "在線",
|
||||
"down": "離線",
|
||||
"paused": "擱置中",
|
||||
"pending": "待定",
|
||||
"status": "狀況",
|
||||
"updated": "已更新",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "出版",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "狀況",
|
||||
"load": "負荷",
|
||||
"bcharge": "充電",
|
||||
"timeleft": "用時"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "標籤"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "Up",
|
||||
"received": "已接收",
|
||||
"sent": "已发送",
|
||||
"externalIPAddress": "外部IP"
|
||||
"externalIPAddress": "外部IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "上游",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "连接中的AP",
|
||||
"activeUser": "活跃设备",
|
||||
"alerts": "警报",
|
||||
"connectedGateway": "已连接网关",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "已连接开关"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -311,13 +313,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "下载",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"nondownload": "未下载",
|
||||
"read": "已读",
|
||||
"unread": "未读",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
"downloadedread": "已下载 & 已读",
|
||||
"downloadedunread": "已下载 & 未读",
|
||||
"nondownloadedread": "未下载 & 已读",
|
||||
"nondownloadedunread": "未下载 & 未读"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "地址",
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "已处理",
|
||||
"time": "时间"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "控制面板",
|
||||
"datasources": "数据来源",
|
||||
@@ -980,32 +986,49 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"systems": "系统",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "暂停",
|
||||
"pending": "待办的",
|
||||
"status": "状态",
|
||||
"updated": "已升级",
|
||||
"cpu": "CPU",
|
||||
"memory": "内存",
|
||||
"disk": "Disk",
|
||||
"network": "NET"
|
||||
"disk": "磁盘",
|
||||
"network": "网络"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "应用程序",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"synced": "已同步",
|
||||
"outOfSync": "未同步",
|
||||
"healthy": "健康",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "已降级",
|
||||
"progressing": "进行中",
|
||||
"missing": "丢失",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "已停用"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "正在加载"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "群组",
|
||||
"issues": "问题",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "合并请求",
|
||||
"projects": "项目"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "状态",
|
||||
"load": "负载",
|
||||
"bcharge": "充电中",
|
||||
"timeleft": "剩余时间"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@
|
||||
"up": "在線",
|
||||
"received": "已接收",
|
||||
"sent": "已送出",
|
||||
"externalIPAddress": "外部 IP"
|
||||
"externalIPAddress": "外部 IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "上行",
|
||||
@@ -176,7 +178,7 @@
|
||||
"connectedAp": "已連接的存取點",
|
||||
"activeUser": "在線裝置",
|
||||
"alerts": "警示",
|
||||
"connectedGateway": "已連接的閘道",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "已連接的交換器"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -702,6 +704,10 @@
|
||||
"processed": "已處理",
|
||||
"time": "時間"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "控制面板",
|
||||
"datasources": "數據來源",
|
||||
@@ -982,6 +988,9 @@
|
||||
"name": "名稱",
|
||||
"systems": "Systems",
|
||||
"up": "在線",
|
||||
"down": "離線",
|
||||
"paused": "擱置中",
|
||||
"pending": "待下載",
|
||||
"status": "狀態",
|
||||
"updated": "已更新",
|
||||
"cpu": "CPU",
|
||||
@@ -1007,5 +1016,19 @@
|
||||
"issues": "出版",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "狀態",
|
||||
"load": "負載",
|
||||
"bcharge": "充電",
|
||||
"timeleft": "剩餘時間"
|
||||
},
|
||||
"hoarder": {
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "標籤"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { useRef, useEffect } from "react";
|
||||
import classNames from "classnames";
|
||||
import { Disclosure, Transition } from "@headlessui/react";
|
||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||
|
||||
import ErrorBoundary from "components/errorboundry";
|
||||
import List from "components/bookmarks/list";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
@@ -24,9 +23,9 @@ export default function BookmarksGroup({
|
||||
<div
|
||||
key={bookmarks.name}
|
||||
className={classNames(
|
||||
"bookmark-group",
|
||||
"bookmark-group flex-1 overflow-hidden",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
||||
layout?.header === false ? "flex-1 px-1 -my-1 overflow-hidden" : "flex-1 p-1 overflow-hidden",
|
||||
layout?.header === false ? "px-1" : "p-1 pb-0",
|
||||
)}
|
||||
>
|
||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||
@@ -35,7 +34,7 @@ export default function BookmarksGroup({
|
||||
{layout?.header !== false && (
|
||||
<Disclosure.Button disabled={disableCollapse} className="flex w-full select-none items-center group">
|
||||
{layout?.icon && (
|
||||
<div className="flex-shrink-0 mr-2 w-7 h-7 bookmark-group-icon">
|
||||
<div className="shrink-0 mr-2 w-7 h-7 bookmark-group-icon">
|
||||
<ResolvedIcon icon={layout.icon} />
|
||||
</div>
|
||||
)}
|
||||
@@ -53,7 +52,7 @@ export default function BookmarksGroup({
|
||||
)}
|
||||
<Transition
|
||||
// Otherwise the transition group does display: none and cancels animation
|
||||
className="!block"
|
||||
className="block!"
|
||||
unmount={false}
|
||||
beforeLeave={() => {
|
||||
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useContext } from "react";
|
||||
import classNames from "classnames";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
@@ -23,7 +22,7 @@ export default function Item({ bookmark, iconOnly = false }) {
|
||||
className={classNames(
|
||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
|
||||
"text-left cursor-pointer transition-all rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10",
|
||||
iconOnly ? "h-[60px] w-[60px] grid" : "block w-full h-15 mb-3",
|
||||
iconOnly ? "h-[60px] w-[60px] grid" : "block w-full mb-3",
|
||||
)}
|
||||
>
|
||||
{iconOnly ? (
|
||||
@@ -37,9 +36,9 @@ export default function Item({ bookmark, iconOnly = false }) {
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex">
|
||||
<div className="flex-shrink-0 flex items-center justify-center w-11 bg-theme-500/10 dark:bg-theme-900/50 text-theme-700 hover:text-theme-700 dark:text-theme-200 text-sm font-medium rounded-l-md bookmark-icon">
|
||||
<div className="shrink-0 flex items-center justify-center w-11 bg-theme-500/10 dark:bg-theme-900/50 text-theme-700 hover:text-theme-700 dark:text-theme-200 text-sm font-medium rounded-l-md bookmark-icon">
|
||||
{bookmark.icon && (
|
||||
<div className="flex-shrink-0 w-5 h-5">
|
||||
<div className="shrink-0 w-5 h-5">
|
||||
<ResolvedIcon icon={bookmark.icon} alt={bookmark.abbr} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import classNames from "classnames";
|
||||
import Item from "components/bookmarks/item";
|
||||
|
||||
import { columnMap } from "../../utils/layout/columns";
|
||||
|
||||
import Item from "components/bookmarks/item";
|
||||
|
||||
export default function List({ bookmarks, layout, bookmarksStyle }) {
|
||||
let classes =
|
||||
layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col mt-3 bookmark-list";
|
||||
let classes = layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col bookmark-list";
|
||||
const style = {};
|
||||
if (layout?.iconsOnly || bookmarksStyle === "icons") {
|
||||
classes = "grid gap-3 mt-3 bookmark-list";
|
||||
classes = "grid gap-2 bookmark-list";
|
||||
style.gridTemplateColumns = "repeat(auto-fill, minmax(60px, 1fr))";
|
||||
}
|
||||
return (
|
||||
<ul className={classNames(classes)} style={style}>
|
||||
<ul className={classNames(classes, "mb-2", layout?.header === false ? "" : "mt-3")} style={style}>
|
||||
{bookmarks.map((bookmark) => (
|
||||
<Item
|
||||
key={`${bookmark.name}-${bookmark.href}`}
|
||||
|
||||
@@ -14,8 +14,10 @@ export default class ErrorBoundary extends React.Component {
|
||||
});
|
||||
|
||||
// You can also log error messages to an error reporting service here
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(error, errorInfo);
|
||||
if (error || errorInfo) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error("component error: %s, info: %s", error, errorInfo);
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* eslint-disable @next/next/no-img-element */
|
||||
/* eslint-disable jsx-a11y/alt-text */
|
||||
import { useRef, useEffect, useContext } from "react";
|
||||
import { ColorContext } from "utils/contexts/color";
|
||||
|
||||
import themes from "utils/styles/themes";
|
||||
import { ColorContext } from "utils/contexts/color";
|
||||
|
||||
export function Svg({ svgRef = null }) {
|
||||
const { color } = useContext(ColorContext);
|
||||
|
||||
@@ -2,12 +2,11 @@ import { useTranslation } from "react-i18next";
|
||||
import { useEffect, useState, useRef, useCallback, useContext } from "react";
|
||||
import classNames from "classnames";
|
||||
import useSWR from "swr";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
import ResolvedIcon from "./resolvedicon";
|
||||
import { getStoredProvider, searchProviders } from "./widgets/search/search";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
export default function QuickLaunch({ servicesAndBookmarks, searchString, setSearchString, isOpen, close }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
@@ -255,10 +254,10 @@ export default function QuickLaunch({ servicesAndBookmarks, searchString, setSea
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
>
|
||||
<div className="fixed inset-0 bg-gray-500 bg-opacity-50" />
|
||||
<div className="fixed inset-0 bg-gray-500 opacity-50" />
|
||||
<div className="fixed inset-0 z-20 overflow-y-auto">
|
||||
<div className="flex min-h-full min-w-full items-start justify-center text-center">
|
||||
<dialog className="mt-[10%] min-w-[90%] max-w-[90%] md:min-w-[40%] md:max-w-[40%] rounded-md p-0 block font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-50 dark:bg-theme-800">
|
||||
<dialog className="mt-[10%] mx-auto min-w-[90%] max-w-[90%] md:min-w-[40%] md:max-w-[40%] rounded-md p-0 block font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-50 dark:bg-theme-800">
|
||||
<input
|
||||
placeholder="Search"
|
||||
className={classNames(
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useContext } from "react";
|
||||
import Image from "next/future/image";
|
||||
|
||||
import Image from "next/image";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import { ThemeContext } from "utils/contexts/theme";
|
||||
|
||||
@@ -101,7 +100,26 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
const iconName = icon.replace(".svg", "");
|
||||
return (
|
||||
<Image
|
||||
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/svg/${iconName}.svg`}
|
||||
src={`https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/${iconName}.svg`}
|
||||
width={width}
|
||||
height={height}
|
||||
style={{
|
||||
width,
|
||||
height,
|
||||
objectFit: "contain",
|
||||
maxHeight: "100%",
|
||||
maxWidth: "100%",
|
||||
}}
|
||||
alt={alt}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (icon.endsWith(".webp")) {
|
||||
const iconName = icon.replace(".webp", "");
|
||||
return (
|
||||
<Image
|
||||
src={`https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/webp/${iconName}.webp`}
|
||||
width={width}
|
||||
height={height}
|
||||
style={{
|
||||
@@ -119,7 +137,7 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
const iconName = icon.replace(".png", "");
|
||||
return (
|
||||
<Image
|
||||
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`}
|
||||
src={`https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/${iconName}.png`}
|
||||
width={width}
|
||||
height={height}
|
||||
style={{
|
||||
|
||||
@@ -7,7 +7,7 @@ export default function Dropdown({ options, value, setValue }) {
|
||||
return (
|
||||
<Menu as="div" className="relative inline-block text-left">
|
||||
<div>
|
||||
<Menu.Button className="text-xs inline-flex w-full items-center rounded bg-theme-200/50 dark:bg-theme-900/20 px-3 py-1.5">
|
||||
<Menu.Button className="text-xs inline-flex w-full items-center rounded-sm bg-theme-200/50 dark:bg-theme-900/20 px-3 py-1.5">
|
||||
{options.find((option) => option.value === value).label}
|
||||
<BiCog className="-mr-1 ml-2 h-4 w-4" aria-hidden="true" />
|
||||
</Menu.Button>
|
||||
@@ -22,7 +22,7 @@ export default function Dropdown({ options, value, setValue }) {
|
||||
leaveFrom="transform opacity-100 scale-100"
|
||||
leaveTo="transform opacity-0 scale-95"
|
||||
>
|
||||
<Menu.Items className="absolute right-0 z-10 mt-2 w-56 origin-top-right rounded-md bg-theme-200/50 dark:bg-theme-900/50 backdrop-blur shadow-md focus:outline-none text-theme-700 dark:text-theme-200">
|
||||
<Menu.Items className="absolute right-0 z-10 mt-2 w-56 origin-top-right rounded-md bg-theme-200/50 dark:bg-theme-900/50 backdrop-blur-sm shadow-md focus:outline-hidden text-theme-700 dark:text-theme-200">
|
||||
<div className="py-1">
|
||||
{options.map((option) => (
|
||||
<Menu.Item key={option.value} as={Fragment}>
|
||||
@@ -33,7 +33,7 @@ export default function Dropdown({ options, value, setValue }) {
|
||||
type="button"
|
||||
className={classNames(
|
||||
value === option.value ? "bg-theme-300/40 dark:bg-theme-900/40" : "",
|
||||
"w-full block px-3 py-1.5 text-sm hover:bg-theme-300/70 hover:dark:bg-theme-900/70 text-left",
|
||||
"w-full block px-3 py-1.5 text-sm hover:bg-theme-300/70 dark:hover:bg-theme-900/70 text-left",
|
||||
)}
|
||||
>
|
||||
{option.label}
|
||||
|
||||
@@ -2,12 +2,11 @@ import { useRef, useEffect } from "react";
|
||||
import classNames from "classnames";
|
||||
import { Disclosure, Transition } from "@headlessui/react";
|
||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||
|
||||
import { columnMap } from "../../utils/layout/columns";
|
||||
|
||||
import List from "components/services/list";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
import { columnMap } from "../../utils/layout/columns";
|
||||
|
||||
export default function ServicesGroup({
|
||||
group,
|
||||
layout,
|
||||
@@ -15,6 +14,7 @@ export default function ServicesGroup({
|
||||
disableCollapse,
|
||||
useEqualHeights,
|
||||
groupsInitiallyCollapsed,
|
||||
isSubgroup,
|
||||
}) {
|
||||
const panel = useRef();
|
||||
|
||||
@@ -22,14 +22,18 @@ export default function ServicesGroup({
|
||||
if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`;
|
||||
}, [layout, groupsInitiallyCollapsed]);
|
||||
|
||||
let groupPadding = layout?.header === false ? "px-1" : "p-1 pb-0";
|
||||
if (isSubgroup) groupPadding = "";
|
||||
|
||||
return (
|
||||
<div
|
||||
key={group.name}
|
||||
className={classNames(
|
||||
"services-group",
|
||||
"services-group flex-1",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4",
|
||||
layout?.style !== "row" && fiveColumns ? "3xl:basis-1/5" : "",
|
||||
layout?.header === false ? "flex-1 px-1 -my-1" : "flex-1 p-1",
|
||||
groupPadding,
|
||||
isSubgroup ? "subgroup" : "",
|
||||
)}
|
||||
>
|
||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||
@@ -38,7 +42,7 @@ export default function ServicesGroup({
|
||||
{layout?.header !== false && (
|
||||
<Disclosure.Button disabled={disableCollapse} className="flex w-full select-none items-center group">
|
||||
{layout?.icon && (
|
||||
<div className="flex-shrink-0 mr-2 w-7 h-7 service-group-icon">
|
||||
<div className="shrink-0 mr-2 w-7 h-7 service-group-icon">
|
||||
<ResolvedIcon icon={layout.icon} />
|
||||
</div>
|
||||
)}
|
||||
@@ -56,7 +60,7 @@ export default function ServicesGroup({
|
||||
)}
|
||||
<Transition
|
||||
// Otherwise the transition group does display: none and cancels animation
|
||||
className="!block"
|
||||
className="block!"
|
||||
unmount={false}
|
||||
beforeLeave={() => {
|
||||
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||
@@ -80,6 +84,7 @@ export default function ServicesGroup({
|
||||
services={group.services}
|
||||
layout={layout}
|
||||
useEqualHeights={useEqualHeights}
|
||||
header={layout?.header !== false}
|
||||
/>
|
||||
{group.groups?.length > 0 && (
|
||||
<div
|
||||
@@ -96,6 +101,7 @@ export default function ServicesGroup({
|
||||
disableCollapse={disableCollapse}
|
||||
useEqualHeights={useEqualHeights}
|
||||
groupsInitiallyCollapsed={groupsInitiallyCollapsed}
|
||||
isSubgroup
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import classNames from "classnames";
|
||||
import { useContext, useState } from "react";
|
||||
import Docker from "widgets/docker/component";
|
||||
import Kubernetes from "widgets/kubernetes/component";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
import Status from "./status";
|
||||
import Widget from "./widget";
|
||||
@@ -7,11 +11,6 @@ import Ping from "./ping";
|
||||
import SiteMonitor from "./site-monitor";
|
||||
import KubernetesStatus from "./kubernetes-status";
|
||||
|
||||
import Docker from "widgets/docker/component";
|
||||
import Kubernetes from "widgets/kubernetes/component";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
export default function Item({ service, groupName, useEqualHeights }) {
|
||||
const hasLink = service.href && service.href !== "#";
|
||||
const { settings } = useContext(SettingsContext);
|
||||
@@ -47,13 +46,13 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
href={service.href}
|
||||
target={service.target ?? settings.target ?? "_blank"}
|
||||
rel="noreferrer"
|
||||
className="flex-shrink-0 flex items-center justify-center w-12 service-icon z-10"
|
||||
className="shrink-0 flex items-center justify-center w-12 service-icon z-10"
|
||||
aria-label={service.icon}
|
||||
>
|
||||
<ResolvedIcon icon={service.icon} />
|
||||
</a>
|
||||
) : (
|
||||
<div className="flex-shrink-0 flex items-center justify-center w-12 service-icon z-10">
|
||||
<div className="shrink-0 flex items-center justify-center w-12 service-icon z-10">
|
||||
<ResolvedIcon icon={service.icon} />
|
||||
</div>
|
||||
))}
|
||||
@@ -86,17 +85,17 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
<div
|
||||
className={`absolute top-0 right-0 flex flex-row justify-end ${
|
||||
statusStyle === "dot" ? "gap-0" : "gap-2 mr-2"
|
||||
} z-30 service-tags`}
|
||||
} z-10 service-tags`}
|
||||
>
|
||||
{service.ping && (
|
||||
<div className="flex-shrink-0 flex items-center justify-center service-tag service-ping">
|
||||
<div className="shrink-0 flex items-center justify-center service-tag service-ping">
|
||||
<Ping groupName={groupName} serviceName={service.name} style={statusStyle} />
|
||||
<span className="sr-only">Ping status</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{service.siteMonitor && (
|
||||
<div className="flex-shrink-0 flex items-center justify-center service-tag service-site-monitor">
|
||||
<div className="shrink-0 flex items-center justify-center service-tag service-site-monitor">
|
||||
<SiteMonitor groupName={groupName} serviceName={service.name} style={statusStyle} />
|
||||
<span className="sr-only">Site monitor status</span>
|
||||
</div>
|
||||
@@ -106,7 +105,7 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => (statsOpen ? closeStats() : setStatsOpen(true))}
|
||||
className="flex-shrink-0 flex items-center justify-center cursor-pointer service-tag service-container-stats"
|
||||
className="shrink-0 flex items-center justify-center cursor-pointer service-tag service-container-stats"
|
||||
>
|
||||
<Status service={service} style={statusStyle} />
|
||||
<span className="sr-only">View container stats</span>
|
||||
@@ -116,7 +115,7 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => (statsOpen ? closeStats() : setStatsOpen(true))}
|
||||
className="flex-shrink-0 flex items-center justify-center cursor-pointer service-tag service-app"
|
||||
className="shrink-0 flex items-center justify-center cursor-pointer service-tag service-app"
|
||||
>
|
||||
<KubernetesStatus service={service} style={statusStyle} />
|
||||
<span className="sr-only">View container stats</span>
|
||||
@@ -128,7 +127,7 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
{service.container && service.server && (
|
||||
<div
|
||||
className={classNames(
|
||||
showStats || (statsOpen && !statsClosing) ? "max-h-[110px] opacity-100" : " max-h-[0] opacity-0",
|
||||
showStats || (statsOpen && !statsClosing) ? "max-h-[110px] opacity-100" : " max-h-0 opacity-0",
|
||||
"w-full overflow-hidden transition-all duration-300 ease-in-out service-stats",
|
||||
)}
|
||||
>
|
||||
@@ -140,7 +139,7 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
{service.app && (
|
||||
<div
|
||||
className={classNames(
|
||||
showStats || (statsOpen && !statsClosing) ? "max-h-[55px] opacity-100" : " max-h-[0] opacity-0",
|
||||
showStats || (statsOpen && !statsClosing) ? "max-h-[55px] opacity-100" : " max-h-0 opacity-0",
|
||||
"w-full overflow-hidden transition-all duration-300 ease-in-out service-stats",
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import classNames from "classnames";
|
||||
import Item from "components/services/item";
|
||||
|
||||
import { columnMap } from "../../utils/layout/columns";
|
||||
|
||||
import Item from "components/services/item";
|
||||
|
||||
export default function List({ groupName, services, layout, useEqualHeights }) {
|
||||
export default function List({ groupName, services, layout, useEqualHeights, header }) {
|
||||
return (
|
||||
<ul
|
||||
className={classNames(
|
||||
layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col",
|
||||
"mt-3 services-list",
|
||||
header ? "mt-3" : "",
|
||||
"services-list",
|
||||
)}
|
||||
>
|
||||
{services.map((service) => (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import ErrorBoundary from "components/errorboundry";
|
||||
|
||||
import components from "widgets/components";
|
||||
|
||||
export default function Widget({ widget, service }) {
|
||||
@@ -19,7 +19,7 @@ export default function Widget({ widget, service }) {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-col items-center justify-center p-1 service-missing">
|
||||
<div className="bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center p-1 service-missing">
|
||||
<div className="font-thin text-sm">{t("widget.missing_type", { type: widget.type })}</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -7,7 +7,7 @@ export default function Block({ value, label }) {
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
"bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-col items-center justify-center text-center p-1",
|
||||
"bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center text-center p-1",
|
||||
value === undefined ? "animate-pulse" : "",
|
||||
"service-block",
|
||||
)}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { useContext } from "react";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
import Error from "./error";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
export default function Container({ error = false, children, service }) {
|
||||
const { settings } = useContext(SettingsContext);
|
||||
|
||||
|
||||
@@ -22,13 +22,13 @@ export default function Error({ error }) {
|
||||
|
||||
return (
|
||||
<details className="px-1 pb-1">
|
||||
<summary className="block text-center mt-1 mb-0 mx-auto p-3 rounded bg-rose-900/80 hover:bg-rose-900/95 text-theme-900 cursor-pointer">
|
||||
<summary className="block text-center mt-1 mb-0 mx-auto p-3 rounded-sm bg-rose-900/80 hover:bg-rose-900/95 text-theme-900 cursor-pointer">
|
||||
<div className="flex items-center justify-center text-xs font-bold">
|
||||
<IoAlertCircle className="mr-1 w-5 h-5" />
|
||||
{t("widget.api_error")} {error.message && t("widget.information")}
|
||||
</div>
|
||||
</summary>
|
||||
<div className="bg-white dark:bg-theme-200/50 mt-2 rounded text-rose-900 text-xs font-mono whitespace-pre-wrap break-all">
|
||||
<div className="bg-white dark:bg-theme-200/50 mt-2 rounded-sm text-rose-900 text-xs font-mono whitespace-pre-wrap break-all">
|
||||
<ul className="p-4">
|
||||
{error.message && (
|
||||
<li>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user