Compare commits

..

No commits in common. "dev" and "v1.10.0" have entirely different histories.
dev ... v1.10.0

306 changed files with 3365 additions and 6033 deletions

View file

@ -9,11 +9,11 @@ coverage:
project:
default:
target: 100%
threshold: 15%
threshold: 25%
patch:
default:
target: 100%
threshold: 10%
threshold: 25%
comment:
layout: "reach,diff,flags,files"

View file

@ -1,10 +1,6 @@
title: "[Feature Request] "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
#### ⚠️ Don't forget to search [existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) and [discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions) (including closed ones!).
- type: textarea
id: description
attributes:

View file

@ -51,7 +51,7 @@ body:
id: troubleshooting
attributes:
label: Troubleshooting
description: Please include output from your [troubleshooting steps](https://gethomepage.dev/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

View file

@ -35,8 +35,8 @@ What type of change does your PR introduce to Homepage?
## Checklist:
- [ ] If applicable, I have added corresponding documentation changes.
- [ ] If applicable, I have added or updated tests for new features and bug fixes (see [testing](https://gethomepage.dev/widgets/authoring/getting-started/#testing)).
- [ ] If applicable, I have reviewed the [feature / enhancement](https://gethomepage.dev/widgets/authoring/getting-started/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/widgets/authoring/getting-started/#service-widget-guidelines).
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/widgets/authoring/getting-started/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/widgets/authoring/getting-started/#code-linting).
- [ ] If applicable, I have added or updated tests for new features and bug fixes.
- [ ] 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.
- [ ] In the description above I have disclosed the use of AI tools in the coding of this PR.

View file

@ -8,12 +8,8 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 7
interval: "daily"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7

View file

@ -1,87 +0,0 @@
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
change-template: '- $TITLE (#$NUMBER) @$AUTHOR'
change-title-escapes: '\\<*_&'
version-resolver:
major:
labels:
- 'major'
- 'breaking-change'
minor:
labels:
- 'enhancement'
- 'feature'
patch:
labels:
- 'bug'
- 'fix'
- 'dependencies'
- 'translation'
- 'documentation'
default: patch
categories:
- title: '⚠️ Breaking Changes'
labels:
- 'major'
- 'breaking-change'
- title: '🚀 Features'
labels:
- 'enhancement'
- 'feature'
- title: '🐛 Fixes'
labels:
- 'bug'
- 'fix'
- title: '🧰 Maintenance'
labels:
- 'dependencies'
- 'ci'
- 'chore'
- title: '🌐 Translations'
labels:
- 'translation'
- title: '📚 Documentation'
labels:
- 'documentation'
autolabeler:
- label: 'documentation'
files:
- 'docs/**'
- '*.md'
- '.github/**/*.md'
- label: 'ci'
files:
- '.github/workflows/**'
- label: 'dependencies'
files:
- 'package.json'
- 'pnpm-lock.yaml'
- 'pyproject.toml'
- 'uv.lock'
- label: 'feature'
files:
- 'src/components/**'
- 'src/widgets/**'
- 'src/pages/**'
- 'src/utils/**'
- label: 'chore'
files:
- 'Dockerfile*'
- 'docker-entrypoint.sh'
- 'k3d/**'
- label: 'translation'
files:
- 'public/locales/**'
template: |
## What's Changed
$CHANGES

View file

@ -17,15 +17,14 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@v6
- name: crowdin action
uses: crowdin/github-action@7ca9c452bfe9197d3bb7fa83a4d7e2b0c9ae835d # v2
uses: crowdin/github-action@v2
with:
upload_translations: false
download_translations: true
crowdin_branch_name: dev
localization_branch_name: l10n_dev
pull_request_labels: translation
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}

View file

@ -17,12 +17,44 @@ env:
IMAGE_NAME: ${{ github.repository }}
jobs:
pre-commit:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install python
uses: actions/setup-python@v6
with:
python-version: 3.x
- 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: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Lint frontend
run: pnpm run lint
build:
name: Docker Build & Push
if: github.repository == 'gethomepage/homepage'
runs-on: ubuntu-22.04
runs-on: self-hosted
needs: [ pre-commit ]
permissions:
contents: read
packages: write
@ -30,11 +62,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@v6
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6
uses: docker/metadata-action@v5
with:
images: |
${{ env.IMAGE_NAME }}
@ -52,7 +84,7 @@ jobs:
latest=auto
- name: Next.js build cache
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
uses: actions/cache@v5
with:
path: .next/cache
key: nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('**/*.js', '**/*.jsx') }}
@ -60,15 +92,15 @@ jobs:
nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install pnpm
uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
uses: actions/setup-node@v6
with:
node-version: 24
node-version: 20
cache: 'pnpm'
- name: Install dependencies
@ -83,7 +115,7 @@ jobs:
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -91,20 +123,20 @@ jobs:
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
uses: docker/setup-qemu-action@v3.7.0
- name: Setup Docker buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4
uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.event_name != 'pull_request' }}

View file

@ -9,46 +9,70 @@ on:
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
contents: write
jobs:
pre-commit:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install python
uses: actions/setup-python@v6
with:
python-version: 3.x
- name: Check files
uses: pre-commit/action@v3.0.1
test:
name: Test Build Docs
if: github.repository == 'gethomepage/homepage' && github.event_name == 'pull_request'
runs-on: ubuntu-latest
needs:
- pre-commit
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version-file: ".python-version"
- name: Install uv
uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v5
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: sudo apt-get install pngquant
- run: pip install mkdocs-material mkdocs-redirects "mkdocs-material[imaging]"
- name: Test Docs Build
run: uv run --frozen zensical build --clean
run: MKINSIDERS=false mkdocs build
deploy:
name: Build & Deploy Docs
if: github.repository == 'gethomepage/homepage' && github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs:
- pre-commit
steps:
- uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- uses: actions/checkout@v6
- name: Configure Git Credentials
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- uses: actions/setup-python@v6
with:
python-version-file: ".python-version"
- name: Install uv
uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
python-version: 3.x
- run: echo "cache_id=${{github.sha}}" >> $GITHUB_ENV
- uses: actions/cache@v5
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: sudo apt-get install pngquant
- name: Build Docs
run: uv run --frozen zensical build --clean
- uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
with:
path: site
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
id: deployment
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
- run: pip install mkdocs-redirects "mkdocs-material[imaging]"
- name: Docs Deploy
run: MKINSIDERS=true mkdocs gh-deploy --force
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

View file

@ -1,41 +0,0 @@
name: Lint
on:
pull_request:
push:
workflow_dispatch:
merge_group:
jobs:
lint:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: 3.x
- name: Check files
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
- name: Install pnpm
uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5
with:
version: 10
run_install: false
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Lint frontend
run: pnpm run lint

View file

@ -1,18 +0,0 @@
name: PR Quality
permissions:
contents: read
issues: read
pull-requests: write
on:
pull_request_target:
types: [opened, reopened]
jobs:
anti-slop:
runs-on: ubuntu-latest
steps:
- uses: peakoss/anti-slop@a5a4b2440c9de6f65b64f0718a0136a1fdb04f6f # v0
with:
max-failures: 4

View file

@ -15,4 +15,4 @@ jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/reaction-comments@e86d247c12bd5c043eec379a1a4453f20cadf913 # v4
- uses: dessant/reaction-comments@v4

View file

@ -1,54 +0,0 @@
name: Release Drafter
on:
push:
branches:
- dev
pull_request_target:
types: [opened, reopened, synchronize]
workflow_dispatch:
inputs:
version:
description: "Optional explicit version override (for example: 2.0.0)"
required: false
type: string
permissions:
contents: read
jobs:
update_release_draft:
name: Update Release Draft
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
permissions:
contents: write
pull-requests: read
runs-on: ubuntu-latest
steps:
- if: github.event_name == 'workflow_dispatch' && github.event.inputs.version != ''
uses: release-drafter/release-drafter@a6acf82562eee06318b77ab8cb0b11ed81c677a7 # v7
with:
config-name: release-drafter.yml
version: ${{ github.event.inputs.version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name != 'workflow_dispatch' || github.event.inputs.version == ''
uses: release-drafter/release-drafter@a6acf82562eee06318b77ab8cb0b11ed81c677a7 # v7
with:
config-name: release-drafter.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
auto_label:
name: Auto Label PR
if: github.event_name == 'pull_request_target'
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter/autolabeler@ebb69bb56f1b0ebd19897745035726b19bef973e
with:
config-name: release-drafter.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -18,7 +18,7 @@ jobs:
name: 'Stale'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10
- uses: actions/stale@v10
with:
days-before-stale: 7
days-before-close: 14
@ -32,7 +32,7 @@ jobs:
name: 'Lock Old Threads'
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6
- uses: dessant/lock-threads@v6
with:
issue-inactive-days: '30'
pr-inactive-days: '30'
@ -57,7 +57,7 @@ jobs:
name: 'Close Answered Discussions'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- uses: actions/github-script@v8
with:
script: |
function sleep(ms) {
@ -113,7 +113,7 @@ jobs:
name: 'Close Outdated Discussions'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- uses: actions/github-script@v8
with:
script: |
function sleep(ms) {
@ -204,7 +204,7 @@ jobs:
name: 'Close Unsupported Feature Requests'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- uses: actions/github-script@v8
with:
script: |
function sleep(ms) {

View file

@ -13,13 +13,13 @@ jobs:
matrix:
shard: [1, 2, 3, 4]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@v4
- uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
@ -28,7 +28,7 @@ jobs:
# Run Vitest directly so `--shard` is parsed as an option
- run: pnpm -s exec vitest run --coverage --shard ${{ matrix.shard }}/4 --pool forks
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/lcov.info

2
.gitignore vendored
View file

@ -46,7 +46,7 @@ next-env.d.ts
# IDEs
/.idea/
# Zensical documentation
# MkDocs documentation
site*/
.cache/

View file

@ -1 +0,0 @@
3.13

1
.vscode/launch.json vendored
View file

@ -3,7 +3,6 @@
{
"name": "Debug homepage",
"type": "node",
"preLaunchTask": "pnpm install",
"request": "launch",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["run", "dev"],

21
.vscode/tasks.json vendored
View file

@ -1,21 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "pnpm install",
"command": "pnpm install",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"clear": true,
"panel": "shared",
"showReuseMessage": false
},
"problemMatcher": []
}
]
}

View file

@ -38,11 +38,11 @@ People _love_ thorough bug reports. I'm not even kidding.
## Development Guidelines
Please see the [documentation regarding development](https://gethomepage.dev/widgets/authoring/getting-started/#development) and specifically the [guidelines for new service widgets](https://gethomepage.dev/widgets/authoring/getting-started/#service-widget-guidelines) if you are considering making one.
Please see the [documentation regarding development](https://gethomepage.dev/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/more/development/#service-widget-guidelines) if you are considering making one.
## Use a Consistent Coding Style
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/widgets/authoring/getting-started/#code-formatting-with-pre-commit-hooks).
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks).
## License

View file

@ -12,7 +12,6 @@ ARG CI
ARG BUILDTIME
ARG VERSION
ARG REVISION
ARG NEXT_PUBLIC_BASE_PATH
ENV CI=$CI
# Install and build only outside CI
@ -23,7 +22,6 @@ RUN if [ "$CI" != "true" ]; then \
NEXT_PUBLIC_BUILDTIME=$BUILDTIME \
NEXT_PUBLIC_VERSION=$VERSION \
NEXT_PUBLIC_REVISION=$REVISION \
NEXT_PUBLIC_BASE_PATH=$NEXT_PUBLIC_BASE_PATH \
pnpm run build; \
else \
echo "✅ Using prebuilt app from CI context"; \

View file

@ -16,8 +16,6 @@
<p align="center">
<a href="https://github.com/gethomepage/homepage/actions/workflows/docker-publish.yml"><img alt="GitHub Workflow Status (with event)" src="https://img.shields.io/github/actions/workflow/status/gethomepage/homepage/docker-publish.yml"></a>
&nbsp;
<a href="https://codecov.io/gh/gethomepage/homepage"><img src="https://codecov.io/gh/gethomepage/homepage/graph/badge.svg?token=7SKFL4D9K7"/></a>
&nbsp;
<a href="https://crowdin.com/project/gethomepage" target="_blank"><img src="https://badges.crowdin.net/gethomepage/localized.svg"></a>
&nbsp;
<a href="https://discord.gg/k4ruYNrudu"><img alt="Discord" src="https://img.shields.io/discord/1019316731635834932"></a>
@ -27,6 +25,13 @@
<a href="https://paypal.me/phelpsben" title="Donate"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/benphelps"></a>
</p>
<p align="center">
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>
</p>
<p align="center">
<em>Homepage builds are kindly powered by DigitalOcean.</em>
</p>
# Features
With features like quick search, bookmarks, weather support, a wide range of integrations and widgets, an elegant and modern design, and a focus on performance, Homepage is your ideal start to the day and a handy companion throughout it.
@ -149,16 +154,16 @@ This is a [Next.js](https://nextjs.org/) application, see their documentation fo
The homepage documentation is available at [https://gethomepage.dev/](https://gethomepage.dev/).
Homepage uses Zensical for documentation. To run the documentation locally, first install the dependencies:
Homepage uses Material for MkDocs for documentation. To run the documentation locally, first install the dependencies:
```bash
uv sync
pip install -r requirements.txt
```
Then run the development server:
```bash
uv run zensical serve # or build, to build the static site
mkdocs serve # or build, to build the static site
```
# Support & Suggestions

View file

@ -1,14 +0,0 @@
---
- Repositories:
- DeckForge:
- abbr: DF
href: https://bitbucket.org/zlalani/ppt-tool
- GMAL Scope Builder:
- abbr: GSB
href: https://bitbucket.org/zlalani/gmal-scope-builder
- Homepage:
- abbr: HP
href: https://bitbucket.org/zlalani/homepage
- OliVAS:
- abbr: OL
href: https://bitbucket.org/zlalani/olivas

View file

@ -1,3 +0,0 @@
---
local:
socket: /var/run/docker.sock

View file

@ -1,96 +0,0 @@
---
- AI Tools:
- DeckForge:
icon: mdi-presentation
href: https://optical-dev.oliver.solutions/ppt-tool
description: AI presentation generator
container: ppt-tool-web-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/ppt-tool
showStats: true
widget:
type: deploy
service: ppt-tool
label: DeckForge
- GMAL Scope Builder:
icon: mdi-briefcase-outline
href: https://optical-dev.oliver.solutions/gsb
description: AI ratecard & team scoping
container: gmal-scope-builder-backend-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/gsb/
showStats: true
widget:
type: deploy
service: gmal-scope-builder
label: Scope Builder
- Semblance:
icon: mdi-account-group-outline
href: https://optical-dev.oliver.solutions/semblance
description: Synthetic personas & focus groups
container: semblance-backend-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/semblance/
showStats: true
widget:
type: deploy
service: semblance
label: Semblance
- CC Dashboard:
icon: mdi-view-dashboard-outline
href: https://optical-dev.oliver.solutions/cc-dashboard
description: API key & project management
container: cc-dashboard-app-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/cc-dashboard/
showStats: true
widget:
type: deploy
service: cc-dashboard
label: CC Dashboard
- OliVAS:
icon: mdi-robot-outline
href: https://optical-dev.oliver.solutions
description: OliVAS backend API
container: olivas-backend-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/api/health
showStats: true
widget:
type: deploy
service: olivas
label: OliVAS
- Infrastructure:
- Homepage:
icon: mdi-home-outline
href: https://optical-dev.oliver.solutions/homepage
description: This dashboard
container: homepage-app-1
server: local
siteMonitor: https://optical-dev.oliver.solutions/homepage
showStats: true
widget:
type: deploy
service: homepage
label: Homepage
- Deploy API:
icon: mdi-rocket-launch-outline
href: https://optical-dev.oliver.solutions/deploy-api/docs
description: One-click deploy service
siteMonitor: https://optical-dev.oliver.solutions/deploy-api/services
- PostgreSQL × 4:
icon: mdi-database-outline
description: "ppt-tool · olivas · cc-dashboard · gmal"
href: https://optical-dev.oliver.solutions
- Redis + MongoDB:
icon: mdi-server-outline
description: ppt-tool (Redis) · semblance (Mongo)
href: https://optical-dev.oliver.solutions

View file

@ -1,33 +0,0 @@
---
title: Optical Dev
language: en
theme: dark
color: zinc
# Full-width layout, equal card heights, hide noise
fullWidth: true
useEqualHeights: true
headerStyle: clean
cardBlur: md
statusStyle: dot
hideVersion: true
disableUpdateCheck: true
target: _blank
# Layout sections
layout:
Widgets:
style: row
columns: 2
AI Tools:
style: row
columns: 5
useEqualHeights: true
Infrastructure:
style: row
columns: 4
useEqualHeights: true
Repositories:
style: row
columns: 4
iconsOnly: false

View file

@ -1,15 +0,0 @@
---
- resources:
cpu: true
memory: true
disk: /
label: optical-dev server
expanded: true
cputemp: false
- datetime:
text_size: xl
format:
timeStyle: short
dateStyle: short
hourCycle: h23

View file

@ -1,30 +0,0 @@
#!/bin/bash
set -e
DEPLOY_DIR="/opt/homepage"
REPO="git@bitbucket.org:zlalani/homepage.git"
echo "=== Homepage Deploy ==="
if [ ! -d "$DEPLOY_DIR/.git" ]; then
echo "Cloning repository..."
git clone "$REPO" "$DEPLOY_DIR"
cd "$DEPLOY_DIR"
else
echo "Pulling latest changes..."
cd "$DEPLOY_DIR"
git pull origin dev
fi
mkdir -p config
echo "Building and starting container..."
docker compose build --no-cache
docker compose up -d
echo "Waiting for healthcheck..."
sleep 15
docker compose ps
echo ""
echo "Done. Homepage available at https://optical-dev.oliver.solutions/homepage"

View file

@ -1,21 +0,0 @@
services:
app:
build:
context: .
args:
NEXT_PUBLIC_BASE_PATH: /homepage
ports:
- "127.0.0.1:3001:3000"
volumes:
- ./config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
HOSTNAME: "::"
HOMEPAGE_ALLOWED_HOSTS: "optical-dev.oliver.solutions"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://127.0.0.1:3000/api/healthcheck || exit 1"]
interval: 10s
timeout: 3s
start_period: 30s
retries: 3

View file

@ -177,16 +177,6 @@ labels:
- homepage.widget.fields=["field1","field2"] # optional
```
!!! note
If you use mapping syntax (`:`) for labels instead of list syntax (`-`), array values like `fields` must be wrapped in single quotes so they are passed as a string:
```yaml
labels:
...
homepage.widget.fields: '["field1","field2"]'
```
Multiple widgets can be specified by incrementing the index, e.g.
```yaml

View file

@ -223,33 +223,13 @@ spec:
- name: homepage
image: "ghcr.io/gethomepage/homepage:latest"
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: RuntimeDefault
env:
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: HOMEPAGE_ALLOWED_HOSTS
value: "$(MY_POD_IP):3000,gethomepage.dev" # See gethomepage.dev/installation/#homepage_allowed_hosts . Value before the comma is required for the k8s probe
value: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
ports:
- name: http
containerPort: 3000
protocol: TCP
livenessProbe:
httpGet:
path: /api/healthcheck
port: http
initialDelaySeconds: 5
periodSeconds: 15
volumeMounts:
- mountPath: /app/config/custom.js
name: homepage-config

View file

@ -7,17 +7,13 @@ You can include all or some of the available resources. If you do not want to se
The disk path is the path reported by `df` (Mounted On), or the mount point of the disk.
!!! note
Any disk you wish to access must be mounted to your container as a volume.
The cpu and memory resource information are the container's usage while [glances](glances.md) displays statistics for the host machine on which it is installed.
The resources widget primarily relies on a popular tool called [systeminformation](https://systeminformation.io). Thus, any limitiations of that software apply, for example, BRTFS RAID is not supported for the disk usage. In this case users may want to use the [glances widget](glances.md) instead.
!!! warning
_Note: unfortunately, the package used for getting CPU temp ([systeminformation](https://systeminformation.io)) is not compatible with some setups and will not report any value(s) for CPU temp._
The package used for getting CPU temp ([systeminformation](https://systeminformation.io)) is not compatible with some setups and will not report any value(s) for CPU temp.
**Any disk you wish to access must be mounted to your container as a volume.**
```yaml
- resources:
@ -79,10 +75,3 @@ You can additionally supply an optional `expanded` property set to true in order
```
![194136533-c4238c82-4d67-41a4-b3c8-18bf26d33ac2](https://user-images.githubusercontent.com/3441425/194728642-a9885274-922b-4027-acf5-a746f58fdfce.png)
To monitor a named host network interface in Docker (for example `network: eno1`), mount host `/sys` (read-only):
```yaml
volumes:
- /sys:/sys:ro
```

View file

@ -67,7 +67,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [Jackett](jackett.md)
- [JDownloader](jdownloader.md)
- [Jellyfin](jellyfin.md)
- [Seerr](seerr.md)
- [Jellyseerr](jellyseerr.md)
- [Jellystat](jellystat.md)
- [Kavita](kavita.md)
- [Komga](komga.md)
@ -101,6 +101,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [OpenMediaVault](openmediavault.md)
- [OpenWRT](openwrt.md)
- [OPNsense](opnsense.md)
- [Overseerr](overseerr.md)
- [PaperlessNGX](paperlessngx.md)
- [Peanut](peanut.md)
- [pfSense](pfsense.md)

View file

@ -5,7 +5,7 @@ description: Jellyfin Widget Configuration
Learn more about [Jellyfin](https://github.com/jellyfin/jellyfin).
You can create an API key from inside the Jellyfin Administration Dashboard under `Advanced > API Keys`.
You can create an API key from inside Jellyfin at `Settings > Advanced > Api Keys`.
As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "songs"]`. These blocks are disabled by default but can be enabled with the `enableBlocks` option, and the "Now Playing" feature (enabled by default) can be disabled with the `enableNowPlaying` option.
@ -17,7 +17,7 @@ As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "song
```yaml
widget:
type: jellyfin
url: http://jellyfin.host.or.ip:port
url: http://jellyfin.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
version: 2 # optional, default is 1
enableBlocks: true # optional, defaults to false

View file

@ -0,0 +1,18 @@
---
title: Jellyseerr
description: Jellyseerr Widget Configuration
---
Learn more about [Jellyseerr](https://github.com/Fallenbagel/jellyseerr).
Find your API key under `Settings > General > API Key`.
Allowed fields: `["pending", "approved", "available", "issues"]`.
Default fields: `["pending", "approved", "available"]`.
```yaml
widget:
type: jellyseerr
url: http://jellyseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -0,0 +1,17 @@
---
title: Overseerr
description: Overseerr Widget Configuration
---
Learn more about [Overseerr](https://github.com/sct/overseerr).
Find your API key under `Settings > General`.
Allowed fields: `["pending", "approved", "available", "processing"]`.
```yaml
widget:
type: overseerr
url: http://overseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -12,7 +12,7 @@ Allowed fields: no configurable fields for this widget.
```yaml
widget:
type: tautulli
url: http://tautulli.host.or.ip:port
url: http://tautulli.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableUser: true # optional, defaults to false
showEpisodeNumber: true # optional, defaults to false

View file

@ -1,20 +0,0 @@
---
title: Seerr Widget
description: Seerr Widget Configuration
---
Learn more about [Seerr](https://github.com/seerr-team/seerr).
Find your API key under `Settings > General > API Key`.
_Jellyseerr and Overseerr merged into Seerr. Use `type: seerr` (legacy `type: jellyseerr` and `type: overseerr` are aliased)._
Allowed fields: `["pending", "approved", "available", "completed", "processing", "issues"]`.
Default fields: `["pending", "approved", "completed"]`.
```yaml
widget:
type: seerr
url: http://seerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -1,15 +0,0 @@
---
title: SparkyFitness
description: SparkyFitness Widget Configuration
---
Learn more about [SparkyFitness](https://github.com/CodeWithCJ/SparkyFitness).
Allowed fields: `["eaten", "burned", "remaining", "steps"]`.
```yaml
widget:
type: sparkyfitness
url: http://sparkyfitness.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -1,21 +0,0 @@
---
title: Tracearr
description: Tracearr Widget Configuration
---
Learn more about [Tracearr](https://www.tracearr.com/).
Provides detailed information about currently active streams across multiple servers.
Allowed fields (for summary view): `["streams", "transcodes", "directplay", "bitrate"]`.
```yaml
widget:
type: tracearr
url: http://tracearr.host.or.ip:3000
key: apikeyapikeyapikeyapikeyapikey
view: both # optional, "summary", "details", or "both", defaults to "details"
enableUser: true # optional, defaults to false
showEpisodeNumber: true # optional, defaults to false
expandOneStreamToTwoRows: false # optional, defaults to true
```

View file

@ -1,24 +0,0 @@
---
title: UniFi Drive
description: UniFi Drive Widget Configuration
---
Learn more about [UniFi Drive](https://ui.com/integrations/network-storage).
## Configuration
Displays storage statistics from your UniFi Network Attached Storage (UNAS) device. Requires a local UniFi account with at least read privileges.
Allowed fields: `["total", "used", "available", "status"]`
```yaml
widget:
type: unifi_drive
url: https://unifi.host.or.ip
username: your_username
password: your_password
```
!!! hint
If you enter incorrect credentials and receive an "API Error", you may need to recreate the container or restart the service to clear the cache.

View file

@ -20,13 +20,13 @@ helm install my-release jameswynn/homepage
Set the `mode` in the `kubernetes.yaml` to `cluster`.
```yaml
mode: cluster
mode: default
```
To enable Kubernetes gateway-api compatibility, set `gateway` to `true`.
To enable Kubernetes gateway-api compatibility, set `route` to `gateway`.
```yaml
gateway: true
route: gateway
```
## Widgets

View file

@ -91,6 +91,7 @@ nav:
- widgets/services/jackett.md
- widgets/services/jdownloader.md
- widgets/services/jellyfin.md
- widgets/services/jellyseerr.md
- widgets/services/jellystat.md
- widgets/services/kavita.md
- widgets/services/komga.md
@ -124,6 +125,7 @@ nav:
- widgets/services/openmediavault.md
- widgets/services/opnsense.md
- widgets/services/openwrt.md
- widgets/services/overseerr.md
- widgets/services/pangolin.md
- widgets/services/paperlessngx.md
- widgets/services/peanut.md
@ -149,10 +151,8 @@ nav:
- widgets/services/rutorrent.md
- widgets/services/sabnzbd.md
- widgets/services/scrutiny.md
- widgets/services/seerr.md
- widgets/services/slskd.md
- widgets/services/sonarr.md
- widgets/services/sparkyfitness.md
- widgets/services/speedtest-tracker.md
- widgets/services/spoolman.md
- widgets/services/stash.md
@ -165,13 +165,11 @@ nav:
- widgets/services/technitium.md
- widgets/services/tdarr.md
- widgets/services/traefik.md
- widgets/services/tracearr.md
- widgets/services/transmission.md
- widgets/services/trilium.md
- widgets/services/truenas.md
- widgets/services/tubearchivist.md
- widgets/services/unifi-controller.md
- widgets/services/unifi-drive.md
- widgets/services/unmanic.md
- widgets/services/unraid.md
- widgets/services/uptime-kuma.md

View file

@ -4,14 +4,8 @@ const { i18n } = require("./next-i18next.config");
const nextConfig = {
reactStrictMode: true,
output: "standalone",
basePath: process.env.NEXT_PUBLIC_BASE_PATH || "",
images: {
remotePatterns: [
{
protocol: "https",
hostname: "cdn.jsdelivr.net",
},
],
domains: ["cdn.jsdelivr.net"],
unoptimized: true,
},
i18n,

View file

@ -1,11 +1,11 @@
{
"name": "homepage",
"version": "1.10.1",
"version": "1.10.0",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",
"dev": "next dev",
"build": "next build --webpack",
"build": "next build",
"start": "next start",
"lint": "eslint .",
"test": "vitest run",
@ -22,26 +22,26 @@
"follow-redirects": "^1.15.11",
"gamedig": "^5.3.2",
"i18next": "^25.8.0",
"ical.js": "^2.2.1",
"ical.js": "^2.1.0",
"js-yaml": "^4.1.1",
"json-rpc-2.0": "^1.7.0",
"luxon": "^3.6.1",
"memory-cache": "^0.2.0",
"minecraftstatuspinger": "^1.2.2",
"next": "^16.1.7",
"next-i18next": "^15.4.3",
"next": "^15.5.11",
"next-i18next": "^12.1.0",
"ping": "^0.4.4",
"pretty-bytes": "^7.1.0",
"raw-body": "^3.0.2",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-i18next": "^15.5.3",
"react-icons": "^5.6.0",
"react-icons": "^5.5.0",
"recharts": "^3.1.2",
"swr": "^2.4.1",
"systeminformation": "^5.30.8",
"swr": "^2.4.0",
"systeminformation": "^5.27.11",
"tough-cookie": "^6.0.0",
"urbackup-server-api": "^0.92.2",
"urbackup-server-api": "^0.91.0",
"winston": "^3.19.0",
"ws": "^8.18.3",
"xml-js": "^1.6.11"
@ -60,12 +60,12 @@
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0",
"jsdom": "^28.1.0",
"jsdom": "^26.1.0",
"postcss": "^8.5.6",
"prettier": "^3.8.1",
"prettier": "^3.7.3",
"prettier-plugin-organize-imports": "^4.3.0",
"tailwind-scrollbar": "^4.0.2",
"tailwindcss": "^4.1.18",

1252
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -66,11 +66,6 @@
"wait": "Wag asseblief",
"empty_data": "Substelsel status onbekend"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -113,14 +108,14 @@
"songs": "Liedjies"
},
"jellyfin": {
"playing": "Speel",
"transcoding": "Transkodering",
"bitrate": "Bistempo",
"no_active": "Geen Aktiewe Strome",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Reekse",
"episodes": "Episode",
"songs": "Liedjies"
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Vanlyn af",
@ -189,13 +184,6 @@
"no_active": "Geen aktiewe strome nie",
"plex_connection_error": "Gaan Plex-verbinding Na"
},
"tracearr": {
"no_active": "Geen Aktiewe Strome",
"streams": "Uitsendings",
"transcodes": "Transkodering",
"directplay": "Direkte Speel",
"bitrate": "Bistempo"
},
"omada": {
"connectedAp": "Gekoppelde APs",
"activeUser": "Aktiewe toestelle",
@ -294,14 +282,18 @@
"approved": "Goedgekeur",
"available": "Beskikbaar"
},
"seerr": {
"jellyseerr": {
"pending": "Afwagtend",
"approved": "Goedgekeur",
"available": "Beskikbaar",
"completed": "Afgehandel",
"processing": "Verwerking",
"issues": "Oop Kwessies"
},
"overseerr": {
"pending": "Afwagtend",
"processing": "Verwerking",
"approved": "Goedgekeur",
"available": "Beskikbaar"
},
"netalertx": {
"total": "Totaal",
"connected": "Gekoppel",
@ -1160,11 +1152,11 @@
"artists": "Kunstenaars"
},
"arcane": {
"containers": "Houers",
"images": "Beelde",
"image_updates": "Beeldopdaterings",
"images_unused": "Ongebruik",
"environment_required": "Omgewings-ID Vereis"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Lopend",
@ -1179,11 +1171,5 @@
"paused": "Onderbreek",
"total": "Totaal",
"environment_not_found": "Omgewing Nie Gevind Nie"
},
"sparkyfitness": {
"eaten": "Geëet",
"burned": "Verbrand",
"remaining": "Oorblywende",
"steps": "Stappe"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "حالة النظام الفرعي غير معروفة"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "استقبال",
"tx": "ارسال",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "تحقق من الاتصال بـ Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "المتصلة APs",
"activeUser": "الأجهزة النشطة",
@ -294,14 +282,18 @@
"approved": "مصدق",
"available": "متاح"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "معالجة",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Моля изчакайте",
"empty_data": "Неизвестен статус на подсистема"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "ПЧ",
"tx": "ИЗ",
@ -189,13 +184,6 @@
"no_active": "Няма активни потоци",
"plex_connection_error": "Провери връзка с Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Свързани точки",
"activeUser": "Активни устройства",
@ -294,14 +282,18 @@
"approved": "Одобрен",
"available": "Наличен"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -61,16 +61,11 @@
"wlan_devices": "Dispositius WLAN",
"lan_users": "Usuaris LAN",
"wlan_users": "Usuaris WLAN",
"up": "ACTIU",
"up": "UP",
"down": "INACTIU",
"wait": "Si us plau espera",
"empty_data": "Estat del subsistema desconegut"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Rebut",
"tx": "Transmès",
@ -98,8 +93,8 @@
"http_status": "Estat HTTP",
"error": "Error",
"response": "Resposta",
"down": "Inactiu",
"up": "Actiu",
"down": "Down",
"up": "Up",
"not_available": "No disponible"
},
"emby": {
@ -113,21 +108,21 @@
"songs": "Cançons"
},
"jellyfin": {
"playing": "Reproduïnt",
"transcoding": "Transcodificant",
"bitrate": "Taxa de bits",
"no_active": "Sense reproduccions actives",
"movies": "Pel·lícules",
"series": "Sèries",
"episodes": "Episodis",
"songs": "Cançons"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Desconnectat",
"offline_alt": "Desconnectat",
"offline": "Offline",
"offline_alt": "Offline",
"online": "En línia",
"total": "Total",
"unknown": "Desconegut"
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Producció",
@ -148,7 +143,7 @@
"unread": "Sense llegir"
},
"fritzbox": {
"connectionStatus": "Estat",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Sense configurar",
"connectionStatusConnecting": "Connectant",
"connectionStatusAuthenticating": "Autenticant",
@ -156,11 +151,11 @@
"connectionStatusDisconnecting": "Desconnectant",
"connectionStatusDisconnected": "Desconnectat",
"connectionStatusConnected": "Connectat",
"uptime": "Temps en funcionament",
"uptime": "Uptime",
"maxDown": "Màx. Descàrrega",
"maxUp": "Màx. Càrrega",
"down": "Inactiu",
"up": "Actiu",
"down": "Down",
"up": "Up",
"received": "Rebuts",
"sent": "Enviats",
"externalIPAddress": "IP ext.",
@ -183,24 +178,17 @@
"passes": "Aprovat"
},
"tautulli": {
"playing": "Reproduïnt",
"transcoding": "Transcodificant",
"bitrate": "Taxa de bits",
"no_active": "Sense reproduccions actives",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Comprova la connexió de Plex"
},
"tracearr": {
"no_active": "Sense reproduccions actives",
"streams": "Transmissions",
"transcodes": "Transcodificacions",
"directplay": "Reproducció directa",
"bitrate": "Taxa de bits"
},
"omada": {
"connectedAp": "AP connectats",
"activeUser": "Dispositius actius",
"alerts": "Alertes",
"connectedGateways": "Pasarel·les connectades",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Conmutadors connectats"
},
"nzbget": {
@ -211,24 +199,24 @@
"plex": {
"streams": "Transmissions actives",
"albums": "Àlbums",
"movies": "Pel·lícules",
"movies": "Movies",
"tv": "Sèries"
},
"sabnzbd": {
"rate": "Taxa",
"rate": "Rate",
"queue": "Cua",
"timeleft": "Temps restant"
},
"rutorrent": {
"active": "Actiu",
"upload": "Pujada",
"download": "Baixada"
"upload": "Upload",
"download": "Download"
},
"transmission": {
"download": "Baixada",
"upload": "Pujada",
"leech": "Sangonera",
"seed": "Sembrat"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
@ -294,14 +282,18 @@
"approved": "Aprovat",
"available": "Disponible"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processant",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -331,10 +323,10 @@
"total": "Total"
},
"suwayomi": {
"download": "Descarregat",
"download": "Downloaded",
"nondownload": "No descarregat",
"read": "Llegits",
"unread": "No llegits",
"read": "Read",
"unread": "Unread",
"downloadedread": "Descarregat i llegit",
"downloadedunread": "Descarregat i per llegir",
"nondownloadedread": "No descarregat i llegit",
@ -355,7 +347,7 @@
"ago": "Fa {{value}}"
},
"technitium": {
"totalQueries": "Consultes",
"totalQueries": "Queries",
"totalNoError": "Èxits",
"totalServerFailure": "Fallades",
"totalNxDomain": "Dominis NX",
@ -363,12 +355,12 @@
"totalAuthoritative": "Autoritatiu",
"totalRecursive": "Recursiu",
"totalCached": "A la memòria cau",
"totalBlocked": "Bloquejats",
"totalBlocked": "Blocked",
"totalDropped": "Abandonat",
"totalClients": "Clients"
},
"tdarr": {
"queue": "Cua",
"queue": "Queue",
"processed": "Processat",
"errored": "Error",
"saved": "Estalviat"
@ -379,13 +371,13 @@
"middleware": "Intermediari"
},
"trilium": {
"version": "Versió",
"version": "Version",
"notesCount": "Notes",
"dbSize": "Tamany de la base de dades",
"unknown": "Desconegut"
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "Sense reproduccions actives",
"nothing_streaming": "No Active Streams",
"please_wait": "Espereu si us plau"
},
"npm": {
@ -408,43 +400,43 @@
"prowlarr": {
"enableIndexers": "Indexadors",
"numberOfGrabs": "Captures",
"numberOfQueries": "Consultes",
"numberOfQueries": "Queries",
"numberOfFailGrabs": "Captures fallides",
"numberOfFailQueries": "Consultes fallides"
},
"jackett": {
"configured": "Configurat",
"errored": "Errors"
"errored": "Errored"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connexions",
"dataRelayed": "Transmès",
"transferRate": "Taxa"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Usuaris",
"user_count": "Users",
"status_count": "Publicacions",
"domain_count": "Dominis"
},
"medusa": {
"wanted": "Volguts",
"queued": "Encuat",
"series": "Sèries"
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Jugadors",
"version": "Versió",
"status": "Estat",
"up": "En línia",
"down": "Fora de línia"
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Llegit",
"unread": "No llegits"
"unread": "Unread"
},
"authentik": {
"users": "Usuaris",
"users": "Users",
"loginsLast24H": "Inicis de sessió (24h)",
"failedLoginsLast24H": "Errors d'inici de sessió (24h)"
},
@ -456,19 +448,19 @@
},
"glances": {
"cpu": "CPU",
"load": "Càrrega",
"wait": "Si us plau espera",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Avís",
"uptime": "ACTIU",
"uptime": "UP",
"total": "Total",
"free": "Lliure",
"used": "Utilitzat",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crític",
"read": "Lectura",
"read": "Read",
"write": "Escriptura",
"gpu": "GPU",
"mem": "Mem",
@ -489,25 +481,25 @@
"1-day": "Majorment assolellat",
"1-night": "Majorment clar",
"2-day": "Parcialment ennuvolat",
"2-night": "Parcialment ennuvolat",
"2-night": "Partly Cloudy",
"3-day": "Ennuvolat",
"3-night": "Ennuvolat",
"3-night": "Cloudy",
"45-day": "Boirós",
"45-night": "Emboirat",
"48-day": "Boirós",
"48-night": "Emboirat",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Ruixats lleugers",
"51-night": "Plugim lleuger",
"51-night": "Light Drizzle",
"53-day": "Ruixat",
"53-night": "Plugim",
"53-night": "Drizzle",
"55-day": "Ruixat intens",
"55-night": "Plovisqueig intens",
"55-night": "Heavy Drizzle",
"56-day": "Lleuger ruixat gelat",
"56-night": "Lleuger ruixat gelat",
"56-night": "Light Freezing Drizzle",
"57-day": "Ruixat gelat",
"57-night": "Plugim gelat",
"57-night": "Freezing Drizzle",
"61-day": "Pluja lleugera",
"61-night": "Pluja lleugera",
"61-night": "Light Rain",
"63-day": "Pluja",
"63-night": "Rain",
"65-day": "Pluja intensa",
@ -642,12 +634,12 @@
"mikrotik": {
"cpuLoad": "Càrrega de CPU",
"memoryUsed": "Memoria en ús",
"uptime": "Temps en funcionament",
"uptime": "Uptime",
"numberOfLeases": "IPs assignades"
},
"xteve": {
"streams_all": "Tots els streams",
"streams_active": "Transmissions actives",
"streams_active": "Active Streams",
"streams_xepg": "Canals XEPG"
},
"opendtu": {
@ -657,7 +649,7 @@
"limit": "Límit"
},
"opnsense": {
"cpu": "Càrrega de CPU",
"cpu": "CPU Load",
"memory": "Memòria activa",
"wanUpload": "Pujada WAN",
"wanDownload": "Baixada WAN"
@ -669,21 +661,21 @@
"layers": "Capes"
},
"octoprint": {
"printer_state": "Estat",
"printer_state": "Status",
"temp_tool": "Temperatura capçal",
"temp_bed": "Temperatura llit",
"job_completion": "Finalització"
},
"cloudflared": {
"origin_ip": "IP Origen",
"status": "Estat"
"status": "Status"
},
"pfsense": {
"load": "Càrrega mitjana",
"memory": "Ús Memòria",
"wanStatus": "Estat WAN",
"up": "Actiu",
"down": "Inactiu",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Ús Disc",
"wanIP": "IP WAN"
@ -695,58 +687,58 @@
"memory_usage": "Memòria"
},
"immich": {
"users": "Usuaris",
"users": "Users",
"photos": "Fotos",
"videos": "Vídeos",
"videos": "Videos",
"storage": "Emmagatzematge"
},
"uptimekuma": {
"up": "Actius",
"down": "Caiguts",
"uptime": "Temps en funcionament",
"uptime": "Uptime",
"incident": "Incidència",
"m": "m"
},
"atsumeru": {
"series": "Sèries",
"series": "Series",
"archives": "Arxius",
"chapters": "Capítols",
"categories": "Categories"
},
"komga": {
"libraries": "Biblioteques",
"series": "Sèries",
"books": "Llibres"
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "Dies",
"uptime": "Temps en funcionament",
"volumeAvailable": "Disponible"
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"dispatcharr": {
"channels": "Canals",
"streams": "Transmissions"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "Sèries",
"series": "Series",
"issues": "Problemes",
"wanted": "Volguts"
"wanted": "Wanted"
},
"photoprism": {
"albums": "Àlbums",
"photos": "Fotos",
"videos": "Vídeos",
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "Gent"
},
"fileflows": {
"queue": "Cua",
"processing": "Processant",
"processed": "Processat",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Temps"
},
"firefly": {
"networth": "Valor Net",
"budget": "Pressupost"
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Taulells",
@ -763,11 +755,11 @@
"numshares": "Elements compartits"
},
"kopia": {
"status": "Estat",
"status": "Status",
"size": "Mida",
"lastrun": "Darrera execució",
"nextrun": "Següent execució",
"failed": "Error"
"failed": "Failed"
},
"unmanic": {
"active_workers": "Treballadors actius",
@ -784,21 +776,21 @@
"targets_total": "Objectius Totals"
},
"gatus": {
"up": "Actius",
"down": "Caiguts",
"uptime": "Temps en funcionament"
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": {
"gross_percent_today": "Avui",
"gross_percent_today": "Today",
"gross_percent_1y": "Un any",
"gross_percent_max": "Sempre",
"net_worth": "Valor Net"
"net_worth": "Net Worth"
},
"audiobookshelf": {
"podcasts": "Pòdcasts",
"books": "Llibres",
"books": "Books",
"podcastsDuration": "Durada",
"booksDuration": "Durada"
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "Gent a casa",
@ -807,23 +799,23 @@
},
"whatsupdocker": {
"monitoring": "Supervisió",
"updates": "Actualitzacions"
"updates": "Updates"
},
"calibreweb": {
"books": "Llibres",
"books": "Books",
"authors": "Autors",
"categories": "Categories",
"series": "Sèries"
"series": "Series"
},
"booklore": {
"libraries": "Biblioteques",
"books": "Llibres",
"reading": "Llegint",
"finished": "Acabats"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Cua",
"downloadBytesRemaining": "Restant",
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
@ -995,17 +987,17 @@
},
"frigate": {
"cameras": "Càmeres",
"uptime": "Temps en funcionament",
"version": "Versió"
"uptime": "Uptime",
"version": "Version"
},
"linkwarden": {
"links": "Enllaços",
"collections": "Col·leccions",
"tags": "Etiquetes"
"tags": "Tags"
},
"zabbix": {
"unclassified": "No classificat",
"information": "Informació",
"information": "Information",
"warning": "Avís",
"average": "Mitjana",
"high": "Alt",
@ -1026,22 +1018,22 @@
"tasksInProgress": "Tasques en marxa"
},
"headscale": {
"name": "Nom",
"address": "Adreça",
"last_seen": "Vist per darrera vegada",
"status": "Estat",
"online": "En línia",
"offline": "Desconnectat"
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Nom",
"name": "Name",
"systems": "Sistemes",
"up": "Actiu",
"down": "Inactiu",
"paused": "Pausat",
"pending": "Pendent",
"status": "Estat",
"updated": "Actualitzat",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disc",
@ -1051,34 +1043,34 @@
"apps": "Apps",
"synced": "Sincronitzats",
"outOfSync": "Dessincronitzats",
"healthy": "Sa",
"healthy": "Healthy",
"degraded": "Degradats",
"progressing": "Progressant",
"missing": "Falten",
"missing": "Missing",
"suspended": "Suspesos"
},
"spoolman": {
"loading": "Carregant"
"loading": "Loading"
},
"gitlab": {
"groups": "Grups",
"issues": "Problemes",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projectes"
},
"apcups": {
"status": "Estat",
"load": "Càrrega",
"bcharge": "Càrrega de la bateria",
"timeleft": "Temps restant"
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Marcadors",
"favorites": "Preferits",
"archived": "Arxivats",
"highlights": "Destacats",
"lists": "Llistes",
"tags": "Etiquetes"
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

File diff suppressed because it is too large Load diff

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status ukendt"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Tjek Plex-forbindelse"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Forbundne APs",
"activeUser": "Aktive enheder",
@ -294,14 +282,18 @@
"approved": "Godkendt",
"available": "Tilgængelig"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Behandler",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Bitte warten",
"empty_data": "Subsystem-Status unbekannt"
},
"unifi_drive": {
"healthy": "Gesund",
"degraded": "Beeinträchtigt",
"no_data": "Keine Speicherdaten verfügbar"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -113,14 +108,14 @@
"songs": "Songs"
},
"jellyfin": {
"playing": "Wiedergabe",
"playing": "Playing",
"transcoding": "Transkodierung",
"bitrate": "Bitrate",
"no_active": "Keine aktiven Streams",
"movies": "Filme",
"series": "Serien",
"episodes": "Episoden",
"songs": "Titel"
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "Keine aktiven Streams",
"plex_connection_error": "Prüfe Plex-Verbindung"
},
"tracearr": {
"no_active": "Keine aktiven Streams",
"streams": "Streams",
"transcodes": "Transkodieren",
"directplay": "Direkte Wiedergabe",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Verbundene APs",
"activeUser": "Aktive Geräte",
@ -294,13 +282,17 @@
"approved": "Genehmigt",
"available": "Verfügbar"
},
"seerr": {
"pending": "Ausstehend",
"approved": "Bestätigt",
"jellyseerr": {
"pending": "Wartend",
"approved": "Genehmigt",
"available": "Verfügbar",
"completed": "Abgeschlossen",
"issues": "Offene Issues"
},
"overseerr": {
"pending": "Wartend",
"processing": "Wird verarbeitet",
"issues": "Offene Probleme"
"approved": "Genehmigt",
"available": "Verfügbar"
},
"netalertx": {
"total": "Total",
@ -620,7 +612,7 @@
},
"pangolin": {
"orgs": "Orgs",
"sites": "Seiten",
"sites": "Sites",
"resources": "Ressourcen",
"targets": "Ziele",
"traffic": "Traffic",
@ -724,7 +716,7 @@
"volumeAvailable": "Verfügbar"
},
"dispatcharr": {
"channels": "Kanäle",
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
@ -816,10 +808,10 @@
"series": "Serien"
},
"booklore": {
"libraries": "Bibliotheken",
"libraries": "Libraries",
"books": "Bücher",
"reading": "Am Lesen",
"finished": "Fertig"
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Warteschlange",
@ -1160,30 +1152,24 @@
"artists": "Künstler"
},
"arcane": {
"containers": "Container",
"containers": "Containers",
"images": "Images",
"image_updates": "Image-Updates",
"images_unused": "Ungenutzt",
"environment_required": "Umgebungs-ID erforderlich"
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Wird ausgeführt",
"stopped": "Gestoppt",
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "RAM",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Heutige Ereignisse",
"pending_updates": "Ausstehende Updates",
"stacks": "Stacks",
"paused": "Pausiert",
"total": "Gesamt",
"total": "Total",
"environment_not_found": "Umgebung nicht gefunden"
},
"sparkyfitness": {
"eaten": "",
"burned": "Verbrannt",
"remaining": "Verbleibend",
"steps": "Schritte"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Άγνωστη κατάσταση υποσυστήματος"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Έλεγχος Σύνδεσης με Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Συνδεδεμένα APs",
"activeUser": "Ενεργές συσκευές",
@ -294,14 +282,18 @@
"approved": "Εγκρίθηκε",
"available": "Διαθέσιμο"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Σε επεξεργασία",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Approved",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsistemostatuso nekonata"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Aprobita",
"available": "Havebla"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Espere, por favor",
"empty_data": "Se desconoce el estado del subsistema"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Recibido",
"tx": "Transmitido",
@ -189,13 +184,6 @@
"no_active": "Sin transmisiones activas",
"plex_connection_error": "Comprueba la conexión a Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "AP conectados",
"activeUser": "Dispositivos activos",
@ -294,13 +282,17 @@
"approved": "Aprobado",
"available": "Disponible"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
"jellyseerr": {
"pending": "Pendiente",
"approved": "Aprobado",
"available": "Disponible",
"issues": "Issues Abiertos"
},
"overseerr": {
"pending": "Pendiente",
"processing": "Procesando",
"approved": "Aprobado",
"available": "Disponible"
},
"netalertx": {
"total": "Total",
@ -1179,11 +1171,5 @@
"paused": "En Pausa",
"total": "Total",
"environment_not_found": "Entorno no encontrado"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Approved",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Hyväksytty",
"available": "Saatavilla"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Veuillez patienter",
"empty_data": "Statut du sous-système inconnu"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Rx",
"tx": "Tx",
@ -113,8 +108,8 @@
"songs": "Morceaux"
},
"jellyfin": {
"playing": "En cours",
"transcoding": "En cours d'encodage",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
@ -189,13 +184,6 @@
"no_active": "Aucune lecture en cours",
"plex_connection_error": "Vérifier la connexion à Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "APs connectées",
"activeUser": "Périphériques actifs",
@ -294,13 +282,17 @@
"approved": "Approuvé",
"available": "Disponible"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
"jellyseerr": {
"pending": "En attente",
"approved": "Approuvé",
"available": "Disponible",
"issues": "Problèmes non résolus"
},
"overseerr": {
"pending": "En attente",
"processing": "En cours de traitement",
"approved": "Approuvé",
"available": "Disponible"
},
"netalertx": {
"total": "Total",
@ -621,9 +613,9 @@
"pangolin": {
"orgs": "Orgs",
"sites": "Sites",
"resources": "Ressources",
"targets": "Cibles",
"traffic": "Trafique",
"resources": "Resources",
"targets": "Targets",
"traffic": "Traffic",
"in": "In",
"out": "Out"
},
@ -720,7 +712,7 @@
},
"diskstation": {
"days": "Jours",
"uptime": "Démarré depuis",
"uptime": "Disponibilité",
"volumeAvailable": "Disponible"
},
"dispatcharr": {
@ -751,7 +743,7 @@
"grafana": {
"dashboards": "Tableau de bord",
"datasources": "Sources données",
"totalalerts": "Alertes totales",
"totalalerts": "Total alertes",
"alertstriggered": "Alertes déclenchées"
},
"nextcloud": {
@ -950,7 +942,7 @@
"studios": "Studios",
"movies": "Films",
"tags": "Tags",
"oCount": "O-mètre"
"oCount": "0 Compte"
},
"tandoor": {
"users": "Utilisateurs",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "נא להמתין",
"empty_data": "מצב תת-מערכת לא ידוע"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "אין הזרמות פעילות",
"plex_connection_error": "בדוק חיבור ל-Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "נקודות גישה מחוברות",
"activeUser": "מכשירים פעילים",
@ -294,14 +282,18 @@
"approved": "מאושר",
"available": "זמין"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"jellyseerr": {
"pending": "ממתין לאישור",
"approved": "מאושר",
"available": "זמין",
"issues": "Open Issues"
},
"overseerr": {
"pending": "ממתין לאישור",
"processing": "מעבד",
"approved": "מאושר",
"available": "זמין"
},
"netalertx": {
"total": "סה\"כ",
"connected": "מחובר",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Approved",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Pričekaj",
"empty_data": "Stanje podsustava nepoznato"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -113,14 +108,14 @@
"songs": "Pjesme"
},
"jellyfin": {
"playing": "Reprodukcija u tijeku",
"transcoding": "Prekodiranje",
"bitrate": "Stopa bitova",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Filmovi",
"series": "Serije",
"episodes": "Epizode",
"songs": "Pjesme"
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "Nema aktivnih prijenosa",
"plex_connection_error": "Provjeri Plex vezu"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Prekodiranja",
"directplay": "Izravna reprodukcija",
"bitrate": "Stopa bitova"
},
"omada": {
"connectedAp": "Povezani AP-ovi",
"activeUser": "Aktivni uređaji",
@ -294,14 +282,18 @@
"approved": "Odobreno",
"available": "Dostupno"
},
"seerr": {
"pending": "Na čekanju",
"jellyseerr": {
"pending": "U tijeku",
"approved": "Odobreno",
"available": "Dostupno",
"completed": "Dovršeno",
"processing": "Obrada",
"issues": "Otvoreni problemi"
},
"overseerr": {
"pending": "U tijeku",
"processing": "Obrada",
"approved": "Odobreno",
"available": "Dostupno"
},
"netalertx": {
"total": "Ukupno",
"connected": "Spojeno",
@ -551,7 +543,7 @@
"up": "Aktivno",
"pending": "U tijeku",
"down": "Neaktivno",
"ok": "U redu"
"ok": "Ok"
},
"healthchecks": {
"new": "Novo",
@ -619,11 +611,11 @@
"total": "Ukupno"
},
"pangolin": {
"orgs": "Organizacije",
"sites": "Web-stranice",
"resources": "Resursi",
"targets": "Ciljevi",
"traffic": "Promet",
"orgs": "Orgs",
"sites": "Sites",
"resources": "Resources",
"targets": "Targets",
"traffic": "Traffic",
"in": "In",
"out": "Out"
},
@ -724,7 +716,7 @@
"volumeAvailable": "Dostupno"
},
"dispatcharr": {
"channels": "Kanali",
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
@ -816,10 +808,10 @@
"series": "Serije"
},
"booklore": {
"libraries": "Knjižnice",
"books": "Knjige",
"reading": "Čitanje",
"finished": "Završeno"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Red čekanja",
@ -1160,30 +1152,24 @@
"artists": "Izvođači"
},
"arcane": {
"containers": "Kontejneri",
"images": "Slike",
"image_updates": "Aktualizirane slike",
"images_unused": "Nekorišteno",
"environment_required": "ID okruženja se mora navesti"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Pokreće se",
"stopped": "Zaustavljeno",
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "Memorija",
"images": "Slike",
"volumes": "Jedinice memorije",
"events_today": "Događanja danas",
"pending_updates": "Aktualiziranja na čekanju",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
"stacks": "Stacks",
"paused": "Pauzirano",
"total": "Ukupno",
"environment_not_found": "Okruženje nije pronađeno"
},
"sparkyfitness": {
"eaten": "Pojedeno",
"burned": "Potrošeno",
"remaining": "Preostalo",
"steps": "Koraci"
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Kérjük várjon",
"empty_data": "Az alrendszer állapota ismeretlen"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "Nincs aktív lejátszás",
"plex_connection_error": "Plex kapcsolat ellenőrzése"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Csatlakoztatott AP-k",
"activeUser": "Aktív eszközök",
@ -294,13 +282,17 @@
"approved": "Engedélyezett",
"available": "Elérhető"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
"jellyseerr": {
"pending": "Függőben lévő",
"approved": "Jóváhagyott",
"available": "Elérhető",
"issues": "Nyitott problémák"
},
"overseerr": {
"pending": "Függőben lévő",
"processing": "Feldolgozás",
"approved": "Jóváhagyott",
"available": "Elérhető"
},
"netalertx": {
"total": "Összes",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Status subsistem tdk diketahui"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Cek Koneksi ke Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "AP Tersambung",
"activeUser": "Perangakat yang Aktif",
@ -294,14 +282,18 @@
"approved": "Tersetujui",
"available": "Tersedia"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Memproses",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Stato del sottosistema sconosciuto"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -118,7 +113,7 @@
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Serie",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Controllare la connessione a Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "AP Connessi",
"activeUser": "Dispositivi attivi",
@ -294,14 +282,18 @@
"approved": "Approvati",
"available": "Disponibili"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "In lavorazione",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -326,7 +318,7 @@
"ping": "Ping"
},
"portainer": {
"running": "In esecuzione",
"running": "Running",
"stopped": "Fermati",
"total": "Total"
},
@ -721,7 +713,7 @@
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Disponibili"
"volumeAvailable": "Available"
},
"dispatcharr": {
"channels": "Channels",
@ -1092,9 +1084,9 @@
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Brani",
"movies": "Film",
"episodes": "Episodi",
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Altro"
},
"checkmk": {
@ -1118,11 +1110,11 @@
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Abbonamenti",
"thisMonthlyCost": "Questo Mese",
"nextMonthlyCost": "Mese Prossimo",
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": ""
"nextRenewingSubscription": "Next Payment"
},
"unraid": {
"STARTED": "Started",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "お待ちください",
"empty_data": "サブシステムの状態は不明"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "受信済み",
"tx": "送信済み",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Plex接続の確認"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "接続されたAP",
"activeUser": "アクティブデバイス",
@ -294,14 +282,18 @@
"approved": "承認済",
"available": "利用可"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "処理中",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "잠시만 기다려주세요",
"empty_data": "서브시스템 상태 알 수 없음"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "수신",
"tx": "송신",
@ -113,14 +108,14 @@
"songs": "음악"
},
"jellyfin": {
"playing": "재생 중",
"transcoding": "트랜스코딩 중",
"bitrate": "비트레이트",
"no_active": "활성 스트림 없음",
"movies": "영상",
"series": "시리즈",
"episodes": "에피소드",
"songs": "음악"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "오프라인",
@ -189,13 +184,6 @@
"no_active": "활성 스트림 없음",
"plex_connection_error": "Plex 연결 확인"
},
"tracearr": {
"no_active": "활성 스트림 없음",
"streams": "스트림",
"transcodes": "트랜스코드",
"directplay": "다이렉트 플레이",
"bitrate": "비트레이트"
},
"omada": {
"connectedAp": "연결된 AP",
"activeUser": "활성 장치",
@ -294,14 +282,18 @@
"approved": "승인됨",
"available": "이용 가능"
},
"seerr": {
"jellyseerr": {
"pending": "대기 중",
"approved": "승인됨",
"available": "사용 가능",
"completed": "완료됨",
"processing": "처리 중",
"available": "이용 가능",
"issues": "열린 이슈"
},
"overseerr": {
"pending": "대기 중",
"processing": "처리 중",
"approved": "승인됨",
"available": "이용 가능"
},
"netalertx": {
"total": "전체",
"connected": "연결됨",
@ -551,7 +543,7 @@
"up": "업",
"pending": "대기 중",
"down": "다운",
"ok": "확인"
"ok": "Ok"
},
"healthchecks": {
"new": "신규",
@ -623,9 +615,9 @@
"sites": "Sites",
"resources": "Resources",
"targets": "Targets",
"traffic": "트래픽",
"in": "수신",
"out": "송신"
"traffic": "Traffic",
"in": "In",
"out": "Out"
},
"peanut": {
"battery_charge": "배터리 충전",
@ -724,8 +716,8 @@
"volumeAvailable": "사용 가능"
},
"dispatcharr": {
"channels": "채널",
"streams": "스트림"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "시리즈",
@ -792,7 +784,7 @@
"gross_percent_today": "오늘",
"gross_percent_1y": "1년",
"gross_percent_max": "전체 기간",
"net_worth": "순자산"
"net_worth": "Net Worth"
},
"audiobookshelf": {
"podcasts": "팟캐스트",
@ -816,10 +808,10 @@
"series": "시리즈"
},
"booklore": {
"libraries": "라이브러리",
"books": "",
"reading": "읽는 중",
"finished": "완료"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "대기열",
@ -1155,35 +1147,29 @@
"bytes_added_30": "추가된 용량"
},
"yourspotify": {
"songs": "음악",
"time": "시간",
"artists": "아티스트"
"songs": "Songs",
"time": "Time",
"artists": "Artists"
},
"arcane": {
"containers": "컨테이너",
"images": "이미지",
"image_updates": "이미지 업데이트",
"images_unused": "미사용",
"environment_required": "환경 ID 필요"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "실행 중",
"stopped": "정지됨",
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "메모리",
"images": "이미지",
"volumes": "볼륨",
"events_today": "오늘의 이벤트",
"pending_updates": "대기 중인 업데이트",
"stacks": "스택",
"paused": "일시정지됨",
"total": "전체",
"environment_not_found": "환경 없음"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
"stacks": "Stacks",
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Savienotie piekļuves punkti",
"activeUser": "Aktīvās ierīces",
@ -294,14 +282,18 @@
"approved": "Approved",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Status subsistem tak diketahui"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Peranti aktif",
@ -294,14 +282,18 @@
"approved": "Lulus",
"available": "Sudah Ada"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Even geduld",
"empty_data": "Subsysteem status onbekend"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "Geen Actieve Streams",
"plex_connection_error": "Controleer Plex Connectie"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Verbonden APs",
"activeUser": "Actieve apparaten",
@ -294,14 +282,18 @@
"approved": "Goedgekeurd",
"available": "Beschikbaar"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"jellyseerr": {
"pending": "In afwachting",
"approved": "Goedgekeurd",
"available": "Beschikbaar",
"issues": "Open Issues"
},
"overseerr": {
"pending": "In afwachting",
"processing": "Verwerken",
"approved": "Goedgekeurd",
"available": "Beschikbaar"
},
"netalertx": {
"total": "Totaal",
"connected": "Verbonden",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Ukjent undersystemstatus"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Kontroller Plex tilkoblingen"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Tilkoblede AP'er",
"activeUser": "Aktive enheter",
@ -294,14 +282,18 @@
"approved": "Godkjent",
"available": "Tilgjengelig"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Behandler",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Proszę czekać",
"empty_data": "Status podsystemu nieznany"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Rx",
"tx": "Tx",
@ -113,14 +108,14 @@
"songs": "Piosenki"
},
"jellyfin": {
"playing": "Odtwarza",
"transcoding": "Transkoduje",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "Brak aktywnych strumieni",
"movies": "Filmy",
"series": "Seriale",
"episodes": "Odcinki",
"songs": "Piosenki"
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "Brak aktywnych strumieni",
"plex_connection_error": "Sprawdź połączenie z Plex"
},
"tracearr": {
"no_active": "Brak aktywnych strumieni",
"streams": "Strumienie",
"transcodes": "Transkodowania",
"directplay": "Odtwarzanie bezpośrednie",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Połączone punkty dostępowe",
"activeUser": "Aktywne urządzenia",
@ -294,14 +282,18 @@
"approved": "Zaakceptowane",
"available": "Dostępne"
},
"seerr": {
"jellyseerr": {
"pending": "Oczekujące",
"approved": "Zaakceptowane",
"available": "Dostępne",
"completed": "Ukończone",
"processing": "Przetwarzane",
"issues": "Otwarte zgłoszenia"
},
"overseerr": {
"pending": "Oczekujące",
"processing": "Przetwarzane",
"approved": "Zaakceptowane",
"available": "Dostępne"
},
"netalertx": {
"total": "Razem",
"connected": "Połączono",
@ -724,8 +716,8 @@
"volumeAvailable": "Dostępne"
},
"dispatcharr": {
"channels": "Kanały",
"streams": "Strumienie"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "Seriale",
@ -1160,11 +1152,11 @@
"artists": "Wykonawcy"
},
"arcane": {
"containers": "Kontenery",
"images": "Obrazy",
"image_updates": "Aktualizacje obrazów",
"images_unused": "Nieużywane",
"environment_required": "Wymagane ID środowiska"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Działające",
@ -1179,11 +1171,5 @@
"paused": "Wstrzymane",
"total": "Razem",
"environment_not_found": "Środowisko nie znalezione"
},
"sparkyfitness": {
"eaten": "Zjedzone",
"burned": "Spalone",
"remaining": "Pozostało",
"steps": "Kroki"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Status de Subsistema Desconhecido"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Rx",
"tx": "Tx",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Verifique a conexão do Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "APs Ligados",
"activeUser": "Dispositivos activos",
@ -294,14 +282,18 @@
"approved": "Aprovado",
"available": "Disponível"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "A Processar",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -14,7 +14,7 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"duration": "{{value, duration}}",
"months": "mo",
"months": "M",
"days": "d",
"hours": "h",
"minutes": "m",
@ -66,14 +66,9 @@
"wait": "Por favor, aguarde",
"empty_data": "Status do Subsistema desconhecido"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
"rx": "Rx",
"tx": "Tx",
"mem": "MEM",
"cpu": "CPU",
"running": "Executando",
@ -106,21 +101,21 @@
"playing": "A reproduzir",
"transcoding": "Transcodificação",
"bitrate": "Taxa de bits",
"no_active": "Sem Transmissões Ativas",
"no_active": "Sem Streams Ativos",
"movies": "Filmes",
"series": "Séries",
"episodes": "Episódios",
"songs": "Canções"
},
"jellyfin": {
"playing": "Jogando",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Filmes",
"series": "Séries",
"episodes": "Episódios",
"songs": "Músicas"
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "Sem Streams Ativos",
"plex_connection_error": "Verifique a conexão do Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "APs Ligados",
"activeUser": "Dispositivos ativos",
@ -294,13 +282,17 @@
"approved": "Aprovada",
"available": "Disponível"
},
"seerr": {
"jellyseerr": {
"pending": "Pendente",
"approved": "Aprovado",
"available": "Disponível",
"completed": "Concluído",
"issues": "Incidentes Abertos"
},
"overseerr": {
"pending": "Pendente",
"processing": "Processando",
"issues": "Erros pendentes"
"approved": "Aprovado",
"available": "Disponível"
},
"netalertx": {
"total": "Total",
@ -621,7 +613,7 @@
"pangolin": {
"orgs": "Orgs",
"sites": "Sites",
"resources": "Recursos",
"resources": "Resources",
"targets": "Targets",
"traffic": "Traffic",
"in": "In",
@ -724,8 +716,8 @@
"volumeAvailable": "Disponível"
},
"dispatcharr": {
"channels": "Canais",
"streams": "Transmissões"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "Séries",
@ -816,10 +808,10 @@
"series": "Séries"
},
"booklore": {
"libraries": "Bibliotecas",
"books": "Livros",
"reading": "Lendo",
"finished": "Finalizado"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Fila de espera",
@ -1160,30 +1152,24 @@
"artists": "Artistas"
},
"arcane": {
"containers": "Recipientes",
"images": "Imagens",
"image_updates": "Atualizações de Imagem",
"images_unused": "Não utilizado",
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Executando",
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "Memória",
"images": "Imagens",
"volumes": "Quantidades",
"events_today": "Eventos hoje",
"pending_updates": "Atualizações pendentes",
"stacks": "Pilhas",
"paused": "Pausado",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
"stacks": "Stacks",
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Starea subsistemului este necunoscut"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Dispozitive active",
@ -294,14 +282,18 @@
"approved": "Aprobate",
"available": "Disponibile"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Procesare",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Пожалуйста, подождите",
"empty_data": "Статус подсистемы неизвестен"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -113,14 +108,14 @@
"songs": "Песни"
},
"jellyfin": {
"playing": "Воспроизводится",
"transcoding": "Перекодирование",
"bitrate": "Битрейт",
"no_active": "Нет активных потоков",
"movies": "Фильмы",
"series": "Сериалы",
"episodes": "Эпизоды",
"songs": "Песни"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Не в сети",
@ -189,13 +184,6 @@
"no_active": "Нет активных стримов",
"plex_connection_error": "Проверка соединения Plex"
},
"tracearr": {
"no_active": "Нет активных потоков",
"streams": "Потоки",
"transcodes": "Transcodes",
"directplay": "Прямое воспроизведение",
"bitrate": "Битрейт"
},
"omada": {
"connectedAp": "Подключенные точки доступа",
"activeUser": "Активные устройства",
@ -294,13 +282,17 @@
"approved": "Одобрено",
"available": "Доступно"
},
"seerr": {
"pending": "Pending",
"jellyseerr": {
"pending": "Ожидают",
"approved": "Одобрено",
"available": "Доступно",
"completed": "Завершено",
"processing": "Обработка",
"issues": "Открытые задачи"
"issues": "Open Issues"
},
"overseerr": {
"pending": "Ожидают",
"processing": "В процессе",
"approved": "Одобрено",
"available": "Доступно"
},
"netalertx": {
"total": "Всего",
@ -1138,8 +1130,8 @@
"NO_DATA_DISKS": "No Data Disks",
"notifications": "Уведомления",
"status": "Статус",
"cpu": "ЦП",
"memoryUsed": "Использовано ОЗУ",
"cpu": "CPU",
"memoryUsed": "Memory Used",
"memoryAvailable": "Memory Available",
"arrayUsed": "Array Used",
"arrayFree": "Array Free",
@ -1149,14 +1141,14 @@
"backrest": {
"num_plans": "Plans",
"num_success_30": "Successes",
"num_failure_30": "Ошибки",
"num_failure_30": "Failures",
"num_success_latest": "Succeeding",
"num_failure_latest": "Failing",
"bytes_added_30": "Bytes Added"
},
"yourspotify": {
"songs": "Songs",
"time": "Время",
"time": "Time",
"artists": "Artists"
},
"arcane": {
@ -1178,12 +1170,6 @@
"stacks": "Stacks",
"paused": "Paused",
"total": "Total",
"environment_not_found": "Среда не найдена"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
"environment_not_found": "Environment Not Found"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Čakajte, prosím",
"empty_data": "Stav podsystému neznámy"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Prijaté",
"tx": "Odoslané",
@ -98,7 +93,7 @@
"http_status": "HTTP stavový kód",
"error": "Chyba",
"response": "Odpoveď",
"down": "Nedostupné",
"down": "Down",
"up": "Beží",
"not_available": "Nedostupné"
},
@ -113,18 +108,18 @@
"songs": "Skladby"
},
"jellyfin": {
"playing": "Prehráva sa",
"transcoding": "Prebieha prekódovanie",
"bitrate": "Prenosová rýchlosť",
"no_active": "Žiadne aktívne vysielania",
"movies": "Filmov",
"series": "Seriálov",
"episodes": "Epizód",
"songs": "Skladieb"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Nedostupné",
"offline_alt": "Nedostupné",
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Celkom",
"unknown": "Neznáme"
@ -159,7 +154,7 @@
"uptime": "Dostupnosť",
"maxDown": "Max. sťahovanie",
"maxUp": "Max. nahrávanie",
"down": "Nedostupné",
"down": "Down",
"up": "Beží",
"received": "Prijaté",
"sent": "Odoslané",
@ -183,19 +178,12 @@
"passes": "Odvysielané"
},
"tautulli": {
"playing": "Prehráva sa",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Prenosová rýchlosť",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Skontroluj spojenie s Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Prenosová rýchlosť"
},
"omada": {
"connectedAp": "Pripojené prístupové body",
"activeUser": "Aktívne zariadenia",
@ -294,14 +282,18 @@
"approved": "Schválené",
"available": "Dostupné"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"jellyseerr": {
"pending": "Čakajúce",
"approved": "Schválené",
"available": "Dostupné",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Čakajúce",
"processing": "Spracovávané",
"approved": "Schválené",
"available": "Dostupné"
},
"netalertx": {
"total": "Celkom",
"connected": "Pripojené",
@ -437,7 +429,7 @@
"version": "Verzia",
"status": "Stav",
"up": "Online",
"down": "Nedostupné"
"down": "Offline"
},
"miniflux": {
"read": "Prečítané",
@ -458,7 +450,7 @@
"cpu": "CPU",
"load": "Záťaž",
"wait": "Čakajte, prosím",
"temp": "TEPL",
"temp": "TEMP",
"_temp": "Teplota",
"warn": "Upozornení",
"uptime": "BEŽÍ",
@ -499,13 +491,13 @@
"51-day": "Mierne mrholenie",
"51-night": "Slabé mrholenie",
"53-day": "Mrholenie",
"53-night": "Mrholenie",
"53-night": "Drizzle",
"55-day": "Silné mrholenie",
"55-night": "Silné mrholenie",
"56-day": "Mierne mrazivé mrholenie",
"56-night": "Jemné mrznúce mrholenie",
"56-night": "Light Freezing Drizzle",
"57-day": "Mrazivé mrholenie",
"57-night": "Mrznúce mrholenie",
"57-night": "Freezing Drizzle",
"61-day": "Slabý dážď",
"61-night": "Slabý dážď",
"63-day": "Dážď",
@ -550,14 +542,14 @@
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Beží",
"pending": "Čakajúce",
"down": "Nedostupné",
"down": "Down",
"ok": "Ok"
},
"healthchecks": {
"new": "Nový",
"up": "Beží",
"grace": "V dodatočnej lehote",
"down": "Nedostupné",
"down": "Down",
"paused": "Pozastavené",
"status": "Stav",
"last_ping": "Poslendný ping",
@ -683,7 +675,7 @@
"memory": "Využitie pamäte",
"wanStatus": "Stav WAN",
"up": "Beží",
"down": "Nedostupné",
"down": "Down",
"temp": "Temp",
"disk": "Využitie disku",
"wanIP": "IP adresa WAN"
@ -784,8 +776,8 @@
"targets_total": "Cieľov spolu"
},
"gatus": {
"up": "Dostupné stránky",
"down": "Nedostupné stránky",
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Dostupnosť"
},
"ghostfolio": {
@ -807,7 +799,7 @@
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Aktualizácie"
"updates": "Updates"
},
"calibreweb": {
"books": "Books",
@ -880,7 +872,7 @@
"uptime": "Dostupnosť",
"cpuLoad": "Záťaž CPU priem. (5m)",
"up": "Beží",
"down": "Nedostupné",
"down": "Down",
"bytesTx": "Prenesených",
"bytesRx": "Prijaté"
},
@ -889,13 +881,13 @@
"uptime": "Dostupnosť",
"lastDown": "Posledný čas nedostupnosti",
"downDuration": "Trvanie nedostupnosti",
"sitesUp": "Dostupné stránky",
"sitesDown": "Nedostupné stránky",
"sitesUp": "Sites Up",
"sitesDown": "Sites Down",
"paused": "Pozastavené",
"notyetchecked": "Neskontrolované",
"up": "Beží",
"seemsdown": "Javí sa nedostupný",
"down": "Nedostupné",
"down": "Down",
"unknown": "Neznáme"
},
"calendar": {
@ -1031,17 +1023,17 @@
"last_seen": "Last Seen",
"status": "Stav",
"online": "Online",
"offline": "Nedostupné"
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Beží",
"down": "Nedostupné",
"down": "Down",
"paused": "Pozastavené",
"pending": "Čakajúce",
"status": "Stav",
"updated": "Aktualizované",
"updated": "Updated",
"cpu": "CPU",
"memory": "RAM",
"disk": "Disk",
@ -1086,7 +1078,7 @@
"disconnected": "Odpojené",
"updateStatus": "Update",
"update_yes": "Dostupné",
"update_no": "Aktuálne",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
@ -1105,7 +1097,7 @@
"total": "Celkom",
"running": "Beží",
"stopped": "Zastavené",
"down": "Nedostupné",
"down": "Down",
"unhealthy": "Nezdravý",
"unknown": "Neznáme",
"servers": "Servery",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Neznani status podsistema"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Preveri Plex povezavo"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Povezanih AP",
"activeUser": "Aktivne naprave",
@ -294,14 +282,18 @@
"approved": "Odobreno",
"available": "Na voljo"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Procesiram",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Молим сачекајте",
"empty_data": "Статус подсистема непознат"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -113,14 +108,14 @@
"songs": "Песме"
},
"jellyfin": {
"playing": "Репродукција",
"transcoding": "Транскодирање",
"bitrate": "Проток",
"no_active": "Нема активних стримова",
"movies": "Филмови",
"series": "Серије",
"episodes": "Епизоде",
"songs": "Песме"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Није на мрежи",
@ -189,13 +184,6 @@
"no_active": "Нема активних стримова",
"plex_connection_error": "Провери везу са Plex-ом"
},
"tracearr": {
"no_active": "Нема активних стримова",
"streams": "Стримови",
"transcodes": "Транскодирање",
"directplay": "Директно репродуковање",
"bitrate": "Проток"
},
"omada": {
"connectedAp": "Повезани АПи",
"activeUser": "Активни уређаји",
@ -294,14 +282,18 @@
"approved": "Одобрено",
"available": "Доступно"
},
"seerr": {
"jellyseerr": {
"pending": "На чекању",
"approved": "Одобрено",
"available": "Доступно",
"completed": "Завршено",
"processing": "Обрада",
"issues": "Отворених питања"
},
"overseerr": {
"pending": "На чекању",
"processing": "Обрада",
"approved": "Одобрено",
"available": "Доступно"
},
"netalertx": {
"total": "Укупно",
"connected": "Повезано",
@ -551,7 +543,7 @@
"up": "Горе",
"pending": "На чекању",
"down": "Доле",
"ok": "Ок"
"ok": "Ok"
},
"healthchecks": {
"new": "Сада",
@ -724,8 +716,8 @@
"volumeAvailable": "Доступно"
},
"dispatcharr": {
"channels": "Канали",
"streams": "Стримови"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "Серије",
@ -816,10 +808,10 @@
"series": "Серије"
},
"booklore": {
"libraries": "Библиотеке",
"books": "Књиге",
"reading": "Читање",
"finished": "Завршено"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Ред",
@ -1160,30 +1152,24 @@
"artists": "Извођачи"
},
"arcane": {
"containers": "Контејнера",
"images": "Слике",
"image_updates": "Ажурирања слика",
"images_unused": "Неискоришћено",
"environment_required": "ИД окружења је обавезан"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Покренуто",
"stopped": "Заустављено",
"cpu": "Процесор",
"memory": "Меморија",
"images": "Слике",
"volumes": "Јачине звука",
"events_today": "Данашњи догађаји",
"pending_updates": "Ажурирања на чекању",
"stacks": "Стекови",
"paused": "Паузирано",
"total": "Укупно",
"environment_not_found": "Окружење није пронађено"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
"stacks": "Stacks",
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Godkända",
"available": "Tillgänglig"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "ఆమోదించబడింది",
"available": "అందుబాటులో వున్నవి"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Approved",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -40,7 +40,7 @@
},
"resources": {
"cpu": "İşlemci",
"mem": "Bellek",
"mem": "MEM",
"total": "Toplam",
"free": "Boş",
"used": "Kullanımda",
@ -66,11 +66,6 @@
"wait": "Lütfen bekleyin",
"empty_data": "Alt sistem durumu bilinmiyor"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "Gelen Veri",
"tx": "Giden Veri",
@ -85,7 +80,7 @@
"unhealthy": "Sağlıksız",
"not_found": "Bulunamadı",
"exited": "Kapandı",
"partial": "Kısmi"
"partial": "Parçalı"
},
"ping": {
"error": "Hata",
@ -98,29 +93,29 @@
"http_status": "HTTPS durumu",
"error": "Hata",
"response": "Yanıt",
"down": "İndirme",
"down": "Çalışmayan",
"up": "Çalışıyor",
"not_available": "Uygun değil"
},
"emby": {
"playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Hızı",
"bitrate": "Bit Oranı",
"no_active": "Etkin akış yok",
"movies": "Film",
"series": "Dizi",
"episodes": "Bölüm",
"songs": "Şarkı"
"movies": "Filmler",
"series": "Diziler",
"episodes": "Bölümler",
"songs": "Şarkılar"
},
"jellyfin": {
"playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Hızı",
"no_active": "Aktif Yayın Yok",
"movies": "Film",
"series": "Dizi",
"episodes": "Bölüm",
"songs": "Şarkı"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Çevrimdışı",
@ -140,8 +135,8 @@
"flood": {
"download": "İndirme",
"upload": "Yükleme",
"leech": "İndirilen",
"seed": "Gönderilen"
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"freshrss": {
"subscriptions": "Abonelikler",
@ -157,10 +152,10 @@
"connectionStatusDisconnected": "Bağlı değil",
"connectionStatusConnected": "Bağlı",
"uptime": "Çalışma Süresi",
"maxDown": "Maks. İndirme",
"maxUp": "Maks. Gönderme",
"down": "İndirme",
"up": "Yükleme",
"maxDown": "Max. Indirme",
"maxUp": "Max. Gönderme",
"down": "Çalışmayan",
"up": "Çalışıyor",
"received": "Alınan",
"sent": "Gönderilen",
"externalIPAddress": "Harici IP",
@ -185,17 +180,10 @@
"tautulli": {
"playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Hızı",
"bitrate": "Bit Oranı",
"no_active": "Etkin akış yok",
"plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Bağlı AP'ler",
"activeUser": "Etkin aygıtlar",
@ -211,7 +199,7 @@
"plex": {
"streams": "Etkin akış",
"albums": "Albümler",
"movies": "Film",
"movies": "Filmler",
"tv": "TV Showları"
},
"sabnzbd": {
@ -221,20 +209,20 @@
},
"rutorrent": {
"active": "Etkin",
"upload": "Gönderme",
"upload": "Yükleme",
"download": "İndirme"
},
"transmission": {
"download": "İndirme",
"upload": "Gönderme",
"leech": "İndirilen",
"seed": "Gönderilen"
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"qbittorrent": {
"download": "İndirme",
"upload": "Gönderme",
"leech": "İndirilen",
"seed": "Gönderilen"
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"qnap": {
"cpuUsage": "İşlemci Kullanımı",
@ -246,9 +234,9 @@
},
"deluge": {
"download": "İndirme",
"upload": "Gönderme",
"leech": "İndirilen",
"seed": "Gönderilen"
"upload": "Yükleme",
"leech": "Leech",
"seed": "Seed"
},
"develancacheui": {
"cachehitbytes": "Önbellek İsabetli Byte",
@ -256,14 +244,14 @@
},
"downloadstation": {
"download": "İndirme",
"upload": "Gönderme",
"leech": "İndirilen",
"seed": "Gönderilen"
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"sonarr": {
"wanted": "İstendi",
"queued": "Kuyrukta",
"series": "Diziler",
"series": "Seriler",
"queue": "Kuyruk",
"unknown": "Bilinmeyen"
},
@ -271,7 +259,7 @@
"wanted": "İstendi",
"missing": "Eksik",
"queued": "Kuyrukta",
"movies": "Film",
"movies": "Filmler",
"queue": "Kuyruk",
"unknown": "Bilinmeyen"
},
@ -294,14 +282,18 @@
"approved": "Onaylı",
"available": "Kullanılabilir"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"jellyseerr": {
"pending": "Bekleyen",
"approved": "Onaylı",
"available": "Uygun",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "İşleniyor",
"approved": "Onaylı",
"available": "Uygun"
},
"netalertx": {
"total": "Toplam",
"connected": "Bağlı",
@ -315,7 +307,7 @@
"gravity": "Gravity"
},
"adguard": {
"queries": "Sorgular",
"queries": "Queries",
"blocked": "Engellenen",
"filtered": "Filtrelendi",
"latency": "Gecikme"
@ -456,9 +448,9 @@
},
"glances": {
"cpu": "İşlemci",
"load": "Yük",
"load": "Load",
"wait": "Lütfen bekleyin",
"temp": "Sıcaklık",
"temp": "TEMP",
"_temp": "Sıcaklık",
"warn": "Uyarı",
"uptime": "ÇALIŞIYOR",
@ -471,7 +463,7 @@
"read": "Okundu",
"write": "Yazma",
"gpu": "GPU",
"mem": "Bellek",
"mem": "Hafıza",
"swap": "Swap"
},
"quicklaunch": {
@ -551,7 +543,7 @@
"up": "Çalışıyor",
"pending": "Bekleyen",
"down": "Çalışmayan",
"ok": "Tamam"
"ok": "Ok"
},
"healthchecks": {
"new": "Yeni",
@ -606,7 +598,7 @@
"signalStrength": "Sağlamlık",
"signalQuality": "Kalite",
"symbolQuality": "Kalite",
"networkRate": "Bit Hızı",
"networkRate": "Bit Oranı",
"clientIP": "Alıcı"
},
"scrutiny": {
@ -619,13 +611,13 @@
"total": "Toplam"
},
"pangolin": {
"orgs": "Kuruluşlar",
"sites": "Siteler",
"resources": "Kaynaklar",
"targets": "Hedefler",
"traffic": "Trafik",
"in": "Gelen",
"out": "Giden"
"orgs": "Orgs",
"sites": "Sites",
"resources": "Resources",
"targets": "Targets",
"traffic": "Traffic",
"in": "In",
"out": "Out"
},
"peanut": {
"battery_charge": "Pil Yüzdesi",
@ -684,7 +676,7 @@
"wanStatus": "WAN Durumu",
"up": "Çalışıyor",
"down": "Çalışmayan",
"temp": "Sıcaklık",
"temp": "Temp",
"disk": "Disk Kullanımı",
"wanIP": "WAN IP"
},
@ -705,7 +697,7 @@
"down": "Çalışmayan site",
"uptime": "Çalışma süresi",
"incident": "Olay",
"m": "dk"
"m": "m"
},
"atsumeru": {
"series": "Diziler",
@ -724,8 +716,8 @@
"volumeAvailable": "Uygun"
},
"dispatcharr": {
"channels": "Kanallar",
"streams": "Akışlar"
"channels": "Channels",
"streams": "Streams"
},
"mylar": {
"series": "Diziler",
@ -779,12 +771,12 @@
"nodes": "Düğümler"
},
"prometheus": {
"targets_up": "Çalışan Hedef",
"targets_up": "Hedef Çalışıyor",
"targets_down": "Çalışmayan hedef",
"targets_total": "Toplam Hedef"
},
"gatus": {
"up": "Çalışan Siteler",
"up": "Sites Up",
"down": "Çalışmayan site",
"uptime": "Çalışma süresi"
},
@ -792,7 +784,7 @@
"gross_percent_today": "Bugün",
"gross_percent_1y": "Bir yıl",
"gross_percent_max": "Tüm zaman",
"net_worth": "Net Değer"
"net_worth": "Net Worth"
},
"audiobookshelf": {
"podcasts": "Podcast",
@ -813,13 +805,13 @@
"books": "Kitaplar",
"authors": "Yazarlar",
"categories": "Kategoriler",
"series": "Diziler"
"series": "Seriler"
},
"booklore": {
"libraries": "Kütüphaneler",
"books": "Kitaplar",
"reading": "Okunuyor",
"finished": "Bitti"
"libraries": "Libraries",
"books": "Books",
"reading": "Reading",
"finished": "Finished"
},
"jdownloader": {
"downloadCount": "Kuyruk",
@ -828,7 +820,7 @@
"downloadSpeed": "Hız"
},
"kavita": {
"seriesCount": "Diziler",
"seriesCount": "Seriler",
"totalFiles": "Dosyalar"
},
"azuredevops": {
@ -873,7 +865,7 @@
"total": "Toplam",
"running": "Çalışıyor",
"stopped": "Durdu",
"passed": "Başarılı",
"passed": "Passed",
"failed": "Başarısız"
},
"openwrt": {
@ -882,7 +874,7 @@
"up": "Çalışıyor",
"down": "Çalışmayan",
"bytesTx": "İletilen",
"bytesRx": "Alınan"
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Durum",
@ -932,7 +924,7 @@
},
"gitea": {
"notifications": "Bildirimler",
"issues": "Sorunlar",
"issues": "Issues",
"pulls": "Değişiklik İstekleri",
"repositories": "Depolar"
},
@ -1014,21 +1006,21 @@
"lubelogger": {
"vehicle": "Taşıt",
"vehicles": "Taşıtlar",
"serviceRecords": "Servis Kayıtları",
"serviceRecords": "Service Records",
"reminders": "Hatırlatıcılar",
"nextReminder": "Sonraki hatırlatıcı",
"none": "Hiçbiri"
"none": "None"
},
"vikunja": {
"projects": "Etkin projeler",
"tasks7d": "Bitişi Bu Hafta Olan Görevler",
"tasksOverdue": "Gecikmiş Görevler",
"tasksInProgress": "Devam Eden Görevler"
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Ad",
"address": "Adres",
"last_seen": "Son Görülme",
"last_seen": "Last Seen",
"status": "Durum",
"online": "Çevrimiçi",
"offline": "Çevrimdışı"
@ -1039,21 +1031,21 @@
"up": "Çalışıyor",
"down": "Çalışmayan",
"paused": "Durduruldu",
"pending": "Beklemede",
"pending": "Pending",
"status": "Durum",
"updated": "Güncellendi",
"cpu": "İşlemci",
"memory": "Bellek",
"disk": "Depolama",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Uygulamalar",
"synced": "Senkron",
"outOfSync": "Senkron Değil",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sağlıklı",
"degraded": "Sorunlu",
"progressing": "Uygulanıyor",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Eksik",
"suspended": "Askıya Alındı"
},
@ -1061,22 +1053,22 @@
"loading": "Yükleniyor"
},
"gitlab": {
"groups": "Gruplar",
"issues": "Sorunlar",
"merges": "Birleştirme İstekleri",
"projects": "Projeler"
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Durum",
"load": "Yük",
"bcharge": "Pil Yüzdesi",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Kalan zaman"
},
"karakeep": {
"bookmarks": "Yer imleri",
"favorites": "Gözdeler",
"archived": "Arşivlenen",
"highlights": "Öne Çıkanlar",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Listeler",
"tags": "Etiketler"
},
@ -1092,14 +1084,14 @@
"sharedFiles": "Dosyalar"
},
"jellystat": {
"songs": "Şarkı",
"movies": "Film",
"episodes": "Bölüm",
"songs": "Şarkılar",
"movies": "Filmler",
"episodes": "Bölümler",
"other": "Diğer"
},
"checkmk": {
"serviceErrors": "Hizmet Sorunları",
"hostErrors": "Sunucu Sorunları"
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Toplam",
@ -1109,8 +1101,8 @@
"unhealthy": "Sağlıksız",
"unknown": "Bilinmeyen",
"servers": "Sunucular",
"stacks": "Yığınlar",
"containers": "Konteynerler"
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Uygun",
@ -1128,11 +1120,11 @@
"STARTED": "Başladı",
"STOPPED": "Durdu",
"NEW_ARRAY": "Yeni dizi",
"RECON_DISK": "Disk Yeniden Oluşturuluyor",
"RECON_DISK": "Reconstructing Disk",
"DISABLE_DISK": "Disk devre dışı",
"SWAP_DSBL": "Swap devre dışı",
"INVALID_EXPANSION": "Geçersiz Genişletme",
"PARITY_NOT_BIGGEST": "Parity En Büyük Disk Değil",
"INVALID_EXPANSION": "Invalid Expansion",
"PARITY_NOT_BIGGEST": "Parity Not Biggest",
"TOO_MANY_MISSING_DISKS": "Çok fazla disk eksik",
"NEW_DISK_TOO_SMALL": "Yeni disk çok küçük",
"NO_DATA_DISKS": "Veri diski yok",
@ -1147,43 +1139,37 @@
"poolFree": "{{pool}} boş"
},
"backrest": {
"num_plans": "Planlar",
"num_success_30": "Başarılılar",
"num_failure_30": "Başarısızlıklar",
"num_success_latest": "Başarılı",
"num_failure_latest": "Başarısız",
"bytes_added_30": "Eklenen Veri"
"num_plans": "Plans",
"num_success_30": "Successes",
"num_failure_30": "Failures",
"num_success_latest": "Succeeding",
"num_failure_latest": "Failing",
"bytes_added_30": "Bytes Added"
},
"yourspotify": {
"songs": "Şarkılar",
"time": "Zaman",
"artists": "Sanatçılar"
"songs": "Songs",
"time": "Time",
"artists": "Artists"
},
"arcane": {
"containers": "Konteynerler",
"images": "İmajlar",
"image_updates": "İmaj Güncellemeleri",
"images_unused": "Kullanılmayan İmajlar",
"environment_required": "Ortam Kimliği Gerekli"
"containers": "Containers",
"images": "Images",
"image_updates": "Image Updates",
"images_unused": "Unused",
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "Çalışan",
"stopped": "Durdurulan",
"cpu": "İşlemci",
"memory": "Bellek",
"images": "İmajlar",
"volumes": "Birimler",
"events_today": "Bugünkü Olaylar",
"pending_updates": "Bekleyen Güncellemeler",
"stacks": "Yığınlar",
"paused": "Duraklatılan",
"total": "Toplam",
"environment_not_found": "Ortam Bulunamadı"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
"stacks": "Stacks",
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Будь ласка, зачекайте",
"empty_data": "Статус підсистеми невідомий"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "Немає активних потоків",
"plex_connection_error": "Перевірте з'єднання Plex"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Підключені точки доступу",
"activeUser": "Активні пристрої",
@ -294,13 +282,17 @@
"approved": "Затверджено",
"available": "Доступно"
},
"seerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
"jellyseerr": {
"pending": "Очікує",
"approved": "Схвалено",
"available": "Доступно",
"issues": "Проблеми до усунення"
},
"overseerr": {
"pending": "Очікує",
"processing": "Обробка",
"approved": "Схвалено",
"available": "Доступно"
},
"netalertx": {
"total": "Усього",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Vui lòng chờ",
"empty_data": "Trạng thái hệ thống phụ không xác định"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "RX",
"tx": "TX",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
@ -294,14 +282,18 @@
"approved": "Đã duyệt",
"available": "Available"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "子系統狀態未知"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "接收",
"tx": "發送",
@ -113,14 +108,14 @@
"songs": "曲目"
},
"jellyfin": {
"playing": "正在播放",
"transcoding": "轉碼",
"bitrate": "位元率",
"no_active": "無播放活動",
"movies": "電影",
"series": "系列",
"episodes": "劇集",
"songs": "曲目"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "檢查Plex的連接狀態"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "已連接的存取點",
"activeUser": "在線裝置",
@ -294,14 +282,18 @@
"approved": "批准",
"available": "可用"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "處理中",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -326,9 +318,9 @@
"ping": "Ping"
},
"portainer": {
"running": "執行中",
"running": "Running",
"stopped": "暫停",
"total": "全部"
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
@ -391,7 +383,7 @@
"npm": {
"enabled": "啟用",
"disabled": "停用咗",
"total": "全部"
"total": "Total"
},
"coinmarketcap": {
"configure": "配置一個或多個加密貨幣以進行跟蹤",
@ -456,19 +448,19 @@
},
"glances": {
"cpu": "CPU",
"load": "負載",
"wait": "請稍候",
"temp": "溫度",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "溫度",
"warn": "警告",
"uptime": "運作時間",
"total": "全部",
"free": "剩餘",
"used": "已使用",
"days": "",
"hours": "",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "重大的",
"read": "已讀",
"read": "Read",
"write": "寫入",
"gpu": "GPU",
"mem": "記憶體",
@ -1092,10 +1084,10 @@
"sharedFiles": "Files"
},
"jellystat": {
"songs": "曲目",
"movies": "電影",
"episodes": "劇集",
"other": "其它"
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -61,16 +61,11 @@
"wlan_devices": "无线局域网设备",
"lan_users": "局域网用户",
"wlan_users": "无线局域网用户",
"up": "在线",
"up": "UP",
"down": "离线",
"wait": "请稍候",
"empty_data": "子系统状态未知"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "接收",
"tx": "发送",
@ -113,21 +108,21 @@
"songs": "歌曲"
},
"jellyfin": {
"playing": "播放中",
"transcoding": "转码",
"bitrate": "比特率",
"no_active": "暂无播放",
"movies": "电影",
"series": "系列",
"episodes": "剧集",
"songs": "歌曲"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "离线",
"offline_alt": "离线",
"online": "在线的",
"total": "总计",
"unknown": "未知"
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "正式环境",
@ -148,7 +143,7 @@
"unread": "未读"
},
"fritzbox": {
"connectionStatus": "状态",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "未配置",
"connectionStatusConnecting": "连接中",
"connectionStatusAuthenticating": "认证中",
@ -156,11 +151,11 @@
"connectionStatusDisconnecting": "正在断开连接",
"connectionStatusDisconnected": "未连接",
"connectionStatusConnected": "已连接",
"uptime": "运行时间",
"uptime": "Uptime",
"maxDown": "最大下载速度",
"maxUp": "最大上传速度",
"down": "离线",
"up": "在线",
"down": "Down",
"up": "Up",
"received": "已接收",
"sent": "已发送",
"externalIPAddress": "外部IP",
@ -183,24 +178,17 @@
"passes": "通行证"
},
"tautulli": {
"playing": "播放中",
"transcoding": "转码",
"bitrate": "比特率",
"no_active": "暂无播放",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"tracearr": {
"no_active": "暂无播放",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "比特率"
},
"omada": {
"connectedAp": "连接中的AP",
"activeUser": "活跃设备",
"alerts": "警报",
"connectedGateways": "已连接网关",
"connectedGateways": "Connected gateways",
"connectedSwitches": "已连接开关"
},
"nzbget": {
@ -215,13 +203,13 @@
"tv": "电视节目"
},
"sabnzbd": {
"rate": "速率",
"rate": "Rate",
"queue": "队列",
"timeleft": "剩余时间"
},
"rutorrent": {
"active": "活动中",
"upload": "上传",
"upload": "Upload",
"download": "下载"
},
"transmission": {
@ -238,7 +226,7 @@
},
"qnap": {
"cpuUsage": "处理器",
"memUsage": "内存使用",
"memUsage": "内存",
"systemTempC": "系统温度",
"poolUsage": "存储池",
"volumeUsage": "Volume Usage",
@ -257,7 +245,7 @@
"downloadstation": {
"download": "Download",
"upload": "Upload",
"leech": "",
"leech": "Leech",
"seed": "做种"
},
"sonarr": {
@ -294,14 +282,18 @@
"approved": "已批准",
"available": "可用"
},
"seerr": {
"pending": "Pending",
"jellyseerr": {
"pending": "待办的",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "处理中",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -326,9 +318,9 @@
"ping": "Ping"
},
"portainer": {
"running": "运行中",
"running": "Running",
"stopped": "停止",
"total": "总计"
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
@ -385,13 +377,13 @@
"unknown": "未知"
},
"navidrome": {
"nothing_streaming": "暂无播放",
"nothing_streaming": "",
"please_wait": "请等待"
},
"npm": {
"enabled": "已启用",
"disabled": "禁用",
"total": "总计"
"total": "Total"
},
"coinmarketcap": {
"configure": "配置一个或多个需要追踪的加密",
@ -414,7 +406,7 @@
},
"jackett": {
"configured": "已配置",
"errored": "出错"
"errored": "Errored"
},
"strelaysrv": {
"numActiveSessions": "会话",
@ -428,7 +420,7 @@
"domain_count": "域"
},
"medusa": {
"wanted": "",
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
@ -449,7 +441,7 @@
"failedLoginsLast24H": "登录失败 (24h)"
},
"proxmox": {
"mem": "内存",
"mem": "MEM",
"cpu": "CPU",
"lxc": "容器",
"vms": "虚拟机"
@ -458,7 +450,7 @@
"cpu": "CPU",
"load": "负载",
"wait": "请稍候",
"temp": "转速",
"temp": "温度",
"_temp": "Temp",
"warn": "Warn",
"uptime": "运行时间",
@ -468,7 +460,7 @@
"days": "日",
"hours": "时",
"crit": "Crit",
"read": "读取",
"read": "Read",
"write": "写入",
"gpu": "GPU",
"mem": "Mem",
@ -489,57 +481,57 @@
"1-day": "主要是晴天",
"1-night": "大部晴朗",
"2-day": "多云",
"2-night": "多云",
"2-night": "Partly Cloudy",
"3-day": "阴天",
"3-night": "阴天",
"3-night": "Cloudy",
"45-day": "有雾",
"45-night": "",
"48-day": "",
"48-night": "",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "小雨",
"51-night": "小细雨",
"51-night": "Light Drizzle",
"53-day": "小雨",
"53-night": "细雨",
"53-night": "Drizzle",
"55-day": "毛毛雨",
"55-night": "大细雨",
"55-night": "Heavy Drizzle",
"56-day": "小冻毛雨",
"56-night": "小冻毛雨",
"56-night": "Light Freezing Drizzle",
"57-day": "冻毛雨",
"57-night": "冻毛雨",
"57-night": "Freezing Drizzle",
"61-day": "小雨",
"61-night": "小雨",
"61-night": "Light Rain",
"63-day": "雨",
"63-night": "雨天",
"63-night": "Rain",
"65-day": "大雨",
"65-night": "大雨",
"65-night": "Heavy Rain",
"66-day": "冻雨",
"66-night": "冻雨",
"67-day": "冻雨",
"67-night": "冻雨",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "小雪",
"71-night": "小雪",
"71-night": "Light Snow",
"73-day": "中雪",
"73-night": "中雪",
"73-night": "Snow",
"75-day": "大雪",
"75-night": "大雪",
"75-night": "Heavy Snow",
"77-day": "雪粒",
"77-night": "雪粒",
"77-night": "Snow Grains",
"80-day": "微阵雨",
"80-night": "小阵雨",
"80-night": "Light Showers",
"81-day": "阵雨",
"81-night": "阵雨",
"81-night": "Showers",
"82-day": "强阵雨",
"82-night": "强阵雨",
"82-night": "Heavy Showers",
"85-day": "阵雪",
"85-night": "阵雪",
"86-day": "阵雪",
"86-night": "阵雪",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "雷雨",
"95-night": "雷雨",
"95-night": "Thunderstorm",
"96-day": "雷雨伴随冰雹",
"96-night": "雷雨伴随冰雹",
"99-day": "雷雨伴随冰雹",
"99-night": "雷雨伴随冰雹"
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
},
"homebridge": {
"available_update": "System",
@ -695,9 +687,9 @@
"memory_usage": "内存"
},
"immich": {
"users": "用户",
"users": "Users",
"photos": "照片",
"videos": "影片",
"videos": "Videos",
"storage": "储存空间"
},
"uptimekuma": {
@ -995,8 +987,8 @@
},
"frigate": {
"cameras": "摄像头",
"uptime": "运行时间",
"version": "版本"
"uptime": "Uptime",
"version": "Version"
},
"linkwarden": {
"links": "链接",
@ -1043,7 +1035,7 @@
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "内存",
"memory": "MEM",
"disk": "磁盘",
"network": "网络"
},
@ -1067,10 +1059,10 @@
"projects": "项目"
},
"apcups": {
"status": "状态",
"load": "负载",
"bcharge": "电池电量",
"timeleft": "剩余供电时间"
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "书签",
@ -1092,9 +1084,9 @@
"sharedFiles": "Files"
},
"jellystat": {
"songs": "歌曲",
"movies": "电影",
"episodes": "剧集",
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "其他"
},
"checkmk": {
@ -1139,8 +1131,8 @@
"notifications": "Notifications",
"status": "Status",
"cpu": "CPU",
"memoryUsed": "已用内存",
"memoryAvailable": "可用内存",
"memoryUsed": "Memory Used",
"memoryAvailable": "Memory Available",
"arrayUsed": "Array Used",
"arrayFree": "Array Free",
"poolUsed": "{{pool}} Used",
@ -1167,11 +1159,11 @@
"environment_required": "Environment ID Required"
},
"dockhand": {
"running": "运行中",
"stopped": "停止",
"running": "Running",
"stopped": "Stopped",
"cpu": "CPU",
"memory": "内存",
"images": "图片",
"memory": "Memory",
"images": "Images",
"volumes": "Volumes",
"events_today": "Events Today",
"pending_updates": "Pending Updates",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -66,11 +66,6 @@
"wait": "Please wait",
"empty_data": "子系統狀態未知"
},
"unifi_drive": {
"healthy": "Healthy",
"degraded": "Degraded",
"no_data": "No storage data available"
},
"docker": {
"rx": "接收",
"tx": "傳送",
@ -113,14 +108,14 @@
"songs": "曲目"
},
"jellyfin": {
"playing": "正在播放",
"transcoding": "轉碼",
"bitrate": "位元率",
"no_active": "無播放活動",
"movies": "電影",
"series": "系列",
"episodes": "劇集",
"songs": "曲目"
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
@ -189,13 +184,6 @@
"no_active": "No Active Streams",
"plex_connection_error": "檢查Plex的連線狀態"
},
"tracearr": {
"no_active": "No Active Streams",
"streams": "Streams",
"transcodes": "Transcodes",
"directplay": "Direct Play",
"bitrate": "Bitrate"
},
"omada": {
"connectedAp": "已連線的無線網路",
"activeUser": "上線裝置",
@ -294,14 +282,18 @@
"approved": "已核准",
"available": "可觀看"
},
"seerr": {
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available",
"completed": "Completed",
"processing": "Processing",
"issues": "Open Issues"
},
"overseerr": {
"pending": "Pending",
"processing": "處理中",
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
@ -326,9 +318,9 @@
"ping": "Ping"
},
"portainer": {
"running": "執行中",
"running": "Running",
"stopped": "已停止",
"total": "全部"
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
@ -391,7 +383,7 @@
"npm": {
"enabled": "已啟用",
"disabled": "已停用",
"total": "全部"
"total": "Total"
},
"coinmarketcap": {
"configure": "請設定一個或多個欲追蹤的加密貨幣",
@ -456,19 +448,19 @@
},
"glances": {
"cpu": "CPU",
"load": "負載",
"wait": "請稍候",
"temp": "溫度",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "溫度",
"warn": "警告",
"uptime": "運作時間",
"total": "全部",
"free": "剩餘",
"used": "已使用",
"days": "",
"hours": "",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "重大的",
"read": "已讀",
"read": "Read",
"write": "寫入",
"gpu": "GPU",
"mem": "記憶體",
@ -1092,10 +1084,10 @@
"sharedFiles": "Files"
},
"jellystat": {
"songs": "曲目",
"movies": "電影",
"episodes": "劇集",
"other": "其它"
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
@ -1179,11 +1171,5 @@
"paused": "Paused",
"total": "Total",
"environment_not_found": "Environment Not Found"
},
"sparkyfitness": {
"eaten": "Eaten",
"burned": "Burned",
"remaining": "Remaining",
"steps": "Steps"
}
}

View file

@ -1,8 +0,0 @@
[project]
name = "homepage-docs"
version = "1.0.0"
description = "Documentation for the Homepage project"
requires-python = ">=3.13"
dependencies = [
"zensical>=0.0.21",
]

47
requirements.txt Normal file
View file

@ -0,0 +1,47 @@
Babel==2.12.1
backrefs==5.9
cairocffi==1.7.1
CairoSVG==2.7.1
certifi==2023.7.22
cffi==1.17.1
cfgv==3.4.0
charset-normalizer==3.2.0
click==8.1.7
colorama==0.4.6
cssselect2==0.7.0
defusedxml==0.7.1
distlib==0.3.9
filelock==3.17.0
ghp-import==2.1.0
identify==2.6.7
idna==3.4
Jinja2==3.1.2
Markdown==3.4.4
MarkupSafe==2.1.3
mergedeep==1.3.4
mkdocs==1.6.0
mkdocs-get-deps==0.2.0
mkdocs-material==9.6.18
mkdocs-material-extensions==1.3.1
mkdocs-redirects==1.2.1
nodeenv==1.9.1
packaging==23.1
paginate==0.5.6
pathspec==0.11.2
pillow==10.4.0
platformdirs==3.10.0
pre-commit==3.5.0
pycparser==2.22
Pygments==2.16.1
pymdown-extensions==10.3
python-dateutil==2.8.2
PyYAML==6.0.1
pyyaml_env_tag==0.1
regex==2023.8.8
requests==2.31.0
six==1.16.0
tinycss2==1.4.0
urllib3==2.0.5
virtualenv==20.29.2
watchdog==3.0.0
webencodings==0.5.1

View file

@ -344,17 +344,4 @@ describe("pages/api/services/proxy", () => {
expect(res.statusCode).toBe(500);
expect(res.body).toEqual({ error: "Unexpected error" });
});
it("returns 500 when an async proxy handler throws", async () => {
getServiceWidget.mockResolvedValue({ type: "linkwarden" });
handlerFn.handler.mockRejectedValueOnce(new Error("proxy boom"));
const req = { method: "GET", query: { group: "g", service: "s", index: "0" } };
const res = createMockRes();
await servicesProxy(req, res);
expect(res.statusCode).toBe(500);
expect(res.body).toEqual({ error: "Unexpected error" });
});
});

View file

@ -90,74 +90,17 @@ describe("pages/api/widgets/resources", () => {
});
it("returns 404 when requested network interface does not exist", async () => {
si.networkStats.mockResolvedValueOnce([{ iface: "en0" }]).mockResolvedValueOnce([
{
iface: "missing",
operstate: "unknown",
rx_bytes: 0,
rx_dropped: 0,
rx_errors: 0,
tx_bytes: 0,
tx_dropped: 0,
tx_errors: 0,
rx_sec: null,
tx_sec: null,
ms: 0,
},
]);
si.networkStats.mockResolvedValueOnce([{ iface: "en0" }]);
const req = { query: { type: "network", interfaceName: "missing" } };
const res = createMockRes();
await handler(req, res);
expect(si.networkStats).toHaveBeenNthCalledWith(1, "*");
expect(si.networkStats).toHaveBeenNthCalledWith(2, "missing");
expect(res.statusCode).toBe(404);
expect(res.body).toEqual({ error: "Interface not found" });
});
it("falls back to direct named interface query when wildcard enumeration misses it", async () => {
si.networkStats.mockResolvedValueOnce([{ iface: "eth0", rx_bytes: 1 }]).mockResolvedValueOnce([
{
iface: "eno1",
operstate: "up",
rx_bytes: 1000,
rx_dropped: 0,
rx_errors: 0,
tx_bytes: 500,
tx_dropped: 0,
tx_errors: 0,
rx_sec: null,
tx_sec: null,
ms: 0,
},
]);
const req = { query: { type: "network", interfaceName: "eno1" } };
const res = createMockRes();
await handler(req, res);
expect(si.networkStats).toHaveBeenNthCalledWith(1, "*");
expect(si.networkStats).toHaveBeenNthCalledWith(2, "eno1");
expect(res.statusCode).toBe(200);
expect(res.body.interface).toBe("eno1");
expect(res.body.network).toEqual({
iface: "eno1",
operstate: "up",
rx_bytes: 1000,
rx_dropped: 0,
rx_errors: 0,
tx_bytes: 500,
tx_dropped: 0,
tx_errors: 0,
rx_sec: null,
tx_sec: null,
ms: 0,
});
});
it("returns default interface network stats", async () => {
si.networkStats.mockResolvedValueOnce([{ iface: "en0", rx_bytes: 1 }]);
si.networkInterfaceDefault.mockResolvedValueOnce("en0");

View file

@ -339,7 +339,7 @@ describe("pages/index Index routing + SWR branches", () => {
localStorage.setItem("hash", "old-hash");
const fetchSpy = vi.fn(async () => ({ ok: true }));
// eslint-disable-next-line no-global-assign
fetch = fetchSpy;
let reloadSpy;

View file

@ -277,7 +277,7 @@ describe("components/quicklaunch", () => {
const fetchSpy = vi.fn(async () => ({
json: async () => ["test", ["test 1", "test 2", "test 3", "test 4", "test 5"]],
}));
// eslint-disable-next-line no-global-assign
fetch = fetchSpy;
renderWithProviders(<Wrapper />, {
@ -315,6 +315,7 @@ describe("components/quicklaunch", () => {
expect(input).toHaveValue("test 1");
// eslint-disable-next-line no-global-assign
fetch = originalFetch;
});

View file

@ -1,6 +1,6 @@
// @vitest-environment jsdom
import { act, fireEvent, screen } from "@testing-library/react";
import { fireEvent, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import { renderWithProviders } from "test-utils/render-with-providers";
@ -188,9 +188,7 @@ describe("components/services/item", () => {
// Still rendered while the close animation runs.
expect(screen.getByTestId("docker-widget")).toBeInTheDocument();
act(() => {
vi.advanceTimersByTime(300);
});
await vi.advanceTimersByTimeAsync(300);
expect(screen.queryByTestId("docker-widget")).not.toBeInTheDocument();
vi.useRealTimers();

View file

@ -6,7 +6,7 @@ import { BlockHighlightContext } from "./highlight-context";
import { evaluateHighlight, getHighlightClass } from "utils/highlights";
export default function Block({ value, highlightValue, label, field }) {
export default function Block({ value, label, field }) {
const { t } = useTranslation();
const highlightConfig = useContext(BlockHighlightContext);
@ -20,12 +20,12 @@ export default function Block({ value, highlightValue, label, field }) {
}
for (const candidate of candidates) {
const result = evaluateHighlight(candidate, highlightValue ?? value, highlightConfig);
const result = evaluateHighlight(candidate, value, highlightConfig);
if (result) return result;
}
return null;
}, [field, label, value, highlightValue, highlightConfig]);
}, [field, label, value, highlightConfig]);
const highlightClass = useMemo(() => {
if (!highlight?.level) return undefined;

View file

@ -38,27 +38,4 @@ describe("components/services/widget/block", () => {
expect(el.getAttribute("data-highlight-level")).toBe("danger");
expect(el.className).toContain("danger-class");
});
it("prefers highlightValue over the rendered value for numeric highlighting", () => {
const highlightConfig = {
levels: { warn: "warn-class" },
fields: {
foo: {
numeric: { when: "gt", value: 5, level: "warn" },
},
},
};
const { container } = renderWithProviders(
<BlockHighlightContext.Provider value={highlightConfig}>
<Block label="foo.label" field="foo" value="5.791 ms" highlightValue={5.791} />
</BlockHighlightContext.Provider>,
{ settings: {} },
);
const el = container.querySelector(".service-block");
expect(el).not.toBeNull();
expect(el.getAttribute("data-highlight-level")).toBe("warn");
expect(el.className).toContain("warn-class");
});
});

View file

@ -9,8 +9,6 @@ import { buildHighlightConfig } from "utils/highlights";
const ALIASED_WIDGETS = {
pialert: "netalertx",
hoarder: "karakeep",
jellyseerr: "seerr",
overseerr: "seerr",
};
export default function Container({ error = false, children, service }) {

View file

@ -58,26 +58,6 @@ describe("components/services/widget/container", () => {
expect(screen.getByTestId("karakeep.count")).toBeInTheDocument();
});
it("supports seerr aliases when filtering (jellyseerr/overseerr -> seerr)", () => {
renderWithProviders(
<Container service={{ widget: { type: "jellyseerr", fields: ["pending"] } }}>
<Dummy label="seerr.pending" />
</Container>,
{ settings: {} },
);
expect(screen.getByTestId("seerr.pending")).toBeInTheDocument();
renderWithProviders(
<Container service={{ widget: { type: "overseerr", fields: ["processing"] } }}>
<Dummy label="seerr.processing" />
</Container>,
{ settings: {} },
);
expect(screen.getByTestId("seerr.processing")).toBeInTheDocument();
});
it("returns null when errors are hidden via settings.hideErrors", () => {
const { container } = renderWithProviders(
<Container error="nope" service={{ widget: { type: "omada", hide_errors: false } }}>

Some files were not shown because too many files have changed in this diff Show more