diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 1ff94f7e..00000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["next/babel"] -} diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 9f20426f..44bc1759 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,4 +3,10 @@ FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:${VARIANT} RUN npm install -g pnpm +RUN apt-get update \ + && apt-get -y install --no-install-recommends \ + python3-pip \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + ENV PATH="${PATH}:./node_modules/.bin" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 15d1b9f3..06e7f6ee 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,27 +1,26 @@ { - "name": "homepage", - "build": { - "dockerfile": "Dockerfile", - "args": { - "VARIANT": "18-bullseye" - } - }, - "customizations": { - "vscode": { - "extensions": [ - "dbaeumer.vscode-eslint", - "mhutchie.git-graph", - "streetsidesoftware.code-spell-checker", - ], - "settings": { - "eslint.format.enable": true, - "eslint.lintTask.enable": true, - "eslint.packageManager": "pnpm" - } - } - }, - "postCreateCommand": ".devcontainer/setup.sh", - "forwardPorts": [ - 3000 - ] + "name": "homepage", + "build": { + "dockerfile": "Dockerfile", + "args": { + "VARIANT": "18-bullseye", + }, + }, + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "mhutchie.git-graph", + "streetsidesoftware.code-spell-checker", + "esbenp.prettier-vscode", + ], + "settings": { + "eslint.format.enable": true, + "eslint.lintTask.enable": true, + "eslint.packageManager": "pnpm", + }, + }, + }, + "postCreateCommand": ".devcontainer/setup.sh", + "forwardPorts": [3000], } diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 70bf96cf..ea5d2fe9 100755 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -3,6 +3,8 @@ # Install Node packages pnpm install +python3 -m pip install -r requirements.txt + # Copy in skeleton configuration if there is no existing configuration if [ ! -d "config/" ]; then echo "Adding skeleton config" diff --git a/.dockerignore b/.dockerignore index edbf8525..698137cb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -16,11 +16,11 @@ **/compose* **/Dockerfile* **/node_modules +!.next/standalone/node_modules **/npm-debug.log **/obj **/secrets.dev.yaml **/values.dev.yaml -**/.next README.md config/ k3d/ diff --git a/.editorconfig b/.editorconfig index a481ff77..7037b0f6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,3 +11,6 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true max_line_length = 120 + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintrc.json b/.eslintrc.json index 6c1da17d..d29adc33 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,9 @@ { - "extends": ["airbnb", "next/core-web-vitals", "prettier"], + "extends": [ + "next/core-web-vitals", + "prettier", + "plugin:react-hooks/recommended" + ], "plugins": ["prettier"], "rules": { "import/no-cycle": [ @@ -13,6 +17,12 @@ { "newlines-between": "always" } + ], + "no-else-return": [ + "error", + { + "allowElseIf": true + } ] }, "settings": { @@ -21,5 +31,12 @@ "paths": ["src"] } } + }, + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "modules": true + } } } diff --git a/.github/DISCUSSION_TEMPLATE/support.yml b/.github/DISCUSSION_TEMPLATE/support.yml new file mode 100644 index 00000000..57fcdceb --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/support.yml @@ -0,0 +1,64 @@ +body: + - type: markdown + attributes: + value: | + ### ⚠️ Before opening a discussion: + + - [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/). + - [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: + label: Description + description: A clear and concise description of the issue or question. If applicable, add screenshots to help explain your problem. + validations: + required: true + - type: input + id: version + attributes: + label: homepage version + placeholder: e.g. v0.4.18 (4ea2798) + validations: + required: true + - type: dropdown + id: install-method + attributes: + label: Installation method + options: + - Docker + - Unraid + - Source + - Other (please describe above) + validations: + required: true + - type: textarea + id: config + attributes: + label: Configuration + description: Please provide any relevant service, widget or otherwise related configuration here + render: yaml + - type: textarea + id: container-logs + attributes: + label: Container Logs + description: Please review and provide any logs from the container, if relevant + - type: textarea + id: browser-logs + attributes: + label: Browser Logs + description: Please review and provide any logs from the browser, if relevant + - type: textarea + id: troubleshooting + attributes: + label: Troubleshooting + description: Please include output from your [troubleshooting steps](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant. + validations: + required: true + - type: markdown + attributes: + value: | + ## ⚠️ STOP ⚠️ + + Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem. + + *Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.* diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 3e283d69..39bfee33 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ -github: benphelps -ko_fi: benphelps -custom: ["https://paypal.me/phelpsben"] +github: [gethomepage] +open_collective: homepage +patreon: gethomepage diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 9b39aa24..b799d3e4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,94 +1,33 @@ -name: Bug report -description: Create a report to help us improve -title: "[Bug] " -labels: ["bug, unconfirmed"] +name: 🐛 Bug report +description: Please only raise an issue if you've been advised to do so in a GitHub discussion. Thanks! 🙏 +labels: ["bug"] body: - type: markdown attributes: value: | - Have a question? 👉 [Start a new discussion](https://github.com/benphelps/homepage/discussions/new) or [ask in chat](https://discord.gg/SaPGSzrEZC). - - Before opening an issue, please double check: - - - [The troubleshooting guide](https://gethomepage.dev/en/more/troubleshooting/). - - [The homepage documentation](https://gethomepage.dev/) - - [Existing issues](https://github.com/benphelps/homepage/search?q=&type=issues) and [discussions](https://github.com/benphelps/homepage/search?q=&type=discussions). - - type: textarea - id: description - attributes: - label: Description - description: A clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem. - placeholder: | - Currently homepage does not work when... - - [Screenshot if applicable] - validations: - required: true - - type: textarea - id: reproduction - attributes: - label: Steps to reproduce - description: Steps to reproduce the behavior. - placeholder: | - 1. Go to '...' - 2. Click on '....' - 3. See error - validations: - required: true - - type: input - id: version - attributes: - label: homepage version - placeholder: e.g. v0.4.18 (4ea2798) - validations: - required: true - - type: dropdown - id: install-method - attributes: - label: Installation method - options: - - Docker - - Unraid - - Source - - Other (please describe above) - validations: - required: true - - type: textarea - id: config - attributes: - label: Configuration - description: Please provide any relevant service, widget or otherwise related configuration here - render: yaml - - type: textarea - id: container-logs - attributes: - label: Container Logs - description: Please review and provide any logs from the container, if relevant - - type: textarea - id: browser-logs - attributes: - label: Browser Logs - description: Please review and provide any logs from the browser, if relevant - - type: textarea - id: troubleshooting - attributes: - label: Troubleshooting - description: Please include output from your [troubleshooting tests](https://gethomepage.dev/en/more/troubleshooting/#service-widget-errors). If this is a service widget issue and you do not include any information here your issue will be closed. If it is not, indicate e.g. 'n/a' - validations: - required: true - - type: textarea - id: other - attributes: - label: Other - description: Include any other relevant details. E.g. service version or API version, docker version, etc. + ## ⚠️ Please note + The starting point for a bug report should always be a [GitHub discussion](https://github.com/gethomepage/homepage/discussions/new?category=support) + Thank you for contributing to homepage! ✊ - type: checkboxes id: pre-flight attributes: - label: Before submitting, I have made sure to + label: Before submitting, please confirm the following options: - - label: Check [the documentation](https://gethomepage.dev/) + - label: I confirm this was discussed, and the maintainers asked that I open an issue. required: true - - label: Follow [the troubleshooting guide](https://gethomepage.dev/en/more/troubleshooting/) (please include output above if applicable). - required: true - - label: Search [existing issues](https://github.com/benphelps/homepage/search?q=&type=issues) and [discussions](https://github.com/benphelps/homepage/search?q=&type=discussions). + - label: I am aware that if I create this issue without a discussion, it will be removed without a response. required: true + - type: input + id: discussion + attributes: + label: Discussion Link + description: | + Please link to the GitHub discussion that led to this issue. + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional context + description: Optional + render: Text diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a2ae1dfb..22d29ff5 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,11 @@ blank_issues_enabled: false contact_links: - name: 🤔 Questions and Help - url: https://github.com/benphelps/homepage/discussions - about: This issue tracker is for bugs only, not general support questions. Please refer to our Discussions. + url: https://github.com/gethomepage/homepage/discussions + about: For support, possible bug reports or general questions. - name: 💬 Chat url: https://discord.gg/k4ruYNrudu about: Want to discuss homepage with others? Check out our chat. - name: 🚀 Feature Request - url: https://github.com/benphelps/homepage/discussions/new?category=feature-requests + url: https://github.com/gethomepage/homepage/discussions/new?category=feature-requests about: Remember to search for existing feature requests and "up-vote" any you like diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1f7773b8..1edf79cc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,12 +1,21 @@ + + ## Proposed change Closes # (issue) @@ -19,12 +28,13 @@ What type of change does your PR introduce to Homepage? - [ ] New service widget - [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) +- [ ] New feature or enhancement (non-breaking change which adds functionality) +- [ ] Documentation only - [ ] Other (please explain) ## Checklist: -- [ ] If adding a service widget or a change that requires it, I have added a corresponding PR to the [documentation](https://github.com/benphelps/homepage-docs) here: -- [ ] If adding a new widget I have reviewed the [guidelines](https://gethomepage.dev/en/more/development/#service-widget-guidelines). -- [ ] If applicable, I have checked that all tests pass with e.g. `pnpm lint`. +- [ ] If applicable, I have added corresponding documentation changes. +- [ ] 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. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c36b6fe8..e68f9e4f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,15 @@ version: 2 updates: - - package-ecosystem: "github-actions" # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" directory: "/" schedule: interval: "daily" + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "monthly" + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml new file mode 100644 index 00000000..f3c90cf3 --- /dev/null +++ b/.github/workflows/crowdin.yml @@ -0,0 +1,31 @@ +name: Crowdin Action + +on: + workflow_dispatch: + schedule: + - cron: '2 */12 * * *' + push: + paths: [ + '/public/locales/en/**', + ] + branches: [ dev ] + +jobs: + synchronize-with-crowdin: + name: Crowdin Sync + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: crowdin action + uses: crowdin/github-action@v2 + with: + upload_translations: false + download_translations: true + crowdin_branch_name: dev + localization_branch_name: l10n_dev + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index bd80a153..7a133c1d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,125 +1,163 @@ -name: Docker - -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. +name: Docker CI on: schedule: - cron: '20 0 * * *' push: - branches: [ "main" ] - # Publish semver tags as releases. + branches: + - main + - feature/** + - dev tags: [ 'v*.*.*' ] + paths-ignore: + - 'docs/**' + - 'mkdocs.yml' pull_request: - branches: [ "main" ] + branches: [ "dev" ] + paths-ignore: + - 'docs/**' + - 'mkdocs.yml' + merge_group: env: - # Use docker.io for Docker Hub if empty - REGISTRY: ghcr.io - # github.repository as / IMAGE_NAME: ${{ github.repository }} - jobs: - build: + pre-commit: + name: Linting Checks + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install python + uses: actions/setup-python@v5 + 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@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Lint frontend + run: pnpm run lint + + build: + name: Docker Build & Push + if: github.repository == 'gethomepage/homepage' runs-on: self-hosted + needs: [ pre-commit ] permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - # Install the cosign tool except on PR - # https://github.com/sigstore/cosign-installer - - name: Install cosign - if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@main - with: - cosign-release: 'v1.13.1' # optional - - # Setup QEMU - # https://github.com/marketplace/actions/docker-setup-buildx#with-qemu - - name: Setup QEMU - uses: docker/setup-qemu-action@v2 - - # Workaround: https://github.com/docker/build-push-action/issues/461 - - name: Setup Docker buildx - uses: docker/setup-buildx-action@v2 - - # This step is being disabled because the runner is on a self-hosted machine - # where the cache will stick between runs. - # - name: Cache Docker layers - # uses: actions/cache@v3 - # with: - # path: /tmp/.buildx-cache - # key: ${{ runner.os }}-buildx-${{ github.sha }} - # restore-keys: | - # ${{ runner.os }}-buildx- - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - - name: Log into registry ${{ env.REGISTRY }} - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: | + ${{ env.IMAGE_NAME }} + ghcr.io/${{ env.IMAGE_NAME }} + tags: | + # Default tags + type=schedule,pattern=nightly + type=ref,event=branch + type=ref,event=tag + # Versioning tags + type=semver,pattern=v{{version}} + type=semver,pattern=v{{major}}.{{minor}} + type=semver,pattern=v{{major}} flavor: | latest=auto - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action + - name: Next.js build cache + uses: actions/cache@v4 + with: + path: .next/cache + key: nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('**/*.js', '**/*.jsx') }} + restore-keys: | + nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Build app + run: | + NEXT_PUBLIC_BUILDTIME="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}" \ + NEXT_PUBLIC_VERSION="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}" \ + NEXT_PUBLIC_REVISION="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}" \ + pnpm run build + + - name: Log into registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Login to Docker Hub + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3.6.0 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push Docker image id: build-and-push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | + CI=true BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} - # https://github.com/docker/setup-qemu-action#about - # platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 - platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 + platforms: linux/amd64,linux/arm64 cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max - # Sign the resulting Docker image digest except on PRs. - # This will only write to the public Rekor transparency log when the Docker - # repository is public to avoid leaking data. If you would like to publish - # transparency data even for private images, pass --force to cosign below. - # https://github.com/sigstore/cosign -# - name: Sign the published Docker image -# if: ${{ github.event_name != 'pull_request' }} -# env: -# COSIGN_EXPERIMENTAL: "true" -# # This step uses the identity token to provision an ephemeral certificate -# # against the sigstore community Fulcio instance. -# run: echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign {}@${{ steps.build-and-push.outputs.digest }} - - # Temp fix - # https://github.com/docker/build-push-action/issues/252 - # https://github.com/moby/buildkit/issues/1896 + # https://github.com/docker/build-push-action/issues/252 / https://github.com/moby/buildkit/issues/1896 - name: Move cache run: | rm -rf /tmp/.buildx-cache diff --git a/.github/workflows/docs-publish.yml b/.github/workflows/docs-publish.yml new file mode 100644 index 00000000..5479e492 --- /dev/null +++ b/.github/workflows/docs-publish.yml @@ -0,0 +1,84 @@ +name: Docs + +on: + push: + tags: ["v*.*.*"] + branches: ["main"] + paths: + - "docs/**" + - "mkdocs.yml" + pull_request: + paths: + - "docs/**" + - "mkdocs.yml" + merge_group: + workflow_dispatch: + +permissions: + contents: write + +jobs: + pre-commit: + name: Linting Checks + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Check files + uses: pre-commit/action@v3.0.1 + + test: + name: Test Build + if: github.repository == 'gethomepage/homepage' && github.event_name == 'pull_request' + runs-on: ubuntu-latest + needs: + - pre-commit + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 + 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: MKINSIDERS=false mkdocs build + deploy: + name: Build & Deploy + if: github.repository == 'gethomepage/homepage' && github.event_name != 'pull_request' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + needs: + - pre-commit + steps: + - uses: actions/checkout@v4 + - 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@v5 + with: + python-version: 3.x + - run: echo "cache_id=${{github.sha}}" >> $GITHUB_ENV + - uses: actions/cache@v4 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: sudo apt-get install pngquant + - 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 }} diff --git a/.github/workflows/reaction-comments.yml b/.github/workflows/reaction-comments.yml new file mode 100644 index 00000000..2f59dd34 --- /dev/null +++ b/.github/workflows/reaction-comments.yml @@ -0,0 +1,18 @@ +name: 'Reaction Comments' + +on: + issue_comment: + types: [created, edited] + pull_request_review_comment: + types: [created, edited] + +permissions: + actions: write + issues: write + pull-requests: write + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/reaction-comments@v4 diff --git a/.github/workflows/repo-maintenance.yml b/.github/workflows/repo-maintenance.yml new file mode 100644 index 00000000..02f33b99 --- /dev/null +++ b/.github/workflows/repo-maintenance.yml @@ -0,0 +1,280 @@ +name: 'Repository Maintenance' + +on: + schedule: + - cron: '0 3 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + discussions: write + +concurrency: + group: lock + +jobs: + stale: + name: 'Stale' + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + days-before-stale: 7 + days-before-close: 14 + stale-issue-label: stale + stale-pr-label: stale + stale-issue-message: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-respoistory-maintenance) for more details. + lock-threads: + name: 'Lock Old Threads' + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v5 + with: + issue-inactive-days: '30' + pr-inactive-days: '30' + discussion-inactive-days: '30' + log-output: true + issue-comment: > + This issue has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion for related concerns. + See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details. + pr-comment: > + This pull request has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion for related concerns. + See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details. + discussion-comment: > + This discussion has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion for related concerns. + See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details. + close-answered-discussions: + name: 'Close Answered Discussions' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + script: | + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + const query = `query($owner:String!, $name:String!) { + repository(owner:$owner, name:$name){ + discussions(first:100, answered:true, states:[OPEN]) { + nodes { + id, + number + } + } + } + }`; + const variables = { + owner: context.repo.owner, + name: context.repo.repo, + } + const result = await github.graphql(query, variables) + + console.log(`Found ${result.repository.discussions.nodes.length} open answered discussions`) + + for (const discussion of result.repository.discussions.nodes) { + console.log(`Closing discussion #${discussion.number} (${discussion.id})`) + + const addCommentMutation = `mutation($discussion:ID!, $body:String!) { + addDiscussionComment(input:{discussionId:$discussion, body:$body}) { + clientMutationId + } + }`; + const commentVariables = { + discussion: discussion.id, + body: 'This discussion has been automatically closed because it was marked as answered. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.', + } + await github.graphql(addCommentMutation, commentVariables) + + const closeDiscussionMutation = `mutation($discussion:ID!, $reason:DiscussionCloseReason!) { + closeDiscussion(input:{discussionId:$discussion, reason:$reason}) { + clientMutationId + } + }`; + const closeVariables = { + discussion: discussion.id, + reason: "RESOLVED", + } + await github.graphql(closeDiscussionMutation, closeVariables) + + await sleep(1000) + } + close-outdated-discussions: + name: 'Close Outdated Discussions' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + script: | + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + const CUTOFF_DAYS = 180; + const cutoff = new Date(); + cutoff.setDate(cutoff.getDate() - CUTOFF_DAYS); + + const query = `query( + $owner:String!, + $name:String!, + $supportCategory:ID!, + $generalCategory:ID!, + ) { + supportDiscussions: repository(owner:$owner, name:$name){ + discussions( + categoryId:$supportCategory, + last:50, + answered:false, + states:[OPEN], + ) { + nodes { + id, + number, + updatedAt + } + }, + }, + generalDiscussions: repository(owner:$owner, name:$name){ + discussions( + categoryId:$generalCategory, + last:50, + states:[OPEN], + ) { + nodes { + id, + number, + updatedAt + } + } + } + }`; + const variables = { + owner: context.repo.owner, + name: context.repo.repo, + supportCategory: "DIC_kwDOH31rQM4CRErR", + generalCategory: "DIC_kwDOH31rQM4CRErQ" + } + const result = await github.graphql(query, variables); + const combinedDiscussions = [ + ...result.supportDiscussions.discussions.nodes, + ...result.generalDiscussions.discussions.nodes, + ] + + console.log(`Checking ${combinedDiscussions.length} open discussions`); + + for (const discussion of combinedDiscussions) { + if (new Date(discussion.updatedAt) < cutoff) { + console.log(`Closing outdated discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt}`); + const addCommentMutation = `mutation($discussion:ID!, $body:String!) { + addDiscussionComment(input:{discussionId:$discussion, body:$body}) { + clientMutationId + } + }`; + const commentVariables = { + discussion: discussion.id, + body: 'This discussion has been automatically closed due to inactivity. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.', + } + await github.graphql(addCommentMutation, commentVariables); + + const closeDiscussionMutation = `mutation($discussion:ID!, $reason:DiscussionCloseReason!) { + closeDiscussion(input:{discussionId:$discussion, reason:$reason}) { + clientMutationId + } + }`; + const closeVariables = { + discussion: discussion.id, + reason: "OUTDATED", + } + await github.graphql(closeDiscussionMutation, closeVariables); + + await sleep(1000); + } + } + close-unsupported-feature-requests: + name: 'Close Unsupported Feature Requests' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + script: | + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + const CUTOFF_1_DAYS = 180; + const CUTOFF_1_COUNT = 10; + const CUTOFF_2_DAYS = 365; + const CUTOFF_2_COUNT = 20; + + const cutoff1Date = new Date(); + cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS); + const cutoff2Date = new Date(); + cutoff2Date.setDate(cutoff2Date.getDate() - CUTOFF_2_DAYS); + + const query = `query( + $owner:String!, + $name:String!, + $featureRequestsCategory:ID!, + ) { + repository(owner:$owner, name:$name){ + discussions( + categoryId:$featureRequestsCategory, + last:100, + states:[OPEN], + ) { + nodes { + id, + number, + updatedAt, + upvoteCount, + } + }, + } + }`; + const variables = { + owner: context.repo.owner, + name: context.repo.repo, + featureRequestsCategory: "DIC_kwDOH31rQM4CRErS" + } + const result = await github.graphql(query, variables); + + for (const discussion of result.repository.discussions.nodes) { + const discussionDate = new Date(discussion.updatedAt); + if ((discussionDate < cutoff1Date && discussion.upvoteCount < CUTOFF_1_COUNT) || + (discussionDate < cutoff2Date && discussion.upvoteCount < CUTOFF_2_COUNT)) { + console.log(`Closing discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt} with votes ${discussion.upvoteCount}`); + const addCommentMutation = `mutation($discussion:ID!, $body:String!) { + addDiscussionComment(input:{discussionId:$discussion, body:$body}) { + clientMutationId + } + }`; + const commentVariables = { + discussion: discussion.id, + body: 'This discussion has been automatically closed due to lack of community support. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.', + } + await github.graphql(addCommentMutation, commentVariables); + + const closeDiscussionMutation = `mutation($discussion:ID!, $reason:DiscussionCloseReason!) { + closeDiscussion(input:{discussionId:$discussion, reason:$reason}) { + clientMutationId + } + }`; + const closeVariables = { + discussion: discussion.id, + reason: "OUTDATED", + } + await github.graphql(closeDiscussionMutation, closeVariables); + + await sleep(1000); + } + } diff --git a/.gitignore b/.gitignore index 7fdc6550..9eccc8c6 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,9 @@ next-env.d.ts # IDEs /.idea/ +# MkDocs documentation +site*/ +.cache/ +# venv +.venv/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..0b4f5624 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + exclude: "(^mkdocs\\.yml$)" + - id: check-added-large-files +- repo: https://github.com/rbubley/mirrors-prettier + rev: 'v3.3.3' + hooks: + - id: prettier + types_or: + - javascript + - markdown + - jsx + additional_dependencies: + - prettier@3.3.3 + - 'prettier-plugin-organize-imports@4.1.0' diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..b48ef007 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,5 @@ +const config = { + plugins: [require("prettier-plugin-organize-imports")], +}; + +module.exports = config; diff --git a/.vscode/launch.json b/.vscode/launch.json index 0e71c3ba..366b5438 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,4 +16,4 @@ } } ] -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 5a9e97f1..5fde0b3a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,18 @@ "files.exclude": { "**/.next": true, "**/node_modules": true - } -} \ No newline at end of file + }, + "yaml.schemas": { + "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml" + }, + "yaml.customTags": [ + "!ENV scalar", + "!ENV sequence", + "tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg", + "tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji", + "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format" + ], + "[python]": { + "editor.defaultFormatter": "ms-python.autopep8" + }, +} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f989048e..a339e842 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -17,23 +17,23 @@ diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience -* Focusing on what is best not just for us as individuals, but for the +- Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: -* The use of sexualized language or imagery, and sexual attention or +- The use of sexualized language or imagery, and sexual attention or advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities @@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an +standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f383ede..0d85c731 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,5 @@ # Contributing to Homepage + We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: - Reporting a bug @@ -8,16 +9,20 @@ We love your input! We want to make contributing to this project as easy and tra - Becoming a maintainer ## We Develop with Github + We use github to host code, to track issues and feature requests, as well as accept pull requests. ## Any contributions you make will be under the GNU General Public License v3.0 + In short, when you submit code changes, your submissions are understood to be under the same [GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/) that covers the project. Feel free to contact the maintainers if that's a concern. -## Report bugs using Github's [issues](https://github.com/benphelps/homepage/issues) -We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/benphelps/homepage/issues/new); it's that easy! +## Report bugs using Github [discussions](https://github.com/gethomepage/homepage/discussions) + +We use GitHub discussions to triage bugs. Report a bug by [opening a new discussion](https://github.com/gethomepage/homepage/discussions/new?category=support); it's that easy! Please do not open an issue unless instructed to do so by a project maintainer. ## Write bug reports with detail, background, and sample configurations -Homepage includes a lot of configuration options and is often deploying in larger systems. Please include as much information (configurations, deployment method, Docker & API versions, etc) as you can when reporting an issue. + +Homepage includes a lot of configuration options and is often deploying in larger systems. Please include as much information (configurations, deployment method, Docker & API versions, etc) as you can when reporting an issue. **Great Bug Reports** tend to have: @@ -29,16 +34,38 @@ Homepage includes a lot of configuration options and is often deploying in large - What actually happens - Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) -People *love* thorough bug reports. I'm not even kidding. +People _love_ thorough bug reports. I'm not even kidding. ## Development Guidelines -Please see the [documentation regarding development](https://gethomepage.dev/en/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/en/more/development/#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 -This project follows the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript), please follow it when submitting pull requests. + +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 + By contributing, you agree that your contributions will be licensed under its GNU General Public License. +## Use of AI for pull requests + +In general, homepage does not accept "AI-generated" PRs. If you choose to use something like that to aid the development process to generate a significant proportion of the pull request, please make sure this is explicitly stated in the PR itself. + ## References + This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/main/CONTRIBUTING.md) + +## Automatic Respository Maintenance + +The homepage team appreciates all effort and interest from the community in filing bug reports, creating feature requests, sharing ideas and helping other community members. That said, in an effort to keep the repository organized and managebale the project uses automatic handling of certain areas: + +- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity. +- Discussions with a marked answer will be automatically closed. +- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity. +- Feature requests that do not meet the following thresholds will be closed: 10 "up-votes" after 180 days of inactivity or 20 "up-votes" after 365 days. + +In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns. +Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features. + +Thank you all for your contributions. diff --git a/Dockerfile b/Dockerfile index 9fec35e7..cac7623e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,66 +1,63 @@ -# syntax = docker/dockerfile:latest - -# Install dependencies only when needed -FROM docker.io/node:18-alpine AS deps - +# ========================= +# Builder Stage +# ========================= +FROM node:22-slim AS builder WORKDIR /app -COPY --link package.json pnpm-lock.yaml* ./ - -SHELL ["/bin/ash", "-xeo", "pipefail", "-c"] -RUN apk add --no-cache libc6-compat \ - && apk add --no-cache --virtual .gyp python3 make g++ \ - && npm install -g pnpm - -RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store" - -RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm install -r --offline - -# Rebuild the source code only when needed -FROM docker.io/node:18-alpine AS builder -WORKDIR /app +# Setup +RUN mkdir config +COPY . . +ARG CI ARG BUILDTIME ARG VERSION ARG REVISION +ENV CI=$CI -COPY --link --from=deps /app/node_modules ./node_modules/ -COPY . . +# Install and build only outside CI +RUN if [ "$CI" != "true" ]; then \ + corepack enable && corepack prepare pnpm@latest --activate && \ + pnpm install --frozen-lockfile --prefer-offline && \ + NEXT_TELEMETRY_DISABLED=1 \ + NEXT_PUBLIC_BUILDTIME=$BUILDTIME \ + NEXT_PUBLIC_VERSION=$VERSION \ + NEXT_PUBLIC_REVISION=$REVISION \ + pnpm run build; \ + else \ + echo "✅ Using prebuilt app from CI context"; \ + fi -SHELL ["/bin/ash", "-xeo", "pipefail", "-c"] -RUN npm run telemetry \ - && mkdir config \ - && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build - -# Production image, copy all the files and run next -FROM docker.io/node:18-alpine AS runner -LABEL org.opencontainers.image.title "Homepage" -LABEL org.opencontainers.image.description "A self-hosted services landing page, with docker and service integrations." -LABEL org.opencontainers.image.url="https://github.com/benphelps/homepage" -LABEL org.opencontainers.image.documentation='https://github.com/benphelps/homepage/wiki' -LABEL org.opencontainers.image.source='https://github.com/benphelps/homepage' +# ========================= +# Runtime Stage +# ========================= +FROM node:22-alpine AS runner +LABEL org.opencontainers.image.title="Homepage" +LABEL org.opencontainers.image.description="A self-hosted services landing page, with docker and service integrations." +LABEL org.opencontainers.image.url="https://github.com/gethomepage/homepage" +LABEL org.opencontainers.image.documentation='https://github.com/gethomepage/homepage/wiki' +LABEL org.opencontainers.image.source='https://github.com/gethomepage/homepage' LABEL org.opencontainers.image.licenses='Apache-2.0' -ENV NODE_ENV production - +# Setup WORKDIR /app -# Copy files from context (this allows the files to copy before the builder stage is done). -COPY --link --chown=1000:1000 package.json next.config.js ./ +# Copy some files from context COPY --link --chown=1000:1000 /public ./public/ - -# Copy files from builder -COPY --link --from=builder --chown=1000:1000 /app/.next/standalone ./ -COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static/ COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/ -RUN apk add --no-cache su-exec +# Copy only necessary files from the build stage +COPY --link --from=builder --chown=1000:1000 /app/.next/standalone/ ./ +COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static -ENV PORT 3000 +RUN apk add --no-cache su-exec iputils-ping + +ENV NODE_ENV=production +ENV HOSTNAME=0.0.0.0 +ENV PORT=3000 EXPOSE $PORT HEALTHCHECK --interval=10s --timeout=3s --start-period=20s \ - CMD wget --no-verbose --tries=1 --spider --no-check-certificate http://localhost:$PORT/api/healthcheck || exit 1 + CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:$PORT/api/healthcheck || exit 1 ENTRYPOINT ["docker-entrypoint.sh"] CMD ["node", "server.js"] diff --git a/Dockerfile-tilt b/Dockerfile-tilt index 431ef2a6..f6cdf4d2 100644 --- a/Dockerfile-tilt +++ b/Dockerfile-tilt @@ -10,7 +10,7 @@ RUN <

- A modern (fully static, fast), secure (fully proxied), highly customizable application dashboard with integrations for more than 25 services and translations for over 15 languages. Easily configured via YAML files (or discovery via docker labels). + A modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.

- +

- - - - - + GitHub Workflow Status (with event) +   + +   + Discord +   + +   + GitHub Sponsors

- - Linkedin - phelpsben + DigitalOcean Referral Badge

-

- Docker - Weblate +Homepage builds are kindly powered by DigitalOcean.

-## Features +# Features -- **Fast!** The entire site is statically generated at build time, so you can expect instant load times -- **Secure!** Every API request to backend services goes through a proxy server, so your API keys are never exposed to the frontend client. -- Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6 - - Supports all Raspberry Pi's, most SBCs & Apple Silicon -- Full i18n support with translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish and Yue - - Want to help translate? [Join the Weblate project](https://hosted.weblate.org/engage/homepage/) -- Service & Web Bookmarks -- Docker Integration - - Container status (Running / Stopped) & statistics (CPU, Memory, Network) - - Automatic service discovery (via labels) -- Service Integration - - Sonarr, Radarr, Readarr, Prowlarr, Bazarr, Lidarr, Emby, Jellyfin, Tautulli, Plex and more - - Ombi, Overseerr, Jellyseerr, Jackett, NZBGet, SABnzbd, ruTorrent, Transmission, qBittorrent and more - - Portainer, Traefik, Speedtest Tracker, PiHole, AdGuard Home, Nginx Proxy Manager, Gotify, Syncthing Relay Server, Authentik, Proxmox and more -- Information Providers - - Coin Market Cap, Mastodon and more -- Information & Utility Widgets - - System Stats (Disk, CPU, Memory) - - Weather via [OpenWeatherMap](https://openweathermap.org/) or [Open-Meteo](https://open-meteo.com/) - - Web Search Bar - - UniFi Console, Glances and more -- Instant "Quick-launch" search -- Customizable - - 21 theme colors with light and dark mode support - - Background image support - - Column and Row layout options +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. -## Support & Suggestions +- **Fast** - The site is statically generated at build time for instant load times. +- **Secure** - All API requests to backend services are proxied, keeping your API keys hidden. Constantly reviewed for security by the community. +- **For Everyone** - Images built for AMD64, ARM64. +- **Full i18n** - Support for over 40 languages. +- **Service & Web Bookmarks** - Add custom links to the homepage. +- **Docker Integration** - Container status and stats. Automatic service discovery via labels. +- **Service Integration** - Over 100 service integrations, including popular starr and self-hosted apps. +- **Information & Utility Widgets** - Weather, time, date, search, and more. +- **And much more...** -If you have any questions, suggestions, or general issues, please start a discussion on the [Discussions](https://github.com/benphelps/homepage/discussions) page. +## Docker Integration -For bug reports, please open an issue on the [Issues](https://github.com/benphelps/homepage/issues) page. +Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker Service Discovery](https://gethomepage.dev/configs/docker/#automatic-service-discovery) page for more information. -## Getting Started +## Service Widgets -For configuration options, examples and more, [please check out the homepage site](http://gethomepage.dev). +Homepage also has support for hundreds of 3rd-party services, including all popular \*arr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd-party APIs. See the [Service](https://gethomepage.dev/widgets/) page for more information. -### With Docker +## Information Widgets + +Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the [Information Providers](https://gethomepage.dev/widgets/) page for more information. + +## Customization + +Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the [Settings](https://gethomepage.dev/configs/settings/) page for more information. + +# Getting Started + +For configuration options, examples and more, [please check out the homepage documentation](http://gethomepage.dev). + +## Security Notice 🔒 + +Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN. + +## With Docker Using docker compose: ```yaml -version: "3.3" services: homepage: - image: ghcr.io/benphelps/homepage:latest + image: ghcr.io/gethomepage/homepage:latest container_name: homepage + environment: + HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts + PUID: 1000 # optional, your user id + PGID: 1000 # optional, your group id ports: - 3000:3000 volumes: - /path/to/config:/app/config # Make sure your local config directory exists - - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations + - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations + restart: unless-stopped ``` or docker run: ```bash -docker run -p 3000:3000 -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:latest +docker run --name homepage \ + -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev \ + -e PUID=1000 \ + -e PGID=1000 \ + -p 3000:3000 \ + -v /path/to/config:/app/config \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + --restart unless-stopped \ + ghcr.io/gethomepage/homepage:latest ``` -### With Node +## From Source First, clone the repository: ```bash -git clone https://github.com/benphelps/homepage.git +git clone https://github.com/gethomepage/homepage.git ``` -Then install dependencies and build the production bundle (I'm using pnpm here, you can use npm or yarn if you like): +Then install dependencies and build the production bundle: ```bash pnpm install @@ -110,22 +122,17 @@ pnpm build If this is your first time starting, copy the `src/skeleton` directory to `config/` to populate initial example config files. -Finally, run the server: +Finally, run the server in production mode: ```bash pnpm start ``` -## Configuration +# Configuration -Configuration files will be generated and placed on the first request. +Please refer to the [homepage documentation website](https://gethomepage.dev/) for more information. Everything you need to know about configuring Homepage is there. Please read everything carefully before asking for help, as most questions are answered there or are simple YAML configuration issues. -Configuration is done in the /config directory using .yaml files. Refer to each config for -the specific configuration options. - -You may also check [the homepage site](http://gethomepage.dev) for detailed configuration instructions, examples and more. - -## Development +# Development Install NPM packages, this project uses [pnpm](https://pnpm.io/) (and so should you!): @@ -141,21 +148,36 @@ pnpm dev Open [http://localhost:3000](http://localhost:3000) to start. -This is a [Next.js](https://nextjs.org/) application, see their doucmentation for more information: +This is a [Next.js](https://nextjs.org/) application, see their documentation for more information. -## Contributors +# Documentation - - - +The homepage documentation is available at [https://gethomepage.dev/](https://gethomepage.dev/). - - +Homepage uses Material for MkDocs for documentation. To run the documentation locally, first install the dependencies: - +```bash +pip install -r requirements.txt +``` +Then run the development server: +```bash +mkdocs serve # or build, to build the static site +``` - -[![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors) - +# Support & Suggestions + +If you have any questions, suggestions, or general issues, please start a discussion on the [Discussions](https://github.com/gethomepage/homepage/discussions) page. + +## Troubleshooting + +In addition to the docs, the [troubleshooting guide](https://gethomepage.dev/troubleshooting/) can help reveal many basic config or network issues. If you're having a problem, it's a good place to start. + +## Contributing & Contributors + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +Thanks to the over 200 contributors who have helped make this project what it is today! + +Especially huge thanks to [@shamoon](https://github.com/shamoon), who has been the backbone of this community from the very start. diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..c72cbb1b --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,6 @@ +project_id_env: CROWDIN_PROJECT_ID +api_token_env: CROWDIN_PERSONAL_TOKEN +preserve_hierarchy: true +files: + - source: /public/locales/en/*.json + translation: /public/locales/%osx_locale%/%original_file_name% diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index c2858808..9890fbee 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -15,7 +15,7 @@ export HOMEPAGE_BUILDTIME=$(date +%s) # Set privileges for /app but only if pid 1 user is root and we are dropping privileges. # If container is run as an unprivileged user, it means owner already handled ownership setup on their own. # Running chown in that case (as non-root) will cause error -[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app +[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app/config /app/public # Drop privileges (when asked to) if root, otherwise run as current user if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000..d9efae21 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +gethomepage.dev diff --git a/docs/assets/banner_dark@2x.png b/docs/assets/banner_dark@2x.png new file mode 100644 index 00000000..87bcd0a7 Binary files /dev/null and b/docs/assets/banner_dark@2x.png differ diff --git a/docs/assets/banner_dark@2x.webp b/docs/assets/banner_dark@2x.webp new file mode 100644 index 00000000..651fd078 Binary files /dev/null and b/docs/assets/banner_dark@2x.webp differ diff --git a/docs/assets/banner_light@2x.png b/docs/assets/banner_light@2x.png new file mode 100644 index 00000000..721446b8 Binary files /dev/null and b/docs/assets/banner_light@2x.png differ diff --git a/docs/assets/banner_light@2x.webp b/docs/assets/banner_light@2x.webp new file mode 100644 index 00000000..00b258eb Binary files /dev/null and b/docs/assets/banner_light@2x.webp differ diff --git a/docs/assets/blossom_valley.jpg b/docs/assets/blossom_valley.jpg new file mode 100644 index 00000000..39445902 Binary files /dev/null and b/docs/assets/blossom_valley.jpg differ diff --git a/docs/assets/blossom_valley_blur.jpg b/docs/assets/blossom_valley_blur.jpg new file mode 100644 index 00000000..54bb9bae Binary files /dev/null and b/docs/assets/blossom_valley_blur.jpg differ diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico new file mode 100644 index 00000000..5ffe0eb4 Binary files /dev/null and b/docs/assets/favicon.ico differ diff --git a/docs/assets/homepage_demo.png b/docs/assets/homepage_demo.png new file mode 100644 index 00000000..52c69028 Binary files /dev/null and b/docs/assets/homepage_demo.png differ diff --git a/docs/assets/homepage_demo.webp b/docs/assets/homepage_demo.webp new file mode 100644 index 00000000..e6c47041 Binary files /dev/null and b/docs/assets/homepage_demo.webp differ diff --git a/docs/assets/homepage_demo_clip.png b/docs/assets/homepage_demo_clip.png new file mode 100644 index 00000000..8ac16f35 Binary files /dev/null and b/docs/assets/homepage_demo_clip.png differ diff --git a/docs/assets/homepage_demo_clip.webp b/docs/assets/homepage_demo_clip.webp new file mode 100644 index 00000000..169998e9 Binary files /dev/null and b/docs/assets/homepage_demo_clip.webp differ diff --git a/docs/assets/light_squircle@2x.png b/docs/assets/light_squircle@2x.png new file mode 100644 index 00000000..e7a1ee29 Binary files /dev/null and b/docs/assets/light_squircle@2x.png differ diff --git a/docs/assets/light_squircle@2x.webp b/docs/assets/light_squircle@2x.webp new file mode 100644 index 00000000..fc1a1613 Binary files /dev/null and b/docs/assets/light_squircle@2x.webp differ diff --git a/docs/assets/sections.png b/docs/assets/sections.png new file mode 100644 index 00000000..d1d68d5a Binary files /dev/null and b/docs/assets/sections.png differ diff --git a/docs/assets/sections.webp b/docs/assets/sections.webp new file mode 100644 index 00000000..2e8f3e35 Binary files /dev/null and b/docs/assets/sections.webp differ diff --git a/docs/assets/widget_stocks_demo.png b/docs/assets/widget_stocks_demo.png new file mode 100644 index 00000000..0d2cde53 Binary files /dev/null and b/docs/assets/widget_stocks_demo.png differ diff --git a/docs/configs/bookmarks.md b/docs/configs/bookmarks.md new file mode 100644 index 00000000..897975e2 --- /dev/null +++ b/docs/configs/bookmarks.md @@ -0,0 +1,37 @@ +--- +title: Bookmarks +description: Bookmark Configuration +--- + +Bookmarks are configured in the `bookmarks.yaml` file. They function much the same as [Services](services.md), in how groups and lists work. They're just much simpler, smaller, and contain no extra features other than being a link out. + +The design of homepage expects `abbr` to be 2 letters, but is not otherwise forced. + +You can also use an icon for bookmarks similar to the [options for service icons](services.md#icons). If both icon and abbreviation are supplied, the icon takes precedence. + +By default, the description will use the hostname of the link, but you can override it with a custom description. + +```yaml +--- +- Developer: + - Github: + - abbr: GH + href: https://github.com/ + +- Social: + - Reddit: + - icon: reddit.png + href: https://reddit.com/ + description: The front page of the internet + +- Entertainment: + - YouTube: + - abbr: YT + href: https://youtube.com/ +``` + +which renders to (depending on your theme, etc.): + +Bookmarks + +The default [bookmarks.yaml](https://github.com/gethomepage/homepage/blob/main/src/skeleton/bookmarks.yaml) is a working example. diff --git a/docs/configs/custom-css-js.md b/docs/configs/custom-css-js.md new file mode 100644 index 00000000..a76ea650 --- /dev/null +++ b/docs/configs/custom-css-js.md @@ -0,0 +1,17 @@ +--- +title: Custom CSS & JS +description: Adding Custom CSS or JS +--- + +As of version v0.6.30 homepage supports adding your own custom css & javascript. Please do so **at your own risk**. + +To add custom css simply edit the `custom.css` file under your config directory, similarly for javascript you would edit `custom.js`. You can then target elements in homepage with various classes / ids to customize things to your liking. + +You can also set a specific `id` for a service or bookmark to target with your custom css or javascript, e.g. + +```yaml +Service: + id: myserviceid + icon: icon.png + ... +``` diff --git a/docs/configs/docker.md b/docs/configs/docker.md new file mode 100644 index 00000000..992897cb --- /dev/null +++ b/docs/configs/docker.md @@ -0,0 +1,250 @@ +--- +title: Docker +description: Docker Configuration +--- + +Docker instances are configured inside the `docker.yaml` file. Both IP:PORT and Socket connections are supported. + +For IP:PORT, simply make sure your Docker instance [has been configured](https://gist.github.com/styblope/dc55e0ad2a9848f2cc3307d4819d819f) to accept API traffic over the HTTP API. + +```yaml +my-remote-docker: + host: 192.168.0.101 + port: 2375 +``` + +## Using Docker TLS + +Since Docker supports connecting with TLS and client certificate authentication, you can include TLS details when connecting to the HTTP API. Further details of setting up Docker to accept TLS connections, and generation of the keys and certs can be found [in the Docker documentation](https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket). The file entries are relative to the `config` directory (location of `docker.yaml` file). + +```yaml +my-remote-docker: + host: 192.168.0.101 + port: 275 + tls: + keyFile: tls/key.pem + caFile: tls/ca.pem + certFile: tls/cert.pem +``` + +## Using Docker Socket Proxy + +Due to security concerns with exposing the docker socket directly, you can use a [docker-socket-proxy](https://github.com/Tecnativa/docker-socket-proxy) container to expose the docker socket on a more restricted and secure API. + +Here is an example docker-compose file that will expose the docker socket, and then connect to it from the homepage container: + +```yaml +dockerproxy: + image: ghcr.io/tecnativa/docker-socket-proxy:latest + container_name: dockerproxy + environment: + - CONTAINERS=1 # Allow access to viewing containers + - SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm) + - TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm) + - POST=0 # Disallow any POST operations (effectively read-only) + ports: + - 127.0.0.1:2375:2375 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only + restart: unless-stopped + +homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + volumes: + - /path/to/config:/app/config + ports: + - 3000:3000 + restart: unless-stopped +``` + +Then, inside of your `docker.yaml` settings file, you'd configure the docker instance like so: + +```yaml +my-docker: + host: dockerproxy + port: 2375 +``` + +## Using Socket Directly + +If you'd rather use the socket directly, first make sure that you're passing the local socket into the Docker container. + +!!! note + + In order to use the socket directly homepage must be running as root + +```yaml +homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + volumes: + - /path/to/config:/app/config + - /var/run/docker.sock:/var/run/docker.sock # pass local proxy + ports: + - 3000:3000 + restart: unless-stopped +``` + +If you're using `docker run`, this would be `-v /var/run/docker.sock:/var/run/docker.sock`. + +Then, inside of your `docker.yaml` settings file, you'd configure the docker instance like so: + +```yaml +my-docker: + socket: /var/run/docker.sock +``` + +## Services + +Once you've configured your docker instances, you can then apply them to your services, to get stats and status reporting shown. + +Inside of the service you'd like to connect to docker: + +```yaml +- Emby: + icon: emby.png + href: "http://emby.home/" + description: Media server + server: my-docker # The docker server that was configured + container: emby # The name of the container you'd like to connect +``` + +## Automatic Service Discovery + +Homepage features automatic service discovery for containers with the proper labels attached, all configuration options can be applied using dot notation, beginning with `homepage`. + +Below is an example of the same service entry shown above, as docker labels. + +```yaml +services: + emby: + image: lscr.io/linuxserver/emby:latest + container_name: emby + ports: + - 8096:8096 + restart: unless-stopped + labels: + - homepage.group=Media + - homepage.name=Emby + - homepage.icon=emby.png + - homepage.href=http://emby.home/ + - homepage.description=Media server +``` + +When your Docker instance has been properly configured, this service will be automatically discovered and added to your Homepage. **You do not need to specify the `server` or `container` values, as they will be automatically inferred.** + +**When using docker swarm use _deploy/labels_** + +## Widgets + +You may also configure widgets, along with the standard service entry, again, using dot notation. + +```yaml +labels: + - homepage.group=Media + - homepage.name=Emby + - homepage.icon=emby.png + - homepage.href=http://emby.home/ + - homepage.description=Media server + - homepage.widget.type=emby + - homepage.widget.url=http://emby.home + - homepage.widget.key=yourembyapikeyhere + - homepage.widget.fields=["field1","field2"] # optional +``` + +Multiple widgets can be specified by incrementing the index, e.g. + +```yaml +labels: ... + - homepage.widgets[0].type=emby + - homepage.widgets[0].url=http://emby.home + - homepage.widgets[0].key=yourembyapikeyhere + - homepage.widgets[1].type=uptimekuma + - homepage.widgets[1].url=http://uptimekuma.home + - homepage.widgets[1].slug=youreventslughere +``` + +You can add specify fields for e.g. the [CustomAPI](../widgets/services/customapi.md) widget by using array-style dot notation: + +```yaml +labels: + - homepage.group=Media + - homepage.name=Emby + - homepage.icon=emby.png + - homepage.href=http://emby.home/ + - homepage.description=Media server + - homepage.widget.type=customapi + - homepage.widget.url=http://argus.service/api/v1/service/summary/emby + - homepage.widget.mappings[0].label=Deployed Version + - homepage.widget.mappings[0].field.status=deployed_version + - homepage.widget.mappings[1].label=Latest Version + - homepage.widget.mappings[1].field.status=latest_version +``` + +## Docker Swarm + +Docker swarm is supported and Docker services are specified with the same `server` and `container` notation. To enable swarm support you will need to include a `swarm` setting in your docker.yaml, e.g. + +```yaml +my-docker: + socket: /var/run/docker.sock + swarm: true +``` + +For the automatic service discovery to discover all services it is important that homepage should be deployed on a manager node. Set deploy requirements to the master node in your stack yaml config, e.g. + +```yaml +.... + deploy: + placement: + constraints: + - node.role == manager +... +``` + +In order to detect every service within the Docker swarm it is necessary that service labels should be used and not container labels. Specify the homepage labels as: + +```yaml +.... + deploy: + labels: + - homepage.icon=foobar +... +``` + +## Multiple Homepage Instances + +The optional field `instanceName` can be configured in [settings.yaml](settings.md#instance-name) to differentiate between multiple homepage instances. + +To limit a label to an instance, insert `.instance.{{instanceName}}` after the `homepage` prefix. + +```yaml +labels: + - homepage.group=Media + - homepage.name=Emby + - homepage.icon=emby.png + - homepage.instance.internal.href=http://emby.lan/ + - homepage.instance.public.href=https://emby.mydomain.com/ + - homepage.description=Media server +``` + +## Ordering + +As of v0.6.4 discovered services can include an optional `weight` field to determine sorting such that: + +- Default weight for discovered services is 0 +- Default weight for configured services is their index within their group scaled by 100, i.e. (index + 1) \* 100 +- If two items have the same weight value, then they will be sorted by name + +## Show stats + +You can show the docker stats by clicking the status indicator but this can also be controlled per-service with: + +```yaml +- Example Service: + ... + showStats: true +``` + +Also see the settings for [show docker stats](settings.md#show-docker-stats). diff --git a/docs/configs/index.md b/docs/configs/index.md new file mode 100644 index 00000000..85a1ac90 --- /dev/null +++ b/docs/configs/index.md @@ -0,0 +1,17 @@ +--- +title: Configuration +description: Homepage Configuration +icon: material/cog +--- + +Homepage uses YAML for configuration, YAML stands for "YAML Ain't Markup Language.". It's a human-readable data serialization format that's a superset of JSON. Great for config files, easy to read and write. Supports complex data types like lists and objects. **Indentation matters.** If you already use Docker Compose, you already use YAML. + +Here are some tips when writing YAML: + +1. **Use Indentation Carefully**: YAML relies on indentation, not brackets. +2. Avoid Tabs: Stick to spaces for indentation to avoid parsing errors. 2 spaces are common. +3. Quote Strings: Use single or double quotes for strings with special characters, this is especially important for API keys. +4. Key-Value Syntax: Use key: value format. Colon must be followed by a space. +5. Validate: Always validate your YAML with a linter before deploying. + +You can find tons of online YAML validators, here's one: [https://codebeautify.org/yaml-validator](https://codebeautify.org/yaml-validator), heres another: [https://jsonformatter.org/yaml-validator](https://jsonformatter.org/yaml-validator). diff --git a/docs/configs/info-widgets.md b/docs/configs/info-widgets.md new file mode 100644 index 00000000..76314396 --- /dev/null +++ b/docs/configs/info-widgets.md @@ -0,0 +1,24 @@ +--- +title: Information Widgets +description: Homepage info widgets. +--- + +Information widgets are widgets that provide information about your system or environment and are displayed at the top of the homepage. You can find a list of all available info widgets under the [Info Widgets](../widgets/info/index.md) section. + +Info widgets are defined in the widgets.yaml + +Each widget has its own configuration options, which are detailed in the widget's documentation. + +## Layout + +Info widgets are displayed in the order they are defined in the `widgets.yaml` file. You can change the order by moving the widgets around in the file. However, some widgets (weather, search and datetime) are aligned to the right side of the screen which can affect the layout of the widgets. + +## Adding A Link + +You can add a link to an info widget such as the logo or text widgets by adding an `href` option, for example: + +```yaml +logo: + href: https://example.com + target: _blank # Optional, can be set in settings +``` diff --git a/docs/configs/kubernetes.md b/docs/configs/kubernetes.md new file mode 100644 index 00000000..49158e6b --- /dev/null +++ b/docs/configs/kubernetes.md @@ -0,0 +1,168 @@ +--- +title: Kubernetes +description: Kubernetes Configuration +--- + +The Kubernetes connectivity has the following requirements: + +- Kubernetes 1.19+ +- Metrics Service +- An Ingress controller + - Optionally: Gateway-API + +The Kubernetes connection is configured in the `kubernetes.yaml` file. There are 3 modes to choose from: + +- **disabled** - disables kubernetes connectivity +- **default** - uses the default kubeconfig [resolution](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) +- **cluster** - uses a service account inside the cluster + +```yaml +mode: default +``` + +To configure Kubernetes gateway-api, ingress or ingressRoute service discovery, add one or multiple of the following settings. + +Example settings: + +```yaml +ingress: true # default, enable ingress only +``` + +or + +```yaml +ingress: true # default, enable ingress +traefik: true # enable traefik ingressRoute +gateway: true # enable gateway-api +``` + +## Services + +Once the Kubernetes connection is configured, individual services can be configured to pull statistics. Only CPU and Memory are currently supported. + +Inside of the service you'd like to connect to a pod: + +```yaml +- Emby: + icon: emby.png + href: "http://emby.home/" + description: Media server + namespace: media # The kubernetes namespace the app resides in + app: emby # The name of the deployed app +``` + +The `app` field is used to create a label selector, in this example case it would match pods with the label: `app.kubernetes.io/name=emby`. + +Sometimes this is insufficient for complex or atypical application deployments. In these cases, the `podSelector` field can be used. Any field selector can be used with it, so it allows for some very powerful selection capabilities. + +For instance, it can be utilized to roll multiple underlying deployments under one application to see a high-level aggregate: + +```yaml +- Element Chat: + icon: matrix-light.png + href: https://chat.example.com + description: Matrix Synapse Powered Chat + app: matrix-element + namespace: comms + podSelector: >- + app.kubernetes.io/instance in ( + matrix-element, + matrix-media-repo, + matrix-media-repo-postgresql, + matrix-synapse + ) +``` + +!!! note + + A blank string as a podSelector does not deactivate it, but will actually select all pods in the namespace. This is a useful way to capture the resource usage of a complex application siloed to a single namespace, like Longhorn. + +## Automatic Service Discovery + +Homepage features automatic service discovery by Ingress annotations. All configuration options can be applied using typical annotation syntax, beginning with `gethomepage.dev/`. + +```yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: emby + annotations: + gethomepage.dev/enabled: "true" + gethomepage.dev/description: Media Server + gethomepage.dev/group: Media + gethomepage.dev/icon: emby.png + gethomepage.dev/name: Emby + gethomepage.dev/widget.type: "emby" + gethomepage.dev/widget.url: "https://emby.example.com" + gethomepage.dev/pod-selector: "" + gethomepage.dev/weight: 10 # optional + gethomepage.dev/instance: "public" # optional +spec: + rules: + - host: emby.example.com + http: + paths: + - backend: + service: + name: emby + port: + number: 8080 + path: / + pathType: Prefix +``` + +When the Kubernetes cluster connection has been properly configured, this service will be automatically discovered and added to your Homepage. **You do not need to specify the `namespace` or `app` values, as they will be automatically inferred.** + +If you are using multiple instances of homepage, an `instance` annotation can be specified to limit services to a specific instance. If no instance is provided, the service will be visible on all instances. + +If you have a single service that needs to be shown on multiple specific instances of homepage (but not on all of them), the service can be annotated by multiple `instance.name` annotations, where `name` can be the names of your specific multiple homepage instances. For example, a service that is annotated with `gethomepage.dev/instance.public: ""` and `gethomepage.dev/instance.internal: ""` will be shown on `public` and `internal` homepage instances. + +Use the `gethomepage.dev/pod-selector` selector to specify the pod used for the health check. For example, a service that is annotated with `gethomepage.dev/pod-selector: app.kubernetes.io/name=deployment` would link to a pod with the label `app.kubernetes.io/name: deployment`. + +### Traefik IngressRoute support + +Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set: + +```yaml +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: emby + annotations: + gethomepage.dev/href: "https://emby.example.com" + gethomepage.dev/enabled: "true" + gethomepage.dev/description: Media Server + gethomepage.dev/group: Media + gethomepage.dev/icon: emby.png + gethomepage.dev/app: emby-app # optional, may be needed if app.kubernetes.io/name != ingress metadata.name + gethomepage.dev/name: Emby + gethomepage.dev/widget.type: "emby" + gethomepage.dev/widget.url: "https://emby.example.com" + gethomepage.dev/pod-selector: "" + gethomepage.dev/weight: 10 # optional + gethomepage.dev/instance: "public" # optional +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`emby.example.com`) + services: + - kind: Service + name: emby + namespace: emby + port: 8080 + scheme: http + strategy: RoundRobin + weight: 10 +``` + +If the `href` attribute is not present, Homepage will ignore the specific IngressRoute. + +### Gateway API HttpRoute support + +Homepage also features automatic service discovery for Gateway API. Service definitions are read by annotating the HttpRoute custom resource definition and are indentical to the Ingress example as defined in [Automatic Service Discovery](#automatic-service-discovery). + +## Caveats + +Similarly to Docker service discovery, there currently is no rigid ordering to discovered services and discovered services will be displayed above those specified in the `services.yaml`. diff --git a/docs/configs/services.md b/docs/configs/services.md new file mode 100644 index 00000000..86970b92 --- /dev/null +++ b/docs/configs/services.md @@ -0,0 +1,291 @@ +--- +title: Services +description: Service Configuration +--- + +Services are configured inside the `services.yaml` file. You can have any number of groups, and any number of services per group. + +## Groups + +Groups are defined as top-level array entries. + +```yaml +- Group A: + - Service A: + href: http://localhost/ + +- Group B: + - Service B: + href: http://localhost/ +``` + +Service Groups + +### Nested Groups + +Groups can be nested by using the same format as the top-level groups. + +```yaml +- Group A: + - Service A: + href: http://localhost/ + + - Group B: + - Service B: + href: http://localhost/ + + - Service C: + href: http://localhost/ +``` + +## Services + +Services are defined as array entries on groups, + +```yaml +- Group A: + - Service A: + href: http://localhost/ + + - Service B: + href: http://localhost/ + + - Service C: + href: http://localhost/ + +- Group B: + - Service D: + href: http://localhost/ +``` + +Service Services + +### Service Widgets + +Each service can have widgets attached to it (often matching the service type, but that's not forced). + +In addition to the href of the service, you can also specify the target location in which to open that link. See [Link Target](settings.md#link-target) for more details. + +Using Emby as an example, this is how you would attach the Emby service widget. + +```yaml +- Emby: + icon: emby.png + href: http://emby.host.or.ip/ + description: Movies & TV Shows + widget: + type: emby + url: http://emby.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` + +#### Multiple Widgets + +Each service can have multiple widgets attached to it, for example: + +```yaml +- Emby: + icon: emby.png + href: http://emby.host.or.ip/ + description: Movies & TV Shows + widgets: + - type: emby + url: http://emby.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + - type: uptimekuma + url: http://uptimekuma.host.or.ip:port + slug: statuspageslug +``` + +!!! note + + Multiple widgets per service are not yet supported with Kubernetes ingress annotations. + +#### Field Visibility + +Each widget can optionally provide a list of which fields should be visible via the `fields` widget property. If no fields are specified, then all fields will be displayed. The `fields` property must be a valid YAML array of strings. As an example, here is the entry for Sonarr showing only a couple of fields. + +**In all cases a widget will work and display all fields without specifying the `fields` property.** + +```yaml +- Sonarr: + icon: sonarr.png + href: http://sonarr.host.or.ip + widget: + type: sonarr + fields: ["wanted", "queued"] + url: http://sonarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` + +## Descriptions + +Services may have descriptions, + +```yaml +- Group A: + - Service A: + href: http://localhost/ + description: This is my service + +- Group B: + - Service B: + href: http://localhost/ + description: This is another service +``` + +Service Descriptions + +## Icons + +Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/homarr-labs/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png`, `.webp` or `.svg` to specify the desired version. + +You can also specify prefixed icons from: + +- [Material Design Icons](https://pictogrammers.com/library/mdi/) with `mdi-XX` +- [Simple Icons](https://simpleicons.org/) with `si-XX` +- [selfh.st/icons](https://selfh.st/icons/) with `sh-XX` to use the png version or `sh-XX.svg/png/webp` for a specific version + +You can specify a custom color for `mdi` and `si` icons by adding a hex color code as a suffix e.g. `mdi-XX-#f0d453` or `si-XX-#a712a2`. + +To use a remote icon, use the absolute URL (e.g. `https://...`). + +To use a local icon, first create a Docker mount to `/app/public/icons` and then reference your icon as `/icons/myicon.png`. You will need to restart the container when adding new icons. + +!!! warning + + Material Design Icons for **brands** were deprecated and may be removed in the future. Using Simple Icons for brand icons will prevent any issues if / when the Material Design Icons are removed. + +```yaml +- Group A: + - Sonarr: + icon: sonarr.png + href: http://sonarr.host/ + description: Series management + +- Group B: + - Radarr: + icon: radarr.png + href: http://radarr.host/ + description: Movie management + +- Group C: + - Service: + icon: mdi-flask-outline + href: http://service.host/ + description: My cool service +``` + +Service Icons + +## Ping + +Services may have an optional `ping` property that allows you to monitor the availability of an external host. As of v0.8.0, the ping feature attempts to use a true (ICMP) ping command on the underlying host. Currently, only IPv4 is supported. + +!!! note + + Because ping uses the ping command on the underlying host, in some cases you may need to install e.g. the `iputils-ping` package on the host system. + +```yaml +- Group A: + - Sonarr: + icon: sonarr.png + href: http://sonarr.host/ + ping: sonarr.host + +- Group B: + - Radarr: + icon: radarr.png + href: http://radarr.host/ + ping: some.other.host +``` + +Ping + +You can also apply different styles to the ping indicator by using the `statusStyle` property, see [settings](settings.md#status-style). + +## Site Monitor + +Services may have an optional `siteMonitor` property (formerly `ping`) that allows you to monitor the availability of a URL you chose and have the response time displayed. You do not need to set your monitor URL equal to your href or ping URL. + +!!! note + + The site monitor feature works by making an http `HEAD` request to the URL, and falls back to `GET` in case that fails. It will not, for example, login if the URL requires auth or is behind e.g. Authelia. In the case of a reverse proxy and/or auth this usually requires the use of an 'internal' URL to make the site monitor feature correctly display status. + +```yaml +- Group A: + - Sonarr: + icon: sonarr.png + href: http://sonarr.host/ + siteMonitor: http://sonarr.host/ + +- Group B: + - Radarr: + icon: radarr.png + href: http://radarr.host/ + siteMonitor: http://some.other.host/ +``` + +You can also apply different styles to the site monitor indicator by using the `statusStyle` property, see [settings](settings.md#status-style). + +## Docker Integration + +Services may be connected to a Docker container, either running on the local machine, or a remote machine. + +```yaml +- Group A: + - Service A: + href: http://localhost/ + description: This is my service + server: my-server + container: my-container + +- Group B: + - Service B: + href: http://localhost/ + description: This is another service + server: other-server + container: other-container +``` + +Service Containers + +**Clicking on the status label of a service with Docker integration enabled will expand the container stats, where you can see CPU, Memory, and Network activity.** + +!!! note + + This can also be controlled with `showStats`. See [show docker stats](docker.md#show-stats) for more information + +Docker Stats Expanded + +## Service Integrations + +Services may also have a service widget (or integration) attached to them, this works independently of the Docker integration. + +You can find information and configuration for each of the supported integrations on the [Widgets](../widgets/index.md) page. + +Here is an example of a Radarr & Sonarr service, with their respective integrations. + +```yaml +- Group A: + - Sonarr: + icon: sonarr.png + href: http://sonarr.host/ + description: Series management + widget: + type: sonarr + url: http://sonarr.host + key: apikeyapikeyapikeyapikeyapikey + +- Group B: + - Radarr: + icon: radarr.png + href: http://radarr.host/ + description: Movie management + widget: + type: radarr + url: http://radarr.host + key: apikeyapikeyapikeyapikeyapikey +``` + +Service Integrations diff --git a/docs/configs/settings.md b/docs/configs/settings.md new file mode 100644 index 00000000..c1605f4d --- /dev/null +++ b/docs/configs/settings.md @@ -0,0 +1,558 @@ +--- +title: Settings +description: Service Configuration +--- + +The `settings.yaml` file allows you to define application level options. For changes made to this file to take effect, you will need to regenerate the static HTML, this can be done by clicking the refresh icon in the bottom right of the page. + +## Title + +You can customize the title of the page if you'd like. + +```yaml +title: My Awesome Homepage +``` + +## Description + +You can customize the description of the page if you'd like. + +```yaml +description: A description of my awesome homepage +``` + +## Start URL + +You can customize the start_url as required for installable apps. The default is "/". + +```yaml +startUrl: https://custom.url +``` + +## Background Image + +!!! warning "Heads Up!" + + You will need to restart the container any time you add new images, this is a limitation of the Next.js static site server. + +!!! warning "Heads Up!" + + Do not create a bind mount to the entire `/app/public/` directory. + +If you'd like to use a background image instead of the solid theme color, you may provide a full URL to an image of your choice. + +```yaml +background: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80 +``` + +Or you may pass the path to a local image relative to e.g. `/app/public/images` directory. + +For example, inside of your Docker Compose file, mount a path to where your images are kept: + +```yaml +volumes: + - /my/homepage/images:/app/public/images +``` + +and then reference that image: + +```yaml +background: /images/background.png +``` + +### Background Opacity & Filters + +You can specify filters to apply over your background image for blur, saturation and brightness as well as opacity to blend with the background color. The first three filter settings use tailwind CSS classes, see notes below regarding the options for each. You do not need to specify all options. + +```yaml +background: + image: /images/background.png + blur: sm # sm, "", md, xl... see https://tailwindcss.com/docs/backdrop-blur + saturate: 50 # 0, 50, 100... see https://tailwindcss.com/docs/backdrop-saturate + brightness: 50 # 0, 50, 75... see https://tailwindcss.com/docs/backdrop-brightness + opacity: 50 # 0-100 +``` + +### Card Background Blur + +You can apply a blur filter to the service & bookmark cards. Note this option is incompatible with the background blur, saturate and brightness filters. + +```yaml +cardBlur: xs # xs, md, etc... see https://tailwindcss.com/docs/backdrop-blur +``` + +## Favicon + +If you'd like to use a custom favicon instead of the included one, you may provide a full URL to an image of your choice. + +```yaml +favicon: https://www.google.com/favicon.ico +``` + +Or you may pass the path to a local image relative to the `/app/public` directory. See [Background Image](#background-image) for more detailed information on how to provide your own files. + +## Theme + +You can configure a fixed theme (and disable the theme switcher) by passing the `theme` option, like so: + +```yaml +theme: dark # or light +``` + +## Color Palette + +You can configured a fixed color palette (and disable the palette switcher) by passing the `color` option, like so: + +```yaml +color: slate +``` + +Supported colors are: `slate`, `gray`, `zinc`, `neutral`, `stone`, `amber`, `yellow`, `lime`, `green`, `emerald`, `teal`, `cyan`, `sky`, `blue`, `indigo`, `violet`, `purple`, `fuchsia`, `pink`, `rose`, `red`, `white` + +## Layout + +You can configure service and bookmarks sections to be either "column" or "row" based layouts, like so: + +Assuming you have a group named `Media` in your `services.yaml` or `bookmarks.yaml` file, + +```yaml +layout: + Media: + style: row + columns: 4 +``` + +As an example, this would produce the following layout: + +Screenshot 2022-09-15 at 8 03 57 PM + +### Icons-Only Layout + +You can also specify the an icon-only layout for bookmarks, either like so: + +```yaml +layout: + Media: + iconsOnly: true +``` + +or globally: + +```yaml +bookmarksStyle: icons +``` + +### Sorting + +Service groups and bookmark groups can be mixed in order, **but should use different group names**. If you do not specify any bookmark groups they will all show at the bottom of the page. + +**_Using the same name for a service and bookmark group can cause unexpected behavior like a bookmark group being hidden_** + +Groups will sort based on the order in the layout block. You can also mix in groups defined by docker labels, e.g. + +```yaml +layout: + - Auto-Discovered1: + - Configured1: + - Configured2: + - Auto-Discovered2: + - Configured3: + style: row + columns: 3 +``` + +### Nested Groups + +If your services config has nested groups, you can apply settings to these groups by nesting them in the layout block +and using the same settings. For example + +```yaml +layout: + Group A: + style: row + columns: 4 + Group C: + style: row + columns: 2 + Nested Group A: + style: row + columns: 2 + Nested Group B: + style: row + columns: 2 +``` + +### Headers + +You can hide headers for each section in the layout as well by passing `header` as false, like so: + +```yaml +layout: + Section A: + header: false + Section B: + style: row + columns: 3 + header: false +``` + +### Category Icons + +You can also add an icon to a category under the `layout` setting similar to the [options for service icons](services.md#icons), e.g. + +```yaml + Home Management & Info: + icon: home-assistant.png + Server Tools: + icon: https://cdn-icons-png.flaticon.com/512/252/252035.png + ... +``` + +### Icon Style + +The default style for icons (e.g. `icon: mdi-XXXX`) is a gradient, or you can specify that prefixed icons match your theme with a 'flat' style using the setting below. +More information about prefixed icons can be found in [options for service icons](services.md#icons). + +```yaml +iconStyle: theme # optional, defaults to gradient +``` + +### Tabs + +Version 0.6.30 introduced a tabbed view to layouts which can be optionally specified in the layout. Tabs is only active if you set the `tab` field on at least one layout group. + +Tabs are sorted based on the order in the layout block. If a group has no tab specified (and tabs are set on other groups), services and bookmarks will be shown on all tabs. + +Every tab can be accessed directly by visiting Homepage URL with `#Group` (name lowercase and URI-encoded) at the end of the URL. + +For example, the following would create four tabs: + +```yaml +layout: + ... + Bookmark Group on First Tab: + tab: First + + First Service Group: + tab: First + style: row + columns: 4 + + Second Service Group: + tab: Second + columns: 4 + + Third Service Group: + tab: Third + style: row + + Bookmark Group on Fourth Tab: + tab: Fourth + + Service Group on every Tab: + style: row + columns: 4 +``` + +### Full Width + +You can make homepage take up the entire window width by adding: + +```yaml +fullWidth: true +``` + +### Maximum Group Columns + +You can set the maximum number of columns of groups on larger screen sizes (note this is only for groups with the default `style: columns`, not groups with `stle: row`) by adding: + +```yaml +maxGroupColumns: 8 # default is 4 for services, 6 for bookmarks, max 8 +``` + +By default homepage will max out at 4 columns for services and 6 for bookmarks, thus the minimum for this setting is _5_. Of course, if you're setting this to higher numbers, you may want to consider enabling the [fullWidth](#full-width) option as well. + +If you want to set the maximum columns for bookmark groups separately, you can do so by adding: + +```yaml +maxBookmarkGroupColumns: 6 # default is 6, max 8 +``` + +### Collapsible sections + +You can disable the collapsible feature of services & bookmarks by adding: + +```yaml +disableCollapse: true +``` + +By default the feature is enabled. + +### Initially collapsed sections + +You can initially collapse sections by adding the `initiallyCollapsed` option to the layout group. + +```yaml +layout: + Section A: + initiallyCollapsed: true +``` + +This can also be set globaly using the `groupsInitiallyCollapsed` option. + +```yaml +groupsInitiallyCollapsed: true +``` + +The value set on a group will overwrite the global setting. + +By default the feature is disabled. + +### Use Equal Height Cards + +You can enable equal height cards for groups of services, this will make all cards in a row the same height. + +Global setting in `settings.yaml`: + +```yaml +useEqualHeights: true +``` + +Per layout group in `settings.yaml`: + +```yaml +useEqualHeights: false +layout: + ... + Group Name: + useEqualHeights: true # overrides global setting +``` + +By default the feature is disabled + +## Header Style + +There are currently 4 options for header styles, you can see each one below. + +underlined + +```yaml +headerStyle: underlined # default style +``` + +--- + +boxed + +```yaml +headerStyle: boxed +``` + +--- + +clean + +```yaml +headerStyle: clean +``` + +--- + +boxedWidgets + +```yaml +headerStyle: boxedWidgets +``` + +## Base URL + +In some proxy configurations, it may be necessary to set the documents base URL. You can do this by providing a `base` value, like so: + +```yaml +base: http://host.local/homepage +``` + +**_The URL must be a full, absolute URL, or it will be ignored by the browser._** + +## Language + +Set your desired language using: + +```yaml +language: fr +``` + +Currently supported languages: ca, de, en, es, fr, he, hr, hu, it, nb-NO, nl, pt, ru, sv, vi, zh-CN, zh-Hant + +You can also specify locales e.g. for the DateTime widget, e.g. en-AU, en-GB, etc. + +## Link Target + +Changes the behaviour of links on the homepage, + +```yaml +target: _blank # Possible options include _blank, _self, and _top +``` + +Use `_blank` to open links in a new tab, `_self` to open links in the same tab, and `_top` to open links in a new window. + +This can also be set for individual services. Note setting this at the service level overrides any setting in settings.json, e.g.: + +```yaml +- Example Service: + href: https://example.com/ + ... + target: _self +``` + +## Providers + +The `providers` section allows you to define shared API provider options and secrets. + +```yaml +providers: + openweathermap: openweathermapapikey + finnhub: yourfinnhubapikeyhere + longhorn: + url: https://longhorn.example.com + username: admin + password: LonghornPassword +``` + +You can then pass `provider` instead of `apiKey` in your widget configuration. + +```yaml +- openweathermap: + latitude: 50.449684 + longitude: 30.525026 + provider: openweathermap +``` + +## Quick Launch + +You can use the 'Quick Launch' feature to search services, perform a web search or open a URL. To use Quick Launch, just start typing while on your homepage (as long as the search widget doesn't have focus). + +quicklaunch + +There are a few optional settings for the Quick Launch feature: + +- `searchDescriptions`: which lets you control whether item descriptions are included in searches. This is false by default. When enabled, results that match the item name will be placed above those that only match the description. +- `hideInternetSearch`: disable automatically including the currently-selected web search (e.g. from the widget) as a Quick Launch option. This is false by default, enabling the feature. +- `showSearchSuggestions`: show search suggestions for the internet search. If this is not specified then the setting will be inherited from the search widget. If it is not specified there either, it will default to false. For custom providers the `suggestionUrl` needs to be set in order for this to work. +- `provider`: search engine provider. If none is specified it will try to use the provider set for the Search Widget, if neither are present then internet search will be disabled. +- `hideVisitURL`: disable detecting and offering an option to open URLs. This is false by default, enabling the feature. + +```yaml +quicklaunch: + searchDescriptions: true + hideInternetSearch: true + showSearchSuggestions: true + hideVisitURL: true + provider: google # google, duckduckgo, bing, baidu, brave or custom +``` + +or for a custom search: + +```yaml +quicklaunch: + provider: custom + url: https://www.ecosia.org/search?q= + target: _blank + suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q= +``` + +## Homepage Version & Update Checking + +By default the release version is displayed at the bottom of the page. To hide this, use the `hideVersion` setting, like so: + +```yaml +hideVersion: true +``` + +You can disable checking for new versions from GitHub (enabled by default) with: + +```yaml +disableUpdateCheck: true +``` + +## Log Path + +By default the homepage logfile is written to the a `logs` subdirectory of the `config` folder. In order to customize this path, you can set the `logpath` setting. A `logs` folder will be created in that location where the logfile will be written. + +```yaml +logpath: /logfile/path +``` + +By default, logs are sent both to `stdout` and to a file at the path specified. This can be changed by setting the `LOG_TARGETS` environment variable to one of `both` (default), `stdout` or `file`. + +## Show Docker Stats + +You can show all docker stats expanded in `settings.yaml`: + +```yaml +showStats: true +``` + +or per-service (`services.yaml`) with: + +```yaml +- Example Service: + ... + showStats: true +``` + +If you have both set the per-service settings take precedence. + +## Status Style + +You can choose from the following styles for docker or k8s status, site monitor and ping: `dot` or `basic` + +- The default is no value, and displays the monitor and ping response time in ms and the docker / k8s container status +- `dot` shows a green dot for a successful monitor ping or healthy status. +- `basic` shows either UP or DOWN for monitor & ping + +For example: + +```yaml +statusStyle: "dot" +``` + +or per-service (`services.yaml`) with: + +```yaml +- Example Service: + ... + statusStyle: 'dot' +``` + +If you have both set, the per-service settings take precedence. + +## Instance Name + +Name used by automatic docker service discovery to differentiate between multiple homepage instances. + +For example: + +```yaml +instanceName: public +``` + +## Hide Widget Error Messages + +Hide the visible API error messages either globally in `settings.yaml`: + +```yaml +hideErrors: true +``` + +or per service widget (`services.yaml`) with: + +```yaml +- Example Service: + ... + widget: + ... + hideErrors: true +``` + +If either value is set to true, the error message will be hidden. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..31a84e8c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,32 @@ +--- +title: Home +description: A modern, fully static, fast, secure, fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. +icon: material/home +hide: + - navigation + - toc + - path +--- + +# + +
+ +
+ +homepage + +homepage + +

A modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.

+ +
+ + diff --git a/docs/installation/docker.md b/docs/installation/docker.md new file mode 100644 index 00000000..6d9148dd --- /dev/null +++ b/docs/installation/docker.md @@ -0,0 +1,58 @@ +--- +title: Docker Installation +description: Install and run homepage from Docker +--- + +Using docker compose: + +```yaml +services: + homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + ports: + - 3000:3000 + volumes: + - /path/to/config:/app/config # Make sure your local config directory exists + - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations + environment: + HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts +``` + +### Running as non-root + +By default, the Homepage container runs as root. Homepage also supports running your container as non-root via the standard `PUID` and `PGID` environment variables. When using these variables, make sure that any volumes mounted in to the container have the correct ownership and permissions set. + +_Using the docker socket directly is not the recommended method of integration and requires either running homepage as root or that the user be part of the docker group_ + +In the docker compose example below, the environment variables `$PUID` and `$PGID` are set in a `.env` file. + +```yaml +services: + homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + ports: + - 3000:3000 + volumes: + - /path/to/config:/app/config # Make sure your local config directory exists + - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations, see alternative methods + environment: + HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts + PUID: $PUID + PGID: $PGID +``` + +### With Docker Run + +```bash +docker run -p 3000:3000 -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest +``` + +### Using Environment Secrets + +You can also include environment variables in your config files to protect sensitive information. Note: + +- Environment variables must start with `HOMEPAGE_VAR_` or `HOMEPAGE_FILE_` +- The value of env var `HOMEPAGE_VAR_XXX` will replace `{{HOMEPAGE_VAR_XXX}}` in any config +- The value of env var `HOMEPAGE_FILE_XXX` must be a file path, the contents of which will be used to replace `{{HOMEPAGE_FILE_XXX}}` in any config diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 00000000..f082845b --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1,40 @@ +--- +title: Installation +description: Docs intro +icon: simple/docker +--- + +You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm. + +!!! info + + Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN. + +
+ +
+[:simple-docker:   Install on Docker :octicons-arrow-right-24:](docker.md) +{ .card } + +[:simple-kubernetes:   Install on Kubernetes :octicons-arrow-right-24:](k8s.md) +{ .card } + +[:simple-unraid:   Install on UNRAID :octicons-arrow-right-24:](unraid.md) +{ .card } + +[:simple-nextdotjs:   Building from source :octicons-arrow-right-24:](source.md) +{ .card } + +
+ +### `HOMEPAGE_ALLOWED_HOSTS` + +As of v1.0 there is one required environment variable to access homepage via a URL other than `localhost`, HOMEPAGE_ALLOWED_HOSTS. The setting helps prevent certain kinds of attacks when retrieving data from the homepage API proxy. + +The value is a comma-separated (no spaces) list of allowed hosts (sometimes with the port) that can host your homepage install. See the [docker](docker.md), [kubernetes](k8s.md) and [source](source.md) installation pages for more information about where / how to set the variable. + +`localhost:3000` and `127.0.0.1:3000` are always included, but you can add a domain or IP address to this list to allow that host such as `HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,192.168.1.2:1234`, etc. + +If you are seeing errors about host validation, check the homepage logs and ensure that the host exactly as output in the logs is in the `HOMEPAGE_ALLOWED_HOSTS` list. + +This can be disabled by setting `HOMEPAGE_ALLOWED_HOSTS` to `*` but this is not recommended. diff --git a/docs/installation/k8s.md b/docs/installation/k8s.md new file mode 100644 index 00000000..172b9b29 --- /dev/null +++ b/docs/installation/k8s.md @@ -0,0 +1,326 @@ +--- +title: Kubernetes Installation +description: Install on Kubernetes +--- + +## Install with Kubernetes Manifests + +If you don't want to use the unofficial Helm chart, you can also create your own Kubernetes manifest(s) and apply them with `kubectl apply -f filename.yaml`. + +Here's a working example of the resources you need: + +#### ServiceAccount + +```yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage +secrets: + - name: homepage +``` + +#### Secret + +```yaml +apiVersion: v1 +kind: Secret +type: kubernetes.io/service-account-token +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage + annotations: + kubernetes.io/service-account.name: homepage +``` + +#### ConfigMap + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage +data: + kubernetes.yaml: | + mode: cluster + settings.yaml: "" + #settings.yaml: | + # providers: + # longhorn: + # url: https://longhorn.my.network + custom.css: "" + custom.js: "" + bookmarks.yaml: | + - Developer: + - Github: + - abbr: GH + href: https://github.com/ + services.yaml: | + - My First Group: + - My First Service: + href: http://localhost/ + description: Homepage is awesome + + - My Second Group: + - My Second Service: + href: http://localhost/ + description: Homepage is the best + + - My Third Group: + - My Third Service: + href: http://localhost/ + description: Homepage is 😎 + widgets.yaml: | + - kubernetes: + cluster: + show: true + cpu: true + memory: true + showLabel: true + label: "cluster" + nodes: + show: true + cpu: true + memory: true + showLabel: true + - resources: + backend: resources + expanded: true + cpu: true + memory: true + network: default + - search: + provider: duckduckgo + target: _blank + docker.yaml: "" +``` + +#### ClusterRole and ClusterRoleBinding + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: homepage + labels: + app.kubernetes.io/name: homepage +rules: + - apiGroups: + - "" + resources: + - namespaces + - pods + - nodes + verbs: + - get + - list + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - apiGroups: + - traefik.io + resources: + - ingressroutes + verbs: + - get + - list + - apiGroups: + - gateway.networking.k8s.io + resources: + - httproutes + - gateways + verbs: + - get + - list + - apiGroups: + - metrics.k8s.io + resources: + - nodes + - pods + verbs: + - get + - list +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: homepage + labels: + app.kubernetes.io/name: homepage +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: homepage +subjects: + - kind: ServiceAccount + name: homepage + namespace: default +``` + +#### Service + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage + annotations: +spec: + type: ClusterIP + ports: + - port: 3000 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: homepage +``` + +#### Deployment + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage +spec: + revisionHistoryLimit: 3 + replicas: 1 + strategy: + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: homepage + template: + metadata: + labels: + app.kubernetes.io/name: homepage + spec: + serviceAccountName: homepage + automountServiceAccountToken: true + dnsPolicy: ClusterFirst + enableServiceLinks: true + containers: + - name: homepage + image: "ghcr.io/gethomepage/homepage:latest" + imagePullPolicy: Always + env: + - name: HOMEPAGE_ALLOWED_HOSTS + value: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts + ports: + - name: http + containerPort: 3000 + protocol: TCP + volumeMounts: + - mountPath: /app/config/custom.js + name: homepage-config + subPath: custom.js + - mountPath: /app/config/custom.css + name: homepage-config + subPath: custom.css + - mountPath: /app/config/bookmarks.yaml + name: homepage-config + subPath: bookmarks.yaml + - mountPath: /app/config/docker.yaml + name: homepage-config + subPath: docker.yaml + - mountPath: /app/config/kubernetes.yaml + name: homepage-config + subPath: kubernetes.yaml + - mountPath: /app/config/services.yaml + name: homepage-config + subPath: services.yaml + - mountPath: /app/config/settings.yaml + name: homepage-config + subPath: settings.yaml + - mountPath: /app/config/widgets.yaml + name: homepage-config + subPath: widgets.yaml + - mountPath: /app/config/logs + name: logs + volumes: + - name: homepage-config + configMap: + name: homepage + - name: logs + emptyDir: {} +``` + +#### Ingress + +```yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: homepage + namespace: default + labels: + app.kubernetes.io/name: homepage + annotations: + gethomepage.dev/description: Dynamically Detected Homepage + gethomepage.dev/enabled: "true" + gethomepage.dev/group: Cluster Management + gethomepage.dev/icon: homepage.png + gethomepage.dev/name: Homepage +spec: + rules: + - host: "homepage.my.network" + http: + paths: + - path: "/" + pathType: Prefix + backend: + service: + name: homepage + port: + number: 3000 +``` + +### Multiple Replicas + +If you plan to deploy homepage with a replica count greater than 1, you may +want to consider enabling sticky sessions on the homepage route. This will +prevent unnecessary re-renders on page loads and window / tab focusing. The +procedure for enabling sticky sessions depends on your Ingress controller. Below +is an example using Traefik as the Ingress controller. + +```yaml +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: homepage.example.com +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`homepage.example.com`) + services: + - kind: Service + name: homepage + port: 3000 + sticky: + cookie: + httpOnly: true + secure: true + sameSite: none +``` diff --git a/docs/installation/source.md b/docs/installation/source.md new file mode 100644 index 00000000..fd0275a7 --- /dev/null +++ b/docs/installation/source.md @@ -0,0 +1,35 @@ +--- +title: Source Installation +description: Install and run homepage from source +--- + +First, clone the repository: + +```bash +git clone https://github.com/gethomepage/homepage.git +``` + +If `pnpm` is not installed, install it: + +```bash +npm install -g pnpm +``` + +Then install dependencies and build the production bundle: + +```bash +pnpm install +pnpm build +``` + +If this is your first time starting, copy the `src/skeleton` directory to `config/` to populate initial example config files. + +Finally, run the server: + +```bash +HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:1234 pnpm start +``` + +When updating homepage versions you will need to re-build the static files i.e. repeat the process above. + +See [HOMEPAGE_ALLOWED_HOSTS](index.md#homepage_allowed_hosts) for more information on this environment variable. diff --git a/docs/installation/unraid.md b/docs/installation/unraid.md new file mode 100644 index 00000000..ed097d35 --- /dev/null +++ b/docs/installation/unraid.md @@ -0,0 +1,45 @@ +--- +title: UNRAID Installation +description: Install and run homepage on UNRAID +--- + +Homepage has an UNRAID community package that you may use to install homepage. This is the easiest way to get started with homepage on UNRAID. + +## Install the Plugin + +- In the UNRAID webGUI, go to the **Apps** tab. +- In the search bar, search for `homepage`. +- Click on **Install**. +- Change the parameters to your liking. + - Click on **APPLY**. + +## Run the Container + +- While the container is running, open the WebUI. + - Opening the page will generate the configuration files. + +You may need to set the permissions of the folders to be able to edit the files. + +- Click on the Homepage icon. +- Click on **Console**. + - Enter `chmod -R u-x,go-rwx,go+u,ugo+X /app/config` and press **Enter**. + - Enter `chmod -R u-x,go-rwx,go+u,ugo+X /app/public/icons` and press **Enter**. + - Enter `chown -R nobody:users /app/config` and press **Enter**. + - Enter `chown -R nobody:users /app/public/icons` and press **Enter**. + +## Some Other Notes + +- To use the [Docker integration](../configs/docker.md), you only need to use the `container:` parameter. There is no need to set the server. + +!!! note + + To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example: + +``` + - Plex: + icon: /icons/plex.png + href: https://app.plex.com + container: plex +``` + +- When you upload a new image into the **/images** folder, you will need to restart the container for it to show up in the WebUI. Please see the [service icons](../configs/services.md#icons) for more information. diff --git a/docs/layouts/custom.yml b/docs/layouts/custom.yml new file mode 100644 index 00000000..d8e36c10 --- /dev/null +++ b/docs/layouts/custom.yml @@ -0,0 +1,252 @@ +# Copyright (c) 2016-2024 Martin Donath + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +# ----------------------------------------------------------------------------- +# Configuration +# ----------------------------------------------------------------------------- + +# Definitions +definitions: + # Background image + - &background_image >- + {{ layout.background_image | x }} + + # Background color (default: indigo) + - &background_color >- + {%- if layout.background_color -%} + {{ layout.background_color }} + {%- else -%} + {%- set palette = config.theme.palette or {} -%} + {%- if not palette is mapping -%} + {%- set list = palette | selectattr("primary") | list + palette -%} + {%- set palette = list | first -%} + {%- endif -%} + {%- set primary = palette.get("primary", "indigo") -%} + {%- set primary = primary.replace(" ", "-") -%} + {{ { + "red": "#ef5552", + "pink": "#e92063", + "purple": "#ab47bd", + "deep-purple": "#7e56c2", + "indigo": "#4051b5", + "blue": "#2094f3", + "light-blue": "#02a6f2", + "cyan": "#00bdd6", + "teal": "#009485", + "green": "#4cae4f", + "light-green": "#8bc34b", + "lime": "#cbdc38", + "yellow": "#ffec3d", + "amber": "#ffc105", + "orange": "#ffa724", + "deep-orange": "#ff6e42", + "brown": "#795649", + "grey": "#757575", + "blue-grey": "#546d78", + "black": "#000000", + "white": "#ffffff" + }[primary] or "#4051b5" }} + {%- endif -%} + + # Text color (default: white) + - &color >- + {%- if layout.color -%} + {{ layout.color }} + {%- else -%} + {%- set palette = config.theme.palette or {} -%} + {%- if not palette is mapping -%} + {%- set list = palette | selectattr("primary") | list + palette -%} + {%- set palette = list | first -%} + {%- endif -%} + {%- set primary = palette.get("primary", "indigo") -%} + {%- set primary = primary.replace(" ", "-") -%} + {{ { + "red": "#ffffff", + "pink": "#ffffff", + "purple": "#ffffff", + "deep-purple": "#ffffff", + "indigo": "#ffffff", + "blue": "#ffffff", + "light-blue": "#ffffff", + "cyan": "#ffffff", + "teal": "#ffffff", + "green": "#ffffff", + "light-green": "#ffffff", + "lime": "#000000", + "yellow": "#000000", + "amber": "#000000", + "orange": "#000000", + "deep-orange": "#ffffff", + "brown": "#ffffff", + "grey": "#ffffff", + "blue-grey": "#ffffff", + "black": "#ffffff", + "white": "#000000" + }[primary] or "#ffffff" }} + {%- endif -%} + + # Font family (default: Roboto) + - &font_family >- + {%- if layout.font_family -%} + {{ layout.font_family }} + {%- elif config.theme.font is mapping -%} + {{ config.theme.font.get("text", "Roboto") }} + {%- else -%} + Roboto + {%- endif -%} + + # Font variant + - &font_variant >- + {%- if layout.font_variant -%} + {{ layout.font_variant }} + {%- endif -%} + + # Site name + - &site_name >- + {{ config.site_name }} + + # Page title + - &page_title >- + {%- if layout.title -%} + {{ layout.title }} + {%- else -%} + {{ page.meta.get("title", page.title) }} + {%- endif -%} + + # Page title with site name + - &page_title_with_site_name >- + {%- if not page.is_homepage -%} + {{ page.meta.get("title", page.title) }} - {{ config.site_name }} + {%- else -%} + {{ page.meta.get("title", page.title) }} + {%- endif -%} + + # Page description + - &page_description >- + {%- if layout.description -%} + {{ layout.description }} + {%- else -%} + {{ page.meta.get("description", config.site_description) | x }} + {%- endif -%} + + # Page icon + - &page_icon >- + {{ page.meta.icon | x }} + + # Logo + - &logo >- + {%- if layout.logo -%} + {{ layout.logo }} + {%- elif config.theme.logo -%} + {{ config.docs_dir }}/{{ config.theme.logo }} + {%- endif -%} + + # Logo (icon) + - &logo_icon >- + {%- if not layout.logo and config.theme.icon -%} + {{ config.theme.icon.logo | x }} + {%- endif -%} + +# Meta tags +tags: + # Open Graph + og:type: website + og:title: *page_title_with_site_name + og:description: *page_description + og:image: "{{ image.url }}" + og:image:type: "{{ image.type }}" + og:image:width: "{{ image.width }}" + og:image:height: "{{ image.height }}" + og:url: "{{ page.canonical_url }}" + + # Twitter + twitter:card: summary_large_image + twitter:title: *page_title_with_site_name + twitter:description: *page_description + twitter:image: "{{ image.url }}" + +# ----------------------------------------------------------------------------- +# Specification +# ----------------------------------------------------------------------------- + +# Card size and layers +size: { width: 1200, height: 630 } +layers: + # Background + - background: + image: *background_image + color: *background_color + + # Page icon + - size: { width: 630, height: 630 } + offset: { x: 800, y: 0 } + icon: + value: *page_icon + color: "#FFFFFF20" + + # Logo + - size: { width: 64, height: 64 } + offset: { x: 64, y: 64 } + background: + image: *logo + icon: + value: *logo_icon + color: *color + + # Site name + - size: { width: 768, height: 42 } + offset: { x: 160, y: 74 } + typography: + content: *site_name + color: *color + font: + family: *font_family + variant: *font_variant + style: Bold + + # Page title + - size: { width: 864, height: 256 } + offset: { x: 62, y: 192 } + typography: + content: *page_title + align: start + color: *color + line: + amount: 3 + height: 1.25 + font: + family: *font_family + variant: *font_variant + style: Bold + + # Page description + - size: { width: 864, height: 64 } + offset: { x: 64, y: 512 } + typography: + content: *page_description + align: start + color: *color + line: + amount: 2 + height: 1.5 + font: + family: *font_family + variant: *font_variant + style: Regular diff --git a/docs/more/coverage.md b/docs/more/coverage.md new file mode 100644 index 00000000..65a1a866 --- /dev/null +++ b/docs/more/coverage.md @@ -0,0 +1,57 @@ +--- +title: Community Coverage +description: Homepage has been covered by quite a few YouTube channels, here are some of them. +--- + +Homepage has been covered by quite a few YouTube channels, here are some of them. If you have a video you'd like to add, please open a PR! + +## English + +
+ +[![Youtube Video](https://img.youtube.com/vi/mC3tjysJ01E/maxresdefault.jpg)](https://www.youtube.com/watch?v=mC3tjysJ01E) + +[![Youtube Video](https://img.youtube.com/vi/o9SLve4wBPY/maxresdefault.jpg)](https://www.youtube.com/watch?v=o9SLve4wBPY) + +[![Youtube Video](https://img.youtube.com/vi/j9kbQucNwlc/maxresdefault.jpg)](https://www.youtube.com/watch?v=j9kbQucNwlc) + +[![Youtube Video](https://img.youtube.com/vi/3Ux7zfCCM1A/maxresdefault.jpg)](https://www.youtube.com/watch?v=3Ux7zfCCM1A) + +[![Youtube Video](https://img.youtube.com/vi/4AwUNy2eztA/maxresdefault.jpg)](https://www.youtube.com/watch?v=4AwUNy2eztA) + +[![Youtube Video](https://img.youtube.com/vi/7mUUCB3kP0E/maxresdefault.jpg)](https://www.youtube.com/watch?v=7mUUCB3kP0E) + +[![Youtube Video](https://img.youtube.com/vi/a5-4u0qFKaE/maxresdefault.jpg)](https://www.youtube.com/watch?v=a5-4u0qFKaE) + +[![Youtube Video](https://img.youtube.com/vi/tV7-06FU4gQ/maxresdefault.jpg)](https://www.youtube.com/watch?v=tV7-06FU4gQ) + +[![Youtube Video](https://img.youtube.com/vi/X2ycbT7rPu4/maxresdefault.jpg)](https://www.youtube.com/watch?v=X2ycbT7rPu4) + +[![Youtube Video](https://img.youtube.com/vi/1jEWUJqL-eo/maxresdefault.jpg)](https://www.youtube.com/watch?v=1jEWUJqL-eo) + +
+ +
+ +
+## French +[![Youtube Video](https://img.youtube.com/vi/aGztk8you6o/maxresdefault.jpg)](https://www.youtube.com/watch?v=aGztk8you6o) +[![Youtube Video](https://img.youtube.com/vi/pQfhWqZh7YE/maxresdefault.jpg)](https://www.youtube.com/watch?v=pQfhWqZh7YE) +
+ +
+## German +[![Youtube Video](https://img.youtube.com/vi/DrDgg-WRA2g/maxresdefault.jpg)](https://www.youtube.com/watch?v=DrDgg-WRA2g) +
+ +
+## Chinese +[![Youtube Video](https://img.youtube.com/vi/DAW15ckt4n4/mqdefault.jpg){: style="width: 100%"}](https://www.youtube.com/watch?v=DAW15ckt4n4) +
+ +
+## Russian +[![Youtube Video](https://img.youtube.com/vi/dk3Cp5ck8mY/maxresdefault.jpg)](https://www.youtube.com/watch?v=dk3Cp5ck8mY) +
+ +
diff --git a/docs/more/homepage-move.md b/docs/more/homepage-move.md new file mode 100644 index 00000000..061fd21b --- /dev/null +++ b/docs/more/homepage-move.md @@ -0,0 +1,8 @@ +--- +title: Homepage Move +description: Homepage Container Deprecation +--- + +As of v0.7.2 homepage migrated from benphelps/homepage to an "organization" repository located at [gethomepage/homepage](https://github.com/gethomepage/homepage/). The reason for this was to setup the project for longevity and allow for community maintenance. + +Migrating your installation should be as simple as changing `image: ghcr.io/benphelps/homepage:latest` to `image: ghcr.io/gethomepage/homepage:latest`. diff --git a/docs/more/index.md b/docs/more/index.md new file mode 100644 index 00000000..402029b3 --- /dev/null +++ b/docs/more/index.md @@ -0,0 +1,7 @@ +--- +title: More +description: More homepage resources and guides. +icon: material/information-slab-circle +--- + +Here you'll find resources and guides for Homepage, troubleshooting tips, and more. diff --git a/docs/more/sponsors.md b/docs/more/sponsors.md new file mode 100644 index 00000000..bb877a6c --- /dev/null +++ b/docs/more/sponsors.md @@ -0,0 +1,58 @@ +--- +title: Sponsors +description: Homepage is supported by these awesome people and companies. +--- + +If you would like to support the Homepage project, you can do so by becoming a sponsor. Your sponsorship helps to keep the project running and growing. + +
+ +[:simple-github: GitHub Sponsors](https://github.com/sponsors/gethomepage){ .md-button } + +[:simple-opencollective: OpenCollective](https://opencollective.com/homepage){ .md-button } + +[:simple-patreon: Patreon](https://www.patreon.com/gethomepage){ .md-button .w-full } + +
+ +
+ +These companies help the Homepage project by providing services, tools, and resources. + +
+
+ DigitalOcean +

+ DigitalOcean provides the GitHub Actions runner for the project. Dramatically speeding up the CI/CD process. +

+
+ +
+ Crowdin +

+ Crowdin provides the translation platform for the project. Making it easy to translate the project into multiple languages. +

+
+ +
+ JetBrains +

+ JetBrains provides the project with free licenses for their awesome tools. +

+
+ +
+ BuySellAds +

+ BuySellAds provides the project with the ability to monetize the website, with high quality ads from the CarbonAds network. All earnings are sent directly to the projects OpenCollective. +

+
+
+ + diff --git a/docs/more/translations.md b/docs/more/translations.md new file mode 100644 index 00000000..824d6cb6 --- /dev/null +++ b/docs/more/translations.md @@ -0,0 +1,19 @@ +--- +title: Translations +description: Contributing Translations +--- + +Homepage is developed in English, component contributions must be in English. All translations are community provided, so a huge thanks go out to all those who have helped out so far! + +## Support Translations + +If you'd like to lend a hand in translating Homepage into more languages, or to improve existing translations, the process is very simple: + +1. Create a free account at [Crowdin](https://crowdin.com/join) +2. Visit the [Homepage project](https://crowdin.com/project/gethomepage) +3. Select the language you'd like to translate +4. Start translating! + +## Adding a new language + +If you'd like to add a new language, please [create a new Discussion on Crowdin](https://crowdin.com/project/gethomepage/discussions), and we'll add it to the project. diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 00000000..7150c1b7 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,52 @@ +{% extends "base.html" %} + +{% block header %} +
+ {% include "partials/header.html" %} +{% endblock %} + +{% block site_nav %} + + {% if nav %} + {% if page.meta and page.meta.hide %} + {% set hidden = "hidden" if "navigation" in page.meta.hide %} + {% endif %} + + {% endif %} + + + {% if "toc.integrate" not in features %} + {% if page.meta and page.meta.hide %} + {% set hidden = "hidden" if "toc" in page.meta.hide %} + {% endif %} + + {% endif %} +{% endblock %} diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 00000000..7f299d2e --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,298 @@ +[data-md-color-scheme="slate"] { + --md-hue: 220; + --md-default-bg-color: hsla(0, 0%, 14%, 0.6); + --md-code-bg-color: hsla(0, 0%, 0%, 0.2); +} + +[data-md-color-scheme="default"] { + --md-hue: 220; + --md-default-fg-color--light: white; + --md-default-fg-color--lighter: hsla(0, 0%, 100%, 0.6); + --md-default-bg-color: hsla(0, 0%, 100%, 0.8); + --md-code-bg-color: hsla(0, 0%, 100%, 0.6); + --md-code-bg-color--lighter: hsla(0, 0%, 100%, 0.6); + --md-default-fg-color: white; +} + +[data-md-color-scheme="default"] .md-search__inner { + --md-default-fg-color--light: gray; + --md-default-fg-color--lighter: black; + --md-default-bg-color: hsla(0, 0%, 100%, 0.9); +} + +[data-md-color-scheme="default"] .md-search__inner .md-search__input { + color: var(--md-default-fg-color--light); +} + +[data-md-toggle="search"]:not(:checked) ~ .md-header .md-search__form::after { + position: absolute; + top: 0.3rem; + right: 0.3rem; + display: block; + padding: 0.1rem 0.4rem; + color: var(--md-default-fg-color--lighter); + font-weight: bold; + font-size: 0.8rem; + border: 0.05rem solid var(--md-default-fg-color--lighter); + border-radius: 0.1rem; + content: "/"; +} + +[data-md-color-scheme="default"][data-md-color-primary="black"] { + [data-md-toggle="search"]:not(:checked) ~ .md-header .md-search__form::after { + color: var(--md-default-bg-color--lighter); + border-color: var(--md-default-bg-color--lighter); + } +} + +#carbonads { + margin-top: 10px; +} + +#carbon-responsive { + --carbon-padding: 1em; + --carbon-max-char: 20ch; + --carbon-bg-primary: var(--md-default-bg-color) !important; + --carbon-bg-secondary: var(--md-default-fg-color--lightest) !important; + --carbon-text-color: var(--md-typeset-color) !important; +} + +[data-md-color-scheme="default"] .carbon-text { + color: var(--md-code-fg-color) !important; + --carbon-text-color: #313131 !important; +} + +.md-typeset__table { + width: 100%; +} + +.md-typeset table:not([class]) { + display: table; +} + +/* less than 1440px wide */ +@media (max-width: 1440px) { + .md-footer-meta__inner { + justify-content: center; + } +} + +/* less than 740px wide */ +@media (max-width: 740px) { + .md-footer-meta__inner { + justify-content: left; + flex-direction: column; + } + .md-social { + padding-top: 0; + } +} + +.md-header__button.md-logo { + padding: 0; + margin: 0; +} + +.md-header__button.md-logo img, +.md-header__button.md-logo svg { + height: 2rem; +} + +.md-header__topic .md-ellipsis { + display: none; +} + +body { + background-color: transparent !important; + background-image: url("https://raw.githubusercontent.com/gethomepage/homepage/main/docs/assets/blossom_valley.jpg"); + background-size: cover; + background-attachment: fixed; + background-position: center; + color: rgba(255, 255, 255, 0.8); +} + +.md-typeset h1 { + color: #fff; +} + +body[data-md-color-scheme="default"] { + color: rgba(255, 255, 255, 1); +} + +.blur-overlay { + z-index: -1; + position: fixed; + width: 100%; + height: 100%; + background: hsl(0deg 0% 0% / 10%); + backdrop-filter: blur(128px); + -webkit-backdrop-filter: blur(128px); +} + +[data-md-color-scheme="default"] .blur-overlay { + background: hsla(0, 0%, 0%, 0); +} + +.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link, +.md-nav--secondary .md-nav__title { + background: none; + box-shadow: none; +} + +[data-md-color-scheme="slate"] .md-main, +[data-md-color-scheme="slate"] .md-tabs, +[data-md-color-scheme="slate"] .md-footer { + background-color: hsla(0, 0%, 0%, 0.3); +} + +[data-md-color-scheme="default"] .md-main, +[data-md-color-scheme="default"] .md-tabs, +[data-md-color-scheme="default"] .md-footer { + background-color: hsla(0, 0%, 100%, 0.1); +} + +[data-md-color-scheme="slate"] .md-header { + background-color: hsla(0, 0%, 0%, 0.3); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); +} + +[data-md-color-scheme="default"] .md-header { + background-color: hsla(0, 0%, 100%, 0.1); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); +} + +.md-header:has(.md-search-result__item), +.md-header:has(.md-search__input.focus-visible) { + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; +} + +.md-footer-meta { + background-color: transparent; +} + +[data-md-color-scheme="slate"][data-md-color-primary="black"], +[data-md-color-scheme="default"][data-md-color-primary="black"] { + --md-typeset-a-color: #ffffff; +} + +.md-content__inner a { + text-decoration: underline; + font-weight: bolder; +} + +[data-md-color-scheme="default"] .highlight .p, +[data-md-color-scheme="default"] .highlight .o, +[data-md-color-scheme="default"] .highlight .ow, +[data-md-color-scheme="default"] .highlight .c, +[data-md-color-scheme="default"] .highlight .c1, +[data-md-color-scheme="default"] .highlight .ch, +[data-md-color-scheme="default"] .highlight .cm, +[data-md-color-scheme="default"] .highlight .cs, +[data-md-color-scheme="default"] .highlight .sd { + color: #36464eaa; +} + +[data-md-color-scheme="default"] .md-annotation__index:after { + background-color: #36464ecc; +} + +/* I know this is a farce, but I want it to look nice. */ +.css-9if7bc { + background-color: hsla(0, 0%, 0%, 0.3); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); +} + +@media screen and (max-width: 76.234375em) { + .md-nav--primary, + .md-nav--primary .md-nav { + background-color: hsla(0, 0%, 0%, 0.8); + } +} + +@media screen and (max-width: 76.234375em) { + .md-nav--primary .md-nav__title ~ .md-nav__list { + background-color: hsla(0, 0%, 0%, 0.8); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + } +} + +@media screen and (max-width: 76.234375em) { + .md-nav--primary .md-nav__title { + background-color: hsla(0, 0%, 0%, 0.8); + backdrop-filter: blur(16px); + } +} + +.md-search__scrollwrap { + background-color: hsla(0, 0%, 0%, 0.8); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); +} + +.md-search-result .md-typeset h1 { + color: #fff; +} + +[data-md-color-scheme="default"] .highlight span.filename, +[data-md-color-scheme="default"] .linenodiv a { + color: #36464e; + font-weight: light; +} + +.linenodiv a { + text-decoration: none; +} + +.md-typeset .admonition, +.md-typeset details { + background-color: transparent; +} + +.md-typeset img, +.md-typeset svg, +.md-typeset video { + box-shadow: 0 0 1rem 0.25rem hsla(0, 0%, 0%, 0.1); +} + +.highlight { + box-shadow: 0 0 1rem 0.25rem hsla(0, 0%, 0%, 0.1); +} + +.md-typeset .admonition.tip, +.md-typeset details.tip { + box-shadow: 0 0 1rem 0.25rem hsl(171.83deg 100% 37.45% / 20%); +} + +.md-typeset .admonition.note, +.md-typeset details.note { + box-shadow: 0 0 1rem 0.25rem hsl(214.29deg 100% 37.45% / 20%); +} + +.md-typeset .admonition.warning, +.md-typeset details.warning { + box-shadow: 0 0 1rem 0.25rem hsl(40.91deg 100% 37.45% / 20%); +} + +.md-typeset .admonition.danger, +.md-typeset details.danger { + box-shadow: 0 0 1rem 0.25rem hsl(0deg 100% 37.45% / 20%); +} + +.md-tabs__link { + transform: translateZ(0); +} + +.grid.cards .card { + padding: 0; +} + +.grid.cards .card a { + display: block; + padding: 0.8rem; + text-decoration: none; +} diff --git a/docs/troubleshooting/index.md b/docs/troubleshooting/index.md new file mode 100644 index 00000000..81550439 --- /dev/null +++ b/docs/troubleshooting/index.md @@ -0,0 +1,83 @@ +--- +title: Troubleshooting +description: Basic Troubleshooting +icon: material/message-question +hide: + - navigation +--- + +## General Troubleshooting Tips + +- For API errors, clicking the "API Error Information" button in the widget will usually show some helpful information as to whether the issue is reaching the service host, an authentication issue, etc. +- Check config/logs/homepage.log, on docker simply e.g. `docker logs homepage`. This may provide some insight into the reason for an error. +- Check the browser error console, this can also sometimes provide useful information. +- Consider setting the `ENV` variable `LOG_LEVEL` to `debug`. +- If certain widgets are failing when connecting to public APIs, consider [disabling IPv6](#disabling-ipv6). + +## Service Widget Errors + +All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to check: + +1. URLs should not end with a / or other API path. Each widget will handle the path on its own. + +2. All services with a widget require a unique name. + +3. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.: + + ``` + docker exec homepage ping SERVICEIPORDOMAIN + ``` + + If your homepage install (container) cannot reach the service then you need to figure out why, for example in Docker this can mean putting the two containers on the same network, checking firewall issues, etc. + +4. If you have verified that homepage can in fact reach the service then you can also check the API output using e.g. `curl`, which is often helpful if you do need to file a bug report. Again, depending on your networking setup this may need to be run from _inside the container_ as IP / hostname resolution can differ inside vs outside. + + !!! note + + `curl` is not installed in the base image by default but can be added inside the container with `apk add curl`. + + The exact API endpoints and authentication vary of course, but in many cases instructions can be found by searching the web or if you feel comfortable looking at the homepage source code (e.g. `src/widgets/{widget}/widget.js`). + + It is out of the scope of this to go into full detail about how to , but an example for PiHole would be: + + ``` + curl -L -k http://PIHOLEIPORHOST/admin/api.php + ``` + + Or for AdGuard: + + ``` + curl -L -k -u 'username:password' http://ADGUARDIPORHOST/control/stats + ``` + + Or for Portainer: + + ``` + curl -L -k -H 'X-Api-Key:YOURKEY' 'https://PORTAINERIPORHOST:PORT/api/endpoints/2/docker/containers/json' + ``` + + Sonarr: + + ``` + curl -L -k 'http://SONARRIPORHOST:PORT/api/v3/queue?apikey=YOURAPIKEY' + ``` + + This will return some data which may reveal an issue causing a true bug in the service widget. + +## Missing custom icons + +If, after correctly adding and mapping your custom icons via the [Icons](../configs/services.md#icons) instructions, you are still unable to see your icons please try recreating your container. + +## Disabling IPv6 + +If you are having issues with certain widgets that are unable to reach public APIs (e.g. weather), in certain setups you may need to disable IPv6. You can set the environment variable `HOMEPAGE_PROXY_DISABLE_IPV6` to `true` to disable IPv6 for the homepage proxy. + +Alternatively, you can use the `sysctls` option in your docker-compose file to disable IPv6 for the homepage container completely: + +```yaml +services: + homepage: + ... + sysctls: + - net.ipv6.conf.all.disable_ipv6=1 +``` diff --git a/docs/widgets/authoring/api.md b/docs/widgets/authoring/api.md new file mode 100644 index 00000000..54927da8 --- /dev/null +++ b/docs/widgets/authoring/api.md @@ -0,0 +1,50 @@ +--- +title: API Guide +description: Get comfortable with making API calls from inside your widget. +--- + +Homepage provides the `useWidgetAPI` hook to help you fetch data from an API. This hook insures that the data is fetched using a proxy, and is critical for security. + +Here is an example of how the `useWidgetAPI` hook looks: + +```js title="Fetch data from the stats endpoint" +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { data, error } = useWidgetAPI(widget, "stats"); +} +``` + +## `useWidgetAPI` + +`useWidgetAPI` takes three possible arguments: + +- `widget`: The widget metadata object. +- `endpoint`: The name of the endpoint to fetch data from. +- `params`: An optional object containing query parameters to pass to the API. + +### `widget` + +The `widget` argument is the metadata object for the widget. It contains information about the API endpoint, proxy handler, and mappings. This object is used by the `useWidgetAPI` hook to fetch data from the API. This is generally passed in as a prop from the parent component. + +### `endpoint` + +The `endpoint` argument is the name of the endpoint to fetch data from. This is [defined in the widget metadata object](metadata.md#endpoint). The `useWidgetAPI` hook uses this argument to determine which endpoint to fetch data from. + +If no endpoint is provided, the `useWidgetAPI` hook will call the API endpoint defined in the widget metadata object directly. + +### `params` + +The `params` argument is an optional object containing query parameters to pass to the API. This is useful for filtering data or passing additional information to the API. This object is passed directly to the API endpoint as query parameters. + +Here is an example of how to use the `params` argument: + +```js title="Fetch data from the stats endpoint with query parameters" +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { data, error } = useWidgetAPI(widget, "stats", { start: "2021-01-01", end: "2021-12-31" }); +} +``` + +The `params` must be [whitelisted in the widget metadata object](metadata.md#params). This is done to prevent arbitrary query parameters from being passed to the API. diff --git a/docs/widgets/authoring/component.md b/docs/widgets/authoring/component.md new file mode 100644 index 00000000..1e20cbbf --- /dev/null +++ b/docs/widgets/authoring/component.md @@ -0,0 +1,102 @@ +--- +title: Component Guide +description: Learn more about the widget component in Homepage, and how to build your widget UI. +--- + +Homepage widgets are built using React components. These components are responsible for fetching data from the API and rendering the widget UI. Homepage provides a set of hooks and utilities to help you build your widget component. + +## A Basic Widget Component + +Here is an example of a basic widget component: + +```js +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + const { widget } = service; + const { data, error } = useWidgetAPI(widget, "info"); + + if (error) { + return ; + } + + if (!data) { + return ( + + + + + + ); + } + + return ( + + + + + + ); +} +``` + +### Breakdown + +We'll cover two sections of the widget component: hooks and components. + +#### Hooks + +**`useTranslation`** + +This hook is used to translate text and numerical content in widgets. Homepage provides a set of helpers to help you localize your widgets. You can learn more about translations in the [Translations Guide](translations.md). + +**`useWidgetAPI`** + +This hook is used to fetch data from the API. We cover this hook in more detail in the [API Guide](api.md). + +#### Components + +Homepage provides a set of components to help you build your widget UI. These components are designed to provide a consistent layout, and all widgets are expected to use these components. + +![Component Sections](../../assets/sections.webp) + +**``** + +This component is a wrapper for the widget. It provides a consistent layout for all widgets. + +```js + +``` + +`service` is a prop that is passed to the widget component. It contains information about the service that the widget is displaying. + +If there is an error fetching data from the API, the `error` prop can be passed to the `Container` component. + +```js + +``` + +**``** + +This component is used to display a key-value pair. It takes a label and value as props. + +```js + +``` + +The `label` prop is used to look up the translation key in the translation files. The `value` prop is used to display the value of the block. To learn more about translations, please refer to the [Translations Guide](translations.md). + +If there is no data available, the `Block` component can be used to display a placeholder layout. + +```js + + + + + +``` diff --git a/docs/widgets/authoring/getting-started.md b/docs/widgets/authoring/getting-started.md new file mode 100644 index 00000000..8ce7e1b3 --- /dev/null +++ b/docs/widgets/authoring/getting-started.md @@ -0,0 +1,64 @@ +--- +title: Getting Started +description: Get started developing for Homepage. +--- + +We'll cover getting homepage up and running on your local machine for development, as well as some guidelines for developing new features and widgets. + +## Development + +First, clone the homepage repository. + +For installing NPM packages, this project uses [pnpm](https://pnpm.io/) (and so should you!): + +```bash +pnpm install +``` + +Start the development server: + +```bash +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) to start. + +This is a [Next.js](https://nextjs.org/) application, see their documentation for more information. + +## Code Linting + +Once dependencies have been installed you can lint your code with + +```bash +pnpm lint +``` + +## Code formatting with pre-commit hooks + +To ensure a consistent style and formatting across the project source, the project utilizes Git [`pre-commit`](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) hooks to perform some formatting and linting before a commit is allowed. + +Once installed, hooks will run when you commit. If the formatting isn't quite right, the commit will be rejected and you'll need to look at the output and fix the issue. Most hooks will automatically format failing files, so all you need to do is `git add` those files again and retry your commit. + +See the [pre-commit documentation](https://pre-commit.com/#install) to get started. + +## Preferring self-hosted open-source software + +In general, homepage is meant to be a dashboard for 'self-hosted' services and we believe it is a small way we can help showcase this kind of software. While exceptions are made, mostly when there is no viable +self-hosted / open-source alternative, we ask that any widgets, etc. are developed primarily for a self-hosted tool. + +## New Feature or Enhancement Guidelines {#new-feature-guidelines} + +- New features or enhancements, **no matter how small**, must be linked to an existing feature request with some comments or 'up-votes' that demonstrate community interest. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users. +- If you have ideas for a larger feature you may want to open a discussion first. + +## Service Widget Guidelines + +To ensure cohesiveness of various widgets, the following should be used as a guide for developing new widgets: + +- Please only submit widgets that target a feature request discussion with at least 20 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users. +- Note that we reserve the right to decline widgets for projects that are very young (eg < ~1y) or those with a small reach (eg low GitHub stars). Again, this is in an effort to keep overall widget maintenance under control. +- Widgets should be only one row of blocks +- Widgets should be no more than 4 blocks wide and generally conform to the styling / design choices of other widgets +- Minimize the number of API calls +- Avoid the use of custom proxy unless absolutely necessary +- Widgets should be 'read-only', as in they should not make write changes using the relevant tool's API. Homepage widgets are designed to surface information, not to be a (usually worse) replacement for the tool itself. diff --git a/docs/widgets/authoring/index.md b/docs/widgets/authoring/index.md new file mode 100644 index 00000000..297629b4 --- /dev/null +++ b/docs/widgets/authoring/index.md @@ -0,0 +1,33 @@ +--- +title: Guides & Tutorials +description: Learn how to create and customize widgets in Homepage. Explore translations, widget components, widget metadata, proxy handlers, and making API calls. +icon: fontawesome/solid/graduation-cap +--- + +Widgets are a core component of Homepage. They are used to display information about your system, services, and environment. + +## Overview + +If you are new to Homepage widgets, and are looking to create a new widget, please follow along with the guide here: [Widget Tutorial](tutorial.md). + +### Translations + +All text and numerical content in widgets should be translated and localized. English is the default language, and other languages can be added via [Crowdin](https://crowdin.com/project/gethomepage). + +To learn more about translations, please refer to the guide here: [Translations Guide](translations.md). + +### Widget Component + +The widget component is the core of the widget. It is responsible for [fetching data from the API](api.md) and rendering the widget UI. Homepage provides a set of hooks and utilities to help you build your widget component. + +To learn more about widget components, please refer to the guide here: [Component Guide](component.md). + +### Widget Metadata + +Widget metadata defines the configuration of the widget. It defines the API endpoint to fetch data from, the proxy handler to use, and any data mappings. + +To learn more about widget metadata, endpoint and data mapping, please refer to the guide here: [Metadata Guide](metadata.md). + +To learn more about proxy handlers, please refer to the guide here: [Proxies Guide](proxies.md). + +To learn more about making API calls from inside your widget, please refer to the guide here: [API Guide](api.md). diff --git a/docs/widgets/authoring/metadata.md b/docs/widgets/authoring/metadata.md new file mode 100644 index 00000000..63e464e1 --- /dev/null +++ b/docs/widgets/authoring/metadata.md @@ -0,0 +1,310 @@ +--- +title: Metadata Guide +description: Explore all the metadata properties that can be used to configure a widget in Homepage. +--- + +Here, we will go over how to create and configure Homepage widget metadata. Metadata is a JS object that contains information about the widget, such as the API endpoint, proxy handler, and mappings. This metadata is used by Homepage to fetch data from the API and pass it to the widget. + +## Widgets Configuration + +Here are some examples of how to configure a widget's metadata object. + +=== "Basic Example" + + ```js + import genericProxyHandler from "utils/proxy/handlers/generic"; + + const widgetExample = { + api: "{url}/api/{endpoint}", + proxyHandler: genericProxyHandler, + + mappings: { + stats: { endpoint: "stats" } + }, + }; + ``` + +=== "Advanced Example" + + ```js + import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; + import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers"; + + const widgetExample = { + api: "{url}/api/{endpoint}", + proxyHandler: credentialedProxyHandler, + + mappings: { + stats: { + endpoint: "stats", + validate: ["total", "average"], + params: ["start", "end"], + }, + notices: { + endpoint: "notices", + map: (data) => { + total: asJson(data).length; + }, + }, + warnings: { + endpoint: "notices", + map: (data) => { + total: jsonArrayFilter(data, (alert) => alert.type === "warning").length; + }, + }, + }, + }; + ``` + +A widget's metadata is quite powerful and can be configured in many different ways. + +## Configuration Properties + +### `api` + +The `api` property is a string that represents the URL of the API endpoint that the widget will use to fetch data. The URL can contain placeholders that will be replaced with actual values at runtime. For example, the `{url}` placeholder will be replaced with the URL of the configured widget, and the `{endpoint}` placeholder will be replaced with the value of the `endpoint` property in the `mappings` object. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", +}; +``` + +### `proxyHandler` + +The `proxyHandler` property is a function that will be used to make the API request. Homepage includes some built-in proxy handlers that can be used out of the box: + +Here is an example of the generic proxy handler that makes unauthenticated requests to the specified API endpoint. + +=== "widget.js" + + ```js + const widgetExample = { + api: "{url}/api/{endpoint}", + proxyHandler: genericProxyHandler, + }; + ``` + +=== "services.yaml" + + ```yaml + - Services: + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 + ``` + +If you are looking to learn more about proxy handlers, please refer to the guide here: [Proxies Guide](proxies.md). + +### `mappings` + +The `mappings` property is an object that contains information about the API endpoint, such as the endpoint name, validation rules, and parameter names. The `mappings` object can contain multiple endpoints, each with its own configuration. + +!!! note "Security Note" + + The `mappings` or `allowedEndpoints` property is required for the widget to fetch data from more than a static URL. Homepage uses a whitelist approach to ensure that widgets only access allowed endpoints. + +```js +import { asJson } from "utils/proxy/api-helpers"; + +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats?start=...&end=...` + stats: { + endpoint: "stats", + validate: ["total", "average"], + params: ["start", "end"], + }, + // `/api/notices` + notices: { + endpoint: "notices", + map: (data) => { + total: asJson(data).length; + }, + }, + }, +}; +``` + +#### `endpoint` + +The `endpoint` property is a string that represents the name of the API endpoint that the widget will use to fetch data. This value will be used to replace the `{endpoint}` placeholder in the `api` property. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats` + stats: { + endpoint: "stats", + }, + }, +}; +``` + +#### `validate` + +The `validate` property is an array of strings that represent the keys that should be validated in the API response. If the response does not contain all of the specified keys, the widget will not render. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats` + stats: { + endpoint: "stats", + validate: ["total", "average"], + }, + }, +}; +``` + +This configuration will ensure that the API response contains the `total` and `average` keys before the widget is rendered. + +#### `params` + +The `params` property is an array of strings that represent the keys that should be passed as parameters to the API endpoint. These keys will be replaced with the actual values at runtime. + +=== "widget.js" + + ```js + const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats?start=...&end=...` + stats: { + endpoint: "stats", + params: ["start", "end"], + }, + }, + }; + ``` + +=== "component.jsx" + + ```js + const { data: statsData, error: statsError } = useWidgetAPI(widget, "stats", { + start: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000), + end: new Date(), + }); + ``` + +This configuration will pass the `start` and `end` keys as parameters to the API endpoint. The values are passed as an object to the `useWidgetAPI` hook. + +#### `map` + +The `map` property is a function that will be used to transform the API response before it is passed to the widget. This function is passed the raw API response and should return the transformed data. + +```js +import { asJson } from "utils/proxy/api-helpers"; + +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/notices` + notices: { + endpoint: "notices", + map: (data) => { + total: asJson(data).length; + }, + }, + // `/api/notices` + warnings: { + endpoint: "notices", + map: (data) => { + total: asJson(data).filter((alert) => alert.type === "warning").length; + }, + }, + }, +}; +``` + +#### `method` + +The `method` property is a string that represents the HTTP method that should be used to make the API request. The default value is `GET`. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats` + stats: { + endpoint: "stats", + method: "POST", + }, + }, +}; +``` + +#### `headers` + +The `headers` property is an object that contains additional headers that should be included in the API request. If your endpoint requires specific headers, you can include them here. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/stats` + stats: { + endpoint: "stats", + method: "POST", + headers: { + "Content-Type": "application/json", + }, + }, + }, +}; +``` + +#### `body` + +The `body` property is an object that contains the data that should be sent in the request body. This property is only used when the `method` property is set to `POST` or `PUT`. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + mappings: { + // `/api/graphql` + stats: { + endpoint: "graphql", + method: "POST", + body: { + query: ` + query { + stats { + total + average + } + } + `, + }, + headers: { + "Content-Type": "application/json", + }, + }, + }, +}; +``` + +### `allowedEndpoints` + +The `allowedEndpoints` property is a RegExp that represents the allowed endpoints that the widget can use. If the widget tries to access an endpoint that is not allowed, the request will be blocked. + +`allowedEndpoints` can be used when endpoint validation is simple and can be done using a regular expression, and more control is not required. + +!!! note "Security Note" + + The `mappings` or `allowedEndpoints` property is required for the widget to fetch data from more than a static URL. Homepage uses a whitelist approach to ensure that widgets only access allowed endpoints. + +```js +const widgetExample = { + api: "{url}/api/{endpoint}", + allowedEndpoints: /^stats|notices$/, +}; +``` + +This configuration will only allow the widget to access the `stats` and `notices` endpoints. diff --git a/docs/widgets/authoring/proxies.md b/docs/widgets/authoring/proxies.md new file mode 100644 index 00000000..a8b8073e --- /dev/null +++ b/docs/widgets/authoring/proxies.md @@ -0,0 +1,203 @@ +--- +title: Proxies Guide +description: Learn about proxy handlers in Homepage, and how to securely fetch data from an API. +--- + +Homepage includes a set of built-in proxy handlers that can be used to fetch data from an API. We will go over how to use these proxy handlers and briefly cover how to create your own. + +## Available Proxy Handlers + +Homepage comes with a few built-in proxy handlers that can be used to fetch data from an API. These handlers are located in the `utils/proxy/handlers` directory. + +### `genericProxyHandler` + +A proxy handler that makes generally unauthenticated requests to the specified API endpoint. + +```js +import genericProxyHandler from "utils/proxy/handlers/generic"; + +const widgetExample = { + api: "{url}/api/{endpoint}", + proxyHandler: genericProxyHandler, +}; +``` + +You can also pass API keys from the widget configuration to the proxy handler, for authenticated requests. + +=== "widget.js" + + ```js + import genericProxyHandler from "utils/proxy/handlers/generic"; + + const widgetExample = { + api: "{url}/api/{endpoint}?key={key}", + proxyHandler: genericProxyHandler, + }; + ``` + +=== "services.yaml" + + ```yaml + # Widget Configuration + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://example.com + key: your-api-key + ``` + +### `credentialedProxyHandler` + +A proxy handler that makes authenticated requests by setting request headers. Credentials are pulled from the widgets configuration. + +By default the key is passed as an `X-API-Key` header. If you need to pass the key as something else, either add a case to the credentialedProxyHandler or create a new proxy handler. + +=== "widget.js" + + ```js + import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; + + const widgetExample = { + api: "{url}/api/{endpoint}?key={key}", + proxyHandler: credentialedProxyHandler, + }; + ``` + +=== "services.yaml" + + ```yaml + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 + key: your-api-key + ``` + +### `jsonrpcProxyHandler` + +A proxy handler that makes authenticated JSON-RPC requests to the specified API endpoint, either using username + password or an API token. +The endpoint is the method to call and queryParams are used as the parameters. + +=== "component.js" + + ```js + import Container from "components/services/widget/container"; + import useWidgetAPI from "utils/proxy/use-widget-api"; + + export default function Component({ service }) { + const { widget } = service; + + const { data, error } = useWidgetAPI(widget, 'trigger', { "triggerids": "14062", "output": "extend", "selectFunctions": "extend" }); + } + ``` + +=== "widget.js" + + ```js + import jsonrpcProxyHandler from "utils/proxy/handlers/jsonrpc"; + + const widgetExample = { + api: "{url}/api/jsonrpc", + proxyHandler: jsonrpcProxyHandler, + + mappings: { + total: { endpoint: "total" }, + average: { endpoint: "average" }, + trigger: { endpoint: "trigger.get" }, + }, + }; + ``` + +=== "services.yaml" + + ```yaml + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 + username: your-username + password: your-password + ``` + + ```yaml + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 + key: your-api-token + ``` + +### `synologyProxyHandler` + +A proxy handler that makes authenticated requests to the specified Synology API endpoint. This is used exclusively for Synology DSM services. + +=== "widget.js" + + ```js + import synologyProxyHandler from "utils/proxy/handlers/synology"; + + const widgetExample = { + api: "{url}/webapi/{cgiPath}?api={apiName}&version={maxVersion}&method={apiMethod}", + proxyHandler: synologyProxyHandler, + + mappings: { + system_storage: { + apiName: "SYNO.Core.System", + apiMethod: 'info&type="storage"', + endpoint: "system_storage", + } + }, + }; + ``` + +=== "services.yaml" + + ```yaml + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 + username: your-username + password: your-password + ``` + +## Creating a Custom Proxy Handler + +You can create your own proxy handler to fetch data from an API. A proxy handler is a function that takes a configuration object and returns a function that makes the API request. + +The proxy handler function takes three arguments: + +- `req`: The request object. +- `res`: The response object. +- `map`: A function that maps the API response to the widget data. + +The proxy handler function should return a promise that resolves to the API response. + +Here is an example of a simple proxy handler that fetches data from an API and passes it to the widget: + +```js +import createLogger from "utils/logger"; +import { httpProxy } from "utils/proxy/http"; + +const logger = createLogger("customProxyHandler"); + +export default async function customProxyHandler(req, res, map) { + const { url } = req.query; + + const [status, contentType, data] = await httpProxy(url); + + return res.status(status).send(data); +} +``` + +Proxy handlers are a complex topic and require a good understanding of JavaScript and the Homepage codebase. If you are new to Homepage, we recommend using the built-in proxy handlers. diff --git a/docs/widgets/authoring/translations.md b/docs/widgets/authoring/translations.md new file mode 100644 index 00000000..77ad0703 --- /dev/null +++ b/docs/widgets/authoring/translations.md @@ -0,0 +1,88 @@ +--- +title: Translations Guide +description: Tips and tricks for translating and localizing Homepage widgets. +--- + +All text and numerical content in widgets should be translated and localized. English is the default language, and other languages can be added via [Crowdin](https://crowdin.com/project/gethomepage). + +## Translations + +Homepage uses the [next-i18next](https://github.com/i18next/next-i18next) library to handle translations. This library provides a set of hooks and utilities to help you localize your widgets, and Homepage has extended this library to support additional features. + +=== "component.jsx" + + ```js + import { useTranslation } from "next-i18next"; + + import Container from "components/services/widget/container"; + import Block from "components/services/widget/block"; + + export default function Component() { + const { t } = useTranslation(); + + return ( + + + + + + ); + } + ``` + +## Set up translation strings + +Homepage uses translated and localized strings for **all text and numerical content** in widgets. English is the default language, and other languages can be added via [Crowdin](https://crowdin.com/project/gethomepage). To add the English translations for your widget, follow these steps: + +Open the `public/locales/en/common.js` file. + +Add a new object for your widget to the bottom of the list, like this: + +```json +"yourwidget": { + "key1": "Value 1", + "key2": "Value 2", + "key3": "Value 3" +} +``` + +!!! note + + Even if you natively speak another language, you should only add English translations. You can then add translations in your native language via [Crowdin](https://crowdin.com/project/gethomepage), once your widget is merged. + +## Common Translations + +Homepage provides a set of common translations that you can use in your widgets. These translations are used to format numerical content, dates, and other common elements. + +### Numbers + +| Key | Translation | Description | +| --------------------- | --------------- | -------------------------------- | +| `common.bytes` | `1,000 B` | Format a number in bytes. | +| `common.bits` | `1,000 bit` | Format a number in bits. | +| `common.bbytes` | `1 KiB` | Format a number in binary bytes. | +| `common.bbits` | `1 Kibit` | Format a number in binary bits. | +| `common.byterate` | `1,000 B/s` | Format a byte rate. | +| `common.bibyterate` | `1 KiB/s` | Format a binary byte rate. | +| `common.bitrate` | `1,000 bit/s` | Format a bit rate. | +| `common.bibitrate` | `1 Kibit/s` | Format a binary bit rate. | +| `common.percent` | `50%` | Format a percentage. | +| `common.number` | `1,000` | Format a number. | +| `common.ms` | `1,000 ms` | Format a number in milliseconds. | +| `common.date` | `2024-01-01` | Format a date. | +| `common.relativeDate` | `1 day ago` | Format a relative date. | +| `common.duration` | `1 day, 1 hour` | Format an duration. | + +### Text + +| Key | Translation | Description | +| ------------------ | ----------- | ------------------ | +| `resources.cpu` | `CPU` | CPU usage. | +| `resources.mem` | `MEM` | Memory usage. | +| `resources.total` | `Total` | Total resource. | +| `resources.free` | `Free` | Free resource. | +| `resources.used` | `Used` | Used resource. | +| `resources.load` | `Load` | Load value. | +| `resources.temp` | `TEMP` | Temperature value. | +| `resources.max` | `Max` | Maximum value. | +| `resources.uptime` | `UP` | Uptime. | diff --git a/docs/widgets/authoring/tutorial.md b/docs/widgets/authoring/tutorial.md new file mode 100644 index 00000000..d9fef90b --- /dev/null +++ b/docs/widgets/authoring/tutorial.md @@ -0,0 +1,273 @@ +--- +title: Widget Tutorial +description: Follow along with this guide to learn how to create a custom widget for Homepage. We'll cover the basic structure of a widget, how to use translations, and how to fetch data from an API. +--- + +In this guide, we'll walk through the process of creating a custom widget for Homepage. We'll cover the basic structure of a widget, how to use translations, and how to fetch data from an API. By the end of this guide, you'll have a solid understanding of how to build your own custom widget. + +**Prerequisites:** + +- Basic knowledge of React and JavaScript +- Familiarity with the Homepage platform +- Understanding of JSON and API interactions + +Throughout this guide, we'll use `yourwidget` as a placeholder for the unique name of your custom widget. Replace `yourwidget` with the actual name of your widget. It should contain only lowercase letters and no spaces. + +This guide makes use of a fake API, which would return a JSON response as such, when called with the `v1/info` endpoint: + +```json +{ "key1": 123, "key2": 456, "key3": 789 } +``` + +## Set up the widget definition + +Create a new folder for your widget in the `src/widgets` directory. Name the folder `yourwidget`. + +Inside the `yourwidget` folder, create a new file named `widget.js`. This file will contain the metadata for your widget. + +Open the `widget.js` file and add the following code: + +```js title="src/widgets/yourwidget/widget.js" +import genericProxyHandler from "utils/proxy/handlers/generic"; // (1)! + +const widget = /* (2)! */ { + api: "{url}/{endpoint}" /* (3)! */, + proxyHandler: genericProxyHandler /* (1)! */, + + mappings: /* (4)! */ { + info: /* (5)! */ { + endpoint: "v1/info" /* (6)! */, + }, + }, +}; + +export default widget; +``` + +1. We import the `genericProxyHandler` from the `utils/proxy/handlers/generic` module. The `genericProxyHandler` is a generic handler that can be used to fetch data from an API. We then assign the `genericProxyHandler` to the `proxyHandler` property of the `widget` object. There are other handlers available that you can use depending on your requirements. You can also create custom handlers if needed. +2. We define a `widget` object that contains the metadata for the widget. +3. The API endpoint to fetch data from. You can use placeholders like `{url}` and `{endpoint}` to dynamically generate the API endpoint based on the widget configuration. +4. An object that contains mappings for different endpoints. Each mapping should have an `endpoint` property that specifies the endpoint to fetch data from. +5. A mapping named `info` that specifies the `v1/info` endpoint to fetch data from. This would be called from the component as such: `#!js useWidgetAPI(widget, "info");` +6. The `endpoint` property of the `info` mapping specifies the endpoint to fetch data from. There are other properties you can pass to the mapping, such as `method`, `headers`, and `body`. + +!!! warning "Important" + + All widgets that fetch data from dynamic endpoints should have either `mappings` or an `allowedEndpoints` property. + +## Including translation strings in your widget + +Refer to the [translations guide](translations.md) for more details. The Homepage community prides itself on being multilingual, and we strongly encourage you to add translations for your widgets. + +## Create the widget component + +Create a new file for your widgets component, named `component.jsx`, in the `src/widgets/yourwidget` directory. We'll build the contents of the `component.jsx` file step by step. + +First, we'll import the necessary dependencies: + +```js title="src/widgets/yourwidget/component.jsx" linenums="1" +import { useTranslation } from "next-i18next"; // (1)! + +import Container from "components/services/widget/container"; // (2)! +import Block from "components/services/widget/block"; // (3)! +import useWidgetAPI from "utils/proxy/use-widget-api"; // (4)! +``` + +1. `#!js useTranslation()` is a hook provided by `next-i18next` that allows us to access the translation strings +2. `#!jsx ` and `#!jsx ` are custom components that we'll use to structure our widget. +3. `#!jsx ` and `#!jsx ` are custom components that we'll use to structure our widget. +4. `#!js useWidgetAPI(widget, endpoint)` is a custom hook that we'll use to fetch data from an API. + +--- + +Next, we'll define a functional component named `Component` that takes a `service` prop. + +```js title="src/widgets/yourwidget/component.jsx" linenums="7" +export default function Component({ service }) {} +``` + +--- + +We grab the helper functions from the `useTranslation` hook. + +```js title="src/widgets/yourwidget/component.jsx" linenums="8" +const { t } = useTranslation(); +``` + +--- + +We destructure the `widget` object from the `service` prop. The `widget` object contains the metadata for the widget, such as the API endpoint to fetch data from. + +```js title="src/widgets/yourwidget/component.jsx" linenums="9" +const { widget } = service; +``` + +--- + +Now, the fun part! We use the `useWidgetAPI` hook to fetch data from an API. The `useWidgetAPI` hook takes two arguments: the `widget` object and the API endpoint to fetch data from. The `useWidgetAPI` hook returns an object with `data` and `error` properties. + +```js title="src/widgets/yourwidget/component.jsx" linenums="10" +const { data, error } = useWidgetAPI(widget, "info"); +``` + +!!! tip "API Tips" + + You'll see here how part of the API url is built using the `url` and `endpoint` properties from the widget definition. + + In this case, we're fetching data from the `info` endpoint. The `info` endpoint is defined in the `mappings` object. So the full API endpoint will be `"{url}/v1/info"`. + + The mapping and endpoint are often the same, but must be defined regardless. + +--- + +Next, we check if there's an error or no data. + +If there's an error, we return a `Container` and pass it the `service` and `error` as props. The `Container` component will handle displaying the error message. + +```js title="src/widgets/yourwidget/component.jsx" linenums="12" +if (error) { + return ; +} +``` + +--- + +If there's no data, we return a `Container` component with three `Block` components, each with a `label`. + +```js title="src/widgets/yourwidget/component.jsx" linenums="16" +if (!data) { + return ( + + + + + + ); +} +``` + +This will render the widget with placeholders for the data, i.e., a skeleton view. + +!!! tip "Translation Tips" + + The `label` prop in the `Block` component corresponds to the translation key we defined earlier in the `common.js` file. All text and numerical content should be translated. + +--- + +If there is data, we return a `Container` component with three `Block` components, each with a `label` and a `value`. + +Here we use the `t` function from the `useTranslation` hook to translate the data values. The `t` function takes the translation key and an object with variables to interpolate into the translation string. + +We're using the `common.number` translation key to format the data values as numbers. This allows for easy localization of numbers, such as using commas or periods as decimal separators. + +There are a large number of `common` numerical translation keys available, which you can learn more about in the [Translation Guide](translations.md). + +```js title="src/widgets/yourwidget/component.jsx" linenums="26" +return ( + + + + + +); +``` + +--- + +Here's the complete `component.jsx` file: + +```js title="src/widgets/yourwidget/component.jsx" linenums="1" +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + const { widget } = service; + const { data, error } = useWidgetAPI(widget, "info"); + + if (error) { + return ; + } + + if (!data) { + return ( + + + + + + ); + } + + return ( + + + + + + ); +} +``` + +## Add the widget to the Homepage + +To add your widget to the Homepage, you need to register it in the `src/widgets/widgets.js` file. + +Open the `src/widgets/widgets.js` file and import the `Component` from your widget's `component.jsx` file. Please keep the alphabetical order. + +```js +// ... +import yourwidget from "./yourwidget/widget"; +// ... +``` + +Add `yourwidget` to the `widgets` object. Please keep the alphabetical order. + +```js +const widgets = { + // ... + yourwidget: yourwidget, + // ... +}; +``` + +You also need to add the widget to the `components` object in the `src/widgets/components.js` file. + +Open the `src/widgets/components.js` file and import the `Component` from your widget's `component.jsx` file. + +Please keep the alphabetical order. + +```js +const components = { + // ... + yourwidget: dynamic(() => import("./yourwidget/component")), + // ... +}; +``` + +## Using the widget + +You can now use your custom widget in your Homepage. Open your `services.yaml` file and add a new service with the `yourwidget` widget. + +```yaml +- Services: + - Your Widget: + icon: yourwidget.svg + href: https://example.com/ + widget: + type: yourwidget + url: http://127.0.0.1:1337 +``` + +!!! tip "API Tips" + + You'll see here how part of the API url is built using the `url` and `endpoint` properties from the widget definition. + + We defined the api endpoint as `"{url}/{endpoint}"`. This is where the `url` is defined. So the full API endpoint will be `http://127.0.0.1:1337/{endpoint}`. + +--- + +That's it! You've successfully created a custom widget for Homepage. If you have any questions or need help, feel free to reach out to the Homepage community for assistance. Happy coding! diff --git a/docs/widgets/index.md b/docs/widgets/index.md new file mode 100644 index 00000000..fbb8edc6 --- /dev/null +++ b/docs/widgets/index.md @@ -0,0 +1,45 @@ +--- +title: Widgets +description: Find information on how to configure specific widgets in Homepage. +icon: material/widgets +--- + +Homepage has two types of widgets: info and service. Below we'll cover each type and how to configure them. + +The left navigation of this site contains links to all available widgets. + +## Service Widgets + +Service widgets are used to display the status of a service, often a web service or API. Services (and their widgets) are defined in your `services.yaml` file. Here's an example: + +```yaml +- Plex: + icon: plex.png + href: https://plex.my.host + description: Watch movies and TV shows. + server: localhost + container: plex + widgets: + - type: tautulli + url: http://172.16.1.1:8181 + key: aabbccddeeffgghhiijjkkllmmnnoo + - type: uptimekuma + url: http://172.16.1.2:8080 + slug: aaaaaaabbbbb +``` + +More detail on configuring service widgets can be found in the [Service Widgets Config](../configs/services.md) section. + +## Info Widgets + +Info widgets are used to display information in the header, often about your system or environment. Info widgets are defined your `widgets.yaml` file. Here's an example: + +```yaml +- openmeteo: + label: Current + latitude: 36.66 + longitude: -117.51 + cache: 5 +``` + +More detail on configuring info widgets can be found in the [Info Widgets Config](../configs/info-widgets.md) section. diff --git a/docs/widgets/info/datetime.md b/docs/widgets/info/datetime.md new file mode 100644 index 00000000..71ea007b --- /dev/null +++ b/docs/widgets/info/datetime.md @@ -0,0 +1,51 @@ +--- +title: Date & Time +description: Date & Time Information Widget Configuration +--- + +This allows you to display the date and/or time, can be heavily configured using [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat). + +Formatting is locale aware and will present your date in the regional format you expect, for example, `9/16/22, 3:03 PM` for locale `en` and `16.09.22, 15:03` for `de`. You can also specify a locale just for the datetime widget with the `locale` option (see below). + +```yaml +- datetime: + text_size: xl + format: + timeStyle: short +``` + +Any options passed to `format` are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat), please reference the MDN documentation for all available options. + +Valid text sizes are `4xl`, `3xl`, `2xl`, `xl`, `md`, `sm`, `xs`. + +A few examples, + +```yaml +# 13:37 +format: + timeStyle: short + hourCycle: h23 +``` + +```yaml +# 1:37 PM +format: + timeStyle: short + hour12: true +``` + +```yaml +# 1/23/22, 1:37 PM +format: + dateStyle: short + timeStyle: short + hour12: true +``` + +```yaml +# 4 januari 2023 om 13:51:25 PST +locale: nl +format: + dateStyle: long + timeStyle: long +``` diff --git a/docs/widgets/info/glances.md b/docs/widgets/info/glances.md new file mode 100644 index 00000000..52c5cf28 --- /dev/null +++ b/docs/widgets/info/glances.md @@ -0,0 +1,35 @@ +--- +title: Glances +description: Glances Information Widget Configuration +--- + +_(Find the Glances service widget [here](../services/glances.md))_ + +The Glances widget allows you to monitor the resources (CPU, memory, storage, temp & uptime) of host or another machine, and is designed to match the `resources` info widget. You can have multiple instances by adding another configuration block. The `cputemp`, `uptime` & `disk` states require separate API calls and thus are not enabled by default. Glances needs to be running in "web server" mode to enable the API, see the [glances docs](https://glances.readthedocs.io/en/latest/quickstart.html#web-server-mode). + +```yaml +- glances: + url: http://host.or.ip:port + username: user # optional if auth enabled in Glances + password: pass # optional if auth enabled in Glances + version: 4 # required only if running glances v4 or higher, defaults to 3 + cpu: true # optional, enabled by default, disable by setting to false + mem: true # optional, enabled by default, disable by setting to false + cputemp: true # disabled by default + uptime: true # disabled by default + disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below) + diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk + expanded: true # show the expanded view + label: MyMachine # optional +``` + +Multiple disks can be specified as: + +```yaml +disk: + - / + - /boot + ... +``` + +_Added in v0.4.18, updated in v0.6.11, v0.6.21_ diff --git a/docs/widgets/info/greeting.md b/docs/widgets/info/greeting.md new file mode 100644 index 00000000..8a11290c --- /dev/null +++ b/docs/widgets/info/greeting.md @@ -0,0 +1,14 @@ +--- +title: Greeting +description: Greeting Information Widget Configuration +--- + +This allows you to display simple text, can be configured like so: + +```yaml +- greeting: + text_size: xl + text: Greeting Text +``` + +Valid text sizes are `4xl`, `3xl`, `2xl`, `xl`, `md`, `sm`, `xs`. diff --git a/docs/widgets/info/index.md b/docs/widgets/info/index.md new file mode 100644 index 00000000..961d93a6 --- /dev/null +++ b/docs/widgets/info/index.md @@ -0,0 +1,21 @@ +--- +title: Info Widgets +description: Homepage info widgets. +search: + exclude: true +--- + +You can also find a list of all available info widgets in the sidebar navigation. + +- [Date & Time](datetime.md) +- [Glances](glances.md) +- [Greeting](greeting.md) +- [Kubernetes](kubernetes.md) +- [Logo](logo.md) +- [Longhorn](longhorn.md) +- [OpenMeteo](openmeteo.md) +- [OpenWeatherMap](openweathermap.md) +- [Resources](resources.md) +- [Search](search.md) +- [Stocks](stocks.md) +- [UniFi Controller](unifi_controller.md) diff --git a/docs/widgets/info/kubernetes.md b/docs/widgets/info/kubernetes.md new file mode 100644 index 00000000..36096579 --- /dev/null +++ b/docs/widgets/info/kubernetes.md @@ -0,0 +1,31 @@ +--- +title: Kubernetes +description: Kubernetes Information Widget Configuration +--- + +This is very similar to the Resources widget, but provides resource information about a Kubernetes cluster. + +It provides CPU and Memory usage, by node and/or at the cluster level. + +```yaml +- kubernetes: + cluster: + # Shows cluster-wide statistics + show: true + # Shows the aggregate CPU stats + cpu: true + # Shows the aggregate memory stats + memory: true + # Shows a custom label + showLabel: true + label: "cluster" + nodes: + # Shows node-specific statistics + show: true + # Shows the CPU for each node + cpu: true + # Shows the memory for each node + memory: true + # Shows the label, which is always the node name + showLabel: true +``` diff --git a/docs/widgets/info/logo.md b/docs/widgets/info/logo.md new file mode 100644 index 00000000..ef3255f4 --- /dev/null +++ b/docs/widgets/info/logo.md @@ -0,0 +1,13 @@ +--- +title: Logo +description: Logo Information Widget Configuration +--- + +This allows you to display the homepage logo, you can optionally specify your own icon using similar options as other icons, see [service icons](../../configs/services.md#icons). + +```yaml +- logo: + icon: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/I_Love_New_York.svg/1101px-I_Love_New_York.svg.png # optional +``` + +_Added in v0.4.18, updated in 0.X.X_ diff --git a/docs/widgets/info/longhorn.md b/docs/widgets/info/longhorn.md new file mode 100644 index 00000000..0a3a237d --- /dev/null +++ b/docs/widgets/info/longhorn.md @@ -0,0 +1,37 @@ +--- +title: Longhorn +description: Longhorn Storage Widget Configuration +--- + +The Longhorn widget pulls storage utilization metrics from the Longhorn storage driver on Kubernetes. +It is designed to appear similar to the Resource widget's disk representation. + +The exact metrics should be very similar to what is seen on the Longhorn dashboard itself. + +It can show the aggregate metrics and/or the individual node metrics. + +```yaml +- longhorn: + # Show the expanded view + expanded: true + # Shows a node representing the aggregate values + total: true + # Shows the node names as labels + labels: true + # Show the nodes + nodes: true + # An explicit list of nodes to show. All are shown by default if "nodes" is true + include: + - node1 + - node2 +``` + +The Longhorn URL and credentials are stored in the `providers` section of the `settings.yaml`. e.g.: + +```yaml +providers: + longhorn: + username: "longhorn-username" # optional + password: "very-secret-longhorn-password" # optional + url: https://longhorn.aesop.network +``` diff --git a/docs/widgets/info/openmeteo.md b/docs/widgets/info/openmeteo.md new file mode 100644 index 00000000..ec84ab17 --- /dev/null +++ b/docs/widgets/info/openmeteo.md @@ -0,0 +1,20 @@ +--- +title: Open-Meteo +description: Open-Meteo Information Widget Configuration +--- + +Homepage's recommended weather widget. No registration is required at all! See [https://open-meteo.com/en/docs](https://open-meteo.com/en/docs) + +```yaml +- openmeteo: + label: Kyiv # optional + latitude: 50.449684 + longitude: 30.525026 + timezone: Europe/Kiev # optional + units: metric # or imperial + cache: 5 # Time in minutes to cache API responses, to stay within limits + format: # optional, Intl.NumberFormat options + maximumFractionDigits: 1 +``` + +You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS). diff --git a/docs/widgets/info/openweathermap.md b/docs/widgets/info/openweathermap.md new file mode 100644 index 00000000..320d5d85 --- /dev/null +++ b/docs/widgets/info/openweathermap.md @@ -0,0 +1,21 @@ +--- +title: OpenWeatherMap +description: OpenWeatherMap Information Widget Configuration +--- + +The free tier "One Call API" is all that's required, you will need to [subscribe](https://home.openweathermap.org/subscriptions/unauth_subscribe/onecall_30/base) and grab your API key. + +```yaml +- openweathermap: + label: Kyiv #optional + latitude: 50.449684 + longitude: 30.525026 + units: metric # or imperial + provider: openweathermap + apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests + cache: 5 # Time in minutes to cache API responses, to stay within limits + format: # optional, Intl.NumberFormat options + maximumFractionDigits: 1 +``` + +You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS). diff --git a/docs/widgets/info/resources.md b/docs/widgets/info/resources.md new file mode 100644 index 00000000..7fcf9c5c --- /dev/null +++ b/docs/widgets/info/resources.md @@ -0,0 +1,77 @@ +--- +title: Resources +description: Resources Information Widget Configuration +--- + +You can include all or some of the available resources. If you do not want to see that resource, simply pass `false`. + +The disk path is the path reported by `df` (Mounted On), or the mount point of the disk. + +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. + +_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._ + +**Any disk you wish to access must be mounted to your container as a volume.** + +```yaml +- resources: + cpu: true + memory: true + disk: /disk/mount/path + cputemp: true + tempmin: 0 # optional, minimum cpu temp + tempmax: 100 # optional, maximum cpu temp + uptime: true + units: imperial # only used by cpu temp, options: 'imperial' or 'metric' + refresh: 3000 # optional, in ms + diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk + network: true # optional, uses 'default' if true or specify a network interface name +``` + +You can also pass a `label` option, which allows you to group resources under named sections, + +```yaml +- resources: + label: System + cpu: true + memory: true + +- resources: + label: Storage + disk: /mnt/storage +``` + +Which produces something like this, + +Resource Groups + +If you have more than a single disk and would like to group them together under the same label, you can pass an array of paths instead, + +```yaml +- resources: + label: Storage + disk: + - /mnt/storage + - /mnt/backup + - /mnt/media +``` + +To produce something like this, + +Screenshot 2022-09-11 at 2 15 42 PM + +You can additionally supply an optional `expanded` property set to true in order to show additional details about the resources. By default the expanded property is set to false when not supplied. + +```yaml +- resources: + label: Array Disks + expanded: true + disk: + - /disk1 + - /disk2 + - /disk3 +``` + +![194136533-c4238c82-4d67-41a4-b3c8-18bf26d33ac2](https://user-images.githubusercontent.com/3441425/194728642-a9885274-922b-4027-acf5-a746f58fdfce.png) diff --git a/docs/widgets/info/search.md b/docs/widgets/info/search.md new file mode 100644 index 00000000..faae6c37 --- /dev/null +++ b/docs/widgets/info/search.md @@ -0,0 +1,55 @@ +--- +title: Search +description: Search Information Widget Configuration +--- + +You can add a search bar to your top widget area that can search using Google, Duckduckgo, Bing, Baidu, Brave or any other custom provider that supports the basic `?q=` search query param. + +```yaml +- search: + provider: google # google, duckduckgo, bing, baidu, brave or custom + focus: true # Optional, will set focus to the search bar on page load + showSearchSuggestions: true # Optional, will show search suggestions. Defaults to false + target: _blank # One of _self, _blank, _parent or _top +``` + +or for a custom search: + +```yaml +- search: + provider: custom + url: https://www.ecosia.org/search?q= + target: _blank + suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q= # Optional + showSearchSuggestions: true # Optional +``` + +multiple providers is also supported via a dropdown (excluding custom): + +```yaml +- search: + provider: [brave, google, duckduckgo] +``` + +The response body for the URL provided with the `suggestionUrl` option should look like this: + +```json +[ + "home", + [ + "home depot", + "home depot near me", + "home equity loan", + "homeworkify", + "homedepot.com", + "homebase login", + "home depot credit card", + "home goods" + ] +] +``` + +The first entry of the array contains the search query, the second one is an array of the suggestions. +In the example above, the search query was **home**. + +_Added in v0.1.6, updated in 0.6.0_ diff --git a/docs/widgets/info/stocks.md b/docs/widgets/info/stocks.md new file mode 100644 index 00000000..548bedb4 --- /dev/null +++ b/docs/widgets/info/stocks.md @@ -0,0 +1,48 @@ +--- +title: Stocks +description: Stocks Information Widget Configuration +--- + +_(Find the Stocks service widget [here](../services/stocks.md))_ + +The Stocks Information Widget allows you to include basic stock market data in +your Homepage header. The widget includes the current price of a stock, and the +change in price for the day. + +Finnhub.io is currently the only supported provider for the stocks widget. +You can sign up for a free api key at [finnhub.io](https://finnhub.io). +You are encouraged to read finnhub.io's +[terms of service/privacy policy](https://finnhub.io/terms-of-service) before +signing up. The documentation for the endpoint that is utilized can be viewed +[here](https://finnhub.io/docs/api/quote). + +You must set `finnhub` as a provider in your `settings.yaml` like below: + +```yaml +providers: + finnhub: yourfinnhubapikeyhere +``` + +Next, configure the stocks widget in your `widgets.yaml`: + +The information widget allows for up to 8 items in the watchlist. + +```yaml +- stocks: + provider: finnhub + color: true # optional, defaults to true + cache: 1 # optional, default caches results for 1 minute + watchlist: + - GME + - AMC + - NVDA + - AMD + - TSM + - MSFT + - AAPL + - BRK.A +``` + +The above configuration would result in something like this: + +![Example of Stocks Widget](../../assets/widget_stocks_demo.png) diff --git a/docs/widgets/info/unifi_controller.md b/docs/widgets/info/unifi_controller.md new file mode 100644 index 00000000..4c79087f --- /dev/null +++ b/docs/widgets/info/unifi_controller.md @@ -0,0 +1,29 @@ +--- +title: Unifi Controller +description: Unifi Controller Information Widget Configuration +--- + +_(Find the Unifi Controller service widget [here](../services/unifi-controller.md))_ + +You can display general connectivity status from your Unifi (Network) Controller. + +!!! warning + + When authenticating you will want to use a local account that has at least read privileges. + +An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller. + +!!! hint + + If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container to clear the cache. + +unifi_infowidget + +```yaml +- unifi_console: + url: https://unifi.host.or.ip:port + site: Site Name # optional + username: user + password: pass + key: unifiapikey # required if using API key instead of username/password +``` diff --git a/docs/widgets/services/adguard-home.md b/docs/widgets/services/adguard-home.md new file mode 100644 index 00000000..a56d0dd9 --- /dev/null +++ b/docs/widgets/services/adguard-home.md @@ -0,0 +1,18 @@ +--- +title: Adguard Home +description: Adguard Home Widget Configuration +--- + +Learn more about [Adguard Home](https://github.com/AdguardTeam/AdGuardHome). + +The username and password are the same as used to login to the web interface. + +Allowed fields: `["queries", "blocked", "filtered", "latency"]`. + +```yaml +widget: + type: adguard + url: http://adguard.host.or.ip + username: admin + password: password +``` diff --git a/docs/widgets/services/apcups.md b/docs/widgets/services/apcups.md new file mode 100644 index 00000000..9f0b9195 --- /dev/null +++ b/docs/widgets/services/apcups.md @@ -0,0 +1,16 @@ +--- +title: APC UPS Monitoring +description: Lightweight monitoring widget for APC UPSs using apcupsd daemon +--- + +This widget extracts UPS information from an apcupsd daemon. +Only works for [APC/Schneider](https://www.se.com/us/en/product-range/61915-smartups/#products) UPS products. + +[!NOTE] +By default apcupsd daemon is bound to 127.0.0.1. Edit `/etc/apcupsd.conf` and change `NISIP` to an IP accessible from your homepage docker (usually your internal LAN interface). + +```yaml +widget: + type: apcups + url: tcp://your.acpupsd.host:3551 +``` diff --git a/docs/widgets/services/argocd.md b/docs/widgets/services/argocd.md new file mode 100644 index 00000000..6a81b8db --- /dev/null +++ b/docs/widgets/services/argocd.md @@ -0,0 +1,33 @@ +--- +title: ArgoCD +description: ArgoCD Widget Configuration +--- + +Learn more about [ArgoCD](https://argo-cd.readthedocs.io/en/stable/). + +Allowed fields (limited to a max of 4): `["apps", "synced", "outOfSync", "healthy", "progressing", "degraded", "suspended", "missing"]` + +```yaml +widget: + type: argocd + url: http://argocd.host.or.ip:port + key: argocdapikey +``` + +You can generate an API key either by creating a bearer token for an existing account, see [Authorization](https://argo-cd.readthedocs.io/en/latest/developer-guide/api-docs/#authorization) (not recommended) or create a new local user account with limited privileges and generate an authentication token for this account. To do this the steps are: + +- [Create a new local user](https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#create-new-user) and give it the `apiKey` capability +- Setup [RBAC configuration](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#rbac-configuration) for your the user and give it readonly access to your ArgoCD resources, e.g. by giving it the `role:readonly` role. +- In your ArgoCD project under _Settings / Accounts_ open the newly created account and in the _Tokens_ section click on _Generate New_ to generate an access token, optionally specifying an expiry date. + +If you installed ArgoCD via the official Helm chart, the account creation and rbac config can be achived by overriding these helm values: + +```yaml +configs: + cm: + accounts.readonly: apiKey + rbac: + policy.csv: "g, readonly, role:readonly" +``` + +This creates a new account called `readonly` and attaches the `role:readonly` role to it. diff --git a/docs/widgets/services/atsumeru.md b/docs/widgets/services/atsumeru.md new file mode 100644 index 00000000..ab110c63 --- /dev/null +++ b/docs/widgets/services/atsumeru.md @@ -0,0 +1,18 @@ +--- +title: Atsumeru +description: Atsumeru Widget Configuration +--- + +Learn more about [Atsumeru](https://github.com/AtsumeruDev/Atsumeru). + +Define same username and password that is used for login from web or supported apps + +Allowed fields: `["series", "archives", "chapters", "categories"]`. + +```yaml +widget: + type: atsumeru + url: http://atsumeru.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/audiobookshelf.md b/docs/widgets/services/audiobookshelf.md new file mode 100644 index 00000000..96a4efce --- /dev/null +++ b/docs/widgets/services/audiobookshelf.md @@ -0,0 +1,17 @@ +--- +title: Audiobookshelf +description: Audiobookshelf Widget Configuration +--- + +Learn more about [Audiobookshelf](https://github.com/advplyr/audiobookshelf). + +You can find your API token by logging into the Audiobookshelf web app as an admin, go to the config → users page, and click on your account. + +Allowed fields: `["podcasts", "podcastsDuration", "books", "booksDuration"]` + +```yaml +widget: + type: audiobookshelf + url: http://audiobookshelf.host.or.ip:port + key: audiobookshelflapikey +``` diff --git a/docs/widgets/services/authentik.md b/docs/widgets/services/authentik.md new file mode 100644 index 00000000..f4dafd40 --- /dev/null +++ b/docs/widgets/services/authentik.md @@ -0,0 +1,25 @@ +--- +title: Authentik +description: Authentik Widget Configuration +--- + +Learn more about [Authentik](https://github.com/goauthentik/authentik). + +This widget reads the number of active users in the system, as well as logins for the last 24 hours. + +You will need to generate an API token for an existing user under `Admin Portal` > `Directory` > `Tokens & App passwords`. +Make sure to set Intent to "API Token". + +The account you made the API token for also needs the following **Assigned global permissions** in Authentik: + +- authentik Core -> Can view User (Model: User) +- authentik Events -> Can view Event (Model: Event) + +Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`. + +```yaml +widget: + type: authentik + url: http://authentik.host.or.ip:port + key: api_token +``` diff --git a/docs/widgets/services/autobrr.md b/docs/widgets/services/autobrr.md new file mode 100644 index 00000000..4828f385 --- /dev/null +++ b/docs/widgets/services/autobrr.md @@ -0,0 +1,17 @@ +--- +title: Autobrr +description: Autobrr Widget Configuration +--- + +Learn more about [Autobrr](https://github.com/autobrr/autobrr). + +Find your API key under `Settings > API Keys`. + +Allowed fields: `["approvedPushes", "rejectedPushes", "filters", "indexers"]`. + +```yaml +widget: + type: autobrr + url: http://autobrr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/azuredevops.md b/docs/widgets/services/azuredevops.md new file mode 100644 index 00000000..78846115 --- /dev/null +++ b/docs/widgets/services/azuredevops.md @@ -0,0 +1,28 @@ +--- +title: Azure DevOps +description: Azure DevOps Widget Configuration +--- + +Learn more about [Azure DevOps](https://azure.microsoft.com/en-us/products/devops). + +This widget has 2 functions: + +1. Pipelines: checks if the relevant pipeline is running or not, and if not, reports the last status.
+ Allowed fields: `["result", "status"]`. + +2. Pull Requests: returns the amount of open PRs, the amount of the PRs you have open, and how many PRs that you open are marked as 'Approved' by at least 1 person and not yet completed.
+ Allowed fields: `["totalPrs", "myPrs", "approved"]`. + +You will need to generate a personal access token for an existing user, see the [azure documentation](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows#create-a-pat) + +```yaml +widget: + type: azuredevops + organization: myOrganization + project: myProject + definitionId: pipelineDefinitionId # required for pipelines + branchName: branchName # optional for pipelines, leave empty for all + userEmail: email # required for pull requests + repositoryId: prRepositoryId # required for pull requests + key: personalaccesstoken +``` diff --git a/docs/widgets/services/bazarr.md b/docs/widgets/services/bazarr.md new file mode 100644 index 00000000..86f75800 --- /dev/null +++ b/docs/widgets/services/bazarr.md @@ -0,0 +1,17 @@ +--- +title: Bazarr +description: Bazarr Widget Configuration +--- + +Learn more about [Bazarr](https://github.com/morpheus65535/bazarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["missingEpisodes", "missingMovies"]`. + +```yaml +widget: + type: bazarr + url: http://bazarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/beszel.md b/docs/widgets/services/beszel.md new file mode 100644 index 00000000..5d8222c9 --- /dev/null +++ b/docs/widgets/services/beszel.md @@ -0,0 +1,30 @@ +--- +title: Beszel +description: Beszel Widget Configuration +--- + +Learn more about [Beszel](https://github.com/henrygd/beszel) + +The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided. + +The `systemID` is the `id` field on the collections page of Beszel under the PocketBase admin panel. You can also use the 'nice name' from the Beszel UI. + +A "superuser" is currently required to access the data from tbe Beszel API. + +Allowed fields for 'overview' mode: `["systems", "up"]` +Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]` + +| Beszel Version | Homepage Widget Version | +| -------------- | ----------------------- | +| < 0.9.0 | 1 (default) | +| >= 0.9.0 | 2 | + +```yaml +widget: + type: beszel + url: http://beszel.host.or.ip + username: username # email + password: password + systemId: systemId # optional + version: 2 # optional, default is 1 +``` diff --git a/docs/widgets/services/caddy.md b/docs/widgets/services/caddy.md new file mode 100644 index 00000000..8c088f63 --- /dev/null +++ b/docs/widgets/services/caddy.md @@ -0,0 +1,14 @@ +--- +title: Caddy +description: Caddy Widget Configuration +--- + +Learn more about [Caddy](https://github.com/caddyserver/caddy). + +Allowed fields: `["upstreams", "requests", "requests_failed"]`. + +```yaml +widget: + type: caddy + url: http://caddy.host.or.ip:adminport # default admin port is 2019 +``` diff --git a/docs/widgets/services/calendar.md b/docs/widgets/services/calendar.md new file mode 100644 index 00000000..bb8b5016 --- /dev/null +++ b/docs/widgets/services/calendar.md @@ -0,0 +1,57 @@ +--- +title: Calendar +description: Calendar widget +--- + +## Monthly view + +calendar + +This widget shows monthly calendar, with optional integrations to show events from supported widgets. + +```yaml +widget: + type: calendar + firstDayInWeek: sunday # optional - defaults to monday + view: monthly # optional - possible values monthly, agenda + maxEvents: 10 # optional - defaults to 10 + showTime: true # optional - show time for event happening today - defaults to false + timezone: America/Los_Angeles # optional and only when timezone is not detected properly (slightly slower performance) - force timezone for ical events (if it's the same - no change, if missing or different in ical - will be converted to this timezone) + integrations: # optional + - type: sonarr # active widget type that is currently enabled on homepage - possible values: radarr, sonarr, lidarr, readarr, ical + service_group: Media # group name where widget exists + service_name: Sonarr # service name for that widget + color: teal # optional - defaults to pre-defined color for the service (teal for sonarr) + params: # optional - additional params for the service + unmonitored: true # optional - defaults to false, used with *arr stack + - type: ical # Show calendar events from another service + url: https://domain.url/with/link/to.ics # URL with calendar events + name: My Events # required - name for these calendar events + color: zinc # optional - defaults to pre-defined color for the service (zinc for ical) + params: # optional - additional params for the service + showName: true # optional - show name before event title in event line - defaults to false +``` + +## Agenda + +This view shows only list of events from configured integrations + +```yaml +widget: + type: calendar + view: agenda + maxEvents: 10 # optional - defaults to 10 + showTime: true # optional - show time for event happening today - defaults to false + previousDays: 3 # optional - shows events since three days ago - defaults to 0 + integrations: # same as in Monthly view example +``` + +## Integrations + +Currently integrated widgets are [sonarr](sonarr.md), [radarr](radarr.md), [lidarr](lidarr.md) and [readarr](readarr.md). + +Supported colors can be found on [color palette](../../configs/settings.md#color-palette). + +### iCal + +This custom integration allows you to show events from any calendar that supports iCal format, for example, Google Calendar (go to `Settings`, select specific calendar, go to `Integrate calendar`, copy URL from `Public Address in iCal format`). diff --git a/docs/widgets/services/calibre-web.md b/docs/widgets/services/calibre-web.md new file mode 100644 index 00000000..cbf99675 --- /dev/null +++ b/docs/widgets/services/calibre-web.md @@ -0,0 +1,18 @@ +--- +title: Calibre-web +description: Calibre-web Widget Configuration +--- + +Learn more about [Calibre-web](https://github.com/janeczku/calibre-web). + +**Note: widget requires calibre-web ≥ v0.6.21.** + +Allowed fields: `["books", "authors", "categories", "series"]`. + +```yaml +widget: + type: calibreweb + url: http://your.calibreweb.host:port + username: username + password: password +``` diff --git a/docs/widgets/services/changedetectionio.md b/docs/widgets/services/changedetectionio.md new file mode 100644 index 00000000..605f8648 --- /dev/null +++ b/docs/widgets/services/changedetectionio.md @@ -0,0 +1,17 @@ +--- +title: Changedetection.io +description: Changedetection.io Widget Configuration +--- + +Learn more about [Changedetection.io](https://github.com/dgtlmoon/changedetection.io). + +Find your API key under `Settings > API`. + +Allowed fields: `["diffsDetected", "totalObserved"]`. + +```yaml +widget: + type: changedetectionio + url: http://changedetection.host.or.ip:port + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/channelsdvrserver.md b/docs/widgets/services/channelsdvrserver.md new file mode 100644 index 00000000..9dcafa58 --- /dev/null +++ b/docs/widgets/services/channelsdvrserver.md @@ -0,0 +1,12 @@ +--- +title: Channels DVR Server +description: Channels DVR Server Widget Configuration +--- + +Learn more about [Channels DVR Server](https://getchannels.com/dvr-server/). + +```yaml +widget: + type: channelsdvrserver + url: http://server.host.or.ip:port +``` diff --git a/docs/widgets/services/cloudflared.md b/docs/widgets/services/cloudflared.md new file mode 100644 index 00000000..385fd59c --- /dev/null +++ b/docs/widgets/services/cloudflared.md @@ -0,0 +1,18 @@ +--- +title: Cloudflare Tunnels +description: Cloudflare Tunnels Widget Configuration +--- + +Learn more about [Cloudflare Tunnels](https://www.cloudflare.com/products/tunnel/). + +_As of v0.6.10 this widget no longer accepts a Cloudflare global API key (or account email) due to security concerns. Instead, you should setup an API token which only requires the permissions `Account.Cloudflare Tunnel:Read`._ + +Allowed fields: `["status", "origin_ip"]`. + +```yaml +widget: + type: cloudflared + accountid: accountid # from zero trust dashboard url e.g. https://one.dash.cloudflare.com//home/quick-start + tunnelid: tunnelid # found in tunnels dashboard under the tunnel name + key: cloudflareapitoken # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens +``` diff --git a/docs/widgets/services/coin-market-cap.md b/docs/widgets/services/coin-market-cap.md new file mode 100644 index 00000000..d57c512c --- /dev/null +++ b/docs/widgets/services/coin-market-cap.md @@ -0,0 +1,28 @@ +--- +title: Coin Market Cap +description: Coin Market Cap Widget Configuration +--- + +Learn more about [Coin Market Cap](https://coinmarketcap.com/api). + +Get your API key from your [CoinMarketCap Pro Dashboard](https://pro.coinmarketcap.com/account). + +Allowed fields: no configurable fields for this widget. + +```yaml +widget: + type: coinmarketcap + currency: GBP # Optional + symbols: [BTC, LTC, ETH] + key: apikeyapikeyapikeyapikeyapikey + defaultinterval: 7d # Optional +``` + +You can also specify slugs instead of symbols (since symbols aren't guaranteed to be unique). If you supply both, slugs will be used. For example: + +```yaml +widget: + type: coinmarketcap + slugs: [chia-network, uniswap] + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/crowdsec.md b/docs/widgets/services/crowdsec.md new file mode 100644 index 00000000..da15a478 --- /dev/null +++ b/docs/widgets/services/crowdsec.md @@ -0,0 +1,19 @@ +--- +title: Crowdsec +description: Crowdsec Widget Configuration +--- + +Learn more about [Crowdsec](https://crowdsec.net). + +See the [crowdsec docs](https://docs.crowdsec.net/docs/local_api/intro/#machines) for information about registering a machine, +in most instances you can use the default credentials (`/etc/crowdsec/local_api_credentials.yaml`). + +Allowed fields: `["alerts", "bans"]`. + +```yaml +widget: + type: crowdsec + url: http://crowdsechostorip:port + username: localhost # machine_id in crowdsec + password: password +``` diff --git a/docs/widgets/services/customapi.md b/docs/widgets/services/customapi.md new file mode 100644 index 00000000..70947a10 --- /dev/null +++ b/docs/widgets/services/customapi.md @@ -0,0 +1,240 @@ +--- +title: Custom API +description: Custom Widget Configuration from the API +--- + +This widget can show information from custom self-hosted or third party API. + +Fields need to be defined in the `mappings` section YAML object to correlate with the value in the APIs JSON object. Final field definition needs to be the key with the desired value information. + +```yaml +widget: + type: customapi + url: http://custom.api.host.or.ip:port/path/to/exact/api/endpoint + refreshInterval: 10000 # optional - in milliseconds, defaults to 10s + username: username # auth - optional + password: password # auth - optional + method: GET # optional, e.g. POST + headers: # optional, must be object, see below + requestBody: # optional, can be string or object, see below + display: # optional, default to block, see below + mappings: + - field: key + label: Field 1 + format: text # optional - defaults to text + - field: path.to.key2 + format: number # optional - defaults to text + label: Field 2 + - field: path.to.another.key3 + label: Field 3 + format: percent # optional - defaults to text + - field: key + label: Field 4 + format: date # optional - defaults to text + locale: nl # optional + dateStyle: long # optional - defaults to "long". Allowed values: `["full", "long", "medium", "short"]`. + timeStyle: medium # optional - Allowed values: `["full", "long", "medium", "short"]`. + - field: key + label: Field 5 + format: relativeDate # optional - defaults to text + locale: nl # optional + style: short # optional - defaults to "long". Allowed values: `["long", "short", "narrow"]`. + numeric: auto # optional - defaults to "always". Allowed values `["always", "auto"]`. + - field: key + label: Field 6 + format: text + additionalField: # optional + field: hourly.time.key + color: theme # optional - defaults to "". Allowed values: `["theme", "adaptive", "black", "white"]`. + format: date # optional + - field: key + label: Number of things in array + format: size + # This (no field) will take the root of the API response, e.g. when APIs return an array: + - label: Number of items + format: size +``` + +Supported formats for the values are `text`, `number`, `float`, `percent`, `duration`, `bytes`, `bitrate`, `size`, `date` and `relativeDate`. + +The `dateStyle` and `timeStyle` options of the `date` format are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) and the `style` and `numeric` options of `relativeDate` are passed to [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat). + +The `duration` format expects the duration to be specified in seconds. The `scale` transformation tool can be used if a conversion is required. + +The `size` format will return the length of the array or string, or the number of keys in an object. This is then formatted as `number`. + +## Example + +For the following JSON object from the API: + +```json +{ + "id": 1, + "name": "Rick Sanchez", + "status": "Alive", + "species": "Human", + "gender": "Male", + "origin": { + "name": "Earth (C-137)" + }, + "locations": [ + { + "name": "Earth (C-137)" + }, + { + "name": "Citadel of Ricks" + } + ] +} +``` + +Define the `mappings` section as an array, for example: + +```yaml +mappings: + - field: name # Rick Sanchez + label: Name + - field: status # Alive + label: Status + - field: origin.name # Earth (C-137) + label: Origin + - field: locations.1.name # Citadel of Ricks + label: Location +``` + +Note that older versions of the widget accepted fields as a yaml object, which is still supported. E.g.: + +```yaml +mappings: + - field: + locations: + 1: name # Citadel of Ricks + label: Location +``` + +## Data Transformation + +You can manipulate data with the following tools `remap`, `scale`, `prefix` and `suffix`, for example: + +```yaml +- field: key4 + label: Field 4 + format: text + remap: + - value: 0 + to: None + - value: 1 + to: Connected + - any: true # will map all other values + to: Unknown +- field: key5 + label: Power + format: float + scale: 0.001 # can be number or string e.g. 1/16 + suffix: "kW" +- field: key6 + label: Price + format: float + prefix: "$" +``` + +## Display Options + +The widget supports different display modes that can be set using the `display` property. + +### Block View (Default) + +The default display mode is `block`, which shows fields in a block format. + +### List View + +You can change the default block view to a list view by setting the `display` option to `list`. + +The list view can optionally display an additional field next to the primary field. + +`additionalField`: Similar to `field`, but only used in list view. Displays additional information for the mapping object on the right. + +`field`: Defined the same way as other custom api widget fields. + +`color`: Allowed options: `"theme", "adaptive", "black", "white"`. The option `adaptive` will apply a color using the value of the `additionalField`, green for positive numbers, red for negative numbers. + +```yaml +- field: key + label: Field + format: text + remap: + - value: 0 + to: None + - value: 1 + to: Connected + - any: true # will map all other values + to: Unknown + additionalField: + field: hourly.time.key + color: theme + format: date +``` + +### Dynamic List View + +To display a list of items from an array in the API response, set the `display` property to `dynamic-list` and configure the `mappings` object with the following properties: + +```yaml +widget: + type: customapi + url: https://example.com/api/servers + display: dynamic-list + mappings: + items: data # optional, the path to the array in the API response. Omit this option if the array is at the root level + name: id # required, field in each item to use as the item name (left side) + label: ip_address # required, field in each item to use as the item label (right side) + limit: 5 # optional, limit the number of items to display + target: https://example.com/server/{id} # optional, makes items clickable with template support +``` + +This configuration would work with an API that returns a response like: + +```json +{ + "data": [ + { "id": "server1", "name": "Server 1", "ip_address": "192.168.0.1" }, + { "id": "server2", "name": "Server 2", "ip_address": "192.168.0.2" } + ] +} +``` + +The widget would display a list with two items: + +- "Server 1" on the left and "192.168.0.1" on the right, clickable to "https://example.com/server/server1" +- "Server 2" on the left and "192.168.0.2" on the right, clickable to "https://example.com/server/server2" + +For nested fields in the items, you can use dot notation: + +```yaml +mappings: + items: data.results.servers + name: details.id + label: details.name +``` + +## Custom Headers + +Pass custom headers using the `headers` option, for example: + +```yaml +headers: + X-API-Token: token +``` + +## Custom Request Body + +Pass custom request body using the `requestBody` option in either a string or object format. Objects will automatically be converted to a JSON string. + +```yaml +requestBody: + foo: bar +# or +requestBody: "{\"foo\":\"bar\"}" +``` + +Both formats result in `{"foo":"bar"}` being sent as the request body. Don't forget to set your `Content-Type` headers! diff --git a/docs/widgets/services/deluge.md b/docs/widgets/services/deluge.md new file mode 100644 index 00000000..8b925a9a --- /dev/null +++ b/docs/widgets/services/deluge.md @@ -0,0 +1,18 @@ +--- +title: Deluge +description: Deluge Widget Configuration +--- + +Learn more about [Deluge](https://deluge-torrent.org/). + +Uses the same password used to login to the webui, see [the deluge FAQ](https://dev.deluge-torrent.org/wiki/Faq#Whatisthedefaultpassword). + +Allowed fields: `["leech", "download", "seed", "upload"]`. + +```yaml +widget: + type: deluge + url: http://deluge.host.or.ip + password: password # webui password + enableLeechProgress: true # optional, defaults to false +``` diff --git a/docs/widgets/services/develancacheui.md b/docs/widgets/services/develancacheui.md new file mode 100644 index 00000000..d385fe78 --- /dev/null +++ b/docs/widgets/services/develancacheui.md @@ -0,0 +1,14 @@ +--- +title: DeveLanCacheUI +description: DeveLanCacheUI Widget Configuration +--- + +Learn more about [DeveLanCacheUI](https://github.com/devedse/DeveLanCacheUI_Backend). + +```yaml +widget: + type: develancacheui + url: http://your.develancacheui_backend.host:port +``` + +The url should point to the DeveLanCacheUI Backend (API) diff --git a/docs/widgets/services/diskstation.md b/docs/widgets/services/diskstation.md new file mode 100644 index 00000000..55e28355 --- /dev/null +++ b/docs/widgets/services/diskstation.md @@ -0,0 +1,43 @@ +--- +title: Synology Disk Station +description: Synology Disk Station Widget Configuration +--- + +Learn more about [Synology Disk Station](https://www.synology.com/en-global/dsm). + +Note: the widget is not compatible with 2FA. + +An optional 'volume' parameter can be supplied to specify which volume's free space to display when more than one volume exists. The value of the parameter must be in form of `volume_N`, e.g. to display free space for volume2, `volume_2` should be set as 'volume' value. If omitted, first returned volume's free space will be shown (not guaranteed to be volume1). + +Allowed fields: `["uptime", "volumeAvailable", "resources.cpu", "resources.mem"]`. + +To access these system metrics you need to connect to the DiskStation (`DSM`) with an account that is a member of the default `Administrators` group. That is because these metrics are requested from the API's `SYNO.Core.System` part that is only available to admin users. In order to keep the security impact as small as possible we can set the account in DSM up to limit the user's permissions inside the Synology system. In DSM 7.x, for instance, follow these steps: + +1. Create a new user, i.e. `remote_stats`. +2. Set up a strong password for the new user +3. Under the `User Groups` tab of the user config dialogue check the box for `Administrators`. +4. On the `Permissions` tab check the top box for `No Access`, effectively prohibiting the user from accessing anything in the shared folders. +5. Under `Applications` check the box next to `Deny` in the header to explicitly prohibit login to all applications. +6. Now _only_ allow login to the `DSM` application, either by + - unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings) + - checking `Allow` for this app, or + - checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets. +7. When the `Preview` column shows `Allow` in the `DSM` row, click `Save`. + +Now configure the widget with the correct login information and test it. + +If you encounter issues during testing: + +1. Make sure to uncheck the option for automatic blocking due to invalid logins under `Control Panel > Security > Protection`. + - If desired, this setting can be reactivated once the login is established working. +2. Login to your Synology DSM with the newly created account and accept terms and conditions. +3. Reattempt + +```yaml +widget: + type: diskstation + url: http://diskstation.host.or.ip:port + username: username + password: password + volume: volume_N # optional +``` diff --git a/docs/widgets/services/downloadstation.md b/docs/widgets/services/downloadstation.md new file mode 100644 index 00000000..5a6d3b2f --- /dev/null +++ b/docs/widgets/services/downloadstation.md @@ -0,0 +1,18 @@ +--- +title: Synology Download Station +description: Synology Download Station Widget Configuration +--- + +Learn more about [Synology Download Station](https://www.synology.com/en-us/dsm/packages/DownloadStation). + +Note: the widget is not compatible with 2FA. + +Allowed fields: `["leech", "download", "seed", "upload"]`. + +```yaml +widget: + type: downloadstation + url: http://downloadstation.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/emby.md b/docs/widgets/services/emby.md new file mode 100644 index 00000000..e658d73b --- /dev/null +++ b/docs/widgets/services/emby.md @@ -0,0 +1,22 @@ +--- +title: Emby +description: Emby Widget Configuration +--- + +Learn more about [Emby](https://github.com/MediaBrowser/Emby). + +You can create an API key from inside Emby 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. + +```yaml +widget: + type: emby + url: http://emby.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + enableBlocks: true # optional, defaults to false + enableNowPlaying: true # optional, defaults to true + enableUser: true # optional, defaults to false + showEpisodeNumber: true # optional, defaults to false + expandOneStreamToTwoRows: false # optional, defaults to true +``` diff --git a/docs/widgets/services/esphome.md b/docs/widgets/services/esphome.md new file mode 100644 index 00000000..e5dacb96 --- /dev/null +++ b/docs/widgets/services/esphome.md @@ -0,0 +1,21 @@ +--- +title: ESPHome +description: ESPHome Widget Configuration +--- + +Learn more about [ESPHome](https://esphome.io/). + +Show the number of ESPHome devices based on their state. + +Allowed fields: `["total", "online", "offline", "offline_alt", "unknown"]` (maximum of 4). + +By default ESPHome will only mark devices as `offline` if their address cannot be pinged. If it has an invalid config or its name cannot be resolved (by DNS) its status will be marked as `unknown`. +To group both `offline` and `unknown` devices together, users should use the `offline_alt` field instead. This sums all devices that are _not_ online together. + +```yaml +widget: + type: esphome + url: http://esphome.host.or.ip:port + username: myesphomeuser # only if auth enabled + password: myesphomepass # only if auth enabled +``` diff --git a/docs/widgets/services/evcc.md b/docs/widgets/services/evcc.md new file mode 100644 index 00000000..1d3af2ba --- /dev/null +++ b/docs/widgets/services/evcc.md @@ -0,0 +1,14 @@ +--- +title: EVCC +description: EVCC Widget Configuration +--- + +Learn more about [EVCC](https://github.com/evcc-io/evcc). + +Allowed fields: `["pv_power", "grid_power", "home_power", "charge_power]`. + +```yaml +widget: + type: evcc + url: http://evcc.host.or.ip:port +``` diff --git a/docs/widgets/services/fileflows.md b/docs/widgets/services/fileflows.md new file mode 100644 index 00000000..e05ca527 --- /dev/null +++ b/docs/widgets/services/fileflows.md @@ -0,0 +1,14 @@ +--- +title: Fileflows +description: Fileflows Widget Configuration +--- + +Learn more about [FileFlows](https://github.com/revenz/FileFlows). + +Allowed fields: `["queue", "processing", "processed", "time"]`. + +```yaml +widget: + type: fileflows + url: http://your.fileflows.host:port +``` diff --git a/docs/widgets/services/firefly.md b/docs/widgets/services/firefly.md new file mode 100644 index 00000000..38793ce2 --- /dev/null +++ b/docs/widgets/services/firefly.md @@ -0,0 +1,17 @@ +--- +title: Firefly III +description: Firefly III Widget Configuration +--- + +Learn more about [Firefly III](https://www.firefly-iii.org/). + +Find your API key under `Options > Profile > OAuth > Personal Access Tokens`. + +Allowed fields: `["networth" ,"budget"]`. + +```yaml +widget: + type: firefly + url: https://firefly.host.or.ip + key: personalaccesstoken.personalaccesstoken.personalaccesstoken +``` diff --git a/docs/widgets/services/flood.md b/docs/widgets/services/flood.md new file mode 100644 index 00000000..3aaeb49c --- /dev/null +++ b/docs/widgets/services/flood.md @@ -0,0 +1,16 @@ +--- +title: Flood +description: Flood Widget Configuration +--- + +Learn more about [Flood](https://github.com/jesec/flood). + +Allowed fields: `["leech", "download", "seed", "upload"]`. + +```yaml +widget: + type: flood + url: http://flood.host.or.ip + username: username # if set + password: password # if set +``` diff --git a/docs/widgets/services/freshrss.md b/docs/widgets/services/freshrss.md new file mode 100644 index 00000000..bc09e6a9 --- /dev/null +++ b/docs/widgets/services/freshrss.md @@ -0,0 +1,18 @@ +--- +title: FreshRSS +description: FreshRSS Widget Configuration +--- + +Learn more about [FreshRSS](https://github.com/FreshRSS/FreshRSS). + +Please refer to [Enable the API in FreshRSS](https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#enable-the-api-in-freshrss) for the "API password" to be entered in the password field. + +Allowed fields: `["subscriptions", "unread"]`. + +```yaml +widget: + type: freshrss + url: http://freshrss.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/frigate.md b/docs/widgets/services/frigate.md new file mode 100644 index 00000000..411c3cc7 --- /dev/null +++ b/docs/widgets/services/frigate.md @@ -0,0 +1,17 @@ +--- +title: Frigate +description: Frigate Widget Configuration +--- + +Learn more about [Frigate](https://frigate.video/). + +Allowed fields: `["cameras", "uptime", "version"]`. + +A recent event listing is disabled by default, but can be enabled with the `enableRecentEvents` option. + +```yaml +widget: + type: frigate + url: http://frigate.host.or.ip:port + enableRecentEvents: true # Optional, defaults to false +``` diff --git a/docs/widgets/services/fritzbox.md b/docs/widgets/services/fritzbox.md new file mode 100644 index 00000000..258b094b --- /dev/null +++ b/docs/widgets/services/fritzbox.md @@ -0,0 +1,22 @@ +--- +title: FRITZ!Box +description: FRITZ!Box Widget Configuration +--- + +Application access & UPnP must be activated on your device: + +``` +Home Network > Network > Network Settings > Access Settings in the Home Network +[x] Allow access for applications +[x] Transmit status information over UPnP +``` + +Credentials are not needed and, as such, you may want to consider using `http` instead of `https` as those requests are significantly faster. + +Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress", "externalIPv6Address", "externalIPv6Prefix"]`. + +```yaml +widget: + type: fritzbox + url: http://192.168.178.1 +``` diff --git a/docs/widgets/services/gamedig.md b/docs/widgets/services/gamedig.md new file mode 100644 index 00000000..6e7eb4d5 --- /dev/null +++ b/docs/widgets/services/gamedig.md @@ -0,0 +1,17 @@ +--- +title: GameDig +description: GameDig Widget Configuration +--- + +Learn more about [GameDig](https://github.com/gamedig/node-gamedig). + +Uses the [GameDig](https://www.npmjs.com/package/gamedig) library to get game server information for any supported server type. + +Allowed fields (limited to a max of 4): `["status", "name", "map", "currentPlayers", "players", "maxPlayers", "bots", "ping"]`. + +```yaml +widget: + type: gamedig + serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list + url: udp://server.host.or.ip:port +``` diff --git a/docs/widgets/services/gatus.md b/docs/widgets/services/gatus.md new file mode 100644 index 00000000..3918b9f3 --- /dev/null +++ b/docs/widgets/services/gatus.md @@ -0,0 +1,12 @@ +--- +title: Gatus +description: Gatus Widget Configuration +--- + +Allowed fields: `["up", "down", "uptime"]`. + +```yaml +widget: + type: gatus + url: http://gatus.host.or.ip:port +``` diff --git a/docs/widgets/services/ghostfolio.md b/docs/widgets/services/ghostfolio.md new file mode 100644 index 00000000..42e03bb5 --- /dev/null +++ b/docs/widgets/services/ghostfolio.md @@ -0,0 +1,25 @@ +--- +title: Ghostfolio +description: Ghostfolio Widget Configuration +--- + +Learn more about [Ghostfolio](https://github.com/ghostfolio/ghostfolio). + +Authentication requires manually obtaining a Bearer token which can be obtained by make a POST request to the API e.g. + +``` +curl -X POST http://localhost:3333/api/v1/auth/anonymous -H 'Content-Type: application/json' -d '{ "accessToken": "SECURITY_TOKEN_OF_ACCOUNT" }' +``` + +See the [official docs](https://github.com/ghostfolio/ghostfolio#authorization-bearer-token). + +_Note that the Bearer token is valid for 6 months, after which a new one must be generated._ + +Allowed fields: `["gross_percent_today", "gross_percent_1y", "gross_percent_max"]` + +```yaml +widget: + type: ghostfolio + url: http://ghostfoliohost:port + key: ghostfoliobearertoken +``` diff --git a/docs/widgets/services/gitea.md b/docs/widgets/services/gitea.md new file mode 100644 index 00000000..eb47849d --- /dev/null +++ b/docs/widgets/services/gitea.md @@ -0,0 +1,17 @@ +--- +title: Gitea +description: Gitea Widget Configuration +--- + +Learn more about [Gitea](https://gitea.com). + +API token requires `notifications`, `repository` and `issue` permissions. See the [gitea documentation](https://docs.gitea.com/development/api-usage#generating-and-listing-api-tokens) for details on generating tokens. + +Allowed fields: `["repositories", "notifications", "issues", "pulls"]`. + +```yaml +widget: + type: gitea + url: http://gitea.host.or.ip:port + key: giteaapitoken +``` diff --git a/docs/widgets/services/gitlab.md b/docs/widgets/services/gitlab.md new file mode 100644 index 00000000..a92434d8 --- /dev/null +++ b/docs/widgets/services/gitlab.md @@ -0,0 +1,20 @@ +--- +title: Gitlab +description: Gitlab Widget Configuration +--- + +Learn more about [Gitlab](https://gitlab.com). + +API requires a personal access token with either `read_api` or `api` permission. See the [gitlab documentation](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token) for details on generating one. + +Your Gitlab user ID can be found on [your profile page](https://support.circleci.com/hc/en-us/articles/20761157174043-How-to-find-your-GitLab-User-ID). + +Allowed fields: `["events", "issues", "merges", "projects"]`. + +```yaml +widget: + type: gitlab + url: http://gitlab.host.or.ip:port + key: personal-access-token + user_id: 123456 +``` diff --git a/docs/widgets/services/glances.md b/docs/widgets/services/glances.md new file mode 100644 index 00000000..d28462eb --- /dev/null +++ b/docs/widgets/services/glances.md @@ -0,0 +1,81 @@ +--- +title: Glances +description: Glances Widget Configuration +--- + +Learn more about [Glances](https://github.com/nicolargo/glances). + +glances + +_(Find the Glances information widget [here](../info/glances.md))_ + +The Glances widget allows you to monitor the resources (cpu, memory, diskio, sensors & processes) of host or another machine. You can have multiple instances by adding another service block. + +```yaml +widget: + type: glances + url: http://glances.host.or.ip:port + username: user # optional if auth enabled in Glances + password: pass # optional if auth enabled in Glances + version: 4 # required only if running glances v4 or higher, defaults to 3 + metric: cpu + diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk + refreshInterval: 5000 # optional - in milliseconds, defaults to 1000 or more, depending on the metric + pointsLimit: 15 # optional, defaults to 15 +``` + +_Please note, this widget does not need an `href`, `icon` or `description` on its parent service. To achieve the same effect as the examples above, see as an example:_ + +```yaml +- CPU Usage: + widget: + type: glances + url: http://glances.host.or.ip:port + metric: cpu +- Network Usage: + widget: + type: glances + url: http://glances.host.or.ip:port + metric: network:enp0s25 +``` + +## Metrics + +The metric field in the configuration determines the type of system monitoring data to be displayed. Here are the supported metrics: + +`info`: System information. Shows the system's hostname, OS, kernel version, CPU type, CPU usage, RAM usage and SWAP usage. + +`cpu`: CPU usage. Shows how much of the system's computational resources are currently being used. + +`memory`: Memory usage. Shows how much of the system's RAM is currently being used. + +`process`: Top 5 processes based on CPU usage. Gives an overview of which processes are consuming the most resources. + +`containers`: Docker or Kubernetes containers list. Shows up to 5 containers running on the system and their resource usage. + +`network:`: Network data usage for the specified interface. Replace `` with the name of your network interface, e.g., `network:enp0s25`, as specified in glances. + +`sensor:`: Temperature of the specified sensor, typically used to monitor CPU temperature. Replace `` with the name of your sensor, e.g., `sensor:Package id 0` as specified in glances. + +`disk:`: Disk I/O data for the specified disk. Replace `` with the id of your disk, e.g., `disk:sdb`, as specified in glances. + +`gpu:`: GPU usage for the specified GPU. Replace `` with the id of your GPU, e.g., `gpu:0`, as specified in glances. + +`fs:`: Disk usage for the specified mount point. Replace `` with the path of your disk, e.g., `/mnt/storage`, as specified in glances. + +## Views + +All widgets offer an alternative to the full or "graph" view, which is the compact, or "graphless" view. + +Screenshot 2023-09-06 at 1 51 48 PM + +To switch to the alternative "graphless" view, simply pass `chart: false` as an option to the widget, like so: + +```yaml +- Network Usage: + widget: + type: glances + url: http://glances.host.or.ip:port + metric: network:enp0s25 + chart: false +``` diff --git a/docs/widgets/services/gluetun.md b/docs/widgets/services/gluetun.md new file mode 100644 index 00000000..1cc68c9a --- /dev/null +++ b/docs/widgets/services/gluetun.md @@ -0,0 +1,21 @@ +--- +title: Gluetun +description: Gluetun Widget Configuration +--- + +Learn more about [Gluetun](https://github.com/qdm12/gluetun). + +!!! note + + Requires [HTTP control server options](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md) to be enabled. By default this runs on port `8000`. + +Allowed fields: `["public_ip", "region", "country"]`. + +To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. + +```yaml +widget: + type: gluetun + url: http://gluetun.host.or.ip:port + key: gluetunkey # Not required if /v1/publicip/ip endpoint is configured with `auth = none` +``` diff --git a/docs/widgets/services/gotify.md b/docs/widgets/services/gotify.md new file mode 100644 index 00000000..785b55a4 --- /dev/null +++ b/docs/widgets/services/gotify.md @@ -0,0 +1,17 @@ +--- +title: Gotify +description: Gotify Widget Configuration +--- + +Learn more about [Gotify](https://github.com/gotify/server). + +Get a Gotify client token from an existing client or create a new one on your Gotify admin page. + +Allowed fields: `["apps", "clients", "messages"]`. + +```yaml +widget: + type: gotify + url: http://gotify.host.or.ip + key: clientoken +``` diff --git a/docs/widgets/services/grafana.md b/docs/widgets/services/grafana.md new file mode 100644 index 00000000..272cc3ba --- /dev/null +++ b/docs/widgets/services/grafana.md @@ -0,0 +1,16 @@ +--- +title: Grafana +description: Grafana Widget Configuration +--- + +Learn more about [Grafana](https://github.com/grafana/grafana). + +Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered"]`. + +```yaml +widget: + type: grafana + url: http://grafana.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/hdhomerun.md b/docs/widgets/services/hdhomerun.md new file mode 100644 index 00000000..261ab046 --- /dev/null +++ b/docs/widgets/services/hdhomerun.md @@ -0,0 +1,18 @@ +--- +title: HDHomerun +description: HDHomerun Widget Configuration +--- + +Learn more about [HDHomerun](https://www.silicondust.com/support/downloads/). + +Allowed fields: `["channels", "hd", "tunerCount", "channelNumber", "channelNetwork", "signalStrength", "signalQuality", "symbolQuality", "networkRate", "clientIP" ]`. + +If more than 4 fields are provided, only the first 4 are displayed. + +```yaml +widget: + type: hdhomerun + url: http://hdhomerun.host.or.ip + tuner: 0 # optional - defaults to 0, used for tuner-specific fields + fields: ["channels", "hd"] # optional - default fields shown +``` diff --git a/docs/widgets/services/headscale.md b/docs/widgets/services/headscale.md new file mode 100644 index 00000000..376db542 --- /dev/null +++ b/docs/widgets/services/headscale.md @@ -0,0 +1,20 @@ +--- +title: Headscale +description: Headscale Widget Configuration +--- + +Learn more about [Headscale](https://headscale.net/). + +You will need to generate an API access token from the [command line](https://headscale.net/ref/remote-cli/#create-an-api-key) using `headscale apikeys create` command. + +To find your node ID, you can use `headscale nodes list` command. + +Allowed fields: `["name", "address", "last_seen", "status"]`. + +```yaml +widget: + type: headscale + url: http://headscale.host.or.ip:port + nodeId: nodeid + key: headscaleapiaccesstoken +``` diff --git a/docs/widgets/services/healthchecks.md b/docs/widgets/services/healthchecks.md new file mode 100644 index 00000000..136d9fe6 --- /dev/null +++ b/docs/widgets/services/healthchecks.md @@ -0,0 +1,25 @@ +--- +title: Health checks +description: Health checks Widget Configuration +--- + +Learn more about [Health Checks](https://github.com/healthchecks/healthchecks). + +Specify a single check by including the `uuid` field or show the total 'up' and 'down' for all +checks by leaving off the `uuid` field. + +To use the Health Checks widget, you first need to generate an API key. + +1. In your project, go to project Settings on the navigation bar. +2. Click on API key (read-only) and then click _Create_. +3. Copy the API key that is generated for you. + +Allowed fields: `["status", "last_ping"]` for single checks, `["up", "down"]` for total stats. + +```yaml +widget: + type: healthchecks + url: http://healthchecks.host.or.ip:port + key: + uuid: # optional, if not included total statistics for all checks is shown +``` diff --git a/docs/widgets/services/homeassistant.md b/docs/widgets/services/homeassistant.md new file mode 100644 index 00000000..fc98ed88 --- /dev/null +++ b/docs/widgets/services/homeassistant.md @@ -0,0 +1,38 @@ +--- +title: Home Assistant +description: Home Assistant Widget Configuration +--- + +Learn more about [Home Assistant](https://www.home-assistant.io/). + +You will need to generate a long-lived access token for an existing Home Assistant user in its profile. + +Allowed fields: `["people_home", "lights_on", "switches_on"]`. + +--- + +Up to a maximum of four custom states and/or templates can be queried via the `custom` property like in the example below. +The `custom` property will have no effect as long as the `fields` property is defined. + +- `state` will query the state of the specified `entity_id` + - state labels and values can be user defined and may reference entity attributes in curly brackets + - if no state label is defined it will default to `"{attributes.friendly_name}"` + - if no state value is defined it will default to `"{state} {attributes.unit_of_measurement}"` +- `template` will query the specified template, see [Home Assistant Templating](https://www.home-assistant.io/docs/configuration/templating) + - if no template label is defined it will be empty + +```yaml +widget: + type: homeassistant + url: http://homeassistant.host.or.ip:port + key: access_token + custom: + - state: sensor.total_power + - state: sensor.total_energy_today + label: energy today + - template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}" + label: switches on + - state: weather.forecast_home + label: wind speed + value: "{attributes.wind_speed} {attributes.wind_speed_unit}" +``` diff --git a/docs/widgets/services/homebox.md b/docs/widgets/services/homebox.md new file mode 100644 index 00000000..af9ebad5 --- /dev/null +++ b/docs/widgets/services/homebox.md @@ -0,0 +1,23 @@ +--- +title: Homebox +description: Homebox Widget Configuration +--- + +Learn more about [Homebox](https://github.com/hay-kot/homebox). + +Uses the same username and password used to login from the web. + +The `totalValue` field will attempt to format using the currency you have configured in Homebox. + +Allowed fields: `["items", "totalWithWarranty", "locations", "labels", "users", "totalValue"]`. + +If more than 4 fields are provided, only the first 4 are displayed. + +```yaml +widget: + type: homebox + url: http://homebox.host.or.ip:port + username: username + password: password + fields: ["items", "locations", "totalValue"] # optional - default fields shown +``` diff --git a/docs/widgets/services/homebridge.md b/docs/widgets/services/homebridge.md new file mode 100644 index 00000000..1fb64132 --- /dev/null +++ b/docs/widgets/services/homebridge.md @@ -0,0 +1,18 @@ +--- +title: Homebridge +description: Homebridge +--- + +Learn more about [Homebridge](https://github.com/homebridge/homebridge). + +The Homebridge API is actually provided by the Config UI X plugin that has been included with Homebridge for a while, still it is required to be installed for this widget to work. + +Allowed fields: `["updates", "child_bridges"]`. + +```yaml +widget: + type: homebridge + url: http://homebridge.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/iframe.md b/docs/widgets/services/iframe.md new file mode 100644 index 00000000..e60f43f0 --- /dev/null +++ b/docs/widgets/services/iframe.md @@ -0,0 +1,35 @@ +--- +title: iFrame +Description: Add a custom iFrame Widget +--- + +A basic iFrame widget to show external content, see the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) for more details about some of the options. + +!!! warning + + Requests made via the iFrame widget are inherently **not proxied** as they are made from the browser itself. + +## Basic Example + +```yaml +widget: + type: iframe + name: myIframe + src: http://example.com +``` + +## Full Example + +```yaml +widget: + type: iframe + name: myIframe + src: http://example.com + classes: h-60 sm:h-60 md:h-60 lg:h-60 xl:h-60 2xl:h-72 # optional, use tailwind height classes, see https://tailwindcss.com/docs/height + referrerPolicy: same-origin # optional, no default + allowPolicy: autoplay; fullscreen; gamepad # optional, no default + allowFullscreen: false # optional, default: true + loadingStrategy: eager # optional, default: eager + allowScrolling: no # optional, default: yes + refreshInterval: 2000 # optional, no default +``` diff --git a/docs/widgets/services/immich.md b/docs/widgets/services/immich.md new file mode 100644 index 00000000..4da6e187 --- /dev/null +++ b/docs/widgets/services/immich.md @@ -0,0 +1,25 @@ +--- +title: Immich +description: Immich Widget Configuration +--- + +Learn more about [Immich](https://github.com/immich-app/immich). + +| Immich Version | Homepage Widget Version | +| -------------- | ----------------------- | +| < v1.118 | 1 (default) | +| >= v1.118 | 2 | + +Find your API key under `Account Settings > API Keys`. + +Allowed fields: `["users" ,"photos", "videos", "storage"]`. + +Note that API key must be from admin user. + +```yaml +widget: + type: immich + url: http://immich.host.or.ip + key: adminapikeyadminapikeyadminapikey + version: 2 # optional, default is 1 +``` diff --git a/docs/widgets/services/index.md b/docs/widgets/services/index.md new file mode 100644 index 00000000..80ff72ba --- /dev/null +++ b/docs/widgets/services/index.md @@ -0,0 +1,145 @@ +--- +title: Service Widgets +description: Homepage service widgets. +search: + exclude: true +--- + +You can also find a list of all available service widgets in the sidebar navigation. + +- [Adguard Home](adguard-home.md) +- [APC UPS](apcups.md) +- [ArgoCD](argocd.md) +- [Atsumeru](atsumeru.md) +- [Audiobookshelf](audiobookshelf.md) +- [Authentik](authentik.md) +- [Autobrr](autobrr.md) +- [Azure DevOps](azuredevops.md) +- [Bazarr](bazarr.md) +- [Beszel](beszel.md) +- [Caddy](caddy.md) +- [Calendar](calendar.md) +- [Calibre-Web](calibre-web.md) +- [ChangeDetection.io](changedetectionio.md) +- [Channels DVR Server](channelsdvrserver.md) +- [Cloudflared](cloudflared.md) +- [Coin Market Cap](coin-market-cap.md) +- [CrowdSec](crowdsec.md) +- [Custom API](customapi.md) +- [Deluge](deluge.md) +- [DeveLanCacheUI](develancacheui.md) +- [DiskStation](diskstation.md) +- [DownloadStation](downloadstation.md) +- [Emby](emby.md) +- [ESPHome](esphome.md) +- [EVCC](evcc.md) +- [Fileflows](fileflows.md) +- [Firefly III](firefly.md) +- [Flood](flood.md) +- [FreshRSS](freshrss.md) +- [Frigate](frigate.md) +- [Fritz!Box](fritzbox.md) +- [GameDig](gamedig.md) +- [Gatus](gatus.md) +- [Ghostfolio](ghostfolio.md) +- [Gitea](gitea.md) +- [Gitlab](gitlab.md) +- [Glances](glances.md) +- [Gluetun](gluetun.md) +- [Gotify](gotify.md) +- [Grafana](grafana.md) +- [HDHomeRun](hdhomerun.md) +- [Headscale](headscale.md) +- [Healthchecks](healthchecks.md) +- [Karakeep](karakeep.md) +- [Home Assistant](homeassistant.md) +- [HomeBox](homebox.md) +- [Homebridge](homebridge.md) +- [iFrame](iframe.md) +- [Immich](immich.md) +- [Jackett](jackett.md) +- [JDownloader](jdownloader.md) +- [Jellyfin](jellyfin.md) +- [Jellyseerr](jellyseerr.md) +- [Kavita](kavita.md) +- [Komga](komga.md) +- [Kopia](kopia.md) +- [Lidarr](lidarr.md) +- [Linkwarden](linkwarden.md) +- [Lubelogger](lubelogger.md) +- [Mastodon](mastodon.md) +- [Mailcow](mailcow.md) +- [Mealie](mealie.md) +- [Medusa](medusa.md) +- [Mikrotik](mikrotik.md) +- [Minecraft](minecraft.md) +- [Miniflux](miniflux.md) +- [MJpeg](mjpeg.md) +- [Moonraker](moonraker.md) +- [Mylar](mylar.md) +- [MySpeed](myspeed.md) +- [Navidrome](navidrome.md) +- [NetAlertX](netalertx.md) +- [Netdata](netdata.md) +- [Nextcloud](nextcloud.md) +- [NextDNS](nextdns.md) +- [NGINX Proxy Manager](nginx-proxy-manager.md) +- [NZBGet](nzbget.md) +- [OctoPrint](octoprint.md) +- [Omada](omada.md) +- [Ombi](ombi.md) +- [OpenDTU](opendtu.md) +- [OpenMediaVault](openmediavault.md) +- [OpenWRT](openwrt.md) +- [OPNsense](opnsense.md) +- [Overseerr](overseerr.md) +- [PaperlessNGX](paperlessngx.md) +- [Peanut](peanut.md) +- [pfSense](pfsense.md) +- [PhotoPrism](photoprism.md) +- [Pi-hole](pihole.md) +- [PlantIt](plantit.md) +- [Plex & Tautulli](plex-tautulli.md) +- [Plex](plex.md) +- [Portainer](portainer.md) +- [Prometheus](prometheus.md) +- [Prometheus Metric](prometheusmetric.md) +- [Prowlarr](prowlarr.md) +- [Proxmox](proxmox.md) +- [Proxmox Backup Server](proxmoxbackupserver.md) +- [Pterodactyl](pterodactyl.md) +- [PyLoad](pyload.md) +- [qBittorrent](qbittorrent.md) +- [QNAP](qnap.md) +- [Radarr](radarr.md) +- [Readarr](readarr.md) +- [ROMM](romm.md) +- [ruTorrent](rutorrent.md) +- [SABnzbd](sabnzbd.md) +- [Scrutiny](scrutiny.md) +- [Slskd](slskd.md) +- [Sonarr](sonarr.md) +- [Speedtest Tracker](speedtest-tracker.md) +- [Stash](stash.md) +- [Stocks](stocks.md) +- [SwagDashboard](swagdashboard.md) +- [Syncthing Relay Server](syncthing-relay-server.md) +- [Tailscale](tailscale.md) +- [Tandoor](tandoor.md) +- [Technitium DNS](technitium.md) +- [TDarr](tdarr.md) +- [Traefik](traefik.md) +- [Transmission](transmission.md) +- [TrueNAS](truenas.md) +- [TubeArchivist](tubearchivist.md) +- [UniFi Controller](unifi-controller.md) +- [Unmanic](unmanic.md) +- [Uptime Kuma](uptime-kuma.md) +- [UptimeRobot](uptimerobot.md) +- [UrBackup](urbackup.md) +- [Vikunja](vikunja.md) +- [Watchtower](watchtower.md) +- [WGEasy](wgeasy.md) +- [WhatsUpDocker](whatsupdocker.md) +- [xTeVe](xteve.md) +- [Zabbix](zabbix.md) diff --git a/docs/widgets/services/jackett.md b/docs/widgets/services/jackett.md new file mode 100644 index 00000000..e102743b --- /dev/null +++ b/docs/widgets/services/jackett.md @@ -0,0 +1,17 @@ +--- +title: Jackett +description: Jackett Widget Configuration +--- + +Learn more about [Jackett](https://github.com/Jackett/Jackett). + +If Jackett has an admin password set, you must set the `password` field for the widget to work. + +Allowed fields: `["configured", "errored"]`. + +```yaml +widget: + type: jackett + url: http://jackett.host.or.ip + password: jackettadminpassword # optional +``` diff --git a/docs/widgets/services/jdownloader.md b/docs/widgets/services/jdownloader.md new file mode 100644 index 00000000..0b193fc3 --- /dev/null +++ b/docs/widgets/services/jdownloader.md @@ -0,0 +1,18 @@ +--- +title: JDownloader +description: NextPVR Widget Configuration +--- + +Learn more about [JDownloader](https://jdownloader.org/). + +Basic widget to show number of items in download queue, along with the queue size and current download speed. + +Allowed fields: `["downloadCount", "downloadTotalBytes","downloadBytesRemaining", "downloadSpeed"]`. + +```yaml +widget: + type: jdownloader + username: JDownloader Username + password: JDownloader Password + client: Name of JDownloader Instance +``` diff --git a/docs/widgets/services/jellyfin.md b/docs/widgets/services/jellyfin.md new file mode 100644 index 00000000..b6724a15 --- /dev/null +++ b/docs/widgets/services/jellyfin.md @@ -0,0 +1,22 @@ +--- +title: Jellyfin +description: Jellyfin Widget Configuration +--- + +Learn more about [Jellyfin](https://github.com/jellyfin/jellyfin). + +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. + +```yaml +widget: + type: jellyfin + url: http://jellyfin.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + enableBlocks: true # optional, defaults to false + enableNowPlaying: true # optional, defaults to true + enableUser: true # optional, defaults to false + showEpisodeNumber: true # optional, defaults to false + expandOneStreamToTwoRows: false # optional, defaults to true +``` diff --git a/docs/widgets/services/jellyseerr.md b/docs/widgets/services/jellyseerr.md new file mode 100644 index 00000000..ad33ca52 --- /dev/null +++ b/docs/widgets/services/jellyseerr.md @@ -0,0 +1,17 @@ +--- +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"]`. + +```yaml +widget: + type: jellyseerr + url: http://jellyseerr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/karakeep.md b/docs/widgets/services/karakeep.md new file mode 100644 index 00000000..a2902315 --- /dev/null +++ b/docs/widgets/services/karakeep.md @@ -0,0 +1,17 @@ +--- +title: Karakeep +description: Karakeep Widget Configuration +--- + +Learn more about [Karakeep](https://karakeep.app) (formerly known as Hoarder). + +Generate an API key for your user at `User Settings > API Keys`. + +Allowed fields: `["bookmarks", "favorites", "archived", "highlights", "lists", "tags"]` (maximum of 4). + +```yaml +widget: + type: karakeep + url: http[s]://karakeep.host.or.ip[:port] + key: karakeep_api_key +``` diff --git a/docs/widgets/services/kavita.md b/docs/widgets/services/kavita.md new file mode 100644 index 00000000..af5d1c22 --- /dev/null +++ b/docs/widgets/services/kavita.md @@ -0,0 +1,19 @@ +--- +title: Kavita +description: Kavita Widget Configuration +--- + +Learn more about [Kavita](https://github.com/Kareadita/Kavita). + +Uses the same admin role username and password used to login from the web. + +Allowed fields: `["seriesCount", "totalFiles"]`. + +```yaml +widget: + type: kavita + url: http://kavita.host.or.ip:port + username: username + password: password + key: kavitaapikey # Optional, e.g. if not using username and password +``` diff --git a/docs/widgets/services/komga.md b/docs/widgets/services/komga.md new file mode 100644 index 00000000..e71ae19a --- /dev/null +++ b/docs/widgets/services/komga.md @@ -0,0 +1,24 @@ +--- +title: Komga +description: Komga Widget Configuration +--- + +Learn more about [Komga](https://github.com/gotson/komga). + +Uses the same username and password used to login from the web. + +Allowed fields: `["libraries", "series", "books"]`. + +| Komga API Version | Homepage Widget Version | +| ----------------- | ----------------------- | +| < v2 | 1 (default) | +| >= v2 | 2 | + +```yaml +widget: + type: komga + url: http://komga.host.or.ip:port + username: username + password: password + key: komgaapikey # optional +``` diff --git a/docs/widgets/services/kopia.md b/docs/widgets/services/kopia.md new file mode 100644 index 00000000..bb324b26 --- /dev/null +++ b/docs/widgets/services/kopia.md @@ -0,0 +1,20 @@ +--- +title: Kopia +description: Kopia Widget Configuration +--- + +Learn more about [Kopia](https://github.com/kopia/kopia). + +Allowed fields: `["status", "size", "lastrun", "nextrun"]`. + +You may optionally pass values for `snapshotHost` and / or `snapshotPath` to select a specific backup source for the widget. + +```yaml +widget: + type: kopia + url: http://kopia.host.or.ip:port + username: username + password: password + snapshotHost: hostname # optional + snapshotPath: path # optional +``` diff --git a/docs/widgets/services/lidarr.md b/docs/widgets/services/lidarr.md new file mode 100644 index 00000000..3a84152a --- /dev/null +++ b/docs/widgets/services/lidarr.md @@ -0,0 +1,17 @@ +--- +title: Lidarr +description: Lidarr Widget Configuration +--- + +Learn more about [Lidarr](https://github.com/Lidarr/Lidarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["wanted", "queued", "artists"]`. + +```yaml +widget: + type: lidarr + url: http://lidarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/linkwarden.md b/docs/widgets/services/linkwarden.md new file mode 100644 index 00000000..bef196a9 --- /dev/null +++ b/docs/widgets/services/linkwarden.md @@ -0,0 +1,15 @@ +--- +title: Linkwarden +description: Linkwarden Widget Configuration +--- + +Learn more about [Linkwarden](https://linkwarden.app/). + +Allowed fields: `["links", "collections", "tags"]`. + +```yaml +widget: + type: linkwarden + url: http://linkwarden.host.or.ip + key: myApiKeyHere # On your Linkwarden install, go to Settings > Access Tokens. Generate a token. +``` diff --git a/docs/widgets/services/lubelogger.md b/docs/widgets/services/lubelogger.md new file mode 100644 index 00000000..cf2b6439 --- /dev/null +++ b/docs/widgets/services/lubelogger.md @@ -0,0 +1,20 @@ +--- +title: LubeLogger +description: LubeLogger Widget Configuration +--- + +Learn more about [LubeLogger](https://github.com/hargata/lubelog) (v1.3.7 or higher is required). + +The widget comes in two 'flavors', one shows data for all vehicles or for just a specific vehicle with the `vehicleID` parameter. + +Allowed fields: `["vehicles", "serviceRecords", "reminders"]`. +For the single-vehicle version: `["vehicle", "serviceRecords", "reminders", "nextReminder"]`. + +```yaml +widget: + type: lubelogger + url: https://lubelogger.host.or.ip + username: lubeloggerusername + password: lubeloggerpassword + vehicleID: 1 # optional, changes to single-vehicle version +``` diff --git a/docs/widgets/services/mailcow.md b/docs/widgets/services/mailcow.md new file mode 100644 index 00000000..3cb2ac18 --- /dev/null +++ b/docs/widgets/services/mailcow.md @@ -0,0 +1,15 @@ +--- +title: Mailcow +description: Mailcow Widget Configuration +--- + +Learn more about [Mailcow](https://github.com/mailcow/mailcow-dockerized). + +Allowed fields: `["domains", "mailboxes", "mails", "storage"]`. + +```yaml +widget: + type: mailcow + url: https://mailcow.host.or.ip + key: mailcowapikey +``` diff --git a/docs/widgets/services/mastodon.md b/docs/widgets/services/mastodon.md new file mode 100644 index 00000000..891115da --- /dev/null +++ b/docs/widgets/services/mastodon.md @@ -0,0 +1,16 @@ +--- +title: Mastodon +description: Mastodon Widget Configuration +--- + +Learn more about [Mastodon](https://github.com/mastodon/mastodon). + +Use the base URL of the Mastodon instance you'd like to pull stats for. Does not require authentication as the stats are part of the public API endpoints. + +Allowed fields: `["user_count", "status_count", "domain_count"]`. + +```yaml +widget: + type: mastodon + url: https://mastodon.host.name +``` diff --git a/docs/widgets/services/mealie.md b/docs/widgets/services/mealie.md new file mode 100644 index 00000000..7fb33503 --- /dev/null +++ b/docs/widgets/services/mealie.md @@ -0,0 +1,18 @@ +--- +title: Mealie +description: Mealie Widget Configuration +--- + +Learn more about [Mealie](https://github.com/mealie-recipes/mealie). + +Generate a user API key under `Profile > Manage Your API Tokens > Generate`. + +Allowed fields: `["recipes", "users", "categories", "tags"]`. + +```yaml +widget: + type: mealie + url: http://mealie-frontend.host.or.ip + key: mealieapitoken + version: 2 # only required if version > 1, defaults to 1 +``` diff --git a/docs/widgets/services/medusa.md b/docs/widgets/services/medusa.md new file mode 100644 index 00000000..82ec2b53 --- /dev/null +++ b/docs/widgets/services/medusa.md @@ -0,0 +1,15 @@ +--- +title: Medusa +description: Medusa Widget Configuration +--- + +Learn more about [Medusa](https://github.com/pymedusa/Medusa). + +Allowed fields: `["wanted", "queued", "series"]`. + +```yaml +widget: + type: medusa + url: http://medusa.host.or.ip:port + key: medusaapikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/mikrotik.md b/docs/widgets/services/mikrotik.md new file mode 100644 index 00000000..4e387745 --- /dev/null +++ b/docs/widgets/services/mikrotik.md @@ -0,0 +1,16 @@ +--- +title: Mikrotik +description: Mikrotik Widget Configuration +--- + +HTTPS may be required, [per the documentation](https://help.mikrotik.com/docs/display/ROS/REST+API#RESTAPI-Overview) + +Allowed fields: `["uptime", "cpuLoad", "memoryUsed", "numberOfLeases"]`. + +```yaml +widget: + type: mikrotik + url: https://mikrotik.host.or.ip + username: username + password: password +``` diff --git a/docs/widgets/services/minecraft.md b/docs/widgets/services/minecraft.md new file mode 100644 index 00000000..44d860c8 --- /dev/null +++ b/docs/widgets/services/minecraft.md @@ -0,0 +1,12 @@ +--- +title: Minecraft +description: Minecraft Widget Configuration +--- + +Allowed fields: `["players", "version", "status"]`. + +```yaml +widget: + type: minecraft + url: udp://minecraftserveripordomain:port +``` diff --git a/docs/widgets/services/miniflux.md b/docs/widgets/services/miniflux.md new file mode 100644 index 00000000..3f2e29e0 --- /dev/null +++ b/docs/widgets/services/miniflux.md @@ -0,0 +1,17 @@ +--- +title: Miniflux +description: Miniflux Widget Configuration +--- + +Learn more about [Miniflux](https://github.com/miniflux/v2). + +Api key is found under Settings > API keys + +Allowed fields: `["unread", "read"]`. + +```yaml +widget: + type: miniflux + url: http://miniflux.host.or.ip:port + key: minifluxapikey +``` diff --git a/docs/widgets/services/mjpeg.md b/docs/widgets/services/mjpeg.md new file mode 100644 index 00000000..b0784ff0 --- /dev/null +++ b/docs/widgets/services/mjpeg.md @@ -0,0 +1,14 @@ +--- +title: MJPEG +description: MJPEG Stream Widget Configuration +--- + +![camera-preview](https://github.com/gethomepage/homepage/assets/4887959/dbc388d7-04a6-482c-8f36-f9534689b062) + +Pass the stream URL from a service like [µStreamer](https://github.com/pikvm/ustreamer) or [camera-streamer](https://github.com/ayufan/camera-streamer). + +```yaml +widget: + type: mjpeg + stream: http://mjpeg.host.or.ip/webcam/stream +``` diff --git a/docs/widgets/services/moonraker.md b/docs/widgets/services/moonraker.md new file mode 100644 index 00000000..2ee1a4e2 --- /dev/null +++ b/docs/widgets/services/moonraker.md @@ -0,0 +1,23 @@ +--- +title: Moonraker (Klipper) +description: Moonraker (Klipper) Widget Configuration +--- + +Learn more about [Moonraker](https://github.com/Arksine/moonraker). + +Allowed fields: `["printer_state", "print_status", "print_progress", "layers"]`. + +```yaml +widget: + type: moonraker + url: http://moonraker.host.or.ip:port +``` + +If your moonraker instance has an active authorization and your homepage ip isn't whitelisted you need to add your api key ([Authorization Documentation](https://moonraker.readthedocs.io/en/latest/web_api/#authorization)). + +```yaml +widget: + type: moonraker + url: http://moonraker.host.or.ip:port + key: api_keymoonraker +``` diff --git a/docs/widgets/services/mylar.md b/docs/widgets/services/mylar.md new file mode 100644 index 00000000..f15e7b9b --- /dev/null +++ b/docs/widgets/services/mylar.md @@ -0,0 +1,17 @@ +--- +title: Mylar3 +description: Mylar3 Widget Configuration +--- + +Learn more about [Mylar3](https://github.com/mylar3/mylar3). + +API must be enabled in Mylar3 settings. + +Allowed fields: `["series", "issues", "wanted"]`. + +```yaml +widget: + type: mylar + url: http://mylar3.host.or.ip:port + key: yourmylar3apikey +``` diff --git a/docs/widgets/services/myspeed.md b/docs/widgets/services/myspeed.md new file mode 100644 index 00000000..1790c9c1 --- /dev/null +++ b/docs/widgets/services/myspeed.md @@ -0,0 +1,15 @@ +--- +title: MySpeed +description: MySpeed Widget Configuration +--- + +Learn more about [MySpeed](https://myspeed.dev/). + +Allowed fields: `["ping", "download", "upload"]`. + +```yaml +widget: + type: myspeed + url: http://myspeed.host.or.ip:port + password: password # only required if password is set +``` diff --git a/docs/widgets/services/navidrome.md b/docs/widgets/services/navidrome.md new file mode 100644 index 00000000..9fd43a0f --- /dev/null +++ b/docs/widgets/services/navidrome.md @@ -0,0 +1,19 @@ +--- +title: Navidrome +description: Navidrome Widget Configuration +--- + +Learn more about [Navidrome](https://github.com/navidrome/navidrome). + +For detailed information about how to generate the token see http://www.subsonic.org/pages/api.jsp. + +Allowed fields: no configurable fields for this widget. + +```yaml +widget: + type: navidrome + url: http://navidrome.host.or.ip:port + user: username + token: token #md5(password + salt) + salt: randomsalt +``` diff --git a/docs/widgets/services/netalertx.md b/docs/widgets/services/netalertx.md new file mode 100644 index 00000000..1f618182 --- /dev/null +++ b/docs/widgets/services/netalertx.md @@ -0,0 +1,19 @@ +--- +title: NetAlertX +description: NetAlertX (formerly PiAlert) Widget Configuration +--- + +Learn more about [NetAlertX](https://github.com/jokob-sk/NetAlertX). + +_Note that the project was renamed from PiAlert to NetAlertX._ + +Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`. + +If you have enabled a password on your NetAlertX instance, you will need to provide the `SYNC_api_token` as the `key` in your config. + +```yaml +widget: + type: netalertx + url: http://ip:port + key: netalertxsyncapitoken # optional, only if password is enabled +``` diff --git a/docs/widgets/services/netdata.md b/docs/widgets/services/netdata.md new file mode 100644 index 00000000..32b4d677 --- /dev/null +++ b/docs/widgets/services/netdata.md @@ -0,0 +1,14 @@ +--- +title: Netdata +description: Netdata Widget Configuration +--- + +Learn more about [Netdata](https://github.com/netdata/netdata). + +Allowed fields: `["warnings", "criticals"]`. + +```yaml +widget: + type: netdata + url: http://netdata.host.or.ip +``` diff --git a/docs/widgets/services/nextcloud.md b/docs/widgets/services/nextcloud.md new file mode 100644 index 00000000..199098b6 --- /dev/null +++ b/docs/widgets/services/nextcloud.md @@ -0,0 +1,27 @@ +--- +title: Nextcloud +description: Nextcloud Widget Configuration +--- + +Learn more about [Nextcloud](https://github.com/nextcloud). + +Use username & password, or the `NC-Token` key. Information about the token can be found under **Settings** > **System**. If both are provided, NC-Token will be used. + +Allowed fields: `["cpuload", "memoryusage", "freespace", "activeusers", "numfiles", "numshares"]`. + +Note "cpuload" and "memoryusage" were deprecated in v0.6.18 and a maximum of 4 fields can be displayed. + +```yaml +widget: + type: nextcloud + url: https://nextcloud.host.or.ip:port + key: token +``` + +```yaml +widget: + type: nextcloud + url: https://nextcloud.host.or.ip:port + username: username + password: password +``` diff --git a/docs/widgets/services/nextdns.md b/docs/widgets/services/nextdns.md new file mode 100644 index 00000000..4fb5a88b --- /dev/null +++ b/docs/widgets/services/nextdns.md @@ -0,0 +1,15 @@ +--- +title: NextDNS +description: NextDNS Widget Configuration +--- + +Learn more about [NextDNS](https://nextdns.io/). + +Api key is found under Account > API, profile ID is found under Setup > Endpoints > ID + +```yaml +widget: + type: nextdns + profile: profileid + key: yourapikeyhere +``` diff --git a/docs/widgets/services/nginx-proxy-manager.md b/docs/widgets/services/nginx-proxy-manager.md new file mode 100644 index 00000000..3b80f8f3 --- /dev/null +++ b/docs/widgets/services/nginx-proxy-manager.md @@ -0,0 +1,18 @@ +--- +title: Nginx Proxy Manager +description: Nginx Proxy Manager Widget Configuration +--- + +Learn more about [Nginx Proxy Manager](https://nginxproxymanager.com/). + +Login with the same admin username and password used to access the web UI. + +Allowed fields: `["enabled", "disabled", "total"]`. + +```yaml +widget: + type: npm + url: http://npm.host.or.ip + username: admin_username + password: admin_password +``` diff --git a/docs/widgets/services/nzbget.md b/docs/widgets/services/nzbget.md new file mode 100644 index 00000000..2d7758c9 --- /dev/null +++ b/docs/widgets/services/nzbget.md @@ -0,0 +1,18 @@ +--- +title: NZBget +description: NZBget Widget Configuration +--- + +Learn more about [NZBget](https://github.com/nzbget/nzbget). + +This widget uses the same authentication method as your browser when logging in (HTTP Basic Auth), and is often referred to as the ControlUsername and ControlPassword inside of Nzbget documentation. + +Allowed fields: `["rate", "remaining", "downloaded"]`. + +```yaml +widget: + type: nzbget + url: http://nzbget.host.or.ip + username: controlusername + password: controlpassword +``` diff --git a/docs/widgets/services/octoprint.md b/docs/widgets/services/octoprint.md new file mode 100644 index 00000000..c6ddeb07 --- /dev/null +++ b/docs/widgets/services/octoprint.md @@ -0,0 +1,15 @@ +--- +title: OctoPrint +description: OctoPrintWidget Configuration +--- + +Learn more about [OctoPrint](https://octoprint.org/). + +Allowed fields: `["printer_state", "temp_tool", "temp_bed", "job_completion"]`. + +```yaml +widget: + type: octoprint + url: http://octoprint.host.or.ip:port + key: youroctoprintapikey +``` diff --git a/docs/widgets/services/omada.md b/docs/widgets/services/omada.md new file mode 100644 index 00000000..f42e73a6 --- /dev/null +++ b/docs/widgets/services/omada.md @@ -0,0 +1,17 @@ +--- +title: Omada +description: Omada Widget Configuration +--- + +The widget supports controller versions 3, 4 and 5. + +Allowed fields: `["connectedAp", "activeUser", "alerts", "connectedGateways", "connectedSwitches"]`. + +```yaml +widget: + type: omada + url: http://omada.host.or.ip:port + username: username + password: password + site: sitename +``` diff --git a/docs/widgets/services/ombi.md b/docs/widgets/services/ombi.md new file mode 100644 index 00000000..ab290244 --- /dev/null +++ b/docs/widgets/services/ombi.md @@ -0,0 +1,17 @@ +--- +title: Ombi +description: Ombi Widget Configuration +--- + +Learn more about [Ombi](https://github.com/Ombi-app/Ombi). + +Find your API key under `Settings > Configuration > General`. + +Allowed fields: `["pending", "approved", "available"]`. + +```yaml +widget: + type: ombi + url: http://ombi.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/opendtu.md b/docs/widgets/services/opendtu.md new file mode 100644 index 00000000..9a68a8c3 --- /dev/null +++ b/docs/widgets/services/opendtu.md @@ -0,0 +1,14 @@ +--- +title: OpenDTU +description: OpenDTU Widget +--- + +Learn more about [OpenDTU](https://github.com/tbnobody/OpenDTU). + +Allowed fields: `["yieldDay", "relativePower", "absolutePower", "limit"]`. + +```yaml +widget: + type: opendtu + url: http://opendtu.host.or.ip +``` diff --git a/docs/widgets/services/openmediavault.md b/docs/widgets/services/openmediavault.md new file mode 100644 index 00000000..a8a26e1f --- /dev/null +++ b/docs/widgets/services/openmediavault.md @@ -0,0 +1,27 @@ +--- +title: OpenMediaVault +description: OpenMediaVault Widget Configuration +--- + +Learn more about [OpenMediaVault](https://www.openmediavault.org/). + +Provides useful information from your OpenMediaVault + +```yaml +widget: + type: openmediavault + url: http://omv.host.or.ip + username: admin + password: pass + method: services.getStatus # required +``` + +## Methods + +The method field determines the type of data to be displayed and is required. Supported methods: + +`services.getStatus`: Shows status of running services. Allowed fields: `["running", "stopped", "total"]` + +`smart.getListBg`: Shows S.M.A.R.T. status from disks. Allowed fields: `["passed", "failed"]` + +`downloader.getDownloadList`: Displays the number of tasks from the Downloader plugin currently being downloaded and total. Allowed fields: `["downloading", "total"]` diff --git a/docs/widgets/services/openwrt.md b/docs/widgets/services/openwrt.md new file mode 100644 index 00000000..3759d2b0 --- /dev/null +++ b/docs/widgets/services/openwrt.md @@ -0,0 +1,60 @@ +--- +title: OpenWRT +description: OpenWRT widget configuration +--- + +Learn more about [OpenWRT](https://openwrt.org/). + +Provides information from OpenWRT + +```yaml +widget: + type: openwrt + url: http://host.or.ip + username: homepage + password: pass + interfaceName: eth0 # optional +``` + +## Interface + +Setting `interfaceName` (e.g. eth0) will display information for that particular device, otherwise the widget will display general system info. + +## Authorization + +In order for homepage to access the OpenWRT RPC endpoints you will need to [create an ACL](https://openwrt.org/docs/techref/ubus#acls) and [new user](https://openwrt.org/docs/techref/ubus#authentication) in OpenWRT. + +Create an ACL named `homepage.json` in `/usr/share/rpcd/acl.d/`, the following permissions will suffice: + +```json +{ + "homepage": { + "description": "Homepage widget", + "read": { + "ubus": { + "network.interface.wan": ["status"], + "network.interface.lan": ["status"], + "network.device": ["status"], + "system": ["info"] + } + } + } +} +``` + +Create a `crypt(5)` password hash using the following command in the OpenWRT shell: + +```sh +uhttpd -m "" +``` + +Then add a user that will use the ACL and hashed password in `/etc/config/rpcd`: + +``` +config login + option username 'homepage' + option password '' + list read homepage +``` + +This username and password will be used in Homepage's services.yaml to grant access. diff --git a/docs/widgets/services/opnsense.md b/docs/widgets/services/opnsense.md new file mode 100644 index 00000000..eb6c7c1c --- /dev/null +++ b/docs/widgets/services/opnsense.md @@ -0,0 +1,24 @@ +--- +title: OPNSense +description: OPNSense Widget Configuration +--- + +Learn more about [OPNSense](https://opnsense.org/). + +The API key & secret can be generated via the webui by creating a new user at _System/Access/Users_. Ensure "Generate a scrambled password to prevent local database logins for this user" is checked and then edit the effective privileges selecting **only**: + +- Diagnostics: System Activity +- Status: Traffic Graph / Reporting: Traffic (OPNSENSE 24.7.x) + +Finally, create a new API key which will download an `apikey.txt` file with your key and secret in it. Use the values as the username and password fields, respectively, in your homepage config. + +Allowed fields: `["cpu", "memory", "wanUpload", "wanDownload"]`. + +```yaml +widget: + type: opnsense + url: http://opnsense.host.or.ip + username: key + password: secret + wan: opt1 # optional, defaults to wan +``` diff --git a/docs/widgets/services/overseerr.md b/docs/widgets/services/overseerr.md new file mode 100644 index 00000000..4d3d6bb1 --- /dev/null +++ b/docs/widgets/services/overseerr.md @@ -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 +``` diff --git a/docs/widgets/services/paperlessngx.md b/docs/widgets/services/paperlessngx.md new file mode 100644 index 00000000..b0b12de3 --- /dev/null +++ b/docs/widgets/services/paperlessngx.md @@ -0,0 +1,25 @@ +--- +title: Paperless-ngx +description: Paperless-ngx Widget Configuration +--- + +Learn more about [Paperless-ngx](https://github.com/paperless-ngx/paperless-ngx). + +Use username & password, or the token key. Information about the token can be found in the [Paperless-ngx API documentation](https://docs.paperless-ngx.com/api/#authorization). If both are provided, the token will be used. + +Allowed fields: `["total", "inbox"]`. + +```yaml +widget: + type: paperlessngx + url: http://paperlessngx.host.or.ip:port + username: username + password: password +``` + +```yaml +widget: + type: paperlessngx + url: http://paperlessngx.host.or.ip:port + key: token +``` diff --git a/docs/widgets/services/peanut.md b/docs/widgets/services/peanut.md new file mode 100644 index 00000000..33a998e5 --- /dev/null +++ b/docs/widgets/services/peanut.md @@ -0,0 +1,25 @@ +--- +title: PeaNUT +description: PeaNUT Widget Configuration +--- + +Learn more about [PeaNUT](https://github.com/Brandawg93/PeaNUT). + +This widget adds support for [Network UPS Tools](https://networkupstools.org/) via a third party tool, [PeaNUT](https://github.com/Brandawg93/PeaNUT). + +The default ups name is `ups`. To configure more than one ups, you must create multiple peanut services. + +Allowed fields: `["battery_charge", "ups_load", "ups_status"]`. + +!!! note + + This widget requires an additional tool, [PeaNUT](https://github.com/Brandawg93/PeaNUT), as noted. Other projects exist to achieve similar results using a `customapi` widget, for example [NUTCase](https://github.com/ArthurMitchell42/nutcase#using-nutcase-homepage). + +```yaml +widget: + type: peanut + url: http://peanut.host.or.ip:port + key: nameofyourups + username: username # only needed if set + password: password # only needed if set +``` diff --git a/docs/widgets/services/pfsense.md b/docs/widgets/services/pfsense.md new file mode 100644 index 00000000..ad5b40ee --- /dev/null +++ b/docs/widgets/services/pfsense.md @@ -0,0 +1,41 @@ +--- +title: pfSense +description: pfSense Widget Configuration +--- + +Learn more about [pfSense](https://github.com/pfsense/pfsense). + +This widget requires the installation of the [pfsense-api](https://github.com/jaredhendrickson13/pfsense-api) which is a 3rd party package for pfSense routers. + +Once pfSense API is installed, you can set the API to be read-only in System > API > Settings. + +There are two currently supported authentication modes: 'Local Database' and 'API Key' (v2) / 'API Token' (v1). For 'Local Database', use `username` and `password` with the credentials of an admin user. The specifics of using the API key / token depend on the version of the pfSense API, see the config examples below. Do not use both headers and username / password. + +The interface to monitor is defined by updating the `wan` parameter. It should be referenced as it is shown under Interfaces > Assignments in pfSense. + +Load is returned instead of cpu utilization. This is a limitation in the pfSense API due to the complexity of this calculation. This may become available in future versions. + +Allowed fields: `["load", "memory", "temp", "wanStatus", "wanIP", "disk"]` (maximum of 4) + +For version 2: + +```yaml +widget: + type: pfsense + url: http://pfsense.host.or.ip:port + username: user # optional, or API key + password: pass # optional, or API key + headers: # optional, or username/password + X-API-Key: key + wan: igb0 + version: 2 # optional, defaults to 1 for api v1 + fields: ["load", "memory", "temp", "wanStatus"] # optional +``` + +For version 1: + +```yaml +headers: # optional, or username/password + Authorization: client_id client_token # obtained from pfSense API +version: 1 +``` diff --git a/docs/widgets/services/photoprism.md b/docs/widgets/services/photoprism.md new file mode 100644 index 00000000..afb39606 --- /dev/null +++ b/docs/widgets/services/photoprism.md @@ -0,0 +1,19 @@ +--- +title: PhotoPrism +description: PhotoPrism Widget Configuration +--- + +Learn more about [PhotoPrism](https://github.com/photoprism/photoprism). + +Authentication is possible via [app passwords](https://docs.photoprism.app/user-guide/settings/account/#apps-and-devices) or username/password. + +Allowed fields: `["albums", "photos", "videos", "people"]`. + +```yaml +widget: + type: photoprism + url: http://photoprism.host.or.ip:port + username: admin # required only if using username/password + password: password # required only if using username/password + key: # required only if using app passwords +``` diff --git a/docs/widgets/services/pihole.md b/docs/widgets/services/pihole.md new file mode 100644 index 00000000..d77b2dfc --- /dev/null +++ b/docs/widgets/services/pihole.md @@ -0,0 +1,18 @@ +--- +title: PiHole +description: PiHole Widget Configuration +--- + +Learn more about [PiHole](https://github.com/pi-hole/pi-hole). + +Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`. + +Note: by default the "blocked" and "blocked_percent" fields are merged e.g. "1,234 (15%)" but explicitly including the "blocked_percent" field will change them to display separately. + +```yaml +widget: + type: pihole + url: http://pi.hole.or.ip + version: 6 # required if running v6 or higher, defaults to 5 + key: yourpiholeapikey # optional, in v6 can be your password or app password +``` diff --git a/docs/widgets/services/plantit.md b/docs/widgets/services/plantit.md new file mode 100644 index 00000000..f11b942b --- /dev/null +++ b/docs/widgets/services/plantit.md @@ -0,0 +1,17 @@ +--- +title: Plant-it +description: Plant-it Widget Configuration +--- + +Learn more about [Plantit](https://github.com/MDeLuise/plant-it). + +API key can be created from the REST API. + +Allowed fields: `["events", "plants", "photos", "species"]`. + +```yaml +widget: + type: plantit + url: http://plant-it.host.or.ip:port # api port + key: plantit-api-key +``` diff --git a/docs/widgets/services/plex-tautulli.md b/docs/widgets/services/plex-tautulli.md new file mode 100644 index 00000000..9cacdf05 --- /dev/null +++ b/docs/widgets/services/plex-tautulli.md @@ -0,0 +1,20 @@ +--- +title: Tautulli (Plex) +description: Tautulli Widget Configuration +--- + +Learn more about [Tautulli](https://github.com/Tautulli/Tautulli). + +Provides detailed information about currently active streams. You can find the API key from inside Tautulli at `Settings > Web Interface > API`. + +Allowed fields: no configurable fields for this widget. + +```yaml +widget: + type: tautulli + url: http://tautulli.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + enableUser: true # optional, defaults to false + showEpisodeNumber: true # optional, defaults to false + expandOneStreamToTwoRows: false # optional, defaults to true +``` diff --git a/docs/widgets/services/plex.md b/docs/widgets/services/plex.md new file mode 100644 index 00000000..193158b3 --- /dev/null +++ b/docs/widgets/services/plex.md @@ -0,0 +1,17 @@ +--- +title: Plex +description: Plex Widget Configuration +--- + +Learn more about [Plex](https://www.plex.tv/). + +The core Plex API is somewhat limited but basic info regarding library sizes and the number of active streams is supported. For more detailed info regarding active streams see the [Plex Tautulli widget](plex-tautulli.md). + +Allowed fields: `["streams", "albums", "movies", "tv"]`. + +```yaml +widget: + type: plex + url: http://plex.host.or.ip:32400 + key: mytokenhere # see https://www.plexopedia.com/plex-media-server/general/plex-token/ +``` diff --git a/docs/widgets/services/portainer.md b/docs/widgets/services/portainer.md new file mode 100644 index 00000000..f18d4eec --- /dev/null +++ b/docs/widgets/services/portainer.md @@ -0,0 +1,18 @@ +--- +title: Portainer +description: Portainer Widget Configuration +--- + +Learn more about [Portainer](https://github.com/portainer/portainer). + +You'll need to make sure you have the correct environment set for the integration to work properly. From the Environments section inside of Portainer, click the one you'd like to connect to and observe the ID at the end of the URL (should be), something like `#!/endpoints/1`, here `1` is the value to set as the `env` value. In order to generate an API key, please follow the steps outlined here https://docs.portainer.io/api/access. + +Allowed fields: `["running", "stopped", "total"]`. + +```yaml +widget: + type: portainer + url: https://portainer.host.or.ip:9443 + env: 1 + key: ptr_accesskeyaccesskeyaccesskeyaccesskey +``` diff --git a/docs/widgets/services/prometheus.md b/docs/widgets/services/prometheus.md new file mode 100644 index 00000000..beb04b5e --- /dev/null +++ b/docs/widgets/services/prometheus.md @@ -0,0 +1,14 @@ +--- +title: Prometheus +description: Prometheus Widget Configuration +--- + +Learn more about [Prometheus](https://github.com/prometheus/prometheus). + +Allowed fields: `["targets_up", "targets_down", "targets_total"]`. + +```yaml +widget: + type: prometheus + url: http://prometheushost:port +``` diff --git a/docs/widgets/services/prometheusmetric.md b/docs/widgets/services/prometheusmetric.md new file mode 100644 index 00000000..19397aa7 --- /dev/null +++ b/docs/widgets/services/prometheusmetric.md @@ -0,0 +1,67 @@ +--- +title: Prometheus Metric +description: Prometheus Metric Widget Configuration +--- + +Learn more about [Querying Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/). + +This widget can show metrics for your service defined by PromQL queries which are requested from a running Prometheus instance. + +Quries can be defined in the `metrics` array of the widget along with a label to be used to present the metric value. You can optionally specify a global `refreshInterval` in milliseconds and/or define the `refreshInterval` per metric. Inside the optional `format` object of a metric various formatting styles and transformations can be applied (see below). + +```yaml +widget: + type: prometheusmetric + url: https://prometheus.host.or.ip + refreshInterval: 10000 # optional - in milliseconds, defaults to 10s + metrics: + - label: Metric 1 + query: alertmanager_alerts{state="active"} + - label: Metric 2 + query: apiserver_storage_size_bytes{node="mynode"} + format: + type: bytes + - label: Metric 3 + query: avg(prometheus_notifications_latency_seconds) + format: + type: number + suffix: s + options: + maximumFractionDigits: 4 + - label: Metric 4 + query: time() + refreshInterval: 1000 # will override global refreshInterval + format: + type: date + scale: 1000 + options: + timeStyle: medium +``` + +## Formatting + +Supported values for `format.type` are `text`, `number`, `percent`, `bytes`, `bits`, `bbytes`, `bbits`, `byterate`, `bibyterate`, `bitrate`, `bibitrate`, `date`, `duration`, `relativeDate`, and `text` which is the default. + +The `dateStyle` and `timeStyle` options of the `date` format are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) and the `style` and `numeric` options of `relativeDate` are passed to [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat). For the `number` format, options of [Intl.NumberFormat](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) can be used, e.g. `maximumFractionDigits` or `minimumFractionDigits`. + +### Data Transformation + +You can manipulate your metric value with the following tools: `scale`, `prefix` and `suffix`, for example: + +```yaml +- query: my_custom_metric{} + label: Metric 1 + format: + type: number + scale: 1000 # multiplies value by a number or fraction string e.g. 1/16 +- query: my_custom_metric{} + label: Metric 2 + format: + type: number + prefix: "$" # prefixes value with given string +- query: my_custom_metric{} + label: Metric 3 + format: + type: number + suffix: "€" # suffixes value with given string +``` diff --git a/docs/widgets/services/prowlarr.md b/docs/widgets/services/prowlarr.md new file mode 100644 index 00000000..cf6a800b --- /dev/null +++ b/docs/widgets/services/prowlarr.md @@ -0,0 +1,17 @@ +--- +title: Prowlarr +description: Prowlarr Widget Configuration +--- + +Learn more about [Prowlarr](https://github.com/Prowlarr/Prowlarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs", "numberOfFailQueries"]`. + +```yaml +widget: + type: prowlarr + url: http://prowlarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/proxmox.md b/docs/widgets/services/proxmox.md new file mode 100644 index 00000000..080dc17c --- /dev/null +++ b/docs/widgets/services/proxmox.md @@ -0,0 +1,52 @@ +--- +title: Proxmox +description: Proxmox Widget Configuration +--- + +Learn more about [Proxmox](https://www.proxmox.com/en/). + +This widget shows the running and total counts of both QEMU VMs and LX Containers in the Proxmox cluster. It also shows the CPU and memory usage of the first node in the cluster. + +You will need to generate an API Token for new or an existing user. Here is an example of how to do this for a new user. + +1. Navigate to the Proxmox portal, click on Datacenter +2. Expand Permissions, click on Groups +3. Click the Create button +4. Name the group something informative, like api-ro-users +5. Click on the Permissions "folder" +6. Click Add -> Group Permission + - Path: / + - Group: group from bullet 4 above + - Role: PVEAuditor + - Propagate: Checked +7. Expand Permissions, click on Users +8. Click the Add button + - User name: something informative like `api` + - Realm: Linux PAM standard authentication + - Group: group from bullet 4 above +9. Expand Permissions, click on API Tokens +10. Click the Add button + - User: user from bullet 8 above + - Token ID: something informative like the application or purpose like `homepage` + - Privilege Separation: Checked +11. Go back to the "Permissions" menu +12. Click Add -> API Token Permission + - Path: / + - API Token: select the Token ID created in Step 10 + - Role: PVE Auditor + - Propagate: Checked + +Use `username@pam!Token ID` as the `username` (e.g `api@pam!homepage`) setting and `Secret` as the `password` setting. + +Allowed fields: `["vms", "lxc", "resources.cpu", "resources.mem"]`. + +You can set the optional `node` setting when you want to show metrics for a single node. By default it will show the average for the complete cluster. + +```yaml +widget: + type: proxmox + url: https://proxmox.host.or.ip:8006 + username: api_token_id + password: api_token_secret + node: pve-1 # optional +``` diff --git a/docs/widgets/services/proxmoxbackupserver.md b/docs/widgets/services/proxmoxbackupserver.md new file mode 100644 index 00000000..041a872f --- /dev/null +++ b/docs/widgets/services/proxmoxbackupserver.md @@ -0,0 +1,16 @@ +--- +title: Proxmox Backup Server +description: Proxmox Backup Server Widget Configuration +--- + +Learn more about [Proxmox Backup Server](https://www.proxmox.com/en/proxmox-backup-server/overview). + +Allowed fields: `["datastore_usage", "failed_tasks_24h", "cpu_usage", "memory_usage"]`. + +```yaml +widget: + type: proxmoxbackupserver + url: https://proxmoxbackupserver.host:port + username: api_token_id + password: api_token_secret +``` diff --git a/docs/widgets/services/pterodactyl.md b/docs/widgets/services/pterodactyl.md new file mode 100644 index 00000000..abf5899b --- /dev/null +++ b/docs/widgets/services/pterodactyl.md @@ -0,0 +1,15 @@ +--- +title: Pterodactyl +description: Pterodactyl Widget Configuration +--- + +Learn more about [Pterodactyl](https://github.com/pterodactyl). + +Allowed fields: `["nodes", "servers"]`. + +```yaml +widget: + type: pterodactyl + url: http://pterodactylhost:port + key: pterodactylapikey +``` diff --git a/docs/widgets/services/pyload.md b/docs/widgets/services/pyload.md new file mode 100644 index 00000000..3a37d083 --- /dev/null +++ b/docs/widgets/services/pyload.md @@ -0,0 +1,16 @@ +--- +title: Pyload +description: Pyload Widget Configuration +--- + +Learn more about [Pyload](https://github.com/pyload/pyload). + +Allowed fields: `["speed", "active", "queue", "total"]`. + +```yaml +widget: + type: pyload + url: http://pyload.host.or.ip:port + username: username + password: password # only needed if set +``` diff --git a/docs/widgets/services/qbittorrent.md b/docs/widgets/services/qbittorrent.md new file mode 100644 index 00000000..103430de --- /dev/null +++ b/docs/widgets/services/qbittorrent.md @@ -0,0 +1,19 @@ +--- +title: qBittorrent +description: qBittorrent Widget Configuration +--- + +Learn more about [qBittorrent](https://github.com/qbittorrent/qBittorrent). + +Uses the same username and password used to login from the web. + +Allowed fields: `["leech", "download", "seed", "upload"]`. + +```yaml +widget: + type: qbittorrent + url: http://qbittorrent.host.or.ip + username: username + password: password + enableLeechProgress: true # optional, defaults to false +``` diff --git a/docs/widgets/services/qnap.md b/docs/widgets/services/qnap.md new file mode 100644 index 00000000..9ae06b62 --- /dev/null +++ b/docs/widgets/services/qnap.md @@ -0,0 +1,24 @@ +--- +title: QNAP +description: QNAP Widget Configuration +--- + +Learn more about [QNAP](https://www.qnap.com). + +Allowed fields: `["cpuUsage", "memUsage", "systemTempC", "poolUsage", "volumeUsage"]`. + +```yaml +widget: + type: qnap + url: http://qnap.host.or.ip:port + username: user + password: pass +``` + +If the QNAP device has multiple volumes, the _poolUsage_ will be a sum of all volumes. + +If only a single volume needs to be tracked, add the following to your configuration and the Widget will track this as _volumeUsage_: + +```yaml +volume: Volume Name From QNAP +``` diff --git a/docs/widgets/services/radarr.md b/docs/widgets/services/radarr.md new file mode 100644 index 00000000..d3931a14 --- /dev/null +++ b/docs/widgets/services/radarr.md @@ -0,0 +1,20 @@ +--- +title: Radarr +description: Radarr Widget Configuration +--- + +Learn more about [Radarr](https://github.com/Radarr/Radarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["wanted", "missing", "queued", "movies"]`. + +A detailed queue listing is disabled by default, but can be enabled with the `enableQueue` option. + +```yaml +widget: + type: radarr + url: http://radarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + enableQueue: true # optional, defaults to false +``` diff --git a/docs/widgets/services/readarr.md b/docs/widgets/services/readarr.md new file mode 100644 index 00000000..0d045ee5 --- /dev/null +++ b/docs/widgets/services/readarr.md @@ -0,0 +1,17 @@ +--- +title: Readarr +description: Readarr Widget Configuration +--- + +Learn more about [Readarr](https://github.com/Readarr/Readarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["wanted", "queued", "books"]`. + +```yaml +widget: + type: readarr + url: http://readarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/romm.md b/docs/widgets/services/romm.md new file mode 100644 index 00000000..9e45a34b --- /dev/null +++ b/docs/widgets/services/romm.md @@ -0,0 +1,14 @@ +--- +title: Romm +description: Romm Widget Configuration +--- + +Allowed fields: `["platforms", "totalRoms", "saves", "states", "screenshots", "totalfilesize"]`. +If more than (4) fields are provided, only the first (4) will be used. + +```yaml +widget: + type: romm + url: http://romm.host.or.ip + fields: ["platforms", "totalRoms", "saves", "states"] # optional - default fields shown +``` diff --git a/docs/widgets/services/rutorrent.md b/docs/widgets/services/rutorrent.md new file mode 100644 index 00000000..76b194a8 --- /dev/null +++ b/docs/widgets/services/rutorrent.md @@ -0,0 +1,18 @@ +--- +title: ruTorrent +description: ruTorrent Widget Configuration +--- + +Learn more about [ruTorrent](https://github.com/Novik/ruTorrent). + +This requires the `httprpc` plugin to be installed and enabled, and is part of the default ruTorrent plugins. If you have not explicitly removed or disable this plugin, it should be available. + +Allowed fields: `["active", "upload", "download"]`. + +```yaml +widget: + type: rutorrent + url: http://rutorrent.host.or.ip + username: username # optional, false if not used + password: password # optional, false if not used +``` diff --git a/docs/widgets/services/sabnzbd.md b/docs/widgets/services/sabnzbd.md new file mode 100644 index 00000000..90392a53 --- /dev/null +++ b/docs/widgets/services/sabnzbd.md @@ -0,0 +1,17 @@ +--- +title: SABnzbd +description: SABnzbd Widget Configuration +--- + +Learn more about [SABnzbd](https://github.com/sabnzbd/sabnzbd). + +Find your API key under `Config > General`. + +Allowed fields: `["rate", "queue", "timeleft"]`. + +```yaml +widget: + type: sabnzbd + url: http://sabnzbd.host.or.ip + key: apikeyapikeyapikeyapikeyapikey +``` diff --git a/docs/widgets/services/scrutiny.md b/docs/widgets/services/scrutiny.md new file mode 100644 index 00000000..98f62a4e --- /dev/null +++ b/docs/widgets/services/scrutiny.md @@ -0,0 +1,14 @@ +--- +title: Scrutiny +description: Scrutiny Widget Configuration +--- + +Learn more about [Scrutiny](https://github.com/AnalogJ/scrutiny). + +Allowed fields: `["passed", "failed", "unknown"]`. + +```yaml +widget: + type: scrutiny + url: http://scrutiny.host.or.ip +``` diff --git a/docs/widgets/services/slskd.md b/docs/widgets/services/slskd.md new file mode 100644 index 00000000..7afb0760 --- /dev/null +++ b/docs/widgets/services/slskd.md @@ -0,0 +1,25 @@ +--- +title: Slskd +description: Slskd Widget Configuration +--- + +Learn more about [Slskd](https://github.com/slskd/slskd). + +Generate an API key for slskd with `openssl rand -base64 48`. +Add it to your `path/to/config/slskd.yml` in `web > authentication > api_keys`: + +```yaml +homepage_widget: + key: + role: readonly + cidr: +``` + +Allowed fields: `["slskStatus", "updateStatus", "downloads", "uploads", "sharedFiles"]` (maximum of 4). + +```yaml +widget: + type: slskd + url: http[s]://slskd.host.or.ip[:5030] + key: generatedapikey +``` diff --git a/docs/widgets/services/sonarr.md b/docs/widgets/services/sonarr.md new file mode 100644 index 00000000..8f5a992a --- /dev/null +++ b/docs/widgets/services/sonarr.md @@ -0,0 +1,20 @@ +--- +title: Sonarr +description: Sonarr Widget Configuration +--- + +Learn more about [Sonarr](https://github.com/Sonarr/Sonarr). + +Find your API key under `Settings > General`. + +Allowed fields: `["wanted", "queued", "series"]`. + +A detailed queue listing is disabled by default, but can be enabled with the `enableQueue` option. + +```yaml +widget: + type: sonarr + url: http://sonarr.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + enableQueue: true # optional, defaults to false +``` diff --git a/docs/widgets/services/speedtest-tracker.md b/docs/widgets/services/speedtest-tracker.md new file mode 100644 index 00000000..6352606c --- /dev/null +++ b/docs/widgets/services/speedtest-tracker.md @@ -0,0 +1,27 @@ +--- +title: Speedtest Tracker +description: Speedtest Tracker Widget Configuration +--- + +Learn more about [Speedtest Tracker](https://github.com/alexjustesen/speedtest-tracker). or +[Speedtest Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker) + +No extra configuration is required. + +Version 1 of the widget is compatible with both [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker) and [henrywhitaker3/Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker), while version 2 is only compatible with [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker). + +| Speedtest Version (AJ) | Speedtest Version (HW) | Homepage Widget Version | +| ---------------------- | ---------------------- | ----------------------- | +| < 1.2.1 | ≤ 1.12.0 | 1 (default) | +| >= 1.2.1 | N/A | 2 | + +Allowed fields: `["download", "upload", "ping"]`. + +```yaml +widget: + type: speedtest + url: http://speedtest.host.or.ip + version: 1 # optional, default is 1 + key: speedtestapikey # required for version 2 + bitratePrecision: 3 # optional, default is 0 +``` diff --git a/docs/widgets/services/spoolman.md b/docs/widgets/services/spoolman.md new file mode 100644 index 00000000..5baa9268 --- /dev/null +++ b/docs/widgets/services/spoolman.md @@ -0,0 +1,15 @@ +--- +title: Spoolman +description: Spoolman Widget Configuration +--- + +Learn more about [Spoolman](https://github.com/Donkie/Spoolman). + +4 spools are displayed by default. If more than 4 spools are configured in spoolman you can use the spoolIds configuration option to control which are displayed. + +```yaml +widget: + type: spoolman + url: http://spoolman.host.or.ip + spoolIds: [1, 2, 3, 4] # optional +``` diff --git a/docs/widgets/services/stash.md b/docs/widgets/services/stash.md new file mode 100644 index 00000000..b2d3e0ef --- /dev/null +++ b/docs/widgets/services/stash.md @@ -0,0 +1,20 @@ +--- +title: Stash +description: Stash Widget Configuration +--- + +Learn more about [Stash](https://github.com/stashapp/stash). + +Find your API key from inside Stash at `Settings > Security > API Key`. Note that the API key is only required if your Stash instance has login credentials. + +Allowed fields: `["scenes", "scenesPlayed", "playCount", "playDuration", "sceneSize", "sceneDuration", "images", "imageSize", "galleries", "performers", "studios", "movies", "tags", "oCount"]`. + +If more than 4 fields are provided, only the first 4 are displayed. + +```yaml +widget: + type: stash + url: http://stash.host.or.ip + key: stashapikey + fields: ["scenes", "images"] # optional - default fields shown +``` diff --git a/docs/widgets/services/stocks.md b/docs/widgets/services/stocks.md new file mode 100644 index 00000000..5d64c9ac --- /dev/null +++ b/docs/widgets/services/stocks.md @@ -0,0 +1,50 @@ +--- +title: Stocks +description: Stocks Service Widget Configuration +--- + +_(Find the Stocks information widget [here](../info/stocks.md))_ + +The widget includes: + +- US stock market status +- Current price of provided stock symbol +- Change in price of stock symbol for the day. + +Finnhub.io is currently the only supported provider for the stocks widget. +You can sign up for a free api key at [finnhub.io](https://finnhub.io). +You are encouraged to read finnhub.io's +[terms of service/privacy policy](https://finnhub.io/terms-of-service) before +signing up. + +Allowed fields: no configurable fields for this widget. + +You must set `finnhub` as a provider in your `settings.yaml`: + +```yaml +providers: + finnhub: yourfinnhubapikeyhere +``` + +Next, configure the stocks widget in your `services.yaml`: + +The service widget allows for up to 28 items in the watchlist. You may get rate +limited if using the information and service widgets together. + +```yaml +widget: + type: stocks + provider: finnhub + showUSMarketStatus: true # optional, defaults to true + watchlist: + - GME + - AMC + - NVDA + - TSM + - BRK.A + - TSLA + - AAPL + - MSFT + - AMZN + - BRK.B +``` diff --git a/docs/widgets/services/suwayomi.md b/docs/widgets/services/suwayomi.md new file mode 100644 index 00000000..21672598 --- /dev/null +++ b/docs/widgets/services/suwayomi.md @@ -0,0 +1,20 @@ +--- +title: Suwayomi +description: Suwayomi Widget Configuration +--- + +Learn more about [Suwayomi](https://github.com/Suwayomi/Suwayomi-Server). + +Allowed fields: ["download", "nondownload", "read", "unread", "downloadedread", "downloadedunread", "nondownloadedread", "nondownloadedunread"] + +The widget defaults to the first four above. If more than four fields are provided, only the first 4 are displayed. +Category IDs can be obtained from the url when navigating to it, `?tab={categoryID}`. + +```yaml +widget: + type: suwayomi + url: http://suwayomi.host.or.ip + username: username #optional + password: password #optional + category: 0 #optional, defaults to all categories +``` diff --git a/docs/widgets/services/swagdashboard.md b/docs/widgets/services/swagdashboard.md new file mode 100644 index 00000000..2b6c9792 --- /dev/null +++ b/docs/widgets/services/swagdashboard.md @@ -0,0 +1,14 @@ +--- +title: SWAG Dashboard +description: SWAG Dashboard Widget Configuration +--- + +Learn more about [SWAG Dashboard](https://github.com/linuxserver/docker-mods/tree/swag-dashboard). + +Allowed fields: `["proxied", "auth", "outdated", "banned"]`. + +```yaml +widget: + type: swagdashboard + url: http://swagdashboard.host.or.ip:adminport # default port is 81 +``` diff --git a/docs/widgets/services/syncthing-relay-server.md b/docs/widgets/services/syncthing-relay-server.md new file mode 100644 index 00000000..704bb219 --- /dev/null +++ b/docs/widgets/services/syncthing-relay-server.md @@ -0,0 +1,16 @@ +--- +title: Syncthing Relay Server +description: Syncthing Relay Server Widget Configuration +--- + +Learn more about [Syncthing Relay Server](https://github.com/syncthing/syncthing). + +Pulls stats from the [relay server](https://docs.syncthing.net/users/strelaysrv.html). [See here](https://github.com/gethomepage/homepage/pull/230#issuecomment-1253053472) for more information on configuration. + +Allowed fields: `["numActiveSessions", "numConnections", "bytesProxied"]`. + +```yaml +widget: + type: strelaysrv + url: http://syncthing.host.or.ip:22070 +``` diff --git a/docs/widgets/services/tailscale.md b/docs/widgets/services/tailscale.md new file mode 100644 index 00000000..e4f3ec2e --- /dev/null +++ b/docs/widgets/services/tailscale.md @@ -0,0 +1,19 @@ +--- +title: Tailscale +description: Tailscale Widget Configuration +--- + +Learn more about [Tailscale](https://github.com/tailscale/tailscale). + +You will need to generate an API access token from the [keys page](https://login.tailscale.com/admin/settings/keys) on the Tailscale dashboard. + +To find your device ID, go to the [machine overview page](https://login.tailscale.com/admin/machines) and select your machine. In the "Machine Details" section, copy your `ID`. It will end with `CNTRL`. + +Allowed fields: `["address", "last_seen", "expires"]`. + +```yaml +widget: + type: tailscale + deviceid: deviceid + key: tailscalekey +``` diff --git a/docs/widgets/services/tandoor.md b/docs/widgets/services/tandoor.md new file mode 100644 index 00000000..134bc8fd --- /dev/null +++ b/docs/widgets/services/tandoor.md @@ -0,0 +1,15 @@ +--- +title: Tandoor +description: Tandoor Widget Configuration +--- + +Generate a user API key under `Settings > API > Generate`. For the token's scope, use `read`. + +Allowed fields: `["users", "recipes", "keywords"]`. + +```yaml +widget: + type: tandoor + url: http://tandoor-frontend.host.or.ip + key: tandoor-api-token +``` diff --git a/docs/widgets/services/tdarr.md b/docs/widgets/services/tdarr.md new file mode 100644 index 00000000..cbf13a62 --- /dev/null +++ b/docs/widgets/services/tdarr.md @@ -0,0 +1,15 @@ +--- +title: Tdarr +description: Tdarr Widget Configuration +--- + +Learn more about [Tdarr](https://github.com/HaveAGitGat/Tdarr). + +Allowed fields: `["queue", "processed", "errored", "saved"]`. + +```yaml +widget: + type: tdarr + url: http://tdarr.host.or.ip + key: tdarrapikey # optional +``` diff --git a/docs/widgets/services/technitium.md b/docs/widgets/services/technitium.md new file mode 100644 index 00000000..70f5e48f --- /dev/null +++ b/docs/widgets/services/technitium.md @@ -0,0 +1,26 @@ +--- +title: Technitium DNS Server +description: Technitium DNS Server Widget Configuration +--- + +Learn more about [Technitium DNS Server](https://technitium.com/dns/). + +Allowed fields (up to 4): `["totalQueries","totalNoError","totalServerFailure","totalNxDomain","totalRefused","totalAuthoritative","totalRecursive","totalCached","totalBlocked","totalDropped","totalClients"]`. + +Defaults to: `["totalQueries", "totalAuthoritative", "totalCached", "totalServerFailure"]` + +```yaml +widget: + type: technitium + url: + key: biglongapitoken + range: LastDay # optional, defaults to LastHour +``` + +#### API Key + +This can be generated via the Technitium DNS Dashboard, and should be generated from a special API specific user. + +#### Range + +`range` value determines how far back of statistics to pull data for. The value comes directly from Technitium API documentation found [here](https://github.com/TechnitiumSoftware/DnsServer/blob/master/APIDOCS.md#dashboard-api-calls), defined as `"type"`. The value can be one of: `LastHour`, `LastDay`, `LastWeek`, `LastMonth`, `LastYear`. diff --git a/docs/widgets/services/traefik.md b/docs/widgets/services/traefik.md new file mode 100644 index 00000000..e1d95a45 --- /dev/null +++ b/docs/widgets/services/traefik.md @@ -0,0 +1,19 @@ +--- +title: Traefik +description: Traefik Widget Configuration +--- + +Learn more about [Traefik](https://github.com/traefik/traefik). + +No extra configuration is required. +If your traefik install requires authentication, include the username and password used to login to the web interface. + +Allowed fields: `["routers", "services", "middleware"]`. + +```yaml +widget: + type: traefik + url: http://traefik.host.or.ip + username: username # optional + password: password # optional +``` diff --git a/docs/widgets/services/transmission.md b/docs/widgets/services/transmission.md new file mode 100644 index 00000000..32ba4493 --- /dev/null +++ b/docs/widgets/services/transmission.md @@ -0,0 +1,19 @@ +--- +title: Transmission +description: Transmission Widget Configuration +--- + +Learn more about [Transmission](https://github.com/transmission/transmission). + +Uses the same username and password used to login from the web. + +Allowed fields: `["leech", "download", "seed", "upload"]`. + +```yaml +widget: + type: transmission + url: http://transmission.host.or.ip + username: username + password: password + rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file +``` diff --git a/docs/widgets/services/truenas.md b/docs/widgets/services/truenas.md new file mode 100644 index 00000000..97bba3be --- /dev/null +++ b/docs/widgets/services/truenas.md @@ -0,0 +1,25 @@ +--- +title: TrueNas +description: TrueNas Scale Widget Configuration +--- + +Learn more about [TrueNas](https://www.truenas.com/). + +Allowed fields: `["load", "uptime", "alerts"]`. + +To create an API Key, follow [the official TrueNAS documentation](https://www.truenas.com/docs/scale/scaletutorials/toptoolbar/managingapikeys/). + +A detailed pool listing is disabled by default, but can be enabled with the `enablePools` option. + +To use the `enablePools` option with TrueNAS Core, the `nasType` parameter is required. + +```yaml +widget: + type: truenas + url: http://truenas.host.or.ip + username: user # not required if using api key + password: pass # not required if using api key + key: yourtruenasapikey # not required if using username / password + enablePools: true # optional, defaults to false + nasType: scale # defaults to scale, must be set to 'core' if using enablePools with TrueNAS Core +``` diff --git a/docs/widgets/services/tubearchivist.md b/docs/widgets/services/tubearchivist.md new file mode 100644 index 00000000..3b66a3cb --- /dev/null +++ b/docs/widgets/services/tubearchivist.md @@ -0,0 +1,17 @@ +--- +title: Tube Archivist +description: Tube Archivist Widget Configuration +--- + +Learn more about [Tube Archivist](https://github.com/tubearchivist/tubearchivist). + +You must be running at least version 0.4.4 + +Allowed fields: `["downloads", "videos", "channels", "playlists"]`. + +```yaml +widget: + type: tubearchivist + url: http://tubearchivist.host.or.ip + key: tubearchivistapikey +``` diff --git a/docs/widgets/services/unifi-controller.md b/docs/widgets/services/unifi-controller.md new file mode 100644 index 00000000..ecb81b8c --- /dev/null +++ b/docs/widgets/services/unifi-controller.md @@ -0,0 +1,32 @@ +--- +title: Unifi Controller +description: Unifi Controller Widget Configuration +--- + +Learn more about [Unifi Controller](https://ui.com/). + +_(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_ + +You can display general connectivity status from your Unifi (Network) Controller. + +!!! warning + + When authenticating you will want to use a local account that has at least read privileges. + +An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller. + +Allowed fields: `["uptime", "wan", "lan", "lan_users", "lan_devices", "wlan", "wlan_users", "wlan_devices"]` (maximum of four). Fields unsupported by the unifi device will not be shown. + +!!! hint + + If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container or restart the service to clear the cache. + +```yaml +widget: + type: unifi + url: https://unifi.host.or.ip:port + site: Site Name # optional + username: user + password: pass + key: unifiapikey # required if using API key instead of username/password +``` diff --git a/docs/widgets/services/unmanic.md b/docs/widgets/services/unmanic.md new file mode 100644 index 00000000..45298642 --- /dev/null +++ b/docs/widgets/services/unmanic.md @@ -0,0 +1,14 @@ +--- +title: Unmanic +description: Unmanic Widget Configuration +--- + +Learn more about [Unmanic](https://github.com/Unmanic/unmanic). + +Allowed fields: `["active_workers", "total_workers", "records_total"]`. + +```yaml +widget: + type: unmanic + url: http://unmanic.host.or.ip:port +``` diff --git a/docs/widgets/services/uptime-kuma.md b/docs/widgets/services/uptime-kuma.md new file mode 100644 index 00000000..399a0eee --- /dev/null +++ b/docs/widgets/services/uptime-kuma.md @@ -0,0 +1,17 @@ +--- +title: Uptime Kuma +description: Uptime Kuma Widget Configuration +--- + +Learn more about [Uptime Kuma](https://github.com/louislam/uptime-kuma). + +As Uptime Kuma does not yet have a full API the widget uses data from a single "status page". As such you will need a status page setup with a group of monitored sites, which is where you get the slug (the url without the `/status/` portion). E.g. if your status page is URL http://uptimekuma.host/status/statuspageslug, insert `slug: statuspageslug`. + +Allowed fields: `["up", "down", "uptime", "incident"]`. + +```yaml +widget: + type: uptimekuma + url: http://uptimekuma.host.or.ip:port + slug: statuspageslug +``` diff --git a/docs/widgets/services/uptimerobot.md b/docs/widgets/services/uptimerobot.md new file mode 100644 index 00000000..77e6bdaa --- /dev/null +++ b/docs/widgets/services/uptimerobot.md @@ -0,0 +1,32 @@ +--- +title: UptimeRobot +description: UptimeRobot Widget Configuration +--- + +Learn more about [UptimeRobot](https://uptimerobot.com/). + +To generate an API key, select `My Settings`, and either `Monitor-Specific API Key` or `Read-Only API Key`. + +A `Monitor-Specific API Key` will provide the following detailed information +for the selected monitor: + +- Current status +- Current uptime +- Date/time of last downtime +- Duration of last downtime + +Allowed fields: `["status", "uptime", "lastDown", "downDuration"]`. + +A `Read-Only API Key` will provide a summary of all monitors in your account: + +- Number of 'Up' monitors +- Number of 'Down' monitors + +Allowed fields: `["sitesUp", "sitesDown"]`. + +```yaml +widget: + type: uptimerobot + url: https://api.uptimerobot.com + key: uptimerobotapitoken +``` diff --git a/docs/widgets/services/urbackup.md b/docs/widgets/services/urbackup.md new file mode 100644 index 00000000..39c40e71 --- /dev/null +++ b/docs/widgets/services/urbackup.md @@ -0,0 +1,25 @@ +--- +title: UrBackup +description: UrBackup Widget Configuration +--- + +Learn more about [UrBackup](https://github.com/uroni/urbackup_backend). + +The UrBackup widget retrieves the total number of clients that currently have no errors, have errors, or haven't backed up recently. Clients are considered "Errored" or "Out of Date" if either the file or image backups for that client have errors/are out of date, unless the client does not support image backups. + +The default number of days that can elapse before a client is marked Out of Date is 3, but this value can be customized by setting the `maxDays` value in the config. + +Optionally, the widget can also report the total amount of disk space consumed by backups. This is disabled by default, because it requires a second API call. + +Note: client status is only shown for backups that the specified user has access to. Disk Usage shown is the total for all backups, regardless of permissions. + +Allowed fields: `["ok", "errored", "noRecent", "totalUsed"]`. _Note that `totalUsed` will not be shown unless explicitly included in `fields`._ + +```yaml +widget: + type: urbackup + username: urbackupUsername + password: urbackupPassword + url: http://urbackupUrl:55414 + maxDays: 5 # optional +``` diff --git a/docs/widgets/services/vikunja.md b/docs/widgets/services/vikunja.md new file mode 100644 index 00000000..94b99055 --- /dev/null +++ b/docs/widgets/services/vikunja.md @@ -0,0 +1,18 @@ +--- +title: Vikunja +description: Vikunja Widget Configuration +--- + +Learn more about [Vikunja](https://vikunja.io). + +Allowed fields: `["projects", "tasks7d", "tasksOverdue", "tasksInProgress"]`. + +A list of the next 5 tasks ordered by due date is disabled by default, but can be enabled with the `enableTaskList` option. + +```yaml +widget: + type: vikunja + url: http[s]://vikunja.host.or.ip[:port] + key: vikunjaapikey + enableTaskList: true # optional, defaults to false +``` diff --git a/docs/widgets/services/watchtower.md b/docs/widgets/services/watchtower.md new file mode 100644 index 00000000..a3cefce8 --- /dev/null +++ b/docs/widgets/services/watchtower.md @@ -0,0 +1,17 @@ +--- +title: Watchtower +description: Watchtower Widget Configuration +--- + +Learn more about [Watchtower](https://github.com/containrrr/watchtower). + +To use this widget, Watchtower needs to be configured to [enable metrics](https://containrrr.dev/watchtower/metrics/). + +Allowed fields: `["containers_scanned", "containers_updated", "containers_failed"]`. + +```yaml +widget: + type: watchtower + url: http://your-ip-address:8080 + key: demotoken +``` diff --git a/docs/widgets/services/wgeasy.md b/docs/widgets/services/wgeasy.md new file mode 100644 index 00000000..c5442081 --- /dev/null +++ b/docs/widgets/services/wgeasy.md @@ -0,0 +1,20 @@ +--- +title: Wg-Easy +description: Wg-Easy Widget Configuration +--- + +Learn more about [Wg-Easy](https://github.com/wg-easy/wg-easy). + +Allowed fields: `["connected", "enabled", "disabled", "total"]`. + +Note: by default `["connected", "enabled", "total"]` are displayed. + +To detect if a device is connected the time since the last handshake is queried. `threshold` is the time to wait in minutes since the last handshake to consider a device connected. Default is 2 minutes. + +```yaml +widget: + type: wgeasy + url: http://wg.easy.or.ip + password: yourwgeasypassword + threshold: 2 # optional +``` diff --git a/docs/widgets/services/whatsupdocker.md b/docs/widgets/services/whatsupdocker.md new file mode 100644 index 00000000..74eb2c97 --- /dev/null +++ b/docs/widgets/services/whatsupdocker.md @@ -0,0 +1,16 @@ +--- +title: What's Up Docker +description: What's Up Docker Widget Configuration +--- + +Learn more about [What's Up Docker](https://github.com/fmartinou/whats-up-docker). + +Allowed fields: `["monitoring", "updates"]`. + +```yaml +widget: + type: whatsupdocker + url: http://whatsupdocker:port + username: username # optional + password: password # optional +``` diff --git a/docs/widgets/services/xteve.md b/docs/widgets/services/xteve.md new file mode 100644 index 00000000..76dd73f8 --- /dev/null +++ b/docs/widgets/services/xteve.md @@ -0,0 +1,16 @@ +--- +title: Xteve +description: Xteve Widget Configuration +--- + +Learn more about [Xteve](https://github.com/xteve-project/xTeVe). + +Allowed fields: `["streams_all", "streams_active", "streams_xepg"]`. + +```yaml +widget: + type: xteve + url: http://xteve.host.or.ip + username: username # optional + password: password # optional +``` diff --git a/docs/widgets/services/zabbix.md b/docs/widgets/services/zabbix.md new file mode 100644 index 00000000..975f4926 --- /dev/null +++ b/docs/widgets/services/zabbix.md @@ -0,0 +1,21 @@ +--- +title: Zabbix +description: Zabbix Widget Configuration +--- + +Learn more about [Zabbix](https://github.com/zabbix/zabbix). The widget supports (at least) Zabbix server version 7.0. + +--- + +Allowed fields: `["unclassified", "information", "warning", "average", "high", "disaster"]`. + +Only 4 fields can be shown at a time, with the default being: `["warning", "average", "high", "disaster"]`. + +```yaml +widget: + type: zabbix + url: http://zabbix.host.or.ip/zabbix + key: your-api-key +``` + +See the [Zabbix documentation](https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/users/api_tokens) for details on generating API tokens. diff --git a/images/1.png b/images/1.png index 7aeb3848..52c69028 100644 Binary files a/images/1.png and b/images/1.png differ diff --git a/jsconfig.json b/jsconfig.json index fd99e2ea..73a261bb 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { "baseUrl": "./src/", - } -} \ No newline at end of file + }, + "include": ["src/**/*"] +} diff --git a/k3d/.gitignore b/k3d/.gitignore index eaeec318..f940e0b5 100644 --- a/k3d/.gitignore +++ b/k3d/.gitignore @@ -1,2 +1 @@ kubeconfig - diff --git a/k3d/README.md b/k3d/README.md index f144d763..2ab4634e 100644 --- a/k3d/README.md +++ b/k3d/README.md @@ -11,7 +11,7 @@ All the commands in the document should be run from the `k3d` directory. ## Requisite Tools | Tool | Description | -|-------------------------------------------------------------|----------------------------------------------------------| +| ----------------------------------------------------------- | -------------------------------------------------------- | | [docker](https://docker.io) | Docker container runtime | | [kubectl](https://kubernetes.io/releases/download/#kubectl) | Kubernetes CLI | | [helm](https://helm.sh) | Kubernetes package manager | @@ -20,7 +20,6 @@ All the commands in the document should be run from the `k3d` directory. | [tilt](https://tilt.dev) | (Optional) Local CI loop for kubernetes deployment | | [direnv](https://direnv.net/) | (Optional) Automatically loads `kubeconfig` via `.envrc` | - ## One-off Test Deployments Create a cluster: @@ -57,7 +56,7 @@ tilt up Press space bar to open the tilt web UI, which is quite informative. -Open the Homepage deployment: +Finally, open the Homepage deployment: ```sh xdg-open http://homepage.k3d.localhost:8080/ diff --git a/k3d/k3d-helm-values.yaml b/k3d/k3d-helm-values.yaml index 60b6fe38..13bb9229 100644 --- a/k3d/k3d-helm-values.yaml +++ b/k3d/k3d-helm-values.yaml @@ -46,6 +46,10 @@ config: docker: settings: +env: + - name: HOMEPAGE_ALLOWED_HOSTS + value: "homepage.k3d.localhost:8080" + serviceAccount: create: true name: homepage diff --git a/k3d/k3d.yaml b/k3d/k3d.yaml index e976c5c3..b93475a2 100644 --- a/k3d/k3d.yaml +++ b/k3d/k3d.yaml @@ -36,8 +36,8 @@ options: switchCurrentContext: false runtime: gpuRequest: "" - serversMemory: "1024Mi" - agentsMemory: "1024Mi" + serversMemory: "1024MiB" + agentsMemory: "1024MiB" labels: - label: foo=bar nodeFilters: diff --git a/kubernetes.md b/kubernetes.md index 0035ddd2..b6618aff 100644 --- a/kubernetes.md +++ b/kubernetes.md @@ -2,9 +2,9 @@ ## Requirements -* Kubernetes 1.19+ -* Metrics service -* An Ingress controller +- Kubernetes 1.19+ +- Metrics service +- An Ingress controller ## Deployment @@ -23,6 +23,12 @@ Set the `mode` in the `kubernetes.yaml` to `cluster`. mode: default ``` +To enable Kubernetes gateway-api compatibility, set `route` to `gateway`. + +```yaml +route: gateway +``` + ## Widgets The Kubernetes widget can show a high-level overview of the cluster, @@ -98,7 +104,7 @@ be configured on the service entry. This works by creating a label selector `app.kubernetes.io/name=home-assistant`, which typically will be the same both for the ingress and the deployment. However, some deployments can be complex and will not conform to this rule. In such -cases the `podSelector` variable can bridge the gap. Any field selector can +cases the `pod-selector` variable can bridge the gap. Any field selector can be used in it which allows for some powerful selection capabilities. For instance, it can be utilized to roll multiple underlying deployments under @@ -112,7 +118,7 @@ one application to see a high-level aggregate: description: Matrix Synapse Powered Chat app: matrix-element namespace: comms - podSelector: >- + pod-selector: >- app.kubernetes.io/instance in ( matrix-element, matrix-media-repo, diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..8bb19e43 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,301 @@ +site_name: Homepage + +# Project information +site_url: https://gethomepage.dev/ + +# Repository +repo_name: gethomepage/homepage +repo_url: https://github.com/gethomepage/homepage +edit_uri: https://github.com/gethomepage/homepage/tree/main/docs/ + +nav: + - "Home": + - index.md + - "Installation": + - installation/index.md + - installation/docker.md + - installation/k8s.md + - installation/unraid.md + - installation/source.md + - "Configuration": + - configs/index.md + - configs/settings.md + - configs/bookmarks.md + - configs/info-widgets.md + - configs/services.md + - configs/kubernetes.md + - configs/docker.md + - configs/custom-css-js.md + - "Widgets": + - widgets/index.md + - "Service Widgets": + - widgets/services/index.md + - widgets/services/adguard-home.md + - widgets/services/apcups.md + - widgets/services/argocd.md + - widgets/services/atsumeru.md + - widgets/services/audiobookshelf.md + - widgets/services/authentik.md + - widgets/services/autobrr.md + - widgets/services/azuredevops.md + - widgets/services/bazarr.md + - widgets/services/beszel.md + - widgets/services/caddy.md + - widgets/services/calendar.md + - widgets/services/calibre-web.md + - widgets/services/changedetectionio.md + - widgets/services/channelsdvrserver.md + - widgets/services/cloudflared.md + - widgets/services/coin-market-cap.md + - widgets/services/crowdsec.md + - widgets/services/customapi.md + - widgets/services/deluge.md + - widgets/services/develancacheui.md + - widgets/services/diskstation.md + - widgets/services/downloadstation.md + - widgets/services/emby.md + - widgets/services/esphome.md + - widgets/services/evcc.md + - widgets/services/fileflows.md + - widgets/services/firefly.md + - widgets/services/flood.md + - widgets/services/freshrss.md + - widgets/services/frigate.md + - widgets/services/fritzbox.md + - widgets/services/gamedig.md + - widgets/services/gatus.md + - widgets/services/ghostfolio.md + - widgets/services/gitea.md + - widgets/services/gitlab.md + - widgets/services/glances.md + - widgets/services/gluetun.md + - widgets/services/gotify.md + - widgets/services/grafana.md + - widgets/services/hdhomerun.md + - widgets/services/headscale.md + - widgets/services/healthchecks.md + - widgets/services/karakeep.md + - widgets/services/homeassistant.md + - widgets/services/homebox.md + - widgets/services/homebridge.md + - widgets/services/iframe.md + - widgets/services/immich.md + - widgets/services/jackett.md + - widgets/services/jdownloader.md + - widgets/services/jellyfin.md + - widgets/services/jellyseerr.md + - widgets/services/kavita.md + - widgets/services/komga.md + - widgets/services/kopia.md + - widgets/services/lidarr.md + - widgets/services/linkwarden.md + - widgets/services/lubelogger.md + - widgets/services/mastodon.md + - widgets/services/mailcow.md + - widgets/services/mealie.md + - widgets/services/medusa.md + - widgets/services/mikrotik.md + - widgets/services/minecraft.md + - widgets/services/miniflux.md + - widgets/services/mjpeg.md + - widgets/services/moonraker.md + - widgets/services/mylar.md + - widgets/services/myspeed.md + - widgets/services/navidrome.md + - widgets/services/netdata.md + - widgets/services/netalertx.md + - widgets/services/nextcloud.md + - widgets/services/nextdns.md + - widgets/services/nginx-proxy-manager.md + - widgets/services/nzbget.md + - widgets/services/octoprint.md + - widgets/services/omada.md + - widgets/services/ombi.md + - widgets/services/opendtu.md + - widgets/services/openmediavault.md + - widgets/services/opnsense.md + - widgets/services/openwrt.md + - widgets/services/overseerr.md + - widgets/services/paperlessngx.md + - widgets/services/peanut.md + - widgets/services/pfsense.md + - widgets/services/photoprism.md + - widgets/services/pihole.md + - widgets/services/plantit.md + - widgets/services/plex-tautulli.md + - widgets/services/plex.md + - widgets/services/portainer.md + - widgets/services/prometheus.md + - widgets/services/prometheusmetric.md + - widgets/services/prowlarr.md + - widgets/services/proxmox.md + - widgets/services/proxmoxbackupserver.md + - widgets/services/pterodactyl.md + - widgets/services/pyload.md + - widgets/services/qbittorrent.md + - widgets/services/qnap.md + - widgets/services/radarr.md + - widgets/services/readarr.md + - widgets/services/romm.md + - widgets/services/rutorrent.md + - widgets/services/sabnzbd.md + - widgets/services/scrutiny.md + - widgets/services/sonarr.md + - widgets/services/speedtest-tracker.md + - widgets/services/spoolman.md + - widgets/services/stash.md + - widgets/services/stocks.md + - widgets/services/suwayomi.md + - widgets/services/swagdashboard.md + - widgets/services/syncthing-relay-server.md + - widgets/services/tailscale.md + - widgets/services/tandoor.md + - widgets/services/technitium.md + - widgets/services/tdarr.md + - widgets/services/traefik.md + - widgets/services/transmission.md + - widgets/services/truenas.md + - widgets/services/tubearchivist.md + - widgets/services/unifi-controller.md + - widgets/services/unmanic.md + - widgets/services/uptime-kuma.md + - widgets/services/uptimerobot.md + - widgets/services/urbackup.md + - widgets/services/vikunja.md + - widgets/services/watchtower.md + - widgets/services/wgeasy.md + - widgets/services/whatsupdocker.md + - widgets/services/xteve.md + - widgets/services/zabbix.md + - "Information Widgets": + - widgets/info/index.md + - widgets/info/datetime.md + - widgets/info/glances.md + - widgets/info/greeting.md + - widgets/info/kubernetes.md + - widgets/info/logo.md + - widgets/info/longhorn.md + - widgets/info/openmeteo.md + - widgets/info/openweathermap.md + - widgets/info/resources.md + - widgets/info/search.md + - widgets/info/stocks.md + - widgets/info/unifi_controller.md + - "Learn": + - widgets/authoring/index.md + - "Getting Started": widgets/authoring/getting-started.md + - "Tutorials": + - widgets/authoring/tutorial.md + - "Guides": + - widgets/authoring/component.md + - widgets/authoring/metadata.md + - widgets/authoring/proxies.md + - widgets/authoring/api.md + - widgets/authoring/translations.md + - "Troubleshooting": + - troubleshooting/index.md + - "More": + - more/index.md + - more/translations.md + - more/coverage.md + - more/sponsors.md + - more/homepage-move.md + +theme: + name: material + custom_dir: docs/overrides + language: en + palette: + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: black + accent: black + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + accent: blue + toggle: + icon: material/brightness-4 + name: Switch to system preference + logo: assets/banner_light@2x.webp + + favicon: assets/favicon.ico + features: + - navigation.instant + - content.action.edit + - search.suggest + - search.share + - content.code.copy + - content.code.select + - navigation.tracking + - navigation.tabs + - navigation.sections + - navigation.indexes + - content.code.annotate + +extra_css: + - "stylesheets/extra.css" + +extra: + social: + - icon: fontawesome/brands/discord + link: https://discord.gg/k4ruYNrudu + - icon: fontawesome/brands/github + link: https://github.com/gethomepage/homepage + - icon: simple/opencollective + link: https://opencollective.com/homepage + - icon: simple/patreon + link: https://www.patreon.com/gethomepage + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.critic + - pymdownx.caret + - pymdownx.keys + - pymdownx.mark + - pymdownx.tilde + - pymdownx.details + - attr_list + - md_in_html + - admonition + +plugins: + - group: + enabled: !ENV MKINSIDERS + plugins: + - typeset + - social: + cards_layout: default + cards_layout_options: + background_image: docs/assets/blossom_valley_blur.jpg + background_color: "rgba(13, 29, 41, 128)" + color: "#ffffff" + logo: docs/assets/light_squircle@2x.webp + - tags + - search: + pipeline: + - stemmer + - stopWordFilter + - trimmer + - redirects: + redirect_maps: + "more/troubleshooting.md": "troubleshooting/index.md" + "more/development.md": "widgets/authoring/getting-started.md" diff --git a/next-i18next.config.js b/next-i18next.config.js index 54aeebb4..f6968dc3 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -69,7 +69,7 @@ function prettyBytes(number, options) { const exponent = Math.min( Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), - UNITS.length - 1 + UNITS.length - 1, ); number /= (options.binary ? 1024 : 1000) ** exponent; @@ -84,6 +84,33 @@ function prettyBytes(number, options) { return `${prefix + numberString} ${unit}`; } +function duration(durationInSeconds, i18next) { + const mo = Math.floor(durationInSeconds / (3600 * 24 * 31)); + const d = Math.floor((durationInSeconds % (3600 * 24 * 31)) / (3600 * 24)); + const h = Math.floor((durationInSeconds % (3600 * 24)) / 3600); + const m = Math.floor((durationInSeconds % 3600) / 60); + const s = Math.floor(durationInSeconds % 60); + + const moDisplay = mo > 0 ? mo + i18next.t("common.months") : ""; + const dDisplay = d > 0 ? d + i18next.t("common.days") : ""; + const hDisplay = h > 0 && mo === 0 ? h + i18next.t("common.hours") : ""; + const mDisplay = m > 0 && mo === 0 && d === 0 ? m + i18next.t("common.minutes") : ""; + const sDisplay = s > 0 && mo === 0 && d === 0 && h === 0 ? s + i18next.t("common.seconds") : ""; + + return (moDisplay + dDisplay + hDisplay + mDisplay + sDisplay).replace(/,\s*$/, ""); +} + +function relativeDate(date, formatter) { + const cutoffs = [60, 3600, 86400, 86400 * 7, 86400 * 30, 86400 * 365, Infinity]; + const units = ["second", "minute", "hour", "day", "week", "month", "year"]; + + const delta = Math.round((date.getTime() - Date.now()) / 1000); + const unitIndex = cutoffs.findIndex((cutoff) => cutoff > Math.abs(delta)); + const divisor = unitIndex ? cutoffs[unitIndex - 1] : 1; + + return formatter.format(Math.floor(delta / divisor), units[unitIndex]); +} + module.exports = { i18n: { defaultLocale: "en", @@ -94,13 +121,18 @@ module.exports = { { init: (i18next) => { i18next.services.formatter.add("bytes", (value, lng, options) => - prettyBytes(parseFloat(value), { locale: lng, ...options }) + prettyBytes(parseFloat(value), { locale: lng, ...options }), ); i18next.services.formatter.add("rate", (value, lng, options) => { - const k = options.binary ? 1024 : 1000; - const sizes = options.bits ? (options.binary ? BIBIT_UNITS : BIT_UNITS) : (options.binary ? BIBYTE_UNITS : BYTE_UNITS); + const sizes = options.bits + ? options.binary + ? BIBIT_UNITS + : BIT_UNITS + : options.binary + ? BIBYTE_UNITS + : BYTE_UNITS; if (value === 0) return `0 ${sizes[0]}/s`; @@ -109,15 +141,22 @@ module.exports = { const i = options.binary ? 2 : Math.floor(Math.log(value) / Math.log(k)); const formatted = new Intl.NumberFormat(lng, { maximumFractionDigits: dm, minimumFractionDigits: dm }).format( - parseFloat(value / k ** i) + parseFloat(value / k ** i), ); return `${formatted} ${sizes[i]}/s`; }); i18next.services.formatter.add("percent", (value, lng, options) => - new Intl.NumberFormat(lng, { style: "percent", ...options }).format(parseFloat(value) / 100.0) + new Intl.NumberFormat(lng, { style: "percent", ...options }).format(parseFloat(value) / 100.0), ); + i18next.services.formatter.add("date", (value, lng, options) => + new Intl.DateTimeFormat(lng, { ...options }).format(new Date(value)), + ); + i18next.services.formatter.add("relativeDate", (value, lng, options) => + relativeDate(new Date(value), new Intl.RelativeTimeFormat(lng, { ...options })), + ); + i18next.services.formatter.add("duration", (value, lng) => duration(value, i18next)); }, type: "3rdParty", }, diff --git a/next.config.js b/next.config.js index dae78ca0..d0395611 100644 --- a/next.config.js +++ b/next.config.js @@ -4,7 +4,6 @@ const { i18n } = require("./next-i18next.config"); const nextConfig = { reactStrictMode: true, output: "standalone", - swcMinify: false, images: { domains: ["cdn.jsdelivr.net"], unoptimized: true, diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2e2a3e13..00000000 --- a/package-lock.json +++ /dev/null @@ -1,5754 +0,0 @@ -{ - "name": "startpage", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "startpage", - "version": "0.1.0", - "dependencies": { - "@headlessui/react": "^1.7.2", - "@kubernetes/client-node": "^0.17.1", - "classnames": "^2.3.2", - "compare-versions": "^5.0.1", - "dockerode": "^3.3.4", - "follow-redirects": "^1.15.2", - "i18next": "^21.9.2", - "js-yaml": "^4.1.0", - "json-rpc-2.0": "^1.4.1", - "memory-cache": "^0.2.0", - "minecraft-ping-js": "^1.0.2", - "next": "^12.3.1", - "next-i18next": "^12.0.1", - "pretty-bytes": "^6.0.0", - "raw-body": "^2.5.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-i18next": "^11.18.6", - "react-icons": "^4.4.0", - "shvl": "^3.0.0", - "swr": "^1.3.0", - "systeminformation": "^5.17.12", - "tough-cookie": "^4.1.2", - "winston": "^3.8.2", - "xml-js": "^1.6.11" - }, - "devDependencies": { - "@tailwindcss/forms": "^0.5.3", - "autoprefixer": "^10.4.12", - "eslint": "^8.24.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-next": "^12.3.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.31.8", - "eslint-plugin-react-hooks": "^4.6.0", - "postcss": "^8.4.16", - "prettier": "^2.7.1", - "tailwind-scrollbar": "^2.0.1", - "tailwindcss": "^3.1.8", - "typescript": "^4.8.3" - }, - "optionalDependencies": { - "osx-temperature-sensor": "^1.0.8" - } - }, - "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", - "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@headlessui/react": { - "version": "1.7.13", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.13.tgz", - "integrity": "sha512-9n+EQKRtD9266xIHXdY5MfiXPDfYwl7zBM7KOx2Ae3Gdgxy8QML1FkCMjq6AsOf0l6N9uvI4HcFtuFlenaldKg==", - "dependencies": { - "client-only": "^0.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18", - "react-dom": "^16 || ^17 || ^18" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@kubernetes/client-node": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.17.1.tgz", - "integrity": "sha512-qXANjukuTq/drb1hq1NCYZafpdRTvbyTzbliWO6RwW7eEb2b9qwINbw0DiVHpBQg3e9DeQd8+brI1sR1Fck5kQ==", - "dependencies": { - "byline": "^5.0.0", - "execa": "5.0.0", - "isomorphic-ws": "^4.0.1", - "js-yaml": "^4.1.0", - "jsonpath-plus": "^0.19.0", - "request": "^2.88.0", - "rfc4648": "^1.3.0", - "shelljs": "^0.8.5", - "stream-buffers": "^3.0.2", - "tar": "^6.1.11", - "tmp-promise": "^3.0.2", - "tslib": "^1.9.3", - "underscore": "^1.9.1", - "ws": "^7.3.1" - }, - "optionalDependencies": { - "openid-client": "^5.1.6" - } - }, - "node_modules/@next/env": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.4.tgz", - "integrity": "sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz", - "integrity": "sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==", - "dev": true, - "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/swc-android-arm-eabi": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.4.tgz", - "integrity": "sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-android-arm64": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.4.tgz", - "integrity": "sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.4.tgz", - "integrity": "sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.4.tgz", - "integrity": "sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-freebsd-x64": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.4.tgz", - "integrity": "sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.4.tgz", - "integrity": "sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz", - "integrity": "sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz", - "integrity": "sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz", - "integrity": "sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz", - "integrity": "sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz", - "integrity": "sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz", - "integrity": "sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz", - "integrity": "sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", - "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", - "dev": true - }, - "node_modules/@swc/helpers": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", - "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@tailwindcss/forms": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", - "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", - "dev": true, - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/react": { - "version": "18.0.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.31.tgz", - "integrity": "sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" - }, - "node_modules/@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", - "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", - "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", - "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", - "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", - "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.57.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "node_modules/axe-core": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", - "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buildcheck": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001472", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001472.tgz", - "integrity": "sha512-xWC/0+hHHQgj3/vrKYY0AAzeIUgr7L9wlELIcAvZdDUHlhL/kNxMdnQLOSOQfP8R51ZzPhmHdyMkI0MMpmxCfg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compare-versions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", - "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/cpu-features": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/docker-modem": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz", - "integrity": "sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==", - "dependencies": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/dockerode": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", - "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", - "dependencies": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.342", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.342.tgz", - "integrity": "sha512-dTei3VResi5bINDENswBxhL+N0Mw5YnfWyTqO75KGsVldurEkhC9+CelJVAse8jycWyP8pv3VSj4BSyP8wTWJA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.37.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", - "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", - "dev": true, - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5" - }, - "engines": { - "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.28.0", - "eslint-plugin-react-hooks": "^4.3.0" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-next": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.3.4.tgz", - "integrity": "sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==", - "dev": true, - "dependencies": { - "@next/eslint-plugin-next": "12.3.4", - "@rushstack/eslint-patch": "^1.1.3", - "@typescript-eslint/parser": "^5.21.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^2.7.1", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.31.7", - "eslint-plugin-react-hooks": "^4.5.0" - }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "glob": "^7.2.0", - "is-glob": "^4.0.3", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" - } - }, - "node_modules/eslint-import-resolver-typescript/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/html-parse-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", - "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", - "dependencies": { - "void-elements": "3.1.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/i18next": { - "version": "21.10.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", - "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.17.2" - } - }, - "node_modules/i18next-fs-backend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-1.2.0.tgz", - "integrity": "sha512-pUx3AcgXCbur0jpFA7U67Z2RJflAcIi698Y8VL+phdOqUchahxriV3Cs+M6UkPNQSS/zPEzWLfdJ8EgjB7HVxg==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/jose": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", - "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/json-rpc-2.0": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/json-rpc-2.0/-/json-rpc-2.0-1.5.1.tgz", - "integrity": "sha512-ZY/vYl/uUgKN3tNrZMq7w+CGLcoUT+8AzDO/HJZVa+K4XcwgfgES1QDa5y7ieAeh4NgRo3hLexMxgdaiEiK9aA==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonpath-plus": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz", - "integrity": "sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "dependencies": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minecraft-ping-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minecraft-ping-js/-/minecraft-ping-js-1.0.2.tgz", - "integrity": "sha512-h9QYG2n+fBKgp520tXBwR354XRzR/w5wXe8CJCmxKm6jbLpAoLODM8Nj5+ssuIVQF8rtxkAnjwv7PH+7ehFzQQ==", - "dependencies": { - "node-int64": "^0.4.0", - "varint": "^6.0.0" - } - }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "dev": true, - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "optional": true - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/next": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/next/-/next-12.3.4.tgz", - "integrity": "sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ==", - "dependencies": { - "@next/env": "12.3.4", - "@swc/helpers": "0.4.11", - "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", - "styled-jsx": "5.0.7", - "use-sync-external-store": "1.2.0" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.3.4", - "@next/swc-android-arm64": "12.3.4", - "@next/swc-darwin-arm64": "12.3.4", - "@next/swc-darwin-x64": "12.3.4", - "@next/swc-freebsd-x64": "12.3.4", - "@next/swc-linux-arm-gnueabihf": "12.3.4", - "@next/swc-linux-arm64-gnu": "12.3.4", - "@next/swc-linux-arm64-musl": "12.3.4", - "@next/swc-linux-x64-gnu": "12.3.4", - "@next/swc-linux-x64-musl": "12.3.4", - "@next/swc-win32-arm64-msvc": "12.3.4", - "@next/swc-win32-ia32-msvc": "12.3.4", - "@next/swc-win32-x64-msvc": "12.3.4" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-i18next": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-12.1.0.tgz", - "integrity": "sha512-rhos/PVULmZPdC0jpec2MDBQMXdGZ3+Mbh/tZfrDtjgnVN3ucdq7k8BlwsJNww6FnqC8AC31n6dSYuqVzYsGsw==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.18.9", - "@types/hoist-non-react-statics": "^3.3.1", - "core-js": "^3", - "hoist-non-react-statics": "^3.3.2", - "i18next": "^21.9.1", - "i18next-fs-backend": "^1.1.5", - "react-i18next": "^11.18.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "next": ">= 10.0.0", - "react": ">= 16.8.0" - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oidc-token-hash": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz", - "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==", - "optional": true, - "engines": { - "node": "^10.13.0 || >=12.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openid-client": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.0.tgz", - "integrity": "sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==", - "optional": true, - "dependencies": { - "jose": "^4.10.0", - "lru-cache": "^6.0.0", - "object-hash": "^2.0.1", - "oidc-token-hash": "^5.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/osx-temperature-sensor": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/osx-temperature-sensor/-/osx-temperature-sensor-1.0.8.tgz", - "integrity": "sha512-Gl3b+bn7+oDDnqPa+4v/cg3yg9lnE8ppS7ivL3opBZh4i7h99JNmkm6zWmo0m2a83UUJu+C9D7lGP0OS8IlehA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", - "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-i18next": { - "version": "11.18.6", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.18.6.tgz", - "integrity": "sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==", - "dependencies": { - "@babel/runtime": "^7.14.5", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 19.0.0", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-icons": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz", - "integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfc4648": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.2.tgz", - "integrity": "sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shvl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shvl/-/shvl-3.0.0.tgz", - "integrity": "sha512-5IomAM3ykE/g9K9L6lhODc+TpCuN03rrhlboegeKyyfh66DDdpRD5JN37DYhNHH+RaYjiIDx64K/Ms/xQYOR5w==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" - }, - "node_modules/ssh2": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/styled-jsx": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz", - "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==", - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/sucrase": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.31.0.tgz", - "integrity": "sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==", - "dev": true, - "dependencies": { - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swr": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", - "integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==", - "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/systeminformation": { - "version": "5.17.12", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.17.12.tgz", - "integrity": "sha512-I3pfMW2vue53u+X08BNxaJieaHkRoMMKjWetY9lbYJeWFaeWPO6P4FkNc4XOCX8F9vbQ0HqQ25RJoz3U/B7liw==", - "os": [ - "darwin", - "linux", - "win32", - "freebsd", - "openbsd", - "netbsd", - "sunos", - "android" - ], - "bin": { - "systeminformation": "lib/cli.js" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "Buy me a coffee", - "url": "https://www.buymeacoffee.com/systeminfo" - } - }, - "node_modules/tailwind-scrollbar": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-2.1.0.tgz", - "integrity": "sha512-zpvY5mDs0130YzYjZKBiDaw32rygxk5RyJ4KmeHjGnwkvbjm/PszON1m4Bbt2DkMRIXlXsfNevykAESgURN4KA==", - "dev": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "tailwindcss": "3.x" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.0.tgz", - "integrity": "sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==", - "dev": true, - "dependencies": { - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.17.2", - "lilconfig": "^2.0.6", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.0.9", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "6.0.0", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1", - "sucrase": "^3.29.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss/node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dependencies": { - "tmp": "^0.2.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index 5f486bf7..40f2211a 100644 --- a/package.json +++ b/package.json @@ -1,59 +1,66 @@ { - "name": "startpage", - "version": "0.1.0", + "name": "homepage", + "version": "1.1.1", "private": true, "scripts": { "dev": "next dev -p 8080", + "preinstall": "npx only-allow pnpm", "build": "next build", "start": "next start", "lint": "next lint", "telemetry": "next telemetry disable" }, "dependencies": { - "@headlessui/react": "^1.7.2", - "@kubernetes/client-node": "^0.17.1", - "classnames": "^2.3.2", - "compare-versions": "^5.0.1", - "dockerode": "^3.3.4", - "follow-redirects": "^1.15.2", - "i18next": "^21.9.2", + "@headlessui/react": "^1.7.19", + "@kubernetes/client-node": "^1.0.0", + "cal-parser": "^1.0.2", + "classnames": "^2.5.1", + "compare-versions": "^6.1.1", + "dockerode": "^4.0.4", + "follow-redirects": "^1.15.9", + "gamedig": "^5.2.0", + "i18next": "^24.2.3", "js-yaml": "^4.1.0", - "json-rpc-2.0": "^1.4.1", + "json-rpc-2.0": "^1.7.0", + "luxon": "^3.5.0", "memory-cache": "^0.2.0", - "minecraft-ping-js": "^1.0.2", - "next": "^12.3.1", - "next-i18next": "^12.0.1", - "pretty-bytes": "^6.0.0", - "raw-body": "^2.5.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "minecraftstatuspinger": "^1.2.2", + "next": "^15.2.4", + "next-i18next": "^12.1.0", + "ping": "^0.4.4", + "pretty-bytes": "^6.1.1", + "raw-body": "^3.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "react-i18next": "^11.18.6", - "react-icons": "^4.4.0", "salted-md5": "^4.0.5", - "shvl": "^3.0.0", - "swr": "^1.3.0", - "systeminformation": "^5.17.12", - "tough-cookie": "^4.1.2", - "winston": "^3.8.2", + "recharts": "^2.12.6", + "react-icons": "^5.4.0", + "rrule": "^2.8.1", + "swr": "^2.3.3", + "systeminformation": "^5.25.11", + "tough-cookie": "^5.1.2", + "urbackup-server-api": "^0.8.9", + "winston": "^3.17.0", "xml-js": "^1.6.11" }, "devDependencies": { - "@tailwindcss/forms": "^0.5.3", - "autoprefixer": "^10.4.12", - "eslint": "^8.24.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-next": "^12.3.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.31.8", - "eslint-plugin-react-hooks": "^4.6.0", - "postcss": "^8.4.16", - "prettier": "^2.7.1", - "tailwind-scrollbar": "^2.0.1", - "tailwindcss": "^3.1.8", - "typescript": "^4.8.3" + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/postcss": "^4.0.9", + "eslint": "^9.21.0", + "eslint-config-next": "^15.2.4", + "eslint-config-prettier": "^10.1.1", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-react": "^7.37.4", + "eslint-plugin-react-hooks": "^5.1.0", + "postcss": "^8.5.3", + "prettier": "^3.5.2", + "prettier-plugin-organize-imports": "^4.1.0", + "tailwind-scrollbar": "^4.0.1", + "tailwindcss": "^4.0.9", + "typescript": "^5.7.3" }, "optionalDependencies": { "osx-temperature-sensor": "^1.0.8" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8eec7883..170e380e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1282 +1,1333 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' -dependencies: - '@headlessui/react': - specifier: ^1.7.2 - version: 1.7.13(react-dom@18.2.0)(react@18.2.0) - '@kubernetes/client-node': - specifier: ^0.17.1 - version: 0.17.1 - classnames: - specifier: ^2.3.2 - version: 2.3.2 - compare-versions: - specifier: ^5.0.1 - version: 5.0.3 - dockerode: - specifier: ^3.3.4 - version: 3.3.5 - follow-redirects: - specifier: ^1.15.2 - version: 1.15.2 - i18next: - specifier: ^21.9.2 - version: 21.10.0 - jdownloader-client: - specifier: ^1.0.0 - version: 1.0.0 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - json-rpc-2.0: - specifier: ^1.4.1 - version: 1.5.1 - memory-cache: - specifier: ^0.2.0 - version: 0.2.0 - minecraft-ping-js: - specifier: ^1.0.2 - version: 1.0.2 - next: - specifier: ^12.3.1 - version: 12.3.4(react-dom@18.2.0)(react@18.2.0) - next-i18next: - specifier: ^12.0.1 - version: 12.1.0(next@12.3.4)(react-dom@18.2.0)(react@18.2.0) - pretty-bytes: - specifier: ^6.0.0 - version: 6.1.0 - raw-body: - specifier: ^2.5.1 - version: 2.5.2 - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-i18next: - specifier: ^11.18.6 - version: 11.18.6(i18next@21.10.0)(react-dom@18.2.0)(react@18.2.0) - react-icons: - specifier: ^4.4.0 - version: 4.8.0(react@18.2.0) - salted-md5: - specifier: ^4.0.5 - version: 4.0.5 - shvl: - specifier: ^3.0.0 - version: 3.0.0 - swr: - specifier: ^1.3.0 - version: 1.3.0(react@18.2.0) - systeminformation: - specifier: ^5.17.12 - version: 5.17.12 - tough-cookie: - specifier: ^4.1.2 - version: 4.1.2 - winston: - specifier: ^3.8.2 - version: 3.8.2 - xml-js: - specifier: ^1.6.11 - version: 1.6.11 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false -optionalDependencies: - osx-temperature-sensor: - specifier: ^1.0.8 - version: 1.0.8 +importers: -devDependencies: - '@tailwindcss/forms': - specifier: ^0.5.3 - version: 0.5.3(tailwindcss@3.3.0) - autoprefixer: - specifier: ^10.4.12 - version: 10.4.14(postcss@8.4.21) - eslint: - specifier: ^8.24.0 - version: 8.37.0 - eslint-config-airbnb: - specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.37.0) - eslint-config-next: - specifier: ^12.3.1 - version: 12.3.4(eslint@8.37.0)(typescript@4.9.5) - eslint-config-prettier: - specifier: ^8.5.0 - version: 8.8.0(eslint@8.37.0) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - eslint-plugin-jsx-a11y: - specifier: ^6.6.1 - version: 6.7.1(eslint@8.37.0) - eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.37.0)(prettier@2.8.7) - eslint-plugin-react: - specifier: ^7.31.8 - version: 7.32.2(eslint@8.37.0) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.37.0) - postcss: - specifier: ^8.4.16 - version: 8.4.21 - prettier: - specifier: ^2.7.1 - version: 2.8.7 - tailwind-scrollbar: - specifier: ^2.0.1 - version: 2.1.0(tailwindcss@3.3.0) - tailwindcss: - specifier: ^3.1.8 - version: 3.3.0(postcss@8.4.21) - typescript: - specifier: ^4.8.3 - version: 4.9.5 + .: + dependencies: + '@headlessui/react': + specifier: ^1.7.19 + version: 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@kubernetes/client-node': + specifier: ^1.0.0 + version: 1.0.0 + cal-parser: + specifier: ^1.0.2 + version: 1.0.2 + classnames: + specifier: ^2.5.1 + version: 2.5.1 + compare-versions: + specifier: ^6.1.1 + version: 6.1.1 + dockerode: + specifier: ^4.0.4 + version: 4.0.4 + follow-redirects: + specifier: ^1.15.9 + version: 1.15.9 + gamedig: + specifier: ^5.2.0 + version: 5.2.0 + i18next: + specifier: ^24.2.3 + version: 24.2.3(typescript@5.7.3) + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + json-rpc-2.0: + specifier: ^1.7.0 + version: 1.7.0 + luxon: + specifier: ^3.5.0 + version: 3.5.0 + memory-cache: + specifier: ^0.2.0 + version: 0.2.0 + minecraftstatuspinger: + specifier: ^1.2.2 + version: 1.2.2 + next: + specifier: ^15.2.4 + version: 15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-i18next: + specifier: ^12.1.0 + version: 12.1.0(next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ping: + specifier: ^0.4.4 + version: 0.4.4 + pretty-bytes: + specifier: ^6.1.1 + version: 6.1.1 + raw-body: + specifier: ^3.0.0 + version: 3.0.0 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-i18next: + specifier: ^11.18.6 + version: 11.18.6(i18next@24.2.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-icons: + specifier: ^5.4.0 + version: 5.4.0(react@18.3.1) + recharts: + specifier: ^2.15.1 + version: 2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rrule: + specifier: ^2.8.1 + version: 2.8.1 + swr: + specifier: ^2.3.3 + version: 2.3.3(react@18.3.1) + systeminformation: + specifier: ^5.25.11 + version: 5.25.11 + tough-cookie: + specifier: ^5.1.2 + version: 5.1.2 + urbackup-server-api: + specifier: ^0.8.9 + version: 0.8.9 + winston: + specifier: ^3.17.0 + version: 3.17.0 + xml-js: + specifier: ^1.6.11 + version: 1.6.11 + optionalDependencies: + osx-temperature-sensor: + specifier: ^1.0.8 + version: 1.0.8 + devDependencies: + '@tailwindcss/forms': + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@4.0.9) + '@tailwindcss/postcss': + specifier: ^4.0.9 + version: 4.0.9 + eslint: + specifier: ^9.21.0 + version: 9.21.0(jiti@2.4.2) + eslint-config-next: + specifier: ^15.2.4 + version: 15.2.4(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + eslint-config-prettier: + specifier: ^10.1.1 + version: 10.1.1(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-import: + specifier: ^2.31.0 + version: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: + specifier: ^6.10.2 + version: 6.10.2(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-prettier: + specifier: ^5.2.3 + version: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(prettier@3.5.2) + eslint-plugin-react: + specifier: ^7.37.4 + version: 7.37.4(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-react-hooks: + specifier: ^5.1.0 + version: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + postcss: + specifier: ^8.5.3 + version: 8.5.3 + prettier: + specifier: ^3.5.2 + version: 3.5.2 + prettier-plugin-organize-imports: + specifier: ^4.1.0 + version: 4.1.0(prettier@3.5.2)(typescript@5.7.3) + tailwind-scrollbar: + specifier: ^4.0.1 + version: 4.0.1(react@18.3.1)(tailwindcss@4.0.9) + tailwindcss: + specifier: ^4.0.9 + version: 4.0.9 + typescript: + specifier: ^5.7.3 + version: 5.7.3 packages: - /@babel/runtime@7.21.0: - resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@babel/runtime@7.26.9': + resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - /@balena/dockerignore@1.0.2: + '@babel/runtime@7.27.0': + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + engines: {node: '>=6.9.0'} + + '@balena/dockerignore@1.0.2': resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - dev: false - /@dabh/diagnostics@2.0.3: + '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - dependencies: - colorspace: 1.1.4 - enabled: 2.0.0 - kuler: 2.0.0 - dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@emnapi/core@1.4.0': + resolution: {integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==} + + '@emnapi/runtime@1.4.0': + resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.37.0 - eslint-visitor-keys: 3.4.0 - dev: true - /@eslint-community/regexpp@4.5.0: - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + '@eslint-community/eslint-utils@4.5.1': + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint/eslintrc@2.0.2: - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.5.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@eslint/js@8.37.0: - resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@headlessui/react@1.7.13(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9n+EQKRtD9266xIHXdY5MfiXPDfYwl7zBM7KOx2Ae3Gdgxy8QML1FkCMjq6AsOf0l6N9uvI4HcFtuFlenaldKg==} + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.21.0': + resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@grpc/grpc-js@1.12.6': + resolution: {integrity: sha512-JXUj6PI0oqqzTGvKtzOkxtpsyPRNsrmhh41TtIz/zEB6J+AUiZZ0dxWzcMwO9Ns5rmSPuMdghlTbUuqIM48d3Q==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@headlessui/react@1.7.19': + resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} engines: {node: '>=10'} peerDependencies: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 - dependencies: - client-only: 0.0.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} - /@humanwhocodes/module-importer@1.0.1: + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} - /@kubernetes/client-node@0.17.1: - resolution: {integrity: sha512-qXANjukuTq/drb1hq1NCYZafpdRTvbyTzbliWO6RwW7eEb2b9qwINbw0DiVHpBQg3e9DeQd8+brI1sR1Fck5kQ==} - dependencies: - byline: 5.0.0 - execa: 5.0.0 - isomorphic-ws: 4.0.1(ws@7.5.9) - js-yaml: 4.1.0 - jsonpath-plus: 0.19.0 - request: 2.88.2 - rfc4648: 1.5.2 - shelljs: 0.8.5 - stream-buffers: 3.0.2 - tar: 6.1.13 - tmp-promise: 3.0.3 - tslib: 1.14.1 - underscore: 1.13.6 - ws: 7.5.9 - optionalDependencies: - openid-client: 5.4.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} - /@next/env@12.3.4: - resolution: {integrity: sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A==} - dev: false - - /@next/eslint-plugin-next@12.3.4: - resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} - dependencies: - glob: 7.1.7 - dev: true - - /@next/swc-android-arm-eabi@12.3.4: - resolution: {integrity: sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64@12.3.4: - resolution: {integrity: sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg==} - engines: {node: '>= 10'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true + os: [darwin] - /@next/swc-darwin-arm64@12.3.4: - resolution: {integrity: sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA==} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsep-plugin/assignment@1.3.0': + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/regex@1.0.4': + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@kubernetes/client-node@1.0.0': + resolution: {integrity: sha512-a8NSvFDSHKFZ0sR1hbPSf8IDFNJwctEU5RodSCNiq/moRXWmrdmqhb1RRQzF+l+TSBaDgHw3YsYNxxE92STBzw==} + + '@napi-rs/wasm-runtime@0.2.8': + resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==} + + '@next/env@15.2.4': + resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} + + '@next/eslint-plugin-next@15.2.4': + resolution: {integrity: sha512-O8ScvKtnxkp8kL9TpJTTKnMqlkZnS+QxwoQnJwPGBxjBbzd6OVVPEJ5/pMNrktSyXQD/chEfzfFzYLM6JANOOQ==} + + '@next/swc-darwin-arm64@15.2.4': + resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-x64@12.3.4: - resolution: {integrity: sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ==} + '@next/swc-darwin-x64@15.2.4': + resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-freebsd-x64@12.3.4: - resolution: {integrity: sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ==} + '@next/swc-linux-arm64-gnu@15.2.4': + resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.2.4': + resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.2.4': + resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.2.4': + resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@15.2.4': + resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.2.4': + resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.11.0': + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@tailwindcss/forms@0.5.10': + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + + '@tailwindcss/node@4.0.9': + resolution: {integrity: sha512-tOJvdI7XfJbARYhxX+0RArAhmuDcczTC46DGCEziqxzzbIaPnfYaIyRT31n4u8lROrsO7Q6u/K9bmQHL2uL1bQ==} + + '@tailwindcss/oxide-android-arm64@4.0.9': + resolution: {integrity: sha512-YBgy6+2flE/8dbtrdotVInhMVIxnHJPbAwa7U1gX4l2ThUIaPUp18LjB9wEH8wAGMBZUb//SzLtdXXNBHPUl6Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.0.9': + resolution: {integrity: sha512-pWdl4J2dIHXALgy2jVkwKBmtEb73kqIfMpYmcgESr7oPQ+lbcQ4+tlPeVXaSAmang+vglAfFpXQCOvs/aGSqlw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.0.9': + resolution: {integrity: sha512-4Dq3lKp0/C7vrRSkNPtBGVebEyWt9QPPlQctxJ0H3MDyiQYvzVYf8jKow7h5QkWNe8hbatEqljMj/Y0M+ERYJg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.0.9': + resolution: {integrity: sha512-k7U1RwRODta8x0uealtVt3RoWAWqA+D5FAOsvVGpYoI6ObgmnzqWW6pnVwz70tL8UZ/QXjeMyiICXyjzB6OGtQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm-gnueabihf@12.3.4: - resolution: {integrity: sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.9': + resolution: {integrity: sha512-NDDjVweHz2zo4j+oS8y3KwKL5wGCZoXGA9ruJM982uVJLdsF8/1AeKvUwKRlMBpxHt1EdWJSAh8a0Mfhl28GlQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-gnu@12.3.4: - resolution: {integrity: sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA==} + '@tailwindcss/oxide-linux-arm64-gnu@4.0.9': + resolution: {integrity: sha512-jk90UZ0jzJl3Dy1BhuFfRZ2KP9wVKMXPjmCtY4U6fF2LvrjP5gWFJj5VHzfzHonJexjrGe1lMzgtjriuZkxagg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-musl@12.3.4: - resolution: {integrity: sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.0.9': + resolution: {integrity: sha512-3eMjyTC6HBxh9nRgOHzrc96PYh1/jWOwHZ3Kk0JN0Kl25BJ80Lj9HEvvwVDNTgPg154LdICwuFLuhfgH9DULmg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-gnu@12.3.4: - resolution: {integrity: sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==} + '@tailwindcss/oxide-linux-x64-gnu@4.0.9': + resolution: {integrity: sha512-v0D8WqI/c3WpWH1kq/HP0J899ATLdGZmENa2/emmNjubT0sWtEke9W9+wXeEoACuGAhF9i3PO5MeyditpDCiWQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-musl@12.3.4: - resolution: {integrity: sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==} + '@tailwindcss/oxide-linux-x64-musl@4.0.9': + resolution: {integrity: sha512-Kvp0TCkfeXyeehqLJr7otsc4hd/BUPfcIGrQiwsTVCfaMfjQZCG7DjI+9/QqPZha8YapLA9UoIcUILRYO7NE1Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-arm64-msvc@12.3.4: - resolution: {integrity: sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==} + '@tailwindcss/oxide-win32-arm64-msvc@4.0.9': + resolution: {integrity: sha512-m3+60T/7YvWekajNq/eexjhV8z10rswcz4BC9bioJ7YaN+7K8W2AmLmG0B79H14m6UHE571qB0XsPus4n0QVgQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-ia32-msvc@12.3.4: - resolution: {integrity: sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==} + '@tailwindcss/oxide-win32-x64-msvc@4.0.9': + resolution: {integrity: sha512-dpc05mSlqkwVNOUjGu/ZXd5U1XNch1kHFJ4/cHkZFvaW1RzbHmRt24gvM8/HC6IirMxNarzVw4IXVtvrOoZtxA==} engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.0.9': + resolution: {integrity: sha512-eLizHmXFqHswJONwfqi/WZjtmWZpIalpvMlNhTM99/bkHtUs6IqgI1XQ0/W5eO2HiRQcIlXUogI2ycvKhVLNcA==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.0.9': + resolution: {integrity: sha512-BT/E+pdMqulavEAVM5NCpxmGEwHiLDPpkmg/c/X25ZBW+izTe+aZ+v1gf/HXTrihRoCxrUp5U4YyHsBTzspQKQ==} + + '@tanstack/react-virtual@3.13.0': + resolution: {integrity: sha512-CchF0NlLIowiM2GxtsoKBkXA4uqSnY2KvnXo+kyUFD4a4ll6+J0qzoRsUPMwXV/H26lRsxgJIr/YmjYum2oEjg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/virtual-core@3.13.0': + resolution: {integrity: sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==} + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/d3-array@3.2.1': + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/hoist-non-react-statics@3.3.6': + resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + + '@types/node@22.13.4': + resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} + + '@types/prismjs@1.26.5': + resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} + + '@types/react@19.0.10': + resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==} + + '@types/stream-buffers@3.0.7': + resolution: {integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==} + + '@types/tar@6.1.13': + resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/ws@8.5.14': + resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + + '@typescript-eslint/eslint-plugin@8.29.0': + resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.29.0': + resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.29.0': + resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.29.0': + resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.29.0': + resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.29.0': + resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.29.0': + resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.29.0': + resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@unrs/resolver-binding-darwin-arm64@1.3.3': + resolution: {integrity: sha512-EpRILdWr3/xDa/7MoyfO7JuBIJqpBMphtu4+80BK1bRfFcniVT74h3Z7q1+WOc92FuIAYatB1vn9TJR67sORGw==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.3.3': + resolution: {integrity: sha512-ntj/g7lPyqwinMJWZ+DKHBse8HhVxswGTmNgFKJtdgGub3M3zp5BSZ3bvMP+kBT6dnYJLSVlDqdwOq1P8i0+/g==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.3.3': + resolution: {integrity: sha512-l6BT8f2CU821EW7U8hSUK8XPq4bmyTlt9Mn4ERrfjJNoCw0/JoHAh9amZZtV3cwC3bwwIat+GUnrcHTG9+qixw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.3.3': + resolution: {integrity: sha512-8ScEc5a4y7oE2BonRvzJ+2GSkBaYWyh0/Ko4Q25e/ix6ANpJNhwEPZvCR6GVRmsQAYMIfQvYLdM6YEN+qRjnAQ==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.3.3': + resolution: {integrity: sha512-8qQ6l1VTzLNd3xb2IEXISOKwMGXDCzY/UNy/7SovFW2Sp0K3YbL7Ao7R18v6SQkLqQlhhqSBIFRk+u6+qu5R5A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.3.3': + resolution: {integrity: sha512-v81R2wjqcWXJlQY23byqYHt9221h4anQ6wwN64oMD/WAE+FmxPHFZee5bhRkNVtzqO/q7wki33VFWlhiADwUeQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.3.3': + resolution: {integrity: sha512-cAOx/j0u5coMg4oct/BwMzvWJdVciVauUvsd+GQB/1FZYKQZmqPy0EjJzJGbVzFc6gbnfEcSqvQE6gvbGf2N8Q==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.3.3': + resolution: {integrity: sha512-mq2blqwErgDJD4gtFDlTX/HZ7lNP8YCHYFij2gkXPtMzrXxPW1hOtxL6xg4NWxvnj4bppppb0W3s/buvM55yfg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.3.3': + resolution: {integrity: sha512-u0VRzfFYysarYHnztj2k2xr+eu9rmgoTUUgCCIT37Nr+j0A05Xk2c3RY8Mh5+DhCl2aYibihnaAEJHeR0UOFIQ==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.3.3': + resolution: {integrity: sha512-OrVo5ZsG29kBF0Ug95a2KidS16PqAMmQNozM6InbquOfW/udouk063e25JVLqIBhHLB2WyBnixOQ19tmeC/hIg==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.3.3': + resolution: {integrity: sha512-PYnmrwZ4HMp9SkrOhqPghY/aoL+Rtd4CQbr93GlrRTjK6kDzfMfgz3UH3jt6elrQAfupa1qyr1uXzeVmoEAxUA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.3.3': + resolution: {integrity: sha512-81AnQY6fShmktQw4hWDUIilsKSdvr/acdJ5azAreu2IWNlaJOKphJSsUVWE+yCk6kBMoQyG9ZHCb/krb5K0PEA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.3.3': + resolution: {integrity: sha512-X/42BMNw7cW6xrB9syuP5RusRnWGoq+IqvJO8IDpp/BZg64J1uuIW6qA/1Cl13Y4LyLXbJVYbYNSKwR/FiHEng==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.3.3': + resolution: {integrity: sha512-EGNnNGQxMU5aTN7js3ETYvuw882zcO+dsVjs+DwO2j/fRVKth87C8e2GzxW1L3+iWAXMyJhvFBKRavk9Og1Z6A==} cpu: [ia32] os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-x64-msvc@12.3.4: - resolution: {integrity: sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==} - engines: {node: '>= 10'} + '@unrs/resolver-binding-win32-x64-msvc@1.3.3': + resolution: {integrity: sha512-GraLbYqOJcmW1qY3osB+2YIiD62nVf2/bVLHZmrb4t/YSUwE03l7TwcDJl08T/Tm3SVhepX8RQkpzWbag/Sb4w==} cpu: [x64] os: [win32] - requiresBuild: true - dev: false - optional: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@rushstack/eslint-patch@1.2.0: - resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} - dev: true - - /@swc/helpers@0.4.11: - resolution: {integrity: sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==} - dependencies: - tslib: 2.5.0 - dev: false - - /@tailwindcss/forms@0.5.3(tailwindcss@3.3.0): - resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 3.3.0(postcss@8.4.21) - dev: true - - /@types/hoist-non-react-statics@3.3.1: - resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} - dependencies: - '@types/react': 18.0.31 - hoist-non-react-statics: 3.3.2 - dev: false - - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: false - - /@types/react@18.0.31: - resolution: {integrity: sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.1 - dev: false - - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: false - - /@types/triple-beam@1.3.2: - resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} - dev: false - - /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@4.9.5): - resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@4.9.5) - debug: 4.3.4 - eslint: 8.37.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@5.57.0: - resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - dev: true - - /@typescript-eslint/types@5.57.0: - resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree@5.57.0(typescript@4.9.5): - resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys@5.57.0: - resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - eslint-visitor-keys: 3.4.0 - dev: true - - /acorn-jsx@5.3.2(acorn@8.8.2): + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} - dev: true + hasBin: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true - /ansi-styles@4.3.0: + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - /any-promise@1.3.0: + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - dependencies: - deep-equal: 2.2.0 - dev: true - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - dev: true - - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.0 - is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.0 - dev: true + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} - /asn1@0.2.6: + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - dependencies: - safer-buffer: 2.1.2 - dev: false - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - dev: false + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - /ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} - dev: true - - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: false - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /autoprefixer@10.4.14(postcss@8.4.21): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001472 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - dev: true - - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - dev: true - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: false + async-mutex@0.3.2: + resolution: {integrity: sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==} - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: false + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - /axe-core@4.6.3: - resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - dev: true - /axios@0.17.1: - resolution: {integrity: sha512-mZzWRyJeJ0rtK7e1/6iYBUzmeXjzei+1h1IvbedyU0sB52++tU5AU6r6TLXpwNVR0ebXIpvTVW+9CpWNyc1n8w==} - deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 - dependencies: - follow-redirects: 1.15.2 - is-buffer: 1.1.6 - transitivePeerDependencies: - - debug - dev: false + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} - /axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} - dependencies: - deep-equal: 2.2.0 - dev: true - - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js@1.5.1: + barse@0.4.3: + resolution: {integrity: sha512-UEpvriJqAn8zuVinYICuKoPttZy3XxXEoqX/V2uYAL4zzJRuNzCK3+20nAu3YUIa2U7G53kf90wfBIp9/A+Odw==} + + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - /bcrypt-pbkdf@1.0.2: + bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - dependencies: - tweetnacl: 0.14.5 - dev: false - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl@4.1.0: + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - /brace-expansion@1.1.11: + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - /browserslist@4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - dependencies: - caniuse-lite: 1.0.30001472 - electron-to-chromium: 1.4.343 - node-releases: 2.0.10 - update-browserslist-db: 1.0.10(browserslist@4.21.5) - dev: true - - /buffer@5.7.1: + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - /buildcheck@0.0.3: - resolution: {integrity: sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==} + buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} engines: {node: '>=10.0.0'} - dev: false - optional: true - /byline@5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} - engines: {node: '>=0.10.0'} - dev: false + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} - /bytes@3.1.2: + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - dev: false - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.0 - dev: true + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} - /callsites@3.1.0: + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + cal-parser@1.0.2: + resolution: {integrity: sha512-wlQwcF0fl4eLclyGdncF9rcNNq0ipRYZGagG6h3LVgRXvCWE1fdMUaCLXwfC9YWoz9jKKbjQAq7TpO2Y3yrvmA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true + caniuse-lite@1.0.30001712: + resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} - /caniuse-lite@1.0.30001472: - resolution: {integrity: sha512-xWC/0+hHHQgj3/vrKYY0AAzeIUgr7L9wlELIcAvZdDUHlhL/kNxMdnQLOSOQfP8R51ZzPhmHdyMkI0MMpmxCfg==} - - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: false - - /chalk@4.1.2: + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - /chownr@1.1.4: + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} - /classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - dev: false + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - /client-only@0.0.1: + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false - /color-convert@1.9.3: + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: false - /color-convert@2.0.1: + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - /color-name@1.1.3: + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - /color-name@1.1.4: + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string@1.9.1: + color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: false - /color@3.2.1: + color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - dev: false - /colorspace@1.1.4: + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + colorspace@1.1.4: resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - dependencies: - color: 3.2.1 - text-hex: 1.0.0 - dev: false - /combined-stream@1.0.8: + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} - dev: true - /compare-versions@5.0.3: - resolution: {integrity: sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==} - dev: false + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - /concat-map@0.0.1: + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - dev: true + core-js@3.40.0: + resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} - /core-js@3.29.1: - resolution: {integrity: sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==} - requiresBuild: true - dev: false + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - dev: false - - /cpu-features@0.0.4: - resolution: {integrity: sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==} + cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} engines: {node: '>=10.0.0'} - requiresBuild: true - dependencies: - buildcheck: 0.0.3 - nan: 2.17.0 - dev: false - optional: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - dev: true + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: false + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} - /damerau-levenshtein@1.0.8: + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: false + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} - /debug@3.2.7: + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.3 - dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.2 - /deep-equal@2.2.0: - resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} - dependencies: - call-bind: 1.0.2 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.0 - is-arguments: 1.1.1 - is-array-buffer: 3.0.2 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - isarray: 2.0.5 - object-is: 1.1.5 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.9 - dev: true + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - /deep-is@0.1.4: + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - /delayed-stream@1.0.0: + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: false - /depd@2.0.0: + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dev: false - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /docker-modem@3.0.8: - resolution: {integrity: sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==} + docker-modem@5.0.6: + resolution: {integrity: sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==} engines: {node: '>= 8.0'} - dependencies: - debug: 4.3.4 - readable-stream: 3.6.2 - split-ca: 1.0.1 - ssh2: 1.11.0 - transitivePeerDependencies: - - supports-color - dev: false - /dockerode@3.3.5: - resolution: {integrity: sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==} + dockerode@4.0.4: + resolution: {integrity: sha512-6GYP/EdzEY50HaOxTVTJ2p+mB5xDHTMJhS+UoGrVyS6VC+iQRh7kZ4FRpUYq6nziby7hPqWhOrFFUFTMUZJJ5w==} engines: {node: '>= 8.0'} - dependencies: - '@balena/dockerignore': 1.0.2 - docker-modem: 3.0.8 - tar-fs: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: false - /doctrine@2.1.0: + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: false + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - /electron-to-chromium@1.4.343: - resolution: {integrity: sha512-22C6pOljO+QQ/yeBZJkxewjsGwSKCXymng7dF8lir3m8iJGi6guoLVkK8jghCf3o0/tARFASAgLP8OzR9SKRCA==} - dev: true + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - /emoji-regex@9.2.2: + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /enabled@2.0.0: + enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - dev: false - /end-of-stream@1.4.4: + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - dev: true - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - dev: true - - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - dependencies: - has: 1.0.3 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - dev: true - /escape-string-regexp@4.0.0: + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true - /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.27.5)(eslint@8.37.0): - resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} - engines: {node: ^10.12.0 || >=12.0.0} + eslint-config-next@15.2.4: + resolution: {integrity: sha512-v4gYjd4eYIme8qzaJItpR5MMBXJ0/YV07u7eb50kEnlEmX7yhOjdUdzz70v4fiINYRjLf8X8TbogF0k7wlz6sA==} peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.37.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - object.assign: 4.1.4 - object.entries: 1.1.6 - semver: 6.3.0 - dev: true - - /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.37.0): - resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} - engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-react: ^7.28.0 - eslint-plugin-react-hooks: ^4.3.0 - dependencies: - eslint: 8.37.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.27.5)(eslint@8.37.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.37.0) - eslint-plugin-react: 7.32.2(eslint@8.37.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.37.0) - object.assign: 4.1.4 - object.entries: 1.1.6 - dev: true - - /eslint-config-next@12.3.4(eslint@8.37.0)(typescript@4.9.5): - resolution: {integrity: sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true - dependencies: - '@next/eslint-plugin-next': 12.3.4 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@4.9.5) - eslint: 8.37.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.37.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.37.0) - eslint-plugin-react: 7.32.2(eslint@8.37.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.37.0) - typescript: 4.9.5 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-config-prettier@8.8.0(eslint@8.37.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + eslint-config-prettier@10.1.1: + resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} hasBin: true peerDependencies: eslint: '>=7.0.0' - dependencies: - eslint: 8.37.0 - dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} - dependencies: - debug: 3.2.7 - is-core-module: 2.11.0 - resolve: 1.22.1 - transitivePeerDependencies: - - supports-color - dev: true + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.27.5)(eslint@8.37.0): - resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} - engines: {node: '>=4'} + eslint-import-resolver-typescript@3.10.0: + resolution: {integrity: sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - eslint: 8.37.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - glob: 7.2.3 - is-glob: 4.0.3 - resolve: 1.22.1 - tsconfig-paths: 3.14.2 - transitivePeerDependencies: - - supports-color - dev: true + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0): - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1295,1547 +1346,969 @@ packages: optional: true eslint-import-resolver-webpack: optional: true - dependencies: - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@4.9.5) - debug: 3.2.7 - eslint: 8.37.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.37.0) - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - dependencies: - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@4.9.5) - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.37.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.37.0) - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 - tsconfig-paths: 3.14.2 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.37.0): - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.21.0 - aria-query: 5.1.3 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.6.3 - axobject-query: 3.1.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.37.0 - has: 1.0.3 - jsx-ast-utils: 3.3.3 - language-tags: 1.0.5 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.0 - dev: true + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.37.0)(prettier@2.8.7): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + eslint-plugin-prettier@5.2.3: + resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true - dependencies: - eslint: 8.37.0 - eslint-config-prettier: 8.8.0(eslint@8.37.0) - prettier: 2.8.7 - prettier-linter-helpers: 1.0.0 - dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.37.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.37.0 - dev: true + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - /eslint-plugin-react@7.32.2(eslint@8.37.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.37.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 - dev: true + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /eslint@8.37.0: - resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.37.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.4.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true + eslint@9.21.0: + resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - /espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 - dev: true + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - /esrecurse@4.3.0: + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - /estraverse@5.3.0: + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - dev: true - /esutils@2.0.3: + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - dev: true - /execa@5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false + event-to-promise@0.7.0: + resolution: {integrity: sha512-VOBBfyaADfe378ZzG0tgkzmsvzUyeU5arehrFzNRt5yaASUDshgctTwSrPI17ocAwR3+YftsxRClHF+GBKFByQ==} + deprecated: Use promise-toolbox/fromEvent instead - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: false - - /fast-deep-equal@3.1.3: + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-diff@1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} - dev: true + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + fast-equals@5.2.2: + resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} + engines: {node: '>=6.0.0'} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-json-stable-stringify@2.1.0: + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fast-levenshtein@2.0.6: + fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - dev: true + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - /fecha@4.2.3: + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - dev: false - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - /find-up@5.0.0: + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: true + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - /fn.name@1.1.0: + fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - dev: false - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: debug: optional: true - dev: false - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: false - - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: true - - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false - - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true + gamedig@5.2.0: + resolution: {integrity: sha512-YAk9KmQnbiThASSXYiL2LPeppgfthMjG8PIQK4UK8DveF/X/zhwYaUKqi+op05d0iLLoCzvx5J2Q2vUr+OVzQg==} + engines: {node: '>=16.20.0'} + hasBin: true - /get-stream@6.0.1: + gbxremote@0.2.1: + resolution: {integrity: sha512-SMehu6Y6ndq2Qgp9VxAb8Np3f+UUD+RWoW2SAMaxzGS96rWXyr4T1GGkecO0HHtxeH1m7pEh4FJWB8a/6aM2XQ==} + engines: {node: '>=0.10'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: false - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - dev: true - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - dependencies: - assert-plus: 1.0.0 - dev: false + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - /glob-parent@5.1.2: + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - /glob-parent@6.0.2: + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.0 - dev: true + got@13.0.0: + resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} + engines: {node: '>=16'} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: false + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: false + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag@4.0.0: + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.0 - dev: true + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - dev: true - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - /hoist-non-react-statics@3.3.2: + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - /html-parse-stringify@3.0.1: + html-parse-stringify@3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - dependencies: - void-elements: 3.1.0 - dev: false - /http-errors@2.0.0: + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: false - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: false + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: false - - /i18next-fs-backend@1.2.0: + i18next-fs-backend@1.2.0: resolution: {integrity: sha512-pUx3AcgXCbur0jpFA7U67Z2RJflAcIi698Y8VL+phdOqUchahxriV3Cs+M6UkPNQSS/zPEzWLfdJ8EgjB7HVxg==} - dev: false - /i18next@21.10.0: + i18next@21.10.0: resolution: {integrity: sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==} - dependencies: - '@babel/runtime': 7.21.0 - dev: false - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + i18next@24.2.3: + resolution: {integrity: sha512-lfbf80OzkocvX7nmZtu7nSTNbrTYR52sLWxPtlXX1zAhVw8WEnFk4puUkCR4B1dNQwbSpEHHHemcZu//7EcB7A==} + peerDependencies: + typescript: ^5 + peerDependenciesMeta: + typescript: + optional: true + + ical-date-parser@4.0.0: + resolution: {integrity: sha512-XRCK/FU1akC2ZaJOdKIeZI6BLLgzWUuE0pegSrrkEva89GOan5mNkLVqCU4EMhCJ9nkG5TLWdMXrVX1fNAkFzw==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - /ieee754@1.2.1: + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - dev: true - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - /imurmurhash@0.1.4: + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.4: + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: false + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 - dev: true - - /is-arrayish@0.3.2: + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - /is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: false + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} - /is-callable@1.2.7: + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-extglob@2.1.1: + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true - /is-glob@4.0.3: + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - dev: true - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.2 - dev: true + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} - /is-stream@2.0.1: + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: false - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.2 - dev: true + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - dev: true + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - /isarray@2.0.5: + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isexe@2.0.0: + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isomorphic-ws@4.0.1(ws@7.5.9): - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' - dependencies: - ws: 7.5.9 - dev: false - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: false + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} - /jdownloader-client@1.0.0: - resolution: {integrity: sha512-3aksD+UE6xDXGmRIWUUVnVcJQBvNwff2HfrkBIo/Ptxaru4dDO5WCb93vP+wNrTVKdw8QQZ9sE4Y3jBvrKVaXQ==} - dependencies: - axios: 0.17.1 - transitivePeerDependencies: - - debug - dev: false + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - /jiti@1.18.2: - resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} - dev: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true - /jose@4.13.1: - resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} - dev: false - optional: true + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} - /js-sdsl@4.4.0: - resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} - dev: true - - /js-tokens@4.0.0: + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml@4.1.0: + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - dependencies: - argparse: 2.0.1 + hasBin: true - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: false + jsep@1.4.0: + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} + engines: {node: '>= 10.16.0'} - /json-rpc-2.0@1.5.1: - resolution: {integrity: sha512-ZY/vYl/uUgKN3tNrZMq7w+CGLcoUT+8AzDO/HJZVa+K4XcwgfgES1QDa5y7ieAeh4NgRo3hLexMxgdaiEiK9aA==} - dev: false + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - /json-schema-traverse@0.4.1: + json-rpc-2.0@1.7.0: + resolution: {integrity: sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg==} + + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: false - - /json-stable-stringify-without-jsonify@1.0.1: + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: false - - /json5@1.0.2: + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - dependencies: - minimist: 1.2.8 - dev: true + hasBin: true - /jsonpath-plus@0.19.0: - resolution: {integrity: sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg==} - engines: {node: '>=6.0'} - dev: false + jsonpath-plus@10.3.0: + resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==} + engines: {node: '>=18.0.0'} + hasBin: true - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: false - - /jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.6 - object.assign: 4.1.4 - dev: true - /kuler@2.0.0: + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - dev: false - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - /language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} - dependencies: - language-subtag-registry: 0.3.22 - dev: true + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} - /levn@0.4.1: + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] - /locate-path@6.0.0: + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + engines: {node: '>= 12.0.0'} + + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - /lodash.merge@4.6.2: + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - /logform@2.5.1: - resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} - dependencies: - '@colors/colors': 1.5.0 - '@types/triple-beam': 1.3.2 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.4.3 - triple-beam: 1.3.0 - dev: false + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /loose-envify@1.4.0: + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + long@5.3.1: + resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==} + + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - dependencies: - js-tokens: 4.0.0 + hasBin: true - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /memory-cache@0.2.0: + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + luxon@3.5.0: + resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + engines: {node: '>=12'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + memory-cache@0.2.0: resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==} - dev: false - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - - /merge2@1.4.1: + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - /mime-db@1.52.0: + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - dev: false - /mime-types@2.1.35: + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: false - - /minecraft-ping-js@1.0.2: - resolution: {integrity: sha512-h9QYG2n+fBKgp520tXBwR354XRzR/w5wXe8CJCmxKm6jbLpAoLODM8Nj5+ssuIVQF8rtxkAnjwv7PH+7ehFzQQ==} - dependencies: - node-int64: 0.4.0 - varint: 6.0.0 - dev: false - - /mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass@4.2.5: - resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==} - engines: {node: '>=8'} - dev: false - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: false - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /ms@2.1.3: + minecraftstatuspinger@1.2.2: + resolution: {integrity: sha512-3PDWcifjw6cliGnGqw0+nJVWWPOcpLDyNLh4D84vCNzPD2h9REbN5Ne11I//CMkIu5xJiIuyGwI44gyRYYbpuw==} + engines: {node: '>=14.0.0'} + + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true + nan@2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} - /nan@2.17.0: - resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} - dev: false - optional: true - - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - /natural-compare@1.4.0: + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - /next-i18next@12.1.0(next@12.3.4)(react-dom@18.2.0)(react@18.2.0): + next-i18next@12.1.0: resolution: {integrity: sha512-rhos/PVULmZPdC0jpec2MDBQMXdGZ3+Mbh/tZfrDtjgnVN3ucdq7k8BlwsJNww6FnqC8AC31n6dSYuqVzYsGsw==} engines: {node: '>=12'} peerDependencies: next: '>= 10.0.0' react: '>= 16.8.0' - dependencies: - '@babel/runtime': 7.21.0 - '@types/hoist-non-react-statics': 3.3.1 - core-js: 3.29.1 - hoist-non-react-statics: 3.3.2 - i18next: 21.10.0 - i18next-fs-backend: 1.2.0 - next: 12.3.4(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-i18next: 11.18.6(i18next@21.10.0)(react-dom@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - react-dom - - react-native - dev: false - /next@12.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ==} - engines: {node: '>=12.22.0'} + next@15.2.4: + resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 sass: ^1.3.0 peerDependenciesMeta: - fibers: + '@opentelemetry/api': optional: true - node-sass: + '@playwright/test': + optional: true + babel-plugin-react-compiler: optional: true sass: optional: true - dependencies: - '@next/env': 12.3.4 - '@swc/helpers': 0.4.11 - caniuse-lite: 1.0.30001472 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.0.7(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) - optionalDependencies: - '@next/swc-android-arm-eabi': 12.3.4 - '@next/swc-android-arm64': 12.3.4 - '@next/swc-darwin-arm64': 12.3.4 - '@next/swc-darwin-x64': 12.3.4 - '@next/swc-freebsd-x64': 12.3.4 - '@next/swc-linux-arm-gnueabihf': 12.3.4 - '@next/swc-linux-arm64-gnu': 12.3.4 - '@next/swc-linux-arm64-musl': 12.3.4 - '@next/swc-linux-x64-gnu': 12.3.4 - '@next/swc-linux-x64-musl': 12.3.4 - '@next/swc-win32-arm64-msvc': 12.3.4 - '@next/swc-win32-ia32-msvc': 12.3.4 - '@next/swc-win32-x64-msvc': 12.3.4 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: false + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true - /node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} - dev: true + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: true + oauth4webapi@3.3.0: + resolution: {integrity: sha512-ZlozhPlFfobzh3hB72gnBFLjXpugl/dljz1fJSRdqaV2r3D5dmi5lg2QWI0LmUYuazmE+b5exsloEv6toUtw9g==} - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: false - - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: false - - /object-assign@4.1.1: + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true - /object-hash@2.2.0: - resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} - engines: {node: '>= 6'} - dev: false - optional: true - - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true - - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true - - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - dev: true - /object-keys@1.1.1: + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} - dependencies: - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - /oidc-token-hash@5.0.1: - resolution: {integrity: sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==} - engines: {node: ^10.13.0 || >=12.0.0} - dev: false - optional: true + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} - /once@1.4.0: + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - /one-time@1.0.0: + one-time@1.0.0: resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - dependencies: - fn.name: 1.1.0 - dev: false - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: false + openid-client@6.3.0: + resolution: {integrity: sha512-68LMqb/Whtq214B9c9kCtuniCKQrEqWJRTEoOEZlv2QV5VgqhjySCpBe4RXeU+pj/VNOi7erP/ixxfHtqR7FOw==} - /openid-client@5.4.0: - resolution: {integrity: sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==} - requiresBuild: true - dependencies: - jose: 4.13.1 - lru-cache: 6.0.0 - object-hash: 2.2.0 - oidc-token-hash: 5.0.1 - dev: false - optional: true - - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - /osx-temperature-sensor@1.0.8: + osx-temperature-sensor@1.0.8: resolution: {integrity: sha512-Gl3b+bn7+oDDnqPa+4v/cg3yg9lnE8ppS7ivL3opBZh4i7h99JNmkm6zWmo0m2a83UUJu+C9D7lGP0OS8IlehA==} engines: {node: '>=4.0.0'} os: [darwin] - requiresBuild: true - dev: false - optional: true - /p-limit@3.1.0: + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - /p-locate@5.0.0: + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - /parent-module@1.0.1: + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - /path-exists@4.0.0: + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key@3.1.1: + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-parse@1.0.7: + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: false + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true + ping@0.4.4: + resolution: {integrity: sha512-56ZMC0j7SCsMMLdOoUg12VZCfj/+ZO+yfOSjaNCRrmZZr6GLbN2X/Ui56T15dI8NhiHckaw5X2pvyfAomanwqQ==} + engines: {node: '>=4.0.0'} - /postcss-import@14.1.0(postcss@8.4.21): - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.1 - dev: true + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} - /postcss-js@4.0.1(postcss@8.4.21): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.21 - dev: true - - /postcss-load-config@3.1.4(postcss@8.4.21): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - postcss: 8.4.21 - yaml: 1.10.2 - dev: true - - /postcss-nested@6.0.0(postcss@8.4.21): - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 - dev: true - - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /prelude-ls@1.2.1: + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true - /prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.2.0 - dev: true - /prettier@2.8.7: - resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} - engines: {node: '>=10.13.0'} - dev: true + prettier-plugin-organize-imports@4.1.0: + resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==} + peerDependencies: + prettier: '>=2.0' + typescript: '>=2.9' + vue-tsc: ^2.1.0 + peerDependenciesMeta: + vue-tsc: + optional: true - /pretty-bytes@6.1.0: - resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} + prettier@3.5.2: + resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - dev: false - /prop-types@15.8.1: + prism-react-renderer@2.4.1: + resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==} + peerDependencies: + react: '>=16.0.0' + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: false + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: false - - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: false - - /queue-microtask@1.2.3: + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - /quick-lru@5.1.1: + quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - dev: true - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - dev: false + react: ^18.3.1 - /react-i18next@11.18.6(i18next@21.10.0)(react-dom@18.2.0)(react@18.2.0): + react-i18next@11.18.6: resolution: {integrity: sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==} peerDependencies: i18next: '>= 19.0.0' @@ -2847,801 +2320,3566 @@ packages: optional: true react-native: optional: true - dependencies: - '@babel/runtime': 7.21.0 - html-parse-stringify: 3.0.1 - i18next: 21.10.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /react-icons@4.8.0(react@18.2.0): - resolution: {integrity: sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==} + react-icons@5.4.0: + resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==} peerDependencies: react: '*' - dependencies: - react: 18.2.0 - dev: false - /react-is@16.13.1: + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-smooth@4.0.4: + resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true + readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} - /readable-stream@3.6.2: + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true + recharts-scale@0.4.5: + resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.1 - dev: false + recharts@2.15.1: + resolution: {integrity: sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - - /regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - dev: true - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: false + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} - /resolve-from@4.0.0: + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - dev: true - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - /rfc4648@1.5.2: - resolution: {integrity: sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==} - dev: false + rfc4648@1.5.4: + resolution: {integrity: sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - dependencies: - glob: 7.2.3 + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true - /run-parallel@1.2.0: + rrule@2.8.1: + resolution: {integrity: sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==} + + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - /safe-buffer@5.2.1: + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-regex: 1.1.4 - dev: true + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} - dev: false - /safer-buffer@2.1.2: + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - /salted-md5@4.0.5: - resolution: {integrity: sha512-MPjdfYzyirx0dG0JIaSbkh6PcleRplLY4sDgFwa+t/GiH2saBVbaR8mVTWa9BFg7SkFik1dVBt8BD7tc5To1Mg==} - dev: false - - /sax@1.2.4: + sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: false - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 - dev: false + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - dev: true + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + seek-bzip@2.0.0: + resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true + hasBin: true - /setprototypeof@1.2.0: + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false - /shebang-command@2.0.0: + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - /shebang-regex@3.0.0: + shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - dev: false + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} - /shvl@3.0.0: - resolution: {integrity: sha512-5IomAM3ykE/g9K9L6lhODc+TpCuN03rrhlboegeKyyfh66DDdpRD5JN37DYhNHH+RaYjiIDx64K/Ms/xQYOR5w==} - dev: false + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - object-inspect: 1.12.3 - dev: true + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} - /simple-swizzle@0.2.2: + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - dependencies: - is-arrayish: 0.3.2 - dev: false - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - /split-ca@1.0.1: + split-ca@1.0.1: resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} - dev: false - /ssh2@1.11.0: - resolution: {integrity: sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==} + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} engines: {node: '>=10.16.0'} - requiresBuild: true - dependencies: - asn1: 0.2.6 - bcrypt-pbkdf: 1.0.2 - optionalDependencies: - cpu-features: 0.0.4 - nan: 2.17.0 - dev: false - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} - engines: {node: '>=0.10.0'} - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: false + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} - /stack-trace@0.0.10: + stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - dev: false - /statuses@2.0.1: + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - dev: false - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.5 - dev: true - - /stream-buffers@3.0.2: - resolution: {integrity: sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==} + stream-buffers@3.0.3: + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} - dev: false - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.0 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 - dev: true + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + string-to-stream@1.1.1: + resolution: {integrity: sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - /string_decoder@1.3.0: + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - /strip-ansi@6.0.1: + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - /strip-bom@3.0.0: + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - dev: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false - - /strip-json-comments@3.1.1: + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true - /styled-jsx@5.0.7(react@18.2.0): - resolution: {integrity: sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==} + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' peerDependenciesMeta: '@babel/core': optional: true babel-plugin-macros: optional: true - dependencies: - react: 18.2.0 - dev: false - /sucrase@3.31.0: - resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} - engines: {node: '>=8'} - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - - /supports-color@7.2.0: + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swr@1.3.0(react@18.2.0): - resolution: {integrity: sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==} + swr@2.3.3: + resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==} peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - /systeminformation@5.17.12: - resolution: {integrity: sha512-I3pfMW2vue53u+X08BNxaJieaHkRoMMKjWetY9lbYJeWFaeWPO6P4FkNc4XOCX8F9vbQ0HqQ25RJoz3U/B7liw==} + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + + systeminformation@5.25.11: + resolution: {integrity: sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==} engines: {node: '>=8.0.0'} os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] - dev: false - - /tailwind-scrollbar@2.1.0(tailwindcss@3.3.0): - resolution: {integrity: sha512-zpvY5mDs0130YzYjZKBiDaw32rygxk5RyJ4KmeHjGnwkvbjm/PszON1m4Bbt2DkMRIXlXsfNevykAESgURN4KA==} - engines: {node: '>=12.13.0'} - peerDependencies: - tailwindcss: 3.x - dependencies: - tailwindcss: 3.3.0(postcss@8.4.21) - dev: true - - /tailwindcss@3.3.0(postcss@8.4.21): - resolution: {integrity: sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==} - engines: {node: '>=12.13.0'} hasBin: true - peerDependencies: - postcss: ^8.0.9 - dependencies: - arg: 5.0.2 - chokidar: 3.5.3 - color-name: 1.1.4 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.2.12 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.18.2 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0(postcss@8.4.21) - postcss-js: 4.0.1(postcss@8.4.21) - postcss-load-config: 3.1.4(postcss@8.4.21) - postcss-nested: 6.0.0(postcss@8.4.21) - postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 - sucrase: 3.31.0 - transitivePeerDependencies: - - ts-node - dev: true - /tar-fs@2.0.1: + tailwind-scrollbar@4.0.1: + resolution: {integrity: sha512-j2ZfUI7p8xmSQdlqaCxEb4Mha8ErvWjDVyu2Ke4IstWprQ/6TmIz1GSLE62vsTlXwnMLYhuvbFbIFzaJGOGtMg==} + engines: {node: '>=12.13.0'} + peerDependencies: + tailwindcss: 4.x + + tailwindcss@4.0.9: + resolution: {integrity: sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.0.1: resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + engines: {node: '>=12.0.0'} + + tldts-core@6.1.82: + resolution: {integrity: sha512-Jabl32m21tt/d/PbDO88R43F8aY98Piiz6BVH9ShUlOAiiAELhEqwrAmBocjAqnCfoUeIsRU+h3IEzZd318F3w==} + + tldts@6.1.82: + resolution: {integrity: sha512-KCTjNL9F7j8MzxgfTgjT+v21oYH38OidFty7dH00maWANAI2IsLw2AnThtTJi9HKALHZKQQWnNebYheadacD+g==} + hasBin: true + + tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unrs-resolver@1.3.3: + resolution: {integrity: sha512-PFLAGQzYlyjniXdbmQ3dnGMZJXX5yrl2YS4DLRfR3BhgUsE1zpRIrccp9XMOGRfIHpdFvCn/nr5N1KMVda4x3A==} + + urbackup-server-api@0.8.9: + resolution: {integrity: sha512-Igu6A0xSZeMsiN6PWT7zG4aD+iJR5fXT/j5+xwAvnD/vCNfvVrettIsXv6MftxOajvTmtlgaYu8KDoH1EJQ6DQ==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + victory-vendor@36.9.2: + resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + + void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.17.0: + resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==} + engines: {node: '>= 12.0.0'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xmlbuilder@8.2.2: + resolution: {integrity: sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw==} + engines: {node: '>=4.0'} + + xmlrpc@1.3.2: + resolution: {integrity: sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==} + engines: {node: '>=0.8', npm: '>=1.0.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@babel/runtime@7.26.9': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.27.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@balena/dockerignore@1.0.2': {} + + '@colors/colors@1.6.0': {} + + '@dabh/diagnostics@2.0.3': + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + + '@emnapi/core@1.4.0': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.4.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': + dependencies: + eslint: 9.21.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.5.1(eslint@9.21.0(jiti@2.4.2))': + dependencies: + eslint: 9.21.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.2': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.12.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.21.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.7': + dependencies: + '@eslint/core': 0.12.0 + levn: 0.4.1 + + '@grpc/grpc-js@1.12.6': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.3.1 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/react-virtual': 3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + client-only: 0.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.2': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.4.0 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@kubernetes/client-node@1.0.0': + dependencies: + '@types/js-yaml': 4.0.9 + '@types/node': 22.13.4 + '@types/node-fetch': 2.6.12 + '@types/stream-buffers': 3.0.7 + '@types/tar': 6.1.13 + '@types/ws': 8.5.14 + form-data: 4.0.2 + isomorphic-ws: 5.0.0(ws@8.18.0) + js-yaml: 4.1.0 + jsonpath-plus: 10.3.0 + node-fetch: 2.7.0 + openid-client: 6.3.0 + rfc4648: 1.5.4 + stream-buffers: 3.0.3 + tar: 7.4.3 + tmp-promise: 3.0.3 + tslib: 2.8.1 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@napi-rs/wasm-runtime@0.2.8': + dependencies: + '@emnapi/core': 1.4.0 + '@emnapi/runtime': 1.4.0 + '@tybys/wasm-util': 0.9.0 + optional: true + + '@next/env@15.2.4': {} + + '@next/eslint-plugin-next@15.2.4': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@15.2.4': + optional: true + + '@next/swc-darwin-x64@15.2.4': + optional: true + + '@next/swc-linux-arm64-gnu@15.2.4': + optional: true + + '@next/swc-linux-arm64-musl@15.2.4': + optional: true + + '@next/swc-linux-x64-gnu@15.2.4': + optional: true + + '@next/swc-linux-x64-musl@15.2.4': + optional: true + + '@next/swc-win32-arm64-msvc@15.2.4': + optional: true + + '@next/swc-win32-x64-msvc@15.2.4': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.11.0': {} + + '@sindresorhus/is@5.6.0': {} + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@tailwindcss/forms@0.5.10(tailwindcss@4.0.9)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 4.0.9 + + '@tailwindcss/node@4.0.9': + dependencies: + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + tailwindcss: 4.0.9 + + '@tailwindcss/oxide-android-arm64@4.0.9': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.9': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.0.9': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.0.9': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.0.9': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.0.9': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.0.9': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.9': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.0.9': + optional: true + + '@tailwindcss/oxide@4.0.9': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.0.9 + '@tailwindcss/oxide-darwin-arm64': 4.0.9 + '@tailwindcss/oxide-darwin-x64': 4.0.9 + '@tailwindcss/oxide-freebsd-x64': 4.0.9 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.9 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.9 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.9 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.9 + '@tailwindcss/oxide-linux-x64-musl': 4.0.9 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.9 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.9 + + '@tailwindcss/postcss@4.0.9': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.0.9 + '@tailwindcss/oxide': 4.0.9 + lightningcss: 1.29.1 + postcss: 8.5.3 + tailwindcss: 4.0.9 + + '@tanstack/react-virtual@3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.13.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@tanstack/virtual-core@3.13.0': {} + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/d3-array@3.2.1': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-shape@3.1.7': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/estree@1.0.6': {} + + '@types/hoist-non-react-statics@3.3.6': + dependencies: + '@types/react': 19.0.10 + hoist-non-react-statics: 3.3.2 + + '@types/http-cache-semantics@4.0.4': {} + + '@types/js-yaml@4.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 22.13.4 + form-data: 4.0.2 + + '@types/node@22.13.4': + dependencies: + undici-types: 6.20.0 + + '@types/prismjs@1.26.5': {} + + '@types/react@19.0.10': + dependencies: + csstype: 3.1.3 + + '@types/stream-buffers@3.0.7': + dependencies: + '@types/node': 22.13.4 + + '@types/tar@6.1.13': + dependencies: + '@types/node': 22.13.4 + minipass: 4.2.8 + + '@types/triple-beam@1.3.5': {} + + '@types/ws@8.5.14': + dependencies: + '@types/node': 22.13.4 + + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/type-utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.29.0 + eslint: 9.21.0(jiti@2.4.2) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + + '@typescript-eslint/type-utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.21.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.29.0': {} + + '@typescript-eslint/typescript-estree@8.29.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.21.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + eslint-visitor-keys: 4.2.0 + + '@unrs/resolver-binding-darwin-arm64@1.3.3': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.3.3': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.3.3': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.3.3': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.3.3': + dependencies: + '@napi-rs/wasm-runtime': 0.2.8 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.3.3': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.3.3': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.3.3': + optional: true + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + ast-types-flow@0.0.8: {} + + async-function@1.0.0: {} + + async-mutex@0.3.2: + dependencies: + tslib: 2.8.1 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.10.2: {} + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + barse@0.4.3: + dependencies: + readable-stream: 1.0.34 + + base64-js@1.5.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buildcheck@0.0.6: + optional: true + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + bytes@3.1.2: {} + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 + + cal-parser@1.0.2: + dependencies: + ical-date-parser: 4.0.0 + rrule: 2.8.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.2.7 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001712: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.0.0-rc.12: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + htmlparser2: 8.0.2 + parse5: 7.2.1 + parse5-htmlparser2-tree-adapter: 7.1.0 + + chownr@1.1.4: {} + + chownr@3.0.0: {} + + classnames@2.5.1: {} + + client-only@0.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clsx@2.1.1: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@3.2.1: + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + + colorspace@1.1.4: + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@6.2.1: {} + + compare-versions@6.1.1: {} + + concat-map@0.0.1: {} + + core-js@3.40.0: {} + + core-util-is@1.0.3: {} + + cpu-features@0.0.10: + dependencies: + buildcheck: 0.0.6 + nan: 2.22.0 + optional: true + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-what@6.1.0: {} + + csstype@3.1.3: {} + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-color@3.1.0: {} + + d3-ease@3.0.1: {} + + d3-format@3.1.0: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@3.1.0: {} + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decimal.js-light@2.5.1: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-is@0.1.4: {} + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + dequal@2.0.3: {} + + detect-libc@1.0.3: {} + + detect-libc@2.0.3: + optional: true + + docker-modem@5.0.6: + dependencies: + debug: 4.4.0 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.16.0 + transitivePeerDependencies: + - supports-color + + dockerode@4.0.4: + dependencies: + '@balena/dockerignore': 1.0.2 + '@grpc/grpc-js': 1.12.6 + '@grpc/proto-loader': 0.7.13 + docker-modem: 5.0.6 + protobufjs: 7.4.0 + tar-fs: 2.0.1 + uuid: 10.0.0 + transitivePeerDependencies: + - supports-color + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.27.0 + csstype: 3.1.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enabled@2.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-next@15.2.4(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 15.2.4 + '@rushstack/eslint-patch': 1.11.0 + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.21.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-react: 7.37.4(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)): + dependencies: + eslint: 9.21.0(jiti@2.4.2) + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + eslint: 9.21.0(jiti@2.4.2) + get-tsconfig: 4.10.0 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.12 + unrs-resolver: 1.3.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.21.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.21.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@9.21.0(jiti@2.4.2)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.21.0(jiti@2.4.2) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(prettier@3.5.2): + dependencies: + eslint: 9.21.0(jiti@2.4.2) + prettier: 3.5.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.2 + optionalDependencies: + eslint-config-prettier: 10.1.1(eslint@9.21.0(jiti@2.4.2)) + + eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)): + dependencies: + eslint: 9.21.0(jiti@2.4.2) + + eslint-plugin-react@7.37.4(eslint@9.21.0(jiti@2.4.2)): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.21.0(jiti@2.4.2) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.21.0(jiti@2.4.2): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.21.0 + '@eslint/plugin-kit': 0.2.7 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + event-to-promise@0.7.0: {} + + eventemitter3@4.0.7: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-equals@5.2.2: {} + + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fecha@4.2.3: {} + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + fn.name@1.1.0: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@2.1.4: {} + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + fs-constants@1.0.0: {} + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + gamedig@5.2.0: + dependencies: + cheerio: 1.0.0-rc.12 + gbxremote: 0.2.1 + got: 13.0.0 + iconv-lite: 0.6.3 + long: 5.2.3 + minimist: 1.2.8 + seek-bzip: 2.0.0 + varint: 6.0.0 + + gbxremote@0.2.1: + dependencies: + any-promise: 1.3.0 + barse: 0.4.3 + event-to-promise: 0.7.0 + string-to-stream: 1.1.1 + xmlrpc: 1.3.2 + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.7: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@6.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + globals@14.0.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + got@13.0.0: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + html-parse-stringify@3.0.1: + dependencies: + void-elements: 3.1.0 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + + http-cache-semantics@4.1.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + i18next-fs-backend@1.2.0: {} + + i18next@21.10.0: + dependencies: + '@babel/runtime': 7.27.0 + + i18next@24.2.3(typescript@5.7.3): + dependencies: + '@babel/runtime': 7.27.0 + optionalDependencies: + typescript: 5.7.3 + + ical-date-parser@4.0.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inherits@2.0.4: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + internmap@2.0.3: {} + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-arrayish@0.3.2: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-bun-module@2.0.0: + dependencies: + semver: 7.7.1 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isomorphic-ws@5.0.0(ws@8.18.0): + dependencies: + ws: 8.18.0 + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@2.4.2: {} + + jose@5.10.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsep@1.4.0: {} + + json-buffer@3.0.1: {} + + json-rpc-2.0@1.7.0: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsonpath-plus@10.3.0: + dependencies: + '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + jsep: 1.4.0 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kuler@2.0.0: {} + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-darwin-arm64@1.29.1: + optional: true + + lightningcss-darwin-x64@1.29.1: + optional: true + + lightningcss-freebsd-x64@1.29.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.1: + optional: true + + lightningcss-linux-arm64-gnu@1.29.1: + optional: true + + lightningcss-linux-arm64-musl@1.29.1: + optional: true + + lightningcss-linux-x64-gnu@1.29.1: + optional: true + + lightningcss-linux-x64-musl@1.29.1: + optional: true + + lightningcss-win32-arm64-msvc@1.29.1: + optional: true + + lightningcss-win32-x64-msvc@1.29.1: + optional: true + + lightningcss@1.29.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + long@5.2.3: {} + + long@5.3.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lowercase-keys@3.0.0: {} + + lru-cache@10.4.3: {} + + luxon@3.5.0: {} + + math-intrinsics@1.1.0: {} + + memory-cache@0.2.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + minecraftstatuspinger@1.2.2: {} + + mini-svg-data-uri@1.4.4: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@4.2.8: {} + + minipass@7.1.2: {} + + minizlib@3.0.1: + dependencies: + minipass: 7.1.2 + rimraf: 5.0.10 + + mkdirp-classic@0.5.3: {} + + mkdirp@3.0.1: {} + + ms@2.1.3: {} + + nan@2.22.0: + optional: true + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + next-i18next@12.1.0(next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.9 + '@types/hoist-non-react-statics': 3.3.6 + core-js: 3.40.0 + hoist-non-react-statics: 3.3.2 + i18next: 21.10.0 + i18next-fs-backend: 1.2.0 + next: 15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-i18next: 11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react-dom + - react-native + + next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 15.2.4 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001712 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.2.4 + '@next/swc-darwin-x64': 15.2.4 + '@next/swc-linux-arm64-gnu': 15.2.4 + '@next/swc-linux-arm64-musl': 15.2.4 + '@next/swc-linux-x64-gnu': 15.2.4 + '@next/swc-linux-x64-musl': 15.2.4 + '@next/swc-win32-arm64-msvc': 15.2.4 + '@next/swc-win32-x64-msvc': 15.2.4 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + normalize-url@8.0.1: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + oauth4webapi@3.3.0: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + openid-client@6.3.0: + dependencies: + jose: 5.10.0 + oauth4webapi: 3.3.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + osx-temperature-sensor@1.0.8: + optional: true + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-cancelable@3.0.0: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.2.1 + + parse5@7.2.1: + dependencies: + entities: 4.5.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + ping@0.4.4: {} + + possible-typed-array-names@1.1.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.3: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-organize-imports@4.1.0(prettier@3.5.2)(typescript@5.7.3): + dependencies: + prettier: 3.5.2 + typescript: 5.7.3 + + prettier@3.5.2: {} + + pretty-bytes@6.1.1: {} + + prism-react-renderer@2.4.1(react@18.3.1): + dependencies: + '@types/prismjs': 1.26.5 + clsx: 2.1.1 + react: 18.3.1 + + process-nextick-args@2.0.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.13.4 + long: 5.3.1 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-i18next@11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.9 + html-parse-stringify: 3.0.1 + i18next: 21.10.0 + react: 18.3.1 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + + react-i18next@11.18.6(i18next@24.2.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.9 + html-parse-stringify: 3.0.1 + i18next: 24.2.3(typescript@5.7.3) + react: 18.3.1 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + + react-icons@5.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + fast-equals: 5.2.2 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.27.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@1.0.34: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + recharts-scale@0.4.5: + dependencies: + decimal.js-light: 2.5.1 + + recharts@2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 2.1.1 + eventemitter3: 4.0.7 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-smooth: 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + recharts-scale: 0.4.5 + tiny-invariant: 1.3.3 + victory-vendor: 36.9.2 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerator-runtime@0.14.1: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + require-directory@2.1.1: {} + + resolve-alpn@1.2.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + reusify@1.1.0: {} + + rfc4648@1.5.4: {} + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rrule@2.8.1: + dependencies: + tslib: 2.8.1 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + sax@1.2.4: {} + + sax@1.4.1: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + seek-bzip@2.0.0: + dependencies: + commander: 6.2.1 + + semver@6.3.1: {} + + semver@7.7.1: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + setprototypeof@1.2.0: {} + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + source-map-js@1.2.1: {} + + split-ca@1.0.1: {} + + ssh2@1.16.0: + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.22.0 + + stable-hash@0.0.5: {} + + stack-trace@0.0.10: {} + + statuses@2.0.1: {} + + stream-buffers@3.0.3: {} + + streamsearch@1.1.0: {} + + string-to-stream@1.1.1: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@0.10.31: {} + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + styled-jsx@5.1.6(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swr@2.3.3(react@18.3.1): + dependencies: + dequal: 2.0.3 + react: 18.3.1 + use-sync-external-store: 1.5.0(react@18.3.1) + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.8.1 + + systeminformation@5.25.11: {} + + tailwind-scrollbar@4.0.1(react@18.3.1)(tailwindcss@4.0.9): + dependencies: + prism-react-renderer: 2.4.1(react@18.3.1) + tailwindcss: 4.0.9 + transitivePeerDependencies: + - react + + tailwindcss@4.0.9: {} + + tapable@2.2.1: {} + + tar-fs@2.0.1: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 - dev: false - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + tar-stream@2.2.0: dependencies: bl: 4.1.0 end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 - dev: false - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} - engines: {node: '>=10'} + tar@7.4.3: dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 4.2.5 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 - /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - dev: false + text-hex@1.0.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + tiny-invariant@1.3.3: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + tinyglobby@0.2.12: dependencies: - thenify: 3.3.1 - dev: true + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + tldts-core@6.1.82: {} + + tldts@6.1.82: dependencies: - any-promise: 1.3.0 - dev: true + tldts-core: 6.1.82 - /tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + tmp-promise@3.0.3: dependencies: - tmp: 0.2.1 - dev: false + tmp: 0.2.3 - /tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - dependencies: - rimraf: 3.0.2 - dev: false + tmp@0.2.3: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false + toidentifier@1.0.1: {} - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} + tough-cookie@5.1.2: dependencies: - psl: 1.9.0 - punycode: 2.3.0 - dev: false + tldts: 6.1.82 - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} - engines: {node: '>=6'} + tr46@0.0.3: {} + + triple-beam@1.4.1: {} + + ts-api-utils@2.1.0(typescript@5.7.3): dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: false + typescript: 5.7.3 - /triple-beam@1.3.0: - resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} - dev: false - - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.8.1: {} - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - dev: false + tweetnacl@0.14.5: {} - /tsutils@3.21.0(typescript@4.9.5): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: false - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-buffer@1.0.3: dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.10 - dev: true + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - dev: true - - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - /underscore@1.13.6: - resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} - dev: false - - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: false - - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: false - - /update-browserslist-db@1.0.10(browserslist@4.21.5): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + typed-array-byte-offset@1.0.4: dependencies: - browserslist: 4.21.5 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + typed-array-length@1.0.7: dependencies: - punycode: 2.3.0 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + typescript@5.7.3: {} + + unbox-primitive@1.1.0: dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: false + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + undici-types@6.20.0: {} + + unpipe@1.0.0: {} + + unrs-resolver@1.3.3: + optionalDependencies: + '@unrs/resolver-binding-darwin-arm64': 1.3.3 + '@unrs/resolver-binding-darwin-x64': 1.3.3 + '@unrs/resolver-binding-freebsd-x64': 1.3.3 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.3.3 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.3.3 + '@unrs/resolver-binding-linux-arm64-gnu': 1.3.3 + '@unrs/resolver-binding-linux-arm64-musl': 1.3.3 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.3.3 + '@unrs/resolver-binding-linux-s390x-gnu': 1.3.3 + '@unrs/resolver-binding-linux-x64-gnu': 1.3.3 + '@unrs/resolver-binding-linux-x64-musl': 1.3.3 + '@unrs/resolver-binding-wasm32-wasi': 1.3.3 + '@unrs/resolver-binding-win32-arm64-msvc': 1.3.3 + '@unrs/resolver-binding-win32-ia32-msvc': 1.3.3 + '@unrs/resolver-binding-win32-x64-msvc': 1.3.3 + + urbackup-server-api@0.8.9: dependencies: - react: 18.2.0 - dev: false + async-mutex: 0.3.2 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - dev: false - - /varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - dev: false - - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} + uri-js@4.4.1: dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: false + punycode: 2.3.1 - /void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - dev: false - - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + use-sync-external-store@1.5.0(react@18.3.1): dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true + react: 18.3.1 - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + util-deprecate@1.0.2: {} + + uuid@10.0.0: {} + + varint@6.0.0: {} + + victory-vendor@36.9.2: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - dev: true + '@types/d3-array': 3.2.1 + '@types/d3-ease': 3.0.2 + '@types/d3-interpolate': 3.0.4 + '@types/d3-scale': 4.0.9 + '@types/d3-shape': 3.1.7 + '@types/d3-time': 3.0.4 + '@types/d3-timer': 3.0.2 + d3-array: 3.2.4 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-scale: 4.0.2 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-timer: 3.0.1 - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} - engines: {node: '>= 0.4'} + void-elements@3.1.0: {} + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - dev: true + tr46: 0.0.3 + webidl-conversions: 3.0.1 - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.5 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: dependencies: isexe: 2.0.0 - /winston-transport@4.5.0: - resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==} - engines: {node: '>= 6.4.0'} + winston-transport@4.9.0: dependencies: - logform: 2.5.1 + logform: 2.7.0 readable-stream: 3.6.2 - triple-beam: 1.3.0 - dev: false + triple-beam: 1.4.1 - /winston@3.8.2: - resolution: {integrity: sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==} - engines: {node: '>= 12.0.0'} + winston@3.17.0: dependencies: - '@colors/colors': 1.5.0 + '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 - async: 3.2.4 + async: 3.2.6 is-stream: 2.0.1 - logform: 2.5.1 + logform: 2.7.0 one-time: 1.0.0 readable-stream: 3.6.2 - safe-stable-stringify: 2.4.3 + safe-stable-stringify: 2.5.0 stack-trace: 0.0.10 - triple-beam: 1.3.0 - winston-transport: 4.5.0 - dev: false + triple-beam: 1.4.1 + winston-transport: 4.9.0 - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true + word-wrap@1.2.5: {} - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + wrappy@1.0.2: {} + + ws@8.18.0: {} + + xml-js@1.6.11: + dependencies: + sax: 1.4.1 + + xmlbuilder@8.2.2: {} + + xmlrpc@1.3.2: dependencies: sax: 1.2.4 - dev: false + xmlbuilder: 8.2.2 - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + y18n@5.0.8: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true + yallist@5.0.0: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/postcss.config.js b/postcss.config.js index 33ad091d..483f3785 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,5 @@ module.exports = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + "@tailwindcss/postcss": {}, }, -} +}; diff --git a/public/locales/af/common.json b/public/locales/af/common.json new file mode 100644 index 00000000..bf1e5f9c --- /dev/null +++ b/public/locales/af/common.json @@ -0,0 +1,1046 @@ +{ + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "ma", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Ontbrekende legstuk-tipe: {{type}}", + "api_error": "API Fout", + "information": "Informasie", + "status": "Status", + "url": "URL", + "raw_error": "Onverwerkte Fout", + "response_data": "Reaksie Data" + }, + "weather": { + "current": "Huidige Ligging", + "allow": "Klik om toe te laat", + "updating": "Bywerking", + "wait": "Wag asseblief" + }, + "search": { + "placeholder": "Soek…" + }, + "resources": { + "cpu": "SVE", + "mem": "GEH", + "total": "Totaal", + "free": "Beskikbaar", + "used": "Gebruik", + "load": "Las", + "temp": "TEMP", + "max": "Mak", + "uptime": "OP" + }, + "unifi": { + "users": "Gebruikers", + "uptime": "Optyd", + "days": "Daë", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Toestelle", + "lan_devices": "LAN Toestelle", + "wlan_devices": "WLAN Toestelle", + "lan_users": "LAN Gebruikers", + "wlan_users": "WLAN Gebruikers", + "up": "OP", + "down": "AF", + "wait": "Wag asseblief", + "empty_data": "Substelsel status onbekend" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "GEH", + "cpu": "SVE", + "running": "Lopend", + "offline": "Vanlyn", + "error": "Fout", + "unknown": "Onbekend", + "healthy": "Gesond", + "starting": "Begin", + "unhealthy": "Ongesond", + "not_found": "Nie Gevind Nie", + "exited": "Verlaat", + "partial": "Gedeeltelik" + }, + "ping": { + "error": "Fout", + "ping": "Pieng", + "down": "Af", + "up": "Op", + "not_available": "Onbeskikbaar" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Fout", + "response": "Reaksie", + "down": "Af", + "up": "Op", + "not_available": "Onbeskikbaar" + }, + "emby": { + "playing": "Speel", + "transcoding": "Transkodering", + "bitrate": "Bistempo", + "no_active": "Geen aktiewe strome nie", + "movies": "Flieks", + "series": "Reekse", + "episodes": "Episodes", + "songs": "Liedjies" + }, + "esphome": { + "offline": "Vanlyn", + "offline_alt": "Vanlyn", + "online": "Aanlyn", + "total": "Totaal", + "unknown": "Onbekend" + }, + "evcc": { + "pv_power": "Produksie", + "battery_soc": "Battery", + "grid_power": "Rooster", + "home_power": "Verbruik", + "charge_power": "Laaier", + "kilowatt": "kW" + }, + "flood": { + "download": "Aflaai", + "upload": "Laai Op", + "leech": "Seier", + "seed": "Vul" + }, + "freshrss": { + "subscriptions": "Intekenings", + "unread": "Ongelees" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Ongekonfigureer", + "connectionStatusConnecting": "Verbind", + "connectionStatusAuthenticating": "Stel geldigheid vas", + "connectionStatusPendingDisconnect": "Hangende Ontkoppel", + "connectionStatusDisconnecting": "Ontkoppel", + "connectionStatusDisconnected": "Ontkoppel", + "connectionStatusConnected": "Gekoppel", + "uptime": "Optyd", + "maxDown": "Maks. Af", + "maxUp": "Maks. Op", + "down": "Af", + "up": "Op", + "received": "Ontvang", + "sent": "Gestuur", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Voorvoegsel" + }, + "caddy": { + "upstreams": "Stroomop", + "requests": "Huidige versoeke", + "requests_failed": "Mislukte versoeke" + }, + "changedetectionio": { + "totalObserved": "Totaal Waargeneem", + "diffsDetected": "Verskille Bespeur" + }, + "channelsdvrserver": { + "shows": "Vertone", + "recordings": "Opnames", + "scheduled": "Geskeduleerd", + "passes": "Passe" + }, + "tautulli": { + "playing": "Speel", + "transcoding": "Transkodering", + "bitrate": "Bistempo", + "no_active": "Geen aktiewe strome nie", + "plex_connection_error": "Gaan Plex-verbinding Na" + }, + "omada": { + "connectedAp": "Gekoppelde APs", + "activeUser": "Aktiewe toestelle", + "alerts": "Waarskuwings", + "connectedGateways": "Gekoppelde poorte", + "connectedSwitches": "Gekoppelde skakelaars" + }, + "nzbget": { + "rate": "Koers", + "remaining": "Oorblywende", + "downloaded": "Afgelaai" + }, + "plex": { + "streams": "Aktiewe Strome", + "albums": "Albums", + "movies": "Flieks", + "tv": "TV Programme" + }, + "sabnzbd": { + "rate": "Koers", + "queue": "Tou", + "timeleft": "Oorblywende Tyd" + }, + "rutorrent": { + "active": "Aktief", + "upload": "Laai Op", + "download": "Aflaai" + }, + "transmission": { + "download": "Aflaai", + "upload": "Laai Op", + "leech": "Seier", + "seed": "Vul" + }, + "qbittorrent": { + "download": "Aflaai", + "upload": "Laai Op", + "leech": "Seier", + "seed": "Vul" + }, + "qnap": { + "cpuUsage": "SVE Gebruik", + "memUsage": "MEM Gebruik", + "systemTempC": "Stelsel Temp", + "poolUsage": "Poel Gebruik", + "volumeUsage": "Volume Gebruik", + "invalid": "Ongeldig" + }, + "deluge": { + "download": "Aflaai", + "upload": "Laai Op", + "leech": "Seier", + "seed": "Vul" + }, + "develancacheui": { + "cachehitbytes": "Kas Tref Grepe", + "cachemissbytes": "Kas Mis Grepe" + }, + "downloadstation": { + "download": "Aflaai", + "upload": "Laai Op", + "leech": "Seier", + "seed": "Vul" + }, + "sonarr": { + "wanted": "Gesoek", + "queued": "In ry", + "series": "Reekse", + "queue": "Tou", + "unknown": "Onbekend" + }, + "radarr": { + "wanted": "Gesoek", + "missing": "Vermis", + "queued": "In ry", + "movies": "Flieks", + "queue": "Tou", + "unknown": "Onbekend" + }, + "lidarr": { + "wanted": "Gesoek", + "queued": "In ry", + "artists": "Kunstenaars" + }, + "readarr": { + "wanted": "Gesoek", + "queued": "In ry", + "books": "Boeke" + }, + "bazarr": { + "missingEpisodes": "Ontbrekende Episodes", + "missingMovies": "Ontbrekende Flieke" + }, + "ombi": { + "pending": "Afwagtend", + "approved": "Goedgekeur", + "available": "Beskikbaar" + }, + "jellyseerr": { + "pending": "Afwagtend", + "approved": "Goedgekeur", + "available": "Beskikbaar" + }, + "overseerr": { + "pending": "Afwagtend", + "processing": "Verwerking", + "approved": "Goedgekeur", + "available": "Beskikbaar" + }, + "netalertx": { + "total": "Totaal", + "connected": "Gekoppel", + "new_devices": "Nuwe Toestelle", + "down_alerts": "Aflyn Waarskuwings" + }, + "pihole": { + "queries": "Navraë", + "blocked": "Geblok", + "blocked_percent": "Geblok %", + "gravity": "Swaartekrag" + }, + "adguard": { + "queries": "Navraë", + "blocked": "Geblok", + "filtered": "Gefiltreer", + "latency": "Latensie" + }, + "speedtest": { + "upload": "Laai Op", + "download": "Aflaai", + "ping": "Pieng" + }, + "portainer": { + "running": "Lopend", + "stopped": "Gestop", + "total": "Totaal" + }, + "suwayomi": { + "download": "Afgelaai", + "nondownload": "Nie-Afgelaai", + "read": "Gelees", + "unread": "Ongelees", + "downloadedread": "Afgelaai & Gelees", + "downloadedunread": "Afgelaai en Ongelees", + "nondownloadedread": "Nie-Afgelaai & Gelees", + "nondownloadedunread": "Nie-Afgelaai & Ongelees" + }, + "tailscale": { + "address": "Adres", + "expires": "Verval", + "never": "Nooit", + "last_seen": "Laaste Gesien", + "now": "Nou", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Terug" + }, + "technitium": { + "totalQueries": "Navraë", + "totalNoError": "Sukses", + "totalServerFailure": "Mislukkings", + "totalNxDomain": "NX-domeine", + "totalRefused": "Geweier", + "totalAuthoritative": "Gesaghebbend", + "totalRecursive": "Rekursief", + "totalCached": "Gekas", + "totalBlocked": "Geblok", + "totalDropped": "Geval", + "totalClients": "Kliënte" + }, + "tdarr": { + "queue": "Tou", + "processed": "Verwerk", + "errored": "Fout", + "saved": "Gestoor" + }, + "traefik": { + "routers": "Roeteerders", + "services": "Dienste", + "middleware": "Filtreerprogramme" + }, + "navidrome": { + "nothing_streaming": "Geen aktiewe strome nie", + "please_wait": "Wag Asseblief" + }, + "npm": { + "enabled": "Geaktiveer", + "disabled": "Onaktief", + "total": "Totaal" + }, + "coinmarketcap": { + "configure": "Stel een of meer kripto-geldeenhede op om na te spoor", + "1hour": "1 Uur", + "1day": "1 Dag", + "7days": "7 Dae", + "30days": "30 Dae" + }, + "gotify": { + "apps": "Toepassings", + "clients": "Kliënte", + "messages": "Boodskappe" + }, + "prowlarr": { + "enableIndexers": "Indekseerders", + "numberOfGrabs": "Grype", + "numberOfQueries": "Navraë", + "numberOfFailGrabs": "Mislukte Grype", + "numberOfFailQueries": "Mislukte Navrae" + }, + "jackett": { + "configured": "Opgestel", + "errored": "Fout" + }, + "strelaysrv": { + "numActiveSessions": "Sessies", + "numConnections": "Konneksies", + "dataRelayed": "Oorgedra", + "transferRate": "Koers" + }, + "mastodon": { + "user_count": "Gebruikers", + "status_count": "Plasings", + "domain_count": "Domeine" + }, + "medusa": { + "wanted": "Gesoek", + "queued": "In ry", + "series": "Reekse" + }, + "minecraft": { + "players": "Spelers", + "version": "Weergawe", + "status": "Status", + "up": "Aanlyn", + "down": "Vanlyn" + }, + "miniflux": { + "read": "Gelees", + "unread": "Ongelees" + }, + "authentik": { + "users": "Gebruikers", + "loginsLast24H": "Aantekenings (24h)", + "failedLoginsLast24H": "Mislukte Aantekenings (24h)" + }, + "proxmox": { + "mem": "GEH", + "cpu": "SVE", + "lxc": "LXC", + "vms": "VMe" + }, + "glances": { + "cpu": "SVE", + "load": "Las", + "wait": "Wag asseblief", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", + "uptime": "OP", + "total": "Totaal", + "free": "Beskikbaar", + "used": "Gebruik", + "days": "d", + "hours": "h", + "crit": "Crit", + "read": "Gelees", + "write": "Skryf", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Boekmerk", + "service": "Diens", + "search": "Soek", + "custom": "Pasgemaak", + "visit": "Besoek", + "url": "URL", + "searchsuggestion": "Voorstelling" + }, + "wmo": { + "0-day": "Sonnig", + "0-night": "Helder", + "1-day": "Hoofsaaklik sonnig", + "1-night": "Hoofsaaklik Helder", + "2-day": "Gedeeltelik Bewolk", + "2-night": "Gedeeltelik Bewolk", + "3-day": "Bewolk", + "3-night": "Bewolk", + "45-day": "Mistig", + "45-night": "Mistig", + "48-day": "Mistig", + "48-night": "Mistig", + "51-day": "Ligte Motrëen", + "51-night": "Ligte Motrëen", + "53-day": "Motrëen", + "53-night": "Motrëen", + "55-day": "Swaar Motrëen", + "55-night": "Swaar Motrëen", + "56-day": "Ligte Ysige Motreën", + "56-night": "Ligte Ysige Motreën", + "57-day": "Ysige Motreën", + "57-night": "Ysige Motreën", + "61-day": "Ligte Rëen", + "61-night": "Ligte Rëen", + "63-day": "Rëen", + "63-night": "Rëen", + "65-day": "Swaar Rëen", + "65-night": "Swaar Rëen", + "66-day": "Ysige Rëen", + "66-night": "Ysige Rëen", + "67-day": "Ysige Rëen", + "67-night": "Ysige Rëen", + "71-day": "Ligte Sneeu", + "71-night": "Ligte Sneeu", + "73-day": "Sneeu", + "73-night": "Sneeu", + "75-day": "Swaar Sneeu", + "75-night": "Swaar Sneeu", + "77-day": "Sneeu Korrels", + "77-night": "Sneeu Korrels", + "80-day": "Ligte Buie", + "80-night": "Ligte Buie", + "81-day": "Buie", + "81-night": "Buie", + "82-day": "Swaar Buie", + "82-night": "Swaar Buie", + "85-day": "Sneeu Buie", + "85-night": "Sneeu Buie", + "86-day": "Sneeu Buie", + "86-night": "Sneeu Buie", + "95-day": "Donderstorm", + "95-night": "Donderstorm", + "96-day": "Donderstorm Met Hael", + "96-night": "Donderstorm Met Hael", + "99-day": "Donderstorm Met Hael", + "99-night": "Donderstorm Met Hael" + }, + "homebridge": { + "available_update": "Stelsel", + "updates": "Opdatering", + "update_available": "Opdatering Beskikbaar", + "up_to_date": "Op Datum", + "child_bridges": "Kinderbrug", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Op", + "pending": "Afwagtend", + "down": "Af" + }, + "healthchecks": { + "new": "Nuut", + "up": "Op", + "grace": "In Grasietydperk", + "down": "Af", + "paused": "Onderbreek", + "status": "Status", + "last_ping": "Laaste Pieng", + "never": "Nog geen pienge nie" + }, + "watchtower": { + "containers_scanned": "Geskandeer", + "containers_updated": "Opgedateer", + "containers_failed": "Misluk" + }, + "autobrr": { + "approvedPushes": "Goedgekeur", + "rejectedPushes": "Verwerp", + "filters": "Filters", + "indexers": "Indekseerders" + }, + "tubearchivist": { + "downloads": "Tou", + "videos": "Videos", + "channels": "Kanale", + "playlists": "Snitlyste" + }, + "truenas": { + "load": "Stelsellading", + "uptime": "Optyd", + "alerts": "Waarskuwings" + }, + "pyload": { + "speed": "Spoed", + "active": "Aktief", + "queue": "Tou", + "total": "Totaal" + }, + "gluetun": { + "public_ip": "Publieke IP", + "region": "Streek", + "country": "Land" + }, + "hdhomerun": { + "channels": "Kanale", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Kanaal", + "channelNetwork": "Netwerk", + "signalStrength": "Sterkte", + "signalQuality": "Kwaliteit", + "symbolQuality": "Kwaliteit", + "networkRate": "Bistempo", + "clientIP": "Kliënt" + }, + "scrutiny": { + "passed": "Geslaag", + "failed": "Misluk", + "unknown": "Onbekend" + }, + "paperlessngx": { + "inbox": "Inmandjie", + "total": "Totaal" + }, + "peanut": { + "battery_charge": "Batterylading", + "ups_load": "SVE-lading", + "ups_status": "SVE Status", + "online": "Aanlyn", + "on_battery": "Op Battery", + "low_battery": "Battery Laag" + }, + "nextdns": { + "wait": "Wag Asseblief", + "no_devices": "Geen Toesteldata Ontvang Nie" + }, + "mikrotik": { + "cpuLoad": "SVE-lading", + "memoryUsed": "Geheue Gebruik", + "uptime": "Optyd", + "numberOfLeases": "Leases" + }, + "xteve": { + "streams_all": "Alle Strome", + "streams_active": "Aktiewe Strome", + "streams_xepg": "XEPG Kanale" + }, + "opendtu": { + "yieldDay": "Vandag", + "absolutePower": "Krag", + "relativePower": "Krag %", + "limit": "Limiet" + }, + "opnsense": { + "cpu": "SVE-lading", + "memory": "Aktiewe Geheue", + "wanUpload": "WAN Oplaai", + "wanDownload": "WAN Aflaai" + }, + "moonraker": { + "printer_state": "Staat van Bladsydrukker", + "print_status": "Staat Van Druk", + "print_progress": "Vordering", + "layers": "Lae" + }, + "octoprint": { + "printer_state": "Status", + "temp_tool": "Gereedskap Temperatuur", + "temp_bed": "Bed Temperatuur", + "job_completion": "Afhandeling" + }, + "cloudflared": { + "origin_ip": "Oorsprong IP", + "status": "Status" + }, + "pfsense": { + "load": "Las Gem", + "memory": "Mem Gebruik", + "wanStatus": "WAN Status", + "up": "Op", + "down": "Af", + "temp": "Temp", + "disk": "Skyfgebruik", + "wanIP": "WAN IP" + }, + "proxmoxbackupserver": { + "datastore_usage": "Datastoor", + "failed_tasks_24h": "Mislukte Take 24h", + "cpu_usage": "SVE", + "memory_usage": "Geheue" + }, + "immich": { + "users": "Gebruikers", + "photos": "Foto's", + "videos": "Videos", + "storage": "Bergplek" + }, + "uptimekuma": { + "up": "Werwe Op", + "down": "Werwe Af", + "uptime": "Optyd", + "incident": "Voorval", + "m": "m" + }, + "atsumeru": { + "series": "Reekse", + "archives": "Argiewe", + "chapters": "Hoofstukke", + "categories": "Kategorieë" + }, + "komga": { + "libraries": "Biblioteke", + "series": "Reekse", + "books": "Boeke" + }, + "diskstation": { + "days": "Daë", + "uptime": "Optyd", + "volumeAvailable": "Beskikbaar" + }, + "mylar": { + "series": "Reekse", + "issues": "Kwessies", + "wanted": "Gesoek" + }, + "photoprism": { + "albums": "Albums", + "photos": "Foto's", + "videos": "Videos", + "people": "Mense" + }, + "fileflows": { + "queue": "Tou", + "processing": "Verwerking", + "processed": "Verwerk", + "time": "Tyd" + }, + "firefly": { + "networth": "Netto Waarde", + "budget": "Begroting" + }, + "grafana": { + "dashboards": "Dashboards", + "datasources": "Databronne", + "totalalerts": "Totale Waarskuwings", + "alertstriggered": "Waarskuwings Geaktiveer" + }, + "nextcloud": { + "cpuload": "Cpu Las", + "memoryusage": "Geheuegebruik", + "freespace": "Gratis Spasie", + "activeusers": "Aktiewe Gebruikers", + "numfiles": "Lêers", + "numshares": "Gedeelde Items" + }, + "kopia": { + "status": "Status", + "size": "Grootte", + "lastrun": "Laaste Iterasie", + "nextrun": "Volgende Iterasie", + "failed": "Misluk" + }, + "unmanic": { + "active_workers": "Aktiewe Werkers", + "total_workers": "Totale Werkers", + "records_total": "Toulengte" + }, + "pterodactyl": { + "servers": "Bedieners", + "nodes": "Nodusse" + }, + "prometheus": { + "targets_up": "Teikens Op", + "targets_down": "Teikens Af", + "targets_total": "Totale Teikens" + }, + "gatus": { + "up": "Werwe Op", + "down": "Werwe Af", + "uptime": "Optyd" + }, + "ghostfolio": { + "gross_percent_today": "Vandag", + "gross_percent_1y": "Een jaar", + "gross_percent_max": "Alle tyd" + }, + "audiobookshelf": { + "podcasts": "Podsendinge", + "books": "Boeke", + "podcastsDuration": "Duur", + "booksDuration": "Duur" + }, + "homeassistant": { + "people_home": "Mense Tuis", + "lights_on": "Ligte Aan", + "switches_on": "Skakels Aan" + }, + "whatsupdocker": { + "monitoring": "Monitering", + "updates": "Opdatering" + }, + "calibreweb": { + "books": "Boeke", + "authors": "Skrywers", + "categories": "Kategorieë", + "series": "Reekse" + }, + "jdownloader": { + "downloadCount": "Tou", + "downloadBytesRemaining": "Oorblywende", + "downloadTotalBytes": "Grootte", + "downloadSpeed": "Spoed" + }, + "kavita": { + "seriesCount": "Reekse", + "totalFiles": "Lêers" + }, + "azuredevops": { + "result": "Uitslag", + "status": "Status", + "buildId": "Bou ID", + "succeeded": "Suksesvol", + "notStarted": "Nie Begin Nie", + "failed": "Misluk", + "canceled": "Gekanselleer", + "inProgress": "Besig", + "totalPrs": "Totale PRs", + "myPrs": "My PRs", + "approved": "Goedgekeur" + }, + "gamedig": { + "status": "Status", + "online": "Aanlyn", + "offline": "Vanlyn", + "name": "Naam", + "map": "Kaart", + "currentPlayers": "Huidige Spelers", + "players": "Spelers", + "maxPlayers": "Maks spelers", + "bots": "Bots", + "ping": "Pieng" + }, + "urbackup": { + "ok": "Ok", + "errored": "Foute", + "noRecent": "Verouderd", + "totalUsed": "Gebruikte Bergplek" + }, + "mealie": { + "recipes": "Resepte", + "users": "Gebruikers", + "categories": "Kategorieë", + "tags": "Merkers" + }, + "openmediavault": { + "downloading": "Aflaai", + "total": "Totaal", + "running": "Lopend", + "stopped": "Gestop", + "passed": "Geslaag", + "failed": "Misluk" + }, + "openwrt": { + "uptime": "Optyd", + "cpuLoad": "SVE-lading gemiddelde (5m)", + "up": "Op", + "down": "Af", + "bytesTx": "Oorgedra", + "bytesRx": "Ontvang" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Optyd", + "lastDown": "Laaste Stilstand", + "downDuration": "Stilstand Duur", + "sitesUp": "Werwe Op", + "sitesDown": "Werwe Af", + "paused": "Onderbreek", + "notyetchecked": "Nog Nie Nagegaan Nie", + "up": "Op", + "seemsdown": "Lyk Af", + "down": "Af", + "unknown": "Onbekend" + }, + "calendar": { + "inCinemas": "In fliekteaters", + "physicalRelease": "Fisiese Vrylating", + "digitalRelease": "Digitale Vrylating", + "noEventsToday": "Geen gebeure vir vandag nie!", + "noEventsFound": "Geen gebeure gevind nie" + }, + "romm": { + "platforms": "Platform", + "totalRoms": "Spelle", + "saves": "Beware", + "states": "Toestande", + "screenshots": "Skermskote", + "totalfilesize": "Totale Grootte" + }, + "mailcow": { + "domains": "Domeine", + "mailboxes": "Posbusse", + "mails": "E-posse", + "storage": "Bergplek" + }, + "netdata": { + "warnings": "Waarskuwings", + "criticals": "Kritici" + }, + "plantit": { + "events": "Gebeure", + "plants": "Plante", + "photos": "Foto's", + "species": "Spesies" + }, + "gitea": { + "notifications": "Kennisgewings", + "issues": "Kwessies", + "pulls": "Trek Versoeke", + "repositories": "Bewaarplekke" + }, + "stash": { + "scenes": "Tonele", + "scenesPlayed": "Tonele Gekyk", + "playCount": "Totale Toneelstukke", + "playDuration": "Tyd Gekyk", + "sceneSize": "Toneel Grootte", + "sceneDuration": "Tonele Duur", + "images": "Beelde", + "imageSize": "Beeldgrootte", + "galleries": "Galerye", + "performers": "Kunstenaars", + "studios": "Ateljees", + "movies": "Flieks", + "tags": "Merkers", + "oCount": "O Tel" + }, + "tandoor": { + "users": "Gebruikers", + "recipes": "Resepte", + "keywords": "Sleutelwoorde" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "Met Waarborg", + "locations": "Plekke", + "labels": "Etikette", + "users": "Gebruikers", + "totalValue": "Totale Waarde" + }, + "crowdsec": { + "alerts": "Waarskuwings", + "bans": "Verbanne" + }, + "wgeasy": { + "connected": "Gekoppel", + "enabled": "Geaktiveer", + "disabled": "Onaktief", + "total": "Totaal" + }, + "swagdashboard": { + "proxied": "Gevolmagtig", + "auth": "Met Aut", + "outdated": "Verouderd", + "banned": "Verban" + }, + "myspeed": { + "ping": "Pieng", + "download": "Aflaai", + "upload": "Laai Op" + }, + "stocks": { + "stocks": "Aandele", + "loading": "Laai", + "open": "Oop - VS Mark", + "closed": "Toe - VS Mark", + "invalidConfiguration": "Ongeldige opstelling" + }, + "frigate": { + "cameras": "Kameras", + "uptime": "Optyd", + "version": "Weergawe" + }, + "linkwarden": { + "links": "Skakels", + "collections": "Versamelings", + "tags": "Merkers" + }, + "zabbix": { + "unclassified": "Nie geklassifiseer nie", + "information": "Informasie", + "warning": "Waarskuwing", + "average": "Gemiddeld", + "high": "Hoog", + "disaster": "Ramp" + }, + "lubelogger": { + "vehicle": "Voertuig", + "vehicles": "Voertuie", + "serviceRecords": "Diensrekords", + "reminders": "Herinneringe", + "nextReminder": "Volgende Herinnering", + "none": "Geen" + }, + "vikunja": { + "projects": "Aktiewe Projekte", + "tasks7d": "Take Hierdie week", + "tasksOverdue": "Agterstallige Take", + "tasksInProgress": "Take Aan Die Gang" + }, + "headscale": { + "name": "Naam", + "address": "Adres", + "last_seen": "Laaste Gesien", + "status": "Status", + "online": "Aanlyn", + "offline": "Vanlyn" + }, + "beszel": { + "name": "Naam", + "systems": "Stelsels", + "up": "Op", + "down": "Af", + "paused": "Onderbreek", + "pending": "Afwagtend", + "status": "Status", + "updated": "Opgedateer", + "cpu": "SVE", + "memory": "GEH", + "disk": "Skyf", + "network": "NET" + }, + "argocd": { + "apps": "Programme", + "synced": "Gesinkroniseer", + "outOfSync": "Nie Gesinchroniseer Nie", + "healthy": "Gesond", + "degraded": "Gedegradeer", + "progressing": "Vorderend", + "missing": "Vermis", + "suspended": "Geskors" + }, + "spoolman": { + "loading": "Laai" + }, + "gitlab": { + "groups": "Groepe", + "issues": "Kwessies", + "merges": "Saamvleg Versoeke", + "projects": "Projekte" + }, + "apcups": { + "status": "Status", + "load": "Las", + "bcharge": "Batterylading", + "timeleft": "Oorblywende Tyd" + }, + "hoarder": { + "bookmarks": "Boekmerke", + "favorites": "Gunstelinge", + "archived": "Geargiveer", + "highlights": "Hoogtepunte", + "lists": "Lyste", + "tags": "Merkers" + }, + "slskd": { + "slskStatus": "Netwerk", + "connected": "Gekoppel", + "disconnected": "Ontkoppel", + "updateStatus": "Opdateer", + "update_yes": "Beskikbaar", + "update_no": "Op Datum", + "downloads": "Aflaaie", + "uploads": "Oplaaie", + "sharedFiles": "Lêers" + } +} diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index 6ff5acab..baa4d593 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -1,11 +1,32 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "ش", + "days": "ي", + "hours": "س", + "minutes": "د", + "seconds": "ث" + }, "widget": { "missing_type": "نوع القطعة مفقود: {{type}}", "api_error": "API خطأ", - "status": "الحالة", "information": "معلومات", - "url": "URL", - "raw_error": "Raw Error", + "status": "الحالة", + "url": "الرابط", + "raw_error": "خطأ خام", "response_data": "بيانات الاستجابة" }, "weather": { @@ -19,38 +40,425 @@ }, "resources": { "cpu": "المعالج", + "mem": "الذاكرة", "total": "المجموع", "free": "متاح", "used": "مستخدم", "load": "الضغط", - "mem": "الذاكرة", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "temp": "مؤقت", + "max": "الحد الأقصى", + "uptime": "تعمل" }, "unifi": { "users": "المستخدمون", - "uptime": "مدة تشغيل النظام", + "uptime": "مدة التشغيل", "days": "أيام", - "wan": "WAN", - "lan": "LAN", - "wlan": "WLAN", + "wan": "الشبكة الواسعة", + "lan": "الشبكة المحلية", + "wlan": "الشبكة المحلية اللاسلكية", "devices": "الأجهزة", "lan_devices": "LAN أجهزة", "wlan_devices": "WLAN أجهزة", "lan_users": "LAN مستخدمين", "wlan_users": "WLAN مستخدمين", - "up": "يعمل", + "up": "تعمل", "down": "لا يعمل", "wait": "الرجاء الإنتظار", - "empty_data": "Subsystem status unknown" + "empty_data": "حالة النظام الفرعي غير معروفة" + }, + "docker": { + "rx": "استقبال", + "tx": "ارسال", + "mem": "الذاكرة", + "cpu": "المعالج", + "running": "قيد التشغيل", + "offline": "غير متصل", + "error": "خطأ", + "unknown": "مجهول", + "healthy": "سليم", + "starting": "يبدأ التشغيل", + "unhealthy": "غير صحّي", + "not_found": "غير موجود", + "exited": "خرجت", + "partial": "جزئي" + }, + "ping": { + "error": "خطأ", + "ping": "بينغ", + "down": "لا يعمل", + "up": "يعمل", + "not_available": "غير مُـتوفـّر" + }, + "siteMonitor": { + "http_status": "حالة HTTP", + "error": "خطأ", + "response": "الرد", + "down": "لا يعمل", + "up": "يعمل", + "not_available": "غير مُـتوفـّر" + }, + "emby": { + "playing": "يعمل الآن", + "transcoding": "التحويل", + "bitrate": "معدل البت", + "no_active": "لا يوجد بث نشط", + "movies": "أفلام", + "series": "مسلسلات", + "episodes": "حلقات", + "songs": "أغاني" + }, + "esphome": { + "offline": "غير متصل", + "offline_alt": "غير متصل", + "online": "مُتّصل", + "total": "المجموع", + "unknown": "مجهول" + }, + "evcc": { + "pv_power": "إنتاج", + "battery_soc": "البطارية", + "grid_power": "شبكة", + "home_power": "الاستهلاك", + "charge_power": "شاحن", + "kilowatt": "kW" + }, + "flood": { + "download": "التنزيل", + "upload": "التحميل", + "leech": "القرناء", + "seed": "البذور" + }, + "freshrss": { + "subscriptions": "الاشتراكات", + "unread": "غير مقروءة" + }, + "fritzbox": { + "connectionStatus": "الحالة", + "connectionStatusUnconfigured": "لم تتم تهيئته", + "connectionStatusConnecting": "جاري الاتصال", + "connectionStatusAuthenticating": "جار المصادقة", + "connectionStatusPendingDisconnect": "في انتظار قطع الاتصال", + "connectionStatusDisconnecting": "جار قطع الاتصال", + "connectionStatusDisconnected": "غير متصل", + "connectionStatusConnected": "متصل", + "uptime": "مدة التشغيل", + "maxDown": "أقصى حد للتنزيل", + "maxUp": "أقصى حد للتحميل", + "down": "لا يعمل", + "up": "يعمل", + "received": "تم الإستلام", + "sent": "تم الإرسال", + "externalIPAddress": "IP الخارجي", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "تدفق", + "requests": "طلبات الحالية", + "requests_failed": "طلبات فشلت" + }, + "changedetectionio": { + "totalObserved": "مجموع الملاحظات", + "diffsDetected": "الاختلافات المكتشفة" + }, + "channelsdvrserver": { + "shows": "برامج", + "recordings": "التسجيلات", + "scheduled": "مجدولة", + "passes": "تمريرات" + }, + "tautulli": { + "playing": "يعمل الآن", + "transcoding": "التحويل", + "bitrate": "معدل البت", + "no_active": "لا يوجد بث نشط", + "plex_connection_error": "تحقق من الاتصال بـ Plex" + }, + "omada": { + "connectedAp": "المتصلة APs", + "activeUser": "الأجهزة النشطة", + "alerts": "تنبيهات", + "connectedGateways": "Connected gateways", + "connectedSwitches": "مفاتيح التبديل المتصلة" + }, + "nzbget": { + "rate": "معدل", + "remaining": "متبقي", + "downloaded": "مُنزل" + }, + "plex": { + "streams": "بث نشيطٌ", + "albums": "ألبومات", + "movies": "أفلام", + "tv": "مسلسلات" + }, + "sabnzbd": { + "rate": "معدل", + "queue": "إنتظار", + "timeleft": "الوقت المتبقي" + }, + "rutorrent": { + "active": "نشط", + "upload": "التحميل", + "download": "التنزيل" + }, + "transmission": { + "download": "التنزيل", + "upload": "التحميل", + "leech": "القرناء", + "seed": "البذور" + }, + "qbittorrent": { + "download": "التنزيل", + "upload": "التحميل", + "leech": "القرناء", + "seed": "البذور" + }, + "qnap": { + "cpuUsage": "استهلاك المعالج", + "memUsage": "استخدام الذاكرة العشوائية", + "systemTempC": "درجة حرارة النظام", + "poolUsage": "استخدام التجمع", + "volumeUsage": "استخدام حجم القرص", + "invalid": "غير صحيح" + }, + "deluge": { + "download": "التنزيل", + "upload": "التحميل", + "leech": "القرناء", + "seed": "البذور" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "التنزيل", + "upload": "التحميل", + "leech": "القرناء", + "seed": "البذور" + }, + "sonarr": { + "wanted": "مطلوب", + "queued": "في الإنتظار", + "series": "مسلسلات", + "queue": "إنتظار", + "unknown": "مجهول" + }, + "radarr": { + "wanted": "مطلوب", + "missing": "مفقود", + "queued": "في الإنتظار", + "movies": "أفلام", + "queue": "إنتظار", + "unknown": "مجهول" + }, + "lidarr": { + "wanted": "مطلوب", + "queued": "في الإنتظار", + "artists": "فنانين" + }, + "readarr": { + "wanted": "مطلوب", + "queued": "في الإنتظار", + "books": "كتب" + }, + "bazarr": { + "missingEpisodes": "حلقات مفقودة", + "missingMovies": "أفلام مفقودة" + }, + "ombi": { + "pending": "معلق", + "approved": "مصدق", + "available": "متاح" + }, + "jellyseerr": { + "pending": "معلق", + "approved": "مصدق", + "available": "متاح" + }, + "overseerr": { + "pending": "معلق", + "processing": "معالجة", + "approved": "مصدق", + "available": "متاح" + }, + "netalertx": { + "total": "المجموع", + "connected": "متصل", + "new_devices": "أجهزة جديدة", + "down_alerts": "تنبيهات تعطل" + }, + "pihole": { + "queries": "الاستعلامات", + "blocked": "محظور", + "blocked_percent": "تم حظر %", + "gravity": "الجاذبية" + }, + "adguard": { + "queries": "الاستعلامات", + "blocked": "محظور", + "filtered": "مرشح", + "latency": "الإستجابة" + }, + "speedtest": { + "upload": "التحميل", + "download": "التنزيل", + "ping": "بينغ" + }, + "portainer": { + "running": "قيد التشغيل", + "stopped": "متوقف", + "total": "المجموع" + }, + "suwayomi": { + "download": "مُنزل", + "nondownload": "Non-Downloaded", + "read": "قراءة", + "unread": "غير مقروءة", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "عنوان", + "expires": "تنتهي", + "never": "مطلقاً", + "last_seen": "آخر ظهور", + "now": "الآن", + "years": "{{number}}س", + "weeks": "{{number}}أ", + "days": "{{number}}ي", + "hours": "{{number}}س", + "minutes": "{{number}}د", + "seconds": "{{number}}ث", + "ago": "منذ {{value}}" + }, + "technitium": { + "totalQueries": "الاستعلامات", + "totalNoError": "تم بنجاح", + "totalServerFailure": "فشل", + "totalNxDomain": "مجالات NX", + "totalRefused": "مرفوض", + "totalAuthoritative": "موثوقة", + "totalRecursive": "عودي", + "totalCached": "مخبأ", + "totalBlocked": "محظور", + "totalDropped": "أسقطت", + "totalClients": "العملاء" + }, + "tdarr": { + "queue": "إنتظار", + "processed": "معالجة", + "errored": "خطأ", + "saved": "حفظ" + }, + "traefik": { + "routers": "راوتر", + "services": "خدمات", + "middleware": "الوسيطة" + }, + "navidrome": { + "nothing_streaming": "لا يوجد بث نشط", + "please_wait": "الرجاء الإنتظار" + }, + "npm": { + "enabled": "مفعل", + "disabled": "معطل", + "total": "المجموع" + }, + "coinmarketcap": { + "configure": "قم بأنشاء عملة تشفير واحدة أو أكثر للتتبع", + "1hour": "١ ساعة", + "1day": "١ يوم", + "7days": "٧ أيام", + "30days": "30 يوماً" + }, + "gotify": { + "apps": "التطبيقات", + "clients": "العملاء", + "messages": "الرسائل" + }, + "prowlarr": { + "enableIndexers": "مفهرسات", + "numberOfGrabs": "مساكات", + "numberOfQueries": "الاستعلامات", + "numberOfFailGrabs": "إخفاقات في الالتقاط", + "numberOfFailQueries": "فشل الاستعلامات" + }, + "jackett": { + "configured": "مهيأ", + "errored": "خطأ" + }, + "strelaysrv": { + "numActiveSessions": "الجلسات", + "numConnections": "التوصيلات", + "dataRelayed": "منقول(ة)", + "transferRate": "معدل" + }, + "mastodon": { + "user_count": "المستخدمون", + "status_count": "منشورات", + "domain_count": "مجالات" + }, + "medusa": { + "wanted": "مطلوب", + "queued": "في الإنتظار", + "series": "مسلسلات" + }, + "minecraft": { + "players": "مشغلات", + "version": "الإصدار", + "status": "الحالة", + "up": "مُتّصل", + "down": "غير متصل" + }, + "miniflux": { + "read": "قراءة", + "unread": "غير مقروءة" + }, + "authentik": { + "users": "المستخدمون", + "loginsLast24H": "تسجيلات الدخول (٢٤س)", + "failedLoginsLast24H": "فشل تسجيلات الدخول (٢٤س)" + }, + "proxmox": { + "mem": "الذاكرة", + "cpu": "المعالج", + "lxc": "حاويات لينكس", + "vms": "أجهزة ظاهرية" + }, + "glances": { + "cpu": "المعالج", + "load": "الضغط", + "wait": "الرجاء الإنتظار", + "temp": "مؤقت", + "_temp": "درجة الحرارة", + "warn": "تنبية", + "uptime": "تعمل", + "total": "المجموع", + "free": "متاح", + "used": "مستخدم", + "days": "ي", + "hours": "س", + "crit": "حساس", + "read": "قراءة", + "write": "الكتابة", + "gpu": "كرت الشاشة", + "mem": "الذاكرة", + "swap": "ذاكرة سواب" + }, + "quicklaunch": { + "bookmark": "مفضلة", + "service": "خدمة", + "search": "البحث", + "custom": "مُخصّص", + "visit": "زيارة", + "url": "الرابط", + "searchsuggestion": "الإقتراحات" }, "wmo": { - "73-day": "ثلج", "0-day": "مشمس", "0-night": "صافي", "1-day": "مشمس غالباً", @@ -85,6 +493,7 @@ "67-night": "مطر متجمد", "71-day": "ثلج خفيف", "71-night": "ثلج خفيف", + "73-day": "ثلج", "73-night": "ثلج", "75-day": "ثلج شديد", "75-night": "ثلج شديد", @@ -101,238 +510,35 @@ "86-day": "زخات الثلوج", "86-night": "زخات الثلوج", "95-day": "عاصفة رعدية", - "95-night": "‬عاصفة رعدية", + "95-night": "عاصفة رعدية", "96-day": "عاصفة رعدية مع مطر", "96-night": "عاصفة رعدية مع مطر", "99-day": "عاصفة رعدية مع مطر", "99-night": "عاصفة رعدية مع مطر" }, - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "الذاكرة", - "cpu": "المعالج", - "offline": "غير متصل", - "error": "خطأ", - "unknown": "مجهول", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" - }, - "emby": { - "playing": "يعمل الآن", - "transcoding": "التحويل", - "bitrate": "معدل البت", - "no_active": "No Active Streams", - "songs": "Songs", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes" - }, - "changedetectionio": { - "totalObserved": "مجموع الملاحظات", - "diffsDetected": "Diffs Detected" - }, - "tautulli": { - "playing": "يشتغل", - "transcoding": "التحويل", - "bitrate": "معدل البت", - "no_active": "No Active Streams", - "plex_connection_error": "Check Plex Connection" - }, - "nzbget": { - "rate": "معدل", - "remaining": "متبقي", - "downloaded": "مُنزل" - }, - "plex": { - "streams": "Active Streams", - "movies": "أفلام", - "tv": "مسلسلات", - "albums": "Albums" - }, - "sabnzbd": { - "rate": "معدل", - "queue": "إنتظار", - "timeleft": "الوقت المتبقي" - }, - "rutorrent": { - "active": "نشط", - "upload": "تحميل", - "download": "تنزيل" - }, - "transmission": { - "download": "تنزيل", - "upload": "تحميل", - "leech": "Leech", - "seed": "Seed" - }, - "qbittorrent": { - "download": "تنزيل", - "upload": "تحميل", - "leech": "Leech", - "seed": "Seed" - }, - "sonarr": { - "wanted": "مطلوب", - "queued": "في الإنتظار", - "series": "سلسلة", - "queue": "Queue", - "unknown": "Unknown" - }, - "radarr": { - "wanted": "مطلوب", - "missing": "مفقود", - "queued": "في الإنتظار", - "movies": "أفلام", - "queue": "Queue", - "unknown": "Unknown" - }, - "lidarr": { - "wanted": "مطلوب", - "queued": "في الإنتظار", - "artists": "Artists" - }, - "readarr": { - "wanted": "مطلوب", - "queued": "في الإنتظار", - "books": "كتب" - }, - "bazarr": { - "missingEpisodes": "حلقات مفقودة", - "missingMovies": "أفلام مفقودة" - }, - "ombi": { - "pending": "معلق", - "approved": "مصدق", - "available": "متاح" - }, - "jellyseerr": { - "pending": "معلق", - "approved": "مصدق", - "available": "متاح" - }, - "overseerr": { - "pending": "معلق", - "approved": "مصدق", - "available": "متاح", - "processing": "معالجة" - }, - "pihole": { - "queries": "الاستعلامات", - "blocked": "محظور", - "gravity": "الجاذبية", - "blocked_percent": "Blocked %" - }, - "adguard": { - "queries": "الاستعلامات", - "blocked": "محظور", - "filtered": "مرشح", - "latency": "الإستجابة" - }, - "speedtest": { - "upload": "التحميل", - "download": "تنزيل", - "ping": "Ping" - }, - "portainer": { - "running": "يعمل", - "stopped": "متوقف", - "total": "مجموع" - }, - "traefik": { - "routers": "راوتر", - "services": "خدمات", - "middleware": "الوسيطة" - }, - "npm": { - "enabled": "مفعل", - "disabled": "معطل", - "total": "مجموع" - }, - "coinmarketcap": { - "configure": "قم بأنشاء عملة تشفير واحدة أو أكثر للتتبع", - "1hour": "١ ساعة", - "1day": "١ يوم", - "7days": "٧ أيام", - "30days": "٣٠ يوم" - }, - "gotify": { - "apps": "التطبيقات", - "clients": "العملاء", - "messages": "الرسائل" - }, - "prowlarr": { - "enableIndexers": "مفهرسات", - "numberOfGrabs": "Grabs", - "numberOfQueries": "الاستعلامات", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "فشل الاستعلامات" - }, - "jackett": { - "configured": "Configured", - "errored": "خطأ" - }, - "strelaysrv": { - "numActiveSessions": "الجلسات", - "numConnections": "التوصيلات", - "dataRelayed": "Relayed", - "transferRate": "معدل" - }, - "mastodon": { - "user_count": "المستخدمين", - "status_count": "Posts", - "domain_count": "Domains" - }, - "authentik": { - "users": "المستخدمين", - "loginsLast24H": "تسجيلات الدخول (٢٤س)", - "failedLoginsLast24H": "فشل تسجيلات الدخول (٢٤س)" - }, - "proxmox": { - "mem": "الذاكرة", - "cpu": "المعالج", - "lxc": "LXC", - "vms": "VMs" - }, - "glances": { - "cpu": "معالج", - "wait": "الرجاء الإنتظار", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "quicklaunch": { - "bookmark": "مفضلة", - "service": "خدمة", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, "homebridge": { "available_update": "نظام", "updates": "تحديثات", "update_available": "تحديث متاح", "up_to_date": "حتى الآن", - "child_bridges": "Child Bridges", + "child_bridges": "الجسور الأطفال", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "يعمل", + "pending": "معلق", + "down": "لا يعمل" + }, + "healthchecks": { + "new": "جديد(ة)", + "up": "يعمل", + "grace": "في فترة السماح", + "down": "لا يعمل", + "paused": "متوقف", + "status": "الحالة", + "last_ping": "آخر Ping", + "never": "لا توجد بنغات بعد" }, "watchtower": { - "containers_scanned": "Scanned", + "containers_scanned": "مفحوصة", "containers_updated": "محدث", "containers_failed": "فشل" }, @@ -351,18 +557,13 @@ "truenas": { "load": "حمل النظام", "uptime": "مدة التشغيل", - "alerts": "تنبيهات", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "الرجاء الإنتظار" + "alerts": "تنبيهات" }, "pyload": { "speed": "السرعة", "active": "نشط", "queue": "إنتظار", - "total": "مجموع" + "total": "المجموع" }, "gluetun": { "public_ip": "العام IP", @@ -370,12 +571,16 @@ "country": "الدولة" }, "hdhomerun": { - "channels": "قنوات", - "hd": "HD" - }, - "ping": { - "error": "خطأ", - "ping": "Ping" + "channels": "القنوات", + "hd": "جودة HD", + "tunerCount": "التونز", + "channelNumber": "القناة", + "channelNetwork": "الشبكة", + "signalStrength": "القوة", + "signalQuality": "الجودة", + "symbolQuality": "الجودة", + "networkRate": "معدل البت", + "clientIP": "العميل" }, "scrutiny": { "passed": "إجتاز", @@ -386,60 +591,35 @@ "inbox": "صندوق الوارد", "total": "المجموع" }, - "deluge": { - "download": "تنزيل", - "upload": "تحميل", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "التنزيل", - "upload": "التحميل", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "إنتظار", - "processed": "معالجة", - "errored": "خطأ", - "saved": "حفظ" - }, - "miniflux": { - "read": "قراءة", - "unread": "غير مقروء" + "peanut": { + "battery_charge": "شحن البطارية", + "ups_load": "حمل UPS", + "ups_status": "حالة UPS", + "online": "مُتّصل", + "on_battery": "على البطارية", + "low_battery": "البطارية منخفضة" }, "nextdns": { "wait": "الرجاء الإنتظار", "no_devices": "لم يتم استلام بيانات الجهاز" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "المتصلة APs", - "activeUser": "الأجهزة النشطة", - "alerts": "تنبيهات", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "تنزيل", - "upload": "تحميل", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "حمل المعالج", "memoryUsed": "الذاكرة الستخدمة", "uptime": "مدة التشغيل", - "numberOfLeases": "Leases" + "numberOfLeases": "إيجارات" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_all": "جميع البث", + "streams_active": "بث نشيطٌ", "streams_xepg": "XEPG قنوات" }, + "opendtu": { + "yieldDay": "اليوم", + "absolutePower": "القوة", + "relativePower": "قوة %", + "limit": "الحد الأقصى" + }, "opnsense": { "cpu": "حمل المعالج", "memory": "الذاكرة النشطة", @@ -452,218 +632,415 @@ "print_progress": "تقدم", "layers": "طبقات" }, - "medusa": { - "wanted": "مطلوب", - "queued": "في الإنتظار", - "series": "سلسلة" - }, "octoprint": { - "printer_state": "حالة", + "printer_state": "الحالة", "temp_tool": "أداة درجة الحرارة", "temp_bed": "درجة حرارة السرير", "job_completion": "إتمام" }, "cloudflared": { - "origin_ip": "Origin IP", - "status": "حالة" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "volumeAvailable": "Available", - "uptime": "Uptime" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "scheduled": "Scheduled", - "passes": "Passes", - "shows": "Shows", - "recordings": "Recordings" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" - }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "origin_ip": "IP الأصل", + "status": "الحالة" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" + "load": "معدل التحميل", + "memory": "استخدام الذاكرة العشوائية", + "wanStatus": "حالة الشبكة الواسعة", + "up": "يعمل", + "down": "لا يعمل", + "temp": "درجة الحرارة", + "disk": "استخدام القرص", + "wanIP": "IP الشبكة الواسعة" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "مخزن البيانات", + "failed_tasks_24h": "المهام الفاشلة 24 ساعة", + "cpu_usage": "المعالج", + "memory_usage": "الذاكرة" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "المستخدمون", + "photos": "الصور", + "videos": "الفيديوهات", + "storage": "التخزين" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "المواقع تعمل", + "down": "مواقع لا تعمل", + "uptime": "مدة التشغيل", + "incident": "حادثة", + "m": "د" + }, + "atsumeru": { + "series": "مسلسلات", + "archives": "الأرشيف", + "chapters": "الفصول", + "categories": "التصنيفات" + }, + "komga": { + "libraries": "المكتبات", + "series": "مسلسلات", + "books": "كتب" + }, + "diskstation": { + "days": "أيام", + "uptime": "مدة التشغيل", + "volumeAvailable": "متاح" + }, + "mylar": { + "series": "مسلسلات", + "issues": "المُشكِلات", + "wanted": "مطلوب" + }, + "photoprism": { + "albums": "ألبومات", + "photos": "الصور", + "videos": "الفيديوهات", + "people": "أشخاص" + }, + "fileflows": { + "queue": "إنتظار", + "processing": "معالجة", + "processed": "معالجة", + "time": "الوقت" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "لوحات المعلومات", + "datasources": "مصادر البيانات", + "totalalerts": "إجمالي التنبيهات", + "alertstriggered": "تنبيهات مفعلة" + }, + "nextcloud": { + "cpuload": "حمل المعالج", + "memoryusage": "استخدام الذاكرة", + "freespace": "مساحة فارغة", + "activeusers": "مستخدمين نشطين", + "numfiles": "ملفات", + "numshares": "عناصر مشتركة" + }, + "kopia": { + "status": "الحالة", + "size": "حجم", + "lastrun": "آخر تشغيل", + "nextrun": "التشغيل التالي", + "failed": "فشل" + }, + "unmanic": { + "active_workers": "العمال النشطون", + "total_workers": "مجموع العمال", + "records_total": "طول الصف" + }, + "pterodactyl": { + "servers": "السيرفرات", + "nodes": "عقد" + }, + "prometheus": { + "targets_up": "أهداف تعمل", + "targets_down": "الأهداف لا تعمل", + "targets_total": "الأهداف الإجمالية" + }, + "gatus": { + "up": "المواقع تعمل", + "down": "مواقع لا تعمل", + "uptime": "مدة التشغيل" + }, + "ghostfolio": { + "gross_percent_today": "اليوم", + "gross_percent_1y": "سنة", + "gross_percent_max": "كل الوقت" + }, + "audiobookshelf": { + "podcasts": "بودكاست", + "books": "كتب", + "podcastsDuration": "المدة", + "booksDuration": "المدة" + }, + "homeassistant": { + "people_home": "أشخاص في المنزل", + "lights_on": "أضواء مضاءة", + "switches_on": "مفاتيح قيد التشغيل" + }, + "whatsupdocker": { + "monitoring": "المراقبة", + "updates": "تحديثات" + }, + "calibreweb": { + "books": "كتب", + "authors": "المؤلفون", + "categories": "التصنيفات", + "series": "مسلسلات" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "إنتظار", + "downloadBytesRemaining": "متبقي", + "downloadTotalBytes": "حجم", + "downloadSpeed": "السرعة" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "مسلسلات", + "totalFiles": "ملفات" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "نتيجة", + "status": "الحالة", + "buildId": "معرف البناء", + "succeeded": "تم بنجاح", + "notStarted": "لم يبدأ", + "failed": "فشل", + "canceled": "ملغى", + "inProgress": "قيد التنفيذ", + "totalPrs": "المجموع الكلي للPRs", + "myPrs": "الPRs الشخصية", + "approved": "مصدق" + }, + "gamedig": { + "status": "الحالة", + "online": "مُتّصل", + "offline": "غير متصل", + "name": "الاسم", + "map": "خريطة", + "currentPlayers": "المشغلات الحالية", + "players": "مشغلات", + "maxPlayers": "الحد الأقصى للمشغلات", + "bots": "بوتات", + "ping": "بينغ" + }, + "urbackup": { + "ok": "تمام", + "errored": "أخطاء", + "noRecent": "غير محدّث", + "totalUsed": "التخزين المستخدم" + }, + "mealie": { + "recipes": "وصفات", + "users": "المستخدمون", + "categories": "التصنيفات", + "tags": "التصنيفات" + }, + "openmediavault": { + "downloading": "جاري التنزيل", + "total": "المجموع", + "running": "قيد التشغيل", + "stopped": "متوقف", + "passed": "إجتاز", + "failed": "فشل" + }, + "openwrt": { + "uptime": "مدة التشغيل", + "cpuLoad": "متوسط حمولة المعالج (5دق)", + "up": "يعمل", + "down": "لا يعمل", + "bytesTx": "مرسلة", + "bytesRx": "تم الإستلام" + }, + "uptimerobot": { + "status": "الحالة", + "uptime": "مدة التشغيل", + "lastDown": "فترة التعطّل الأخيرة", + "downDuration": "مدة التعطل", + "sitesUp": "المواقع تعمل", + "sitesDown": "مواقع لا تعمل", + "paused": "متوقف", + "notyetchecked": "لم يتم التحقق بعد", + "up": "يعمل", + "seemsdown": "يبدو أنه معطل", + "down": "لا يعمل", + "unknown": "مجهول" + }, + "calendar": { + "inCinemas": "في دور السينما", + "physicalRelease": "الإصدار المادي", + "digitalRelease": "الإصدار الرقمي", + "noEventsToday": "لا توجد أحداث اليوم!", + "noEventsFound": "لم يتم العثور على أحداث" + }, + "romm": { + "platforms": "المِنصات", + "totalRoms": "ألعاب", + "saves": "نُقَط حفظ", + "states": "حالات", + "screenshots": "لقطات شاشة", + "totalfilesize": "الحجم الكلي" + }, + "mailcow": { + "domains": "مجالات", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "التخزين" + }, + "netdata": { + "warnings": "تحذيرات", + "criticals": "حرج" + }, + "plantit": { + "events": "أحداث", + "plants": "نباتات", + "photos": "الصور", + "species": "الأنواع" + }, + "gitea": { + "notifications": "الإشعارات", + "issues": "المُشكِلات", + "pulls": "طلبات السحب", + "repositories": "Repositories" + }, + "stash": { + "scenes": "المشاهد", + "scenesPlayed": "مشاهد شغلت", + "playCount": "إجمالي المشغلات", + "playDuration": "وقت المشاهدة", + "sceneSize": "حجم المشاهد", + "sceneDuration": "مدة المشهد", + "images": "صور", + "imageSize": "حجم الصور", + "galleries": "المعارض", + "performers": "ممثلين", + "studios": "استوديوهات", + "movies": "أفلام", + "tags": "التصنيفات", + "oCount": "عدد O" + }, + "tandoor": { + "users": "المستخدمون", + "recipes": "وصفات", + "keywords": "كلمات مفتاح" + }, + "homebox": { + "items": "عناصر", + "totalWithWarranty": "بالضمان", + "locations": "Locations", + "labels": "Labels", + "users": "المستخدمون", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "تنبيهات", + "bans": "Bans" + }, + "wgeasy": { + "connected": "متصل", + "enabled": "مفعل", + "disabled": "معطل", + "total": "المجموع" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "بينغ", + "download": "التنزيل", + "upload": "التحميل" + }, + "stocks": { + "stocks": "Stocks", + "loading": "تحميل", + "open": "مفتوحة - السوق الأمريكية", + "closed": "مغلقة - السوق الأمريكية", + "invalidConfiguration": "إعدادات غير صحيحة" + }, + "frigate": { + "cameras": "كاميرات", + "uptime": "مدة التشغيل", + "version": "الإصدار" + }, + "linkwarden": { + "links": "روابط", + "collections": "مجموعات", + "tags": "التصنيفات" + }, + "zabbix": { + "unclassified": "غير مصنفة", + "information": "معلومات", + "warning": "تحذيرات", + "average": "متوسط", + "high": "عالي", + "disaster": "كارثة" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "الاسم", + "address": "عنوان", + "last_seen": "آخر ظهور", + "status": "الحالة", + "online": "مُتّصل", + "offline": "غير متصل" + }, + "beszel": { + "name": "الاسم", + "systems": "Systems", + "up": "يعمل", + "down": "لا يعمل", + "paused": "متوقف", + "pending": "معلق", + "status": "الحالة", + "updated": "محدث", + "cpu": "المعالج", + "memory": "الذاكرة", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "سليم", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "مفقود", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "تحميل" + }, + "gitlab": { + "groups": "Groups", + "issues": "المُشكِلات", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "الحالة", + "load": "الضغط", + "bcharge": "شحن البطارية", + "timeleft": "الوقت المتبقي" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "التصنيفات" + }, + "slskd": { + "slskStatus": "الشبكة", + "connected": "متصل", + "disconnected": "غير متصل", + "updateStatus": "Update", + "update_yes": "متاح", + "update_no": "حتى الآن", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "ملفات" } } diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index d0dea6a9..3c721bce 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -1,22 +1,33 @@ { - "sabnzbd": { - "queue": "Опашка", - "timeleft": "Оставащо Време", - "rate": "Rate" - }, - "rutorrent": { - "active": "Акитивен", - "upload": "Споделяне", - "download": "Сваляне" + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "м", + "days": "д", + "hours": "ч", + "minutes": "мин", + "seconds": "сек" }, "widget": { "missing_type": "Липсваща приставка: {{type}}", "api_error": "API Грешка", + "information": "Информация", "status": "Статус", - "information": "Information", "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" + "raw_error": "Грешка", + "response_data": "Отговор" }, "weather": { "current": "Текущо местоположение", @@ -28,642 +39,1008 @@ "placeholder": "Търсене…" }, "resources": { - "cpu": "CPU", + "cpu": "Процесор", + "mem": "Памет", "total": "Общо", "free": "Свободни", "used": "Заети", "load": "Натоварване", - "mem": "MEM", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "temp": "Температура", + "max": "Макс.", + "uptime": "Онлайн" }, "unifi": { "users": "Потребители", - "uptime": "Активен от", + "uptime": "Ъптайм", "days": "Дни", "wan": "WAN", - "lan_users": "LAN Потребители", - "wlan_users": "WLAN Потребители", - "up": "UP", - "down": "DOWN", - "wait": "Моля изчакайте", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" + "devices": "Устройства", + "lan_devices": "LAN Устройства", + "wlan_devices": "WLAN Устройства", + "lan_users": "LAN Потребители", + "wlan_users": "WLAN Потребители", + "up": "Онлайн", + "down": "DOWN", + "wait": "Моля изчакайте", + "empty_data": "Неизвестен статус на подсистема" }, "docker": { + "rx": "ПЧ", + "tx": "ИЗ", + "mem": "Памет", + "cpu": "Процесор", + "running": "Работи", "offline": "Изключен", - "rx": "RX", - "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "error": "Error", - "unknown": "Unknown", - "partial": "Partial", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "healthy": "Healthy" + "error": "Грешка", + "unknown": "Неизв.", + "healthy": "Здрав", + "starting": "Стартиращ", + "unhealthy": "Нездравословен", + "not_found": "Не е открит", + "exited": "Напуснал", + "partial": "Частично" + }, + "ping": { + "error": "Грешка", + "ping": "Пинг", + "down": "Down", + "up": "Up", + "not_available": "Не е налично" + }, + "siteMonitor": { + "http_status": "HTTP статус", + "error": "Грешка", + "response": "Отговор", + "down": "Down", + "up": "Up", + "not_available": "Не е налично" }, "emby": { "playing": "Възпроизвежда", "transcoding": "Конвертира", - "bitrate": "Bitrate", + "bitrate": "Битрейт", "no_active": "Няма активни потоци", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "movies": "Филми", + "series": "Сериали", + "episodes": "Епизоди", + "songs": "Песни" + }, + "esphome": { + "offline": "Изключен", + "offline_alt": "Изключен", + "online": "Онлайн", + "total": "Общо", + "unknown": "Неизв." + }, + "evcc": { + "pv_power": "Произведено", + "battery_soc": "Батерия", + "grid_power": "Мрежа", + "home_power": "Потребление", + "charge_power": "Зарядно", + "kilowatt": "кВ" + }, + "flood": { + "download": "Изтегляне", + "upload": "Качване", + "leech": "Лийч", + "seed": "Сийд" + }, + "freshrss": { + "subscriptions": "Абонаменти", + "unread": "Непрочетени" + }, + "fritzbox": { + "connectionStatus": "Статус", + "connectionStatusUnconfigured": "Неконфигуриран", + "connectionStatusConnecting": "Свързване", + "connectionStatusAuthenticating": "Удостоверяване", + "connectionStatusPendingDisconnect": "Изчава прекратяване на връзка", + "connectionStatusDisconnecting": "Прекъсване на връзката", + "connectionStatusDisconnected": "Не е свързан", + "connectionStatusConnected": "Свързан", + "uptime": "Ъптайм", + "maxDown": "Макс сваляне", + "maxUp": "Макс качване", + "down": "Down", + "up": "Up", + "received": "Получени", + "sent": "Изпратени", + "externalIPAddress": "Външно IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Текущи заявки", + "requests_failed": "Провалени заявки" + }, + "changedetectionio": { + "totalObserved": "Общо наблюдавани", + "diffsDetected": "Открити разлики" + }, + "channelsdvrserver": { + "shows": "Шоута", + "recordings": "Записи", + "scheduled": "Планирано", + "passes": "Passes" }, "tautulli": { "playing": "Възпроизвежда", "transcoding": "Конвертира", - "bitrate": "Честота", + "bitrate": "Битрейт", "no_active": "Няма активни потоци", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Провери връзка с Plex" + }, + "omada": { + "connectedAp": "Свързани точки", + "activeUser": "Активни устройства", + "alerts": "Предупреждения", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Свързани суичове" }, "nzbget": { - "rate": "Rate", + "rate": "Скорост", "remaining": "Остава", "downloaded": "Изтеглени" }, "plex": { "streams": "Активни Потоци", + "albums": "Албуми", "movies": "Филми", - "tv": "Сериали", - "albums": "Albums" + "tv": "Сериали" + }, + "sabnzbd": { + "rate": "Скорост", + "queue": "Опашка", + "timeleft": "Оставащо Време" + }, + "rutorrent": { + "active": "Акитивен", + "upload": "Качване", + "download": "Изтегляне" }, "transmission": { - "download": "Сваляне", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "Изтегляне", + "upload": "Качване", + "leech": "Лийч", + "seed": "Сийд" }, "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "Изтегляне", + "upload": "Качване", + "leech": "Лийч", + "seed": "Сийд" + }, + "qnap": { + "cpuUsage": "CPU употреба", + "memUsage": "Упортеба памет", + "systemTempC": "Системна темп", + "poolUsage": "Употреба на пул", + "volumeUsage": "Volume Usage", + "invalid": "Невалидни" + }, + "deluge": { + "download": "Изтегляне", + "upload": "Качване", + "leech": "Лийч", + "seed": "Сийд" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Изтегляне", + "upload": "Качване", + "leech": "Лийч", + "seed": "Сийд" }, "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series", - "queue": "Queue", - "unknown": "Unknown" + "wanted": "Търсени", + "queued": "В изчакване", + "series": "Сериали", + "queue": "Опашка", + "unknown": "Неизв." }, "radarr": { - "wanted": "Wanted", - "queued": "Queued", - "movies": "Movies", - "missing": "Missing", - "queue": "Queue", - "unknown": "Unknown" + "wanted": "Търсени", + "missing": "Липсващи", + "queued": "В изчакване", + "movies": "Филми", + "queue": "Опашка", + "unknown": "Неизв." }, "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" + "wanted": "Търсени", + "queued": "В изчакване", + "artists": "Изпълнители" }, "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" + "wanted": "Търсени", + "queued": "В изчакване", + "books": "Книги" }, "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" + "missingEpisodes": "Липсващи Епизоди", + "missingMovies": "Липсващи Филми" }, "ombi": { "pending": "Pending", - "approved": "Approved", - "available": "Available" + "approved": "Одобрен", + "available": "Наличен" }, "jellyseerr": { "pending": "Pending", - "approved": "Approved", - "available": "Available" + "approved": "Одобрен", + "available": "Наличен" }, "overseerr": { "pending": "Pending", - "approved": "Approved", - "available": "Available", - "processing": "Processing" + "processing": "Processing", + "approved": "Одобрен", + "available": "Наличен" + }, + "netalertx": { + "total": "Общо", + "connected": "Свързан", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { - "queries": "Queries", - "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "queries": "Заявки", + "blocked": "Блокирани", + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", + "queries": "Заявки", + "blocked": "Блокирани", + "filtered": "Филтрирани", "latency": "Latency" }, "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "upload": "Качване", + "download": "Изтегляне", + "ping": "Пинг" }, "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" + "running": "Работи", + "stopped": "Спрян", + "total": "Общо" + }, + "suwayomi": { + "download": "Изтеглени", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Непрочетени", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Изтеглени и непрочетени", + "nondownloadedread": "Не-изтеглени и прочетени", + "nondownloadedunread": "Не-изтеглени и непрочетени" + }, + "tailscale": { + "address": "Адрес", + "expires": "Изтича", + "never": "Никога", + "last_seen": "Последно видян", + "now": "Сега", + "years": "{{number}}г", + "weeks": "{{number}}с", + "days": "{{number}}д", + "hours": "{{number}}ч", + "minutes": "{{number}}м", + "seconds": "{{number}}сек", + "ago": "преди {{value}}" + }, + "technitium": { + "totalQueries": "Заявки", + "totalNoError": "Успех", + "totalServerFailure": "Грешки", + "totalNxDomain": "NX домейни", + "totalRefused": "Отказани", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Рекурсивни", + "totalCached": "Кеширани", + "totalBlocked": "Блокирани", + "totalDropped": "Отпаднали", + "totalClients": "Клиенти" + }, + "tdarr": { + "queue": "Опашка", + "processed": "Обработени", + "errored": "С грешки", + "saved": "Запазени" }, "traefik": { - "routers": "Routers", - "services": "Services", + "routers": "Рутери", + "services": "Услуги", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "Няма активни потоци", + "please_wait": "Моля Изчакайте" + }, "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" + "enabled": "Активирано", + "disabled": "Деактивирано", + "total": "Общо" }, "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" + "configure": "Настрой за следене една или повече крипто валути", + "1hour": "1 Час", + "1day": "1 Ден", + "7days": "7 Дена", + "30days": "30 дни" }, "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" + "apps": "Приложения", + "clients": "Клиенти", + "messages": "Съобщения" }, "prowlarr": { - "enableIndexers": "Indexers", + "enableIndexers": "Индексъри", "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", + "numberOfQueries": "Заявки", "numberOfFailGrabs": "Fail Grabs", "numberOfFailQueries": "Fail Queries" }, - "authentik": { - "loginsLast24H": "Logins (24h)", - "users": "Users", - "failedLoginsLast24H": "Failed Logins (24h)" - }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "Настроен", + "errored": "С грешки" }, "strelaysrv": { - "numActiveSessions": "Sessions", + "numActiveSessions": "Сесии", "numConnections": "Connections", "dataRelayed": "Relayed", - "transferRate": "Rate" + "transferRate": "Скорост" }, "mastodon": { - "user_count": "Users", + "user_count": "Потребители", "status_count": "Posts", "domain_count": "Domains" }, + "medusa": { + "wanted": "Търсени", + "queued": "В изчакване", + "series": "Сериали" + }, + "minecraft": { + "players": "Играчи", + "version": "Version", + "status": "Статус", + "up": "Онлайн", + "down": "Изключен" + }, + "miniflux": { + "read": "Read", + "unread": "Непрочетени" + }, + "authentik": { + "users": "Потребители", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Failed Logins (24h)" + }, "proxmox": { - "mem": "MEM", - "cpu": "CPU", + "mem": "Памет", + "cpu": "Процесор", "lxc": "LXC", "vms": "VMs" }, "glances": { - "cpu": "CPU", - "wait": "Please wait", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" - }, - "wmo": { - "0-day": "Sunny", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "cpu": "Процесор", + "load": "Натоварване", + "wait": "Моля изчакайте", + "temp": "Температура", + "_temp": "Температура", + "warn": "Предупреждение", + "uptime": "Онлайн", + "total": "Общо", + "free": "Свободни", + "used": "Заети", + "days": "д", + "hours": "ч", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "search": "Търсене", + "custom": "По избор", + "visit": "Посети", + "url": "URL", + "searchsuggestion": "Предложение" + }, + "wmo": { + "0-day": "Слънчево", + "0-night": "Ясно", + "1-day": "Предимно Слънчево", + "1-night": "Предимно Ясно", + "2-day": "Частична Облачност", + "2-night": "Частична Облачност", + "3-day": "Облачно", + "3-night": "Облачно", + "45-day": "Мъгливо", + "45-night": "Мъгливо", + "48-day": "Мъгливо", + "48-night": "Мъгливо", + "51-day": "Слабо преваляване", + "51-night": "Слабо преваляване", + "53-day": "Преваляване", + "53-night": "Преваляване", + "55-day": "Тежко преваляване", + "55-night": "Тежко преваляване", + "56-day": "Слабо студено преваляване", + "56-night": "Слабо студено преваляване", + "57-day": "Студено преваляване", + "57-night": "Студено преваляване", + "61-day": "Слаб дъжд", + "61-night": "Слаб дъжд", + "63-day": "Дъжд", + "63-night": "Дъжд", + "65-day": "Силен дъжд", + "65-night": "Силен дъжд", + "66-day": "Леден дъжд", + "66-night": "Леден дъжд", + "67-day": "Леден дъжд", + "67-night": "Леден дъжд", + "71-day": "Лек снеговалеж", + "71-night": "Лек снеговалеж", + "73-day": "Снеговалеж", + "73-night": "Снеговалеж", + "75-day": "Силен снеговалеж", + "75-night": "Силен снеговалеж", + "77-day": "Snow Grains", + "77-night": "Snow Grains", + "80-day": "Лек дъжд", + "80-night": "Лек дъжд", + "81-day": "Дъжд", + "81-night": "Дъжд", + "82-day": "Силен дъжд", + "82-night": "Силен дъжд", + "85-day": "Снеговалеж", + "85-night": "Снеговалеж", + "86-day": "Снеговалеж", + "86-night": "Снеговалеж", + "95-day": "Гръмотевична буря", + "95-night": "Гръмотевична буря", + "96-day": "Гръмотевична буря с градушка", + "96-night": "Гръмотевична буря с градушка", + "99-day": "Гръмотевична буря с градушка", + "99-night": "Гръмотевична буря с градушка" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "available_update": "Система", + "updates": "Актуализации", + "update_available": "Налична актуализация", + "up_to_date": "Актуално", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", "pending": "Pending", "down": "Down" }, - "autobrr": { - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers", - "approvedPushes": "Approved" + "healthchecks": { + "new": "Нови", + "up": "Up", + "grace": "Гратисен период", + "down": "Down", + "paused": "На пауза", + "status": "Статус", + "last_ping": "Последен пинг", + "never": "Няма пинг все още" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Сканирани", + "containers_updated": "Обновени", + "containers_failed": "Провалени" + }, + "autobrr": { + "approvedPushes": "Одобрен", + "rejectedPushes": "Отхвърлени", + "filters": "Филтри", + "indexers": "Индексъри" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Опашка", + "videos": "Видео", + "channels": "Канали", + "playlists": "Плейлист" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "load": "Натоварване на системата", + "uptime": "Ъптайм", + "alerts": "Предупреждения" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Скорост", + "active": "Акитивен", + "queue": "Опашка", + "total": "Общо" }, "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "public_ip": "Публично IP", + "region": "Регион", + "country": "Страна" }, "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "ping": { - "ping": "Ping", - "error": "Error" + "channels": "Канали", + "hd": "HD", + "tunerCount": "Тунери", + "channelNumber": "Канал", + "channelNetwork": "Мрежа", + "signalStrength": "Сила", + "signalQuality": "Качество", + "symbolQuality": "Качество", + "networkRate": "Битрейт", + "clientIP": "Клиент" }, "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" + "passed": "Одобрени", + "failed": "Провалени", + "unknown": "Неизв." }, "paperlessngx": { - "inbox": "Inbox", - "total": "Total" + "inbox": "Входящи", + "total": "Общо" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "leech": "Leech", - "seed": "Seed", - "download": "Download", - "upload": "Upload" - }, - "tdarr": { - "saved": "Saved", - "queue": "Queue", - "processed": "Processed", - "errored": "Errored" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Заряд на батерията", + "ups_load": "Натоварване на UPS", + "ups_status": "Статус на UPS", + "online": "Онлайн", + "on_battery": "На батерия", + "low_battery": "Слаба батерия" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "wait": "Моля Изчакайте", + "no_devices": "Не е получена дата от устройство" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", + "cpuLoad": "Натоварване на процесор", + "memoryUsed": "Изполвана памет", + "uptime": "Ъптайм", "numberOfLeases": "Leases" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Всички потоци", + "streams_active": "Активни Потоци", + "streams_xepg": "XEPG канали" + }, + "opendtu": { + "yieldDay": "Днес", + "absolutePower": "Захранване", + "relativePower": "Захранване %", + "limit": "Лимит" }, "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" + "cpu": "Натоварване на процесор", + "memory": "Активна памет", + "wanUpload": "WAN качване", + "wanDownload": "WAN теглене" }, "moonraker": { - "print_progress": "Progress", - "printer_state": "Printer State", - "print_status": "Print Status", - "layers": "Layers" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "printer_state": "Статус на принтер", + "print_status": "Статус на принта", + "print_progress": "Напредък", + "layers": "Слоеве" }, "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" + "printer_state": "Статус", + "temp_tool": "Температур на уреда", + "temp_bed": "Температура на леглото", + "job_completion": "Завършване" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "Статус" + }, + "pfsense": { + "load": "Средно натоварване", + "memory": "Употреба памет", + "wanStatus": "WAN статус", + "up": "Up", + "down": "Down", + "temp": "Температура", + "disk": "Употреба на диска", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" + "datastore_usage": "База данни", + "failed_tasks_24h": "Провалени задачи 24ч", + "cpu_usage": "Процесор", + "memory_usage": "Памет" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "Потребители", + "photos": "Снимки", + "videos": "Видео", + "storage": "Хранилище" }, "uptimekuma": { - "down": "Sites Down", "up": "Sites Up", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" + "down": "Sites Down", + "uptime": "Ъптайм", + "incident": "Инцидент", + "m": "мин" + }, + "atsumeru": { + "series": "Сериали", + "archives": "Архиви", + "chapters": "Глави", + "categories": "Категории" }, "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" + "libraries": "Библиотеки", + "series": "Сериали", + "books": "Книги" }, "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "days": "Дни", + "uptime": "Ъптайм", + "volumeAvailable": "Наличен" + }, + "mylar": { + "series": "Сериали", + "issues": "Издания", + "wanted": "Търсени" + }, + "photoprism": { + "albums": "Албуми", + "photos": "Снимки", + "videos": "Видео", + "people": "Хора" }, "fileflows": { - "queue": "Queue", + "queue": "Опашка", "processing": "Processing", - "processed": "Processed", - "time": "Time" + "processed": "Обработени", + "time": "Време" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Бюджет" }, "grafana": { "dashboards": "Dashboards", - "datasources": "Data Sources", + "datasources": "Източници на данни", "totalalerts": "Total Alerts", "alertstriggered": "Alerts Triggered" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "Натоварване на процесор", + "memoryusage": "Употреба на паметта", + "freespace": "Свободно пространство", + "activeusers": "Активни потребители", + "numfiles": "Файлове", + "numshares": "Споделени записи" }, "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "status": "Статус", + "size": "Размер", + "lastrun": "Последно стартиране", + "nextrun": "Следващо стартиране", + "failed": "Провалени" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "down": "Offline", - "grace": "In Grace Period", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "active_workers": "Активни работници", + "total_workers": "Общо работници", + "records_total": "Дължина на опашка" }, "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" + "servers": "Сървъри", + "nodes": "Възли" }, "prometheus": { "targets_up": "Targets Up", "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Ъптайм" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", + "gross_percent_today": "Днес", + "gross_percent_1y": "Една година", "gross_percent_max": "All time" }, "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcasts": "Подкасти", + "books": "Книги", + "podcastsDuration": "Продължителност", + "booksDuration": "Продължителност" }, "homeassistant": { "people_home": "People Home", "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "Наблюдение", + "updates": "Актуализации" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "charge_power": "Charger", - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Книги", + "authors": "Автори", + "categories": "Категории", + "series": "Сериали" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Опашка", + "downloadBytesRemaining": "Остава", + "downloadTotalBytes": "Размер", + "downloadSpeed": "Скорост" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Сериали", + "totalFiles": "Файлове" }, - "azurePipelines": { - "result": "Result", - "status": "Status", + "azuredevops": { + "result": "Резултат", + "status": "Статус", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "succeeded": "Успешни", + "notStarted": "Не стартирани", + "failed": "Провалени", + "canceled": "Отказани", + "inProgress": "В процес", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Одобрен" + }, + "gamedig": { + "status": "Статус", + "online": "Онлайн", + "offline": "Изключен", + "name": "Име", + "map": "Карта", + "currentPlayers": "Текущи играчи", + "players": "Играчи", + "maxPlayers": "Максимален брой играчи", + "bots": "Ботове", + "ping": "Пинг" + }, + "urbackup": { + "ok": "ОК", + "errored": "Грешки", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Рецепти", + "users": "Потребители", + "categories": "Категории", + "tags": "Тагове" + }, + "openmediavault": { + "downloading": "Изтегляне", + "total": "Общо", + "running": "Работи", + "stopped": "Спрян", + "passed": "Одобрени", + "failed": "Провалени" + }, + "openwrt": { + "uptime": "Ъптайм", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Изпратено", + "bytesRx": "Получени" + }, + "uptimerobot": { + "status": "Статус", + "uptime": "Ъптайм", + "lastDown": "Последно изключване", + "downDuration": "Продължителност на изключване", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "На пауза", + "notyetchecked": "Непроверено", + "up": "Up", + "seemsdown": "Изглежда изключено", + "down": "Down", + "unknown": "Неизв." + }, + "calendar": { + "inCinemas": "В кината", + "physicalRelease": "Physical release", + "digitalRelease": "Дигитално издания", + "noEventsToday": "Няма събития за днес!", + "noEventsFound": "Няма намерени събития" + }, + "romm": { + "platforms": "Платформи", + "totalRoms": "Игри", + "saves": "Saves", + "states": "States", + "screenshots": "Снимки на екрана", + "totalfilesize": "Общ размер" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Пощенски кутии", + "mails": "Mails", + "storage": "Хранилище" + }, + "netdata": { + "warnings": "Предупреждения", + "criticals": "Критични" + }, + "plantit": { + "events": "Събития", + "plants": "Растения", + "photos": "Снимки", + "species": "Видове" + }, + "gitea": { + "notifications": "Известия", + "issues": "Издания", + "pulls": "Заявки за сливане", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Сцени", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Размер на сцени", + "sceneDuration": "Продължителност на сцени", + "images": "Изображения", + "imageSize": "Размер на изображенията", + "galleries": "Галерии", + "performers": "Performers", + "studios": "Студиа", + "movies": "Филми", + "tags": "Тагове", + "oCount": "O Count" + }, + "tandoor": { + "users": "Потребители", + "recipes": "Рецепти", + "keywords": "Ключови думи" + }, + "homebox": { + "items": "Елементи", + "totalWithWarranty": "В гаранция", + "locations": "Места", + "labels": "Етикети", + "users": "Потребители", + "totalValue": "Обща стойност" + }, + "crowdsec": { + "alerts": "Предупреждения", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Свързан", + "enabled": "Активирано", + "disabled": "Деактивирано", + "total": "Общо" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Пинг", + "download": "Изтегляне", + "upload": "Качване" + }, + "stocks": { + "stocks": "Акции", + "loading": "Зареждане", + "open": "Отворен - пазар САЩ", + "closed": "Затворен - пазар САЩ", + "invalidConfiguration": "Невалидна конфигурация" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Ъптайм", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Тагове" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Информация", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Следващо напомняне", + "none": "Нищо" + }, + "vikunja": { + "projects": "Активни проекти", + "tasks7d": "Задачи тази седмица", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Име", + "address": "Адрес", + "last_seen": "Последно видян", + "status": "Статус", + "online": "Онлайн", + "offline": "Изключен" + }, + "beszel": { + "name": "Име", + "systems": "Системи", + "up": "Up", + "down": "Down", + "paused": "На пауза", + "pending": "Pending", + "status": "Статус", + "updated": "Обновени", + "cpu": "Процесор", + "memory": "Памет", + "disk": "Диск", + "network": "NET" + }, + "argocd": { + "apps": "Приложения", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Здрав", + "degraded": "Деградирани", + "progressing": "Progressing", + "missing": "Липсващи", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Зареждане" + }, + "gitlab": { + "groups": "Groups", + "issues": "Издания", + "merges": "Merge Requests", + "projects": "Проекти" + }, + "apcups": { + "status": "Статус", + "load": "Натоварване", + "bcharge": "Заряд на батерията", + "timeleft": "Оставащо Време" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Тагове" + }, + "slskd": { + "slskStatus": "Мрежа", + "connected": "Свързан", + "disconnected": "Не е свързан", + "updateStatus": "Update", + "update_yes": "Наличен", + "update_no": "Актуално", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Файлове" } } diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index 83fc95a4..07b1f611 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -1,93 +1,197 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mes", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Falta el tipus de widget: {{type}}", "api_error": "Error d'API", - "status": "Estat", "information": "Informació", + "status": "Estat", "url": "URL", "raw_error": "Error sense processar", "response_data": "Dades de resposta" }, "weather": { + "current": "Localització actual", "allow": "Feu clic per permetre", "updating": "Actualitzant", - "wait": "Si us plau, espereu", - "current": "Localització actual" + "wait": "Si us plau, espereu" }, "search": { - "placeholder": "Cercar…" - }, - "transmission": { - "seed": "Llavors", - "download": "Descàrrega", - "upload": "Pujada", - "leech": "Company" - }, - "sonarr": { - "wanted": "Volgut", - "queued": "En cua", - "series": "Sèries", - "queue": "Queue", - "unknown": "Unknown" - }, - "speedtest": { - "ping": "Ping", - "upload": "Pujada", - "download": "Descàrrega" + "placeholder": "Cerca…" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Lliure", "used": "Utilitzat", "load": "Càrrega", - "cpu": "CPU", - "mem": "MEM", "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "max": "Màx.", + "uptime": "ACTIU" + }, + "unifi": { + "users": "Usuaris", + "uptime": "Temps actiu", + "days": "Dies", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispositius", + "lan_devices": "Dispositius LAN", + "wlan_devices": "Dispositius WLAN", + "lan_users": "Usuaris LAN", + "wlan_users": "Usuaris WLAN", + "up": "ACTIU", + "down": "INACTIU", + "wait": "Si us plau, espereu", + "empty_data": "Estat del subsistema desconegut" }, "docker": { "rx": "Rebut", "tx": "Transmès", - "mem": "Memòria", - "cpu": "Processador", + "mem": "MEM", + "cpu": "CPU", + "running": "En execució", "offline": "Fora de línia", "error": "Error", "unknown": "Desconegut", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "healthy": "Saludable", + "starting": "Iniciant", + "unhealthy": "No saludable", + "not_found": "No trobat", + "exited": "Tancat", + "partial": "Parcial" + }, + "ping": { + "error": "Error", + "ping": "Latència", + "down": "Inactiu", + "up": "Actiu", + "not_available": "No Disponible" + }, + "siteMonitor": { + "http_status": "Estat HTTP", + "error": "Error", + "response": "Resposta", + "down": "Inactiu", + "up": "Actiu", + "not_available": "No Disponible" }, "emby": { "playing": "Reproduint", "transcoding": "Transcodificant", "bitrate": "Taxa de bits", "no_active": "Sense reproduccions actives", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "movies": "Pel·lícules", + "series": "Sèries", + "episodes": "Episodis", + "songs": "Cançons" + }, + "esphome": { + "offline": "Fora de línia", + "offline_alt": "Fora de línia", + "online": "En línia", + "total": "Total", + "unknown": "Desconegut" + }, + "evcc": { + "pv_power": "Producció", + "battery_soc": "Bateria", + "grid_power": "Xarxa", + "home_power": "Consum", + "charge_power": "Carregador", + "kilowatt": "kW" + }, + "flood": { + "download": "Descarregar", + "upload": "Pujada", + "leech": "Sangonera", + "seed": "Llavors" + }, + "freshrss": { + "subscriptions": "Subcripcions", + "unread": "Sense llegir" + }, + "fritzbox": { + "connectionStatus": "Estat", + "connectionStatusUnconfigured": "Sense configurar", + "connectionStatusConnecting": "Connectant", + "connectionStatusAuthenticating": "Autenticant", + "connectionStatusPendingDisconnect": "Desconnexió pendent", + "connectionStatusDisconnecting": "Desconnectant", + "connectionStatusDisconnected": "Desconnectat", + "connectionStatusConnected": "Connectat", + "uptime": "Temps actiu", + "maxDown": "Màx. Descàrrega", + "maxUp": "Màx. Càrrega", + "down": "Inactiu", + "up": "Actiu", + "received": "Rebuts", + "sent": "Enviats", + "externalIPAddress": "IP ext.", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Peticions actuals", + "requests_failed": "Peticions fallides" + }, + "changedetectionio": { + "totalObserved": "Total d'observats", + "diffsDetected": "Diferències detectades" + }, + "channelsdvrserver": { + "shows": "Sèries", + "recordings": "Gravacions", + "scheduled": "Programat", + "passes": "Aprovat" }, "tautulli": { "playing": "Reproduint", "transcoding": "Transcodificant", "bitrate": "Taxa de bits", - "no_active": "Sense transmissions actives", - "plex_connection_error": "Check Plex Connection" + "no_active": "Sense reproduccions actives", + "plex_connection_error": "Comprova la connexió de Plex" + }, + "omada": { + "connectedAp": "AP connectats", + "activeUser": "Dispositius actius", + "alerts": "Alertes", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Conmutadors connectats" }, "nzbget": { "rate": "Taxa", "remaining": "Restant", "downloaded": "Descarregat" }, + "plex": { + "streams": "Transmissions actives", + "albums": "Àlbums", + "movies": "Pel·lícules", + "tv": "Sèries" + }, "sabnzbd": { "rate": "Taxa", "queue": "Cua", @@ -96,21 +200,73 @@ "rutorrent": { "active": "Actiu", "upload": "Pujada", - "download": "Descàrrega" + "download": "Descarregar" + }, + "transmission": { + "download": "Descarregar", + "upload": "Pujada", + "leech": "Sangonera", + "seed": "Llavors" + }, + "qbittorrent": { + "download": "Descarregar", + "upload": "Pujada", + "leech": "Sangonera", + "seed": "Llavors" + }, + "qnap": { + "cpuUsage": "Ús de CPU", + "memUsage": "Ús de Memòria", + "systemTempC": "Temp. Sistema", + "poolUsage": "Ús de les Reserves", + "volumeUsage": "Ús dels Volums", + "invalid": "No vàlid" + }, + "deluge": { + "download": "Descarregar", + "upload": "Pujada", + "leech": "Sangonera", + "seed": "Llavors" + }, + "develancacheui": { + "cachehitbytes": "Bytes trobats a la memòria cau", + "cachemissbytes": "Bytes no trobats a la memòria cau" + }, + "downloadstation": { + "download": "Descarregar", + "upload": "Pujada", + "leech": "Sangonera", + "seed": "Llavors" + }, + "sonarr": { + "wanted": "Volgut", + "queued": "En cua", + "series": "Sèries", + "queue": "Cua", + "unknown": "Desconegut" }, "radarr": { "wanted": "Volgut", + "missing": "Falten", "queued": "En cua", "movies": "Pel·lícules", - "missing": "Faltant", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Cua", + "unknown": "Desconegut" + }, + "lidarr": { + "wanted": "Volgut", + "queued": "En cua", + "artists": "Artistes" }, "readarr": { "wanted": "Volgut", "queued": "En cua", "books": "Llibres" }, + "bazarr": { + "missingEpisodes": "Episodis que falten", + "missingMovies": "Pel·lícules que falten" + }, "ombi": { "pending": "Pendent", "approved": "Aprovat", @@ -123,30 +279,94 @@ }, "overseerr": { "pending": "Pendent", + "processing": "Processant", "approved": "Aprovat", - "available": "Disponible", - "processing": "Processant" + "available": "Disponible" + }, + "netalertx": { + "total": "Total", + "connected": "Connectat", + "new_devices": "Nous dispositius", + "down_alerts": "Alertes de caigudes" }, "pihole": { "queries": "Consultes", "blocked": "Bloquejat", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Bloquejat %", + "gravity": "Gravetat" + }, + "adguard": { + "queries": "Consultes", + "blocked": "Bloquejat", + "filtered": "Filtrat", + "latency": "Latència" + }, + "speedtest": { + "upload": "Pujada", + "download": "Descarregar", + "ping": "Latència" }, "portainer": { - "running": "Executant", + "running": "En execució", "stopped": "Aturat", "total": "Total" }, + "suwayomi": { + "download": "Descarregat", + "nondownload": "No descarregat", + "read": "Llegit", + "unread": "Sense llegir", + "downloadedread": "Descarregat i llegit", + "downloadedunread": "Descarregat i per llegir", + "nondownloadedread": "No descarregat i llegit", + "nondownloadedunread": "No descarregat i per llegir" + }, + "tailscale": { + "address": "Adreça", + "expires": "Caduca", + "never": "Mai", + "last_seen": "Vist per darrer cop", + "now": "Ara", + "years": "{{number}}a", + "weeks": "{{number}}set", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "Fa {{value}}" + }, + "technitium": { + "totalQueries": "Consultes", + "totalNoError": "Èxits", + "totalServerFailure": "Fallades", + "totalNxDomain": "Dominis NX", + "totalRefused": "Rebutjat", + "totalAuthoritative": "Autoritatiu", + "totalRecursive": "Recursiu", + "totalCached": "A la memòria cau", + "totalBlocked": "Bloquejat", + "totalDropped": "Abandonat", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Cua", + "processed": "Processat", + "errored": "Error", + "saved": "Estalviat" + }, "traefik": { "routers": "Encaminadors", "services": "Serveis", - "middleware": "Middleware" + "middleware": "Intermediari" + }, + "navidrome": { + "nothing_streaming": "Sense reproduccions actives", + "please_wait": "Espereu si us plau" }, "npm": { - "total": "Total", "enabled": "Activat", - "disabled": "Desactivat" + "disabled": "Desactivat", + "total": "Total" }, "coinmarketcap": { "configure": "Configura una o més criptomonedes per fer el seguiment", @@ -169,39 +389,34 @@ }, "jackett": { "configured": "Configurat", - "errored": "Amb errors" + "errored": "Error" }, - "bazarr": { - "missingEpisodes": "Episodis que falten", - "missingMovies": "Pel·lícules que falten" - }, - "lidarr": { - "wanted": "Volgut", - "queued": "En cua", - "artists": "Artists" - }, - "adguard": { - "queries": "Consultes", - "blocked": "Bloquejat", - "filtered": "Filtrat", - "latency": "Latència" - }, - "qbittorrent": { - "download": "Descàrrega", - "upload": "Pujada", - "leech": "Clients", - "seed": "Llavors" + "strelaysrv": { + "numActiveSessions": "Sessions", + "numConnections": "Connexions", + "dataRelayed": "Transmès", + "transferRate": "Taxa" }, "mastodon": { "user_count": "Usuaris", "status_count": "Publicacions", "domain_count": "Dominis" }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connexions", - "dataRelayed": "Transmès", - "transferRate": "Velocitat" + "medusa": { + "wanted": "Volgut", + "queued": "En cua", + "series": "Sèries" + }, + "minecraft": { + "players": "Jugadors", + "version": "Versió", + "status": "Estat", + "up": "En línia", + "down": "Fora de línia" + }, + "miniflux": { + "read": "Llegit", + "unread": "Sense llegir" }, "authentik": { "users": "Usuaris", @@ -209,56 +424,41 @@ "failedLoginsLast24H": "Errors d'inici de sessió (24h)" }, "proxmox": { - "vms": "VMs", - "mem": "Memòria", - "cpu": "Processador", - "lxc": "LXC" - }, - "unifi": { - "users": "Usuaris", - "uptime": "Temps actiu", - "days": "Dies", - "wan": "WAN", - "lan_users": "Usuaris LAN", - "wlan_users": "Usuaris WLAN", - "up": "ACTIU", - "down": "INACTIU", - "wait": "Si us plau, espereu", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Dispositius", - "lan_devices": "Dispositius LAN", - "wlan_devices": "Dispositius WLAN", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Transmissions actives", - "movies": "Pel·lícules", - "tv": "Sèries", - "albums": "Àlbums" + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" }, "glances": { - "cpu": "Processador", + "cpu": "CPU", + "load": "Càrrega", "wait": "Si us plau, espereu", "temp": "TEMP", - "uptime": "UP", + "_temp": "Temp", + "warn": "Avís", + "uptime": "ACTIU", + "total": "Total", + "free": "Lliure", + "used": "Utilitzat", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crític", + "read": "Llegit", + "write": "Escriptura", + "gpu": "GPU", + "mem": "Mem", + "swap": "Intercanvi" }, - "changedetectionio": { - "totalObserved": "Total d'observats", - "diffsDetected": "Diferències detectades" + "quicklaunch": { + "bookmark": "Marcador", + "service": "Servei", + "search": "Cerca", + "custom": "Personalitzat", + "visit": "Visita", + "url": "URL", + "searchsuggestion": "Suggeriment" }, "wmo": { - "66-day": "Pluja gelada", - "95-day": "Tempesta", - "95-night": "Tempesta", - "96-day": "Tempesta amb calamarsa", "0-day": "Assolellat", "0-night": "Cel clar", "1-day": "Majorment assolellat", @@ -274,12 +474,11 @@ "51-day": "Ruixats lleugers", "51-night": "Ruixats lleugers", "53-day": "Ruixat", - "53-night": "Ruxiat", + "53-night": "Ruixat", "55-day": "Ruixat intens", "55-night": "Ruixat intens", "56-day": "Lleuger ruixat gelat", "56-night": "Lleuger ruixat gelat", - "65-night": "Pluja intensa", "57-day": "Ruixat gelat", "57-night": "Ruixat gelat", "61-day": "Pluja lleugera", @@ -287,6 +486,8 @@ "63-day": "Pluja", "63-night": "Pluja", "65-day": "Pluja intensa", + "65-night": "Pluja intensa", + "66-day": "Pluja gelada", "66-night": "Pluja gelada", "67-day": "Pluja gelada", "67-night": "Pluja gelada", @@ -308,28 +509,38 @@ "85-night": "Xàfecs de neu", "86-day": "Xàfecs de neu", "86-night": "Xàfecs de neu", + "95-day": "Tempesta", + "95-night": "Tempesta", + "96-day": "Tempesta amb calamarsa", "96-night": "Tempesta amb calamarsa", "99-day": "Tempesta amb calamarsa", "99-night": "Tempesta amb calamarsa" }, - "quicklaunch": { - "bookmark": "Marcador", - "service": "Servei", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, "homebridge": { "available_update": "Sistema", "updates": "Actualitzacions", "update_available": "Actualització disponible", "up_to_date": "Actualitzat", - "child_bridges": "Child Bridges", + "child_bridges": "Ponts fills", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "Actiu", + "pending": "Pendent", + "down": "Inactiu" + }, + "healthchecks": { + "new": "Nou", + "up": "Actiu", + "grace": "En Període de gràcia", + "down": "Inactiu", + "paused": "En pausa", + "status": "Estat", + "last_ping": "Últim ping", + "never": "Sense pings" + }, + "watchtower": { + "containers_scanned": "Escanejat", + "containers_updated": "Actualitzat", + "containers_failed": "Error" }, "autobrr": { "approvedPushes": "Aprovat", @@ -337,11 +548,6 @@ "filters": "Filtres", "indexers": "Indexadors" }, - "watchtower": { - "containers_scanned": "Escanejat", - "containers_updated": "Actualitzat", - "containers_failed": "Error" - }, "tubearchivist": { "downloads": "Cua", "videos": "Vídeos", @@ -351,12 +557,7 @@ "truenas": { "load": "Càrrega del sistema", "uptime": "Temps actiu", - "alerts": "Alertes", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Cap reproducció activa", - "please_wait": "Espereu si us plau" + "alerts": "Alertes" }, "pyload": { "speed": "Velocitat", @@ -371,14 +572,18 @@ }, "hdhomerun": { "channels": "Canals", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Sintonitzadors", + "channelNumber": "Canal", + "channelNetwork": "Xarxa", + "signalStrength": "Intensitat", + "signalQuality": "Qualitat", + "symbolQuality": "Qualitat", + "networkRate": "Taxa de bits", + "clientIP": "Client" }, "scrutiny": { - "passed": "Aprobat", + "passed": "Aprovat", "failed": "Error", "unknown": "Desconegut" }, @@ -386,284 +591,456 @@ "inbox": "Safata d'entrada", "total": "Total" }, - "deluge": { - "seed": "Llavor", - "download": "Descàrrega", - "upload": "Pujada", - "leech": "Company" - }, - "flood": { - "download": "Descarregar", - "upload": "Pujada", - "leech": "Company", - "seed": "Llavor" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Càrrega de la bateria", + "ups_load": "Càrrega del SAI", + "ups_status": "Estat del SAI", + "online": "En línia", + "on_battery": "En Bateria", + "low_battery": "Bateria Baixa" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "wait": "Espereu si us plau", + "no_devices": "No s'han rebut dades del Dispositiu" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" + "cpuLoad": "Càrrega de CPU", + "memoryUsed": "Memoria en ús", + "uptime": "Temps actiu", + "numberOfLeases": "IPs assignades" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Tots els streams", + "streams_active": "Transmissions actives", + "streams_xepg": "Canals XEPG" + }, + "opendtu": { + "yieldDay": "Avui", + "absolutePower": "Potència", + "relativePower": "Potència %", + "limit": "Límit" }, "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" + "cpu": "Càrrega de CPU", + "memory": "Memòria activa", + "wanUpload": "Pujada WAN", + "wanDownload": "Baixada WAN" }, "moonraker": { - "printer_state": "Printer State", - "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "printer_state": "Estat de l'impressora", + "print_status": "Estat de l'impressió", + "print_progress": "Progrés", + "layers": "Capes" }, "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" + "printer_state": "Estat", + "temp_tool": "Temperatura capçal", + "temp_bed": "Temperatura llit", + "job_completion": "Finalització" }, "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" + "origin_ip": "IP Origen", + "status": "Estat" + }, + "pfsense": { + "load": "Càrrega mitjana", + "memory": "Ús Memòria", + "wanStatus": "Estat WAN", + "up": "Actiu", + "down": "Inactiu", + "temp": "Temp", + "disk": "Ús Disc", + "wanIP": "IP WAN" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", + "failed_tasks_24h": "Tasques fallides (24h)", "cpu_usage": "CPU", - "memory_usage": "Memory" + "memory_usage": "Memòria" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "Usuaris", + "photos": "Fotos", + "videos": "Vídeos", + "storage": "Emmagatzematge" }, "uptimekuma": { - "m": "m", - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident" + "up": "Actius", + "down": "Caiguts", + "uptime": "Temps actiu", + "incident": "Incidència", + "m": "m" + }, + "atsumeru": { + "series": "Sèries", + "archives": "Arxius", + "chapters": "Capítols", + "categories": "Categories" }, "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" + "libraries": "Biblioteques", + "series": "Sèries", + "books": "Llibres" }, "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "days": "Dies", + "uptime": "Temps actiu", + "volumeAvailable": "Disponible" + }, + "mylar": { + "series": "Sèries", + "issues": "Problemes", + "wanted": "Volgut" + }, + "photoprism": { + "albums": "Àlbums", + "photos": "Fotos", + "videos": "Vídeos", + "people": "Gent" }, "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" + "queue": "Cua", + "processing": "Processant", + "processed": "Processat", + "time": "Temps" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" }, "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "dashboards": "Taulells", + "datasources": "Orígens de dades", + "totalalerts": "Alertes Totals", + "alertstriggered": "Alertes disparades" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "Càrrega de CPU", + "memoryusage": "Ús Memòria", + "freespace": "Espai lliure", + "activeusers": "Usuaris actius", + "numfiles": "Fitxers", + "numshares": "Elements compartits" }, "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "status": "Estat", + "size": "Mida", + "lastrun": "Darrera execució", + "nextrun": "Següent execució", + "failed": "Error" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "active_workers": "Treballadors actius", + "total_workers": "Treballadors Totals", + "records_total": "Llargada de la Cua" }, "pterodactyl": { - "servers": "Servers", + "servers": "Servidors", "nodes": "Nodes" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Objectius actius", + "targets_down": "Objectius caiguts", + "targets_total": "Objectius Totals" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Actius", + "down": "Caiguts", + "uptime": "Temps actiu" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "Avui", + "gross_percent_1y": "Un any", + "gross_percent_max": "Sempre" }, "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcasts": "Pòdcasts", + "books": "Llibres", + "podcastsDuration": "Durada", + "booksDuration": "Durada" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "people_home": "Gent a casa", + "lights_on": "Llums enceses", + "switches_on": "Endolls activats" }, "whatsupdocker": { "monitoring": "Supervisió", "updates": "Actualitzacions" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Llibres", + "authors": "Autors", + "categories": "Categories", + "series": "Sèries" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Cua", + "downloadBytesRemaining": "Restant", + "downloadTotalBytes": "Mida", + "downloadSpeed": "Velocitat" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Sèries", + "totalFiles": "Fitxers" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Resultat", + "status": "Estat", + "buildId": "Id de compilació", + "succeeded": "Amb èxit", + "notStarted": "No Iniciat", + "failed": "Error", + "canceled": "Cancel·lat", + "inProgress": "En curs", + "totalPrs": "PRs Totals", + "myPrs": "Les meves PRs", + "approved": "Aprovat" + }, + "gamedig": { + "status": "Estat", + "online": "En línia", + "offline": "Fora de línia", + "name": "Nom", + "map": "Mapa", + "currentPlayers": "Jugadors actuals", + "players": "Jugadors", + "maxPlayers": "Màxim de jugadors", + "bots": "Bots", + "ping": "Latència" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Obsolet", + "totalUsed": "Emmagatzematge utilitzat" + }, + "mealie": { + "recipes": "Receptes", + "users": "Usuaris", + "categories": "Categories", + "tags": "Etiquetes" + }, + "openmediavault": { + "downloading": "Descarregant", + "total": "Total", + "running": "En execució", + "stopped": "Aturat", + "passed": "Aprovat", + "failed": "Error" + }, + "openwrt": { + "uptime": "Temps actiu", + "cpuLoad": "Càrrega mitjana de CPU (5min)", + "up": "Actiu", + "down": "Inactiu", + "bytesTx": "Enviat", + "bytesRx": "Rebuts" + }, + "uptimerobot": { + "status": "Estat", + "uptime": "Temps actiu", + "lastDown": "Darrera Inactivitat", + "downDuration": "Duració d'Inactivitat", + "sitesUp": "Actius", + "sitesDown": "Caiguts", + "paused": "En pausa", + "notyetchecked": "Sense verificar", + "up": "Actiu", + "seemsdown": "Sembla caigut", + "down": "Inactiu", + "unknown": "Desconegut" + }, + "calendar": { + "inCinemas": "En cines", + "physicalRelease": "Estrena física", + "digitalRelease": "Estrena digital", + "noEventsToday": "Cap esdeveniment per avui!", + "noEventsFound": "No s'han trobat esdeveniments" + }, + "romm": { + "platforms": "Plataformes", + "totalRoms": "Jocs", + "saves": "Partides desades", + "states": "Estats", + "screenshots": "Captures de pantalla", + "totalfilesize": "Tamany total" + }, + "mailcow": { + "domains": "Dominis", + "mailboxes": "Bústies", + "mails": "Correus", + "storage": "Emmagatzematge" + }, + "netdata": { + "warnings": "Avisos", + "criticals": "Crítics" + }, + "plantit": { + "events": "Esdeveniments", + "plants": "Plantes", + "photos": "Fotos", + "species": "Espècies" + }, + "gitea": { + "notifications": "Notificacions", + "issues": "Problemes", + "pulls": "Sol·licitud de Canvis", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Escenes", + "scenesPlayed": "Escenes reproduïdes", + "playCount": "Total reproduccions", + "playDuration": "Temps visionat", + "sceneSize": "Tamany d'escenes", + "sceneDuration": "Duració Escenes", + "images": "Imatges", + "imageSize": "Tamany d'imatges", + "galleries": "Biblioteques", + "performers": "Intèrprets", + "studios": "Estudis", + "movies": "Pel·lícules", + "tags": "Etiquetes", + "oCount": "O Count" + }, + "tandoor": { + "users": "Usuaris", + "recipes": "Receptes", + "keywords": "Paraules claus" + }, + "homebox": { + "items": "Elements", + "totalWithWarranty": "Amb Garantia", + "locations": "Ubicacions", + "labels": "Etiquetes", + "users": "Usuaris", + "totalValue": "Valor total" + }, + "crowdsec": { + "alerts": "Alertes", + "bans": "Prohibicions" + }, + "wgeasy": { + "connected": "Connectat", + "enabled": "Activat", + "disabled": "Desactivat", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Intermediat", + "auth": "Amb autentificació", + "outdated": "Obsolet", + "banned": "Bloquejat" + }, + "myspeed": { + "ping": "Latència", + "download": "Descarregar", + "upload": "Pujada" + }, + "stocks": { + "stocks": "Accions", + "loading": "Carregant", + "open": "Obert - Mercat EEUU", + "closed": "Tancat - Mercat EEUU", + "invalidConfiguration": "Configuració no vàlida" + }, + "frigate": { + "cameras": "Càmeres", + "uptime": "Temps actiu", + "version": "Versió" + }, + "linkwarden": { + "links": "Enllaços", + "collections": "Col·leccions", + "tags": "Etiquetes" + }, + "zabbix": { + "unclassified": "No classificat", + "information": "Informació", + "warning": "Avís", + "average": "Mitjana", + "high": "Alt", + "disaster": "Desastre" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Constàncies de manteniment", + "reminders": "Recordatoris", + "nextReminder": "Proper recordatori", + "none": "Cap" + }, + "vikunja": { + "projects": "Projectes actius", + "tasks7d": "Tasques a completar aquesta setmana", + "tasksOverdue": "Tasques vençudes", + "tasksInProgress": "Tasques en marxa" + }, + "headscale": { + "name": "Nom", + "address": "Adreça", + "last_seen": "Vist per darrer cop", + "status": "Estat", + "online": "En línia", + "offline": "Fora de línia" + }, + "beszel": { + "name": "Nom", + "systems": "Sistemes", + "up": "Actiu", + "down": "Inactiu", + "paused": "En pausa", + "pending": "Pendent", + "status": "Estat", + "updated": "Actualitzat", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disc", + "network": "XARXA" + }, + "argocd": { + "apps": "Apps", + "synced": "Sincronitzats", + "outOfSync": "Dessincronitzats", + "healthy": "Saludable", + "degraded": "Degradats", + "progressing": "Progressant", + "missing": "Falten", + "suspended": "Suspesos" + }, + "spoolman": { + "loading": "Carregant" + }, + "gitlab": { + "groups": "Grups", + "issues": "Problemes", + "merges": "Merge Requests", + "projects": "Projectes" + }, + "apcups": { + "status": "Estat", + "load": "Càrrega", + "bcharge": "Càrrega de la bateria", + "timeleft": "Temps restant" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Etiquetes" + }, + "slskd": { + "slskStatus": "Xarxa", + "connected": "Connectat", + "disconnected": "Desconnectat", + "updateStatus": "Update", + "update_yes": "Disponible", + "update_no": "Actualitzat", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Fitxers" } } diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index ed5dc276..e9a8061d 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -1,22 +1,31 @@ { - "tubearchivist": { - "videos": "Videa", - "channels": "Kanály", - "playlists": "Playlisty", - "downloads": "Fronta" - }, - "truenas": { - "load": "Zatížení systému", - "uptime": "Doba spuštění", - "alerts": "Upozornění", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "měs.", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Chybí typ widgetu: {{type}}", "api_error": "Chyba API", - "status": "Stav", "information": "Informace", - "url": "URL", + "status": "Stav", + "url": "Odkaz", "raw_error": "Nevyřešená chyba", "response_data": "Data odezvy" }, @@ -31,22 +40,18 @@ }, "resources": { "cpu": "CPU", + "mem": "RAM", "total": "Celkem", "free": "Volné", "used": "Využité", "load": "Zatížení", - "mem": "RAM", + "temp": "TEPLOTA", "max": "Max.", - "uptime": "BĚŽÍ", - "months": "měs.", - "days": "d", - "hours": "h", - "minutes": "m", - "temp": "TEPLOTA" + "uptime": "BĚŽÍ" }, "unifi": { "users": "Uživatelé", - "uptime": "Doba provozu", + "uptime": "Doba spuštění", "days": "dní", "wan": "WAN", "lan": "LAN", @@ -56,7 +61,7 @@ "wlan_devices": "Zařízení WLAN", "lan_users": "Uživatelé LAN", "wlan_users": "Uživatelé WLAN", - "up": "FUNKČNÍ", + "up": "BĚŽÍ", "down": "NEFUNKČNÍ", "wait": "Počkejte prosím", "empty_data": "Stav podsystému neznámý" @@ -66,16 +71,31 @@ "tx": "TX", "mem": "RAM", "cpu": "CPU", + "running": "Běží", "offline": "Offline", "error": "Chyba", "unknown": "Neznámý", - "running": "Běží", + "healthy": "Zdravý", "starting": "Spouští se", "unhealthy": "Nezdravý", "not_found": "Nenalezen", "exited": "Ukončen", - "partial": "Částečný", - "healthy": "Zdravý" + "partial": "Částečný" + }, + "ping": { + "error": "Chyba", + "ping": "Odezva", + "down": "Down", + "up": "Up", + "not_available": "Není k dispozici" + }, + "siteMonitor": { + "http_status": "Stav HTTP", + "error": "Chyba", + "response": "Odpověď", + "down": "Down", + "up": "Up", + "not_available": "Není k dispozici" }, "emby": { "playing": "Přehrává", @@ -87,16 +107,79 @@ "episodes": "Epizody", "songs": "Skladby" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Celkem", + "unknown": "Neznámý" + }, + "evcc": { + "pv_power": "Produkce", + "battery_soc": "Baterie", + "grid_power": "Mřížka", + "home_power": "Spotřeba", + "charge_power": "Nabíječka", + "kilowatt": "kW" + }, + "flood": { + "download": "Stahování", + "upload": "Nahrávání", + "leech": "Leechované", + "seed": "Seedované" + }, + "freshrss": { + "subscriptions": "Odběry", + "unread": "Nepřečteno" + }, + "fritzbox": { + "connectionStatus": "Stav", + "connectionStatusUnconfigured": "Nenastaveno", + "connectionStatusConnecting": "Připojuji", + "connectionStatusAuthenticating": "Ověřování", + "connectionStatusPendingDisconnect": "Čeká na odpojení", + "connectionStatusDisconnecting": "Odpojování", + "connectionStatusDisconnected": "Odpojeno", + "connectionStatusConnected": "", + "uptime": "Doba spuštění", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Přijaté", + "sent": "Odeslané", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Odesílání dat", + "requests": "Aktuální požadavky", + "requests_failed": "Selhavší požadavky" + }, "changedetectionio": { "totalObserved": "Celkem zjištěno", "diffsDetected": "Rozdíly detekovány" }, + "channelsdvrserver": { + "shows": "Pořady", + "recordings": "Nahrávky", + "scheduled": "Naplánováno", + "passes": "Průchody" + }, "tautulli": { "playing": "Přehrává", "transcoding": "Překódovávání", "bitrate": "Přenosová rychlost", "no_active": "Žádný aktivní stream", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Zkontrolujte připojení Plexu" + }, + "omada": { + "connectedAp": "Připojené APs", + "activeUser": "Aktivní zařízení", + "alerts": "Upozornění", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Připojené přepínače" }, "nzbget": { "rate": "Rychlost", @@ -105,9 +188,9 @@ }, "plex": { "streams": "Aktivní streamy", + "albums": "Alba", "movies": "Filmy", - "tv": "Seriály", - "albums": "Alba" + "tv": "Seriály" }, "sabnzbd": { "rate": "Rychlost", @@ -131,25 +214,49 @@ "leech": "Leechované", "seed": "Seedované" }, + "qnap": { + "cpuUsage": "Využití procesoru", + "memUsage": "Využití paměti", + "systemTempC": "Teplota systému", + "poolUsage": "Využití fondu", + "volumeUsage": "Využití svazku", + "invalid": "Neplatné" + }, + "deluge": { + "download": "Stahování", + "upload": "Nahrávání", + "leech": "Leechované", + "seed": "Seedované" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Stahování", + "upload": "Nahrávání", + "leech": "Leechované", + "seed": "Seedované" + }, "sonarr": { "wanted": "Hledané", "queued": "Ve frontě", "series": "Seriály", - "unknown": "Unknown", - "queue": "Queue" + "queue": "Fronta", + "unknown": "Neznámý" }, "radarr": { "wanted": "Hledané", "missing": "Chybějící", "queued": "Ve frontě", "movies": "Filmy", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Fronta", + "unknown": "Neznámý" }, "lidarr": { "wanted": "Hledané", "queued": "Ve frontě", - "artists": "Artists" + "artists": "Interpreti" }, "readarr": { "wanted": "Hledané", @@ -172,15 +279,21 @@ }, "overseerr": { "pending": "Čeká", + "processing": "Zpracovávání", "approved": "Schváleno", - "available": "Dostupné", - "processing": "Zpracovávání" + "available": "Dostupné" + }, + "netalertx": { + "total": "Celkem", + "connected": "", + "new_devices": "", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "Dotazy", "blocked": "Blokováno", - "gravity": "Gravity", - "blocked_percent": "Blokováno" + "blocked_percent": "Blokováno", + "gravity": "Gravity" }, "adguard": { "queries": "Dotazy", @@ -191,22 +304,69 @@ "speedtest": { "upload": "Nahrávání", "download": "Stahování", - "ping": "Ping" + "ping": "Odezva" }, "portainer": { - "running": "Spuštěno", + "running": "Běží", "stopped": "Zastaveno", "total": "Celkem" }, + "suwayomi": { + "download": "Staženo", + "nondownload": "Non-Downloaded", + "read": "Přečteno", + "unread": "Nepřečteno", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Adresa", + "expires": "Vyprší", + "never": "Nikdy", + "last_seen": "Naposledy viděno", + "now": "Nyní", + "years": "{{number}}r", + "weeks": "{{number}}t", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "Před {{value}}" + }, + "technitium": { + "totalQueries": "Dotazy", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blokováno", + "totalDropped": "Dropped", + "totalClients": "Klienti" + }, + "tdarr": { + "queue": "Fronta", + "processed": "Zpracováno", + "errored": "Chybné", + "saved": "Uložené" + }, "traefik": { "routers": "Routery", "services": "Služby", "middleware": "Prostředník" }, + "navidrome": { + "nothing_streaming": "Žádný aktivní stream", + "please_wait": "Čekejte prosím" + }, "npm": { "enabled": "Povoleno", "disabled": "Zakázáno", - "total": "Celkově" + "total": "Celkem" }, "coinmarketcap": { "configure": "Nakonfigurujte alespoň jednu crypto měnu ke sledování", @@ -215,64 +375,6 @@ "7days": "7 Dní", "30days": "30 Dní" }, - "wmo": { - "1-night": "Převážně jasno", - "2-day": "Polojasno", - "0-day": "Slunečno", - "0-night": "Jasno", - "1-day": "Převážně slunečno", - "2-night": "Polojasno", - "3-day": "Oblačno", - "3-night": "Oblačno", - "45-day": "Mlha", - "45-night": "Mlha", - "48-day": "Mlha", - "48-night": "Mlha", - "51-day": "Lehké mrholení", - "53-day": "Mrholení", - "53-night": "Mrholení", - "55-day": "Silné mrholení", - "55-night": "Silné mrholení", - "56-day": "Mírné mrznoucí mrholení", - "56-night": "Mírné mrznoucí mrholení", - "57-day": "Mrznoucí mrholení", - "57-night": "Mrznoucí mrholení", - "61-day": "Slabý déšť", - "61-night": "Slabý déšť", - "51-night": "Lehké mrholení", - "63-day": "Déšť", - "63-night": "Déšť", - "65-day": "Silný déšť", - "65-night": "Silný déšť", - "66-day": "Mrznoucí déšť", - "66-night": "Mrznoucí déšť", - "67-day": "Mrznoucí déšť", - "67-night": "Mrznoucí déšť", - "71-day": "Slabé sněžení", - "73-night": "Sněžení", - "75-day": "Silné sněžení", - "75-night": "Silné sněžení", - "77-day": "Sněhová zrna", - "71-night": "Slabé sněžení", - "73-day": "Sněžení", - "77-night": "Sněhová zrna", - "80-day": "Lehké přeháňky", - "80-night": "Lehké přeháňky", - "81-day": "Přeháňky", - "81-night": "Přeháňky", - "82-day": "Silné přeháňky", - "82-night": "Silné přeháňky", - "85-day": "Déšť se sněhem", - "85-night": "Déšť se sněhem", - "86-day": "Déšť se sněhem", - "86-night": "Déšť se sněhem", - "95-day": "Bouřka", - "95-night": "Bouřka", - "96-day": "Bouřka s krupobitím", - "96-night": "Bouřka s krupobitím", - "99-day": "Bouřka s krupobitím", - "99-night": "Bouřka s krupobitím" - }, "gotify": { "apps": "Aplikace", "clients": "Klienti", @@ -293,13 +395,29 @@ "numActiveSessions": "Sezení", "numConnections": "Připojení", "dataRelayed": "Přenášení", - "transferRate": "Tempo" + "transferRate": "Rychlost" }, "mastodon": { "user_count": "Uživatelé", "status_count": "Příspěvky", "domain_count": "Domény" }, + "medusa": { + "wanted": "Hledané", + "queued": "Ve frontě", + "series": "Seriály" + }, + "minecraft": { + "players": "Hráči", + "version": "Verze", + "status": "Stav", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Přečteno", + "unread": "Nepřečteno" + }, "authentik": { "users": "Uživatelé", "loginsLast24H": "Příhlášení (24h)", @@ -313,16 +431,23 @@ }, "glances": { "cpu": "CPU", - "wait": "Prosím počkejte", + "load": "Zatížení", + "wait": "Počkejte prosím", "temp": "TEPLOTA", + "_temp": "Temp", + "warn": "Varováni", "uptime": "BĚŽÍ", + "total": "Celkem", + "free": "Volné", + "used": "Využité", "days": "d", "hours": "h", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load", - "warn": "Warn" + "crit": "Crit", + "read": "Přečteno", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Záložka", @@ -330,18 +455,87 @@ "search": "Hledat", "custom": "Vlastní", "visit": "Navštivte", - "url": "URL" + "url": "Odkaz", + "searchsuggestion": "Suggestion" + }, + "wmo": { + "0-day": "Slunečno", + "0-night": "Jasno", + "1-day": "Převážně slunečno", + "1-night": "Převážně jasno", + "2-day": "Polojasno", + "2-night": "Polojasno", + "3-day": "Oblačno", + "3-night": "Oblačno", + "45-day": "Mlha", + "45-night": "Mlha", + "48-day": "Mlha", + "48-night": "Mlha", + "51-day": "Lehké mrholení", + "51-night": "Lehké mrholení", + "53-day": "Mrholení", + "53-night": "Mrholení", + "55-day": "Silné mrholení", + "55-night": "Silné mrholení", + "56-day": "Mírné mrznoucí mrholení", + "56-night": "Mírné mrznoucí mrholení", + "57-day": "Mrznoucí mrholení", + "57-night": "Mrznoucí mrholení", + "61-day": "Slabý déšť", + "61-night": "Slabý déšť", + "63-day": "Déšť", + "63-night": "Déšť", + "65-day": "Silný déšť", + "65-night": "Silný déšť", + "66-day": "Mrznoucí déšť", + "66-night": "Mrznoucí déšť", + "67-day": "Mrznoucí déšť", + "67-night": "Mrznoucí déšť", + "71-day": "Slabé sněžení", + "71-night": "Slabé sněžení", + "73-day": "Sněžení", + "73-night": "Sněžení", + "75-day": "Silné sněžení", + "75-night": "Silné sněžení", + "77-day": "Sněhová zrna", + "77-night": "Sněhová zrna", + "80-day": "Lehké přeháňky", + "80-night": "Lehké přeháňky", + "81-day": "Přeháňky", + "81-night": "Přeháňky", + "82-day": "Silné přeháňky", + "82-night": "Silné přeháňky", + "85-day": "Déšť se sněhem", + "85-night": "Déšť se sněhem", + "86-day": "Déšť se sněhem", + "86-night": "Déšť se sněhem", + "95-day": "Bouřka", + "95-night": "Bouřka", + "96-day": "Bouřka s krupobitím", + "96-night": "Bouřka s krupobitím", + "99-day": "Bouřka s krupobitím", + "99-night": "Bouřka s krupobitím" }, "homebridge": { - "update_available": "Dostupná", - "up_to_date": "Žádné", "available_update": "Systém", "updates": "Aktualizace", + "update_available": "Dostupná", + "up_to_date": "Žádné", "child_bridges": "Podřízené můstky", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Zapnutý", - "pending": "Čeká se", - "down": "Vypnutý" + "up": "Up", + "pending": "Čeká", + "down": "Down" + }, + "healthchecks": { + "new": "Nové", + "up": "Up", + "grace": "V období odkladu", + "down": "Down", + "paused": "Pozastaveno", + "status": "Stav", + "last_ping": "Poslední ping", + "never": "Zatím žádné pingy" }, "watchtower": { "containers_scanned": "Prohledáno", @@ -354,9 +548,16 @@ "filters": "Filtry", "indexers": "Indexery" }, - "navidrome": { - "nothing_streaming": "Žádné aktivní streamy", - "please_wait": "Čekejte prosím" + "tubearchivist": { + "downloads": "Fronta", + "videos": "Videa", + "channels": "Kanály", + "playlists": "Playlisty" + }, + "truenas": { + "load": "Zatížení systému", + "uptime": "Doba spuštění", + "alerts": "Upozornění" }, "pyload": { "speed": "Rychlost", @@ -371,68 +572,41 @@ }, "hdhomerun": { "channels": "Kanály", - "hd": "HD" - }, - "ping": { - "error": "Chyba", - "ping": "Odezva" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Přenosová rychlost", + "clientIP": "Client" }, "scrutiny": { "passed": "Úspěšné", - "failed": "Neúspěšné", - "unknown": "Neznámé" + "failed": "Selhalo", + "unknown": "Neznámý" }, "paperlessngx": { "inbox": "Doručená pošta", "total": "Celkem" }, - "deluge": { - "upload": "Nahrávání", - "leech": "Leechované", - "seed": "Seedované", - "download": "Stahování" - }, - "flood": { - "download": "Stahování", - "upload": "Nahrávání", - "leech": "Leechované", - "seed": "Seedované" - }, - "tdarr": { - "queue": "Fronta", - "processed": "Zpracováno", - "errored": "Chybné", - "saved": "Uložené" - }, - "miniflux": { - "read": "Přečteno", - "unread": "Nepřečteno" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { - "wait": "Počkejte prosím", + "wait": "Čekejte prosím", "no_devices": "Žádná přijatá data zařízení" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Připojené APs", - "activeUser": "Aktivní zařízení", - "alerts": "Upozornění", - "connectedGateway": "Připojené brány", - "connectedSwitches": "Připojené přepínače" - }, - "downloadstation": { - "download": "Stahování", - "upload": "Nahrávání", - "leech": "Leechované", - "seed": "Seedované" - }, "mikrotik": { "cpuLoad": "Zatížení procesoru", "memoryUsed": "Použitá paměť", - "uptime": "Doba provozu", + "uptime": "Doba spuštění", "numberOfLeases": "Pronájmy" }, "xteve": { @@ -440,6 +614,12 @@ "streams_active": "Aktivní streamy", "streams_xepg": "Kanály XEPG" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "Zatížení procesoru", "memory": "Aktivní paměť", @@ -447,16 +627,11 @@ "wanDownload": "Stahování WAN" }, "moonraker": { - "print_progress": "Průběh", "printer_state": "Stav tiskárny", "print_status": "Stav tisku", + "print_progress": "Průběh", "layers": "Vrstvy" }, - "medusa": { - "wanted": "Hledané", - "queued": "Fronta", - "series": "Série" - }, "octoprint": { "printer_state": "Stav", "temp_tool": "Teplota nástroje", @@ -467,6 +642,16 @@ "origin_ip": "Původní IP", "status": "Stav" }, + "pfsense": { + "load": "Prům. zatížení", + "memory": "Využití paměti", + "wanStatus": "Stav WAN", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Využití disku", + "wanIP": "IP WAN" + }, "proxmoxbackupserver": { "datastore_usage": "Datové úložiště", "failed_tasks_24h": "Neúspěšné úlohy 24h", @@ -482,19 +667,30 @@ "uptimekuma": { "up": "Stránky Up", "down": "Stránky Down", - "uptime": "Doba provozu", + "uptime": "Doba spuštění", "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Seriály", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Knihovny", - "series": "Série", + "series": "Seriály", "books": "Knihy" }, + "diskstation": { + "days": "dní", + "uptime": "Doba spuštění", + "volumeAvailable": "Dostupné" + }, "mylar": { - "series": "Série", + "series": "Seriály", "issues": "Problémy", - "wanted": "Hledá se" + "wanted": "Hledané" }, "photoprism": { "albums": "Alba", @@ -502,17 +698,16 @@ "videos": "Videa", "people": "Lidé" }, - "diskstation": { - "days": "dní", - "uptime": "Doba provozu", - "volumeAvailable": "K dispozici" - }, "fileflows": { "queue": "Fronta", - "processing": "Zpracování", + "processing": "Zpracovávání", "processed": "Zpracováno", "time": "Čas" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Nástěnky", "datasources": "Zdroje dat", @@ -532,41 +727,29 @@ "size": "Velikost", "lastrun": "Poslední spuštění", "nextrun": "Další spuštění", - "failed": "Neúspěšné" + "failed": "Selhalo" }, "unmanic": { "active_workers": "Aktivní workers", "total_workers": "Workers celkem", "records_total": "Délka fronty" }, - "healthchecks": { - "new": "Nové", - "up": "Online", - "grace": "V období odkladu", - "down": "Offline", - "paused": "Pozastaveno", - "status": "Stav", - "last_ping": "Poslední ping", - "never": "Zatím žádné pingy" - }, "pterodactyl": { "servers": "Servery", "nodes": "Uzly" }, "prometheus": { + "targets_up": "Cíle zapnuté", "targets_down": "Cíle vypnuté", - "targets_total": "Cíle celkem", - "targets_up": "Cíle zapnuté" + "targets_total": "Cíle celkem" }, - "minecraft": { - "up": "Online", - "down": "Offline", - "players": "Hráči", - "version": "Verze", - "status": "Stav" + "gatus": { + "up": "Stránky Up", + "down": "Stránky Down", + "uptime": "Doba spuštění" }, "ghostfolio": { - "gross_percent_today": "Dnes", + "gross_percent_today": "Today", "gross_percent_1y": "Jeden rok", "gross_percent_max": "Za celou dobu" }, @@ -581,89 +764,283 @@ "lights_on": "Rozsvícená světla", "switches_on": "Zapnuté přepínače" }, - "freshrss": { - "subscriptions": "Odběry", - "unread": "Nepřečteno" - }, - "channelsdvrserver": { - "shows": "Pořady", - "recordings": "Nahrávky", - "scheduled": "Naplánováno", - "passes": "Průchody" - }, "whatsupdocker": { "monitoring": "Sledování", "updates": "Aktualizace" }, - "tailscale": { - "address": "Adresa", - "expires": "Vyprší", - "never": "Nikdy", - "last_seen": "Naposledy viděno", - "now": "Nyní", - "years": "{{number}}r", - "weeks": "{{number}}t", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "Před {{value}}" - }, - "qnap": { - "memUsage": "Využití paměti", - "systemTempC": "Teplota systému", - "poolUsage": "Využití fondu", - "cpuUsage": "Využití procesoru", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Prům. zatížení", - "memory": "Využití paměti", - "wanStatus": "Stav WAN", - "up": "Běží", - "down": "Neběží", - "temp": "Teplota", - "disk": "Využití disku", - "wanIP": "IP WAN" - }, - "caddy": { - "upstreams": "Odesílání dat", - "requests": "Aktuální požadavky", - "requests_failed": "Selhavší požadavky" - }, - "evcc": { - "watt_hour": "Wh", - "pv_power": "Produkce", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Knihy", + "authors": "Authors", + "categories": "Categories", + "series": "Seriály" }, "jdownloader": { - "downloadSpeed": "Download Speed", - "downloadCount": "Queue Count", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Fronta", + "downloadBytesRemaining": "Zbývá", + "downloadTotalBytes": "Velikost", + "downloadSpeed": "Rychlost" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Seriály", + "totalFiles": "Soubory" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "Stav", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", - "failed": "Failed", + "failed": "Selhalo", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Schváleno" + }, + "gamedig": { + "status": "Stav", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Hráči", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Odezva" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Uživatelé", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Celkem", + "running": "Běží", + "stopped": "Zastaveno", + "passed": "Úspěšné", + "failed": "Selhalo" + }, + "openwrt": { + "uptime": "Doba spuštění", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Přijaté" + }, + "uptimerobot": { + "status": "Stav", + "uptime": "Doba spuštění", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Stránky Up", + "sitesDown": "Stránky Down", + "paused": "Pozastaveno", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Neznámý" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domény", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Úložiště" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Fotografie", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Problémy", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Filmy", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Uživatelé", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Uživatelé", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Upozornění", + "bans": "Bans" + }, + "wgeasy": { + "connected": "", + "enabled": "Povoleno", + "disabled": "Zakázáno", + "total": "Celkem" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Odezva", + "download": "Stahování", + "upload": "Nahrávání" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Doba spuštění", + "version": "Verze" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informace", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Adresa", + "last_seen": "Naposledy viděno", + "status": "Stav", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Pozastaveno", + "pending": "Čeká", + "status": "Stav", + "updated": "Aktualizováno", + "cpu": "CPU", + "memory": "RAM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Zdravý", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Chybějící", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problémy", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stav", + "load": "Zatížení", + "bcharge": "Battery Charge", + "timeleft": "Zbývající čas" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "", + "disconnected": "Odpojeno", + "updateStatus": "Update", + "update_yes": "Dostupné", + "update_no": "Žádné", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Soubory" } } diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 797f9f4a..901d0ce4 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -1,163 +1,33 @@ { - "plex": { - "movies": "Film", - "tv": "TV-Shows", - "streams": "Aktive Streams", - "albums": "Albums" - }, - "radarr": { - "queued": "I Kø", - "movies": "Film", - "wanted": "Ønskede", - "missing": "Mangler", - "queue": "Queue", - "unknown": "Unknown" - }, - "lidarr": { - "wanted": "Ønsket", - "queued": "I Kø", - "artists": "Artists" - }, - "jellyseerr": { - "available": "Tilgængelig", - "pending": "Afventer", - "approved": "Godkendt" - }, - "overseerr": { - "pending": "Afventer", - "approved": "Godkendt", - "available": "Tilgængelig", - "processing": "Processing" - }, - "adguard": { - "queries": "Forespørgsler", - "blocked": "Blokerede", - "filtered": "Filtreret", - "latency": "Latency" - }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" - }, - "npm": { - "total": "Total", - "enabled": "Aktiveret", - "disabled": "Deaktiveret" - }, - "coinmarketcap": { - "30days": "30 Dage", - "1day": "1 Dag", - "configure": "Konfigurer en eller flere crypto valutaer til tracking", - "7days": "7 Dage", - "1hour": "1 time" - }, - "strelaysrv": { - "numActiveSessions": "Sessioner", - "dataRelayed": "Videresendt", - "numConnections": "Forbindelser", - "transferRate": "Rate" - }, - "mastodon": { - "domain_count": "Domæner", - "status_count": "Indlæg", - "user_count": "Brugere" - }, - "authentik": { - "users": "Brugere", - "loginsLast24H": "Login (24 timer)", - "failedLoginsLast24H": "Mislykkede logins (24 timer)" - }, - "glances": { - "cpu": "CPU", - "wait": "Vent venligst", - "uptime": "UP", + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mnd", "days": "d", - "hours": "h", - "temp": "TEMP", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "wmo": { - "1-day": "Hovedsageligt solrigt", - "48-day": "Tåget", - "48-night": "Tåget", - "51-day": "Let støvregn", - "51-night": "Let støvregn", - "66-night": "Frysende regn", - "67-day": "Frysende regn", - "67-night": "Frysende regn", - "71-day": "Let Sne", - "75-night": "Kraftig Sne", - "86-day": "Snebyger", - "86-night": "Snebyger", - "95-day": "Tordenvejr", - "99-day": "Tordenvejr med hagl", - "99-night": "Tordenvejr med hagl", - "0-day": "Solrig", - "0-night": "Klart", - "1-night": "Hovedsageligt klart", - "2-day": "Delvist skyet", - "2-night": "Delvist skyet", - "3-day": "Skyet", - "3-night": "Skyet", - "45-day": "Tåget", - "65-day": "Kraftig regn", - "65-night": "Kraftig regn", - "45-night": "Tåget", - "53-day": "Støvregn", - "53-night": "Støvregn", - "55-day": "Kraftig støvregn", - "55-night": "Kraftig støvregn", - "56-day": "Let frysende støvregn", - "56-night": "Let frysende støvregn", - "57-day": "Frysende støvregn", - "57-night": "Frysende støvregn", - "61-day": "Let Regn", - "61-night": "Let Regn", - "63-day": "Regn", - "63-night": "Regn", - "66-day": "Frysende regn", - "71-night": "Let Sne", - "73-day": "Sne", - "73-night": "Sne", - "75-day": "Kraftig Sne", - "77-day": "Snekorn", - "80-day": "Lette byger", - "80-night": "Lette byger", - "81-day": "Byger", - "77-night": "Snekorn", - "81-night": "Byger", - "82-day": "Kraftige Byger", - "82-night": "Kraftige Byger", - "85-day": "Snebyger", - "85-night": "Snebyger", - "95-night": "Tordenvejr", - "96-day": "Tordenvejr med hagl", - "96-night": "Tordenvejr med hagl" - }, - "homebridge": { - "available_update": "System", - "updates": "Opdateringer", - "update_available": "Opdateringer tilgængelige", - "up_to_date": "Opdateret", - "child_bridges": "Child Bridges", - "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "hours": "t", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Manglende Widget Type: {{type}}", "api_error": "API fejl", - "status": "Status", "information": "Information", + "status": "Status", "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" + "raw_error": "Rå Fejl", + "response_data": "Svardata" }, "weather": { "current": "Nuværende lokation", @@ -170,22 +40,18 @@ }, "resources": { "cpu": "CPU", + "mem": "RAM", "total": "Total", "free": "Fri", "used": "Brugt", "load": "Belastning", - "mem": "MEM", - "hours": "h", - "minutes": "m", "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d" + "max": "Maks", + "uptime": "OP" }, "unifi": { "users": "Brugere", - "uptime": "System Oppetid", + "uptime": "Oppetid", "days": "Dage", "wan": "WAN", "lan": "LAN", @@ -195,55 +61,139 @@ "wlan_devices": "WLAN Enheder", "lan_users": "LAN Brugere", "wlan_users": "WLAN Brugere", - "up": "Oppe", + "up": "OP", "down": "NED", "wait": "Vent venligst", - "empty_data": "Subsystem status unknown" + "empty_data": "Subsystem status ukendt" }, "docker": { - "cpu": "CPU", "rx": "RX", "tx": "TX", "mem": "RAM", + "cpu": "CPU", + "running": "Kører", "offline": "Offline", - "error": "Error", - "unknown": "Unknown", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "error": "Fejl", + "unknown": "Ukendt", + "healthy": "Sund", + "starting": "Starter", + "unhealthy": "Usund", + "not_found": "Ikke Fundet", + "exited": "Forladt", + "partial": "Delvis" + }, + "ping": { + "error": "Fejl", + "ping": "Ping", + "down": "Ned", + "up": "Op", + "not_available": "Ikke tilgængelig" + }, + "siteMonitor": { + "http_status": "HTTP-status", + "error": "Fejl", + "response": "Response", + "down": "Ned", + "up": "Op", + "not_available": "Ikke tilgængelig" }, "emby": { "playing": "Afspiller", "transcoding": "Transcoder", "bitrate": "Bitrate", "no_active": "Ingen Aktive Streams", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "movies": "Film", + "series": "Serier", + "episodes": "Episoder", + "songs": "Sange" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Ukendt" + }, + "evcc": { + "pv_power": "Produktion", + "battery_soc": "Batteri", + "grid_power": "Gitter", + "home_power": "Forbrug", + "charge_power": "Oplader", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Abonnementer", + "unread": "Ulæst" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Oppetid", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Ned", + "up": "Op", + "received": "Modtaget", + "sent": "Sendt", + "externalIPAddress": "Ekstern IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Aktuelle anmodninger", + "requests_failed": "Mislykkede anmodninger" }, "changedetectionio": { "totalObserved": "Total Observeret", "diffsDetected": "Forskelle Detekteret" }, + "channelsdvrserver": { + "shows": "Serier", + "recordings": "Optagelser", + "scheduled": "Planlagt", + "passes": "Bestået" + }, "tautulli": { "playing": "Afspiller", "transcoding": "Transcoder", "bitrate": "Bitrate", "no_active": "Ingen Aktive Streams", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Tjek Plex-forbindelse" + }, + "omada": { + "connectedAp": "Forbundne APs", + "activeUser": "Aktive enheder", + "alerts": "Advarsler", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Forbundne switches" }, "nzbget": { - "rate": "Rate", + "rate": "Sats", "remaining": "Manglende", "downloaded": "Hentet" }, + "plex": { + "streams": "Aktive Streams", + "albums": "Albums", + "movies": "Film", + "tv": "TV-Shows" + }, "sabnzbd": { - "rate": "Rate", + "rate": "Sats", "queue": "Kø", "timeleft": "Resterende tid" }, @@ -253,14 +203,38 @@ "download": "Download" }, "transmission": { - "upload": "Upload", "download": "Download", + "upload": "Upload", "leech": "Leech", "seed": "Seed" }, "qbittorrent": { - "upload": "Upload", "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Forbrug", + "memUsage": "MEM Forbrug", + "systemTempC": "System Temp", + "poolUsage": "Pool Forbrug", + "volumeUsage": "Volume Forbrug", + "invalid": "Ugyldig" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", "leech": "Leech", "seed": "Seed" }, @@ -268,11 +242,24 @@ "wanted": "Ønsket", "queued": "I Kø", "series": "Serier", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Kø", + "unknown": "Ukendt" + }, + "radarr": { + "wanted": "Ønsket", + "missing": "Mangler", + "queued": "I Kø", + "movies": "Film", + "queue": "Kø", + "unknown": "Ukendt" + }, + "lidarr": { + "wanted": "Ønsket", + "queued": "I Kø", + "artists": "Artister" }, "readarr": { - "wanted": "Ønskede", + "wanted": "Ønsket", "queued": "I Kø", "books": "Bøger" }, @@ -285,22 +272,109 @@ "approved": "Godkendt", "available": "Tilgængelig" }, + "jellyseerr": { + "pending": "Afventer", + "approved": "Godkendt", + "available": "Tilgængelig" + }, + "overseerr": { + "pending": "Afventer", + "processing": "Behandler", + "approved": "Godkendt", + "available": "Tilgængelig" + }, + "netalertx": { + "total": "Total", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, "pihole": { - "blocked": "Blokerede", - "gravity": "Gravity", "queries": "Forespørgsler", - "blocked_percent": "Blocked %" + "blocked": "Blokerede", + "blocked_percent": "Blokeret %", + "gravity": "Tyngdekraft" + }, + "adguard": { + "queries": "Forespørgsler", + "blocked": "Blokerede", + "filtered": "Filtreret", + "latency": "Latenstid" + }, + "speedtest": { + "upload": "Upload", + "download": "Download", + "ping": "Ping" }, "portainer": { - "running": "Kørende", + "running": "Kører", "stopped": "Stoppede", "total": "Total" }, + "suwayomi": { + "download": "Hentet", + "nondownload": "Non-Downloaded", + "read": "Læst", + "unread": "Ulæst", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Adresse", + "expires": "Udløber", + "never": "Aldrig", + "last_seen": "Sidst Set", + "now": "Nu", + "years": "{{number}}å", + "weeks": "{{number}}u", + "days": "{{number}}d", + "hours": "{{number}}t", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Siden" + }, + "technitium": { + "totalQueries": "Forespørgsler", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blokerede", + "totalDropped": "Dropped", + "totalClients": "Klienter" + }, + "tdarr": { + "queue": "Kø", + "processed": "Behandlet", + "errored": "Fejlet", + "saved": "Gemt" + }, "traefik": { "routers": "Routere", - "services": "Services", + "services": "Tjenester", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "Ingen Aktive Streams", + "please_wait": "Vent venligst" + }, + "npm": { + "enabled": "Aktiveret", + "disabled": "Deaktiveret", + "total": "Total" + }, + "coinmarketcap": { + "configure": "Konfigurer en eller flere crypto valutaer til tracking", + "1hour": "1 time", + "1day": "1 Dag", + "7days": "7 Dage", + "30days": "30 Dage" + }, "gotify": { "apps": "Applikationer", "clients": "Klienter", @@ -308,14 +382,46 @@ }, "prowlarr": { "enableIndexers": "Indeksører", - "numberOfGrabs": "Grabs", + "numberOfGrabs": "Grab", "numberOfQueries": "Forespørgsler", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fejl forespørgsler" + "numberOfFailGrabs": "Fejl Grabs", + "numberOfFailQueries": "Fejl Forespørgsler" }, "jackett": { "configured": "Konfigureret", - "errored": "Fejlede" + "errored": "Fejlet" + }, + "strelaysrv": { + "numActiveSessions": "Sessioner", + "numConnections": "Forbindelser", + "dataRelayed": "Videresendt", + "transferRate": "Sats" + }, + "mastodon": { + "user_count": "Brugere", + "status_count": "Indlæg", + "domain_count": "Domæner" + }, + "medusa": { + "wanted": "Ønsket", + "queued": "I Kø", + "series": "Serier" + }, + "minecraft": { + "players": "Afspillere", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Læst", + "unread": "Ulæst" + }, + "authentik": { + "users": "Brugere", + "loginsLast24H": "Login (24 timer)", + "failedLoginsLast24H": "Mislykkede logins (24 timer)" }, "proxmox": { "mem": "RAM", @@ -323,13 +429,113 @@ "lxc": "LXC", "vms": "VMs" }, + "glances": { + "cpu": "CPU", + "load": "Belastning", + "wait": "Vent venligst", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Advar", + "uptime": "OP", + "total": "Total", + "free": "Fri", + "used": "Brugt", + "days": "d", + "hours": "t", + "crit": "Crit", + "read": "Læst", + "write": "Skriv", + "gpu": "GPU", + "mem": "Ram", + "swap": "Swap" + }, "quicklaunch": { "bookmark": "Bogmærker", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "service": "Tjeneste", + "search": "Søg", + "custom": "Brugerdefinerede", + "visit": "Besøg", + "url": "URL", + "searchsuggestion": "Suggestion" + }, + "wmo": { + "0-day": "Solrig", + "0-night": "Klart", + "1-day": "Overvejende Solrigt", + "1-night": "Overvejende Skyfrit", + "2-day": "Delvist Overskyet", + "2-night": "Delvist Overskyet", + "3-day": "Skyet", + "3-night": "Skyet", + "45-day": "Tåget", + "45-night": "Tåget", + "48-day": "Tåget", + "48-night": "Tåget", + "51-day": "Let Støvregn", + "51-night": "Let Støvregn", + "53-day": "Støvregn", + "53-night": "Støvregn", + "55-day": "Kraftig Støvregn", + "55-night": "Kraftig Støvregn", + "56-day": "Let Frysende Støvregn", + "56-night": "Let Frysende Støvregn", + "57-day": "Frysende Støvregn", + "57-night": "Frysende Støvregn", + "61-day": "Let Regn", + "61-night": "Let Regn", + "63-day": "Regn", + "63-night": "Regn", + "65-day": "Kraftig Regn", + "65-night": "Kraftig Regn", + "66-day": "Frysende Regn", + "66-night": "Frysende Regn", + "67-day": "Frysende Regn", + "67-night": "Frysende Regn", + "71-day": "Let Sne", + "71-night": "Let Sne", + "73-day": "Sne", + "73-night": "Sne", + "75-day": "Kraftig Sne", + "75-night": "Kraftig Sne", + "77-day": "Snekorn", + "77-night": "Snekorn", + "80-day": "Lette Byger", + "80-night": "Lette Byger", + "81-day": "Byger", + "81-night": "Byger", + "82-day": "Kraftige Byger", + "82-night": "Kraftige Byger", + "85-day": "Snebyger", + "85-night": "Snebyger", + "86-day": "Snebyger", + "86-night": "Snebyger", + "95-day": "Tordenvejr", + "95-night": "Tordenvejr", + "96-day": "Tordenvejr Med Hagl", + "96-night": "Tordenvejr Med Hagl", + "99-day": "Tordenvejr Med Hagl", + "99-night": "Tordenvejr Med Hagl" + }, + "homebridge": { + "available_update": "System", + "updates": "Opdateringer", + "update_available": "Opdateringer Tilgængelige", + "up_to_date": "Opdateret", + "child_bridges": "Underbroer", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Op", + "pending": "Afventer", + "down": "Ned" + }, + "healthchecks": { + "new": "Ny", + "up": "Op", + "grace": "Henstandsperiode", + "down": "Ned", + "paused": "Pause", + "status": "Status", + "last_ping": "Sidste Ping", + "never": "Ingen Pings Endnu" }, "watchtower": { "containers_scanned": "Scannet", @@ -337,10 +543,10 @@ "containers_failed": "Fejlet" }, "autobrr": { - "indexers": "Indeksører", - "approvedPushes": "Godkendte", + "approvedPushes": "Godkendt", "rejectedPushes": "Afviste", - "filters": "Filtre" + "filters": "Filtre", + "indexers": "Indeksører" }, "tubearchivist": { "downloads": "Kø", @@ -351,12 +557,7 @@ "truenas": { "load": "Systembelastning", "uptime": "Oppetid", - "alerts": "Advarsler", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Ingen Aktive Streams", - "please_wait": "Vent venligst" + "alerts": "Advarsler" }, "pyload": { "speed": "Hastighed", @@ -365,305 +566,481 @@ "total": "Total" }, "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "public_ip": "Offentlig IP", + "region": "Område", + "country": "Land" }, "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "channels": "Kanaler", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" + "passed": "Bestået", + "failed": "Fejlet", + "unknown": "Ukendt" }, "paperlessngx": { - "inbox": "Inbox", + "inbox": "Indbakke", "total": "Total" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "leech": "Leech", - "download": "Download", - "upload": "Upload", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Batteriniveau", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "På batteri", + "low_battery": "Lavt batteriniveau" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "wait": "Vent venligst", + "no_devices": "Ingen Enhedsdata Modtaget" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" + "cpuLoad": "CPU Belastning", + "memoryUsed": "Hukommelse Brugt", + "uptime": "Oppetid", + "numberOfLeases": "Leasinger" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Alle Streams", + "streams_active": "Aktive Streams", + "streams_xepg": "XEPG Kanaler" + }, + "opendtu": { + "yieldDay": "I dag", + "absolutePower": "Strøm", + "relativePower": "Strøm %", + "limit": "Begrænsning" }, "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", + "cpu": "CPU Belastning", + "memory": "Aktiv Hukommelse", "wanUpload": "WAN Upload", "wanDownload": "WAN Download" }, "moonraker": { - "printer_state": "Printer State", + "printer_state": "Printer Tilstand", "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "print_progress": "Fremskridt", + "layers": "Lag" }, "octoprint": { "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" + "temp_tool": "Værktøj temp", + "temp_bed": "Seng temp", + "job_completion": "Færdiggørelse" }, "cloudflared": { - "origin_ip": "Origin IP", + "origin_ip": "Oprindelses-IP", "status": "Status" }, + "pfsense": { + "load": "Belastning Gns", + "memory": "Hukommelse Forbrug", + "wanStatus": "WAN Status", + "up": "Op", + "down": "Ned", + "temp": "Temp", + "disk": "Disk Forbrug", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", + "datastore_usage": "Datalager", + "failed_tasks_24h": "Mislykkede Opgaver 24t", "cpu_usage": "CPU", - "memory_usage": "Memory" + "memory_usage": "Hukommelse" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "Brugere", + "photos": "Billeder", + "videos": "Videoer", + "storage": "Lager" }, "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", + "up": "Sider Oppe", + "down": "Sider Nede", + "uptime": "Oppetid", + "incident": "Hændelse", "m": "m" }, + "atsumeru": { + "series": "Serier", + "archives": "Arkiver", + "chapters": "Kapitler", + "categories": "Kategorier" + }, "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" + "libraries": "Biblioteker", + "series": "Serier", + "books": "Bøger" + }, + "diskstation": { + "days": "Dage", + "uptime": "Oppetid", + "volumeAvailable": "Tilgængelig" }, "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" + "series": "Serier", + "issues": "Problemer", + "wanted": "Ønsket" }, "photoprism": { "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "photos": "Billeder", + "videos": "Videoer", + "people": "Mennesker" }, "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" + "queue": "Kø", + "processing": "Behandler", + "processed": "Behandlet", + "time": "Tid" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" }, "grafana": { - "totalalerts": "Total Alerts", - "dashboards": "Dashboards", - "datasources": "Data Sources", - "alertstriggered": "Alerts Triggered" + "dashboards": "Kontrolpanel", + "datasources": "Data Kilder", + "totalalerts": "Totale Advarsler", + "alertstriggered": "Advarsler Udløst" }, "nextcloud": { - "memoryusage": "Memory Usage", - "cpuload": "Cpu Load", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "Cpu Belastning", + "memoryusage": "Hukommelse Forbrug", + "freespace": "Ledig Plads", + "activeusers": "Aktive Brugere", + "numfiles": "Filer", + "numshares": "Delte Genstande" }, "kopia": { "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "size": "Størrelse", + "lastrun": "Sidst Kørt", + "nextrun": "Næste Kørsel", + "failed": "Fejlet" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "active_workers": "Aktive Arbejdere", + "total_workers": "Totale Arbejdere", + "records_total": "Kø Længde" }, "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" + "servers": "Servere", + "nodes": "Noder" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Mål Oppe", + "targets_down": "Mål Nede", + "targets_total": "Totale Mål" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sider Oppe", + "down": "Sider Nede", + "uptime": "Oppetid" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "I dag", + "gross_percent_1y": "Et År", + "gross_percent_max": "Altid" }, "audiobookshelf": { - "booksDuration": "Duration", "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration" + "books": "Bøger", + "podcastsDuration": "Varighed", + "booksDuration": "Varighed" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "people_home": "Personer Hjemme", + "lights_on": "Lys Tændt", + "switches_on": "Kontakter Tændt" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "Overvåger", + "updates": "Opdateringer" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "never": "Never", - "last_seen": "Last Seen", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Bøger", + "authors": "Forfattere", + "categories": "Kategorier", + "series": "Serier" }, "jdownloader": { - "downloadSpeed": "Download Speed", - "downloadCount": "Queue Count", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Kø", + "downloadBytesRemaining": "Manglende", + "downloadTotalBytes": "Størrelse", + "downloadSpeed": "Hastighed" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Serier", + "totalFiles": "Filer" }, - "azurePipelines": { - "result": "Result", + "azuredevops": { + "result": "Resultat", "status": "Status", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "succeeded": "Lykkedes", + "notStarted": "Ikke Startet", + "failed": "Fejlet", + "canceled": "Annulleret", + "inProgress": "I Gang", + "totalPrs": "Total PRs", + "myPrs": "Mine PRs", + "approved": "Godkendt" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Navn", + "map": "Kort", + "currentPlayers": "Nuværende Spillere", + "players": "Afspillere", + "maxPlayers": "Maks spillere", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Fejl", + "noRecent": "Uddateret", + "totalUsed": "Brugt Lager" + }, + "mealie": { + "recipes": "Opskrifter", + "users": "Brugere", + "categories": "Kategorier", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloader", + "total": "Total", + "running": "Kører", + "stopped": "Stoppede", + "passed": "Bestået", + "failed": "Fejlet" + }, + "openwrt": { + "uptime": "Oppetid", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Op", + "down": "Ned", + "bytesTx": "Transmitted", + "bytesRx": "Modtaget" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Oppetid", + "lastDown": "Seneste Nedetid", + "downDuration": "Nedetid Varighed", + "sitesUp": "Sider Oppe", + "sitesDown": "Sider Nede", + "paused": "Pause", + "notyetchecked": "Endnu Ikke Kontrolleret", + "up": "Op", + "seemsdown": "Synes Ned", + "down": "Ned", + "unknown": "Ukendt" + }, + "calendar": { + "inCinemas": "I biografen", + "physicalRelease": "Fysisk udgivelse", + "digitalRelease": "Digitale udgivelser", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforme", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domæner", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Lager" + }, + "netdata": { + "warnings": "Advarsler", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Billeder", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Problemer", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Film", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Brugere", + "recipes": "Opskrifter", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Brugere", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Advarsler", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Aktiveret", + "disabled": "Deaktiveret", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Oppetid", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Navn", + "address": "Adresse", + "last_seen": "Sidst Set", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Navn", + "systems": "Systems", + "up": "Op", + "down": "Ned", + "paused": "Pause", + "pending": "Afventer", + "status": "Status", + "updated": "Opdateret", + "cpu": "CPU", + "memory": "RAM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sund", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Mangler", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problemer", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Belastning", + "bcharge": "Batteriniveau", + "timeleft": "Resterende tid" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Tilgængelig", + "update_no": "Opdateret", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Filer" } } diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 8bd743ea..94fb91aa 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -1,89 +1,272 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "Mo.", + "days": "d", + "hours": "h", + "minutes": "min", + "seconds": "s" + }, "widget": { "missing_type": "Fehlender Widget-Typ: {{type}}", "api_error": "API-Fehler", + "information": "Informationen", "status": "Status", "url": "URL", - "information": "Informationen", - "raw_error": "Roher Fehler", - "response_data": "Empfangene Daten" + "raw_error": "Rohfehler", + "response_data": "Antwortdaten" + }, + "weather": { + "current": "Aktueller Standort", + "allow": "Zum Zulassen anklicken", + "updating": "Aktualisieren", + "wait": "Bitte warten" }, "search": { "placeholder": "Suche…" }, "resources": { + "cpu": "CPU", + "mem": "RAM", "total": "Gesamt", "free": "Frei", - "used": "In Verwendung", + "used": "In Benutzung", "load": "Last", - "cpu": "Prozessor", - "mem": "Speicher", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "Mo.", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "Benutzer", + "uptime": "Betriebszeit", + "days": "Tage", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Geräte", + "lan_devices": "LAN-Geräte", + "wlan_devices": "WLAN-Geräte", + "lan_users": "LAN-Benutzer", + "wlan_users": "WLAN-Benutzer", + "up": "UP", + "down": "EMPFANGEN", + "wait": "Bitte warten", + "empty_data": "Subsystem-Status unbekannt" }, "docker": { - "rx": "Rx", - "tx": "Tx", - "mem": "Speicher", - "cpu": "Prozessor", + "rx": "RX", + "tx": "TX", + "mem": "RAM", + "cpu": "CPU", + "running": "Wird ausgeführt", "offline": "Offline", "error": "Fehler", "unknown": "Unbekannt", - "running": "Laufend", + "healthy": "Fehlerfrei", "starting": "Startet", - "unhealthy": "Unhealthy", + "unhealthy": "Fehlerhaft", "not_found": "Nicht gefunden", "exited": "Beendet", - "partial": "Teilweise", - "healthy": "Healthy" + "partial": "Teilweise" + }, + "ping": { + "error": "Fehler", + "ping": "Ping", + "down": "Offline", + "up": "Online", + "not_available": "Nicht verfügbar" + }, + "siteMonitor": { + "http_status": "HTTP-Status", + "error": "Fehler", + "response": "Antwort", + "down": "Offline", + "up": "Online", + "not_available": "Nicht verfügbar" }, "emby": { - "playing": "Aktuelle Wiedergaben", - "transcoding": "Transkodieren", + "playing": "Wiedergabe", + "transcoding": "Transcodiert", "bitrate": "Bitrate", "no_active": "Keine aktiven Streams", "movies": "Filme", "series": "Serien", - "episodes": "Folgen", + "episodes": "Episoden", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Gesamt", + "unknown": "Unbekannt" + }, + "evcc": { + "pv_power": "Erzeugung", + "battery_soc": "Batterie", + "grid_power": "Netz", + "home_power": "verbauch", + "charge_power": "Ladegerät", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Abonnements", + "unread": "Ungelesen" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unkonfiguriert", + "connectionStatusConnecting": "Verbinde", + "connectionStatusAuthenticating": "Authentifiziere", + "connectionStatusPendingDisconnect": "Ausstehende Trennung", + "connectionStatusDisconnecting": "Trenne", + "connectionStatusDisconnected": "Getrennt", + "connectionStatusConnected": "Verbunden", + "uptime": "Betriebszeit", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Offline", + "up": "Online", + "received": "Empfangen", + "sent": "Gesendet", + "externalIPAddress": "Externe IP", + "externalIPv6Address": "Externe IPv6", + "externalIPv6Prefix": "Externer IPv4-Präfix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Aktuelle Anfragen", + "requests_failed": "Fehlgeschlagene Anfragen" + }, + "changedetectionio": { + "totalObserved": "Gesamt beobachtet", + "diffsDetected": "Erkannte Änderungen" + }, + "channelsdvrserver": { + "shows": "Serien", + "recordings": "Aufnahmen", + "scheduled": "Geplant", + "passes": "Pässe" + }, "tautulli": { - "playing": "Spielen", - "transcoding": "Transcodierung", + "playing": "Wiedergabe", + "transcoding": "Transcodiert", "bitrate": "Bitrate", "no_active": "Keine aktiven Streams", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Prüfe Plex-Verbindung" + }, + "omada": { + "connectedAp": "Verbundene APs", + "activeUser": "Aktive Geräte", + "alerts": "Warnungen", + "connectedGateways": "Verbundene Gateways", + "connectedSwitches": "Verbundene Switche" + }, + "nzbget": { + "rate": "Datenrate", + "remaining": "Verbleibend", + "downloaded": "Heruntergeladen" + }, + "plex": { + "streams": "Aktive Streams", + "albums": "Alben", + "movies": "Filme", + "tv": "TV-Serien" + }, + "sabnzbd": { + "rate": "Datenrate", + "queue": "Warteschlange", + "timeleft": "Verbleibende Zeit" }, "rutorrent": { "active": "Aktiv", - "upload": "Hochladen", + "upload": "Upload", "download": "Download" }, + "transmission": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU-Nutzung", + "memUsage": "Speichernutzung", + "systemTempC": "Systemtemperatur", + "poolUsage": "Pool-Nutzung", + "volumeUsage": "Speichernutzung", + "invalid": "Ungültig" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache-Trefferbytes", + "cachemissbytes": "Cache-Fehlbytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, "sonarr": { "wanted": "Gesucht", "queued": "In Warteschlange", "series": "Serien", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Warteschlange", + "unknown": "Unbekannt" }, "radarr": { "wanted": "Gesucht", + "missing": "Fehlend", "queued": "In Warteschlange", "movies": "Filme", - "missing": "Fehlt", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Warteschlange", + "unknown": "Unbekannt" + }, + "lidarr": { + "wanted": "Gesucht", + "queued": "In Warteschlange", + "artists": "Künstler" }, "readarr": { "wanted": "Gesucht", "queued": "In Warteschlange", "books": "Bücher" }, + "bazarr": { + "missingEpisodes": "Fehlende Episoden", + "missingMovies": "Fehlende Filme" + }, "ombi": { "pending": "Ausstehend", "approved": "Genehmigt", @@ -94,11 +277,29 @@ "approved": "Genehmigt", "available": "Verfügbar" }, + "overseerr": { + "pending": "Ausstehend", + "processing": "Wird verarbeitet", + "approved": "Genehmigt", + "available": "Verfügbar" + }, + "netalertx": { + "total": "Gesamt", + "connected": "Verbunden", + "new_devices": "Neue Geräte", + "down_alerts": "Down-Warnungen" + }, "pihole": { - "queries": "Abfragen", + "queries": "Anfragen", "blocked": "Blockiert", - "gravity": "Gravity", - "blocked_percent": "Geblockt %" + "blocked_percent": "Blockiert %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Anfragen", + "blocked": "Blockiert", + "filtered": "Gefiltert", + "latency": "Latenz" }, "speedtest": { "upload": "Upload", @@ -106,44 +307,69 @@ "ping": "Ping" }, "portainer": { - "running": "Betrieb", + "running": "Wird ausgeführt", "stopped": "Gestoppt", "total": "Gesamt" }, + "suwayomi": { + "download": "Heruntergeladen", + "nondownload": "Nicht heruntergeladen", + "read": "Gelesen", + "unread": "Ungelesen", + "downloadedread": "Heruntergeladen & gelesen", + "downloadedunread": "Heruntergeladen & ungelesen", + "nondownloadedread": "Nicht heruntergeladen & gelesen", + "nondownloadedunread": "Nicht heruntergeladen & ungelesen" + }, + "tailscale": { + "address": "Adresse", + "expires": "Läuft ab", + "never": "Nie", + "last_seen": "Zuletzt gesehen", + "now": "Jetzt", + "years": "{{number}}a", + "weeks": "{{number}} Woche(n)", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}min", + "seconds": "{{number}}s", + "ago": "Vor {{value}}" + }, + "technitium": { + "totalQueries": "Anfragen", + "totalNoError": "Erfolgreich", + "totalServerFailure": "Fehler", + "totalNxDomain": "NX-Domänen", + "totalRefused": "Verweigert", + "totalAuthoritative": "Autoritativ", + "totalRecursive": "Rekursiv", + "totalCached": "Im Cache", + "totalBlocked": "Blockiert", + "totalDropped": "Verworfen", + "totalClients": "Benutzer" + }, + "tdarr": { + "queue": "Warteschlange", + "processed": "Verarbeitet", + "errored": "Fehlgeschlagen", + "saved": "Eingespart" + }, "traefik": { "routers": "Router", "services": "Dienste", - "middleware": "Zwischenanwendung" + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "Keine aktiven Streams", + "please_wait": "Bitte warten" }, "npm": { "enabled": "Aktiviert", "disabled": "Deaktiviert", "total": "Gesamt" }, - "weather": { - "current": "Aktueller Standort", - "allow": "Zum Zulassen anklicken", - "updating": "Aktualisieren", - "wait": "Bitte warten" - }, - "overseerr": { - "pending": "Ausstehend", - "approved": "Genehmigt", - "available": "Verfügbar", - "processing": "Wird verarbeitet" - }, - "sabnzbd": { - "rate": "Geschwindigkeit", - "queue": "Warteschlange", - "timeleft": "Verbleibende Zeit" - }, - "nzbget": { - "rate": "Geschwindigkeit", - "remaining": "Verbleibend", - "downloaded": "Heruntergeladen" - }, "coinmarketcap": { - "configure": "Konfiguriere eine oder mehrere Kryptowährungen zur Verfolgung", + "configure": "Konfiguriere eine oder mehrere Kryptowährungen zur Beobachtung", "1hour": "1 Stunde", "1day": "1 Tag", "7days": "7 Tage", @@ -161,52 +387,41 @@ "numberOfFailGrabs": "Fehlgeschlagene Abrufungen", "numberOfFailQueries": "Fehlgeschlagene Anfragen" }, - "transmission": { - "download": "Herunterladen", - "upload": "Hochladen", - "leech": "Leech", - "seed": "Seed" - }, "jackett": { "configured": "Konfiguriert", - "errored": "Fehlerhaft" - }, - "bazarr": { - "missingEpisodes": "Fehlende Episoden", - "missingMovies": "Fehlende Filme" - }, - "lidarr": { - "wanted": "Gesucht", - "queued": "In Warteschlange", - "artists": "Artists" - }, - "adguard": { - "queries": "Anfragen", - "blocked": "Blockiert", - "filtered": "Gefiltert", - "latency": "Latenz" - }, - "qbittorrent": { - "download": "Herunterladen", - "upload": "Hochladen", - "leech": "Leech", - "seed": "Seed" - }, - "mastodon": { - "user_count": "Nutzer", - "status_count": "Beiträge", - "domain_count": "Domänen" + "errored": "Fehlgeschlagen" }, "strelaysrv": { "numActiveSessions": "Sitzungen", "numConnections": "Verbindungen", "dataRelayed": "Weitergeleitet", - "transferRate": "Bewerten" + "transferRate": "Datenrate" + }, + "mastodon": { + "user_count": "Benutzer", + "status_count": "Beiträge", + "domain_count": "Domänen" + }, + "medusa": { + "wanted": "Gesucht", + "queued": "In Warteschlange", + "series": "Serien" + }, + "minecraft": { + "players": "Spieler", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Gelesen", + "unread": "Ungelesen" }, "authentik": { "users": "Benutzer", - "loginsLast24H": "Anmeldungen (24h)", - "failedLoginsLast24H": "fehlerhafte Anmeldungen (24h)" + "loginsLast24H": "Anmeldungen (24 h)", + "failedLoginsLast24H": "Fehlversuche (24 h)" }, "proxmox": { "mem": "RAM", @@ -214,103 +429,25 @@ "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Benutzer", - "uptime": "System-Betriebszeit", - "days": "Tage", - "wan": "WAN", - "lan_users": "LAN Benutzer", - "wlan_users": "WLAN Benutzer", - "up": "BEREIT", - "down": "EMPFANGEN", - "wait": "Bitte warten", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Geräte", - "lan_devices": "LAN-Geräte", - "wlan_devices": "WLAN-Geräte", - "empty_data": "Subsystem-Status unbekannt" - }, - "plex": { - "streams": "Aktive Streams", - "movies": "Filme", - "tv": "TV Sendungen", - "albums": "Alben" - }, "glances": { - "cpu": "Prozessor", + "cpu": "CPU", + "load": "Last", "wait": "Bitte warten", "temp": "TEMP", - "uptime": "UP", - "days": "T", - "hours": "S", - "load": "Auslastung", + "_temp": "Temperatur", "warn": "Warnung", + "uptime": "UP", "total": "Gesamt", "free": "Frei", - "used": "Verwendet" - }, - "changedetectionio": { - "totalObserved": "Gesamt beobachtet", - "diffsDetected": "Erkannte Differenzen" - }, - "wmo": { - "0-day": "Sonnig", - "0-night": "Klar", - "1-day": "Überwiegend sonnig", - "1-night": "Überwiegend klar", - "2-day": "Teilweise bewölkt", - "2-night": "Teilweise bewölkt", - "3-day": "bewölkt", - "57-day": "Gefrierender Nieselregen", - "61-day": "Leichter Regen", - "65-night": "Starker Regen", - "66-day": "Gefrierender Regen", - "66-night": "Gefrierender Regen", - "3-night": "Bewölkt", - "45-day": "Neblig", - "45-night": "Neblig", - "48-day": "Neblig", - "48-night": "Neblig", - "51-day": "Leichter Nieselregen", - "51-night": "Leichter Nieselregen", - "55-day": "Starker Nieselregen", - "53-day": "Nieselregen", - "53-night": "Nieselregen", - "55-night": "Starker Nieselregen", - "56-day": "Leichter gefrierender Nieselregen", - "56-night": "Leichter eisiger Nieselregen", - "57-night": "Gefrierender Nieselregen", - "61-night": "Leichter Regen", - "63-day": "Regen", - "63-night": "Regen", - "65-day": "Starker Regen", - "67-day": "Gefrierender Regen", - "67-night": "Gefrierender Regen", - "71-day": "Leichter Schneefall", - "71-night": "Leichter Schnee", - "73-day": "Schnee", - "73-night": "Schnee", - "75-day": "Schwerer Schnee", - "75-night": "Schwerer Schnee", - "77-day": "Schneegriesel", - "77-night": "Schneegriesel", - "80-day": "Leichter Schauer", - "80-night": "Leichter Schauer", - "81-day": "Schauer", - "81-night": "Schauer", - "82-day": "Starke Regenschauer", - "82-night": "Starke Regenschauer", - "85-day": "Schneeschauer", - "85-night": "Schneeregen", - "86-day": "Schneeregen", - "86-night": "Schneeregen", - "95-day": "Gewitter", - "95-night": "Gewitter", - "96-day": "Gewitter mit Hagel", - "96-night": "Gewitter mit Hagel", - "99-day": "Gewitter mit Hagel", - "99-night": "Gewitter mit Hagel" + "used": "In Benutzung", + "days": "d", + "hours": "h", + "crit": "Krit", + "read": "Gelesen", + "write": "Schreiben", + "gpu": "GPU", + "mem": "RAM", + "swap": "Auslagerung" }, "quicklaunch": { "bookmark": "Lesezeichen", @@ -318,18 +455,92 @@ "search": "Suchen", "custom": "Benutzerdefiniert", "visit": "Besuchen", - "url": "URL" + "url": "URL", + "searchsuggestion": "Vorschlag" + }, + "wmo": { + "0-day": "sonnig", + "0-night": "klar", + "1-day": "überwiegend sonnig", + "1-night": "Überwiegend klar", + "2-day": "Teilweise bewölkt", + "2-night": "Teilweise bewölkt", + "3-day": "Bewölkt", + "3-night": "Bewölkt", + "45-day": "neblig", + "45-night": "neblig", + "48-day": "neblig", + "48-night": "neblig", + "51-day": "leichter Nieselregen", + "51-night": "leichter Nieselregen", + "53-day": "Nieselregen", + "53-night": "Nieselregen", + "55-day": "starker Nieselregen", + "55-night": "starker Nieselregen", + "56-day": "leichter gefrierender Nieselregen", + "56-night": "leichter gefrierender Nieselregen", + "57-day": "gefrierender Nieselregen", + "57-night": "gefrierender Nieselregen", + "61-day": "leichter Regen", + "61-night": "leichter Regen", + "63-day": "Regen", + "63-night": "Regen", + "65-day": "starker Regen", + "65-night": "starker Regen", + "66-day": "Gefrierender Regen", + "66-night": "Gefrierender Regen", + "67-day": "Gefrierender Regen", + "67-night": "Gefrierender Regen", + "71-day": "Leichter Schneefall", + "71-night": "Leichter Schneefall", + "73-day": "Schnee", + "73-night": "Schnee", + "75-day": "Starker Schneefall", + "75-night": "Starker Schneefall", + "77-day": "Schneegriesel", + "77-night": "Schneegriesel", + "80-day": "Leichte Schauer", + "80-night": "Leichte Schauer", + "81-day": "Schauer", + "81-night": "Schauer", + "82-day": "Starke Schauer", + "82-night": "Starke Schauer", + "85-day": "Schneeschauer", + "85-night": "Schneeschauer", + "86-day": "Schneeschauer", + "86-night": "Schneeschauer", + "95-day": "Gewitter", + "95-night": "Gewitter", + "96-day": "Gewitter mit Hagel", + "96-night": "Gewitter mit Hagel", + "99-day": "Gewitter mit Hagel", + "99-night": "Gewitter mit Hagel" }, "homebridge": { "available_update": "System", "updates": "Aktualisierungen", "update_available": "Aktualisierung verfügbar", "up_to_date": "Aktuell", - "child_bridges": "Child Bridges", + "child_bridges": "Unter-Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", + "up": "Online", "pending": "Ausstehend", - "down": "Down" + "down": "Offline" + }, + "healthchecks": { + "new": "Neu", + "up": "Online", + "grace": "In Karenzzeit", + "down": "Offline", + "paused": "Pausiert", + "status": "Status", + "last_ping": "Letzter Ping", + "never": "Noch keine Pings" + }, + "watchtower": { + "containers_scanned": "Überprüft", + "containers_updated": "Aktualisiert", + "containers_failed": "Fehlgeschlagen" }, "autobrr": { "approvedPushes": "Genehmigt", @@ -337,11 +548,6 @@ "filters": "Filter", "indexers": "Indexer" }, - "watchtower": { - "containers_scanned": "Überprüft", - "containers_updated": "Aktualisiert", - "containers_failed": "Fehlgeschlagen" - }, "tubearchivist": { "downloads": "Warteschlange", "videos": "Videos", @@ -349,17 +555,12 @@ "playlists": "Wiedergabelisten" }, "truenas": { - "load": "Systembelastung", + "load": "Systemlast", "uptime": "Betriebszeit", - "alerts": "Warnungen", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Keine Aktiven Übertragungen", - "please_wait": "Bitte warten" + "alerts": "Warnungen" }, "pyload": { - "speed": "Geschwindigkeit", + "speed": "Datenrate", "active": "Aktiv", "queue": "Warteschlange", "total": "Gesamt" @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Kanäle", - "hd": "HD" - }, - "ping": { - "ping": "Ping", - "error": "Fehler" + "hd": "HD", + "tunerCount": "Empfänger", + "channelNumber": "Kanal", + "channelNetwork": "Netzwerk", + "signalStrength": "Stärke", + "signalQuality": "Qualität", + "symbolQuality": "Qualität", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Bestanden", @@ -383,94 +588,74 @@ "unknown": "Unbekannt" }, "paperlessngx": { - "inbox": "Eingang", + "inbox": "Posteingang", "total": "Gesamt" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Warteschlange", - "processed": "Verarbeitet", - "errored": "Fehlgeschlagen", - "saved": "Gespeichert" - }, - "miniflux": { - "unread": "Ungelesen", - "read": "Lesen" + "peanut": { + "battery_charge": "Akkuladung", + "ups_load": "USV-Auslastung", + "ups_status": "USV-Status", + "online": "Online", + "on_battery": "Im Akkubetrieb", + "low_battery": "Akkustand niedrig" }, "nextdns": { - "wait": "Bitte Warten", + "wait": "Bitte warten", "no_devices": "Keine Daten empfangen" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Verbundene APs", - "activeUser": "Aktive Geräte", - "alerts": "Meldungen", - "connectedGateway": "Verbundene Gateways", - "connectedSwitches": "Verbundene Switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { - "cpuLoad": "CPU Auslastung", + "cpuLoad": "CPU-Auslastung", "memoryUsed": "RAM Verbrauch", - "uptime": "Laufzeit", + "uptime": "Betriebszeit", "numberOfLeases": "Leases" }, "xteve": { "streams_all": "Keine Übertragungen", "streams_active": "Aktive Streams", - "streams_xepg": "XEPG Kanäle" + "streams_xepg": "XEPG-Kanäle" + }, + "opendtu": { + "yieldDay": "Heute", + "absolutePower": "Leistung", + "relativePower": "Leistung %", + "limit": "Grenze" }, "opnsense": { - "cpu": "CPU Auslastung", + "cpu": "CPU-Auslastung", "memory": "Aktiver RAM", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" + "wanUpload": "WAN-Upload", + "wanDownload": "WAN-Download" }, "moonraker": { - "printer_state": "Drucker Status", - "print_status": "Druck Status", + "printer_state": "Druckerstatus", + "print_status": "Druckstatus", "print_progress": "Fortschritt", "layers": "Schichten" }, - "medusa": { - "wanted": "Gesucht", - "queued": "Wartend", - "series": "Serie" - }, "octoprint": { "printer_state": "Status", - "temp_tool": "Düsen Temp", - "temp_bed": "Bett Temp", + "temp_tool": "Düsentemperatur", + "temp_bed": "Betttemperatur", "job_completion": "Fortschritt" }, "cloudflared": { "origin_ip": "Ursprüngliche IP", "status": "Status" }, + "pfsense": { + "load": "Durchschnittliche Last", + "memory": "Speichernutzung", + "wanStatus": "WAN-Status", + "up": "Online", + "down": "Offline", + "temp": "Temperatur", + "disk": "Datenträgernutzung", + "wanIP": "WAN-IP" + }, "proxmoxbackupserver": { - "cpu_usage": "CPU", "datastore_usage": "Datenspeicher", - "failed_tasks_24h": "Fehlgeschlagene Prozesse 24h", + "failed_tasks_24h": "Fehlgeschlagene Prozesse (24 h)", + "cpu_usage": "CPU", "memory_usage": "RAM" }, "immich": { @@ -482,17 +667,28 @@ "uptimekuma": { "up": "Seiten verfügbar", "down": "Seiten nicht verfügbar", - "uptime": "Laufzeit", + "uptime": "Betriebszeit", "incident": "Vorfall", - "m": "m" + "m": "min" + }, + "atsumeru": { + "series": "Serien", + "archives": "Archive", + "chapters": "Kapitel", + "categories": "Kategorien" }, "komga": { "libraries": "Bibliotheken", - "series": "Serie", + "series": "Serien", "books": "Bücher" }, + "diskstation": { + "days": "Tage", + "uptime": "Betriebszeit", + "volumeAvailable": "Verfügbar" + }, "mylar": { - "series": "Serie", + "series": "Serien", "issues": "Probleme", "wanted": "Gesucht" }, @@ -502,22 +698,21 @@ "videos": "Videos", "people": "Personen" }, - "diskstation": { - "days": "Tage", - "uptime": "Laufzeit", - "volumeAvailable": "Verfügbar" - }, "fileflows": { "queue": "Warteschlange", "processing": "Wird verarbeitet", "processed": "Verarbeitet", "time": "Zeit" }, + "firefly": { + "networth": "Reinvermögen", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Datenquellen", - "totalalerts": "Gesamte Meldungen", - "alertstriggered": "Ausgelöste Alarme" + "totalalerts": "Warnungen gesamt", + "alertstriggered": "Warnungen ausgelöst" }, "nextcloud": { "cpuload": "CPU Last", @@ -539,36 +734,24 @@ "total_workers": "Alle Worker", "records_total": "Länge der Warteschlange" }, - "healthchecks": { - "grace": "In Karenzzeit", - "new": "Neu", - "up": "Online", - "down": "Offline", - "paused": "Pausiert", - "status": "Status", - "last_ping": "Letzter Ping", - "never": "Noch keine Pings" - }, "pterodactyl": { "servers": "Server", - "nodes": "Nodes" + "nodes": "Knotenpunkte" }, "prometheus": { "targets_up": "Ziele Up", "targets_down": "Ziele Down", "targets_total": "Alle Ziele" }, - "minecraft": { - "players": "Spieler", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Seiten verfügbar", + "down": "Seiten nicht verfügbar", + "uptime": "Betriebszeit" }, "ghostfolio": { - "gross_percent_max": "Alle Zeit", "gross_percent_today": "Heute", - "gross_percent_1y": "Ein Jahr" + "gross_percent_1y": "Ein Jahr", + "gross_percent_max": "Gesamt" }, "audiobookshelf": { "podcasts": "Podcasts", @@ -577,93 +760,287 @@ "booksDuration": "Dauer" }, "homeassistant": { - "people_home": "Personen daheim", + "people_home": "Personen zuhause", "lights_on": "Lichter an", "switches_on": "Schalter an" }, - "freshrss": { - "subscriptions": "Abonnements", - "unread": "Ungelesen" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Aufnahmen", - "scheduled": "Geplant", - "passes": "Pässe" - }, "whatsupdocker": { "monitoring": "Überwacht", "updates": "Aktualisierungen" }, - "tailscale": { - "address": "Adresse", - "weeks": "{{number}}W", - "days": "{{number}}T", - "hours": "{{number}}S", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "Vor {{value}}", - "expires": "Läuft ab", - "last_seen": "Zuletzt gesehen", - "never": "Nie", - "now": "Jetzt", - "years": "{{number}}J" - }, - "qnap": { - "cpuUsage": "CPU Nutzung", - "memUsage": "MEM Nutzung", - "systemTempC": "System Temp", - "poolUsage": "Pool Nutzung", - "volumeUsage": "Volume Usage", - "invalid": "Ungültig" - }, - "pfsense": { - "load": "Durchschnittliche Last", - "temp": "Temp", - "disk": "Datenträgernutzung", - "wanIP": "WAN IP", - "memory": "Speichernutzung", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Aktuelle Anfragen", - "requests_failed": "Fehlgeschlagene Anfragen" - }, - "evcc": { - "watt_hour": "Wh", - "pv_power": "Produktion", - "battery_soc": "Batterie", - "grid_power": "Grid", - "home_power": "Verbrauch", - "charge_power": "Ladegerät" - }, - "pialert": { - "total": "Gesamt", - "connected": "Verbunden", - "new_devices": "Neue Geräte", - "down_alerts": "Down Alarme" + "calibreweb": { + "books": "Bücher", + "authors": "Autoren", + "categories": "Kategorien", + "series": "Serien" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Warteschlange", + "downloadBytesRemaining": "Verbleibend", + "downloadTotalBytes": "Größe", + "downloadSpeed": "Datenrate" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Serien", + "totalFiles": "Dateien" }, - "azurePipelines": { - "result": "Result", + "azuredevops": { + "result": "Ergebnis", "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "buildId": "Build-ID", + "succeeded": "Erfolgreich", + "notStarted": "Nicht gestartet", + "failed": "Fehlgeschlagen", + "canceled": "Abgebrochen", + "inProgress": "In Bearbeitung", + "totalPrs": "PRs gesamt", + "myPrs": "Meine PRs", + "approved": "Genehmigt" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Karte", + "currentPlayers": "Aktuelle Spieler", + "players": "Spieler", + "maxPlayers": "Max. Spieler", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "OK", + "errored": "Fehler", + "noRecent": "Veraltet", + "totalUsed": "Belegter Speicherplatz" + }, + "mealie": { + "recipes": "Rezepte", + "users": "Benutzer", + "categories": "Kategorien", + "tags": "Schlagwörter" + }, + "openmediavault": { + "downloading": "Wird heruntergeladen", + "total": "Gesamt", + "running": "Wird ausgeführt", + "stopped": "Gestoppt", + "passed": "Bestanden", + "failed": "Fehlgeschlagen" + }, + "openwrt": { + "uptime": "Betriebszeit", + "cpuLoad": "CPU-Last (5 min-Durchschnitt)", + "up": "Online", + "down": "Offline", + "bytesTx": "Übertragen", + "bytesRx": "Empfangen" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Betriebszeit", + "lastDown": "Letzter Ausfall", + "downDuration": "Ausfalldauer", + "sitesUp": "Seiten verfügbar", + "sitesDown": "Seiten nicht verfügbar", + "paused": "Pausiert", + "notyetchecked": "Noch nicht geprüft", + "up": "Online", + "seemsdown": "Scheint nicht verfügbar", + "down": "Offline", + "unknown": "Unbekannt" + }, + "calendar": { + "inCinemas": "Im Kino", + "physicalRelease": "Physische Version", + "digitalRelease": "Digitale Version", + "noEventsToday": "Heute keine Ereignisse!", + "noEventsFound": "Keine Termine gefunden" + }, + "romm": { + "platforms": "Plattformen", + "totalRoms": "Spiele", + "saves": "Spielstände", + "states": "Speicherstände", + "screenshots": "Bildschirmfotos", + "totalfilesize": "Gesamtgröße" + }, + "mailcow": { + "domains": "Domänen", + "mailboxes": "Postfächer", + "mails": "E-Mails", + "storage": "Speicher" + }, + "netdata": { + "warnings": "Warnungen", + "criticals": "Kritisch" + }, + "plantit": { + "events": "Ereignisse", + "plants": "Pflanzen", + "photos": "Fotos", + "species": "Spezies" + }, + "gitea": { + "notifications": "Benachrichtigungen", + "issues": "Probleme", + "pulls": "Pull-Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Szenen", + "scenesPlayed": "Gespielte Szenen", + "playCount": "Wiedergaben gesamt", + "playDuration": "Zeit angesehen", + "sceneSize": "Szenengröße", + "sceneDuration": "Szenendauer", + "images": "Bilder", + "imageSize": "Bildgröße", + "galleries": "Galerien", + "performers": "Darsteller", + "studios": "Studios", + "movies": "Filme", + "tags": "Schlagwörter", + "oCount": "O-Anzahl" + }, + "tandoor": { + "users": "Benutzer", + "recipes": "Rezepte", + "keywords": "Schlagwörter" + }, + "homebox": { + "items": "Objekte", + "totalWithWarranty": "Mit Garantie", + "locations": "Orte", + "labels": "Labels", + "users": "Benutzer", + "totalValue": "Gesamtwert" + }, + "crowdsec": { + "alerts": "Warnungen", + "bans": "Banns" + }, + "wgeasy": { + "connected": "Verbunden", + "enabled": "Aktiviert", + "disabled": "Deaktiviert", + "total": "Gesamt" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "Mit Auth", + "outdated": "Veraltet", + "banned": "Gebannt" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Aktien", + "loading": "Wird geladen", + "open": "Offen - US-Markt", + "closed": "Geschlossen - US-Markt", + "invalidConfiguration": "Ungültige Konfiguration" + }, + "frigate": { + "cameras": "Kameras", + "uptime": "Betriebszeit", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Sammlungen", + "tags": "Schlagwörter" + }, + "zabbix": { + "unclassified": "Nicht klassifiziert", + "information": "Informationen", + "warning": "Warnung", + "average": "Durchschnitt", + "high": "Hoch", + "disaster": "Katastrophe" + }, + "lubelogger": { + "vehicle": "Fahrzeug", + "vehicles": "Fahrzeuge", + "serviceRecords": "Wartungseinträge", + "reminders": "Erinnerungen", + "nextReminder": "Nächste Erinnerung", + "none": "Keine" + }, + "vikunja": { + "projects": "Aktive Projekte", + "tasks7d": "Diese Woche fällige Aufgaben", + "tasksOverdue": "Überfällige Aufgaben", + "tasksInProgress": "Aufgaben in Arbeit" + }, + "headscale": { + "name": "Name", + "address": "Adresse", + "last_seen": "Zuletzt gesehen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systeme", + "up": "Online", + "down": "Offline", + "paused": "Pausiert", + "pending": "Ausstehend", + "status": "Status", + "updated": "Aktualisiert", + "cpu": "CPU", + "memory": "RAM", + "disk": "Festplatte", + "network": "NET" + }, + "argocd": { + "apps": "Anwendungen", + "synced": "Synchronisiert", + "outOfSync": "Nicht mehr synchronisiert", + "healthy": "Fehlerfrei", + "degraded": "Beeinträchtigt", + "progressing": "Fortschritt", + "missing": "Fehlend", + "suspended": "Unterbrochen" + }, + "spoolman": { + "loading": "Wird geladen" + }, + "gitlab": { + "groups": "Gruppen", + "issues": "Probleme", + "merges": "Merge Requests", + "projects": "Projekte" + }, + "apcups": { + "status": "Status", + "load": "Last", + "bcharge": "Akkuladung", + "timeleft": "Verbleibende Zeit" + }, + "hoarder": { + "bookmarks": "Lesezeichen", + "favorites": "Favoriten", + "archived": "Archiviert", + "highlights": "Highlights", + "lists": "Listen", + "tags": "Schlagwörter" + }, + "slskd": { + "slskStatus": "Netzwerk", + "connected": "Verbunden", + "disconnected": "Getrennt", + "updateStatus": "Update", + "update_yes": "Verfügbar", + "update_no": "Aktuell", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Dateien" } } diff --git a/public/locales/el/common.json b/public/locales/el/common.json index 506a25d7..b1cbe307 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -1,87 +1,24 @@ { - "resources": { - "used": "χρησιμοποιημένο", - "load": "Φόρτωση", - "cpu": "Επεξεργαστής", - "mem": "MEM", - "temp": "ΘΕΡΜΟΚΡΑΣΪΑ", - "total": "Σύνολο", - "free": "Δωρεάν", - "max": "Μέγιστο", - "uptime": "ΠΑΝΩ", + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", "months": "mo", "days": "d", "hours": "h", - "minutes": "m" - }, - "omada": { - "activeUser": "Ενεργές συσκευές", - "alerts": "Ειδοποιήσεις", - "connectedAp": "Συνδεδεμένα APs", - "connectedGateway": "Συνδεδεμένα gateways", - "connectedSwitches": "Συνδεδεμένα switches" - }, - "wmo": { - "0-night": "Clear", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "0-day": "Sunny", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Λείπει ο τύπος widget: {{type}}", @@ -101,9 +38,20 @@ "search": { "placeholder": "Αναζήτηση…" }, + "resources": { + "cpu": "Επεξεργαστής", + "mem": "Μνήμη", + "total": "Σύνολο", + "free": "Δωρεάν", + "used": "χρησιμοποιημένο", + "load": "Φόρτωση", + "temp": "Θερμοκρασία", + "max": "Μέγιστο", + "uptime": "Χρόνος Λειτουργίας" + }, "unifi": { "users": "Χρήστες", - "uptime": "Χρόνος λειτουργίας συστήματος", + "uptime": "Χρόνος Λειτουργίας", "days": "Ημέρες", "wan": "WAN", "lan": "LAN", @@ -113,7 +61,7 @@ "wlan_devices": "WLAN Συσκευές", "lan_users": "LAN Χρήστες", "wlan_users": "WLAN Χρήστες", - "up": "ΠΑΝΩ", + "up": "Χρόνος Λειτουργίας", "down": "ΚΑΤΩ", "wait": "Παρακαλώ περιμένετε", "empty_data": "Άγνωστη κατάσταση υποσυστήματος" @@ -121,22 +69,33 @@ "docker": { "rx": "RX", "tx": "TX", - "mem": "MEM", - "cpu": "CPU", + "mem": "Μνήμη", + "cpu": "Επεξεργαστής", "running": "Τρέχων", "offline": "Εκτός σύνδεσης", "error": "Σφάλμα", "unknown": "Άγνωστο", "healthy": "Υγειές", - "exited": "Έκλεισε", "starting": "Ξεκινάει", - "partial": "Μερικό", "unhealthy": "Άρρωστο", - "not_found": "Δεν βρέθηκε" + "not_found": "Δεν βρέθηκε", + "exited": "Έκλεισε", + "partial": "Μερικό" }, "ping": { "error": "Σφάλμα", - "ping": "Ping" + "ping": "Ping", + "down": "Ping down", + "up": "Ping up", + "not_available": "Μη διαθέσιμο" + }, + "siteMonitor": { + "http_status": "Κατάσταση HTTP", + "error": "Σφάλμα", + "response": "Απόκριση", + "down": "Ping down", + "up": "Ping up", + "not_available": "Μη διαθέσιμο" }, "emby": { "playing": "Παίζει", @@ -148,22 +107,79 @@ "episodes": "Επεισόδια", "songs": "Τραγούδια" }, + "esphome": { + "offline": "Εκτός σύνδεσης", + "offline_alt": "Εκτός σύνδεσης", + "online": "Συνδεδεμένοι", + "total": "Σύνολο", + "unknown": "Άγνωστο" + }, + "evcc": { + "pv_power": "Παραγωγή", + "battery_soc": "Μπαταρία", + "grid_power": "Πλέγμα", + "home_power": "Κατανάλωση", + "charge_power": "Φορτιστής", + "kilowatt": "kW" + }, "flood": { "download": "Λήξη", - "upload": "Φόρτωση", - "leech": "Αφαίμαξη", - "seed": "Σπείρε" + "upload": "Μεταφόρτωση", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Συνδρομές", + "unread": "Μη Διαβασμένο" + }, + "fritzbox": { + "connectionStatus": "Κατάσταση", + "connectionStatusUnconfigured": "Μη Ρυθμισμένο", + "connectionStatusConnecting": "Κατάσταση Σύνδεσης", + "connectionStatusAuthenticating": "Ταυτοποίηση", + "connectionStatusPendingDisconnect": "Εκκρεμεί Αποσύνδεση", + "connectionStatusDisconnecting": "Αποσύνδεση", + "connectionStatusDisconnected": "Αποσυνδέθηκε", + "connectionStatusConnected": "Συνδέθηκε", + "uptime": "Χρόνος Λειτουργίας", + "maxDown": "Μέγιστο Download", + "maxUp": "Μέγιστο Upload", + "down": "Ping down", + "up": "Ping up", + "received": "Ληφθέντα", + "sent": "Απεσταλμένα", + "externalIPAddress": "Εξωτερική IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Τρέχοντα αιτήματα", + "requests_failed": "Αποτυχημένα αιτήματα" }, "changedetectionio": { "totalObserved": "Συνολικά παρατηρηθείσα", "diffsDetected": "Εντοπίστηκαν διαφορές" }, + "channelsdvrserver": { + "shows": "Εκπομπές", + "recordings": "Εγγραφές", + "scheduled": "Προγραμματισμένα", + "passes": "Περάσματα" + }, "tautulli": { - "playing": "Αναπαράγει", - "transcoding": "Μετακωδικοποίηση", + "playing": "Παίζει", + "transcoding": "Διακωδικοποίηση", "bitrate": "Ρυθμός bit", "no_active": "Δεν υπάρχουν ενεργές ροές", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Έλεγχος Σύνδεσης με Plex" + }, + "omada": { + "connectedAp": "Συνδεδεμένα APs", + "activeUser": "Ενεργές συσκευές", + "alerts": "Ειδοποιήσεις", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Συνδεδεμένα switches" }, "nzbget": { "rate": "Ρυθμός", @@ -172,204 +188,266 @@ }, "plex": { "streams": "Ενεργές Ροές", + "albums": "Άλμπουμ", "movies": "Ταινίες", - "tv": "Τηλεοπτικές εκπομπές", - "albums": "Άλμπουμ" + "tv": "Τηλεοπτικές εκπομπές" }, "sabnzbd": { - "rate": "Βαθμός", + "rate": "Ρυθμός", "queue": "Ουρά", "timeleft": "Χρόνος που απομένει" }, "rutorrent": { "active": "Ενεργό", - "upload": "Ανέβασμα", - "download": "Κατέβασμα" + "upload": "Μεταφόρτωση", + "download": "Λήξη" }, "transmission": { - "download": "Κατέβασμα", - "upload": "Ανέβασμα", + "download": "Λήξη", + "upload": "Μεταφόρτωση", "leech": "Leech", "seed": "Seed" }, "qbittorrent": { - "download": "Κατέβασμα", - "upload": "Ανέβασμα", + "download": "Λήξη", + "upload": "Μεταφόρτωση", "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "Χρήση επεξεργαστή", + "memUsage": "Χρήση μνήμης", + "systemTempC": "Θερμοκρασία συστήματος", + "poolUsage": "Χρήση πισίνας", + "volumeUsage": "Χρήση Όγκου", + "invalid": "Μη έγκυρο" + }, "deluge": { - "download": "Κατέβασμα", - "upload": "Ανέβασμα", + "download": "Λήξη", + "upload": "Μεταφόρτωση", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Λήξη", + "upload": "Μεταφόρτωση", "leech": "Leech", "seed": "Seed" }, "sonarr": { - "series": "Σειρές", "wanted": "Επιθυμούντε", "queued": "Σε σειρά", - "queue": "Queue", - "unknown": "Unknown" - }, - "downloadstation": { - "download": "Μεταφόρτωση", - "upload": "Φόρτωση", - "leech": "Leech", - "seed": "Seed" + "series": "Σειρές", + "queue": "Ουρά", + "unknown": "Άγνωστο" }, "radarr": { "wanted": "Επιθυμούντε", "missing": "Απουσιάζει", "queued": "Σε σειρά", "movies": "Ταινίες", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Ουρά", + "unknown": "Άγνωστο" }, "lidarr": { - "wanted": "Θέλετε", - "queued": "Στη σειρά", - "artists": "Artists" + "wanted": "Επιθυμούντε", + "queued": "Σε σειρά", + "artists": "Καλλιτέχνες" }, "readarr": { - "wanted": "Θέλετε", - "queued": "Στη σειρά", + "wanted": "Επιθυμούντε", + "queued": "Σε σειρά", "books": "Βιβλία" }, "bazarr": { "missingEpisodes": "Επεισόδια που λείπουν", - "missingMovies": "Missing Movies" + "missingMovies": "Ταινίες που Λείπουν" }, "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Σε εκκρεμότητα", + "approved": "Εγκρίθηκε", + "available": "Διαθέσιμο" }, "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Σε εκκρεμότητα", + "approved": "Εγκρίθηκε", + "available": "Διαθέσιμο" }, "overseerr": { - "pending": "Pending", - "processing": "Processing", - "approved": "Approved", - "available": "Available" + "pending": "Σε εκκρεμότητα", + "processing": "Σε επεξεργασία", + "approved": "Εγκρίθηκε", + "available": "Διαθέσιμο" + }, + "netalertx": { + "total": "Σύνολο", + "connected": "Συνδέθηκε", + "new_devices": "Νέες συσκευές", + "down_alerts": "Ειδοποιήσεις offline" }, "pihole": { "queries": "Queries", - "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked": "Αποκλεισμένο", + "blocked_percent": "Αποκλεισμένο %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" + "blocked": "Αποκλεισμένο", + "filtered": "Φιλτραρισμένα", + "latency": "Καθυστέρηση" }, "speedtest": { - "upload": "Upload", - "download": "Download", + "upload": "Μεταφόρτωση", + "download": "Λήξη", "ping": "Ping" }, "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" + "running": "Τρέχων", + "stopped": "Σταματημένο", + "total": "Σύνολο" + }, + "suwayomi": { + "download": "Κατεβασμένο", + "nondownload": "Non-Downloaded", + "read": "Διαβάστηκε", + "unread": "Μη Διαβασμένο", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Διεύθυνση", + "expires": "Λήγει", + "never": "Ποτέ", + "last_seen": "Τελευταία Σύνδεση", + "now": "Τώρα", + "years": "{{number}}χρόνια", + "weeks": "{{number}}εβδομάδες", + "days": "{{number}}μέρες", + "hours": "{{number}}ώρες", + "minutes": "{{number}}λεπτά", + "seconds": "{{number}}δευτερόλεπτα", + "ago": "{{value}} πρίν" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Αποκλεισμένο", + "totalDropped": "Dropped", + "totalClients": "Πελάτες" }, "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" + "queue": "Ουρά", + "processed": "Σε επεξεργασία", + "errored": "Σφάλματα", + "saved": "Αποθηκεύτηκε" }, "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" + "routers": "Δρομολογητές", + "services": "Υπηρεσίες", + "middleware": "Ενδιάμεσο λογισμικό" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Δεν υπάρχουν ενεργές ροές", + "please_wait": "Παρακαλώ περιμένετε" }, "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" + "enabled": "Ενεργοποιημένο", + "disabled": "Απενεργοποιημένο", + "total": "Σύνολο" }, "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" + "configure": "Ρυθμίστε ένα ή περισσότερα κρυπτονομίσματα για παρακολούθηση", + "1hour": "1 Ώρα", + "1day": "1 ημέρα", + "7days": "7 Ημέρες", + "30days": "30 Ημέρες" }, "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" + "apps": "Εφαρμογές", + "clients": "Πελάτες", + "messages": "Μηνύματα" }, "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", + "enableIndexers": "Ευρετήρια", + "numberOfGrabs": "Αρπαγές", "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", + "numberOfFailGrabs": "Αποτυχημένες Αρπαγές", "numberOfFailQueries": "Fail Queries" }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" - }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "Ρυθμισμένο", + "errored": "Σφάλματα" + }, + "strelaysrv": { + "numActiveSessions": "Συνεδρίες", + "numConnections": "Συνδέσεις", + "dataRelayed": "Relayed", + "transferRate": "Ρυθμός" }, "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" + "user_count": "Χρήστες", + "status_count": "Δημοσιεύσεις", + "domain_count": "Τομείς" }, "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "wanted": "Επιθυμούντε", + "queued": "Σε σειρά", + "series": "Σειρές" }, "minecraft": { - "players": "Players", - "version": "Version", - "down": "Offline", - "status": "Status", - "up": "Online" + "players": "Παίκτες", + "version": "Έκδοση", + "status": "Κατάσταση", + "up": "Συνδεδεμένοι", + "down": "Εκτός σύνδεσης" }, "miniflux": { - "read": "Read", - "unread": "Unread" + "read": "Διαβάστηκε", + "unread": "Μη Διαβασμένο" }, "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "users": "Χρήστες", + "loginsLast24H": "Συνδέσεις (24h)", + "failedLoginsLast24H": "Αποτυχημένες Συνδέσεις (24h)" }, "proxmox": { - "mem": "MEM", - "cpu": "CPU", + "mem": "Μνήμη", + "cpu": "Επεξεργαστής", "lxc": "LXC", "vms": "VMs" }, "glances": { - "cpu": "CPU", - "wait": "Please wait", - "temp": "TEMP", - "uptime": "UP", + "cpu": "Επεξεργαστής", + "load": "Φόρτωση", + "wait": "Παρακαλώ περιμένετε", + "temp": "Θερμοκρασία", + "_temp": "Temp", + "warn": "Warn", + "uptime": "Χρόνος Λειτουργίας", + "total": "Σύνολο", + "free": "Δωρεάν", + "used": "χρησιμοποιημένο", "days": "d", "hours": "h", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load" + "crit": "Crit", + "read": "Διαβάστηκε", + "write": "Write", + "gpu": "GPU", + "mem": "Μνήμη", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -377,293 +455,592 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" + }, + "wmo": { + "0-day": "Λιακάδα", + "0-night": "Καθαρή", + "1-day": "Κυρίως Ηλιόλουστη", + "1-night": "Κυρίως καθαρή", + "2-day": "Αραιές Νεφώσεις", + "2-night": "Αραιές Νεφώσεις", + "3-day": "Συννεφιές", + "3-night": "Συννεφιές", + "45-day": "Ομίχλη", + "45-night": "Ομίχλη", + "48-day": "Ομίχλη", + "48-night": "Ομίχλη", + "51-day": "Ψιλόβροχο", + "51-night": "Ψιλόβροχο", + "53-day": "Ψιλόβροχο", + "53-night": "Ψιλόβροχο", + "55-day": "Heavy Drizzle", + "55-night": "Heavy Drizzle", + "56-day": "Light Freezing Drizzle", + "56-night": "Light Freezing Drizzle", + "57-day": "Παγωμένο ψιχάλισμα", + "57-night": "Παγωμένο ψιχάλισμα", + "61-day": "Ψιλόβροχο", + "61-night": "Ψιλόβροχο", + "63-day": "Βροχή", + "63-night": "Βροχή", + "65-day": "Δυνατή βροχή", + "65-night": "Δυνατή βροχή", + "66-day": "Παγωμένη βροχή", + "66-night": "Παγωμένη βροχή", + "67-day": "Παγωμένη βροχή", + "67-night": "Παγωμένη βροχή", + "71-day": "Ελαφριά Χιονόπτωση", + "71-night": "Ελαφριά Χιονόπτωση", + "73-day": "Χιόνι", + "73-night": "Χιόνι", + "75-day": "Ισχυρή χιονόπτωση", + "75-night": "Ισχυρή χιονόπτωση", + "77-day": "Κόκκοι Χιονιού", + "77-night": "Κόκκοι Χιονιού", + "80-day": "Ασθενείς βροχές", + "80-night": "Ασθενείς βροχές", + "81-day": "Βροχοπτώσεις", + "81-night": "Βροχοπτώσεις", + "82-day": "Ισχυρές βροχοπτώσεις", + "82-night": "Ισχυρές βροχοπτώσεις", + "85-day": "Χιονοπτώσεις", + "85-night": "Χιονοπτώσεις", + "86-day": "Χιονοπτώσεις", + "86-night": "Χιονοπτώσεις", + "95-day": "Καταιγίδα", + "95-night": "Καταιγίδα", + "96-day": "Καταιγίδα Με Χαλάζι", + "96-night": "Καταιγίδα Με Χαλάζι", + "99-day": "Καταιγίδα Με Χαλάζι", + "99-night": "Καταιγίδα Με Χαλάζι" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "available_update": "Σύστημα", + "updates": "Ενημερώσεις", + "update_available": "Διαθέσιμη ενημέρωση", + "up_to_date": "Ενημερωμένο", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "Ping up", + "pending": "Σε εκκρεμότητα", + "down": "Ping down" }, "healthchecks": { "new": "New", - "up": "Online", + "up": "Ping up", "grace": "In Grace Period", - "down": "Offline", + "down": "Ping down", "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "status": "Κατάσταση", + "last_ping": "Τελευταίο Ping", + "never": "Δεν υπάρχουν ping ακόμα" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Σκαναρισμένο", + "containers_updated": "Ενημερώθηκε", + "containers_failed": "Απέτυχε" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Εγκρίθηκε", + "rejectedPushes": "Απορρίφθηκε", + "filters": "Φίλτρα", + "indexers": "Ευρετήρια" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Ουρά", + "videos": "Βίντεο", + "channels": "Κανάλια", + "playlists": "Λίστες αναπαραγωγής" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "load": "Φόρτος Συστήματος", + "uptime": "Χρόνος Λειτουργίας", + "alerts": "Ειδοποιήσεις" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Ταχύτητα", + "active": "Ενεργό", + "queue": "Ουρά", + "total": "Σύνολο" }, "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "public_ip": "Δημόσια ΙΡ", + "region": "Περιοχή", + "country": "Χώρα" }, "hdhomerun": { - "channels": "Channels", - "hd": "HD" + "channels": "Κανάλια", + "hd": "HD", + "tunerCount": "Δέκτες", + "channelNumber": "Κανάλι", + "channelNetwork": "Δίκτυο", + "signalStrength": "Ισχύς σήματος", + "signalQuality": "Ποιότητα", + "symbolQuality": "Ποιότητα", + "networkRate": "Ρυθμός bit", + "clientIP": "Πελάτης" }, "scrutiny": { "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" + "failed": "Απέτυχε", + "unknown": "Άγνωστο" }, "paperlessngx": { - "inbox": "Inbox", - "total": "Total" + "inbox": "Εισερχόμενα", + "total": "Σύνολο" + }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Συνδεδεμένοι", + "on_battery": "Σε μπαταρία", + "low_battery": "Χαμηλή μπαταρία" }, "nextdns": { - "wait": "Please Wait", + "wait": "Παρακαλώ περιμένετε", "no_devices": "No Device Data Received" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" + "cpuLoad": "Φόρτος CPU", + "memoryUsed": "Χρήση μνήμης", + "uptime": "Χρόνος Λειτουργίας", + "numberOfLeases": "Μισθώσεις" }, "xteve": { "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_active": "Ενεργές Ροές", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Σήμερα", + "absolutePower": "Ισχύς", + "relativePower": "Ισχύς %", + "limit": "Limit" + }, "opnsense": { - "cpu": "CPU Load", + "cpu": "Φόρτος CPU", "memory": "Active Memory", "wanUpload": "WAN Upload", "wanDownload": "WAN Download" }, "moonraker": { - "printer_state": "Printer State", - "print_status": "Print Status", + "printer_state": "Κατάσταση Εκτυπωτή", + "print_status": "Κατάσταση Εκτύπωσης", "print_progress": "Progress", "layers": "Layers" }, "octoprint": { - "printer_state": "Status", + "printer_state": "Κατάσταση", "temp_tool": "Tool temp", "temp_bed": "Bed temp", - "job_completion": "Completion" + "job_completion": "Ολοκλήρωση" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "fileflows": { - "processed": "Processed", - "queue": "Queue", - "processing": "Processing", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Διάρκεια" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Συνδρομές", - "unread": "Αδιάβαστο" - }, - "channelsdvrserver": { - "shows": "Εκπομπές", - "recordings": "Εγγραφές", - "scheduled": "Προγραμματισμένα", - "passes": "Passes" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" - }, - "tailscale": { - "address": "Address", - "never": "Never", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "expires": "Expires", - "last_seen": "Last Seen", - "now": "Now", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "Χρήση επεξεργαστή", - "memUsage": "Χρήση μνήμης", - "systemTempC": "Θερμοκρασία συστήματος", - "poolUsage": "Χρήση πισίνας", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "status": "Κατάσταση" }, "pfsense": { "load": "Load Avg", "memory": "Mem Usage", "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", + "up": "Ping up", + "down": "Ping down", "temp": "Temp", - "disk": "Disk Usage", + "disk": "Χρήση δίσκου", "wanIP": "WAN IP" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Τρέχοντα αιτήματα", - "requests_failed": "Αποτυχημένα αιτήματα" + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Failed Tasks 24h", + "cpu_usage": "Επεξεργαστής", + "memory_usage": "Memory" }, - "evcc": { - "watt_hour": "Wh", - "pv_power": "Παραγωγή", - "battery_soc": "Μπαταρία", - "grid_power": "Πλέγμα", - "home_power": "Κατανάλωση", - "charge_power": "Φορτιστής" + "immich": { + "users": "Χρήστες", + "photos": "Φωτογραφίες", + "videos": "Βίντεο", + "storage": "Αποθηκευτικός χώρος" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "Online τοποθεσίες", + "down": "Offline τοποθεσίες", + "uptime": "Χρόνος Λειτουργίας", + "incident": "Περιστατικό", + "m": "m" + }, + "atsumeru": { + "series": "Σειρές", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Κατηγορίες" + }, + "komga": { + "libraries": "Libraries", + "series": "Σειρές", + "books": "Βιβλία" + }, + "diskstation": { + "days": "Ημέρες", + "uptime": "Χρόνος Λειτουργίας", + "volumeAvailable": "Διαθέσιμο" + }, + "mylar": { + "series": "Σειρές", + "issues": "Issues", + "wanted": "Επιθυμούντε" + }, + "photoprism": { + "albums": "Άλμπουμ", + "photos": "Φωτογραφίες", + "videos": "Βίντεο", + "people": "Άνθρωποι" + }, + "fileflows": { + "queue": "Ουρά", + "processing": "Σε επεξεργασία", + "processed": "Σε επεξεργασία", + "time": "Ώρα" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Πίνακας Ελέγχου", + "datasources": "Πηγές Δεδομένων", + "totalalerts": "Σύνολο Ειδοποιήσεων", + "alertstriggered": "Ενεργοποιημένες Ειδοποιήσεις" + }, + "nextcloud": { + "cpuload": "Φόρτος CPU", + "memoryusage": "Χρήση Mνήμης", + "freespace": "Ελεύθερος χώρος", + "activeusers": "Ενεργοί χρήστες", + "numfiles": "Αρχεία", + "numshares": "Κοινόχρηστα στοιχεία" + }, + "kopia": { + "status": "Κατάσταση", + "size": "Μέγεθος", + "lastrun": "Τελευταία εκτέλεση", + "nextrun": "Επόμενη εκτέλεση", + "failed": "Απέτυχε" + }, + "unmanic": { + "active_workers": "Ενεργοί χρήστες", + "total_workers": "Total Workers", + "records_total": "Μήκος Ουράς" + }, + "pterodactyl": { + "servers": "Διακομιστές", + "nodes": "Κόμβοι [Nodes]" + }, + "prometheus": { + "targets_up": "Στόχοι Πάνω", + "targets_down": "Στόχοι Κάτω", + "targets_total": "Συνολικοί Στόχοι" + }, + "gatus": { + "up": "Online τοποθεσίες", + "down": "Offline τοποθεσίες", + "uptime": "Χρόνος Λειτουργίας" + }, + "ghostfolio": { + "gross_percent_today": "Σήμερα", + "gross_percent_1y": "Ένας χρόνος", + "gross_percent_max": "Διαχρονικά" + }, + "audiobookshelf": { + "podcasts": "Podcasts", + "books": "Βιβλία", + "podcastsDuration": "Διάρκεια", + "booksDuration": "Διάρκεια" + }, + "homeassistant": { + "people_home": "Σύνολο ανθρώπων στο σπίτι", + "lights_on": "Αναμμένα φώτα", + "switches_on": "Ανοιχτοί διακόπτες" + }, + "whatsupdocker": { + "monitoring": "Παρακολούθηση", + "updates": "Ενημερώσεις" + }, + "calibreweb": { + "books": "Βιβλία", + "authors": "Συντάκτες", + "categories": "Κατηγορίες", + "series": "Σειρές" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Ουρά", + "downloadBytesRemaining": "Υπόλοιπο", + "downloadTotalBytes": "Μέγεθος", + "downloadSpeed": "Ταχύτητα" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Σειρές", + "totalFiles": "Αρχεία" }, - "azurePipelines": { - "result": "Result", - "status": "Status", + "azuredevops": { + "result": "Αποτέλεσμα", + "status": "Κατάσταση", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "succeeded": "Πέτυχε", + "notStarted": "Δεν ξεκίνησε", + "failed": "Απέτυχε", + "canceled": "Ακυρώθηκε", + "inProgress": "Σε εξέλιξη", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Εγκρίθηκε" + }, + "gamedig": { + "status": "Κατάσταση", + "online": "Συνδεδεμένοι", + "offline": "Εκτός σύνδεσης", + "name": "Όνομα", + "map": "Χάρτης", + "currentPlayers": "Current players", + "players": "Παίκτες", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Οκ", + "errored": "Σφάλματα", + "noRecent": "Απαρχαιωμένη έκδοση", + "totalUsed": "Χώρος αποθήκευσης σε χρήση" + }, + "mealie": { + "recipes": "Συνταγές", + "users": "Χρήστες", + "categories": "Κατηγορίες", + "tags": "Ετικέτες" + }, + "openmediavault": { + "downloading": "Γίνεται λήψη", + "total": "Σύνολο", + "running": "Τρέχων", + "stopped": "Σταματημένο", + "passed": "Passed", + "failed": "Απέτυχε" + }, + "openwrt": { + "uptime": "Χρόνος Λειτουργίας", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Ping up", + "down": "Ping down", + "bytesTx": "Transmitted", + "bytesRx": "Ληφθέντα" + }, + "uptimerobot": { + "status": "Κατάσταση", + "uptime": "Χρόνος Λειτουργίας", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Online τοποθεσίες", + "sitesDown": "Offline τοποθεσίες", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Ping up", + "seemsdown": "Seems Down", + "down": "Ping down", + "unknown": "Άγνωστο" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Τομείς", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Αποθηκευτικός χώρος" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Φωτογραφίες", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Ταινίες", + "tags": "Ετικέτες", + "oCount": "O Count" + }, + "tandoor": { + "users": "Χρήστες", + "recipes": "Συνταγές", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Χρήστες", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Ειδοποιήσεις", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Συνδέθηκε", + "enabled": "Ενεργοποιημένο", + "disabled": "Απενεργοποιημένο", + "total": "Σύνολο" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Λήξη", + "upload": "Μεταφόρτωση" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Χρόνος Λειτουργίας", + "version": "Έκδοση" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Ετικέτες" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Πληροφορία", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Όνομα", + "address": "Διεύθυνση", + "last_seen": "Τελευταία Σύνδεση", + "status": "Κατάσταση", + "online": "Συνδεδεμένοι", + "offline": "Εκτός σύνδεσης" + }, + "beszel": { + "name": "Όνομα", + "systems": "Systems", + "up": "Ping up", + "down": "Ping down", + "paused": "Paused", + "pending": "Σε εκκρεμότητα", + "status": "Κατάσταση", + "updated": "Ενημερώθηκε", + "cpu": "Επεξεργαστής", + "memory": "Μνήμη", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Υγειές", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Απουσιάζει", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Κατάσταση", + "load": "Φόρτωση", + "bcharge": "Battery Charge", + "timeleft": "Χρόνος που απομένει" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Ετικέτες" + }, + "slskd": { + "slskStatus": "Δίκτυο", + "connected": "Συνδέθηκε", + "disconnected": "Αποσυνδέθηκε", + "updateStatus": "Update", + "update_yes": "Διαθέσιμο", + "update_no": "Ενημερωμένο", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Αρχεία" } } diff --git a/public/locales/en/common.json b/public/locales/en/common.json old mode 100644 new mode 100755 index 027b227f..17a6dfc1 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -10,7 +10,15 @@ "bibitrate": "{{value, rate(bits: true; binary: true)}}", "percent": "{{value, percent}}", "number": "{{value, number}}", - "ms": "{{value, number}}" + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Missing Widget Type: {{type}}", @@ -39,15 +47,11 @@ "load": "Load", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" }, "unifi": { "users": "Users", - "uptime": "System Uptime", + "uptime": "Uptime", "days": "Days", "wan": "WAN", "lan": "LAN", @@ -80,7 +84,18 @@ }, "ping": { "error": "Error", - "ping": "Ping" + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Playing", @@ -92,13 +107,20 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Unknown" + }, "evcc": { "pv_power": "Production", "battery_soc": "Battery", "grid_power": "Grid", "home_power": "Consumption", "charge_power": "Charger", - "watt_hour": "Wh" + "kilowatt": "kW" }, "flood": { "download": "Download", @@ -110,6 +132,26 @@ "subscriptions": "Subscriptions", "unread": "Unread" }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, "caddy": { "upstreams": "Upstreams", "requests": "Current requests", @@ -136,7 +178,7 @@ "connectedAp": "Connected APs", "activeUser": "Active devices", "alerts": "Alerts", - "connectedGateway": "Connected gateways", + "connectedGateways": "Connected gateways", "connectedSwitches": "Connected switches" }, "nzbget": { @@ -186,6 +228,10 @@ "leech": "Leech", "seed": "Seed" }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, "downloadstation": { "download": "Download", "upload": "Upload", @@ -237,7 +283,7 @@ "approved": "Approved", "available": "Available" }, - "pialert": { + "netalertx": { "total": "Total", "connected": "Connected", "new_devices": "New Devices", @@ -265,6 +311,16 @@ "stopped": "Stopped", "total": "Total" }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, "tailscale": { "address": "Address", "expires": "Expires", @@ -279,6 +335,19 @@ "seconds": "{{number}}s", "ago": "{{value}} Ago" }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, "tdarr": { "queue": "Queue", "processed": "Processed", @@ -365,13 +434,20 @@ "load": "Load", "wait": "Please wait", "temp": "TEMP", + "_temp": "Temp", "warn": "Warn", "uptime": "UP", "total": "Total", "free": "Free", "used": "Used", "days": "d", - "hours": "h" + "hours": "h", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -379,7 +455,8 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "Sunny", @@ -452,9 +529,9 @@ }, "healthchecks": { "new": "New", - "up": "Online", + "up": "Up", "grace": "In Grace Period", - "down": "Offline", + "down": "Down", "paused": "Paused", "status": "Status", "last_ping": "Last Ping", @@ -480,8 +557,7 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", @@ -496,7 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -507,6 +591,14 @@ "inbox": "Inbox", "total": "Total" }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" + }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" @@ -522,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -573,6 +671,12 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", @@ -600,6 +704,10 @@ "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -635,6 +743,11 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, "ghostfolio": { "gross_percent_today": "Today", "gross_percent_1y": "One year", @@ -655,17 +768,32 @@ "monitoring": "Monitoring", "updates": "Updates" }, + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" + }, "jdownloader": { "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", "downloadTotalBytes": "Size", "downloadSpeed": "Speed" }, + "nextpvr": { + "upcoming": "Upcoming", + "ready": "Recent" + }, + "jdrssdownloader": { + "totalShows": "Tracked", + "retryCache": "Retry Cache", + "feedCache": "Feed Cache" + }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -673,6 +801,277 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "titlecardmaker": { + "totalCards": "Total Cards", + "totalSeries": "Total Series", + "monitoredSeries": "Monitored Series", + "unmonitoredSeries": "Unmonitored Series", + "totalEpisodes": "Total Episodes", + "cardSize": "File Size Of Cards", + "totalFonts": "Total Fonts", + "totalTemplates": "Total Templates", + "totalSyncs": "Total Syncs", + "loadedCards": "Loaded Cards" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "wled": { + "deviceName": "Device Name", + "deviceState": "Device State" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "blueiris": { + "serverName": "Server Name", + "numberOfActiveCams": "Active Cameras", + "numberOfAlerts": "Total Alerts", + "numberOfNewAlerts": "New Alerts" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "Status", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Load", + "bcharge":"Battery Charge", + "timeleft":"Time Left" + }, + "karakeep": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } \ No newline at end of file diff --git a/public/locales/eo/common.json b/public/locales/eo/common.json index 4a1ae6f3..908bd124 100644 --- a/public/locales/eo/common.json +++ b/public/locales/eo/common.json @@ -1,4 +1,25 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Manka Tipo de Fenestraĵo: {{type}}", "api_error": "Eraro de API", @@ -19,22 +40,18 @@ }, "resources": { "cpu": "Ĉefprocesoro", + "mem": "MEM", "total": "Totalo", "free": "Libera", "used": "Uzata", "load": "Ŝarĝo", - "mem": "MEM", "temp": "TEMP", - "months": "mo", "max": "Maks", - "uptime": "UP", - "days": "t", - "hours": "h", - "minutes": "m" + "uptime": "UP" }, "unifi": { "users": "Uzantoj", - "uptime": "Uptempo de la Sistemo", + "uptime": "Uptime", "days": "Tagoj", "wan": "WAN", "lan": "LAN", @@ -53,21 +70,32 @@ "rx": "RX", "tx": "TX", "mem": "MEM", - "cpu": "CPO", + "cpu": "Ĉefprocesoro", + "running": "Rulata", "offline": "Malkonekta", "error": "Eraro", "unknown": "Nekonata", - "running": "Rulata", + "healthy": "Sana", "starting": "Lanĉante", "unhealthy": "Malsana", "not_found": "Ne trovita", "exited": "Eliris", - "partial": "Parta", - "healthy": "Sana" + "partial": "Parta" }, "ping": { "error": "Eraro", - "ping": "Sondaĵo" + "ping": "Sondaĵo", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Eraro", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Ludante", @@ -79,17 +107,80 @@ "episodes": "Epizodoj", "songs": "Kantoj" }, + "esphome": { + "offline": "Malkonekta", + "offline_alt": "Malkonekta", + "online": "Online", + "total": "Totalo", + "unknown": "Nekonata" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Elŝuti", + "upload": "Alŝuti", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Stato", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Total Observed", "diffsDetected": "Diffs Detected" }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", + "playing": "Ludante", + "transcoding": "Transkodigo", + "bitrate": "Bitrapido", "no_active": "No Active Streams", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Rate", "remaining": "Remaining", @@ -97,9 +188,9 @@ }, "plex": { "streams": "Active Streams", + "albums": "Albums", "movies": "Filmoj", - "tv": "Televidprogramoj", - "albums": "Albums" + "tv": "Televidprogramoj" }, "sabnzbd": { "rate": "Rate", @@ -108,33 +199,51 @@ }, "rutorrent": { "active": "Active", - "upload": "Alŝuto", - "download": "Elŝuto" + "upload": "Alŝuti", + "download": "Elŝuti" }, "transmission": { - "download": "Elŝuto", - "upload": "Alŝuto", + "download": "Elŝuti", + "upload": "Alŝuti", "leech": "Leech", "seed": "Seed" }, "qbittorrent": { - "download": "Elŝuto", - "upload": "Alŝuto", + "download": "Elŝuti", + "upload": "Alŝuti", "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, "deluge": { - "download": "Elŝuto", - "upload": "Upload", + "download": "Elŝuti", + "upload": "Alŝuti", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Elŝuti", + "upload": "Alŝuti", "leech": "Leech", "seed": "Seed" }, "sonarr": { "wanted": "Wanted", "queued": "Queued", - "series": "Serio", + "series": "Serioj", "queue": "Queue", - "unknown": "Unknown" + "unknown": "Nekonata" }, "radarr": { "wanted": "Wanted", @@ -142,7 +251,7 @@ "queued": "Queued", "movies": "Filmoj", "queue": "Queue", - "unknown": "Unknown" + "unknown": "Nekonata" }, "lidarr": { "wanted": "Wanted", @@ -174,28 +283,77 @@ "approved": "Aprobita", "available": "Havebla" }, + "netalertx": { + "total": "Totalo", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", - "blocked": "Blokitaj", + "blocked": "Blocked", "filtered": "Filtritaj", "latency": "Latency" }, "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "upload": "Alŝuti", + "download": "Elŝuti", + "ping": "Sondaĵo" }, "portainer": { - "running": "Running", + "running": "Rulata", "stopped": "Stopped", "total": "Totalo" }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Klientoj" + }, + "tdarr": { + "queue": "Queue", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, "traefik": { "routers": "Routers", "services": "Servoj", @@ -208,7 +366,7 @@ "npm": { "enabled": "Enabled", "disabled": "Disabled", - "total": "Total" + "total": "Totalo" }, "coinmarketcap": { "configure": "Configure one or more crypto currencies to track", @@ -244,29 +402,52 @@ "status_count": "Afiŝoj", "domain_count": "Domains" }, + "medusa": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Serioj" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Stato", + "up": "Online", + "down": "Malkonekta" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, "authentik": { - "users": "Users", + "users": "Uzantoj", "loginsLast24H": "Logins (24h)", "failedLoginsLast24H": "Failed Logins (24h)" }, "proxmox": { - "mem": "Memoro", + "mem": "MEM", "cpu": "Ĉefprocesoro", "lxc": "LXC", "vms": "VMs" }, "glances": { "cpu": "Ĉefprocesoro", + "load": "Ŝarĝo", "wait": "Bonvolu atendi", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "Totalo", + "free": "Libera", + "used": "Uzata", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -274,7 +455,8 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "Suna", @@ -345,13 +527,23 @@ "pending": "Pending", "down": "Down" }, + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Stato", + "last_ping": "Last Ping", + "never": "No pings yet" + }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, "autobrr": { - "approvedPushes": "Approved", + "approvedPushes": "Aprobita", "rejectedPushes": "Rejected", "filters": "Filtriloj", "indexers": "Indexers" @@ -365,14 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Aktiva", + "active": "Active", "queue": "Queue", - "total": "Total" + "total": "Totalo" }, "gluetun": { "public_ip": "Public IP", @@ -381,54 +572,37 @@ }, "hdhomerun": { "channels": "Kanaloj", - "hd": "HD" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrapido", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", "failed": "Failed", - "unknown": "Unknown" + "unknown": "Nekonata" }, "paperlessngx": { "inbox": "Inbox", "total": "Totalo" }, - "flood": { - "download": "Elŝuti", - "upload": "Alŝuti", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -440,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -449,173 +629,18 @@ "moonraker": { "printer_state": "Printer State", "print_status": "Print Status", - "layers": "Layers", - "print_progress": "Progress" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "print_progress": "Progress", + "layers": "Layers" }, "octoprint": { - "printer_state": "Status", + "printer_state": "Stato", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "activeusers": "Active Users", - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" - }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "status": "Stato" }, "pfsense": { "load": "Load Avg", @@ -627,43 +652,395 @@ "disk": "Disk Usage", "wanIP": "WAN IP" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Failed Tasks 24h", + "cpu_usage": "Ĉefprocesoro", + "memory_usage": "Memory" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "Uzantoj", + "photos": "Photos", + "videos": "Videos", + "storage": "Storage" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime", + "incident": "Incident", + "m": "m" + }, + "atsumeru": { + "series": "Serioj", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "komga": { + "libraries": "Libraries", + "series": "Serioj", + "books": "Libroj" + }, + "diskstation": { + "days": "Tagoj", + "uptime": "Uptime", + "volumeAvailable": "Havebla" + }, + "mylar": { + "series": "Serioj", + "issues": "Issues", + "wanted": "Wanted" + }, + "photoprism": { + "albums": "Albums", + "photos": "Photos", + "videos": "Videos", + "people": "People" + }, + "fileflows": { + "queue": "Queue", + "processing": "Processing", + "processed": "Processed", + "time": "Time" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Dashboards", + "datasources": "Data Sources", + "totalalerts": "Total Alerts", + "alertstriggered": "Alerts Triggered" + }, + "nextcloud": { + "cpuload": "Cpu Load", + "memoryusage": "Memory Usage", + "freespace": "Free Space", + "activeusers": "Active Users", + "numfiles": "Files", + "numshares": "Shared Items" + }, + "kopia": { + "status": "Stato", + "size": "Size", + "lastrun": "Last Run", + "nextrun": "Next Run", + "failed": "Failed" + }, + "unmanic": { + "active_workers": "Active Workers", + "total_workers": "Total Workers", + "records_total": "Queue Length" + }, + "pterodactyl": { + "servers": "Servers", + "nodes": "Nodes" + }, + "prometheus": { + "targets_up": "Targets Up", + "targets_down": "Targets Down", + "targets_total": "Total Targets" + }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, + "ghostfolio": { + "gross_percent_today": "Today", + "gross_percent_1y": "One year", + "gross_percent_max": "All time" + }, + "audiobookshelf": { + "podcasts": "Podcasts", + "books": "Libroj", + "podcastsDuration": "Duration", + "booksDuration": "Duration" + }, + "homeassistant": { + "people_home": "People Home", + "lights_on": "Lights On", + "switches_on": "Switches On" + }, + "whatsupdocker": { + "monitoring": "Monitoring", + "updates": "Updates" + }, + "calibreweb": { + "books": "Libroj", + "authors": "Authors", + "categories": "Categories", + "series": "Serioj" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", + "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { - "seriesCount": "Series", + "seriesCount": "Serioj", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "Stato", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Aprobita" + }, + "gamedig": { + "status": "Stato", + "online": "Online", + "offline": "Malkonekta", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Sondaĵo" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Uzantoj", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Totalo", + "running": "Rulata", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Stato", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Nekonata" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Filmoj", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Uzantoj", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Uzantoj", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Totalo" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Sondaĵo", + "download": "Elŝuti", + "upload": "Alŝuti" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informo", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Stato", + "online": "Online", + "offline": "Malkonekta" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "Stato", + "updated": "Updated", + "cpu": "Ĉefprocesoro", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sana", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stato", + "load": "Ŝarĝo", + "bcharge": "Battery Charge", + "timeleft": "Time Left" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Havebla", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/es/common.json b/public/locales/es/common.json index c4712669..a5ac67ed 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -1,46 +1,101 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "me", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Falta el tipo de widget: {{type}}", "api_error": "Error de API", - "status": "Estado", "information": "Información", - "url": "URL", + "status": "Estado", + "url": "Enlace", "raw_error": "Error sin procesar", "response_data": "Datos de respuesta" }, + "weather": { + "current": "Ubicación actual", + "allow": "Pulsa para permitir", + "updating": "Actualizando", + "wait": "Espera, por favor" + }, "search": { "placeholder": "Buscar…" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Libre", "used": "Usado", "load": "Carga", - "cpu": "CPU", - "mem": "MEM", "temp": "TEMP", "max": "Máx.", - "uptime": "ARRIBA", - "months": "Meses", + "uptime": "ACTIVO" + }, + "unifi": { + "users": "Usuarios", + "uptime": "Tiempo activo", "days": "Días", - "hours": "Horas", - "minutes": "Minutos" + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispositivos", + "lan_devices": "Dispositivos LAN", + "wlan_devices": "Dispositivos WLAN", + "lan_users": "Usuarios LAN", + "wlan_users": "Usuarios WLAN", + "up": "ACTIVO", + "down": "CAÍDO", + "wait": "Espera, por favor", + "empty_data": "Se desconoce el estado del subsistema" }, "docker": { "rx": "Recibido", "tx": "Transmitido", - "mem": "Memoria", - "cpu": "Procesador", + "mem": "MEM", + "cpu": "CPU", + "running": "Ejecutando", "offline": "Desconectado", "error": "Fallo", "unknown": "Desconocido", - "running": "Ejecutando", + "healthy": "Saludable", "starting": "Comenzando", - "unhealthy": "Insalubre", + "unhealthy": "No saludable", "not_found": "No encontrado", - "exited": "Salida", - "partial": "Parcial", - "healthy": "Saludable" + "exited": "Terminado", + "partial": "Parcial" + }, + "ping": { + "error": "Fallo", + "ping": "Ping", + "down": "Inactivo", + "up": "Activo", + "not_available": "No disponible" + }, + "siteMonitor": { + "http_status": "Estado HTTP", + "error": "Fallo", + "response": "Respuesta", + "down": "Inactivo", + "up": "Activo", + "not_available": "No disponible" }, "emby": { "playing": "Reproduciendo", @@ -48,10 +103,70 @@ "bitrate": "Tasa de bits", "no_active": "Sin transmisiones activas", "movies": "Películas", - "series": "Serie", + "series": "Series", "episodes": "Episodios", "songs": "Canciones" }, + "esphome": { + "offline": "Desconectado", + "offline_alt": "Desconectado", + "online": "En línea", + "total": "Total", + "unknown": "Desconocido" + }, + "evcc": { + "pv_power": "Producción", + "battery_soc": "Batería", + "grid_power": "Red", + "home_power": "Consumo", + "charge_power": "Cargador", + "kilowatt": "kW" + }, + "flood": { + "download": "Descarga", + "upload": "Subida", + "leech": "Descargas", + "seed": "Semillas" + }, + "freshrss": { + "subscriptions": "Suscripciones", + "unread": "Sin leer" + }, + "fritzbox": { + "connectionStatus": "Estado", + "connectionStatusUnconfigured": "Sin configurar", + "connectionStatusConnecting": "Conectando", + "connectionStatusAuthenticating": "Autenticando", + "connectionStatusPendingDisconnect": "Desconexión pendiente", + "connectionStatusDisconnecting": "Desconectando", + "connectionStatusDisconnected": "Desconectado", + "connectionStatusConnected": "Conectado", + "uptime": "Tiempo activo", + "maxDown": "Descarga máxima", + "maxUp": "Subida máxima", + "down": "Inactivo", + "up": "Activo", + "received": "Recibido", + "sent": "Enviado", + "externalIPAddress": "IP ext.", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstream (desarrollo de software)", + "requests": "Peticiones actuales", + "requests_failed": "Peticiones fallidas" + }, + "changedetectionio": { + "totalObserved": "Total Observados", + "diffsDetected": "Diferencias detectadas" + }, + "channelsdvrserver": { + "shows": "Series", + "recordings": "Grabaciones", + "scheduled": "Programado", + "passes": "Pases" + }, "tautulli": { "playing": "Reproduciendo", "transcoding": "Transcodificando", @@ -59,31 +174,99 @@ "no_active": "Sin transmisiones activas", "plex_connection_error": "Comprueba la conexión a Plex" }, + "omada": { + "connectedAp": "AP conectados", + "activeUser": "Dispositivos activos", + "alerts": "Alertas", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Conmutadores conectados" + }, + "nzbget": { + "rate": "Tasa", + "remaining": "Restante", + "downloaded": "Descargado" + }, + "plex": { + "streams": "Transmisiones activas", + "albums": "Álbumes", + "movies": "Películas", + "tv": "Series" + }, + "sabnzbd": { + "rate": "Tasa", + "queue": "En cola", + "timeleft": "Tiempo restante" + }, "rutorrent": { "active": "Activo", "upload": "Subida", - "download": "Bajada" + "download": "Descarga" + }, + "transmission": { + "download": "Descarga", + "upload": "Subida", + "leech": "Descargas", + "seed": "Semillas" + }, + "qbittorrent": { + "download": "Descarga", + "upload": "Subida", + "leech": "Descargas", + "seed": "Semillas" + }, + "qnap": { + "cpuUsage": "Uso de la CPU", + "memUsage": "Uso de la memoria", + "systemTempC": "Temperatura del sistema", + "poolUsage": "Uso del pool", + "volumeUsage": "Uso de volúmenes", + "invalid": "No válido" + }, + "deluge": { + "download": "Descarga", + "upload": "Subida", + "leech": "Descargas", + "seed": "Semillas" + }, + "develancacheui": { + "cachehitbytes": "Bytes encontrados en caché", + "cachemissbytes": "Bytes faltantes en caché" + }, + "downloadstation": { + "download": "Descarga", + "upload": "Subida", + "leech": "Descargas", + "seed": "Semillas" }, "sonarr": { "wanted": "Buscando", "queued": "En cola", "series": "Series", - "queue": "Poner a la cola", + "queue": "En cola", "unknown": "Desconocido" }, "radarr": { "wanted": "Buscando", + "missing": "Faltantes", "queued": "En cola", "movies": "Películas", - "missing": "Faltan", - "queue": "Poner a la cola", + "queue": "En cola", "unknown": "Desconocido" }, + "lidarr": { + "wanted": "Buscando", + "queued": "En cola", + "artists": "Artistas" + }, "readarr": { "wanted": "Buscando", "queued": "En cola", "books": "Libros" }, + "bazarr": { + "missingEpisodes": "Episodios faltantes", + "missingMovies": "Películas faltantes" + }, "ombi": { "pending": "Pendiente", "approved": "Aprobado", @@ -94,54 +277,97 @@ "approved": "Aprobado", "available": "Disponible" }, + "overseerr": { + "pending": "Pendiente", + "processing": "Procesando", + "approved": "Aprobado", + "available": "Disponible" + }, + "netalertx": { + "total": "Total", + "connected": "Conectado", + "new_devices": "Nuevos dispositivos", + "down_alerts": "Alertas de caída" + }, "pihole": { "queries": "Consultas", "blocked": "Bloqueado", - "gravity": "Gravedad", - "blocked_percent": "% bloqueado" + "blocked_percent": "% bloqueado", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Consultas", + "blocked": "Bloqueado", + "filtered": "Filtrado", + "latency": "Latencia" }, "speedtest": { "upload": "Subida", - "download": "Bajada", + "download": "Descarga", "ping": "Ping" }, "portainer": { - "running": "En ejecución", + "running": "Ejecutando", "stopped": "Detenido", "total": "Total" }, + "suwayomi": { + "download": "Descargado", + "nondownload": "No descargado", + "read": "Leer", + "unread": "Sin leer", + "downloadedread": "Descargado y leído", + "downloadedunread": "Descargado y no leído", + "nondownloadedread": "No descargado y leído", + "nondownloadedunread": "No descargado y no leído" + }, + "tailscale": { + "address": "Dirección", + "expires": "Caduca en", + "never": "Nunca", + "last_seen": "Visto por última vez", + "now": "Ahora", + "years": "{{number}}a", + "weeks": "{{number}}sem", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "Hace {{value}}" + }, + "technitium": { + "totalQueries": "Consultas", + "totalNoError": "Éxitos", + "totalServerFailure": "Fallas", + "totalNxDomain": "Dominios NX", + "totalRefused": "Rechazados", + "totalAuthoritative": "Autoritarios", + "totalRecursive": "Recursivos", + "totalCached": "En caché", + "totalBlocked": "Bloqueado", + "totalDropped": "Descartados", + "totalClients": "Clientes" + }, + "tdarr": { + "queue": "En cola", + "processed": "Procesado", + "errored": "Error", + "saved": "Guardado" + }, "traefik": { "routers": "Enrutadores", "services": "Servicios", "middleware": "Software intermedio" }, + "navidrome": { + "nothing_streaming": "Sin transmisiones activas", + "please_wait": "Por favor, espera" + }, "npm": { "enabled": "Activado", "disabled": "Desactivado", "total": "Total" }, - "weather": { - "current": "Ubicación actual", - "allow": "Clic para permitir", - "updating": "Actualizando", - "wait": "Espera, por favor" - }, - "overseerr": { - "pending": "Pendiente", - "approved": "Aprobado", - "available": "Disponible", - "processing": "Procesando" - }, - "sabnzbd": { - "rate": "Tasa", - "queue": "En cola", - "timeleft": "Tiempo restante" - }, - "nzbget": { - "rate": "Tasa", - "remaining": "Restante", - "downloaded": "Descargado" - }, "coinmarketcap": { "configure": "Configurar una o más criptomonedas para rastrear", "1hour": "1 Hora", @@ -161,47 +387,36 @@ "numberOfFailGrabs": "Capturas fallidas", "numberOfFailQueries": "Consultas fallidas" }, - "transmission": { - "download": "Bajada", - "upload": "Subida", - "leech": "Compañeros", - "seed": "Semillas" - }, "jackett": { "configured": "Configurado", - "errored": "Con errores" + "errored": "Error" }, - "bazarr": { - "missingEpisodes": "Episodios perdidos", - "missingMovies": "Películas perdidas" - }, - "lidarr": { - "queued": "En cola", - "wanted": "Buscando", - "artists": "Artistas" - }, - "adguard": { - "queries": "Consultas", - "blocked": "Bloqueado", - "filtered": "Filtrado", - "latency": "Latencia" - }, - "qbittorrent": { - "download": "Bajada", - "upload": "Subida", - "leech": "Pares", - "seed": "Semillas" + "strelaysrv": { + "numActiveSessions": "Sesiones", + "numConnections": "Conexiones", + "dataRelayed": "Retransmitido", + "transferRate": "Tasa" }, "mastodon": { "user_count": "Usuarios", "status_count": "Publicaciones", "domain_count": "Dominios" }, - "strelaysrv": { - "numActiveSessions": "Sesiones", - "numConnections": "Conexiones", - "dataRelayed": "Retransmitido", - "transferRate": "Velocidad" + "medusa": { + "wanted": "Buscando", + "queued": "En cola", + "series": "Series" + }, + "minecraft": { + "players": "Jugadores", + "version": "Versión", + "status": "Estado", + "up": "En línea", + "down": "Desconectado" + }, + "miniflux": { + "read": "Leer", + "unread": "Sin leer" }, "authentik": { "users": "Usuarios", @@ -209,98 +424,87 @@ "failedLoginsLast24H": "Inicios de sesión fallidos (24h)" }, "proxmox": { - "mem": "Memoria", - "cpu": "Procesador", - "lxc": "Contenedores Linux", + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", "vms": "Máquinas Virtuales" }, - "unifi": { - "up": "LEVANTADO", - "users": "Usuarios", - "uptime": "Tiempo de actividad", - "days": "Días", - "wan": "WAN", - "lan_users": "Usuarios LAN", - "wlan_users": "Usuarios WLAN", - "down": "CAÍDO", - "wait": "Espera por favor", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Dispositivos", - "lan_devices": "Dispositivos LAN", - "wlan_devices": "Dispositivos WLAN", - "empty_data": "Se desconoce el estado del subsistema" - }, - "plex": { - "streams": "Transmisiones activas", - "movies": "Películas", - "tv": "Series", - "albums": "Álbumes" - }, "glances": { - "cpu": "Procesador", - "wait": "Espera por favor", - "temp": "TEMPORAL", - "uptime": "ARRIBA", - "days": "Días", - "hours": "Horas", - "load": "Cargar", + "cpu": "CPU", + "load": "Carga", + "wait": "Espera, por favor", + "temp": "TEMP", + "_temp": "Temperatura", "warn": "Advertir", + "uptime": "ACTIVO", "total": "Total", "free": "Libre", - "used": "Utilizado" + "used": "Usado", + "days": "d", + "hours": "h", + "crit": "Crít.", + "read": "Leer", + "write": "Escribir", + "gpu": "GPU", + "mem": "Memoria", + "swap": "Intercambiar" }, - "changedetectionio": { - "totalObserved": "Total Observados", - "diffsDetected": "Diferencias detectadas" + "quicklaunch": { + "bookmark": "Marcadores", + "service": "Servicio", + "search": "Buscar", + "custom": "Personalizado", + "visit": "Visitar", + "url": "Enlace", + "searchsuggestion": "Sugerencia" }, "wmo": { - "48-night": "Niebla", - "51-day": "Llovizna ligera", - "51-night": "Llovizna ligera", - "2-day": "Parcialmente nuboso", "0-day": "Soleado", "0-night": "Despejado", "1-day": "Mayormente soleado", "1-night": "Mayormente despejado", + "2-day": "Parcialmente nuboso", "2-night": "Parcialmente nuboso", "3-day": "Nublado", "3-night": "Nublado", "45-day": "Niebla", "45-night": "Niebla", "48-day": "Niebla", + "48-night": "Niebla", + "51-day": "Llovizna ligera", + "51-night": "Llovizna ligera", "53-day": "Llovizna", "53-night": "Llovizna", - "55-day": "Llovizna pesada", - "55-night": "Llovizna pesada", + "55-day": "Llovizna intensa", + "55-night": "Llovizna intensa", "56-day": "Llovizna helada ligera", "56-night": "Llovizna helada ligera", "57-day": "Llovizna helada", "57-night": "Llovizna helada", "61-day": "Lluvia ligera", "61-night": "Lluvia ligera", - "67-day": "Granizo", "63-day": "Lluvia", "63-night": "Lluvia", - "65-day": "Chubascos", - "65-night": "Chubascos", + "65-day": "Lluvia torrencial", + "65-night": "Lluvia torrencial", "66-day": "Granizo", "66-night": "Granizo", + "67-day": "Granizo", "67-night": "Granizo", - "71-day": "Nevada Leve", - "71-night": "Nevada Leve", + "71-day": "Nevada leve", + "71-night": "Nevada leve", "73-day": "Nevada", "73-night": "Nevada", - "75-day": "Fuertes Nevadas", - "75-night": "Fuertes Nevadas", - "77-day": "Nevada Leve", - "77-night": "Nevada Leve", + "75-day": "Nevada intensa", + "75-night": "Nevada intensa", + "77-day": "Granizada", + "77-night": "Granizada", "80-day": "Llovizna", "80-night": "Llovizna", "81-day": "Lluvia", "81-night": "Lluvia", - "82-day": "Chubascos", - "82-night": "Chubascos", + "82-day": "Lluvias torrenciales", + "82-night": "Lluvias torrenciales", "85-day": "Lluvia de nieve", "85-night": "Lluvia de nieve", "86-day": "Lluvia de nieve", @@ -312,24 +516,31 @@ "99-day": "Tormenta con granizo", "99-night": "Tormenta con granizo" }, - "quicklaunch": { - "bookmark": "Marcadores", - "service": "Servicio", - "search": "Buscar", - "custom": "Personalizado", - "visit": "Visita", - "url": "URL" - }, "homebridge": { "available_update": "Sistema", "updates": "Actualizaciones", "update_available": "Actualización disponible", "up_to_date": "Actualizado", - "child_bridges": "Child Bridges", + "child_bridges": "Bridges secundarios", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Arriba", + "up": "Activo", "pending": "Pendiente", - "down": "Abajo" + "down": "Inactivo" + }, + "healthchecks": { + "new": "Nuevo", + "up": "Activo", + "grace": "En Periodo de Gracia", + "down": "Inactivo", + "paused": "Pausado", + "status": "Estado", + "last_ping": "Último ping", + "never": "Aún no hay pings" + }, + "watchtower": { + "containers_scanned": "Escaneado", + "containers_updated": "Actualizado", + "containers_failed": "Fallido" }, "autobrr": { "approvedPushes": "Aprobado", @@ -337,31 +548,21 @@ "filters": "Filtros", "indexers": "Indexadores" }, - "watchtower": { - "containers_scanned": "Escaneado", - "containers_updated": "Actualizado", - "containers_failed": "Fallido" - }, "tubearchivist": { - "downloads": "Cola", - "videos": "Vídeos", + "downloads": "En cola", + "videos": "Videos", "channels": "Canales", "playlists": "Listas de reproducción" }, "truenas": { "load": "Carga del sistema", - "uptime": "Tiempo de la actividad", - "alerts": "Alertas", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Sin transmisiones activas", - "please_wait": "Espere por favor" + "uptime": "Tiempo activo", + "alerts": "Alertas" }, "pyload": { "speed": "Velocidad", "active": "Activo", - "queue": "Cola", + "queue": "En cola", "total": "Total" }, "gluetun": { @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Canales", - "hd": "Alta definición" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "Alta definición", + "tunerCount": "Sintonizadores", + "channelNumber": "Canal", + "channelNetwork": "Red", + "signalStrength": "Intensidad", + "signalQuality": "Calidad", + "symbolQuality": "Calidad", + "networkRate": "Tasa de bits", + "clientIP": "Cliente" }, "scrutiny": { "passed": "Aprobado", @@ -386,53 +591,22 @@ "inbox": "Bandeja de entrada", "total": "Total" }, - "deluge": { - "download": "Descarga", - "upload": "Subida", - "leech": "Compañeros", - "seed": "Semillas" - }, - "flood": { - "download": "Descarga", - "upload": "Subida", - "leech": "Depender", - "seed": "Semillas" - }, - "tdarr": { - "queue": "Cola", - "processed": "Procesado", - "saved": "Guardado", - "errored": "Error" - }, - "miniflux": { - "read": "Leer", - "unread": "Sin leer" + "peanut": { + "battery_charge": "Carga de la batería", + "ups_load": "Carga del UPS", + "ups_status": "Estado del UPS", + "online": "En línea", + "on_battery": "Con batería", + "low_battery": "Batería baja" }, "nextdns": { - "wait": "Espera, por favor", - "no_devices": "No se reciben datos del dispositivo" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "AP conectados", - "activeUser": "Dispositivos activos", - "alerts": "Alertas", - "connectedGateway": "Pasarelas conectadas", - "connectedSwitches": "Interruptores conectados" - }, - "downloadstation": { - "download": "Descargar", - "upload": "Subir", - "leech": "Compañeros", - "seed": "Semilla" + "wait": "Por favor, espera", + "no_devices": "No se recibieron datos del dispositivo" }, "mikrotik": { "cpuLoad": "Carga de la CPU", "memoryUsed": "Memoria utilizada", - "uptime": "Tiempo en funcionamiento", + "uptime": "Tiempo activo", "numberOfLeases": "Alquileres" }, "xteve": { @@ -440,11 +614,17 @@ "streams_active": "Transmisiones activas", "streams_xepg": "Canales XEPG" }, + "opendtu": { + "yieldDay": "Hoy", + "absolutePower": "Potencia", + "relativePower": "Potencia %", + "limit": "Límite" + }, "opnsense": { "cpu": "Carga de la CPU", "memory": "Memoria activa", - "wanUpload": "Carga WAN", - "wanDownload": "Descargar WAN" + "wanUpload": "Subida WAN", + "wanDownload": "Descarga WAN" }, "moonraker": { "printer_state": "Estado de la impresora", @@ -452,69 +632,84 @@ "print_progress": "Progreso", "layers": "Capas" }, - "medusa": { - "wanted": "Querido", - "queued": "A la espera", - "series": "Serie" - }, "octoprint": { - "temp_bed": "Temperatura de la plataforma", "printer_state": "Estado", "temp_tool": "Temperatura de la herramienta", + "temp_bed": "Temperatura de la plataforma", "job_completion": "Finalización" }, "cloudflared": { "origin_ip": "IP de origen", "status": "Estado" }, + "pfsense": { + "load": "Promedio de carga", + "memory": "Uso de memoria", + "wanStatus": "Estado de la WAN", + "up": "Activo", + "down": "Inactivo", + "temp": "Temperatura", + "disk": "Uso del disco", + "wanIP": "IP de la WAN" + }, "proxmoxbackupserver": { - "cpu_usage": "CPU", "datastore_usage": "Almacén de datos", "failed_tasks_24h": "Tareas fallidas en 24h", + "cpu_usage": "CPU", "memory_usage": "Memoria" }, "immich": { "users": "Usuarios", "photos": "Fotos", - "videos": "Vídeos", + "videos": "Videos", "storage": "Almacenamiento" }, "uptimekuma": { - "up": "Páginas web activas", - "down": "Páginas web inactivas", - "uptime": "Disponibilidad", + "up": "Sitios activos", + "down": "Sitios inactivos", + "uptime": "Tiempo activo", "incident": "Incidencia", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archivos", + "chapters": "Capítulos", + "categories": "Categorías" + }, "komga": { "libraries": "Librerías", "series": "Series", "books": "Libros" }, + "diskstation": { + "days": "Días", + "uptime": "Tiempo activo", + "volumeAvailable": "Disponible" + }, "mylar": { - "issues": "Cuestiones", "series": "Series", - "wanted": "Buscado" + "issues": "Números", + "wanted": "Buscando" }, "photoprism": { "albums": "Álbumes", "photos": "Fotos", - "videos": "Vídeos", + "videos": "Videos", "people": "Personas" }, - "diskstation": { - "days": "Días", - "uptime": "Funcionando", - "volumeAvailable": "Disponible" - }, "fileflows": { - "queue": "Cola", + "queue": "En cola", "processing": "Procesando", "processed": "Procesado", "time": "Tiempo" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { - "dashboards": "Dashboards", + "dashboards": "Tableros", "datasources": "Fuentes de datos", "totalalerts": "Alertas totales", "alertstriggered": "Alertas activadas" @@ -535,35 +730,23 @@ "failed": "Fallido" }, "unmanic": { - "active_workers": "Trabajadores en activo", + "active_workers": "Trabajadores activos", "total_workers": "Total de trabajadores", - "records_total": "Duración de la cola" - }, - "healthchecks": { - "new": "Nuevo", - "up": "Conectado", - "down": "Desconectado", - "grace": "En Periodo de Gracia", - "paused": "Pausado", - "status": "Estado", - "last_ping": "Último ping", - "never": "Aún no hay pings" + "records_total": "Longitud de la cola" }, "pterodactyl": { "servers": "Servidores", "nodes": "Nodos" }, "prometheus": { - "targets_up": "Objetivos arriba", - "targets_down": "Objetivos abajo", + "targets_up": "Objetivos activos", + "targets_down": "Objetivos inactivos", "targets_total": "Objetivos totales" }, - "minecraft": { - "status": "Estado", - "up": "En línea", - "players": "Jugadores", - "version": "Versión", - "down": "Sin conexión" + "gatus": { + "up": "Sitios activos", + "down": "Sitios inactivos", + "uptime": "Tiempo activo" }, "ghostfolio": { "gross_percent_today": "Hoy", @@ -577,93 +760,287 @@ "booksDuration": "Duración" }, "homeassistant": { - "people_home": "Inicio de personas", + "people_home": "Personas en casa", "lights_on": "Luces encendidas", - "switches_on": "Encendido" - }, - "freshrss": { - "subscriptions": "Suscripciones", - "unread": "Sin leer" - }, - "channelsdvrserver": { - "shows": "Espectáculos", - "recordings": "Grabaciones", - "scheduled": "Programado", - "passes": "Pases" + "switches_on": "Interruptores activados" }, "whatsupdocker": { - "monitoring": "Supervisión", + "monitoring": "Monitorizando", "updates": "Actualizaciones" }, - "tailscale": { - "address": "Dirección", - "expires": "Caduca en", - "never": "Nunca", - "last_seen": "Visto por última vez", - "now": "Ahora", - "years": "{{number}}años", - "hours": "{{number}}horas", - "minutes": "{{number}}minutos", - "seconds": "{{number}}segundos", - "ago": "Hace {{value}}", - "weeks": "{{number}}semanas", - "days": "{{number}}días" - }, - "qnap": { - "cpuUsage": "Uso de la Cpu", - "memUsage": "Uso de la memoria", - "systemTempC": "Temperatura del sistema", - "poolUsage": "Comprobación del uso del grupo de memoria", - "volumeUsage": "Volumen utilizado", - "invalid": "No válido" - }, - "pfsense": { - "load": "Promedio de carga", - "memory": "Memoria utilizada", - "wanStatus": "Estado de la WAN", - "up": "Arriba", - "down": "Abajo", - "temp": "Temperatura", - "disk": "Uso del disco", - "wanIP": "IP de la WAN" - }, - "caddy": { - "upstreams": "Upstream (desarrollo de software)", - "requests": "Peticiones actuales", - "requests_failed": "Peticiones fallidas" - }, - "evcc": { - "pv_power": "Producción", - "battery_soc": "Batería", - "grid_power": "Red", - "home_power": "Consumo", - "charge_power": "Cargador", - "watt_hour": "vatio-hora (Wh)" - }, - "pialert": { - "total": "Total", - "connected": "Conectado", - "new_devices": "Nuevos dispositivos", - "down_alerts": "Alertas" + "calibreweb": { + "books": "Libros", + "authors": "Autores", + "categories": "Categorías", + "series": "Series" }, "jdownloader": { - "downloadCount": "Cola", - "downloadSpeed": "Velocidad", + "downloadCount": "En cola", "downloadBytesRemaining": "Restante", - "downloadTotalBytes": "Tamaño" + "downloadTotalBytes": "Tamaño", + "downloadSpeed": "Velocidad" }, "kavita": { - "seriesCount": "Serie", + "seriesCount": "Series", "totalFiles": "Archivos" }, - "azurePipelines": { + "azuredevops": { "result": "Resultado", "status": "Estado", - "buildId": "ID de la compilación", - "succeeded": "Con éxito", + "buildId": "ID de compilación", + "succeeded": "Exitoso", "notStarted": "No iniciado", "failed": "Fallido", "canceled": "Cancelado", - "inProgress": "En proceso" + "inProgress": "En curso", + "totalPrs": "RP totales", + "myPrs": "Mis logros", + "approved": "Aprobado" + }, + "gamedig": { + "status": "Estado", + "online": "En línea", + "offline": "Desconectado", + "name": "Nombre", + "map": "Mapa", + "currentPlayers": "Jugadores actuales", + "players": "Jugadores", + "maxPlayers": "Jugadores máximos", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "OK", + "errored": "Errores", + "noRecent": "Caducado", + "totalUsed": "Almacenamiento usado" + }, + "mealie": { + "recipes": "Recetas", + "users": "Usuarios", + "categories": "Categorías", + "tags": "Etiquetas" + }, + "openmediavault": { + "downloading": "Descargando", + "total": "Total", + "running": "Ejecutando", + "stopped": "Detenido", + "passed": "Aprobado", + "failed": "Fallido" + }, + "openwrt": { + "uptime": "Tiempo activo", + "cpuLoad": "Carga promedio del CPU (5m)", + "up": "Activo", + "down": "Inactivo", + "bytesTx": "Transmitido", + "bytesRx": "Recibido" + }, + "uptimerobot": { + "status": "Estado", + "uptime": "Tiempo activo", + "lastDown": "Último periodo de inactividad", + "downDuration": "Duración de inactividad", + "sitesUp": "Sitios activos", + "sitesDown": "Sitios inactivos", + "paused": "Pausado", + "notyetchecked": "Aún no verificado", + "up": "Activo", + "seemsdown": "Parece caída", + "down": "Inactivo", + "unknown": "Desconocido" + }, + "calendar": { + "inCinemas": "En cine", + "physicalRelease": "Lanzamiento en físico", + "digitalRelease": "Lanzamiento en digital", + "noEventsToday": "¡Sin eventos para hoy!", + "noEventsFound": "No se encontraron eventos" + }, + "romm": { + "platforms": "Plataformas", + "totalRoms": "Juegos", + "saves": "Guardados", + "states": "Estados", + "screenshots": "Capturas de pantalla", + "totalfilesize": "Tamaño total" + }, + "mailcow": { + "domains": "Dominios", + "mailboxes": "Buzones de correo", + "mails": "Correos", + "storage": "Almacenamiento" + }, + "netdata": { + "warnings": "Advertencias", + "criticals": "Críticos" + }, + "plantit": { + "events": "Eventos", + "plants": "Plantas", + "photos": "Fotos", + "species": "Especies" + }, + "gitea": { + "notifications": "Notificaciones", + "issues": "Números", + "pulls": "Solicitudes de cambios", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Escenas", + "scenesPlayed": "Escenas reproducidas", + "playCount": "Reproducciones totales", + "playDuration": "Tiempo visto", + "sceneSize": "Tamaño de las escenas", + "sceneDuration": "Duración de las escenas", + "images": "Imágenes", + "imageSize": "Tamaño de las imágenes", + "galleries": "Galerías", + "performers": "Intérpretes", + "studios": "Estudios", + "movies": "Películas", + "tags": "Etiquetas", + "oCount": "Cantidad de O" + }, + "tandoor": { + "users": "Usuarios", + "recipes": "Recetas", + "keywords": "Palabras clave" + }, + "homebox": { + "items": "Objetos", + "totalWithWarranty": "Con garantía", + "locations": "Ubicaciones", + "labels": "Etiquetas", + "users": "Usuarios", + "totalValue": "Valor total" + }, + "crowdsec": { + "alerts": "Alertas", + "bans": "Baneos" + }, + "wgeasy": { + "connected": "Conectado", + "enabled": "Activado", + "disabled": "Desactivado", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxy activado", + "auth": "Con autenticación", + "outdated": "Desactualizado", + "banned": "Baneado" + }, + "myspeed": { + "ping": "Ping", + "download": "Descarga", + "upload": "Subida" + }, + "stocks": { + "stocks": "Acciones", + "loading": "Cargando", + "open": "Abierto - Mercado EE. UU.", + "closed": "Cerrado - Mercado EE. UU.", + "invalidConfiguration": "Configuración inválida" + }, + "frigate": { + "cameras": "Cámaras", + "uptime": "Tiempo activo", + "version": "Versión" + }, + "linkwarden": { + "links": "Enlaces", + "collections": "Colecciones", + "tags": "Etiquetas" + }, + "zabbix": { + "unclassified": "No clasificado", + "information": "Información", + "warning": "Advertencia", + "average": "Promedio", + "high": "Alto", + "disaster": "Desastre" + }, + "lubelogger": { + "vehicle": "Vehículo", + "vehicles": "Vehículos", + "serviceRecords": "Registros de servicio", + "reminders": "Recordatorios", + "nextReminder": "Siguiente recordatorio", + "none": "Nada" + }, + "vikunja": { + "projects": "Proyectos activos", + "tasks7d": "Tareas que vencen esta semana", + "tasksOverdue": "Tareas vencidas", + "tasksInProgress": "Tareas en progreso" + }, + "headscale": { + "name": "Nombre", + "address": "Dirección", + "last_seen": "Visto por última vez", + "status": "Estado", + "online": "En línea", + "offline": "Desconectado" + }, + "beszel": { + "name": "Nombre", + "systems": "Sistemas", + "up": "Activo", + "down": "Inactivo", + "paused": "Pausado", + "pending": "Pendiente", + "status": "Estado", + "updated": "Actualizado", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disco", + "network": "RED" + }, + "argocd": { + "apps": "Apps", + "synced": "Sincronizado", + "outOfSync": "Desincronizado", + "healthy": "Saludable", + "degraded": "Degradado", + "progressing": "Progresando", + "missing": "Faltantes", + "suspended": "Suspendido" + }, + "spoolman": { + "loading": "Cargando" + }, + "gitlab": { + "groups": "Grupos", + "issues": "Números", + "merges": "Solicitudes de fusión", + "projects": "Proyectos" + }, + "apcups": { + "status": "Estado", + "load": "Carga", + "bcharge": "Carga de la batería", + "timeleft": "Tiempo restante" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Etiquetas" + }, + "slskd": { + "slskStatus": "Red", + "connected": "Conectado", + "disconnected": "Desconectado", + "updateStatus": "Update", + "update_yes": "Disponible", + "update_no": "Actualizado", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Archivos" } } diff --git a/public/locales/eu/common.json b/public/locales/eu/common.json index 27685703..f0654ebb 100644 --- a/public/locales/eu/common.json +++ b/public/locales/eu/common.json @@ -1,9 +1,464 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Missing Widget Type: {{type}}", + "api_error": "API Error", + "information": "Informazioa", + "status": "Status", + "url": "URL", + "raw_error": "Raw Error", + "response_data": "Response Data" + }, + "weather": { + "current": "Current Location", + "allow": "Click to allow", + "updating": "Eguneratzen", + "wait": "Itxaron mesedez" + }, + "search": { + "placeholder": "Bilatu…" + }, + "resources": { + "cpu": "CPU", + "mem": "MEM", + "total": "Guztira", + "free": "Free", + "used": "Erabilita", + "load": "Load", + "temp": "TEMP", + "max": "Max", + "uptime": "UP" + }, + "unifi": { + "users": "Users", + "uptime": "Uptime", + "days": "Egun", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Gailuak", + "lan_devices": "LAN Gailuak", + "wlan_devices": "WLAN Gailuak", + "lan_users": "LAN Erabiltzaileak", + "wlan_users": "WLAN Erabiltzaileak", + "up": "UP", + "down": "DOWN", + "wait": "Itxaron mesedez", + "empty_data": "Subsystem status unknown" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "MEM", + "cpu": "CPU", + "running": "Running", + "offline": "Offline", + "error": "Error", + "unknown": "Ezezaguna", + "healthy": "Osasuntsu", + "starting": "Abiarazten", + "unhealthy": "Unhealthy", + "not_found": "Not Found", + "exited": "Exited", + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Behera", + "up": "Gora", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Erantzuna", + "down": "Behera", + "up": "Gora", + "not_available": "Not Available" + }, + "emby": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bit-tasa", + "no_active": "No Active Streams", + "movies": "Filmak", + "series": "Serieak", + "episodes": "Episodes", + "songs": "Abestiak" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Guztira", + "unknown": "Ezezaguna" + }, + "evcc": { + "pv_power": "Produkzioak", + "battery_soc": "Bateria", + "grid_power": "Sarea", + "home_power": "Kontsumoa", + "charge_power": "Kargagailua", + "kilowatt": "kW" + }, + "flood": { + "download": "Jeitsierak", + "upload": "Kargatu", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Harpidetzak", + "unread": "Irakurri gabe" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Konektatzen", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Deskonektatuta", + "connectionStatusConnected": "Konektatuta", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Behera", + "up": "Gora", + "received": "Received", + "sent": "Bidalita", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, + "tautulli": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bit-tasa", + "no_active": "No Active Streams", + "plex_connection_error": "Check Plex Connection" + }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, + "nzbget": { + "rate": "Rate", + "remaining": "Remaining", + "downloaded": "Downloaded" + }, + "plex": { + "streams": "Active Streams", + "albums": "Albums", + "movies": "Filmak", + "tv": "TV Shows" + }, + "sabnzbd": { + "rate": "Rate", + "queue": "Queue", + "timeleft": "Time Left" + }, + "rutorrent": { + "active": "Active", + "upload": "Kargatu", + "download": "Jeitsierak" + }, + "transmission": { + "download": "Jeitsierak", + "upload": "Kargatu", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Jeitsierak", + "upload": "Kargatu", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Jeitsierak", + "upload": "Kargatu", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Jeitsierak", + "upload": "Kargatu", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Serieak", + "queue": "Queue", + "unknown": "Ezezaguna" + }, + "radarr": { + "wanted": "Wanted", + "missing": "Missing", + "queued": "Queued", + "movies": "Filmak", + "queue": "Queue", + "unknown": "Ezezaguna" + }, + "lidarr": { + "wanted": "Wanted", + "queued": "Queued", + "artists": "Artists" + }, + "readarr": { + "wanted": "Wanted", + "queued": "Queued", + "books": "Books" + }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, + "ombi": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "jellyseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "overseerr": { + "pending": "Pending", + "processing": "Processing", + "approved": "Approved", + "available": "Available" + }, + "netalertx": { + "total": "Guztira", + "connected": "Konektatuta", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, + "pihole": { + "queries": "Queries", + "blocked": "Blocked", + "blocked_percent": "Blocked %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Queries", + "blocked": "Blocked", + "filtered": "Filtered", + "latency": "Latency" + }, + "speedtest": { + "upload": "Kargatu", + "download": "Jeitsierak", + "ping": "Ping" + }, + "portainer": { + "running": "Running", + "stopped": "Stopped", + "total": "Guztira" + }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Irakurri gabe", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Queue", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, + "traefik": { + "routers": "Routers", + "services": "Services", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" + }, + "npm": { + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Guztira" + }, + "coinmarketcap": { + "configure": "Configure one or more crypto currencies to track", + "1hour": "1 Hour", + "1day": "1 Day", + "7days": "7 Days", + "30days": "30 Days" + }, + "gotify": { + "apps": "Applications", + "clients": "Clients", + "messages": "Messages" + }, + "prowlarr": { + "enableIndexers": "Indexers", + "numberOfGrabs": "Grabs", + "numberOfQueries": "Queries", + "numberOfFailGrabs": "Fail Grabs", + "numberOfFailQueries": "Fail Queries" + }, + "jackett": { + "configured": "Configured", + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "Sessions", + "numConnections": "Connections", + "dataRelayed": "Relayed", + "transferRate": "Rate" + }, + "mastodon": { + "user_count": "Users", + "status_count": "Posts", + "domain_count": "Domains" + }, + "medusa": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Serieak" + }, + "minecraft": { + "players": "Jokalariak", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Irakurri gabe" + }, + "authentik": { + "users": "Users", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Failed Logins (24h)" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "load": "Load", + "wait": "Itxaron mesedez", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", + "uptime": "UP", + "total": "Guztira", + "free": "Free", + "used": "Erabilita", + "days": "d", + "hours": "h", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" + }, "wmo": { - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", "0-day": "Sunny", "0-night": "Clear", "1-day": "Mainly Sunny", @@ -55,397 +510,28 @@ "86-day": "Snow Showers", "86-night": "Snow Showers", "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", + "96-night": "Thunderstorm With Hail", + "99-day": "Thunderstorm With Hail", "99-night": "Thunderstorm With Hail" }, "homebridge": { - "updates": "Updates", "available_update": "System", + "updates": "Updates", "update_available": "Update Available", "up_to_date": "Up to Date", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", + "up": "Gora", "pending": "Pending", - "down": "Down" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "widget": { - "missing_type": "Missing Widget Type: {{type}}", - "api_error": "API Error", - "information": "Informazioa", - "status": "Status", - "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" - }, - "weather": { - "current": "Current Location", - "allow": "Click to allow", - "updating": "Eguneratzen", - "wait": "Itxaron mesedez" - }, - "search": { - "placeholder": "Bilatu…" - }, - "resources": { - "cpu": "CPU", - "mem": "MEM", - "total": "Guztira", - "free": "Free", - "used": "Erabilita", - "load": "Load", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" - }, - "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Egun", - "wan": "WAN", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Gailuak", - "lan_devices": "LAN Gailuak", - "wlan_devices": "WLAN Gailuak", - "lan_users": "LAN Erabiltzaileak", - "wlan_users": "WLAN Erabiltzaileak", - "up": "UP", - "down": "DOWN", - "wait": "Itxaron mesedez", - "empty_data": "Subsystem status unknown" - }, - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "running": "Running", - "offline": "Offline", - "error": "Error", - "unknown": "Ezezaguna", - "healthy": "Osasuntsu", - "starting": "Abiarazten", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial" - }, - "ping": { - "error": "Errorea", - "ping": "Ping" - }, - "emby": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bit-tasa", - "no_active": "No Active Streams", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Abestiak" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, - "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", - "plex_connection_error": "Check Plex Connection" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "nzbget": { - "rate": "Rate", - "remaining": "Remaining", - "downloaded": "Downloaded" - }, - "plex": { - "streams": "Active Streams", - "albums": "Albums", - "movies": "Movies", - "tv": "TV Shows" - }, - "sabnzbd": { - "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" - }, - "rutorrent": { - "active": "Active", - "upload": "Kargatu", - "download": "Deskargatu" - }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series", - "queue": "Queue", - "unknown": "Unknown" - }, - "radarr": { - "wanted": "Wanted", - "missing": "Missing", - "queued": "Queued", - "movies": "Movies", - "queue": "Queue", - "unknown": "Unknown" - }, - "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" - }, - "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" - }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" - }, - "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "overseerr": { - "pending": "Pending", - "processing": "Processing", - "approved": "Approved", - "available": "Available" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" - }, - "pihole": { - "queries": "Queries", - "blocked": "Blocked", - "blocked_percent": "Blocked %", - "gravity": "Gravity" - }, - "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" - }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" - }, - "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" - }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" - }, - "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" - }, - "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" - }, - "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" - }, - "jackett": { - "configured": "Configured", - "errored": "Errored" - }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" - }, - "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, - "minecraft": { - "players": "Jokalariak", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" - }, - "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" - }, - "proxmox": { - "mem": "MEM", - "cpu": "CPU", - "lxc": "LXC", - "vms": "VMs" - }, - "glances": { - "cpu": "CPU", - "load": "Load", - "wait": "Please wait", - "temp": "TEMP", - "warn": "Warn", - "uptime": "UP", - "total": "Total", - "free": "Free", - "used": "Used", - "days": "d", - "hours": "h" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "down": "Behera" }, "healthchecks": { "new": "New", - "up": "Online", + "up": "Gora", "grace": "In Grace Period", - "down": "Offline", + "down": "Behera", "paused": "Paused", "status": "Status", "last_ping": "Last Ping", @@ -471,14 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", "active": "Active", "queue": "Queue", - "total": "Total" + "total": "Guztira" }, "gluetun": { "public_ip": "Public IP", @@ -487,16 +572,32 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bit-tasa", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", "failed": "Failed", - "unknown": "Unknown" + "unknown": "Ezezaguna" }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "Guztira" + }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", @@ -513,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -539,8 +646,8 @@ "load": "Load Avg", "memory": "Mem Usage", "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", + "up": "Gora", + "down": "Behera", "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" @@ -553,7 +660,7 @@ }, "immich": { "users": "Users", - "photos": "Photos", + "photos": "Argazkiak", "videos": "Videos", "storage": "Storage" }, @@ -564,24 +671,30 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Serieak", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", - "series": "Series", + "series": "Serieak", "books": "Books" }, "diskstation": { - "days": "Days", + "days": "Egun", "uptime": "Uptime", "volumeAvailable": "Available" }, "mylar": { - "series": "Series", - "issues": "Issues", + "series": "Serieak", + "issues": "Arazoak", "wanted": "Wanted" }, "photoprism": { "albums": "Albums", - "photos": "Photos", + "photos": "Argazkiak", "videos": "Videos", "people": "People" }, @@ -591,6 +704,10 @@ "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -626,6 +743,11 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, "ghostfolio": { "gross_percent_today": "Today", "gross_percent_1y": "One year", @@ -646,6 +768,12 @@ "monitoring": "Monitoring", "updates": "Updates" }, + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Serieak" + }, "jdownloader": { "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", @@ -653,10 +781,10 @@ "downloadSpeed": "Speed" }, "kavita": { - "seriesCount": "Series", + "seriesCount": "Serieak", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +792,255 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Izena", + "map": "Mapa", + "currentPlayers": "Current players", + "players": "Jokalariak", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Etiketak" + }, + "openmediavault": { + "downloading": "Deskargatzen", + "total": "Guztira", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Gora", + "down": "Behera", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Gora", + "seemsdown": "Seems Down", + "down": "Behera", + "unknown": "Ezezaguna" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "Ez da gertaerarik aurkitu." + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Gutunontziak", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Ekitaldiak", + "plants": "Landareak", + "photos": "Argazkiak", + "species": "Species" + }, + "gitea": { + "notifications": "Jakinarazpenak", + "issues": "Arazoak", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Irudia", + "imageSize": "Irudiaren tamaina", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Filmak", + "tags": "Etiketak", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Hitz gakoak" + }, + "homebox": { + "items": "Elementuak", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Etiketak", + "users": "Users", + "totalValue": "Guztira" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Konektatuta", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Guztira" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Jeitsierak", + "upload": "Kargatu" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Bildumak", + "tags": "Etiketak" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informazioa", + "warning": "Abisua", + "average": "Batez besteko", + "high": "Altua", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Ibilgailuak", + "serviceRecords": "Service Records", + "reminders": "Oroigarriak", + "nextReminder": "Hurrengo abisua", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Izena", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Izena", + "systems": "Systems", + "up": "Gora", + "down": "Behera", + "paused": "Paused", + "pending": "Pending", + "status": "Status", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Aplikazioak", + "synced": "Sinkronizatuta", + "outOfSync": "Out Of Sync", + "healthy": "Osasuntsu", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Etenda" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Taldeak", + "issues": "Arazoak", + "merges": "Merge Requests", + "projects": "Proiektuak" + }, + "apcups": { + "status": "Status", + "load": "Load", + "bcharge": "Battery Charge", + "timeleft": "Time Left" + }, + "hoarder": { + "bookmarks": "Laster-markak", + "favorites": "Gogokoak", + "archived": "Artxibatuta", + "highlights": "Highlights", + "lists": "Zerrendak", + "tags": "Etiketak" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Konektatuta", + "disconnected": "Deskonektatuta", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index ad457f2c..b1ff23b4 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Puuttuva härpäkkeen tyyppi: {{type}}", "api_error": "API-virhe", - "status": "Tila", "information": "Information", + "status": "Tila", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -19,34 +40,62 @@ }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Yhteensä", "free": "Vapaana", "used": "Käytetty", "load": "Kuorma", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "Users", + "uptime": "Uptime", + "days": "Days", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Devices", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "Odota, ole hyvä", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "RAM", + "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Offline", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Toistaa", @@ -58,6 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Yhteensä", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Tila", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Toistaa", "transcoding": "Transkoodaa", @@ -65,11 +174,24 @@ "no_active": "Ei aktiivisia striimejä", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Nopeus", "remaining": "Jäljellä", "downloaded": "Ladattu" }, + "plex": { + "streams": "Active Streams", + "albums": "Albums", + "movies": "Movies", + "tv": "TV Shows" + }, "sabnzbd": { "rate": "Nopeus", "queue": "Jono", @@ -77,34 +199,58 @@ }, "rutorrent": { "active": "Aktiivinen", - "upload": "Lähetys", - "download": "Lataus" + "upload": "Upload", + "download": "Download" }, "transmission": { - "download": "Lataus", - "upload": "Lähetys", - "leech": "Lataajia", - "seed": "Lähettäjiä" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "qbittorrent": { - "download": "Lataus", - "upload": "Lähetys", - "leech": "Lataajia", - "seed": "Lähettäjiä" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "sonarr": { "wanted": "Haluttu", "queued": "Jonossa", - "series": "Sarja", - "queue": "Queue", + "series": "Series", + "queue": "Jono", "unknown": "Unknown" }, "radarr": { "wanted": "Haluttu", - "queued": "Jonossa", - "movies": "Elokuvia", "missing": "Missing", - "queue": "Queue", + "queued": "Jonossa", + "movies": "Movies", + "queue": "Jono", "unknown": "Unknown" }, "lidarr": { @@ -133,15 +279,21 @@ }, "overseerr": { "pending": "Vireillä", + "processing": "Processing", "approved": "Hyväksytty", - "available": "Saatavilla", - "processing": "Processing" + "available": "Saatavilla" + }, + "netalertx": { + "total": "Yhteensä", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "Kyselyjä", "blocked": "Estetty", - "gravity": "Vakavuus", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Vakavuus" }, "adguard": { "queries": "Kyselyjä", @@ -150,20 +302,67 @@ "latency": "Viive" }, "speedtest": { - "upload": "Lähetys", - "download": "Lataus", - "ping": "Viive" + "upload": "Upload", + "download": "Download", + "ping": "Ping" }, "portainer": { - "running": "Käynnissä", + "running": "Running", "stopped": "Pysäytetty", "total": "Yhteensä" }, + "suwayomi": { + "download": "Ladattu", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Kyselyjä", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Estetty", + "totalDropped": "Dropped", + "totalClients": "Asiakasohjelmia" + }, + "tdarr": { + "queue": "Jono", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, "traefik": { "routers": "Reitittimiä", "services": "Palveluja", "middleware": "Middlewareja" }, + "navidrome": { + "nothing_streaming": "Ei aktiivisia striimejä", + "please_wait": "Odota, ole hyvä" + }, "npm": { "enabled": "Käytössä", "disabled": "Poissa käytöstä", @@ -184,13 +383,13 @@ "prowlarr": { "enableIndexers": "Indeksoijia", "numberOfGrabs": "Nappauksia", - "numberOfQueries": "Hakuja", + "numberOfQueries": "Kyselyjä", "numberOfFailGrabs": "Epäonnistuneita nappauksia", "numberOfFailQueries": "Epäonnistuneita kyselyjä" }, "jackett": { "configured": "Määritettyjä", - "errored": "Virheellisiä" + "errored": "Errored" }, "strelaysrv": { "numActiveSessions": "Istuntoja", @@ -199,71 +398,76 @@ "transferRate": "Nopeus" }, "mastodon": { - "user_count": "Käyttäjiä", + "user_count": "Users", "status_count": "Kirjoituksia", "domain_count": "Verkkotunnuksia" }, + "medusa": { + "wanted": "Haluttu", + "queued": "Jonossa", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Tila", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, "authentik": { - "users": "Käyttäjiä", + "users": "Users", "loginsLast24H": "Kirjautumisia (24h)", "failedLoginsLast24H": "Epäonnistuneita kirjautumisia (24h)" }, "proxmox": { - "mem": "RAM", + "mem": "MEM", "cpu": "CPU", "lxc": "LXC", "vms": "VKt" }, - "unifi": { - "users": "Users", - "uptime": "System Uptime", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "wait": "Odota, ole hyvä", - "days": "Days", - "wan": "WAN", - "up": "UP", - "down": "DOWN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "lan": "LAN", - "wlan": "WLAN", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" - }, "glances": { - "wait": "Please wait", "cpu": "CPU", + "load": "Kuorma", + "wait": "Odota, ole hyvä", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "Yhteensä", + "free": "Vapaana", + "used": "Käytetty", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", "0-day": "Sunny", "0-night": "Clear", "1-day": "Mainly Sunny", "1-night": "Mainly Clear", "2-day": "Partly Cloudy", "2-night": "Partly Cloudy", + "3-day": "Cloudy", + "3-night": "Cloudy", + "45-day": "Foggy", "45-night": "Foggy", "48-day": "Foggy", "48-night": "Foggy", @@ -292,11 +496,11 @@ "73-day": "Snow", "73-night": "Snow", "75-day": "Heavy Snow", - "80-night": "Light Showers", "75-night": "Heavy Snow", "77-day": "Snow Grains", "77-night": "Snow Grains", "80-day": "Light Showers", + "80-night": "Light Showers", "81-day": "Showers", "81-night": "Showers", "82-day": "Heavy Showers", @@ -312,14 +516,6 @@ "99-day": "Thunderstorm With Hail", "99-night": "Thunderstorm With Hail" }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, "homebridge": { "available_update": "System", "updates": "Updates", @@ -328,22 +524,32 @@ "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "pending": "Pending", + "pending": "Vireillä", "down": "Down" }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Tila", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, + "autobrr": { + "approvedPushes": "Hyväksytty", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indeksoijia" + }, "tubearchivist": { - "downloads": "Queue", + "downloads": "Jono", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -351,18 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Odota, ole hyvä" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "Aktiivinen", + "queue": "Jono", + "total": "Yhteensä" }, "gluetun": { "public_ip": "Public IP", @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bittinopeus", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -384,51 +589,20 @@ }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "Yhteensä" }, - "deluge": { - "upload": "Upload", - "leech": "Leech", - "seed": "Seed", - "download": "Download" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { - "wait": "Please Wait", + "wait": "Odota, ole hyvä", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedSwitches": "Connected switches", - "connectedGateway": "Connected gateways" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -440,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,20 +632,25 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Haluttu", - "queued": "Jonossa", - "series": "Sarja" - }, "octoprint": { - "printer_state": "Status", + "printer_state": "Tila", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "Tila" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", @@ -486,15 +671,26 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", - "books": "Books" + "books": "Kirjoja" + }, + "diskstation": { + "days": "Days", + "uptime": "Uptime", + "volumeAvailable": "Saatavilla" }, "mylar": { "series": "Series", "issues": "Issues", - "wanted": "Wanted" + "wanted": "Haluttu" }, "photoprism": { "albums": "Albums", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { - "queue": "Queue", + "queue": "Jono", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -524,11 +719,11 @@ "memoryusage": "Memory Usage", "freespace": "Free Space", "activeusers": "Active Users", - "numshares": "Shared Items", - "numfiles": "Files" + "numfiles": "Files", + "numshares": "Shared Items" }, "kopia": { - "status": "Status", + "status": "Tila", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", + "books": "Kirjoja", "podcastsDuration": "Duration", "booksDuration": "Duration" }, @@ -581,89 +764,283 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "watt_hour": "Wh", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Kirjoja", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Jono", + "downloadBytesRemaining": "Jäljellä", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "Tila", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Hyväksytty" + }, + "gamedig": { + "status": "Tila", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Yhteensä", + "running": "Running", + "stopped": "Pysäytetty", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Tila", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Verkkotunnuksia", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Käytössä", + "disabled": "Poissa käytöstä", + "total": "Yhteensä" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Tila", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Vireillä", + "status": "Tila", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Tila", + "load": "Kuorma", + "bcharge": "Battery Charge", + "timeleft": "Aikaa jäljellä" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Saatavilla", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 79187db3..f0cd54f6 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -1,46 +1,101 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "j", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Type de widget manquant: {{type}}", - "api_error": "Erreur de l'API", + "api_error": "Erreur API", + "information": "Informations", "status": "Statut", - "information": "Information", "url": "URL", "raw_error": "Erreur brute", "response_data": "Données de réponse" }, + "weather": { + "current": "Localisation actuelle", + "allow": "Cliquez pour autoriser", + "updating": "Mise à jour", + "wait": "Veuillez patienter" + }, "search": { "placeholder": "Recherche…" }, "resources": { + "cpu": "CPU", + "mem": "MÉM", "total": "Total", "free": "Libre", "used": "Utilisé", "load": "Charge", - "cpu": "CPU", - "mem": "MÉM", + "temp": "Temp", "max": "Max", - "temp": "TEMP", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "mn" + "uptime": "Up" + }, + "unifi": { + "users": "Utilisateurs", + "uptime": "Démarré depuis", + "days": "Jours", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Équipt.", + "lan_devices": "Périphériques LAN", + "wlan_devices": "Périphériques WLAN", + "lan_users": "Utilisateurs LAN", + "wlan_users": "Utilisateurs WLAN", + "up": "Up", + "down": "INACTIF", + "wait": "Veuillez patienter", + "empty_data": "Statut du sous-système inconnu" }, "docker": { "rx": "Rx", "tx": "Tx", - "mem": "Mém", - "cpu": "Cpu", + "mem": "MÉM", + "cpu": "CPU", + "running": "Démarré", "offline": "Hors ligne", "error": "Erreur", "unknown": "Inconnu", - "running": "Démarré", + "healthy": "Fonctionnel", "starting": "Démarrage", - "unhealthy": "Dysfonctionnement", - "not_found": "Inconnu", + "unhealthy": "Mauvaise santé", + "not_found": "Introuvable", "exited": "Arrêté", - "partial": "Partiel", - "healthy": "Fonctionnel" + "partial": "Partiel" + }, + "ping": { + "error": "Erreur", + "ping": "Latence", + "down": "Bas", + "up": "Haut", + "not_available": "Non disponible" + }, + "siteMonitor": { + "http_status": "Statut HTTP", + "error": "Erreur", + "response": "Réponse", + "down": "Bas", + "up": "Haut", + "not_available": "Non disponible" }, "emby": { "playing": "En lecture", @@ -50,7 +105,67 @@ "movies": "Films", "series": "Séries TV", "episodes": "Épisodes", - "songs": "Musique" + "songs": "Chansons" + }, + "esphome": { + "offline": "Hors ligne", + "offline_alt": "Hors ligne", + "online": "En ligne", + "total": "Total", + "unknown": "Inconnu" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Batterie", + "grid_power": "Grille", + "home_power": "Consommation", + "charge_power": "Chargeur", + "kilowatt": "kW" + }, + "flood": { + "download": "Récep.", + "upload": "Téléverser", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Abonnements", + "unread": "Non lu" + }, + "fritzbox": { + "connectionStatus": "Statut", + "connectionStatusUnconfigured": "Non-configuré", + "connectionStatusConnecting": "Connexion en cours", + "connectionStatusAuthenticating": "Authentification en cours", + "connectionStatusPendingDisconnect": "Déconnexion en attente", + "connectionStatusDisconnecting": "Déconnexion en cours", + "connectionStatusDisconnected": "Déconnecté", + "connectionStatusConnected": "Connecté", + "uptime": "Démarré depuis", + "maxDown": "Max. Bas", + "maxUp": "Max. Haut", + "down": "Bas", + "up": "Haut", + "received": "Reçu", + "sent": "Envoyé", + "externalIPAddress": "IP externe", + "externalIPv6Address": "IPv6 externe", + "externalIPv6Prefix": "Préfixe IPv6 externe" + }, + "caddy": { + "upstreams": "En amont", + "requests": "Demandes en cours", + "requests_failed": "Demandes échouées" + }, + "changedetectionio": { + "totalObserved": "Total Observé", + "diffsDetected": "Différences détectées" + }, + "channelsdvrserver": { + "shows": "Séries", + "recordings": "Enregistrements", + "scheduled": "Planifié", + "passes": "Passes" }, "tautulli": { "playing": "En lecture", @@ -59,88 +174,199 @@ "no_active": "Aucun flux actif", "plex_connection_error": "Vérifier la connexion à Plex" }, - "rutorrent": { - "active": "Actif", - "upload": "Envoi", - "download": "Réception" + "omada": { + "connectedAp": "AP connectés", + "activeUser": "Périphériques actifs", + "alerts": "Alertes", + "connectedGateways": "Passerelles connectées", + "connectedSwitches": "Switchs connectés" }, - "sonarr": { - "wanted": "Demande", - "queued": "Attente", - "series": "Séries", - "queue": "Attente", - "unknown": "Inconnu" + "nzbget": { + "rate": "Débit", + "remaining": "Restant", + "downloaded": "Téléchargé" }, - "radarr": { - "wanted": "Demande", - "queued": "Attente", + "plex": { + "streams": "Flux actif", + "albums": "Albums", "movies": "Films", - "missing": "Manquant", - "queue": "Attente", - "unknown": "Inconnu" - }, - "readarr": { - "wanted": "Demande", - "queued": "Attente", - "books": "Livres" - }, - "ombi": { - "pending": "En attente", - "approved": "Validé", - "available": "Disponible" - }, - "jellyseerr": { - "pending": "En attente", - "approved": "Validé", - "available": "Disponible" - }, - "pihole": { - "queries": "Requêtes", - "blocked": "Bloqué", - "gravity": "Listes dom. bloqués", - "blocked_percent": "Bloqué %" - }, - "speedtest": { - "upload": "Envoi", - "download": "Récep.", - "ping": "Ping" - }, - "portainer": { - "running": "Démarré", - "stopped": "Arrêté", - "total": "Total" - }, - "traefik": { - "routers": "Routeurs", - "services": "Services", - "middleware": "Middleware" - }, - "npm": { - "enabled": "Activé", - "disabled": "Désactivé", - "total": "Total" - }, - "weather": { - "current": "Localisation actuelle", - "allow": "Cliquez pour autoriser", - "updating": "Mise à jour", - "wait": "Veuillez patienter" - }, - "overseerr": { - "pending": "Attente", - "approved": "Demande", - "available": "Disponible", - "processing": "Traitement" + "tv": "Séries" }, "sabnzbd": { "rate": "Débit", "queue": "En attente", "timeleft": "Temps restant" }, - "nzbget": { - "remaining": "Restant", - "downloaded": "Téléchargé", - "rate": "Débit" + "rutorrent": { + "active": "Actif", + "upload": "Téléverser", + "download": "Récep." + }, + "transmission": { + "download": "Récep.", + "upload": "Téléverser", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Récep.", + "upload": "Téléverser", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "Processeur utilisé", + "memUsage": "Mémoire utilisée", + "systemTempC": "Température système", + "poolUsage": "Utilisation de la pool", + "volumeUsage": "Utilisation du volume", + "invalid": "Invalide" + }, + "deluge": { + "download": "Récep.", + "upload": "Téléverser", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Octets de la mémoire cache", + "cachemissbytes": "Octets manquants du cache" + }, + "downloadstation": { + "download": "Récep.", + "upload": "Téléverser", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Demandé", + "queued": "En file d'attente", + "series": "Séries TV", + "queue": "En attente", + "unknown": "Inconnu" + }, + "radarr": { + "wanted": "Demandé", + "missing": "Manquant", + "queued": "En file d'attente", + "movies": "Films", + "queue": "En attente", + "unknown": "Inconnu" + }, + "lidarr": { + "wanted": "Demandé", + "queued": "En file d'attente", + "artists": "Artistes" + }, + "readarr": { + "wanted": "Demandé", + "queued": "En file d'attente", + "books": "Livres" + }, + "bazarr": { + "missingEpisodes": "Épisodes manquants", + "missingMovies": "Films manquants" + }, + "ombi": { + "pending": "En attente", + "approved": "Approuvé", + "available": "Disponible" + }, + "jellyseerr": { + "pending": "En attente", + "approved": "Approuvé", + "available": "Disponible" + }, + "overseerr": { + "pending": "En attente", + "processing": "En cours de traitement", + "approved": "Approuvé", + "available": "Disponible" + }, + "netalertx": { + "total": "Total", + "connected": "Connecté", + "new_devices": "Nouveaux appareils", + "down_alerts": "Alertes d'arrêt" + }, + "pihole": { + "queries": "Requêtes", + "blocked": "Bloqué", + "blocked_percent": "% bloqué", + "gravity": "Listes dom. bloqués" + }, + "adguard": { + "queries": "Requêtes", + "blocked": "Bloqué", + "filtered": "Filtrées", + "latency": "Latence" + }, + "speedtest": { + "upload": "Téléverser", + "download": "Récep.", + "ping": "Latence" + }, + "portainer": { + "running": "Démarré", + "stopped": "Arrêté", + "total": "Total" + }, + "suwayomi": { + "download": "Téléchargé", + "nondownload": "Non téléchargé", + "read": "Lu", + "unread": "Non lu", + "downloadedread": "Téléchargé et lu", + "downloadedunread": "Téléchargé et non lu", + "nondownloadedread": "Non téléchargé et lu", + "nondownloadedunread": "Non téléchargé et non lu" + }, + "tailscale": { + "address": "Adresse", + "expires": "Expire", + "never": "Jamais", + "last_seen": "Vu pour la dernière fois", + "now": "Maintenant", + "years": "{{number}}a", + "weeks": "{{number}}s", + "days": "{{number}}j", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "Il y a {{value}}" + }, + "technitium": { + "totalQueries": "Requêtes", + "totalNoError": "Succès", + "totalServerFailure": "Échecs", + "totalNxDomain": "Domaines NX", + "totalRefused": "Refusés", + "totalAuthoritative": "Autoritaire", + "totalRecursive": "Récursif", + "totalCached": "Mis en cache", + "totalBlocked": "Bloqué", + "totalDropped": "Abandonné", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "En attente", + "processed": "Traité", + "errored": "Erroné", + "saved": "Enregistré" + }, + "traefik": { + "routers": "Routeurs", + "services": "Services", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "Aucun flux actif", + "please_wait": "Merci de patienter" + }, + "npm": { + "enabled": "Activé", + "disabled": "Désactivé", + "total": "Total" }, "coinmarketcap": { "configure": "Configurer une ou plusieurs crypto-monnaies à suivre", @@ -150,123 +376,97 @@ "30days": "30 Jours" }, "gotify": { - "apps": "Applis", + "apps": "Applications", "clients": "Clients", - "messages": "Msg" + "messages": "Messages" }, "prowlarr": { "enableIndexers": "Indexeur", - "numberOfGrabs": "Capture", - "numberOfQueries": "Demande", - "numberOfFailGrabs": "Capt. échouée", - "numberOfFailQueries": "Dem. échouée" - }, - "transmission": { - "download": "Réception", - "upload": "Envoi", - "leech": "Leech", - "seed": "Seed" + "numberOfGrabs": "Captures", + "numberOfQueries": "Requêtes", + "numberOfFailGrabs": "Captures échouées", + "numberOfFailQueries": "Demandes échouées" }, "jackett": { "configured": "Configuré", - "errored": "En erreur" - }, - "bazarr": { - "missingEpisodes": "Épisodes manquants", - "missingMovies": "Films manquants" - }, - "lidarr": { - "wanted": "Demandé", - "queued": "En queue", - "artists": "Artistes" - }, - "adguard": { - "queries": "Requêtes", - "blocked": "Bloquées", - "filtered": "Filtrées", - "latency": "Latence" - }, - "qbittorrent": { - "download": "Récep.", - "upload": "Envoi", - "leech": "Leech", - "seed": "Seed" - }, - "mastodon": { - "user_count": "Utilisateurs", - "status_count": "Messages", - "domain_count": "Domaines" + "errored": "Erroné" }, "strelaysrv": { "numActiveSessions": "Sessions", - "numConnections": "Cnx", + "numConnections": "Connexions", "dataRelayed": "Relayé", "transferRate": "Débit" }, + "mastodon": { + "user_count": "Utilisateurs", + "status_count": "Articles", + "domain_count": "Domaines" + }, + "medusa": { + "wanted": "Demandé", + "queued": "En file d'attente", + "series": "Séries TV" + }, + "minecraft": { + "players": "Joueurs", + "version": "Version", + "status": "Statut", + "up": "En ligne", + "down": "Hors ligne" + }, + "miniflux": { + "read": "Lu", + "unread": "Non lu" + }, "authentik": { "users": "Utilisateurs", - "loginsLast24H": "Cnx. (24h)", - "failedLoginsLast24H": "Cnx. échouées (24h)" + "loginsLast24H": "Connexions (24 h)", + "failedLoginsLast24H": "Connexions échouées (24 h)" }, "proxmox": { - "mem": "Mém", - "cpu": "Cpu", - "lxc": "LxC", + "mem": "MÉM", + "cpu": "CPU", + "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Utilisateurs", - "uptime": "Disponibilité du système", - "days": "Jours", - "wan": "WAN", - "lan_users": "Utilisateurs LAN", - "wlan_users": "Utilisateurs WLAN", - "up": "UP", - "down": "DOWN", - "wait": "Merci de patienter", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Équipt.", - "lan_devices": "Équipt. LAN", - "wlan_devices": "Équipt. WLAN", - "empty_data": "Statut sous-système inconnu" - }, - "plex": { - "streams": "Flux actif", - "movies": "Films", - "tv": "Séries TV", - "albums": "Albums" - }, "glances": { - "cpu": "Cpu", - "wait": "Merci de patienter", - "temp": "Temp", - "uptime": "Up", - "days": "j", - "hours": "h", + "cpu": "CPU", "load": "Charge", + "wait": "Veuillez patienter", + "temp": "Temp", + "_temp": "Température", "warn": "Alerte", + "uptime": "Up", "total": "Total", "free": "Libre", - "used": "Utilisé" + "used": "Utilisé", + "days": "j", + "hours": "h", + "crit": "Crit.", + "read": "Lu", + "write": "Écrit.", + "gpu": "Carte Graphique", + "mem": "Mém.", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observé", - "diffsDetected": "Diffs Detectées" + "quicklaunch": { + "bookmark": "Marque-Page", + "service": "Service", + "search": "Recherche", + "custom": "Personnalisé", + "visit": "Aller vers", + "url": "URL", + "searchsuggestion": "Suggestions" }, "wmo": { + "0-day": "Ensoleillé", + "0-night": "Clair", "1-day": "Principalement ensoleillé", "1-night": "Principalement clair", - "2-day": "Partiellement couvert", - "2-night": "Partiellement couvert", - "3-day": "Couvert", - "3-night": "Couvert", - "63-night": "Pluie", - "65-day": "Pluie forte", - "85-day": "Averses de neige", - "85-night": "Averses de neige", - "86-day": "Averses de neige", - "0-night": "Ciel clair", + "2-day": "Partiellement nuageux", + "2-night": "Partiellement nuageux", + "3-day": "Nuageux", + "3-night": "Nuageux", "45-day": "Brumeux", "45-night": "Brumeux", "48-day": "Brumeux", @@ -284,13 +484,15 @@ "61-day": "Pluie légère", "61-night": "Pluie légère", "63-day": "Pluie", - "65-night": "Pluie forte", + "63-night": "Pluie", + "65-day": "Forte pluie", + "65-night": "Forte pluie", "66-day": "Pluie verglaçante", "66-night": "Pluie verglaçante", "67-day": "Pluie verglaçante", "67-night": "Pluie verglaçante", - "71-day": "Neige légère", - "71-night": "Neige légère", + "71-day": "Légères chutes de neige", + "71-night": "Légères chutes de neige", "73-day": "Neige", "73-night": "Neige", "75-day": "Neige abondante", @@ -303,22 +505,16 @@ "81-night": "Averses", "82-day": "Averses fortes", "82-night": "Averses fortes", + "85-day": "Averses de neige", + "85-night": "Averses de neige", + "86-day": "Averses de neige", "86-night": "Averses de neige", "95-day": "Orage", "95-night": "Orage", "96-day": "Orage avec grêle", "96-night": "Orage avec grêle", "99-day": "Orage avec grêle", - "99-night": "Orage avec grêle", - "0-day": "Ensoleillé" - }, - "quicklaunch": { - "bookmark": "Signet", - "service": "Service", - "search": "Recherche", - "custom": "Personnalisé", - "visit": "Aller vers", - "url": "URL" + "99-night": "Orage avec grêle" }, "homebridge": { "available_update": "Système", @@ -327,9 +523,24 @@ "up_to_date": "À jour", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "Haut", + "pending": "En attente", + "down": "Bas" + }, + "healthchecks": { + "new": "Nouveau", + "up": "Haut", + "grace": "En Période de Grâce", + "down": "Bas", + "paused": "En Pause", + "status": "Statut", + "last_ping": "Dernier Ping", + "never": "Pas de Ping" + }, + "watchtower": { + "containers_scanned": "Scanné", + "containers_updated": "Mis à jour", + "containers_failed": "Échoué" }, "autobrr": { "approvedPushes": "Approuvé", @@ -337,45 +548,39 @@ "filters": "Filtres", "indexers": "Indexeur" }, - "watchtower": { - "containers_scanned": "Scanné", - "containers_updated": "Mis à jour", - "containers_failed": "Échoué" - }, "tubearchivist": { - "downloads": "Queue", + "downloads": "En attente", "videos": "Vidéos", "channels": "Chaînes", - "playlists": "Playlists" + "playlists": "Listes de lecture" }, "truenas": { "load": "Charge Système", "uptime": "Démarré depuis", - "alerts": "Alertes", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Aucun flux actif", - "please_wait": "Merci de patienter" + "alerts": "Alertes" }, "pyload": { "speed": "Débit", "active": "Actif", - "queue": "Queue", + "queue": "En attente", "total": "Total" }, "gluetun": { - "public_ip": "IP Publique", + "public_ip": "IP publique", "region": "Région", "country": "Pays" }, "hdhomerun": { - "channels": "Canaux", - "hd": "HD" - }, - "ping": { - "error": "Erreur", - "ping": "Ping" + "channels": "Chaînes", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Canal", + "channelNetwork": "Réseau", + "signalStrength": "Force", + "signalQuality": "Qualité", + "symbolQuality": "Qualité", + "networkRate": "Débit", + "clientIP": "Client" }, "scrutiny": { "passed": "Réussi", @@ -386,53 +591,22 @@ "inbox": "Boîte de réception", "total": "Total" }, - "deluge": { - "download": "Récep.", - "upload": "Envoi", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Récep.", - "upload": "Envoi", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "À traiter", - "processed": "Traité", - "errored": "En erreur", - "saved": "Libéré" - }, - "miniflux": { - "read": "Lu", - "unread": "Non lu" + "peanut": { + "battery_charge": "Charge de la batterie", + "ups_load": "Charge de l’ASI", + "ups_status": "État de l’ASI", + "online": "En ligne", + "on_battery": "Sur Batterie", + "low_battery": "Batterie Faible" }, "nextdns": { - "wait": "Patientez...", + "wait": "Merci de patienter", "no_devices": "Aucune donnée d'appareil reçue" }, - "common": { - "bibitrate": "{{value, rate(bits: true; binary: true)}}", - "bibyterate": "{{value, rate(bits: false; binary: true)}}" - }, - "omada": { - "connectedAp": "APs connectées", - "activeUser": "Équipts actifs", - "alerts": "Alertes", - "connectedGateway": "Passerelles connectées", - "connectedSwitches": "Switches connectés" - }, - "downloadstation": { - "download": "Récep.", - "upload": "Envoi", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { - "cpuLoad": "Charge CPU", - "memoryUsed": "Mém. Utilisée", - "uptime": "Disponibilité", + "cpuLoad": "Charge du processeur", + "memoryUsed": "Mémoire utilisée", + "uptime": "Démarré depuis", "numberOfLeases": "Baux" }, "xteve": { @@ -440,33 +614,44 @@ "streams_active": "Flux actif", "streams_xepg": "Canal XEPG" }, + "opendtu": { + "yieldDay": "Aujourd'hui", + "absolutePower": "Puissance", + "relativePower": "% de puissance", + "limit": "Limite" + }, "opnsense": { - "cpu": "Charge CPU", - "memory": "Mém. Utilisée", + "cpu": "Charge du processeur", + "memory": "Mémoire utilisée", "wanUpload": "WAN Envoi", "wanDownload": "WAN Récep." }, "moonraker": { - "printer_state": "État Imprimante", - "print_status": "Statut Imprimante", + "printer_state": "État de l'imprimante", + "print_status": "Statut de l'imprimante", "print_progress": "Progression", "layers": "Couches" }, - "medusa": { - "wanted": "Demande", - "queued": "En attente", - "series": "Séries" - }, "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", + "printer_state": "Statut", + "temp_tool": "Temp. de l'outil", + "temp_bed": "Temp. du lit", "job_completion": "Achèvement" }, "cloudflared": { "origin_ip": "IP Publique", "status": "Statut" }, + "pfsense": { + "load": "Charge moy.", + "memory": "Util. Mém.", + "wanStatus": "Statut WAN", + "up": "Haut", + "down": "Bas", + "temp": "Température", + "disk": "Util. Disque", + "wanIP": "IP WAN" + }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Tâches échouées 24h", @@ -482,19 +667,30 @@ "uptimekuma": { "up": "En ligne", "down": "Hors ligne", - "uptime": "Dispo.", + "uptime": "Démarré depuis", "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Séries TV", + "archives": "Archives", + "chapters": "Chapitres", + "categories": "Catégories" + }, "komga": { - "libraries": "Librairies", - "series": "Séries", + "libraries": "Bibliothèques", + "series": "Séries TV", "books": "Livres" }, + "diskstation": { + "days": "Jours", + "uptime": "Démarré depuis", + "volumeAvailable": "Disponible" + }, "mylar": { - "series": "Séries", - "issues": "Issues", - "wanted": "Demande" + "series": "Séries TV", + "issues": "Anomalies", + "wanted": "Demandé" }, "photoprism": { "albums": "Albums", @@ -502,17 +698,16 @@ "videos": "Vidéos", "people": "Personnes" }, - "diskstation": { - "days": "Jours", - "uptime": "Fonctionnement", - "volumeAvailable": "Disponible" - }, "fileflows": { - "queue": "À traiter", - "processing": "Traitement", + "queue": "En attente", + "processing": "En cours de traitement", "processed": "Traité", "time": "Temps" }, + "firefly": { + "networth": "Valeur Nette", + "budget": "Budget" + }, "grafana": { "dashboards": "Tableau de bord", "datasources": "Sources données", @@ -520,10 +715,10 @@ "alertstriggered": "Alertes déclenchées" }, "nextcloud": { - "freespace": "Espace Libre", - "activeusers": "Utilisateurs Actifs", - "cpuload": "Charge Cpu", + "cpuload": "Charge CPU", "memoryusage": "Utilisation Mémoire", + "freespace": "Libre", + "activeusers": "Utilisateurs Actifs", "numfiles": "Fichiers", "numshares": "Partages" }, @@ -532,38 +727,26 @@ "size": "Taille", "lastrun": "Dernière exécution", "nextrun": "Prochaine exécution", - "failed": "En erreur" + "failed": "Échoué" }, "unmanic": { "active_workers": "En cours", "total_workers": "Total", "records_total": "En attente" }, - "healthchecks": { - "new": "Nouveau", - "up": "En ligne", - "grace": "En Période de Grâce", - "down": "Hors ligne", - "paused": "En Pause", - "status": "Statut", - "last_ping": "Dernier Ping", - "never": "Pas de Ping" - }, "pterodactyl": { "servers": "Serveurs", "nodes": "Nœuds" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Up", + "targets_down": "Down", + "targets_total": "Total" }, - "minecraft": { - "players": "Joueurs", - "version": "Version", - "status": "Statut", + "gatus": { "up": "En ligne", - "down": "Hors ligne" + "down": "Hors ligne", + "uptime": "Démarré depuis" }, "ghostfolio": { "gross_percent_today": "Aujourd'hui", @@ -577,93 +760,287 @@ "booksDuration": "Durée" }, "homeassistant": { - "people_home": "People Home", + "people_home": "Personne à la maison", "lights_on": "Lumières allumées", - "switches_on": "Commutateur On" - }, - "freshrss": { - "unread": "Non lu", - "subscriptions": "Abonnements" - }, - "channelsdvrserver": { - "shows": "Affichages", - "recordings": "Enregistrements", - "scheduled": "Planifié", - "passes": "Passes" + "switches_on": "Interrupteurs allumés" }, "whatsupdocker": { "monitoring": "Conteneurs", "updates": "Mises à jour" }, - "tailscale": { - "address": "Adresse", - "expires": "Expire", - "never": "Jamais", - "last_seen": "Vu pour la dernière fois", - "now": "Maintenant", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "Il y a {{value}}" - }, - "qnap": { - "cpuUsage": "Cpu", - "memUsage": "Mém", - "systemTempC": "Temp", - "poolUsage": "Pool", - "volumeUsage": "Volume", - "invalid": "Invalide" - }, - "pfsense": { - "load": "Charge moy.", - "memory": "Util. Mém.", - "wanStatus": "Statut WAN", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Util. Disque", - "wanIP": "IP WAN" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Demandes en cours", - "requests_failed": "Demandes échouées" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Batterie", - "grid_power": "Grille", - "home_power": "Consommation", - "charge_power": "Chargeur", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connecté", - "new_devices": "Nouvel Appareil", - "down_alerts": "Alertes" + "calibreweb": { + "books": "Livres", + "authors": "Auteurs", + "categories": "Catégories", + "series": "Séries TV" }, "jdownloader": { - "downloadCount": "Total en attente", - "downloadSpeed": "Vitesse de téléchargement", + "downloadCount": "En attente", "downloadBytesRemaining": "Restant", - "downloadTotalBytes": "Taille" + "downloadTotalBytes": "Taille", + "downloadSpeed": "Débit" }, "kavita": { - "seriesCount": "Séries", + "seriesCount": "Séries TV", "totalFiles": "Fichiers" }, - "azurePipelines": { + "azuredevops": { "result": "Résultat", "status": "Statut", "buildId": "Build ID", "succeeded": "Réussi", - "notStarted": "Non démarré", + "notStarted": "Arrêté", "failed": "Échoué", "canceled": "Annulé", - "inProgress": "En cours" + "inProgress": "En cours", + "totalPrs": "PRs Total", + "myPrs": "Mes PRs", + "approved": "Approuvé" + }, + "gamedig": { + "status": "Statut", + "online": "En ligne", + "offline": "Hors ligne", + "name": "Nom", + "map": "Carte", + "currentPlayers": "Joueurs actuels", + "players": "Joueurs", + "maxPlayers": "Joueurs max", + "bots": "Robots", + "ping": "Latence" + }, + "urbackup": { + "ok": "Ok", + "errored": "Erreur", + "noRecent": "Obsolète", + "totalUsed": "Esp. Utilisé" + }, + "mealie": { + "recipes": "Recettes", + "users": "Utilisateurs", + "categories": "Catégories", + "tags": "Étiquettes" + }, + "openmediavault": { + "downloading": "Téléchargement", + "total": "Total", + "running": "Démarré", + "stopped": "Arrêté", + "passed": "Réussi", + "failed": "Échoué" + }, + "openwrt": { + "uptime": "Démarré depuis", + "cpuLoad": "Charge moyenne CPU (5 min)", + "up": "Haut", + "down": "Bas", + "bytesTx": "Transmis", + "bytesRx": "Reçu" + }, + "uptimerobot": { + "status": "Statut", + "uptime": "Démarré depuis", + "lastDown": "Dernière interruption", + "downDuration": "Durée d'interruption", + "sitesUp": "En ligne", + "sitesDown": "Hors ligne", + "paused": "En Pause", + "notyetchecked": "Non vérifié", + "up": "Haut", + "seemsdown": "Semble hors ligne", + "down": "Bas", + "unknown": "Inconnu" + }, + "calendar": { + "inCinemas": "En salle", + "physicalRelease": "Sortie physique", + "digitalRelease": "Sortie numérique", + "noEventsToday": "Rien pour aujourd'hui !", + "noEventsFound": "Aucun événement trouvé" + }, + "romm": { + "platforms": "Plateformes", + "totalRoms": "Jeux", + "saves": "Sauvegardes", + "states": "États", + "screenshots": "Captures d'écran", + "totalfilesize": "Taille totale" + }, + "mailcow": { + "domains": "Domaines", + "mailboxes": "Boites mail", + "mails": "Courriels", + "storage": "Stockage" + }, + "netdata": { + "warnings": "Avertissements", + "criticals": "Urgent" + }, + "plantit": { + "events": "Événements", + "plants": "Plantes", + "photos": "Photos", + "species": "Espèces" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Anomalies", + "pulls": "Demandes de tirage", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scènes", + "scenesPlayed": "Scènes jouées", + "playCount": "Lectures Totales", + "playDuration": "Temps regardé", + "sceneSize": "Taille des scènes", + "sceneDuration": "Durée des scènes", + "images": "Images", + "imageSize": "Taille des images", + "galleries": "Galeries", + "performers": "Acteurs", + "studios": "Studios", + "movies": "Films", + "tags": "Étiquettes", + "oCount": "0 Compte" + }, + "tandoor": { + "users": "Utilisateurs", + "recipes": "Recettes", + "keywords": "Mots-clés" + }, + "homebox": { + "items": "Objets", + "totalWithWarranty": "Avec garantie", + "locations": "Emplacements", + "labels": "Étiquettes", + "users": "Utilisateurs", + "totalValue": "Valeur Totale" + }, + "crowdsec": { + "alerts": "Alertes", + "bans": "Bannissements" + }, + "wgeasy": { + "connected": "Connecté", + "enabled": "Activé", + "disabled": "Désactivé", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Par proxy", + "auth": "Avec authentification", + "outdated": "Obsolète", + "banned": "Banni" + }, + "myspeed": { + "ping": "Latence", + "download": "Récep.", + "upload": "Téléverser" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Chargement", + "open": "Ouvert - Marché américain", + "closed": "Fermé - marché américain", + "invalidConfiguration": "Configuration invalide" + }, + "frigate": { + "cameras": "Caméras", + "uptime": "Démarré depuis", + "version": "Version" + }, + "linkwarden": { + "links": "Liens", + "collections": "Collections", + "tags": "Étiquettes" + }, + "zabbix": { + "unclassified": "Non classé", + "information": "Informations", + "warning": "Attention", + "average": "Moyenne", + "high": "Élevé", + "disaster": "" + }, + "lubelogger": { + "vehicle": "Véhicule", + "vehicles": "Véhicules", + "serviceRecords": "Service d'enregistrements", + "reminders": "Rappels", + "nextReminder": "Prochain rappel", + "none": "Aucun" + }, + "vikunja": { + "projects": "Projets actifs", + "tasks7d": "Tâches à faire cette semaine", + "tasksOverdue": "Tâches en retard", + "tasksInProgress": "Tâche en cours" + }, + "headscale": { + "name": "Nom", + "address": "Adresse", + "last_seen": "Vu pour la dernière fois", + "status": "Statut", + "online": "En ligne", + "offline": "Hors ligne" + }, + "beszel": { + "name": "Nom", + "systems": "Systèmes", + "up": "Haut", + "down": "Bas", + "paused": "En Pause", + "pending": "En attente", + "status": "Statut", + "updated": "Mis à jour", + "cpu": "CPU", + "memory": "MÉM", + "disk": "Disque", + "network": "Réseau" + }, + "argocd": { + "apps": "Applications", + "synced": "Synchronisé", + "outOfSync": "Désynchronisé", + "healthy": "Fonctionnel", + "degraded": "Dégradé", + "progressing": "En cours", + "missing": "Manquant", + "suspended": "Suspendu" + }, + "spoolman": { + "loading": "Chargement" + }, + "gitlab": { + "groups": "Groupes", + "issues": "Anomalies", + "merges": "Demandes de fusion de branches", + "projects": "Projets" + }, + "apcups": { + "status": "Statut", + "load": "Charge", + "bcharge": "Charge de la batterie", + "timeleft": "Temps restant" + }, + "hoarder": { + "bookmarks": "Marque-pages", + "favorites": "Favoris", + "archived": "Archivé", + "highlights": "Highlights", + "lists": "Listes", + "tags": "Étiquettes" + }, + "slskd": { + "slskStatus": "Réseau", + "connected": "Connecté", + "disconnected": "Déconnecté", + "updateStatus": "Mise à jour", + "update_yes": "Disponible", + "update_no": "À jour", + "downloads": "Téléchargements", + "uploads": "Téléversements", + "sharedFiles": "Fichiers" } } diff --git a/public/locales/he/common.json b/public/locales/he/common.json index 78545f39..2751430c 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "סוג ווידג'ט חסר: {{type}}", "api_error": "שגיאת API", - "status": "סטטוס", "information": "Information", + "status": "סטטוס", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -18,35 +39,63 @@ "placeholder": "חיפוש…" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "סה\"כ", "free": "פנוי", "used": "בשימוש", "load": "עומס", - "cpu": "CPU", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "Users", + "uptime": "Uptime", + "days": "Days", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Devices", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "המתן בבקשה", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "זיכרון", - "cpu": "מעבד", + "mem": "MEM", + "cpu": "CPU", + "running": "Running", "offline": "כבוי", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "מנגן", @@ -58,6 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "כבוי", + "offline_alt": "כבוי", + "online": "Online", + "total": "סה\"כ", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "סטטוס", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "מנגן", "transcoding": "מקודד", @@ -65,11 +174,24 @@ "no_active": "אין הזרמות פעילות", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "יחס", "remaining": "נותר", "downloaded": "הורד" }, + "plex": { + "streams": "Active Streams", + "albums": "Albums", + "movies": "Movies", + "tv": "TV Shows" + }, "sabnzbd": { "rate": "יחס", "queue": "תור", @@ -77,34 +199,58 @@ }, "rutorrent": { "active": "פעיל", - "upload": "העלאה", - "download": "הורדה" + "upload": "Upload", + "download": "Download" }, "transmission": { - "download": "הורדה", - "upload": "העלאה", - "leech": "בהורדה", - "seed": "בשיתוף" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "qbittorrent": { - "download": "הורדה", - "upload": "העלאה", - "leech": "בהורדה", - "seed": "בשיתוף" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "sonarr": { "wanted": "מבוקש", "queued": "בתור", - "series": "סדרות", - "queue": "Queue", + "series": "Series", + "queue": "תור", "unknown": "Unknown" }, "radarr": { "wanted": "מבוקש", - "queued": "בתור", - "movies": "סרטים", "missing": "Missing", - "queue": "Queue", + "queued": "בתור", + "movies": "Movies", + "queue": "תור", "unknown": "Unknown" }, "lidarr": { @@ -133,15 +279,21 @@ }, "overseerr": { "pending": "ממתין", + "processing": "Processing", "approved": "מאושר", - "available": "זמין", - "processing": "Processing" + "available": "זמין" + }, + "netalertx": { + "total": "סה\"כ", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "שאילתות", "blocked": "נחסם", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "שאילתות", @@ -150,20 +302,67 @@ "latency": "השהיה" }, "speedtest": { - "upload": "העלאה", - "download": "הורדה", - "ping": "פינג" + "upload": "Upload", + "download": "Download", + "ping": "Ping" }, "portainer": { - "running": "פעיל", + "running": "Running", "stopped": "נעצר", "total": "סה\"כ" }, + "suwayomi": { + "download": "הורד", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "שאילתות", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "נחסם", + "totalDropped": "Dropped", + "totalClients": "לקוחות" + }, + "tdarr": { + "queue": "תור", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, "traefik": { "routers": "ניתובים", "services": "שירותים", "middleware": "מתווך" }, + "navidrome": { + "nothing_streaming": "אין הזרמות פעילות", + "please_wait": "Please Wait" + }, "npm": { "enabled": "מופעל", "disabled": "מבוטל", @@ -190,18 +389,34 @@ }, "jackett": { "configured": "מוגדר", - "errored": "שגיאה" + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "Sessions", + "numConnections": "Connections", + "dataRelayed": "Relayed", + "transferRate": "יחס" }, "mastodon": { "user_count": "Users", "status_count": "Posts", "domain_count": "Domains" }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" + "medusa": { + "wanted": "מבוקש", + "queued": "בתור", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "סטטוס", + "up": "Online", + "down": "כבוי" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" }, "authentik": { "users": "Users", @@ -214,61 +429,48 @@ "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Days", - "wan": "WAN", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" - }, "glances": { "cpu": "CPU", - "wait": "Please wait", + "load": "עומס", + "wait": "המתן בבקשה", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "סה\"כ", + "free": "פנוי", + "used": "בשימוש", "days": "d", "hours": "h", - "warn": "Warn", - "load": "Load", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { - "80-day": "Light Showers", "0-day": "Sunny", "0-night": "Clear", "1-day": "Mainly Sunny", - "2-night": "Partly Cloudy", "1-night": "Mainly Clear", "2-day": "Partly Cloudy", + "2-night": "Partly Cloudy", "3-day": "Cloudy", "3-night": "Cloudy", "45-day": "Foggy", "45-night": "Foggy", "48-day": "Foggy", "48-night": "Foggy", - "57-night": "Freezing Drizzle", "51-day": "Light Drizzle", "51-night": "Light Drizzle", "53-day": "Drizzle", @@ -276,9 +478,10 @@ "55-day": "Heavy Drizzle", "55-night": "Heavy Drizzle", "56-day": "Light Freezing Drizzle", - "61-day": "Light Rain", "56-night": "Light Freezing Drizzle", "57-day": "Freezing Drizzle", + "57-night": "Freezing Drizzle", + "61-day": "Light Rain", "61-night": "Light Rain", "63-day": "Rain", "63-night": "Rain", @@ -293,10 +496,10 @@ "73-day": "Snow", "73-night": "Snow", "75-day": "Heavy Snow", - "95-night": "Thunderstorm", "75-night": "Heavy Snow", "77-day": "Snow Grains", "77-night": "Snow Grains", + "80-day": "Light Showers", "80-night": "Light Showers", "81-day": "Showers", "81-night": "Showers", @@ -307,19 +510,12 @@ "86-day": "Snow Showers", "86-night": "Snow Showers", "95-day": "Thunderstorm", + "95-night": "Thunderstorm", "96-day": "Thunderstorm With Hail", "96-night": "Thunderstorm With Hail", "99-day": "Thunderstorm With Hail", "99-night": "Thunderstorm With Hail" }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, "homebridge": { "available_update": "System", "updates": "Updates", @@ -328,22 +524,32 @@ "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "pending": "Pending", + "pending": "ממתין", "down": "Down" }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "סטטוס", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, + "autobrr": { + "approvedPushes": "מאושר", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "אינדקסים" + }, "tubearchivist": { - "downloads": "Queue", + "downloads": "תור", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -351,18 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "פעיל", + "queue": "תור", + "total": "סה\"כ" }, "gluetun": { "public_ip": "Public IP", @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "סיביות", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -384,51 +589,20 @@ }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "סה\"כ" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -440,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,20 +632,25 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { - "printer_state": "Status", + "printer_state": "סטטוס", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "סטטוס" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", @@ -486,15 +671,26 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", - "books": "Books" + "books": "ספרים" + }, + "diskstation": { + "days": "Days", + "uptime": "Uptime", + "volumeAvailable": "זמין" }, "mylar": { "series": "Series", "issues": "Issues", - "wanted": "Wanted" + "wanted": "מבוקש" }, "photoprism": { "albums": "Albums", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { - "queue": "Queue", + "queue": "תור", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -528,7 +723,7 @@ "numshares": "Shared Items" }, "kopia": { - "status": "Status", + "status": "סטטוס", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", + "books": "ספרים", "podcastsDuration": "Duration", "booksDuration": "Duration" }, @@ -581,89 +764,283 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "ספרים", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "תור", + "downloadBytesRemaining": "נותר", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "סטטוס", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "מאושר" + }, + "gamedig": { + "status": "סטטוס", + "online": "Online", + "offline": "כבוי", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "סה\"כ", + "running": "Running", + "stopped": "נעצר", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "סטטוס", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "מופעל", + "disabled": "מבוטל", + "total": "סה\"כ" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "סטטוס", + "online": "Online", + "offline": "כבוי" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "ממתין", + "status": "סטטוס", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "סטטוס", + "load": "עומס", + "bcharge": "Battery Charge", + "timeleft": "זמן שנותר" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "זמין", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 70dd22e8..19f419cd 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{value, date}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "माह", + "days": "d", + "hours": "घं.", + "minutes": "m", + "seconds": "पल" + }, "widget": { "missing_type": "Missing Widget Type: {{type}}", "api_error": "API Error", - "status": "Status", "information": "Information", + "status": "Status", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -14,61 +35,23 @@ "updating": "Updating", "wait": "Please wait" }, - "readarr": { - "queued": "Queued", - "books": "Books", - "wanted": "Wanted" - }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" - }, - "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "traefik": { - "services": "Services", - "middleware": "Middleware", - "routers": "Routers" - }, - "mastodon": { - "domain_count": "Domains", - "user_count": "Users", - "status_count": "Posts" - }, - "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" - }, "search": { "placeholder": "Search…" }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Free", "used": "Used", "load": "Load", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" }, "unifi": { "users": "Users", - "uptime": "System Uptime", + "uptime": "Uptime", "days": "Days", "wan": "WAN", "lan": "LAN", @@ -88,16 +71,31 @@ "tx": "TX", "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Offline", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Playing", @@ -109,10 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Total Observed", "diffsDetected": "Diffs Detected" }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Playing", "transcoding": "Transcoding", @@ -120,6 +174,13 @@ "no_active": "No Active Streams", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Rate", "remaining": "Remaining", @@ -127,9 +188,9 @@ }, "plex": { "streams": "Active Streams", + "albums": "Albums", "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" + "tv": "TV Shows" }, "sabnzbd": { "rate": "Rate", @@ -153,6 +214,30 @@ "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, "sonarr": { "wanted": "Wanted", "queued": "Queued", @@ -173,17 +258,42 @@ "queued": "Queued", "artists": "Artists" }, - "overseerr": { + "readarr": { + "wanted": "Wanted", + "queued": "Queued", + "books": "Books" + }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, + "ombi": { "pending": "Pending", "approved": "Approved", - "available": "Available", - "processing": "Processing" + "available": "Available" + }, + "jellyseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "overseerr": { + "pending": "Pending", + "processing": "Processing", + "approved": "Approved", + "available": "Available" + }, + "netalertx": { + "total": "Total", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", @@ -201,6 +311,54 @@ "stopped": "Stopped", "total": "Total" }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Queue", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, + "traefik": { + "routers": "Routers", + "services": "Services", + "middleware": "Middleware" + }, "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" @@ -239,6 +397,32 @@ "dataRelayed": "Relayed", "transferRate": "Rate" }, + "mastodon": { + "user_count": "Users", + "status_count": "Posts", + "domain_count": "Domains" + }, + "medusa": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, + "authentik": { + "users": "Users", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Failed Logins (24h)" + }, "proxmox": { "mem": "MEM", "cpu": "CPU", @@ -247,16 +431,23 @@ }, "glances": { "cpu": "CPU", + "load": "Load", "wait": "Please wait", "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", + "_temp": "Temp", "warn": "Warn", + "uptime": "UP", "total": "Total", "free": "Free", - "used": "Used" + "used": "Used", + "days": "d", + "hours": "घं.", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -264,7 +455,8 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "Sunny", @@ -335,6 +527,16 @@ "pending": "Pending", "down": "Down" }, + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Status", + "last_ping": "Last Ping", + "never": "No pings yet" + }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", @@ -355,7 +557,6 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "time": "{{value, number(style: unit; unitDisplay: long;)}}", "alerts": "Alerts" }, "pyload": { @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -386,49 +591,18 @@ "inbox": "Inbox", "total": "Total" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -440,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,11 +632,6 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { "printer_state": "Status", "temp_tool": "Tool temp", @@ -467,6 +642,16 @@ "origin_ip": "Origin IP", "status": "Status" }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", @@ -486,11 +671,22 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", "books": "Books" }, + "diskstation": { + "days": "Days", + "uptime": "Uptime", + "volumeAvailable": "Available" + }, "mylar": { "series": "Series", "issues": "Issues", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { "queue": "Queue", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -581,82 +764,27 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", + "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +792,255 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "Status", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Load", + "bcharge": "Battery Charge", + "timeleft": "Time Left" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 49e13492..2b1c013c 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -1,4 +1,34 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mj", + "days": "dan(a)", + "hours": "h", + "minutes": "min", + "seconds": "s" + }, + "widget": { + "missing_type": "Nedostajuća vrsta widgeta: {{type}}", + "api_error": "API greška", + "information": "Informacije", + "status": "Stanje", + "url": "URL", + "raw_error": "Raw greška", + "response_data": "Podaci odgovora" + }, "weather": { "current": "Trenutačna lokacija", "allow": "Pritisni za dozvoljavanje", @@ -9,86 +39,63 @@ "placeholder": "Traži …" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "Ukupno", "free": "Slobodno", "used": "Korišteno", "load": "Opterećenje", - "cpu": "CPU", - "mem": "MEM", - "minutes": "min", - "max": "Maks", - "uptime": "UP", - "months": "mj", "temp": "TEMP", - "days": "d", - "hours": "h" + "max": "Maks.", + "uptime": "Vrijeme rada" }, - "sabnzbd": { - "rate": "Stopa", - "queue": "Red čekanja", - "timeleft": "Preostalo vrijeme" - }, - "overseerr": { - "available": "Dostupno", - "pending": "Predstoji", - "approved": "Odobreno", - "processing": "Obrada" - }, - "pihole": { - "queries": "Upiti", - "blocked": "Blokirano", - "gravity": "Gravitacija", - "blocked_percent": "Blokirano %" - }, - "adguard": { - "latency": "Kašnjenje", - "queries": "Upiti", - "blocked": "Blokirano", - "filtered": "Filtrirano" - }, - "npm": { - "total": "Ukupno", - "enabled": "Aktivirano", - "disabled": "Deaktivirano" - }, - "coinmarketcap": { - "configure": "Konfiguriraj jednu ili više kripto valuta za praćenje", - "1hour": "1 sat", - "1day": "1 dan", - "7days": "7 dana", - "30days": "30 dana" - }, - "prowlarr": { - "enableIndexers": "Indeksatori", - "numberOfGrabs": "Dohvaćanja", - "numberOfQueries": "Upiti", - "numberOfFailGrabs": "Neuspjela dohvaćanja", - "numberOfFailQueries": "Neuspjeli upiti" - }, - "widget": { - "missing_type": "Nedostajuća vrsta widgeta: {{type}}", - "api_error": "API greška", - "status": "Stanje", - "information": "Informacije", - "url": "URL", - "raw_error": "Raw greška", - "response_data": "Podaci odgovora" + "unifi": { + "users": "Korisnici", + "uptime": "Vrijeme rada", + "days": "Dani", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Uređaji", + "lan_devices": "LAN uređaji", + "wlan_devices": "WLAN uređaji", + "lan_users": "LAN korisnici", + "wlan_users": "WLAN korisnici", + "up": "Vrijeme rada", + "down": "NEDOSTUPNO", + "wait": "Pričekaj", + "empty_data": "Stanje podsustava nepoznato" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "CPU", + "running": "Pokrenuto", "offline": "Offline", "error": "Greška", "unknown": "Nepoznato", - "running": "Pokrenuto", + "healthy": "Funkcionalno", "starting": "Pokretanje", "unhealthy": "Nefunkcionalno", "not_found": "Nepronađeno", "exited": "Zatoreno", - "partial": "Djelomično", - "healthy": "Funkcionalno" + "partial": "Djelomično" + }, + "ping": { + "error": "Greška", + "ping": "Ping", + "down": "Nedostupno", + "up": "Dostupno", + "not_available": "Nije dostupno" + }, + "siteMonitor": { + "http_status": "Stanje HTTP-a", + "error": "Greška", + "response": "Odgovor", + "down": "Nedostupno", + "up": "Dostupno", + "not_available": "Nije dostupno" }, "emby": { "playing": "Reprodukcija", @@ -100,6 +107,66 @@ "episodes": "Epizode", "songs": "Pjesme" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Ukupno", + "unknown": "Nepoznato" + }, + "evcc": { + "pv_power": "Proizvodnja", + "battery_soc": "Baterija", + "grid_power": "Raspored", + "home_power": "Potrošnja", + "charge_power": "Punjač", + "kilowatt": "kW" + }, + "flood": { + "download": "Preuzimanje", + "upload": "Prijenos", + "leech": "Korištenje tuđeg sadržaja", + "seed": "Prenošenje preuzetog sadržaja" + }, + "freshrss": { + "subscriptions": "Pretplate", + "unread": "Nepročitano" + }, + "fritzbox": { + "connectionStatus": "Stanje", + "connectionStatusUnconfigured": "Nekonfigurirano", + "connectionStatusConnecting": "Povezivanje", + "connectionStatusAuthenticating": "Autentificiranje", + "connectionStatusPendingDisconnect": "Odspajanje u tijeku", + "connectionStatusDisconnecting": "Odspajanje", + "connectionStatusDisconnected": "Odspojeno", + "connectionStatusConnected": "Povezano", + "uptime": "Vrijeme rada", + "maxDown": "Maksimum preuzimanja", + "maxUp": "Maksimum prijenosa", + "down": "Nedostupno", + "up": "Dostupno", + "received": "Primljeno", + "sent": "Poslano", + "externalIPAddress": "Eksterna IP adresa", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Glavne grane", + "requests": "Aktualni zahtjevi", + "requests_failed": "Neuspjeli zahtjevi" + }, + "changedetectionio": { + "totalObserved": "Ukupno promatrano", + "diffsDetected": "Otkrivene razlike" + }, + "channelsdvrserver": { + "shows": "Emisije", + "recordings": "Snimanja", + "scheduled": "Planirano", + "passes": "Prolazi" + }, "tautulli": { "playing": "Reprodukcija", "transcoding": "Prekodiranje", @@ -107,34 +174,82 @@ "no_active": "Nema aktivnih prijenosa", "plex_connection_error": "Provjeri Plex vezu" }, + "omada": { + "connectedAp": "Povezani AP-ovi", + "activeUser": "Aktivni uređaji", + "alerts": "Upozorenja", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Povezani prekidači" + }, "nzbget": { "rate": "Stopa", "remaining": "Preostalo", "downloaded": "Preuzeto" }, + "plex": { + "streams": "Aktivni prijenosi", + "albums": "Albumi", + "movies": "Filmovi", + "tv": "TV emisije" + }, + "sabnzbd": { + "rate": "Stopa", + "queue": "Red čekanja", + "timeleft": "Preostalo vrijeme" + }, "rutorrent": { + "active": "Aktivno", "upload": "Prijenos", - "download": "Preuzimanje", - "active": "Aktivno" + "download": "Preuzimanje" }, "transmission": { "download": "Preuzimanje", "upload": "Prijenos", - "leech": "Leecher", - "seed": "Seeder" + "leech": "Korištenje tuđeg sadržaja", + "seed": "Prenošenje preuzetog sadržaja" + }, + "qbittorrent": { + "download": "Preuzimanje", + "upload": "Prijenos", + "leech": "Korištenje tuđeg sadržaja", + "seed": "Prenošenje preuzetog sadržaja" + }, + "qnap": { + "cpuUsage": "Korištenje procesora", + "memUsage": "Korištenje memorije", + "systemTempC": "Temperatura sustava", + "poolUsage": "Korištenje memorijskog skupa", + "volumeUsage": "Korištenje jedinice memorije", + "invalid": "Neispravno" + }, + "deluge": { + "download": "Preuzimanje", + "upload": "Prijenos", + "leech": "Korištenje tuđeg sadržaja", + "seed": "Prenošenje preuzetog sadržaja" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Preuzimanje", + "upload": "Prijenos", + "leech": "Korištenje tuđeg sadržaja", + "seed": "Prenošenje preuzetog sadržaja" }, "sonarr": { "wanted": "Zatraženo", "queued": "U redu čekanja", "series": "Serije", - "unknown": "Nepoznato", - "queue": "Red čekanja" + "queue": "Red čekanja", + "unknown": "Nepoznato" }, "radarr": { "wanted": "Zatraženo", + "missing": "Nedostaje", "queued": "U redu čekanja", "movies": "Filmovi", - "missing": "Nedostaje", "queue": "Red čekanja", "unknown": "Nepoznato" }, @@ -153,15 +268,39 @@ "missingMovies": "Nedostajući filmovi" }, "ombi": { - "pending": "Predstoji", + "pending": "U tijeku", "approved": "Odobreno", "available": "Dostupno" }, "jellyseerr": { - "pending": "Predstoji", + "pending": "U tijeku", "approved": "Odobreno", "available": "Dostupno" }, + "overseerr": { + "pending": "U tijeku", + "processing": "Obrada", + "approved": "Odobreno", + "available": "Dostupno" + }, + "netalertx": { + "total": "Ukupno", + "connected": "Povezano", + "new_devices": "Novi uređaji", + "down_alerts": "Obavijesti o nedostupnosti" + }, + "pihole": { + "queries": "Upiti", + "blocked": "Blokirano", + "blocked_percent": "Blokirano %", + "gravity": "Gravitacija" + }, + "adguard": { + "queries": "Upiti", + "blocked": "Blokirano", + "filtered": "Filtrirano", + "latency": "Kašnjenje" + }, "speedtest": { "upload": "Prijenos", "download": "Preuzimanje", @@ -172,37 +311,113 @@ "stopped": "Prekinuto", "total": "Ukupno" }, + "suwayomi": { + "download": "Preuzeto", + "nondownload": "Non-Downloaded", + "read": "Pročitano", + "unread": "Nepročitano", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Adresa", + "expires": "Isteče", + "never": "Nikada", + "last_seen": "Zadnje viđeno", + "now": "Sada", + "years": "{{number}} god", + "weeks": "{{number}} tj", + "days": "{{number}} dan(a)", + "hours": "{{number}} h", + "minutes": "{{number}} min", + "seconds": "{{number}} s", + "ago": "Prije {{value}}" + }, + "technitium": { + "totalQueries": "Upiti", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blokirano", + "totalDropped": "Dropped", + "totalClients": "Klijenti" + }, + "tdarr": { + "queue": "Red čekanja", + "processed": "Obrađeno", + "errored": "S greškom", + "saved": "Spremljeno" + }, "traefik": { "routers": "Ruteri", "services": "Usluge", "middleware": "Posrednički softver" }, + "navidrome": { + "nothing_streaming": "Nema aktivnih prijenosa", + "please_wait": "Pričekaj" + }, + "npm": { + "enabled": "Aktivirano", + "disabled": "Deaktivirano", + "total": "Ukupno" + }, + "coinmarketcap": { + "configure": "Konfiguriraj jednu ili više kripto valuta za praćenje", + "1hour": "1 sat", + "1day": "1 dan", + "7days": "7 dana", + "30days": "30 dana" + }, "gotify": { + "apps": "Programi", "clients": "Klijenti", - "messages": "Poruke", - "apps": "Programi" + "messages": "Poruke" + }, + "prowlarr": { + "enableIndexers": "Indeksatori", + "numberOfGrabs": "Dohvaćanja", + "numberOfQueries": "Upiti", + "numberOfFailGrabs": "Neuspjela dohvaćanja", + "numberOfFailQueries": "Neuspjeli upiti" }, "jackett": { "configured": "Konfigurirano", "errored": "S greškom" }, - "qbittorrent": { - "download": "Preuzimanje", - "upload": "Prijenos", - "leech": "Leecher", - "seed": "Seeder" - }, - "mastodon": { - "user_count": "Korisnici", - "status_count": "Objave", - "domain_count": "Domene" - }, "strelaysrv": { "numActiveSessions": "Sesije", "numConnections": "Veze", "dataRelayed": "Proslijeđeno", "transferRate": "Stopa" }, + "mastodon": { + "user_count": "Korisnici", + "status_count": "Objave", + "domain_count": "Domene" + }, + "medusa": { + "wanted": "Zatraženo", + "queued": "U redu čekanja", + "series": "Serije" + }, + "minecraft": { + "players": "Igrači", + "version": "Verzija", + "status": "Stanje", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Pročitano", + "unread": "Nepročitano" + }, "authentik": { "users": "Korisnici", "loginsLast24H": "Prijave (24 h)", @@ -214,45 +429,34 @@ "lxc": "Linux kontejner", "vms": "Virtualni uređaji" }, - "unifi": { - "users": "Korisnici", - "uptime": "Radno vrijeme sustava", - "days": "Dani", - "wan": "WAN", - "lan_users": "LAN korisnici", - "wlan_users": "WLAN korisnici", - "up": "SLANJE", - "down": "PRIMANJE", - "wait": "Pričekaj", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Uređaji", - "lan_devices": "LAN uređaji", - "wlan_devices": "WLAN uređaji", - "empty_data": "Stanje podsustava nepoznato" - }, - "plex": { - "streams": "Aktivni prijenosi", - "movies": "Filmovi", - "tv": "TV emisije", - "albums": "Albumi" - }, "glances": { "cpu": "CPU", + "load": "Opterećenje", "wait": "Pričekaj", "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "used": "Korišteno", - "load": "Opterećenje", + "_temp": "Temperatura", "warn": "Upozori", + "uptime": "Vrijeme rada", "total": "Ukupno", - "free": "Slobodno" + "free": "Slobodno", + "used": "Korišteno", + "days": "dan(a)", + "hours": "h", + "crit": "Krritično", + "read": "Pročitano", + "write": "Piši", + "gpu": "GPU", + "mem": "Memorija", + "swap": "Virtualna memorija" }, - "changedetectionio": { - "totalObserved": "Ukupno promatrano", - "diffsDetected": "Otkrivene razlike" + "quicklaunch": { + "bookmark": "Straničnik", + "service": "Usluga", + "search": "Traži", + "custom": "Prilagođeno", + "visit": "Posjeti", + "url": "URL", + "searchsuggestion": "Prijedlog" }, "wmo": { "0-day": "Sunčano", @@ -260,12 +464,12 @@ "1-day": "Pretežno sunčano", "1-night": "Pretežno verdo", "2-day": "Djelimično oblačno", - "45-day": "Maglovito", - "45-night": "Maglovito", - "48-day": "Maglovito", "2-night": "Djelimično oblačno", "3-day": "Oblačno", "3-night": "Oblačno", + "45-day": "Maglovito", + "45-night": "Maglovito", + "48-day": "Maglovito", "48-night": "Maglovito", "51-day": "Laka rosulja", "51-night": "Laka rosulja", @@ -287,13 +491,13 @@ "66-night": "Ledena kiša", "67-day": "Ledena kiša", "67-night": "Ledena kiša", - "75-night": "Jaki snijeg", - "77-day": "Zrnati snijeg", "71-day": "Laki snijeg", "71-night": "Laki snijeg", "73-day": "Snijeg", "73-night": "Snijeg", "75-day": "Jaki snijeg", + "75-night": "Jaki snijeg", + "77-day": "Zrnati snijeg", "77-night": "Zrnati snijeg", "80-day": "Laki pljuskovi", "80-night": "Laki pljuskovi", @@ -312,14 +516,6 @@ "99-day": "Oluja s tučom", "99-night": "Oluja s tučom" }, - "quicklaunch": { - "bookmark": "Straničnik", - "service": "Usluga", - "search": "Traži", - "custom": "Prilagođeno", - "visit": "Posjeti", - "url": "URL" - }, "homebridge": { "available_update": "Sustav", "updates": "Aktualiziranja", @@ -327,21 +523,31 @@ "up_to_date": "Aktualno", "child_bridges": "Podređeni mosotvi", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Predstoji", - "down": "Down" + "up": "Dostupno", + "pending": "U tijeku", + "down": "Nedostupno" }, - "autobrr": { - "rejectedPushes": "Odbijeno", - "approvedPushes": "Odobreno", - "filters": "Filtri", - "indexers": "Indeksatori" + "healthchecks": { + "new": "Novo", + "up": "Dostupno", + "grace": "U razdoblju odgode", + "down": "Nedostupno", + "paused": "Zaustavljeno", + "status": "Stanje", + "last_ping": "Zadnji ping", + "never": "Još nema pingova" }, "watchtower": { "containers_scanned": "Skenirano", "containers_updated": "Aktualizirano", "containers_failed": "Neuspjelo" }, + "autobrr": { + "approvedPushes": "Odobreno", + "rejectedPushes": "Odbijeno", + "filters": "Filtri", + "indexers": "Indeksatori" + }, "tubearchivist": { "downloads": "Red čekanja", "videos": "Videa", @@ -350,13 +556,8 @@ }, "truenas": { "load": "Opterećenje sustava", - "uptime": "Radno vrijeme", - "alerts": "Upozorenja", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Nema aktivnih prijenosa", - "please_wait": "Pričekaj" + "uptime": "Vrijeme rada", + "alerts": "Upozorenja" }, "pyload": { "speed": "Brzina", @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Kanali", - "hd": "HD" - }, - "ping": { - "error": "Greška", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuneri", + "channelNumber": "Kanal", + "channelNetwork": "Mreža", + "signalStrength": "Jačina", + "signalQuality": "Kvaliteta", + "symbolQuality": "Kvaliteta", + "networkRate": "Stopa bitova", + "clientIP": "Klijent" }, "scrutiny": { "passed": "Uspjelo", @@ -386,53 +591,22 @@ "inbox": "Ulazni sandučić", "total": "Ukupno" }, - "deluge": { - "download": "Preuzimanje", - "upload": "Prijenos", - "leech": "Korištenje tuđeg sadržaja", - "seed": "Prenošenje preuzetog sadržaja" - }, - "flood": { - "download": "Preuzimanje", - "upload": "Prijenos", - "leech": "Korištenje tuđeg sadržaja", - "seed": "Prenošenje preuzetog sadržaja" - }, - "tdarr": { - "queue": "Red čekanja", - "processed": "Obrađeno", - "errored": "S greškom", - "saved": "Spremljeno" - }, - "miniflux": { - "read": "Pročitano", - "unread": "Nepročitano" + "peanut": { + "battery_charge": "Napunjenost baterije", + "ups_load": "UPS opterećenje", + "ups_status": "UPS stanje", + "online": "Online", + "on_battery": "Koristi bateriju", + "low_battery": "Slaba baterija" }, "nextdns": { "wait": "Pričekaj", "no_devices": "Podaci uređaja nisu primljeni" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Povezani AP-ovi", - "activeUser": "Aktivni uređaji", - "alerts": "Upozorenja", - "connectedGateway": "Povezani pristupi", - "connectedSwitches": "Povezani prekidači" - }, - "downloadstation": { - "download": "Preuzimanje", - "upload": "Prijenos", - "leech": "Korištenje tuđeg sadržaja", - "seed": "Prenošenje preuzetog sadržaja" - }, "mikrotik": { "cpuLoad": "CPU opterećenje", "memoryUsed": "Korištena memorija", - "uptime": "Radno vrijeme", + "uptime": "Vrijeme rada", "numberOfLeases": "Unajmljivanja" }, "xteve": { @@ -440,6 +614,12 @@ "streams_active": "Aktivni prijenosi", "streams_xepg": "XEPG kanali" }, + "opendtu": { + "yieldDay": "Danas", + "absolutePower": "Snaga", + "relativePower": "Postotak snage", + "limit": "Ograničenje" + }, "opnsense": { "cpu": "CPU opterećenje", "memory": "Aktivna memorija", @@ -452,11 +632,6 @@ "print_progress": "Napredak", "layers": "Slojevi" }, - "medusa": { - "wanted": "Zatraženo", - "queued": "U redu čekanja", - "series": "Serije" - }, "octoprint": { "printer_state": "Stanje", "temp_tool": "Temperatura alata", @@ -467,6 +642,16 @@ "origin_ip": "IP izvora", "status": "Stanje" }, + "pfsense": { + "load": "Prosječno opterećenje", + "memory": "Korištenje memorije", + "wanStatus": "Stanje WAN-a", + "up": "Dostupno", + "down": "Nedostupno", + "temp": "Temperatura", + "disk": "Korištenje diska", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Spremište podataka", "failed_tasks_24h": "Neuspjeli zadaci 24 h", @@ -480,44 +665,54 @@ "storage": "Spremište" }, "uptimekuma": { - "up": "Aktivne stranice", - "down": "Neaktivne stranice", - "uptime": "Radno vrijeme", + "up": "Dostupne stranice", + "down": "Nedostupne stranice", + "uptime": "Vrijeme rada", "incident": "Slučaj", "m": "min" }, + "atsumeru": { + "series": "Serije", + "archives": "Arhive", + "chapters": "Poglavlja", + "categories": "Kategorije" + }, "komga": { "libraries": "Biblioteke", "series": "Serije", "books": "Knjige" }, + "diskstation": { + "days": "Dani", + "uptime": "Vrijeme rada", + "volumeAvailable": "Dostupno" + }, "mylar": { "series": "Serije", "issues": "Problemi", "wanted": "Zatraženo" }, "photoprism": { - "videos": "Videa", "albums": "Albumi", "photos": "Fotografije", + "videos": "Videa", "people": "Osobe" }, - "diskstation": { - "days": "Dani", - "uptime": "Radno vrijeme", - "volumeAvailable": "Dostupno" - }, "fileflows": { "queue": "Red čekanja", "processing": "Obrada", "processed": "Obrađeno", "time": "Vrijeme" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { - "alertstriggered": "Aktivirana upozorenja", "dashboards": "Pregledne ploče", "datasources": "Izvori podataka", - "totalalerts": "Ukupno upozorenja" + "totalalerts": "Ukupni broj upozorenja", + "alertstriggered": "Aktivirana upozorenja" }, "nextcloud": { "cpuload": "Cpu opterećenje", @@ -536,19 +731,9 @@ }, "unmanic": { "active_workers": "Aktivni radnici", - "total_workers": "Ukupni radnici", + "total_workers": "Ukupni broj radnika", "records_total": "Količina zapisa u redu čekanja" }, - "healthchecks": { - "new": "Novo", - "up": "Online", - "grace": "U razdoblju odgode", - "down": "Offline", - "paused": "Zaustavljeno", - "status": "Stanje", - "last_ping": "Zadnji ping", - "never": "Još nema pingova" - }, "pterodactyl": { "servers": "Serveri", "nodes": "Čvorovi" @@ -556,14 +741,12 @@ "prometheus": { "targets_up": "Aktivni ciljevi", "targets_down": "Neaktivni ciljevi", - "targets_total": "Ukupno ciljeva" + "targets_total": "Ukupni broj ciljeva" }, - "minecraft": { - "players": "Igrači", - "version": "Verzija", - "status": "Stanje", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Dostupne stranice", + "down": "Nedostupne stranice", + "uptime": "Vrijeme rada" }, "ghostfolio": { "gross_percent_today": "Danas", @@ -581,89 +764,283 @@ "lights_on": "Upaljena svjetla", "switches_on": "Prekidači uključeni" }, - "freshrss": { - "subscriptions": "Pretplate", - "unread": "Nepročitano" - }, - "channelsdvrserver": { - "scheduled": "Planirano", - "passes": "Prolazi", - "shows": "Emisije", - "recordings": "Snimanja" - }, "whatsupdocker": { - "monitoring": "Monitoring", + "monitoring": "Praćenje", "updates": "Aktualiziranja" }, - "tailscale": { - "address": "Adresa", - "expires": "Isteče", - "never": "Nikada", - "last_seen": "Zadnje viđeno", - "now": "Sada", - "years": "{{number}} god", - "weeks": "{{number}} tj", - "days": "{{number}} dan(a)", - "hours": "{{number}} h", - "minutes": "{{number}} min", - "seconds": "{{number}} s", - "ago": "Prije {{value}}" - }, - "qnap": { - "systemTempC": "Temperatura sustava", - "poolUsage": "Korištenje memorijskog skupa", - "cpuUsage": "Korištenje procesora", - "memUsage": "Korištenje memorije", - "volumeUsage": "Korištenje jedinice memorije", - "invalid": "Neispravno" - }, - "pfsense": { - "load": "Prosječno opterećenje", - "memory": "Korištenje memorije", - "wanStatus": "Stanje WAN-a", - "up": "Up", - "down": "Down", - "temp": "Temperatura", - "disk": "Korištenje diska", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Glavne grane", - "requests": "Aktualni zahtjevi", - "requests_failed": "Neuspjeli zahtjevi" - }, - "evcc": { - "pv_power": "Proizvodnja", - "battery_soc": "Baterija", - "grid_power": "Raspored", - "home_power": "Potrošnja", - "charge_power": "Punjač", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Ukupno", - "connected": "Povezano", - "new_devices": "Novi uređaji", - "down_alerts": "Obavijest o rušenju" + "calibreweb": { + "books": "Knjige", + "authors": "Autori", + "categories": "Kategorije", + "series": "Serije" }, "jdownloader": { "downloadCount": "Red čekanja", - "downloadSpeed": "Brzina", "downloadBytesRemaining": "Preostalo", - "downloadTotalBytes": "Veličina" + "downloadTotalBytes": "Veličina", + "downloadSpeed": "Brzina" }, "kavita": { "seriesCount": "Serije", "totalFiles": "Datoteke" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Rezultat", + "status": "Stanje", + "buildId": "ID izgradnje", + "succeeded": "Uspjelo", + "notStarted": "Nije započeto", + "failed": "Neuspjelo", + "canceled": "Prekinuto", + "inProgress": "U tijeku", + "totalPrs": "Ukupni broj PR-ova", + "myPrs": "Moji zahtjevi za preuzimanje (PR-ovi)", + "approved": "Odobreno" + }, + "gamedig": { + "status": "Stanje", + "online": "Online", + "offline": "Offline", + "name": "Ime", + "map": "Karta", + "currentPlayers": "Trenutačni igrači", + "players": "Igrači", + "maxPlayers": "Maks. broj igrača", + "bots": "Botovi", + "ping": "Ping" + }, + "urbackup": { + "ok": "U redu", + "errored": "Greške", + "noRecent": "Zastarjelo", + "totalUsed": "Korištena memorija" + }, + "mealie": { + "recipes": "Recepti", + "users": "Korisnici", + "categories": "Kategorije", + "tags": "Oznake" + }, + "openmediavault": { + "downloading": "Preuzimanje", + "total": "Ukupno", + "running": "Pokrenuto", + "stopped": "Prekinuto", + "passed": "Uspjelo", + "failed": "Neuspjelo" + }, + "openwrt": { + "uptime": "Vrijeme rada", + "cpuLoad": "Prosjećno CPU opterećenje (5m)", + "up": "Dostupno", + "down": "Nedostupno", + "bytesTx": "Preneseno", + "bytesRx": "Primljeno" + }, + "uptimerobot": { + "status": "Stanje", + "uptime": "Vrijeme rada", + "lastDown": "Zadnja nedostupnost", + "downDuration": "Trajanje nedostupnosti", + "sitesUp": "Dostupne stranice", + "sitesDown": "Nedostupne stranice", + "paused": "Zaustavljeno", + "notyetchecked": "Još nije provjereno", + "up": "Dostupno", + "seemsdown": "Čini se da je nedostupno", + "down": "Nedostupno", + "unknown": "Nepoznato" + }, + "calendar": { + "inCinemas": "U kinima", + "physicalRelease": "Fizičko izdanje", + "digitalRelease": "Digitalno izdanje", + "noEventsToday": "Danas nema događaja!", + "noEventsFound": "Nema događaja" + }, + "romm": { + "platforms": "Platforme", + "totalRoms": "Igre", + "saves": "Saves", + "states": "States", + "screenshots": "Snimke ekrana", + "totalfilesize": "Ukupna veličina" + }, + "mailcow": { + "domains": "Domene", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Spremište" + }, + "netdata": { + "warnings": "Upozorenja", + "criticals": "Kritično" + }, + "plantit": { + "events": "Događaji", + "plants": "Biljke", + "photos": "Fotografije", + "species": "Vrste" + }, + "gitea": { + "notifications": "Obavijesti", + "issues": "Problemi", + "pulls": "Zahtjevi za povlačenje", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scene", + "scenesPlayed": "Reproducirane scene", + "playCount": "Ukupni broj reprodukcija", + "playDuration": "Vrijeme gledanja", + "sceneSize": "Veličina scene", + "sceneDuration": "Trajanje scene", + "images": "Slike", + "imageSize": "Veličina slike", + "galleries": "Galerije", + "performers": "Glumci", + "studios": "Studiji", + "movies": "Filmovi", + "tags": "Oznake", + "oCount": "O zbroj" + }, + "tandoor": { + "users": "Korisnici", + "recipes": "Recepti", + "keywords": "Ključne riječi" + }, + "homebox": { + "items": "Stavke", + "totalWithWarranty": "S garancijom", + "locations": "Lokacije", + "labels": "Oznake", + "users": "Korisnici", + "totalValue": "Svukupno" + }, + "crowdsec": { + "alerts": "Upozorenja", + "bans": "Zabrane" + }, + "wgeasy": { + "connected": "Povezano", + "enabled": "Aktivirano", + "disabled": "Deaktivirano", + "total": "Ukupno" + }, + "swagdashboard": { + "proxied": "Posredovano", + "auth": "S autentifikacijom", + "outdated": "Zastarjelo", + "banned": "Zabranjen pristup" + }, + "myspeed": { + "ping": "Ping", + "download": "Preuzimanje", + "upload": "Prijenos" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Kamere", + "uptime": "Vrijeme rada", + "version": "Verzija" + }, + "linkwarden": { + "links": "Poveznice", + "collections": "Zbirke", + "tags": "Oznake" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informacije", + "warning": "Upozorenje", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Podsjetnici", + "nextReminder": "Sljedeći podsjetnik", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Ime", + "address": "Adresa", + "last_seen": "Zadnje viđeno", + "status": "Stanje", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Ime", + "systems": "Systems", + "up": "Dostupno", + "down": "Nedostupno", + "paused": "Zaustavljeno", + "pending": "U tijeku", + "status": "Stanje", + "updated": "Aktualizirano", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Funkcionalno", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Nedostaje", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problemi", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stanje", + "load": "Opterećenje", + "bcharge": "Napunjenost baterije", + "timeleft": "Preostalo vrijeme" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Oznake" + }, + "slskd": { + "slskStatus": "Mreža", + "connected": "Povezano", + "disconnected": "Odspojeno", + "updateStatus": "Update", + "update_yes": "Dostupno", + "update_no": "Aktualno", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Datoteke" } } diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 56bfd877..f6b5e183 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -1,34 +1,257 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "hó", + "days": "n", + "hours": "ó", + "minutes": "p", + "seconds": "mp" + }, + "widget": { + "missing_type": "Hiányzó Widget Típus: {{type}}", + "api_error": "API Hiba", + "information": "Információ", + "status": "Státusz", + "url": "URL", + "raw_error": "Nyers hiba", + "response_data": "Válaszadatok" + }, + "weather": { + "current": "Aktuális hely", + "allow": "Kattints az engedélyezéshez", + "updating": "Frissítés", + "wait": "Kérjük várjon" + }, + "search": { + "placeholder": "Keresés…" + }, "resources": { + "cpu": "Processzor", + "mem": "RAM", "total": "Összes", "free": "Szabad", "used": "Használt", "load": "Terhelés", - "cpu": "Processzor", - "mem": "MEM", - "temp": "TEMP", + "temp": "HŐM", "max": "Max", - "uptime": "FUT", - "months": "hó", - "days": "n", - "hours": "ó", - "minutes": "p" + "uptime": "FUT" + }, + "unifi": { + "users": "Felhasználók", + "uptime": "Üzemidő", + "days": "Napok", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Eszközök", + "lan_devices": "LAN Eszközök", + "wlan_devices": "WLAN Eszközök", + "lan_users": "LAN Felhasználók", + "wlan_users": "WLAN Felhasználók", + "up": "FUT", + "down": "ÁLL", + "wait": "Kérjük várjon", + "empty_data": "Az alrendszer állapota ismeretlen" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "offline": "Offline", + "mem": "RAM", + "cpu": "Processzor", + "running": "Futó", + "offline": "Nem elérhető", "error": "Hiba", "unknown": "Ismeretlen", - "unhealthy": "Egészségtelen", - "running": "Futó", + "healthy": "Egészséges", "starting": "Indul", + "unhealthy": "Egészségtelen", "not_found": "Nem található", "exited": "Kilépett", - "partial": "Részleges", - "healthy": "Egészséges" + "partial": "Részleges" + }, + "ping": { + "error": "Hiba", + "ping": "Ping", + "down": "Le", + "up": "Fel", + "not_available": "Nem elérhető" + }, + "siteMonitor": { + "http_status": "HTTP állapot", + "error": "Hiba", + "response": "Válasz", + "down": "Le", + "up": "Fel", + "not_available": "Nem elérhető" + }, + "emby": { + "playing": "Lejátszás", + "transcoding": "Átkódolás", + "bitrate": "Bitráta", + "no_active": "Nincs aktív lejátszás", + "movies": "Film", + "series": "Sorozat", + "episodes": "Epizód", + "songs": "Zeneszám" + }, + "esphome": { + "offline": "Nem elérhető", + "offline_alt": "Nem elérhető", + "online": "Csatlakozva", + "total": "Összes", + "unknown": "Ismeretlen" + }, + "evcc": { + "pv_power": "Termelés", + "battery_soc": "Akkumulátor", + "grid_power": "Rács", + "home_power": "Fogyasztás", + "charge_power": "Töltő", + "kilowatt": "kW" + }, + "flood": { + "download": "Letöltés", + "upload": "Feltöltés", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Előfizetések", + "unread": "Olvasatlan" + }, + "fritzbox": { + "connectionStatus": "Státusz", + "connectionStatusUnconfigured": "Nem beállított", + "connectionStatusConnecting": "Kapcsolódás", + "connectionStatusAuthenticating": "Hitelesítés", + "connectionStatusPendingDisconnect": "Szétkapcsolás függőben", + "connectionStatusDisconnecting": "Kapcsolat bontása", + "connectionStatusDisconnected": "Kapcsolat bontva", + "connectionStatusConnected": "Csatlakozva", + "uptime": "Üzemidő", + "maxDown": "Max let.", + "maxUp": "Max felt.", + "down": "Le", + "up": "Fel", + "received": "Fogadott", + "sent": "Küldött", + "externalIPAddress": "Külső IP cím", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreamek", + "requests": "Jelenlegi kérelmek", + "requests_failed": "Sikertelen kérelmek" + }, + "changedetectionio": { + "totalObserved": "Összes Megfigyelt", + "diffsDetected": "Észlelt különbségek" + }, + "channelsdvrserver": { + "shows": "Műsorok", + "recordings": "Felvételek", + "scheduled": "Ütemezett", + "passes": "Engedélyek" + }, + "tautulli": { + "playing": "Lejátszás", + "transcoding": "Átkódolás", + "bitrate": "Bitráta", + "no_active": "Nincs aktív lejátszás", + "plex_connection_error": "Plex kapcsolat ellenőrzése" + }, + "omada": { + "connectedAp": "Csatlakoztatott AP-k", + "activeUser": "Aktív eszközök", + "alerts": "Riasztások", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Csatlakoztatott switch-ek" + }, + "nzbget": { + "rate": "Ráta", + "remaining": "Hátralévő", + "downloaded": "Letöltött" + }, + "plex": { + "streams": "Aktív Stream-ek", + "albums": "Albumok", + "movies": "Film", + "tv": "TV műsorok" + }, + "sabnzbd": { + "rate": "Ráta", + "queue": "Sor", + "timeleft": "Hátralévő idő" + }, + "rutorrent": { + "active": "Aktív", + "upload": "Feltöltés", + "download": "Letöltés" + }, + "transmission": { + "download": "Letöltés", + "upload": "Feltöltés", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Letöltés", + "upload": "Feltöltés", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "Processzor Használat", + "memUsage": "Memória Használat", + "systemTempC": "Rendszerhőmérséklet", + "poolUsage": "Pool Használat", + "volumeUsage": "Kötet Használat", + "invalid": "Érvénytelen" + }, + "deluge": { + "download": "Letöltés", + "upload": "Feltöltés", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Gyorsítótárban Sikeres Bitek", + "cachemissbytes": "Gyorsítótárban Hibás Bitek" + }, + "downloadstation": { + "download": "Letöltés", + "upload": "Feltöltés", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Keresett", + "queued": "Sorban áll", + "series": "Sorozat", + "queue": "Sor", + "unknown": "Ismeretlen" + }, + "radarr": { + "wanted": "Keresett", + "missing": "Hiányzik", + "queued": "Sorban áll", + "movies": "Film", + "queue": "Sor", + "unknown": "Ismeretlen" }, "lidarr": { "wanted": "Keresett", @@ -44,83 +267,6 @@ "missingEpisodes": "Hiányzó epizódok", "missingMovies": "Hiányzó filmek" }, - "widget": { - "missing_type": "Hiányzó Widget Típus: {{type}}", - "api_error": "API Hiba", - "status": "Státusz", - "information": "Információ", - "url": "URL", - "raw_error": "Nyers hiba", - "response_data": "Válaszadatok" - }, - "weather": { - "current": "Aktuális hely", - "allow": "Kattints az engedélyezéshez", - "updating": "Frissítés", - "wait": "Kérjük várjon" - }, - "search": { - "placeholder": "Keresés…" - }, - "emby": { - "playing": "Lejátszás", - "transcoding": "Átkódolás", - "bitrate": "Bitráta", - "no_active": "Nincs aktív lejátszás", - "movies": "Film", - "series": "Sorozat", - "episodes": "Epizód", - "songs": "Zeneszám" - }, - "tautulli": { - "playing": "Lejátszás folyamatban", - "transcoding": "Átkódolás", - "bitrate": "Bitráta", - "no_active": "Nincs aktív lejátszás", - "plex_connection_error": "Plex kapcsolat ellenőrzése" - }, - "nzbget": { - "rate": "Ráta", - "remaining": "Hátralévő", - "downloaded": "Letöltött" - }, - "sabnzbd": { - "rate": "Ráta", - "queue": "Sor", - "timeleft": "Hátralévő idő" - }, - "rutorrent": { - "active": "Aktív", - "upload": "Feltöltés", - "download": "Letöltés" - }, - "transmission": { - "leech": "Leechelés", - "seed": "Seedelés", - "download": "Letöltés", - "upload": "Feltöltés" - }, - "qbittorrent": { - "download": "Letöltés", - "upload": "Feltöltés", - "leech": "Leechelés", - "seed": "Seedelés" - }, - "sonarr": { - "wanted": "Keresett", - "queued": "Sorban áll", - "series": "Sorozat", - "queue": "Várólista", - "unknown": "Ismeretlen" - }, - "radarr": { - "wanted": "Keresett", - "queued": "Sorban áll", - "movies": "Filmek", - "missing": "Hiányzik", - "queue": "Várólista", - "unknown": "Ismeretlen" - }, "ombi": { "pending": "Függőben", "approved": "Engedélyezett", @@ -133,15 +279,21 @@ }, "overseerr": { "pending": "Függőben", + "processing": "Feldolgozás", "approved": "Engedélyezett", - "available": "Elérhető", - "processing": "Feldolgozás" + "available": "Elérhető" + }, + "netalertx": { + "total": "Összes", + "connected": "Csatlakozva", + "new_devices": "Új eszközök", + "down_alerts": "Leállási riasztások" }, "pihole": { "queries": "Lekérdezések", "blocked": "Blokkolt", - "gravity": "Gravitáció", - "blocked_percent": "Blokkolt %" + "blocked_percent": "Blokkolt %", + "gravity": "Gravitáció" }, "adguard": { "queries": "Lekérdezések", @@ -159,11 +311,58 @@ "stopped": "Megállított", "total": "Összes" }, + "suwayomi": { + "download": "Letöltött", + "nondownload": "Nem Letöltött", + "read": "Olvasott", + "unread": "Olvasatlan", + "downloadedread": "Letöltött & Olvasott", + "downloadedunread": "Letöltött & Olvasatlan", + "nondownloadedread": "Nem Letöltött & Olvasatlan", + "nondownloadedunread": "Nem Letöltött & Olvasatlan" + }, + "tailscale": { + "address": "Cím", + "expires": "Lejár", + "never": "Soha", + "last_seen": "Utoljára látott", + "now": "Most", + "years": "{{number}}év", + "weeks": "{{number}}h", + "days": "{{number}}n", + "hours": "{{number}}ó", + "minutes": "{{number}}p", + "seconds": "{{number}}mp", + "ago": "{{value}} Ezelőtt" + }, + "technitium": { + "totalQueries": "Lekérdezések", + "totalNoError": "Sikerek", + "totalServerFailure": "Hibák", + "totalNxDomain": "NX Domainek", + "totalRefused": "Elutasított", + "totalAuthoritative": "Irányadó", + "totalRecursive": "Rekurzív", + "totalCached": "Gyorsítótárazott", + "totalBlocked": "Blokkolt", + "totalDropped": "Eldobott", + "totalClients": "Kliensek" + }, + "tdarr": { + "queue": "Sor", + "processed": "Feldolgozott", + "errored": "Hibás", + "saved": "Mentett" + }, "traefik": { "routers": "Routerek", "services": "Folyamatok", "middleware": "Közvetítő" }, + "navidrome": { + "nothing_streaming": "Nincs aktív lejátszás", + "please_wait": "Kérjük Várjon" + }, "npm": { "enabled": "Bekapcsolva", "disabled": "Kikapcsolva", @@ -184,25 +383,41 @@ "prowlarr": { "enableIndexers": "Indexerek", "numberOfGrabs": "Fogott", - "numberOfFailGrabs": "Hibás fogások", "numberOfQueries": "Lekérdezések", + "numberOfFailGrabs": "Hibás fogások", "numberOfFailQueries": "Hibás lekérdezések" }, "jackett": { "configured": "Beállított", "errored": "Hibás" }, - "mastodon": { - "user_count": "Felhasználók", - "status_count": "Posztok", - "domain_count": "Domainek" - }, "strelaysrv": { "numActiveSessions": "Munkamenetek", "numConnections": "Csatlakozások", "dataRelayed": "Átirányított", "transferRate": "Ráta" }, + "mastodon": { + "user_count": "Felhasználók", + "status_count": "Posztok", + "domain_count": "Domainek" + }, + "medusa": { + "wanted": "Keresett", + "queued": "Sorban áll", + "series": "Sorozat" + }, + "minecraft": { + "players": "Lejátszók", + "version": "Verzió", + "status": "Státusz", + "up": "Csatlakozva", + "down": "Nem elérhető" + }, + "miniflux": { + "read": "Olvasott", + "unread": "Olvasatlan" + }, "authentik": { "users": "Felhasználók", "loginsLast24H": "Bejelentkezések (24 óra)", @@ -211,74 +426,63 @@ "proxmox": { "mem": "RAM", "cpu": "Processzor", - "lxc": "LXC", + "lxc": "LXC-k", "vms": "VM-ek" }, - "unifi": { - "users": "Felhasználók", - "uptime": "Rendszer üzemidő", - "days": "Napok", - "wan": "WAN", - "lan_users": "LAN Felhasználók", - "wlan_users": "WLAN Felhasználók", - "up": "FUT", - "down": "ÁLL", - "wait": "Kérjük várjon", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Eszközök", - "lan_devices": "LAN Eszközök", - "wlan_devices": "WLAN Eszközök", - "empty_data": "Az alrendszer állapota ismeretlen" - }, - "plex": { - "streams": "Aktív Stream-ek", - "movies": "Filmek", - "tv": "TV műsorok", - "albums": "Albumok" - }, "glances": { "cpu": "Processzor", + "load": "Terhelés", "wait": "Kérjük várjon", - "temp": "HŐMÉRSÉKLET", - "uptime": "FUT", - "days": "n", - "hours": "ó", - "load": "Kapacitáskihasználás", + "temp": "HŐM", + "_temp": "Hőmérséklet", "warn": "Figyelmeztet", + "uptime": "FUT", "total": "Összes", "free": "Szabad", - "used": "Felhasznált" + "used": "Használt", + "days": "n", + "hours": "ó", + "crit": "Kritikus", + "read": "Olvasott", + "write": "Írás", + "gpu": "GPU", + "mem": "Memória", + "swap": "Csere" }, - "changedetectionio": { - "totalObserved": "Összes Megfigyelt", - "diffsDetected": "Észlelt különbségek" + "quicklaunch": { + "bookmark": "Könyvjelző", + "service": "Szolgáltatás", + "search": "Keresés", + "custom": "Egyedi", + "visit": "Megnéz", + "url": "URL", + "searchsuggestion": "Javaslat" }, "wmo": { "0-day": "Napos", "0-night": "Derült", - "3-day": "Felhős", - "3-night": "Felhős", - "45-day": "Ködös", - "53-day": "Szitálás", - "56-night": "Enyhe fagyos szitálás", - "57-day": "Fagyos szitálás", "1-day": "Többnyire napos", "1-night": "Többnyire derült", "2-day": "Részben felhős", "2-night": "Részben felhős", + "3-day": "Felhős", + "3-night": "Felhős", + "45-day": "Ködös", "45-night": "Ködös", "48-day": "Ködös", "48-night": "Ködös", "51-day": "Enyhe szitálás", "51-night": "Enyhe szitálás", - "57-night": "Fagyos szitálás", - "61-day": "Enyhe eső", - "61-night": "Enyhe eső", + "53-day": "Szitálás", "53-night": "Szitálás", "55-day": "Erős szitálás", "55-night": "Erős szitálás", "56-day": "Enyhe fagyos szitálás", + "56-night": "Enyhe fagyos szitálás", + "57-day": "Fagyos szitálás", + "57-night": "Fagyos szitálás", + "61-day": "Enyhe eső", + "61-night": "Enyhe eső", "63-day": "Eső", "63-night": "Eső", "65-day": "Heves eső", @@ -312,14 +516,6 @@ "99-day": "Zivatar jégesővel", "99-night": "Zivatar jégesővel" }, - "quicklaunch": { - "bookmark": "Könyvjelző", - "service": "Szolgáltatás", - "search": "Keresés", - "custom": "Egyedi", - "visit": "Megnéz", - "url": "URL" - }, "homebridge": { "available_update": "Rendszer", "updates": "Frissítések", @@ -327,41 +523,46 @@ "up_to_date": "Naprakész", "child_bridges": "Gyerek Hidak", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Fut", + "up": "Fel", "pending": "Függőben", - "down": "Áll" + "down": "Le" }, - "autobrr": { - "approvedPushes": "Jóváhagyott", - "rejectedPushes": "Elutasított", - "filters": "Szűrők", - "indexers": "Indexelők" + "healthchecks": { + "new": "Új", + "up": "Fel", + "grace": "Türelmi idő alatt", + "down": "Le", + "paused": "Szünetel", + "status": "Státusz", + "last_ping": "Legutóbbi Ping", + "never": "Még nincsenek ping-ek" }, "watchtower": { "containers_scanned": "Beolvasott", "containers_updated": "Frissített", "containers_failed": "Sikertelen" }, + "autobrr": { + "approvedPushes": "Engedélyezett", + "rejectedPushes": "Elutasított", + "filters": "Szűrők", + "indexers": "Indexerek" + }, "tubearchivist": { - "downloads": "Várólista", + "downloads": "Sor", "videos": "Videók", "channels": "Csatornák", "playlists": "Lejátszási listák" }, "truenas": { - "load": "Rendszerterheltség", + "load": "Rendszerterhelés", "uptime": "Üzemidő", - "alerts": "Riasztások", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Nincsenek Aktív Stream-ek", - "please_wait": "Kérjük Várjon" + "alerts": "Riasztások" }, "pyload": { "speed": "Sebesség", "active": "Aktív", - "queue": "Várólista", + "queue": "Sor", "total": "Összes" }, "gluetun": { @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Csatornák", - "hd": "HD" - }, - "ping": { - "error": "Hiba", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuner-ek", + "channelNumber": "Csatorna", + "channelNetwork": "Hálózat", + "signalStrength": "Erősség", + "signalQuality": "Minőség", + "symbolQuality": "Minőség", + "networkRate": "Bitráta", + "clientIP": "Kliens" }, "scrutiny": { "passed": "Megfelelt", @@ -386,49 +591,18 @@ "inbox": "Beérkezett", "total": "Összes" }, - "deluge": { - "download": "Letöltés", - "seed": "Seed", - "upload": "Feltöltés", - "leech": "Leech" - }, - "flood": { - "download": "Letöltés", - "upload": "Feltöltés", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Várólista", - "processed": "Feldolgozott", - "errored": "Hibás", - "saved": "Mentett" - }, - "miniflux": { - "read": "Olvasott", - "unread": "Olvasatlan" + "peanut": { + "battery_charge": "Akku töltöttsége", + "ups_load": "UPS terheltsége", + "ups_status": "UPS állapot", + "online": "Csatlakozva", + "on_battery": "Akkuról", + "low_battery": "Alacsony töltöttség" }, "nextdns": { "wait": "Kérjük Várjon", "no_devices": "Nincs fogadott eszközadat" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "activeUser": "Aktív eszközök", - "alerts": "Riasztások", - "connectedAp": "Csatlakoztatott AP-k", - "connectedGateway": "Csatlakoztatott gateway-ek", - "connectedSwitches": "Csatlakoztatott switch-ek" - }, - "downloadstation": { - "download": "Letöltés", - "upload": "Feltöltés", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "Processzor Terhelés", "memoryUsed": "Felhasznált Memória", @@ -440,6 +614,12 @@ "streams_active": "Aktív Stream-ek", "streams_xepg": "XEPG Csatornák" }, + "opendtu": { + "yieldDay": "Ma", + "absolutePower": "Energia", + "relativePower": "Energia %", + "limit": "Korlát" + }, "opnsense": { "cpu": "Processzor Terhelés", "memory": "Aktív Memória", @@ -447,25 +627,30 @@ "wanDownload": "WAN Letöltés" }, "moonraker": { - "layers": "Rétegek", "printer_state": "Nyomtató Állapota", "print_status": "Nyomtatás Állapota", - "print_progress": "Folyamat" - }, - "medusa": { - "wanted": "Keresett", - "queued": "Sorba állítva", - "series": "Sorozatok" + "print_progress": "Folyamat", + "layers": "Rétegek" }, "octoprint": { - "printer_state": "Állapot", + "printer_state": "Státusz", "temp_tool": "Szerszám hőmérséklet", "temp_bed": "Ágy Hőmérséklet", "job_completion": "Teljesítés" }, "cloudflared": { "origin_ip": "Eredeti IP", - "status": "Állapot" + "status": "Státusz" + }, + "pfsense": { + "load": "Átlagos terhelés", + "memory": "RAM Használat", + "wanStatus": "WAN Állapot", + "up": "Fel", + "down": "Le", + "temp": "Hőmérséklet", + "disk": "Lemezhasználat", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Adattár", @@ -484,15 +669,26 @@ "down": "Nem Elérhető Webhelyek", "uptime": "Üzemidő", "incident": "Incidens", - "m": "perc" + "m": "p" + }, + "atsumeru": { + "series": "Sorozat", + "archives": "Archívum", + "chapters": "Fejezetek", + "categories": "Kategóriák" }, "komga": { "libraries": "Könyvtárak", - "series": "Sorozatok", + "series": "Sorozat", "books": "Könyvek" }, + "diskstation": { + "days": "Napok", + "uptime": "Üzemidő", + "volumeAvailable": "Elérhető" + }, "mylar": { - "series": "Sorozatok", + "series": "Sorozat", "issues": "Problémák", "wanted": "Keresett" }, @@ -502,17 +698,16 @@ "videos": "Videók", "people": "Emberek" }, - "diskstation": { - "days": "Napok", - "uptime": "Üzemidő", - "volumeAvailable": "Elérhető" - }, "fileflows": { - "queue": "Várólista", + "queue": "Sor", "processing": "Feldolgozás", "processed": "Feldolgozott", "time": "Idő" }, + "firefly": { + "networth": "Nettó érték", + "budget": "Költségkeret" + }, "grafana": { "dashboards": "Műszerfalak", "datasources": "Adatforrások", @@ -528,7 +723,7 @@ "numshares": "Megosztott Elemek" }, "kopia": { - "status": "Állapot", + "status": "Státusz", "size": "Méret", "lastrun": "Legutóbbi futtatás", "nextrun": "Következő Futtatás", @@ -539,16 +734,6 @@ "total_workers": "Összes Dolgozó", "records_total": "Várólista Hossza" }, - "healthchecks": { - "new": "Új", - "up": "Online", - "grace": "Türelmi idő alatt", - "down": "Offline", - "paused": "Szünetel", - "status": "Állapot", - "last_ping": "Legutóbbi Ping", - "never": "Még nincsenek ping-ek" - }, "pterodactyl": { "servers": "Szerverek", "nodes": "Node-ok" @@ -558,12 +743,10 @@ "targets_down": "Célpontok Állnak", "targets_total": "Összes Célpont" }, - "minecraft": { - "players": "Lejátszók", - "version": "Verzió", - "status": "Állapot", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Futó Webhelyek", + "down": "Nem Elérhető Webhelyek", + "uptime": "Üzemidő" }, "ghostfolio": { "gross_percent_today": "Ma", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcast", - "books": "Könyv", + "books": "Könyvek", "podcastsDuration": "Időtartam", "booksDuration": "Időtartam" }, @@ -581,89 +764,283 @@ "lights_on": "Fények bekapcsolva", "switches_on": "Kapcsolók felkapcsolva" }, - "freshrss": { - "subscriptions": "Előfizetések", - "unread": "Olvasatlan" - }, - "channelsdvrserver": { - "shows": "Műsorok", - "recordings": "Felvételek", - "scheduled": "Ütemezett", - "passes": "Engedélyek" - }, "whatsupdocker": { "monitoring": "Nyomonkövetés", "updates": "Frissítések" }, - "tailscale": { - "address": "Cím", - "expires": "Lejár", - "never": "Soha", - "last_seen": "Utoljára látott", - "now": "Most", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ezelőtt", - "hours": "{{number}}h" - }, - "qnap": { - "cpuUsage": "Processzor Használat", - "memUsage": "Memória Használat", - "systemTempC": "Rendszerhőmérséklet", - "poolUsage": "Pool Használat", - "volumeUsage": "Kötet Használat", - "invalid": "Érvénytelen" - }, - "pfsense": { - "load": "Átlagos terhelés", - "memory": "RAM Használat", - "wanStatus": "WAN Állapot", - "up": "Fut", - "down": "Áll", - "temp": "Hőmérséklet", - "disk": "Lemezhasználat", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreamek", - "requests": "Jelenlegi kérelmek", - "requests_failed": "Sikertelen kérelmek" - }, - "evcc": { - "pv_power": "Termelés", - "battery_soc": "Akkumulátor", - "grid_power": "Rács", - "home_power": "Fogyasztás", - "charge_power": "Töltő", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Összes", - "connected": "Csatlakoztatott", - "new_devices": "Új Eszközök", - "down_alerts": "Leállási Figyelmeztetések" + "calibreweb": { + "books": "Könyvek", + "authors": "Szerzők", + "categories": "Kategóriák", + "series": "Sorozat" }, "jdownloader": { - "downloadSpeed": "Sebesség", - "downloadCount": "Összes függőben lévő", + "downloadCount": "Sor", + "downloadBytesRemaining": "Hátralévő", "downloadTotalBytes": "Méret", - "downloadBytesRemaining": "Fennmaradó" + "downloadSpeed": "Sebesség" }, "kavita": { - "seriesCount": "Sorozatok", + "seriesCount": "Sorozat", "totalFiles": "Fájlok" }, - "azurePipelines": { + "azuredevops": { "result": "Eredmény", - "status": "Állapot", - "buildId": "Build ID", - "succeeded": "Sikeres", - "notStarted": "Nincs elindítva", + "status": "Státusz", + "buildId": "Gyártás ID", + "succeeded": "Sikerült", + "notStarted": "Nem indult", "failed": "Sikertelen", "canceled": "Megszakítva", - "inProgress": "Folyamatban" + "inProgress": "Folyamatban", + "totalPrs": "Minden PR", + "myPrs": "Saját PR-ek", + "approved": "Engedélyezett" + }, + "gamedig": { + "status": "Státusz", + "online": "Csatlakozva", + "offline": "Nem elérhető", + "name": "Név", + "map": "Térkép", + "currentPlayers": "Jelenlegi játékosok", + "players": "Lejátszók", + "maxPlayers": "Max. játékosok", + "bots": "Botok", + "ping": "Ping" + }, + "urbackup": { + "ok": "OK", + "errored": "Hibák", + "noRecent": "Elavult", + "totalUsed": "Felhasznált tárhely" + }, + "mealie": { + "recipes": "Receptek", + "users": "Felhasználók", + "categories": "Kategóriák", + "tags": "Címkék" + }, + "openmediavault": { + "downloading": "Letöltés folyamatban", + "total": "Összes", + "running": "Futó", + "stopped": "Megállított", + "passed": "Megfelelt", + "failed": "Sikertelen" + }, + "openwrt": { + "uptime": "Üzemidő", + "cpuLoad": "Átlag CPU terhelés (5p)", + "up": "Fel", + "down": "Le", + "bytesTx": "Továbbított", + "bytesRx": "Fogadott" + }, + "uptimerobot": { + "status": "Státusz", + "uptime": "Üzemidő", + "lastDown": "Utolsó leállás", + "downDuration": "Leállás ideje", + "sitesUp": "Futó Webhelyek", + "sitesDown": "Nem Elérhető Webhelyek", + "paused": "Szünetel", + "notyetchecked": "Még nincs ellenőrizve", + "up": "Fel", + "seemsdown": "Elérhetetlennek tűnik", + "down": "Le", + "unknown": "Ismeretlen" + }, + "calendar": { + "inCinemas": "Mozikban", + "physicalRelease": "Fizikai kiadás", + "digitalRelease": "Digitális kiadás", + "noEventsToday": "Ezen a napon nincsenek események!", + "noEventsFound": "Nem található esemény" + }, + "romm": { + "platforms": "Felület", + "totalRoms": "Játékok", + "saves": "Mentések", + "states": "Állapotok", + "screenshots": "Képernyőképek", + "totalfilesize": "Teljes méret" + }, + "mailcow": { + "domains": "Domainek", + "mailboxes": "E-mail fiókok", + "mails": "Mailek", + "storage": "Tárhely" + }, + "netdata": { + "warnings": "Figyelmeztetések", + "criticals": "Kritikusok" + }, + "plantit": { + "events": "Események", + "plants": "Növények", + "photos": "Fényképek", + "species": "Fajok" + }, + "gitea": { + "notifications": "Üzenetek", + "issues": "Problémák", + "pulls": "Pull request-ek", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Jelenetek", + "scenesPlayed": "Lejátszott jelenetek", + "playCount": "Összes leátszás", + "playDuration": "Nézett idő", + "sceneSize": "Jelenetek mérete", + "sceneDuration": "Jelenetek hossza", + "images": "Képek", + "imageSize": "Képek mérete", + "galleries": "Galériák", + "performers": "Előadók", + "studios": "Stúdiók", + "movies": "Film", + "tags": "Címkék", + "oCount": "O szám" + }, + "tandoor": { + "users": "Felhasználók", + "recipes": "Receptek", + "keywords": "Kulcsszavak" + }, + "homebox": { + "items": "Tárgyak", + "totalWithWarranty": "Garanciával", + "locations": "Helyek", + "labels": "Címkék", + "users": "Felhasználók", + "totalValue": "Teljes érték" + }, + "crowdsec": { + "alerts": "Riasztások", + "bans": "Kitiltások" + }, + "wgeasy": { + "connected": "Csatlakozva", + "enabled": "Bekapcsolva", + "disabled": "Kikapcsolva", + "total": "Összes" + }, + "swagdashboard": { + "proxied": "Proxyzott", + "auth": "Hitelesítéssel", + "outdated": "Elavult", + "banned": "Kitiltott" + }, + "myspeed": { + "ping": "Ping", + "download": "Letöltés", + "upload": "Feltöltés" + }, + "stocks": { + "stocks": "Tőzsde", + "loading": "Betöltés", + "open": "Nyitva - US Piac", + "closed": "Zárva - US Piac", + "invalidConfiguration": "Érvénytelen konfiguráció" + }, + "frigate": { + "cameras": "Kamerák", + "uptime": "Üzemidő", + "version": "Verzió" + }, + "linkwarden": { + "links": "Linkek", + "collections": "Gyűjtemény", + "tags": "Címkék" + }, + "zabbix": { + "unclassified": "Nem titkosított", + "information": "Információ", + "warning": "Figyelmeztetés", + "average": "Átlag", + "high": "Magas", + "disaster": "Katasztrófa" + }, + "lubelogger": { + "vehicle": "Jármű", + "vehicles": "Járművek", + "serviceRecords": "Szolgáltatások nyílvántartása", + "reminders": "Emlékeztetők", + "nextReminder": "Következő emlékeztető", + "none": "Semmi" + }, + "vikunja": { + "projects": "Aktív Projektek", + "tasks7d": "Hátralévő feladatok a héten", + "tasksOverdue": "Lejárt feladatok", + "tasksInProgress": "Folyamatban levő Feladatok" + }, + "headscale": { + "name": "Név", + "address": "Cím", + "last_seen": "Utoljára látott", + "status": "Státusz", + "online": "Csatlakozva", + "offline": "Nem elérhető" + }, + "beszel": { + "name": "Név", + "systems": "Rendszerek", + "up": "Fel", + "down": "Le", + "paused": "Szünetel", + "pending": "Függőben", + "status": "Státusz", + "updated": "Frissített", + "cpu": "Processzor", + "memory": "RAM", + "disk": "Lemez", + "network": "Hálózat" + }, + "argocd": { + "apps": "Alkalmazások", + "synced": "Szinkronizált", + "outOfSync": "Nincs szinkronban", + "healthy": "Egészséges", + "degraded": "Leépült", + "progressing": "Halad", + "missing": "Hiányzik", + "suspended": "Felfüggesztett" + }, + "spoolman": { + "loading": "Betöltés" + }, + "gitlab": { + "groups": "Csoportok", + "issues": "Problémák", + "merges": "Merge kérések", + "projects": "Projektek" + }, + "apcups": { + "status": "Státusz", + "load": "Terhelés", + "bcharge": "Akku töltöttsége", + "timeleft": "Hátralévő idő" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Címkék" + }, + "slskd": { + "slskStatus": "Hálózat", + "connected": "Csatlakozva", + "disconnected": "Kapcsolat bontva", + "updateStatus": "Update", + "update_yes": "Elérhető", + "update_no": "Naprakész", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Fájlok" } } diff --git a/public/locales/id/common.json b/public/locales/id/common.json index d3cab359..fa4d6459 100644 --- a/public/locales/id/common.json +++ b/public/locales/id/common.json @@ -1,669 +1,1046 @@ { - "nzbget": { - "downloaded": "Downloaded", - "rate": "Rate", - "remaining": "Remaining" + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "bln", + "days": "h", + "hours": "j", + "minutes": "m", + "seconds": "d" }, - "plex": { - "streams": "Active Streams", - "albums": "Albums", - "movies": "Movies", - "tv": "TV Shows" - }, - "sabnzbd": { - "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" - }, - "rutorrent": { - "active": "Active", - "upload": "Upload", - "download": "Download" - }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "systemTempC": "System Temp", - "invalid": "Invalid" - }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series", - "queue": "Queue", - "unknown": "Unknown" - }, - "radarr": { - "wanted": "Wanted", - "missing": "Missing", - "queued": "Queued", - "movies": "Movies", - "queue": "Queue", - "unknown": "Unknown" - }, - "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" - }, - "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" - }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" - }, - "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "jellyseerr": { - "approved": "Approved", - "pending": "Pending", - "available": "Available" - }, - "overseerr": { - "approved": "Approved", - "available": "Available", - "pending": "Pending", - "processing": "Processing" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" - }, - "pihole": { - "queries": "Queries", - "blocked": "Blocked", - "blocked_percent": "Blocked %", - "gravity": "Gravity" - }, - "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" - }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" - }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" - }, - "npm": { - "disabled": "Disabled", - "enabled": "Enabled", - "total": "Total" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" - }, - "prowlarr": { - "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "enableIndexers": "Indexers", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" - }, - "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" - }, - "jackett": { - "configured": "Configured", - "errored": "Errored" - }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" - }, - "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, - "minecraft": { - "players": "Players", - "version": "Version", + "widget": { + "missing_type": "Widget Tidak Ditemukan: {{type}}", + "api_error": "API Error", + "information": "Informasi", "status": "Status", - "up": "Online", - "down": "Offline" - }, - "authentik": { - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)", - "users": "Users" - }, - "proxmox": { - "cpu": "CPU", - "lxc": "LXC", - "vms": "VMs", - "mem": "MEM" - }, - "glances": { - "temp": "TEMP", - "warn": "Warn", - "uptime": "UP", - "total": "Total", - "free": "Free", - "cpu": "CPU", - "load": "Load", - "wait": "Please wait", - "used": "Used", - "days": "d", - "hours": "h" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, - "wmo": { - "0-night": "Clear", - "0-day": "Sunny", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail" - }, - "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", - "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" - }, - "healthchecks": { - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet", - "new": "New", - "up": "Online" - }, - "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" - }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" - }, - "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" - }, - "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" - }, - "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" - }, - "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "paperlessngx": { - "inbox": "Inbox", - "total": "Total" - }, - "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" - }, - "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" - }, - "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" - }, - "moonraker": { - "print_status": "Print Status", - "printer_state": "Printer State", - "print_progress": "Progress", - "layers": "Layers" - }, - "octoprint": { - "printer_state": "Status", - "temp_bed": "Bed temp", - "job_completion": "Completion", - "temp_tool": "Tool temp" - }, - "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "videos": "Videos", - "storage": "Storage", - "users": "Users", - "photos": "Photos" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "people": "People", - "albums": "Albums", - "photos": "Photos", - "videos": "Videos" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "nextrun": "Next Run", - "size": "Size", - "failed": "Failed", - "lastrun": "Last Run" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "ghostfolio": { - "gross_percent_max": "All time", - "gross_percent_today": "Today", - "gross_percent_1y": "One year" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "podcastsDuration": "Duration", - "books": "Books", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "url": "URL", + "raw_error": "Error Baku", + "response_data": "Data Respons" }, "weather": { - "wait": "Harap tunggu", - "current": "Current Location", - "allow": "Click to allow", - "updating": "Updating" + "current": "Lokasi Saat Ini", + "allow": "Klik untuk mengizinkan", + "updating": "Memperbarui", + "wait": "Harap tunggu" }, "search": { "placeholder": "Telusuri…" }, + "resources": { + "cpu": "CPU", + "mem": "MEM", + "total": "Total", + "free": "Luang", + "used": "Digunakan", + "load": "Beban", + "temp": "TEMP", + "max": "Maks", + "uptime": "Waktu Aktif" + }, "unifi": { - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "users": "Users", - "uptime": "System Uptime", - "days": "Days", + "users": "Pengguna", + "uptime": "Waktu Aktif", + "days": "Hari-hari", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "empty_data": "Subsystem status unknown" + "devices": "Perangkat", + "lan_devices": "Perangkat LAN", + "wlan_devices": "Perangkat WLAN", + "lan_users": "Pengguna LAN", + "wlan_users": "Pengguna WLAN", + "up": "Waktu Aktif", + "down": "Mati", + "wait": "Harap tunggu", + "empty_data": "Status subsistem tdk diketahui" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "CPU", - "running": "Running", + "running": "Berjalan", "offline": "Offline", "error": "Error", - "unknown": "Unknown", - "healthy": "Healthy", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial" - }, - "freshrss": { - "unread": "Unread", - "subscriptions": "Subscriptions" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" - }, - "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "widget": { - "missing_type": "Missing Widget Type: {{type}}", - "api_error": "API Error", - "information": "Informasi", - "status": "Status", - "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" - }, - "resources": { - "cpu": "CPU", - "mem": "MEM", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "hours": "h", - "days": "d", - "minutes": "m" + "unknown": "Tidak Diketahui", + "healthy": "Lancar", + "starting": "Memulai", + "unhealthy": "Tidak Lancar", + "not_found": "Tidak Ditemukan", + "exited": "Terkeluar", + "partial": "Sebagian" }, "ping": { "error": "Error", - "ping": "Ping" + "ping": "Ping", + "down": "Mati", + "up": "Hidup", + "not_available": "Tidak Tersedia" + }, + "siteMonitor": { + "http_status": "HTTP Status", + "error": "Error", + "response": "Respons", + "down": "Mati", + "up": "Hidup", + "not_available": "Tidak Tersedia" }, "emby": { - "playing": "Playing", - "transcoding": "Transcoding", + "playing": "Sedang Diputar", + "transcoding": "Mentranskode", "bitrate": "Bitrate", - "no_active": "No Active Streams", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "no_active": "Tidak ada Strim Aktif", + "movies": "Film", + "series": "Seri", + "episodes": "Episode", + "songs": "Lagu" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Tidak Diketahui" }, "evcc": { - "pv_power": "Production", - "home_power": "Consumption", - "charge_power": "Charger", - "battery_soc": "Battery", + "pv_power": "Produksi", + "battery_soc": "Baterai", "grid_power": "Grid", - "watt_hour": "Wh" + "home_power": "Konsumsi", + "charge_power": "Charger", + "kilowatt": "kW" }, "flood": { - "download": "Download", - "upload": "Upload", + "download": "Unduh", + "upload": "Unggah", "leech": "Leech", "seed": "Seed" }, + "freshrss": { + "subscriptions": "Subskripsi", + "unread": "Belum Dibaca" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Belum dikonfigur", + "connectionStatusConnecting": "Menyambung", + "connectionStatusAuthenticating": "Menotentikasi", + "connectionStatusPendingDisconnect": "Menunggu Terputus", + "connectionStatusDisconnecting": "Sedan Memutus", + "connectionStatusDisconnected": "Terputus", + "connectionStatusConnected": "Tersambung", + "uptime": "Waktu Aktif", + "maxDown": "Maks Unduh", + "maxUp": "Maks Unggah", + "down": "Mati", + "up": "Hidup", + "received": "Diterima", + "sent": "Terkirim", + "externalIPAddress": "IP Eksternal", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Strim Luar", + "requests": "Request saat ini", + "requests_failed": "Request gagal" + }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Total yang Diamati", + "diffsDetected": "Perbedaan yang Terdeteksi" }, "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "shows": "Acara", + "recordings": "Rekaman", + "scheduled": "Terjadwal", + "passes": "Tiket" }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", + "playing": "Sedang Diputar", + "transcoding": "Mentranskode", "bitrate": "Bitrate", - "no_active": "No Active Streams", - "plex_connection_error": "Check Plex Connection" + "no_active": "Tidak ada Strim Aktif", + "plex_connection_error": "Cek Koneksi ke Plex" + }, + "omada": { + "connectedAp": "AP Tersambung", + "activeUser": "Perangakat yang Aktif", + "alerts": "Peringatan", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Switch Tersambung" + }, + "nzbget": { + "rate": "Laju Bandwidth", + "remaining": "Sisa", + "downloaded": "Terunduh" + }, + "plex": { + "streams": "Stream Berjalan", + "albums": "Albums", + "movies": "Film", + "tv": "Acara TV" + }, + "sabnzbd": { + "rate": "Laju Bandwidth", + "queue": "Antrian", + "timeleft": "Sisa Waktu" + }, + "rutorrent": { + "active": "Aktif", + "upload": "Unggah", + "download": "Unduh" + }, + "transmission": { + "download": "Unduh", + "upload": "Unggah", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Unduh", + "upload": "Unggah", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "Penggunaan CPU", + "memUsage": "Penggunaan MEM", + "systemTempC": "Suhu Sistem", + "poolUsage": "Pengunaan Pool", + "volumeUsage": "Penggunaan Volume", + "invalid": "Tidak valid" + }, + "deluge": { + "download": "Unduh", + "upload": "Unggah", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Unduh", + "upload": "Unggah", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Dicari", + "queued": "Terantrikan", + "series": "Seri", + "queue": "Antrian", + "unknown": "Tidak Diketahui" + }, + "radarr": { + "wanted": "Dicari", + "missing": "Tidak Ditemukan", + "queued": "Terantrikan", + "movies": "Film", + "queue": "Antrian", + "unknown": "Tidak Diketahui" + }, + "lidarr": { + "wanted": "Dicari", + "queued": "Terantrikan", + "artists": "Artis" + }, + "readarr": { + "wanted": "Dicari", + "queued": "Terantrikan", + "books": "Buku" + }, + "bazarr": { + "missingEpisodes": "Episode Tidak Ditemukan", + "missingMovies": "Film Tidak Ditemukan" + }, + "ombi": { + "pending": "Pending", + "approved": "Tersetujui", + "available": "Tersedia" + }, + "jellyseerr": { + "pending": "Pending", + "approved": "Tersetujui", + "available": "Tersedia" + }, + "overseerr": { + "pending": "Pending", + "processing": "Memproses", + "approved": "Tersetujui", + "available": "Tersedia" + }, + "netalertx": { + "total": "Total", + "connected": "Tersambung", + "new_devices": "Perangkat Baru", + "down_alerts": "Peringatan Pemadaman" + }, + "pihole": { + "queries": "Kueri", + "blocked": "Terblokir", + "blocked_percent": "% Terblokir", + "gravity": "Gravitasi" + }, + "adguard": { + "queries": "Kueri", + "blocked": "Terblokir", + "filtered": "Terfilter", + "latency": "Latensi" + }, + "speedtest": { + "upload": "Unggah", + "download": "Unduh", + "ping": "Ping" + }, + "portainer": { + "running": "Berjalan", + "stopped": "Terhenti", + "total": "Total" + }, + "suwayomi": { + "download": "Terunduh", + "nondownload": "Belum Diunduh", + "read": "Baca", + "unread": "Belum Dibaca", + "downloadedread": "Diunduh & Dibaca", + "downloadedunread": "Diunduh & Belum Dibaca", + "nondownloadedread": "Belum Diunduh & Dibaca", + "nondownloadedunread": "Belum Diunduh & Belum Dibaca" + }, + "tailscale": { + "address": "Alamat", + "expires": "Kedaluwarsa", + "never": "Tidak Pernah", + "last_seen": "Terakhir terlihat", + "now": "Sekarang", + "years": "{{number}}thn", + "weeks": "{{number}}mgg", + "days": "{{number}}h", + "hours": "{{number}}j", + "minutes": "{{number}}m", + "seconds": "{{number}}d", + "ago": "{{value}} Yang Lalu" + }, + "technitium": { + "totalQueries": "Kueri", + "totalNoError": "Berhasil", + "totalServerFailure": "Gagal", + "totalNxDomain": "Domain NX", + "totalRefused": "Ditolak", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Rekursif", + "totalCached": "Cached", + "totalBlocked": "Terblokir", + "totalDropped": "Dropped", + "totalClients": "Klien" + }, + "tdarr": { + "queue": "Antrian", + "processed": "Terproses", + "errored": "Error", + "saved": "Tersimpan" + }, + "traefik": { + "routers": "Router", + "services": "Layanan", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "Tidak ada Strim Aktif", + "please_wait": "Mohon menunggu" + }, + "npm": { + "enabled": "Aktif", + "disabled": "Nonaktif", + "total": "Total" + }, + "coinmarketcap": { + "configure": "Konfigurasikan satu atau beberapa mata uang kripto untuk dilacak", + "1hour": "1 Jam", + "1day": "1 Hari", + "7days": "7 Hari", + "30days": "30 Hari" + }, + "gotify": { + "apps": "Aplikasi", + "clients": "Klien", + "messages": "Pesan" + }, + "prowlarr": { + "enableIndexers": "Pengindeks", + "numberOfGrabs": "Jumlah Ambilan", + "numberOfQueries": "Kueri", + "numberOfFailGrabs": "Ambilan Gagal", + "numberOfFailQueries": "Jumlah Kueri Gagal" + }, + "jackett": { + "configured": "Konfigurasi", + "errored": "Error" + }, + "strelaysrv": { + "numActiveSessions": "Sesi", + "numConnections": "Jumlah Koneksi", + "dataRelayed": "Data Diteruskan", + "transferRate": "Laju Bandwidth" + }, + "mastodon": { + "user_count": "Pengguna", + "status_count": "Jumlah Posting", + "domain_count": "Jumlah Domain" + }, + "medusa": { + "wanted": "Dicari", + "queued": "Terantrikan", + "series": "Seri" + }, + "minecraft": { + "players": "Jumlah Pemain", + "version": "Versi", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Baca", + "unread": "Belum Dibaca" + }, + "authentik": { + "users": "Pengguna", + "loginsLast24H": "Login (24j)", + "failedLoginsLast24H": "Login Gagal (24j)" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "load": "Beban", + "wait": "Harap tunggu", + "temp": "TEMP", + "_temp": "Suhu", + "warn": "Peringatan", + "uptime": "Waktu Aktif", + "total": "Total", + "free": "Luang", + "used": "Digunakan", + "days": "h", + "hours": "j", + "crit": "Penting", + "read": "Baca", + "write": "Tulis", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Penanda", + "service": "Layanan", + "search": "Cari", + "custom": "Kustom", + "visit": "Kunjungi", + "url": "URL", + "searchsuggestion": "Saran" + }, + "wmo": { + "0-day": "Cerah dan Terang", + "0-night": "Cerah", + "1-day": "Cerah", + "1-night": "Cerah", + "2-day": "Sedikit Berawan", + "2-night": "Sedikit Berawan", + "3-day": "Berawan", + "3-night": "Berawan", + "45-day": "Berkabut", + "45-night": "Berkabut", + "48-day": "Berkabut", + "48-night": "Berkabut", + "51-day": "Gerimis Ringan", + "51-night": "Gerimis Ringan", + "53-day": "Gerimis", + "53-night": "Gerimis", + "55-day": "Gerimis Lebat", + "55-night": "Gerimis Lebat", + "56-day": "Gerimis Membeku Ringan", + "56-night": "Gerimis Membeku Ringan", + "57-day": "Gerimis Membeku", + "57-night": "Gerimis Membeku", + "61-day": "Hujan Ringan", + "61-night": "Hujan Ringan", + "63-day": "Hujan", + "63-night": "Hujan", + "65-day": "Hujan Deras", + "65-night": "Hujan Deras", + "66-day": "Hujan Dingin", + "66-night": "Hujan Dingin", + "67-day": "Hujan Dingin", + "67-night": "Hujan Dingin", + "71-day": "Hujan Salju Ringan", + "71-night": "Hujan Salju Ringan", + "73-day": "Hujan Salju", + "73-night": "Hujan Salju", + "75-day": "Hujan Salju Lebat", + "75-night": "Hujan Salju Lebat", + "77-day": "Hujan Salju Butiran", + "77-night": "Hujan Salju Butiran", + "80-day": "Hujan Ringan", + "80-night": "Hujan Ringan", + "81-day": "Hujan", + "81-night": "Hujan", + "82-day": "Hujan Lebat", + "82-night": "Hujan Lebat", + "85-day": "Hujan Salju", + "85-night": "Hujan Salju", + "86-day": "Hujan Salju", + "86-night": "Hujan Salju", + "95-day": "Badai Petir", + "95-night": "Badai Petir", + "96-day": "Badai Petir Hujan Es", + "96-night": "Badai Petir Hujan Es", + "99-day": "Badai Petir Hujan Es", + "99-night": "Badai Petir Hujan Es" + }, + "homebridge": { + "available_update": "Sistem", + "updates": "Pembaruan", + "update_available": "Pembaruan Tersedia", + "up_to_date": "Terbaru", + "child_bridges": "Bridge Turunan", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Hidup", + "pending": "Pending", + "down": "Mati" + }, + "healthchecks": { + "new": "Baru", + "up": "Hidup", + "grace": "Dalam Masa Tenggang", + "down": "Mati", + "paused": "Pause", + "status": "Status", + "last_ping": "Ping Terakhir", + "never": "Tidak pernah di ping" + }, + "watchtower": { + "containers_scanned": "Terpindai", + "containers_updated": "Terbarui", + "containers_failed": "Gagal" + }, + "autobrr": { + "approvedPushes": "Tersetujui", + "rejectedPushes": "Tertolak", + "filters": "Filter", + "indexers": "Pengindeks" + }, + "tubearchivist": { + "downloads": "Antrian", + "videos": "Video", + "channels": "Channel", + "playlists": "Daftar Putar" + }, + "truenas": { + "load": "Beban Sistem", + "uptime": "Waktu Aktif", + "alerts": "Peringatan" + }, + "pyload": { + "speed": "Kecepatan", + "active": "Aktif", + "queue": "Antrian", + "total": "Total" + }, + "gluetun": { + "public_ip": "IP Publik", + "region": "Region", + "country": "Negara" + }, + "hdhomerun": { + "channels": "Channel", + "hd": "HD", + "tunerCount": "Tuner", + "channelNumber": "Channel", + "channelNetwork": "Jaringan", + "signalStrength": "Kekuatan Signal", + "signalQuality": "Kualitas", + "symbolQuality": "Kualitas", + "networkRate": "Bitrate", + "clientIP": "Klien" + }, + "scrutiny": { + "passed": "Sukses", + "failed": "Gagal", + "unknown": "Tidak Diketahui" + }, + "paperlessngx": { + "inbox": "Kotak Masuk", + "total": "Total" + }, + "peanut": { + "battery_charge": "Sisa Baterai", + "ups_load": "Beban UPS", + "ups_status": "Status UPS", + "online": "Online", + "on_battery": "Memakai Baterai", + "low_battery": "Baterai Lemah" + }, + "nextdns": { + "wait": "Mohon menunggu", + "no_devices": "Tidak ada Data Perangkat Diterima" + }, + "mikrotik": { + "cpuLoad": "Beban CPU", + "memoryUsed": "Memori Terpakai", + "uptime": "Waktu Aktif", + "numberOfLeases": "Leases" + }, + "xteve": { + "streams_all": "Semua Strim", + "streams_active": "Stream Berjalan", + "streams_xepg": "Channel XEPG" + }, + "opendtu": { + "yieldDay": "Hari ini", + "absolutePower": "Daya", + "relativePower": "% Daya", + "limit": "Batas" + }, + "opnsense": { + "cpu": "Beban CPU", + "memory": "Memori Aktif", + "wanUpload": "WAN Unggan", + "wanDownload": "WAN Unduh" + }, + "moonraker": { + "printer_state": "Status Printer", + "print_status": "Status Cetakan", + "print_progress": "Progres", + "layers": "Layer" + }, + "octoprint": { + "printer_state": "Status", + "temp_tool": "Suhu Alat", + "temp_bed": "Suhu Fondasi", + "job_completion": "Tugas Selesai" + }, + "cloudflared": { + "origin_ip": "Sumber IP", + "status": "Status" + }, + "pfsense": { + "load": "Beban Rata-rata", + "memory": "Penggunaan Memory", + "wanStatus": "Status WAN", + "up": "Hidup", + "down": "Mati", + "temp": "Suhu", + "disk": "Penggunaan Disk", + "wanIP": "IP WAN" + }, + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Tugas Gagal (24j)", + "cpu_usage": "CPU", + "memory_usage": "Memory" + }, + "immich": { + "users": "Pengguna", + "photos": "Foto", + "videos": "Video", + "storage": "Penyimpanan" + }, + "uptimekuma": { + "up": "Situs Hidup", + "down": "Situs Mati", + "uptime": "Waktu Aktif", + "incident": "Insiden", + "m": "m" + }, + "atsumeru": { + "series": "Seri", + "archives": "Arsip", + "chapters": "Bab", + "categories": "Kategori" + }, + "komga": { + "libraries": "Perpustakaan", + "series": "Seri", + "books": "Buku" + }, + "diskstation": { + "days": "Hari-hari", + "uptime": "Waktu Aktif", + "volumeAvailable": "Tersedia" + }, + "mylar": { + "series": "Seri", + "issues": "Isu", + "wanted": "Dicari" + }, + "photoprism": { + "albums": "Albums", + "photos": "Foto", + "videos": "Video", + "people": "Orang" + }, + "fileflows": { + "queue": "Antrian", + "processing": "Memproses", + "processed": "Terproses", + "time": "Waktu" + }, + "firefly": { + "networth": "Kekayaan Bersih", + "budget": "Anggaran" + }, + "grafana": { + "dashboards": "Dasbor", + "datasources": "Sumber Data", + "totalalerts": "Jumlah Peringatan", + "alertstriggered": "Peringatan Terpicu" + }, + "nextcloud": { + "cpuload": "Beban CPU", + "memoryusage": "Beban Memory", + "freespace": "Space Tersedia", + "activeusers": "Pengguna Aktif", + "numfiles": "File", + "numshares": "Item yang Dibagikan" + }, + "kopia": { + "status": "Status", + "size": "Ukuran", + "lastrun": "Terakhir Dijalankan", + "nextrun": "Akan Dijalankan Dalam", + "failed": "Gagal" + }, + "unmanic": { + "active_workers": "Pengguna Aktif", + "total_workers": "Pengguna Total", + "records_total": "Panjang Antrian" + }, + "pterodactyl": { + "servers": "Server", + "nodes": "Node" + }, + "prometheus": { + "targets_up": "Target Aktif", + "targets_down": "Target Nonaktif", + "targets_total": "Target Total" + }, + "gatus": { + "up": "Situs Hidup", + "down": "Situs Mati", + "uptime": "Waktu Aktif" + }, + "ghostfolio": { + "gross_percent_today": "Hari ini", + "gross_percent_1y": "Satu Tahun", + "gross_percent_max": "Sepanjang Masa" + }, + "audiobookshelf": { + "podcasts": "Podcast", + "books": "Buku", + "podcastsDuration": "Durasi", + "booksDuration": "Durasi" + }, + "homeassistant": { + "people_home": "Orang Di Rumah", + "lights_on": "Lampu Nyala", + "switches_on": "Sakelar Nyala" + }, + "whatsupdocker": { + "monitoring": "Pengawasan", + "updates": "Pembaruan" + }, + "calibreweb": { + "books": "Buku", + "authors": "Penulis", + "categories": "Kategori", + "series": "Seri" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Antrian", + "downloadBytesRemaining": "Sisa", + "downloadTotalBytes": "Ukuran", + "downloadSpeed": "Kecepatan" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Seri", + "totalFiles": "File" }, - "azurePipelines": { - "result": "Result", + "azuredevops": { + "result": "Hasil", "status": "Status", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "succeeded": "Berhasil", + "notStarted": "Belum Dimulai", + "failed": "Gagal", + "canceled": "Dibatalkan", + "inProgress": "Sedang Berlangsung", + "totalPrs": "PR Total", + "myPrs": "PR Saya", + "approved": "Tersetujui" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Nama", + "map": "Peta", + "currentPlayers": "Jumlah pemain", + "players": "Jumlah Pemain", + "maxPlayers": "Maksimum pemain", + "bots": "Bot", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Error", + "noRecent": "Tertinggal Versi", + "totalUsed": "Storage Terpakai" + }, + "mealie": { + "recipes": "Resep", + "users": "Pengguna", + "categories": "Kategori", + "tags": "Tag" + }, + "openmediavault": { + "downloading": "Mengunduh", + "total": "Total", + "running": "Berjalan", + "stopped": "Terhenti", + "passed": "Sukses", + "failed": "Gagal" + }, + "openwrt": { + "uptime": "Waktu Aktif", + "cpuLoad": "Beban rata2 CPU (5m)", + "up": "Hidup", + "down": "Mati", + "bytesTx": "Tersalur", + "bytesRx": "Diterima" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Waktu Aktif", + "lastDown": "Terakhir Terhenti", + "downDuration": "Jumlah Waktu Terhenti", + "sitesUp": "Situs Hidup", + "sitesDown": "Situs Mati", + "paused": "Pause", + "notyetchecked": "Belum Di Cek", + "up": "Hidup", + "seemsdown": "Sepertinya Mati", + "down": "Mati", + "unknown": "Tidak Diketahui" + }, + "calendar": { + "inCinemas": "Tersedia Di Bioskop", + "physicalRelease": "Rilis Fisik", + "digitalRelease": "Rilis Digital", + "noEventsToday": "Tidak ada acara untuk hari ini!", + "noEventsFound": "Tidak ada acara yang ditemukan" + }, + "romm": { + "platforms": "Platform", + "totalRoms": "Permainan", + "saves": "Saves", + "states": "Kondisi", + "screenshots": "Tangkapan Layar", + "totalfilesize": "Total Ukuran" + }, + "mailcow": { + "domains": "Jumlah Domain", + "mailboxes": "Kotak surat", + "mails": "Surat", + "storage": "Penyimpanan" + }, + "netdata": { + "warnings": "Peringatan", + "criticals": "Kritis" + }, + "plantit": { + "events": "Acara", + "plants": "Tanaman", + "photos": "Foto", + "species": "Spesies" + }, + "gitea": { + "notifications": "Notifikasi", + "issues": "Isu", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Adegan", + "scenesPlayed": "Adegan Dimainkan", + "playCount": "Total Dimainkan", + "playDuration": "Waktu Ditonton", + "sceneSize": "Ukuran Adegan", + "sceneDuration": "Durasi Adegan", + "images": "Gambar", + "imageSize": "Ukuran Gambar", + "galleries": "Galeri", + "performers": "Pemain", + "studios": "Studio", + "movies": "Film", + "tags": "Tag", + "oCount": "Jumlah O" + }, + "tandoor": { + "users": "Pengguna", + "recipes": "Resep", + "keywords": "Kata Kunci" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "Dengan Garansi", + "locations": "Lokasi", + "labels": "Label", + "users": "Pengguna", + "totalValue": "Total Nilai" + }, + "crowdsec": { + "alerts": "Peringatan", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Tersambung", + "enabled": "Aktif", + "disabled": "Nonaktif", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Diproksi", + "auth": "With Auth", + "outdated": "Usang", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Unduh", + "upload": "Unggah" + }, + "stocks": { + "stocks": "Saham", + "loading": "Memuat", + "open": "Buka - Pasar AS", + "closed": "Tutup - Pasar AS", + "invalidConfiguration": "Konfigurasi Invalid" + }, + "frigate": { + "cameras": "Kamera", + "uptime": "Waktu Aktif", + "version": "Versi" + }, + "linkwarden": { + "links": "Tautan", + "collections": "Koleksi", + "tags": "Tag" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informasi", + "warning": "Peringatan", + "average": "Rata-rata", + "high": "Tinggi", + "disaster": "Bencana" + }, + "lubelogger": { + "vehicle": "Kendaraan", + "vehicles": "Kendaraan", + "serviceRecords": "Catatan Servis", + "reminders": "Pengingat", + "nextReminder": "Pengingat Berikutnya", + "none": "Tidak ada" + }, + "vikunja": { + "projects": "Proyek Aktif", + "tasks7d": "Tugas Jatuh Tempo Minggu Ini", + "tasksOverdue": "Tugas Terlewat", + "tasksInProgress": "Tugas Berlangsung" + }, + "headscale": { + "name": "Nama", + "address": "Alamat", + "last_seen": "Terakhir terlihat", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Nama", + "systems": "Sistem", + "up": "Hidup", + "down": "Mati", + "paused": "Pause", + "pending": "Pending", + "status": "Status", + "updated": "Terbarui", + "cpu": "CPU", + "memory": "MEM", + "disk": "Diska", + "network": "NET" + }, + "argocd": { + "apps": "Apl", + "synced": "Tersinkron", + "outOfSync": "Tidak Sinkron", + "healthy": "Lancar", + "degraded": "Terdegradasi", + "progressing": "Progressing", + "missing": "Tidak Ditemukan", + "suspended": "Ditangguhkan" + }, + "spoolman": { + "loading": "Memuat" + }, + "gitlab": { + "groups": "Grup", + "issues": "Isu", + "merges": "Merge Requests", + "projects": "Proyek" + }, + "apcups": { + "status": "Status", + "load": "Beban", + "bcharge": "Sisa Baterai", + "timeleft": "Sisa Waktu" + }, + "hoarder": { + "bookmarks": "Markah", + "favorites": "Favorit", + "archived": "Diarsipkan", + "highlights": "Sorotan", + "lists": "Daftar", + "tags": "Tag" + }, + "slskd": { + "slskStatus": "Jaringan", + "connected": "Tersambung", + "disconnected": "Terputus", + "updateStatus": "Update", + "update_yes": "Tersedia", + "update_no": "Terbaru", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "File" } } diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 0e45b23f..4b0672f9 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -1,19 +1,101 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "g", + "hours": "o", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Tipo del Widget Mancante: {{type}}", + "api_error": "Errore API", + "information": "Informazioni", + "status": "Stato", + "url": "URL", + "raw_error": "Errore non processato", + "response_data": "Dati risposta" + }, + "weather": { + "current": "Posizione Attuale", + "allow": "Clicca per consentire", + "updating": "Aggiornamento in corso", + "wait": "Attendi per favore" + }, + "search": { + "placeholder": "Cerca…" + }, + "resources": { + "cpu": "CPU", + "mem": "MEM", + "total": "Totale", + "free": "Libero", + "used": "In utilizzo", + "load": "Carico", + "temp": "TEMP", + "max": "Max", + "uptime": "UP" + }, + "unifi": { + "users": "Utenti", + "uptime": "Tempo di attività", + "days": "Giorni", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispositivi", + "lan_devices": "Dispositivi LAN", + "wlan_devices": "Dispositivi WLAN", + "lan_users": "Utenti LAN", + "wlan_users": "Utenti WLAN", + "up": "UP", + "down": "DOWN", + "wait": "Attendi per favore", + "empty_data": "Stato del sottosistema sconosciuto" + }, "docker": { + "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "CPU", - "offline": "Offline", - "rx": "RX", + "running": "In esecuzione", + "offline": "Non in linea", "error": "Errore", "unknown": "Sconosciuto", - "running": "In esecuzione", + "healthy": "Sano", "starting": "In avvio", - "unhealthy": "Unhealthy", + "unhealthy": "Non sano", "not_found": "Non trovato", "exited": "Uscito", - "partial": "Parziale", - "healthy": "Healthy" + "partial": "Parziale" + }, + "ping": { + "error": "Errore", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Non disponibile" + }, + "siteMonitor": { + "http_status": "Stato HTTP", + "error": "Errore", + "response": "Risposta", + "down": "Down", + "up": "Up", + "not_available": "Non disponibile" }, "emby": { "playing": "In riproduzione", @@ -25,80 +107,166 @@ "episodes": "Episodi", "songs": "Canzoni" }, + "esphome": { + "offline": "Non in linea", + "offline_alt": "Non in linea", + "online": "Online", + "total": "Totale", + "unknown": "Sconosciuto" + }, + "evcc": { + "pv_power": "Produzione", + "battery_soc": "Batteria", + "grid_power": "Griglia", + "home_power": "Consumo", + "charge_power": "Caricatore", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "In download", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Iscrizioni", + "unread": "Non letto" + }, + "fritzbox": { + "connectionStatus": "Stato", + "connectionStatusUnconfigured": "Non configurato", + "connectionStatusConnecting": "Connessione in corso", + "connectionStatusAuthenticating": "In fase di autenticazione", + "connectionStatusPendingDisconnect": "In attesa di disconnessione", + "connectionStatusDisconnecting": "Disconnessione in corso", + "connectionStatusDisconnected": "Disconnesso", + "connectionStatusConnected": "Connesso", + "uptime": "Tempo di attività", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Ricevuti", + "sent": "Inviati", + "externalIPAddress": "IP Esterno", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstream", + "requests": "Richieste correnti", + "requests_failed": "Richieste fallite" + }, + "changedetectionio": { + "totalObserved": "Totale Osservati", + "diffsDetected": "Differenze Rilevate" + }, + "channelsdvrserver": { + "shows": "Spettacoli", + "recordings": "Registrazioni", + "scheduled": "Programmati", + "passes": "Tessere" + }, "tautulli": { "playing": "In riproduzione", "transcoding": "Transcodifica", "bitrate": "Bitrate", "no_active": "Nessuno Stream Attivo", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Controllare la connessione a Plex" }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "omada": { + "connectedAp": "AP Connessi", + "activeUser": "Dispositivi attivi", + "alerts": "Allarmi", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Switch connessi" }, - "portainer": { - "running": "In esecuzione", - "stopped": "Fermati", - "total": "Totali" + "nzbget": { + "rate": "Rapporto", + "remaining": "Rimanente", + "downloaded": "Scaricato" }, - "traefik": { - "routers": "Router", - "services": "Servizi", - "middleware": "Middleware" + "plex": { + "streams": "Trasmissioni attive", + "albums": "Album", + "movies": "Film", + "tv": "Programmi televisivi" }, - "widget": { - "missing_type": "Tipo del Widget Mancante: {{type}}", - "api_error": "Errore API", - "status": "Stato", - "url": "URL", - "information": "Informazione", - "raw_error": "Raw Error", - "response_data": "Dati risposta" - }, - "search": { - "placeholder": "Cerca…" - }, - "resources": { - "total": "Totale", - "free": "Libero", - "used": "In utilizzo", - "load": "Carico", - "cpu": "CPU", - "mem": "MEM", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "sabnzbd": { + "rate": "Rapporto", + "queue": "Coda", + "timeleft": "Tempo Rimanente" }, "rutorrent": { "active": "Attivo", "upload": "Upload", "download": "Download" }, + "transmission": { + "download": "Download", + "upload": "Upload", + "leech": "In download", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "In download", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "Utilizzo CPU", + "memUsage": "Utilizzo MEM", + "systemTempC": "Temp sistema", + "poolUsage": "Utilizzo Pool", + "volumeUsage": "Utilizzo Volume", + "invalid": "Invalido" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "In download", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "In download", + "seed": "Seed" + }, "sonarr": { - "series": "Serie", "wanted": "Richiesti", "queued": "In coda", + "series": "Serie", "queue": "Coda", "unknown": "Sconosciuto" }, "radarr": { "wanted": "Richiesti", + "missing": "Mancanti", "queued": "In coda", "movies": "Film", - "missing": "Mancanti", "queue": "Coda", "unknown": "Sconosciuto" }, + "lidarr": { + "wanted": "Richiesti", + "queued": "In coda", + "artists": "Artisti" + }, "readarr": { "wanted": "Richiesti", "queued": "In coda", "books": "Libri" }, + "bazarr": { + "missingEpisodes": "Episodi Mancanti", + "missingMovies": "Film Mancanti" + }, "ombi": { "pending": "In attesa", "approved": "Approvati", @@ -109,44 +277,102 @@ "approved": "Approvati", "available": "Disponibili" }, + "overseerr": { + "pending": "In attesa", + "processing": "In lavorazione", + "approved": "Approvati", + "available": "Disponibili" + }, + "netalertx": { + "total": "Totale", + "connected": "Connesso", + "new_devices": "Nuovi Dispositivi", + "down_alerts": "Avvisi di Disservizio" + }, "pihole": { "queries": "Richieste", "blocked": "Bloccati", - "gravity": "Severità", - "blocked_percent": "Bloccato %" + "blocked_percent": "Bloccato %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Richieste", + "blocked": "Bloccati", + "filtered": "Filtrati", + "latency": "Latenza" + }, + "speedtest": { + "upload": "Upload", + "download": "Download", + "ping": "Ping" + }, + "portainer": { + "running": "In esecuzione", + "stopped": "Fermati", + "total": "Totale" + }, + "suwayomi": { + "download": "Scaricato", + "nondownload": "Non-Downloaded", + "read": "Letti", + "unread": "Non letto", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Indirizzo", + "expires": "Scade", + "never": "Mai", + "last_seen": "Ultima visualizzazione", + "now": "Adesso", + "years": "{{number}}a", + "weeks": "{{number}}st", + "days": "{{number}}g", + "hours": "{{number}}o", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Fa" + }, + "technitium": { + "totalQueries": "Richieste", + "totalNoError": "Successo", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Bloccati", + "totalDropped": "Dropped", + "totalClients": "Client" + }, + "tdarr": { + "queue": "Coda", + "processed": "Elaborati", + "errored": "In errore", + "saved": "Salvati" + }, + "traefik": { + "routers": "Router", + "services": "Servizi", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "Nessuno Stream Attivo", + "please_wait": "Attendere prego" }, "npm": { - "enabled": "Attivi", + "enabled": "Abilitato", "disabled": "Disabilitati", - "total": "Totali" - }, - "weather": { - "current": "Posizione Attuale", - "allow": "Clicca per consentire", - "updating": "Aggiornamento in corso", - "wait": "Attendi per favore" - }, - "overseerr": { - "pending": "In attesa", - "approved": "Approvati", - "available": "Disponibili", - "processing": "In lavorazione" - }, - "sabnzbd": { - "rate": "Rapporto", - "queue": "Coda", - "timeleft": "Tempo Rimanente" - }, - "nzbget": { - "rate": "Rapporto", - "remaining": "Rimanente", - "downloaded": "Scaricato" + "total": "Totale" }, "coinmarketcap": { "configure": "Configurare una o più criptomonete da seguire", + "1hour": "1 Ora", "1day": "1 Giorno", "7days": "7 Giorni", - "1hour": "1 Ora", "30days": "30 Giorni" }, "gotify": { @@ -156,52 +382,41 @@ }, "prowlarr": { "enableIndexers": "Indicizzatori", - "numberOfGrabs": "Grabs", - "numberOfQueries": "Interrogazioni", + "numberOfGrabs": "Grab", + "numberOfQueries": "Richieste", "numberOfFailGrabs": "Grabs Falliti", "numberOfFailQueries": "Queries Fallite" }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "jackett": { "configured": "Configurato", - "errored": "Errore" - }, - "bazarr": { - "missingEpisodes": "Episodi Mancanti", - "missingMovies": "Film Mancanti" - }, - "lidarr": { - "wanted": "Richiesto", - "queued": "In coda", - "artists": "Artisti" - }, - "adguard": { - "queries": "Interrogazioni", - "blocked": "Bloccati", - "filtered": "Filtrati", - "latency": "Latenza" - }, - "qbittorrent": { - "download": "Download", - "leech": "Leech", - "upload": "Upload", - "seed": "Seed" - }, - "mastodon": { - "user_count": "Utenti", - "status_count": "Posts", - "domain_count": "Domini" + "errored": "In errore" }, "strelaysrv": { "numActiveSessions": "Sessioni", "numConnections": "Connessioni", "dataRelayed": "Ritrasmessi", - "transferRate": "Velocità" + "transferRate": "Rapporto" + }, + "mastodon": { + "user_count": "Utenti", + "status_count": "Messaggi", + "domain_count": "Domini" + }, + "medusa": { + "wanted": "Richiesti", + "queued": "In coda", + "series": "Serie" + }, + "minecraft": { + "players": "Giocatori", + "version": "Versione", + "status": "Stato", + "up": "Online", + "down": "Non in linea" + }, + "miniflux": { + "read": "Letti", + "unread": "Non letto" }, "authentik": { "users": "Utenti", @@ -214,54 +429,42 @@ "lxc": "LXC", "vms": "Macchine Virtuali" }, - "unifi": { - "users": "Utenti", - "uptime": "Uptime di Sistema", - "days": "Giorni", - "wan": "WAN", - "lan_users": "Utenti LAN", - "wait": "Attendere prego", - "wlan_users": "Utenti WLAN", - "up": "UP", - "down": "DOWN", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Dispositivi", - "lan_devices": "Dispositivi LAN", - "wlan_devices": "Dispositivi WLAN", - "empty_data": "Stato del sottosistema sconosciuto" - }, - "plex": { - "streams": "Trasmissioni attive", - "movies": "Film", - "tv": "Programma televisivo", - "albums": "Album" - }, "glances": { "cpu": "CPU", - "wait": "Attendere prego", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", "load": "Carico", + "wait": "Attendi per favore", + "temp": "TEMP", + "_temp": "Temp.", "warn": "Avviso", + "uptime": "UP", "total": "Totale", "free": "Libero", - "used": "Usato" + "used": "In utilizzo", + "days": "g", + "hours": "o", + "crit": "Critico", + "read": "Letti", + "write": "Scrittura", + "gpu": "GPU", + "mem": "Mem.", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Totale Osservato", - "diffsDetected": "Differenze Rilevate" + "quicklaunch": { + "bookmark": "Segnalibro", + "service": "Servizio", + "search": "Cerca", + "custom": "Personalizzato", + "visit": "Visita", + "url": "URL", + "searchsuggestion": "Suggerimenti" }, "wmo": { - "65-day": "Pioggia Intensa", - "2-night": "Parzialmente Nuvoloso", "0-day": "Soleggiato", "0-night": "Sereno", "1-day": "Prevalentemente Soleggiato", "1-night": "Prevalentemente Sereno", "2-day": "Parzialmente Nuvoloso", + "2-night": "Parzialmente Nuvoloso", "3-day": "Nuvoloso", "3-night": "Nuvoloso", "45-day": "Nebbioso", @@ -282,6 +485,7 @@ "61-night": "Pioggia Leggera", "63-day": "Pioggia", "63-night": "Pioggia", + "65-day": "Pioggia Intensa", "65-night": "Pioggia Intensa", "66-day": "Grandine", "66-night": "Grandine", @@ -312,36 +516,38 @@ "99-day": "Temporale con grandine", "99-night": "Temporale con grandine" }, - "quicklaunch": { - "bookmark": "Segnalibro", - "service": "Servizio", - "search": "Cerca", - "custom": "Personalizzato", - "visit": "Visita", - "url": "URL" - }, "homebridge": { "available_update": "Sistema", "updates": "Aggiornamenti", "update_available": "Aggiornamento Disponibile", "up_to_date": "Aggiornato", - "child_bridges": "Child Bridges", + "child_bridges": "Bridge Figli", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", "pending": "In attesa", "down": "Down" }, - "autobrr": { - "approvedPushes": "Approvato", - "rejectedPushes": "Rifiutato", - "filters": "Filtri", - "indexers": "Indicizzatori" + "healthchecks": { + "new": "Nuovo", + "up": "Up", + "grace": "Periodo di Tolleranza", + "down": "Down", + "paused": "In Pausa", + "status": "Stato", + "last_ping": "Ultimo Ping", + "never": "Ancora nessun ping" }, "watchtower": { "containers_scanned": "Scansionato", "containers_updated": "Aggiornato", "containers_failed": "Fallito" }, + "autobrr": { + "approvedPushes": "Approvati", + "rejectedPushes": "Rifiutato", + "filters": "Filtri", + "indexers": "Indicizzatori" + }, "tubearchivist": { "downloads": "Coda", "videos": "Video", @@ -351,12 +557,7 @@ "truenas": { "load": "Carico di Sistema", "uptime": "Tempo di attività", - "alerts": "Avvisi", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Nessun Sistema Attivo", - "please_wait": "Attendere prego" + "alerts": "Allarmi" }, "pyload": { "speed": "Velocità", @@ -367,68 +568,41 @@ "gluetun": { "public_ip": "IP pubblico", "region": "Località", - "country": "Stato" + "country": "Paese" }, "hdhomerun": { "channels": "Canali", - "hd": "HD" - }, - "ping": { - "error": "Errore", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Canale", + "channelNetwork": "Rete", + "signalStrength": "Intensità", + "signalQuality": "Qualità", + "symbolQuality": "Qualità", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passati", - "failed": "Falliti", + "failed": "Fallito", "unknown": "Sconosciuto" }, "paperlessngx": { "inbox": "In arrivo", - "total": "Totali" + "total": "Totale" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "In coda", - "processed": "Elaborati", - "errored": "Errori", - "saved": "Salvati" - }, - "miniflux": { - "unread": "Non letti", - "read": "Letti" + "peanut": { + "battery_charge": "Carica Batteria", + "ups_load": "Carico UPS", + "ups_status": "Stato UPS", + "online": "Online", + "on_battery": "Alimentazione a batteria", + "low_battery": "Batteria Quasi Scarica" }, "nextdns": { - "wait": "Attendi", + "wait": "Attendere prego", "no_devices": "Nessun dato del dispositivo ricevuto" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "AP Connessi", - "activeUser": "Dispositivi attivi", - "alerts": "Allarmi", - "connectedGateway": "Gateway connessi", - "connectedSwitches": "Switch connessi" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "Carico della CPU", "memoryUsed": "Memoria Utilizzata", @@ -437,9 +611,15 @@ }, "xteve": { "streams_all": "Tutti gli stream", - "streams_active": "Stream attivi", + "streams_active": "Trasmissioni attive", "streams_xepg": "Canali XEPG" }, + "opendtu": { + "yieldDay": "Oggi", + "absolutePower": "Potenza", + "relativePower": "Potenza %", + "limit": "Limite" + }, "opnsense": { "cpu": "Carico della CPU", "memory": "Memoria in uso", @@ -452,23 +632,28 @@ "print_progress": "Avanzamento", "layers": "Livelli" }, - "medusa": { - "wanted": "Richiesto", - "queued": "In coda", - "series": "Serie" - }, "octoprint": { "printer_state": "Stato", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", + "temp_tool": "Temp. utensile", + "temp_bed": "Temp. letto", "job_completion": "Completamento" }, "cloudflared": { "origin_ip": "IP sorgente", "status": "Stato" }, + "pfsense": { + "load": "Carico Medio", + "memory": "Uso Memoria", + "wanStatus": "Stato WAN", + "up": "Up", + "down": "Down", + "temp": "Temp.", + "disk": "Uso Disco", + "wanIP": "IP WAN" + }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", + "datastore_usage": "Archivio dati", "failed_tasks_24h": "Attività Non Riuscite 24h", "cpu_usage": "CPU", "memory_usage": "Memoria" @@ -477,24 +662,35 @@ "users": "Utenti", "photos": "Foto", "videos": "Video", - "storage": "Memoria" + "storage": "Archiviazione" }, "uptimekuma": { "up": "Siti On", "down": "Siti Down", - "uptime": "Uptime", + "uptime": "Tempo di attività", "incident": "Incidente", "m": "m" }, + "atsumeru": { + "series": "Serie", + "archives": "Archivi", + "chapters": "Capitoli", + "categories": "Categorie" + }, "komga": { "libraries": "Librerie", "series": "Serie", "books": "Libri" }, + "diskstation": { + "days": "Giorni", + "uptime": "Tempo di attività", + "volumeAvailable": "Disponibili" + }, "mylar": { "series": "Serie", "issues": "Problemi", - "wanted": "Richiesto" + "wanted": "Richiesti" }, "photoprism": { "albums": "Album", @@ -502,26 +698,25 @@ "videos": "Video", "people": "Persone" }, - "diskstation": { - "days": "Giorni", - "uptime": "Uptime", - "volumeAvailable": "Disponibile" - }, "fileflows": { "queue": "Coda", - "processing": "In Lavorazione", - "processed": "Elaborato", + "processing": "In lavorazione", + "processed": "Elaborati", "time": "Tempo" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { - "dashboards": "Dashboards", + "dashboards": "Dashboard", "datasources": "Origine dei Dati", "totalalerts": "Avvisi Totali", "alertstriggered": "Avvisi Attivati" }, "nextcloud": { - "memoryusage": "Uso della Memoria", "cpuload": "Carico della CPU", + "memoryusage": "Uso della Memoria", "freespace": "Spazio Libero", "activeusers": "Utenti Attivi", "numfiles": "File", @@ -539,31 +734,19 @@ "total_workers": "Lavoratori Totali", "records_total": "Lunghezza della Coda" }, - "healthchecks": { - "new": "Nuovo", - "up": "Online", - "grace": "Periodo di Tolleranza", - "down": "Offline", - "paused": "In Pausa", - "status": "Stato", - "last_ping": "Ultimo Ping", - "never": "Ancora nessun ping" - }, "pterodactyl": { "servers": "Server", "nodes": "Nodi" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", + "targets_up": "Target Attivi", + "targets_down": "Target Non Attivi", "targets_total": "Targets Totali" }, - "minecraft": { - "players": "Giocatori", - "version": "Versione", - "status": "Stato", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Siti On", + "down": "Siti Down", + "uptime": "Tempo di attività" }, "ghostfolio": { "gross_percent_today": "Oggi", @@ -581,89 +764,283 @@ "lights_on": "Luci Accese", "switches_on": "Switch Accesi" }, - "freshrss": { - "subscriptions": "Iscrizioni", - "unread": "Non letto" - }, - "channelsdvrserver": { - "shows": "Spettacoli", - "recordings": "Registrazioni", - "scheduled": "Programmati", - "passes": "Tessere" - }, "whatsupdocker": { "monitoring": "Monitoraggio", "updates": "Aggiornamenti" }, - "tailscale": { - "never": "Mai", - "address": "Indirizzo", - "expires": "Scade", - "last_seen": "Ultima visualizzazione", - "now": "Adesso", - "years": "{{number}}y", - "weeks": "{{number}}w", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Fa", - "days": "{{number}}d" - }, - "qnap": { - "cpuUsage": "Utilizzo CPU", - "memUsage": "Utilizzo MEM", - "systemTempC": "Temp sistema", - "poolUsage": "Utilizzo Pool", - "volumeUsage": "Utilizzo Volume", - "invalid": "Invalido" - }, - "pfsense": { - "load": "Carico Medio", - "memory": "Uso Memoria", - "wanStatus": "Stato WAN", - "up": "Up", - "down": "Down", - "temp": "Temperatura", - "disk": "Uso Disco", - "wanIP": "IP WAN" - }, - "caddy": { - "upstreams": "Upstream", - "requests": "Richieste correnti", - "requests_failed": "Richieste fallite" - }, - "evcc": { - "pv_power": "Produzione", - "battery_soc": "Batteria", - "grid_power": "Griglia", - "home_power": "Consumo", - "charge_power": "Caricatore", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Totali", - "connected": "Connesso", - "new_devices": "Nuovi Dispositivi", - "down_alerts": "Avvisi di Disservizio" + "calibreweb": { + "books": "Libri", + "authors": "Autori", + "categories": "Categorie", + "series": "Serie" }, "jdownloader": { "downloadCount": "Coda", - "downloadSpeed": "Velocità Download", - "downloadBytesRemaining": "Residuo", - "downloadTotalBytes": "Dimensione" + "downloadBytesRemaining": "Rimanente", + "downloadTotalBytes": "Dimensione", + "downloadSpeed": "Velocità" }, "kavita": { "seriesCount": "Serie", "totalFiles": "File" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Risultato", + "status": "Stato", + "buildId": "ID Build", + "succeeded": "Riuscito", + "notStarted": "Non Avviato", + "failed": "Fallito", + "canceled": "Cancellato", + "inProgress": "In corso", + "totalPrs": "PR Totali", + "myPrs": "Miei PR", + "approved": "Approvati" + }, + "gamedig": { + "status": "Stato", + "online": "Online", + "offline": "Non in linea", + "name": "Nome", + "map": "Mappa", + "currentPlayers": "Giocatori attuali", + "players": "Giocatori", + "maxPlayers": "Giocatori max", + "bots": "Bot", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errori", + "noRecent": "Obsoleto", + "totalUsed": "Spazio usato" + }, + "mealie": { + "recipes": "Ricette", + "users": "Utenti", + "categories": "Categorie", + "tags": "Tag" + }, + "openmediavault": { + "downloading": "Download in corso", + "total": "Totale", + "running": "In esecuzione", + "stopped": "Fermati", + "passed": "Passati", + "failed": "Fallito" + }, + "openwrt": { + "uptime": "Tempo di attività", + "cpuLoad": "Media Carico Cpu (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Trasmessi", + "bytesRx": "Ricevuti" + }, + "uptimerobot": { + "status": "Stato", + "uptime": "Tempo di attività", + "lastDown": "Ultimo periodo di inattività", + "downDuration": "Durata inattività", + "sitesUp": "Siti On", + "sitesDown": "Siti Down", + "paused": "In Pausa", + "notyetchecked": "Non ancora controllati", + "up": "Up", + "seemsdown": "Sembrano non attivi", + "down": "Down", + "unknown": "Sconosciuto" + }, + "calendar": { + "inCinemas": "Al cinema", + "physicalRelease": "Release fisici", + "digitalRelease": "Versione digitale", + "noEventsToday": "Nessun evento per oggi!", + "noEventsFound": "Nessun evento trovato" + }, + "romm": { + "platforms": "Piattaforme", + "totalRoms": "Giochi", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domini", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Archiviazione" + }, + "netdata": { + "warnings": "Avvisi", + "criticals": "Criticals" + }, + "plantit": { + "events": "Eventi", + "plants": "Plants", + "photos": "Foto", + "species": "Specie" + }, + "gitea": { + "notifications": "Notifiche", + "issues": "Problemi", + "pulls": "Richieste di Pull", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scene", + "scenesPlayed": "Scene Riprodotte", + "playCount": "Totale Riproduzioni", + "playDuration": "Tempo Guardato", + "sceneSize": "Dimensione Delle Scene", + "sceneDuration": "Durata Delle Scene", + "images": "Immagini", + "imageSize": "Dimensioni immagine", + "galleries": "Gallerie", + "performers": "Esecutori", + "studios": "Studi", + "movies": "Film", + "tags": "Tag", + "oCount": "O Count" + }, + "tandoor": { + "users": "Utenti", + "recipes": "Ricette", + "keywords": "Parole chiave" + }, + "homebox": { + "items": "Elementi", + "totalWithWarranty": "Con Garanzia", + "locations": "Luoghi", + "labels": "Etichette", + "users": "Utenti", + "totalValue": "Valore totale" + }, + "crowdsec": { + "alerts": "Allarmi", + "bans": "Bannati" + }, + "wgeasy": { + "connected": "Connesso", + "enabled": "Abilitato", + "disabled": "Disabilitati", + "total": "Totale" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Obsoleto", + "banned": "Bannato" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Caricamento", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Tempo di attività", + "version": "Versione" + }, + "linkwarden": { + "links": "Collegamenti", + "collections": "Raccolte", + "tags": "Tag" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informazioni", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Veicolo", + "vehicles": "Veicoli", + "serviceRecords": "Service Records", + "reminders": "Promemoria", + "nextReminder": "Promemoria Seguente", + "none": "Nessuno" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Nome", + "address": "Indirizzo", + "last_seen": "Ultima visualizzazione", + "status": "Stato", + "online": "Online", + "offline": "Non in linea" + }, + "beszel": { + "name": "Nome", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "In Pausa", + "pending": "In attesa", + "status": "Stato", + "updated": "Aggiornato", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sano", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Mancanti", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Caricamento" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problemi", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stato", + "load": "Carico", + "bcharge": "Carica Batteria", + "timeleft": "Tempo Rimanente" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tag" + }, + "slskd": { + "slskStatus": "Rete", + "connected": "Connesso", + "disconnected": "Disconnesso", + "updateStatus": "Update", + "update_yes": "Disponibili", + "update_no": "Aggiornato", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "File" } } diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 5a0eccee..58869e84 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -1,51 +1,29 @@ { - "navidrome": { - "nothing_streaming": "アクティブストリームなし", - "please_wait": "お待ちください" - }, - "npm": { - "total": "合計", - "enabled": "有効", - "disabled": "無効" - }, - "strelaysrv": { - "numActiveSessions": "セッション", - "numConnections": "コネクション", - "dataRelayed": "Relayed", - "transferRate": "レート" - }, - "glances": { - "cpu": "CPU", - "wait": "お待ちください", - "temp": "温度", - "uptime": "UP", + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "月", "days": "日", "hours": "時間", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "autobrr": { - "filters": "フィルター", - "indexers": "Indexers", - "approvedPushes": "承認済", - "rejectedPushes": "却下" - }, - "gluetun": { - "region": "地域", - "country": "国", - "public_ip": "パブリックIP" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" + "minutes": "分", + "seconds": "秒" }, "widget": { + "missing_type": "見つからないウィジェットタイプ: {{type}}", "api_error": "APIエラー", "information": "情報", - "missing_type": "見つからないウィジェットタイプ: {{type}}", "status": "状態", "url": "URL", "raw_error": "生のエラー", @@ -62,55 +40,62 @@ }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "合計", - "free": "Free", + "free": "空き", "used": "使用", "load": "ロード", - "mem": "MEM", "temp": "温度", - "max": "Max", - "uptime": "UP", - "months": "月", - "days": "日", - "hours": "時間", - "minutes": "分" + "max": "最大", + "uptime": "UP" }, "unifi": { "users": "ユーザ", - "uptime": "システム・アップタイム", + "uptime": "稼働時間", "days": "日", "wan": "WAN", "lan": "LAN", - "wlan": "WLAN", + "wlan": "Wi-Fi", "devices": "デバイス", "lan_devices": "LAN デバイス", "wlan_devices": "WLAN デバイス", "lan_users": "LAN ユーザ", "wlan_users": "WLAN ユーザ", "up": "UP", - "down": "DOWN", + "down": "下へ", "wait": "お待ちください", - "empty_data": "サブシステム状態・不明" + "empty_data": "サブシステムの状態は不明" }, "docker": { - "rx": "RX", - "tx": "TX", + "rx": "受信済み", + "tx": "送信済み", "mem": "MEM", "cpu": "CPU", + "running": "起動中", "offline": "オフライン", "error": "エラー", "unknown": "不明", - "running": "起動中", + "healthy": "正常", "starting": "起動中", "unhealthy": "非健全", "not_found": "不明", - "exited": "終了", - "partial": "部分的", - "healthy": "健全" + "exited": "停止しました", + "partial": "部分的" }, "ping": { "error": "エラー", - "ping": "Ping" + "ping": "Ping", + "down": "下へ", + "up": "稼働", + "not_available": "利用できません。" + }, + "siteMonitor": { + "http_status": "HTTP ステータス", + "error": "エラー", + "response": "応答", + "down": "下へ", + "up": "稼働", + "not_available": "利用できません。" }, "emby": { "playing": "再生中", @@ -122,28 +107,78 @@ "episodes": "エピソード", "songs": "曲" }, + "esphome": { + "offline": "オフライン", + "offline_alt": "オフライン", + "online": "オンライン", + "total": "合計", + "unknown": "不明" + }, + "evcc": { + "pv_power": "発電量", + "battery_soc": "バッテリー", + "grid_power": "グリッド", + "home_power": "消費", + "charge_power": "チャージャー", + "kilowatt": "kW" + }, "flood": { "download": "ダウンロード", "upload": "アップロード", - "leech": "Leech", - "seed": "Seed" + "leech": "リーチ", + "seed": "シード" + }, + "freshrss": { + "subscriptions": "購読", + "unread": "未読" + }, + "fritzbox": { + "connectionStatus": "状態", + "connectionStatusUnconfigured": "未設定", + "connectionStatusConnecting": "接続中", + "connectionStatusAuthenticating": "認証中", + "connectionStatusPendingDisconnect": "接続を切断する", + "connectionStatusDisconnecting": "接続を切断中", + "connectionStatusDisconnected": "切断されました", + "connectionStatusConnected": "接続済", + "uptime": "稼働時間", + "maxDown": "最大ダウン", + "maxUp": "最大アップ", + "down": "下へ", + "up": "稼働", + "received": "受信済み", + "sent": "送信済み", + "externalIPAddress": "退出ID", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "アップストリーム", + "requests": "現在のリクエスト", + "requests_failed": "失敗したリクエスト" }, "changedetectionio": { "totalObserved": "全観測数", "diffsDetected": "変更数" }, + "channelsdvrserver": { + "shows": "表示", + "recordings": "レコーディング", + "scheduled": "予定済", + "passes": "パス" + }, "tautulli": { "playing": "再生中", "transcoding": "変換中", "bitrate": "ビットレート", - "no_active": "アクティブストリームなし", - "plex_connection_error": "Check Plex Connection" + "no_active": "アクティブ・ストリーム無し", + "plex_connection_error": "Plex接続の確認" }, "omada": { "connectedAp": "接続されたAP", "activeUser": "アクティブデバイス", "alerts": "アラート", - "connectedGateway": "接続されたゲートウェイ", + "connectedGateways": "Connected gateways", "connectedSwitches": "接続スイッチ" }, "nzbget": { @@ -153,9 +188,9 @@ }, "plex": { "streams": "アクティブストリーム", + "albums": "アルバム", "movies": "映画", - "tv": "テレビ番組", - "albums": "アルバム" + "tv": "テレビ番組" }, "sabnzbd": { "rate": "速度", @@ -170,46 +205,58 @@ "transmission": { "download": "ダウンロード", "upload": "アップロード", - "leech": "Leech", - "seed": "Seed" + "leech": "リーチ", + "seed": "シード" }, "qbittorrent": { "download": "ダウンロード", "upload": "アップロード", - "leech": "Leech", - "seed": "Seed" + "leech": "リーチ", + "seed": "シード" + }, + "qnap": { + "cpuUsage": "CPU使用量", + "memUsage": "MEM使用量", + "systemTempC": "システム温度", + "poolUsage": "プール使用量", + "volumeUsage": "ボリューム使用量", + "invalid": "無効" }, "deluge": { "download": "ダウンロード", "upload": "アップロード", - "leech": "Leech", - "seed": "Seed" + "leech": "リーチ", + "seed": "シード" + }, + "develancacheui": { + "cachehitbytes": "キャッシュ・ヒットバイト", + "cachemissbytes": "キャッシュミスバイト" }, "downloadstation": { "download": "ダウンロード", "upload": "アップロード", - "leech": "Leech", - "seed": "Seed" + "leech": "リーチ", + "seed": "シード" }, "sonarr": { "wanted": "募集中", "queued": "待機中", "series": "シリーズ", - "queue": "Queue", - "unknown": "Unknown" + "queue": "キュー", + "unknown": "不明" }, "radarr": { "wanted": "募集中", "missing": "不明", - "queued": "キュー", + "queued": "待機中", "movies": "映画", - "queue": "Queue", - "unknown": "Unknown" + "queue": "キュー", + "unknown": "不明" }, "lidarr": { "wanted": "募集中", - "queued": "キュー", - "artists": "Artists" + "queued": "待機中", + "artists": "アーティスト" }, "readarr": { "wanted": "募集中", @@ -218,7 +265,7 @@ }, "bazarr": { "missingEpisodes": "欠番エピソード", - "missingMovies": "不明・映画" + "missingMovies": "動画が見つかりません" }, "ombi": { "pending": "保留中", @@ -236,11 +283,17 @@ "approved": "承認済", "available": "利用可" }, + "netalertx": { + "total": "合計", + "connected": "接続済", + "new_devices": "新規デバイス", + "down_alerts": "ダウンアラート" + }, "pihole": { "queries": "クエリ", "blocked": "ブロック中", - "gravity": "グラビティ", - "blocked_percent": "ブロック %" + "blocked_percent": "ブロック %", + "gravity": "グラビティ" }, "adguard": { "queries": "クエリ", @@ -258,6 +311,43 @@ "stopped": "停止中", "total": "合計" }, + "suwayomi": { + "download": "ダウンロード", + "nondownload": "Non-Downloaded", + "read": "既読", + "unread": "未読", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "アドレス", + "expires": "失効", + "never": "なし", + "last_seen": "最終日時", + "now": "現在", + "years": "{{number}}年", + "weeks": "{{number}}月", + "days": "{{number}}日", + "hours": "{{number}}時間", + "minutes": "{{number}}分", + "seconds": "{{number}}秒", + "ago": "{{value}} 前" + }, + "technitium": { + "totalQueries": "クエリ", + "totalNoError": "成功", + "totalServerFailure": "失敗", + "totalNxDomain": "NXドメイン", + "totalRefused": "拒否", + "totalAuthoritative": "正式", + "totalRecursive": "再帰的", + "totalCached": "キャッシュ済み", + "totalBlocked": "ブロック中", + "totalDropped": "ドロップ済み", + "totalClients": "クライアント" + }, "tdarr": { "queue": "キュー", "processed": "処理済み", @@ -269,6 +359,15 @@ "services": "サービス", "middleware": "ミドルウェア" }, + "navidrome": { + "nothing_streaming": "アクティブ・ストリーム無し", + "please_wait": "お待ちください" + }, + "npm": { + "enabled": "有効", + "disabled": "無効", + "total": "合計" + }, "coinmarketcap": { "configure": "1つ以上の暗号通貨を設定して追跡", "1hour": "1時間", @@ -282,27 +381,45 @@ "messages": "メッセージ" }, "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", + "enableIndexers": "インデックス", + "numberOfGrabs": "Grab", "numberOfQueries": "クエリ", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "numberOfFailGrabs": "失敗したグラブ", + "numberOfFailQueries": "失敗クエリー" }, "jackett": { "configured": "設定済", "errored": "エラー" }, + "strelaysrv": { + "numActiveSessions": "セッション", + "numConnections": "コネクション", + "dataRelayed": "中継", + "transferRate": "速度" + }, "mastodon": { - "user_count": "ユーザー", + "user_count": "ユーザ", "status_count": "ポスト", "domain_count": "ドメイン" }, + "medusa": { + "wanted": "募集中", + "queued": "待機中", + "series": "シリーズ" + }, + "minecraft": { + "players": "プレイヤー", + "version": "バージョン", + "status": "状態", + "up": "オンライン", + "down": "オフライン" + }, "miniflux": { - "read": "Read", - "unread": "Unread" + "read": "既読", + "unread": "未読" }, "authentik": { - "users": "ユーザー", + "users": "ユーザ", "loginsLast24H": "ログイン (24時間)", "failedLoginsLast24H": "ログイン失敗(24時間)" }, @@ -312,57 +429,78 @@ "lxc": "LXC", "vms": "VM" }, + "glances": { + "cpu": "CPU", + "load": "ロード", + "wait": "お待ちください", + "temp": "温度", + "_temp": "温度", + "warn": "警告", + "uptime": "UP", + "total": "合計", + "free": "空き", + "used": "使用", + "days": "日", + "hours": "時間", + "crit": "クリティカル", + "read": "既読", + "write": "書き込み", + "gpu": "GPU", + "mem": "メモリ", + "swap": "スワップ" + }, "quicklaunch": { "bookmark": "ブックマーク", "service": "サービス", "search": "検索", "custom": "カスタム", "visit": "訪問", - "url": "URL" + "url": "URL", + "searchsuggestion": "提案" }, "wmo": { "0-day": "晴れ", - "1-day": "ほぼ晴れ", "0-night": "晴れ", - "1-night": "ほぼ晴れ", - "2-day": "一時くもり", - "2-night": "一部くもり", - "3-day": "くもり", - "3-night": "くもり", + "1-day": "晴れ時々曇り", + "1-night": "晴れ時々曇り", + "2-day": "曇り時々晴れ", + "2-night": "曇り時々晴れ", + "3-day": "曇り", + "3-night": "曇り", "45-day": "霧", "45-night": "霧", "48-day": "霧", "48-night": "霧", "51-day": "霧雨", "51-night": "霧雨", - "53-day": "霧雨", - "53-night": "霧雨", + "53-day": "小雨", + "53-night": "小雨", "55-day": "霧雨", "55-night": "霧雨", - "56-day": "霧雨", - "56-night": "霧雨", - "57-day": "霧雨", - "57-night": "霧雨", + "56-day": "着氷性の霧雨", + "56-night": "着氷性の霧雨", + "57-day": "着氷性の小雨", + "57-night": "着氷性の小雨", "61-day": "小雨", "61-night": "小雨", "63-day": "雨", "63-night": "雨", - "67-night": "雨", - "71-day": "雪", "65-day": "大雨", "65-night": "大雨", - "66-day": "雨", - "66-night": "雨", - "67-day": "雨", - "71-night": "雪", + "66-day": "着氷性の雨", + "66-night": "着氷性の雨", + "67-day": "着氷性の雨", + "67-night": "着氷性の雨", + "71-day": "小雪", + "71-night": "小雪", "73-day": "雪", "73-night": "雪", "75-day": "大雪", "75-night": "大雪", - "77-day": "粒雪", - "77-night": "粒雪", - "80-day": "にわか雨", - "80-night": "にわか雨", + "77-day": "霧雪", + "77-night": "霧雪", + "80-day": "弱いにわか雨", + "80-night": "弱いにわか雨", "81-day": "にわか雨", "81-night": "にわか雨", "82-day": "強いにわか雨", @@ -383,17 +521,33 @@ "updates": "アップデート", "update_available": "更新あり", "up_to_date": "最新", - "child_bridges": "Child Bridges", + "child_bridges": "子ブリッジ", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "稼働", + "pending": "保留中", + "down": "下へ" + }, + "healthchecks": { + "new": "新着", + "up": "稼働", + "grace": "猶予期間中", + "down": "下へ", + "paused": "一時停止中", + "status": "状態", + "last_ping": "最後のPing", + "never": "Pingしていません" }, "watchtower": { "containers_scanned": "スキャン済", "containers_updated": "更新済", "containers_failed": "失敗" }, + "autobrr": { + "approvedPushes": "承認済", + "rejectedPushes": "却下", + "filters": "フィルター", + "indexers": "インデックス" + }, "tubearchivist": { "downloads": "キュー", "videos": "ビデオ", @@ -403,18 +557,30 @@ "truenas": { "load": "システム負荷", "uptime": "稼働時間", - "alerts": "アラート", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "アラート" }, "pyload": { - "speed": "スピード", + "speed": "速度", "active": "アクティブ", "queue": "キュー", "total": "合計" }, + "gluetun": { + "public_ip": "パブリックIP", + "region": "地域", + "country": "国" + }, "hdhomerun": { "channels": "チャンネル", - "hd": "HD" + "hd": "HD", + "tunerCount": "チューナー", + "channelNumber": "チャンネル", + "channelNetwork": "ネットワーク", + "signalStrength": "強さ", + "signalQuality": "クオリティ", + "symbolQuality": "クオリティ", + "networkRate": "ビットレート", + "clientIP": "クライアント IP" }, "scrutiny": { "passed": "合格", @@ -422,24 +588,38 @@ "unknown": "不明" }, "paperlessngx": { - "inbox": "受信箱", + "inbox": "受信トレイ", "total": "合計" }, + "peanut": { + "battery_charge": "バッテリー充電", + "ups_load": "UPS 負荷", + "ups_status": "UPS 状態", + "online": "オンライン", + "on_battery": "バッテリー稼働中", + "low_battery": "バッテリー残量低下" + }, "nextdns": { "wait": "お待ちください", "no_devices": "デバイス データを受信していません" }, "mikrotik": { "cpuLoad": "CPU負荷", - "memoryUsed": "使用メモリ", + "memoryUsed": "メモリ使用量", "uptime": "稼働時間", "numberOfLeases": "リース" }, "xteve": { - "streams_all": "全ストリーム", - "streams_active": "アクティブ・ストリーム", + "streams_all": "すべてのストリーム", + "streams_active": "アクティブストリーム", "streams_xepg": "XEPGチャンネル" }, + "opendtu": { + "yieldDay": "今日", + "absolutePower": "電源", + "relativePower": "電源 %", + "limit": "リミット" + }, "opnsense": { "cpu": "CPU負荷", "memory": "アクティブ・メモリ", @@ -452,23 +632,28 @@ "print_progress": "進捗状況", "layers": "レイヤー" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { - "temp_bed": "ベッド温度", "printer_state": "状態", "temp_tool": "ツール温度", + "temp_bed": "ベッド温度", "job_completion": "完了" }, "cloudflared": { "origin_ip": "オリジンIP", "status": "状態" }, + "pfsense": { + "load": "読み込み平均", + "memory": "メモリ使用量", + "wanStatus": "WANステータス", + "up": "稼働", + "down": "下へ", + "temp": "温度", + "disk": "ディスク使用量", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", + "datastore_usage": "データストア", "failed_tasks_24h": "失敗タスク(24h)", "cpu_usage": "CPU", "memory_usage": "メモリ" @@ -483,18 +668,29 @@ "up": "サイトUp", "down": "サイトDown", "uptime": "稼働時間", - "incident": "Incident", - "m": "m" + "incident": "事件", + "m": "分" + }, + "atsumeru": { + "series": "シリーズ", + "archives": "アーカイブ", + "chapters": "チャプター", + "categories": "カテゴリー" }, "komga": { "libraries": "ライブラリ", "series": "シリーズ", "books": "書籍" }, + "diskstation": { + "days": "日", + "uptime": "稼働時間", + "volumeAvailable": "利用可" + }, "mylar": { "series": "シリーズ", - "issues": "Issues", - "wanted": "Wanted" + "issues": "課題", + "wanted": "募集中" }, "photoprism": { "albums": "アルバム", @@ -502,17 +698,16 @@ "videos": "ビデオ", "people": "人" }, - "diskstation": { - "days": "日", - "uptime": "稼働時間", - "volumeAvailable": "利用可能" - }, "fileflows": { "queue": "キュー", "processing": "処理中", "processed": "処理済み", "time": "時間" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "ダッシュ ボード", "datasources": "データソース", @@ -530,8 +725,8 @@ "kopia": { "status": "状態", "size": "サイズ", - "lastrun": "最終実行", - "nextrun": "次の実行", + "lastrun": "前回の実行", + "nextrun": "次回の実行", "failed": "失敗" }, "unmanic": { @@ -539,16 +734,6 @@ "total_workers": "トータル・ワーカー", "records_total": "キューの長さ" }, - "healthchecks": { - "never": "まだPingはありません", - "new": "New", - "up": "オンライン", - "grace": "猶予期間中", - "down": "オフライン", - "paused": "一時停止中", - "status": "状態", - "last_ping": "最後のPing" - }, "pterodactyl": { "servers": "サーバ", "nodes": "ノード" @@ -558,17 +743,15 @@ "targets_down": "ターゲット Down", "targets_total": "ターゲット合計" }, - "minecraft": { - "players": "プレイヤー", - "version": "バージョン", - "status": "状態", - "up": "オンライン", - "down": "オフライン" + "gatus": { + "up": "サイトUp", + "down": "サイトDown", + "uptime": "稼働時間" }, "ghostfolio": { - "gross_percent_max": "全期間", "gross_percent_today": "今日", - "gross_percent_1y": "1年" + "gross_percent_1y": "1年", + "gross_percent_max": "全期間" }, "audiobookshelf": { "podcasts": "ポッドキャスト", @@ -581,89 +764,283 @@ "lights_on": "点灯", "switches_on": "スイッチオン" }, - "freshrss": { - "subscriptions": "購読", - "unread": "未読" - }, - "channelsdvrserver": { - "shows": "ショー", - "recordings": "レコーディング", - "scheduled": "予定済", - "passes": "Passes" - }, "whatsupdocker": { - "monitoring": "Monitoring", + "monitoring": "モニタリング", "updates": "アップデート" }, - "tailscale": { - "address": "アドレス", - "expires": "失効", - "never": "なし", - "last_seen": "最終日時", - "now": "現在", - "years": "{{number}}年", - "weeks": "{{number}}月", - "days": "{{number}}日", - "hours": "{{number}}時間", - "minutes": "{{number}}分", - "seconds": "{{number}}秒", - "ago": "{{value}} 前" - }, - "qnap": { - "cpuUsage": "CPU使用量", - "memUsage": "MEM使用量", - "systemTempC": "システム温度", - "poolUsage": "プール使用量", - "volumeUsage": "ボリューム使用量", - "invalid": "Invalid" - }, - "pfsense": { - "up": "Up", - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "watt_hour": "Wh", - "pv_power": "発電量", - "battery_soc": "バッテリー", - "grid_power": "グリッド", - "home_power": "消費", - "charge_power": "チャージャー" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "書籍", + "authors": "著者", + "categories": "カテゴリー", + "series": "シリーズ" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "キュー", + "downloadBytesRemaining": "残り", + "downloadTotalBytes": "サイズ", + "downloadSpeed": "速度" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "シリーズ", + "totalFiles": "ファイル" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "結果", + "status": "状態", + "buildId": "ビルドID", + "succeeded": "成功", + "notStarted": "開始していません", + "failed": "失敗", + "canceled": "キャンセル", + "inProgress": "進行中", + "totalPrs": "合計PR数", + "myPrs": "私のPR", + "approved": "承認済" + }, + "gamedig": { + "status": "状態", + "online": "オンライン", + "offline": "オフライン", + "name": "名前", + "map": "マップ", + "currentPlayers": "現在のプレーヤー", + "players": "プレイヤー", + "maxPlayers": "最大プレイヤー数", + "bots": "ボット", + "ping": "Ping" + }, + "urbackup": { + "ok": "正常", + "errored": "エラー", + "noRecent": "期限切れ", + "totalUsed": "使用済みストレージ" + }, + "mealie": { + "recipes": "レシピ", + "users": "ユーザ", + "categories": "カテゴリー", + "tags": "タグ" + }, + "openmediavault": { + "downloading": "ダウンロード中", + "total": "合計", + "running": "起動中", + "stopped": "停止中", + "passed": "合格", + "failed": "失敗" + }, + "openwrt": { + "uptime": "稼働時間", + "cpuLoad": "CPU 平均負荷(5 分)", + "up": "稼働", + "down": "下へ", + "bytesTx": "送信済み", + "bytesRx": "受信済み" + }, + "uptimerobot": { + "status": "状態", + "uptime": "稼働時間", + "lastDown": "最後のダウンタイム", + "downDuration": "ダウンタイム時間", + "sitesUp": "サイトUp", + "sitesDown": "サイトDown", + "paused": "一時停止中", + "notyetchecked": "チェックされていません", + "up": "稼働", + "seemsdown": "ダウンしているようです", + "down": "下へ", + "unknown": "不明" + }, + "calendar": { + "inCinemas": "映画館内", + "physicalRelease": "物理的なリリース", + "digitalRelease": "デジタル・リリース", + "noEventsToday": "本日の予定なし", + "noEventsFound": "予定が見つかりません" + }, + "romm": { + "platforms": "プラットフォーム", + "totalRoms": "ゲーム", + "saves": "保存", + "states": "状態", + "screenshots": "スクリーンショット", + "totalfilesize": "合計サイズ" + }, + "mailcow": { + "domains": "ドメイン", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "ストレージ" + }, + "netdata": { + "warnings": "警告", + "criticals": "重大" + }, + "plantit": { + "events": "イベント", + "plants": "植物", + "photos": "写真", + "species": "種" + }, + "gitea": { + "notifications": "通知", + "issues": "課題", + "pulls": "プルリクエスト", + "repositories": "Repositories" + }, + "stash": { + "scenes": "シーン", + "scenesPlayed": "再生されたシーン", + "playCount": "合計再生数", + "playDuration": "視聴時間", + "sceneSize": "シーンサイズ", + "sceneDuration": "シーンの長さ", + "images": "画像", + "imageSize": "画像サイズ", + "galleries": "ギャラリー", + "performers": "出演者", + "studios": "スタジオ", + "movies": "映画", + "tags": "タグ", + "oCount": "O カウント" + }, + "tandoor": { + "users": "ユーザ", + "recipes": "レシピ", + "keywords": "キーワード" + }, + "homebox": { + "items": "アイテム", + "totalWithWarranty": "保証付き", + "locations": "場所", + "labels": "ラベル", + "users": "ユーザ", + "totalValue": "合計値" + }, + "crowdsec": { + "alerts": "アラート", + "bans": "禁止" + }, + "wgeasy": { + "connected": "接続済", + "enabled": "有効", + "disabled": "無効", + "total": "合計" + }, + "swagdashboard": { + "proxied": "プロキシ済", + "auth": "認証あり", + "outdated": "最新の状態ではありません", + "banned": "禁止" + }, + "myspeed": { + "ping": "Ping", + "download": "ダウンロード", + "upload": "アップロード" + }, + "stocks": { + "stocks": "在庫", + "loading": "読み込み中", + "open": "オープン - 米国市場", + "closed": "クローズ - 米国市場", + "invalidConfiguration": "無効な設定" + }, + "frigate": { + "cameras": "カメラ", + "uptime": "稼働時間", + "version": "バージョン" + }, + "linkwarden": { + "links": "リンク", + "collections": "コレクション", + "tags": "タグ" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "情報", + "warning": "警告", + "average": "平均", + "high": "高い", + "disaster": "災害" + }, + "lubelogger": { + "vehicle": "車両", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "名前", + "address": "アドレス", + "last_seen": "最終日時", + "status": "状態", + "online": "オンライン", + "offline": "オフライン" + }, + "beszel": { + "name": "名前", + "systems": "Systems", + "up": "稼働", + "down": "下へ", + "paused": "一時停止中", + "pending": "保留中", + "status": "状態", + "updated": "更新済", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "正常", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "不明", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "読み込み中" + }, + "gitlab": { + "groups": "Groups", + "issues": "課題", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "状態", + "load": "ロード", + "bcharge": "バッテリー充電", + "timeleft": "残り時間" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "タグ" + }, + "slskd": { + "slskStatus": "ネットワーク", + "connected": "接続済", + "disconnected": "切断されました", + "updateStatus": "Update", + "update_yes": "利用可", + "update_no": "最新", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "ファイル" } } diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index f1325b75..5f5523ff 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -1,24 +1,27 @@ { "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "rutorrent": { - "download": "다운로드", - "active": "활성", - "upload": "업로드" - }, - "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" - }, - "pterodactyl": { - "nodes": "Nodes", - "servers": "Servers" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { - "missing_type": "Missing Widget Type: {{type}}", + "missing_type": "없는 위젯 유형: {{type}}", "api_error": "API 오류", "information": "정보", "status": "상태", @@ -44,15 +47,11 @@ "load": "부하", "temp": "온도", "max": "최대", - "uptime": "가동", - "months": "달", - "days": "일", - "hours": "시간", - "minutes": "분" + "uptime": "가동" }, "unifi": { "users": "사용자", - "uptime": "시스템 업타임", + "uptime": "Uptime", "days": "일", "wan": "WAN", "lan": "LAN", @@ -62,7 +61,7 @@ "wlan_devices": "WLAN 장치", "lan_users": "LAN 사용자", "wlan_users": "WLAN 사용자", - "up": "UP", + "up": "가동", "down": "DOWN", "wait": "잠시만 기다리세요", "empty_data": "서브시스템 상태 알 수 없음" @@ -85,7 +84,18 @@ }, "ping": { "error": "오류", - "ping": "Ping" + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "사용할 수 없음" + }, + "siteMonitor": { + "http_status": "HTTP 상태", + "error": "오류", + "response": "응답", + "down": "Down", + "up": "Up", + "not_available": "사용할 수 없음" }, "emby": { "playing": "재생 중", @@ -97,16 +107,66 @@ "episodes": "에피소드", "songs": "음악" }, + "esphome": { + "offline": "중지", + "offline_alt": "중지", + "online": "온라인", + "total": "총합", + "unknown": "알 수 없음" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "배터리", + "grid_power": "눈금", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, "flood": { "download": "다운로드", "upload": "업로드", "leech": "리치", "seed": "시드" }, + "freshrss": { + "subscriptions": "구독", + "unread": "미열람" + }, + "fritzbox": { + "connectionStatus": "상태", + "connectionStatusUnconfigured": "구성되지 않음", + "connectionStatusConnecting": "연결중", + "connectionStatusAuthenticating": "인증", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "연결을 끊는 중...", + "connectionStatusDisconnected": "연결 끊김", + "connectionStatusConnected": "연결됨", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "수신됨", + "sent": "전송됨", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Total Observed", "diffsDetected": "변경 감지됨" }, + "channelsdvrserver": { + "shows": "보기", + "recordings": "녹화", + "scheduled": "예정됨", + "passes": "Passes" + }, "tautulli": { "playing": "재생 중", "transcoding": "트랜스코딩", @@ -118,7 +178,7 @@ "connectedAp": "연결된 AP", "activeUser": "활성 장치", "alerts": "경고", - "connectedGateway": "연결된 게이트웨이", + "connectedGateways": "Connected gateways", "connectedSwitches": "연결된 스위치" }, "nzbget": { @@ -128,15 +188,20 @@ }, "plex": { "streams": "활성 스트림", + "albums": "Albums", "movies": "영화", - "tv": "TV 쇼", - "albums": "Albums" + "tv": "TV 쇼" }, "sabnzbd": { "rate": "비율", "queue": "대기열", "timeleft": "남은 시간" }, + "rutorrent": { + "active": "활성", + "upload": "업로드", + "download": "다운로드" + }, "transmission": { "download": "다운로드", "upload": "업로드", @@ -149,12 +214,24 @@ "leech": "리치", "seed": "시드" }, + "qnap": { + "cpuUsage": "CPU 사용", + "memUsage": "메모리 사용", + "systemTempC": "시스템 온도", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "잘못됨" + }, "deluge": { "download": "다운로드", "upload": "업로드", "leech": "리치", "seed": "시드" }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, "downloadstation": { "download": "다운로드", "upload": "업로드", @@ -165,16 +242,16 @@ "wanted": "요청", "queued": "대기 중", "series": "시리즈", - "queue": "Queue", - "unknown": "Unknown" + "queue": "대기열", + "unknown": "알 수 없음" }, "radarr": { "wanted": "요청", "missing": "빠짐", "queued": "대기 중", "movies": "영화", - "queue": "Queue", - "unknown": "Unknown" + "queue": "대기열", + "unknown": "알 수 없음" }, "lidarr": { "wanted": "요청", @@ -198,19 +275,25 @@ "jellyseerr": { "pending": "대기 중", "approved": "승인됨", - "available": "사용 가능" + "available": "이용 가능" }, "overseerr": { "pending": "대기 중", "processing": "처리 중", "approved": "승인됨", - "available": "사용 가능" + "available": "이용 가능" + }, + "netalertx": { + "total": "총합", + "connected": "연결됨", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "쿼리", "blocked": "차단됨", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "쿼리", @@ -228,6 +311,43 @@ "stopped": "중지", "total": "총합" }, + "suwayomi": { + "download": "다운로드됨", + "nondownload": "Non-Downloaded", + "read": "읽음", + "unread": "미열람", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "주소", + "expires": "만료", + "never": "Never", + "last_seen": "마지막 접속", + "now": "지금", + "years": "{{number}}년", + "weeks": "{{number}}월", + "days": "{{number}}일", + "hours": "{{number}}시", + "minutes": "{{number}}분", + "seconds": "{{number}}초", + "ago": "{{value}} 전" + }, + "technitium": { + "totalQueries": "쿼리", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "차단됨", + "totalDropped": "Dropped", + "totalClients": "클라이언트" + }, "tdarr": { "queue": "대기열", "processed": "처리됨", @@ -263,77 +383,90 @@ "prowlarr": { "enableIndexers": "인덱서", "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", + "numberOfQueries": "쿼리", "numberOfFailGrabs": "Fail Grabs", "numberOfFailQueries": "Fail Queries" }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "구성됨", + "errored": "오류" }, "strelaysrv": { "numActiveSessions": "Sessions", "numConnections": "Connections", "dataRelayed": "Relayed", - "transferRate": "Rate" + "transferRate": "비율" }, "mastodon": { - "user_count": "Users", - "status_count": "Posts", + "user_count": "사용자", + "status_count": "게시글", "domain_count": "Domains" }, "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "wanted": "요청", + "queued": "대기 중", + "series": "시리즈" }, "minecraft": { "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "version": "버전", + "status": "상태", + "up": "온라인", + "down": "중지" }, "miniflux": { - "read": "Read", - "unread": "Unread" + "read": "읽음", + "unread": "미열람" + }, + "authentik": { + "users": "사용자", + "loginsLast24H": "로그인 (24h)", + "failedLoginsLast24H": "실패한 로그인 (24h)" }, "proxmox": { "mem": "MEM", "cpu": "CPU", "lxc": "LXC", - "vms": "VMs" + "vms": "가상머신" }, "glances": { "cpu": "CPU", - "wait": "Please wait", - "temp": "TEMP", - "uptime": "UP", + "load": "부하", + "wait": "잠시만 기다리세요", + "temp": "온도", + "_temp": "온도", + "warn": "경고", + "uptime": "가동", + "total": "총합", + "free": "남음", + "used": "사용", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "읽음", + "write": "쓰기", + "gpu": "GPU", + "mem": "Men", + "swap": "Swap" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", + "bookmark": "즐겨찾기", + "service": "서비스", + "search": "검색", + "custom": "사용자 정의", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { - "0-day": "Sunny", + "0-day": "화창함", "0-night": "Clear", "1-day": "Mainly Sunny", "1-night": "Mainly Clear", "2-day": "Partly Cloudy", "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", + "3-day": "구름 낀", + "3-night": "구름 낀", "45-day": "Foggy", "45-night": "Foggy", "48-day": "Foggy", @@ -358,14 +491,14 @@ "66-night": "Freezing Rain", "67-day": "Freezing Rain", "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", + "71-day": "약한 눈", + "71-night": "약한 눈", "73-day": "Snow", "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", + "75-day": "폭설", + "75-night": "폭설", + "77-day": "싸락눈", + "77-night": "싸락눈", "80-day": "Light Showers", "80-night": "Light Showers", "81-day": "Showers", @@ -385,22 +518,22 @@ }, "homebridge": { "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "updates": "업데이트", + "update_available": "새 업데이트 사용 가능", + "up_to_date": "최신 상태", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "pending": "Pending", + "pending": "대기 중", "down": "Down" }, "healthchecks": { - "new": "New", - "up": "Online", + "new": "신규", + "up": "Up", "grace": "In Grace Period", - "down": "Offline", + "down": "Down", "paused": "Paused", - "status": "Status", + "status": "상태", "last_ping": "Last Ping", "never": "No pings yet" }, @@ -410,28 +543,27 @@ "containers_failed": "Failed" }, "autobrr": { - "approvedPushes": "Approved", + "approvedPushes": "승인됨", "rejectedPushes": "Rejected", "filters": "Filters", - "indexers": "Indexers" + "indexers": "인덱서" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "대기열", + "videos": "동영상", + "channels": "채널", + "playlists": "재생 목록" }, "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "경고" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "활성", + "queue": "대기열", + "total": "총합" }, "gluetun": { "public_ip": "Public IP", @@ -439,33 +571,55 @@ "country": "Country" }, "hdhomerun": { - "channels": "Channels", - "hd": "HD" + "channels": "채널", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "채널", + "channelNetwork": "네트워크", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "비트레이트", + "clientIP": "클라이언트" }, "scrutiny": { "passed": "Passed", "failed": "Failed", - "unknown": "Unknown" + "unknown": "알 수 없음" }, "paperlessngx": { - "inbox": "Inbox", - "total": "Total" + "inbox": "받은메일함", + "total": "총합" + }, + "peanut": { + "battery_charge": "배터리 충전 중", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "온라인", + "on_battery": "배터리 사용", + "low_battery": "배터리 부족" }, "nextdns": { - "wait": "Please Wait", + "wait": "잠시만 기다리세요", "no_devices": "No Device Data Received" }, "mikrotik": { "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", + "memoryUsed": "메모리 사용량", "uptime": "Uptime", "numberOfLeases": "Leases" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_all": "모든 스트림", + "streams_active": "활성 스트림", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "오늘", + "absolutePower": "전원", + "relativePower": "전원 %", + "limit": "제한" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -475,18 +629,28 @@ "moonraker": { "printer_state": "Printer State", "print_status": "Print Status", - "print_progress": "Progress", + "print_progress": "진행", "layers": "Layers" }, "octoprint": { - "printer_state": "Status", + "printer_state": "상태", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "상태" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "온도", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", @@ -495,10 +659,10 @@ "memory_usage": "Memory" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "사용자", + "photos": "사진", + "videos": "동영상", + "storage": "저장됨" }, "uptimekuma": { "up": "Sites Up", @@ -507,49 +671,59 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "시리즈", + "archives": "Archives", + "chapters": "Chapters", + "categories": "분류" + }, "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" + "libraries": "서재", + "series": "시리즈", + "books": "책" }, "diskstation": { - "days": "Days", + "days": "일", "uptime": "Uptime", - "volumeAvailable": "Available" + "volumeAvailable": "이용 가능" }, "mylar": { - "series": "Series", + "series": "시리즈", "issues": "Issues", - "wanted": "Wanted" + "wanted": "요청" }, "photoprism": { "albums": "Albums", - "photos": "Photos", - "videos": "Videos", + "photos": "사진", + "videos": "동영상", "people": "People" }, "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", + "queue": "대기열", + "processing": "처리 중", + "processed": "처리됨", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { - "dashboards": "Dashboards", + "dashboards": "대시보드", "datasources": "Data Sources", "totalalerts": "Total Alerts", "alertstriggered": "Alerts Triggered" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "CPU 부하량", + "memoryusage": "메모리 사용량", + "freespace": "여유 공간", + "activeusers": "활성 유저", + "numfiles": "파일", + "numshares": "공유된 항목" }, "kopia": { - "status": "Status", + "status": "상태", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -560,110 +734,313 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, + "pterodactyl": { + "servers": "Servers", + "nodes": "노드" + }, "prometheus": { "targets_up": "Targets Up", "targets_down": "Targets Down", "targets_total": "Total Targets" }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, "ghostfolio": { - "gross_percent_today": "Today", + "gross_percent_today": "오늘", "gross_percent_1y": "One year", "gross_percent_max": "All time" }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "books": "책", + "podcastsDuration": "지속시간", + "booksDuration": "지속시간" }, "homeassistant": { "people_home": "People Home", "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", - "updates": "Updates" + "updates": "업데이트" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP", - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "down_alerts": "Down Alerts", - "new_devices": "New Devices" + "calibreweb": { + "books": "책", + "authors": "저자", + "categories": "분류", + "series": "시리즈" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "대기열", + "downloadBytesRemaining": "남음", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "시리즈", + "totalFiles": "파일" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "상태", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "승인됨" + }, + "gamedig": { + "status": "상태", + "online": "온라인", + "offline": "중지", + "name": "이름", + "map": "지도", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "봇", + "ping": "Ping" + }, + "urbackup": { + "ok": "확인", + "errored": "오류 :", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "사용자", + "categories": "분류", + "tags": "태그" + }, + "openmediavault": { + "downloading": "다운로드 중", + "total": "총합", + "running": "가동 중", + "stopped": "중지", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "수신됨" + }, + "uptimerobot": { + "status": "상태", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "알 수 없음" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "기종", + "totalRoms": "게임", + "saves": "세이브", + "states": "스테이트", + "screenshots": "스크린샷", + "totalfilesize": "전체 용량" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "저장됨" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "사진", + "species": "Species" + }, + "gitea": { + "notifications": "알림", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "장면", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "스튜디오", + "movies": "영화", + "tags": "태그", + "oCount": "O Count" + }, + "tandoor": { + "users": "사용자", + "recipes": "Recipes", + "keywords": "키워드" + }, + "homebox": { + "items": "아이템", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "사용자", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "경고", + "bans": "Bans" + }, + "wgeasy": { + "connected": "연결됨", + "enabled": "활성", + "disabled": "비활성", + "total": "총합" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "다운로드", + "upload": "업로드" + }, + "stocks": { + "stocks": "Stocks", + "loading": "로드 중", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "카메라", + "uptime": "Uptime", + "version": "버전" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "태그" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "정보", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "이름", + "address": "주소", + "last_seen": "마지막 접속", + "status": "상태", + "online": "온라인", + "offline": "중지" + }, + "beszel": { + "name": "이름", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "대기 중", + "status": "상태", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "좋음", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "빠짐", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "로드 중" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "상태", + "load": "부하", + "bcharge": "배터리 충전 중", + "timeleft": "남은 시간" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "태그" + }, + "slskd": { + "slskStatus": "네트워크", + "connected": "연결됨", + "disconnected": "연결 끊김", + "updateStatus": "Update", + "update_yes": "이용 가능", + "update_no": "최신 상태", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "파일" } } diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 696b4d85..85d9a359 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -1,7 +1,24 @@ { "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Iztrūkst logrīka tips: {{type}}", @@ -23,22 +40,18 @@ }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Kopā", "free": "Brīvs", "used": "Izmantojas", "load": "Ielādē", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" }, "unifi": { "users": "Lietotāji", - "uptime": "Sistēmas darbības laiks", + "uptime": "Uptime", "days": "Dienas", "wan": "WAN", "lan": "LAN", @@ -48,7 +61,7 @@ "wlan_devices": "WLAN ierīces", "lan_users": "LAN lietotāji", "wlan_users": "WLAN lietotāji", - "up": "DARBOJAS", + "up": "UP", "down": "NEDARBOJAS", "wait": "Lūdzu, uzgaidiet", "empty_data": "Subsystem status unknown" @@ -56,22 +69,33 @@ "docker": { "rx": "RX", "tx": "TX", - "mem": "Atmiņa", + "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Bezsaistē", "error": "Kļūda", "unknown": "Nezināms", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" }, "ping": { "error": "Kļūda", - "ping": "Ping" + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Kļūda", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Atskaņo", @@ -83,16 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Bezsaistē", + "offline_alt": "Bezsaistē", + "online": "Online", + "total": "Kopā", + "unknown": "Nezināms" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, "flood": { "download": "Lejupielāde", "upload": "Augšupielāde", "leech": "Ņēmēji", "seed": "Devēji" }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Statuss", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Kopā novēro", "diffsDetected": "Atšķirības atrastas" }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Atskaņo", "transcoding": "Pārkodē", @@ -104,7 +178,7 @@ "connectedAp": "Savienotie piekļuves punkti", "activeUser": "Aktīvās ierīces", "alerts": "Paziņojumi", - "connectedGateway": "Savienotās vārtejas", + "connectedGateways": "Connected gateways", "connectedSwitches": "Savienotie komutatori" }, "nzbget": { @@ -114,9 +188,9 @@ }, "plex": { "streams": "Aktīvās straumes", - "movies": "Filmas", - "tv": "TV pārraides", - "albums": "Albums" + "albums": "Albums", + "movies": "Movies", + "tv": "TV pārraides" }, "sabnzbd": { "rate": "Rate", @@ -131,41 +205,53 @@ "transmission": { "download": "Lejupielāde", "upload": "Augšupielāde", - "leech": "Leech", + "leech": "Ņēmēji", "seed": "Devēji" }, "qbittorrent": { "download": "Lejupielāde", "upload": "Augšupielāde", - "leech": "Leech", + "leech": "Ņēmēji", "seed": "Devēji" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, "deluge": { "download": "Lejupielāde", "upload": "Augšupielāde", - "leech": "Leech", + "leech": "Ņēmēji", "seed": "Devēji" }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, "downloadstation": { - "download": "Download", + "download": "Lejupielāde", "upload": "Augšupielāde", - "leech": "Leech", - "seed": "Seed" + "leech": "Ņēmēji", + "seed": "Devēji" }, "sonarr": { "wanted": "Wanted", "queued": "Queued", "series": "Series", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Rindā", + "unknown": "Nezināms" }, "radarr": { "wanted": "Wanted", "missing": "Missing", "queued": "Queued", - "movies": "Filmas", - "queue": "Queue", - "unknown": "Unknown" + "movies": "Movies", + "queue": "Rindā", + "unknown": "Nezināms" }, "lidarr": { "wanted": "Wanted", @@ -197,11 +283,17 @@ "approved": "Approved", "available": "Available" }, + "netalertx": { + "total": "Kopā", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", @@ -210,17 +302,54 @@ "latency": "Latency" }, "speedtest": { - "upload": "Upload", - "download": "Download", + "upload": "Augšupielāde", + "download": "Lejupielāde", "ping": "Ping" }, "portainer": { "running": "Running", "stopped": "Stopped", - "total": "Total" + "total": "Kopā" + }, + "suwayomi": { + "download": "Lejupielādēts", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" }, "tdarr": { - "queue": "Queue", + "queue": "Rindā", "processed": "Processed", "errored": "Errored", "saved": "Saved" @@ -231,13 +360,13 @@ "middleware": "Middleware" }, "navidrome": { - "nothing_streaming": "No Active Streams", + "nothing_streaming": "Nav aktīvu straumju", "please_wait": "Please Wait" }, "npm": { "enabled": "Enabled", "disabled": "Disabled", - "total": "Total" + "total": "Kopā" }, "coinmarketcap": { "configure": "Configure one or more crypto currencies to track", @@ -269,7 +398,7 @@ "transferRate": "Rate" }, "mastodon": { - "user_count": "Users", + "user_count": "Lietotāji", "status_count": "Posts", "domain_count": "Domains" }, @@ -278,12 +407,19 @@ "queued": "Queued", "series": "Series" }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Statuss", + "up": "Online", + "down": "Bezsaistē" + }, "miniflux": { "read": "Read", "unread": "Unread" }, "authentik": { - "users": "Users", + "users": "Lietotāji", "loginsLast24H": "Logins (24h)", "failedLoginsLast24H": "Failed Logins (24h)" }, @@ -295,16 +431,23 @@ }, "glances": { "cpu": "CPU", - "wait": "Please wait", + "load": "Ielādē", + "wait": "Lūdzu, uzgaidiet", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "Kopā", + "free": "Brīvs", + "used": "Izmantojas", "days": "d", "hours": "h", - "temp": "TEMP", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -312,7 +455,8 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "Saulains", @@ -336,7 +480,7 @@ "56-day": "Neliels stindzinošs lietus", "56-night": "Neliels stindzinošs lietus", "57-day": "Sasalstošs lietus", - "57-night": "Freezing Drizzle", + "57-night": "Sasalstošs lietus", "61-day": "Viegls lietus", "61-night": "Viegls lietus", "63-day": "Lietus", @@ -383,6 +527,16 @@ "pending": "Pending", "down": "Down" }, + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Statuss", + "last_ping": "Last Ping", + "never": "No pings yet" + }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", @@ -395,7 +549,7 @@ "indexers": "Indexers" }, "tubearchivist": { - "downloads": "Queue", + "downloads": "Rindā", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -403,14 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Paziņojumi" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "Aktīvs", + "queue": "Rindā", + "total": "Kopā" }, "gluetun": { "public_ip": "Public IP", @@ -419,16 +572,32 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", "failed": "Failed", - "unknown": "Unknown" + "unknown": "Nezināms" }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "Kopā" + }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", @@ -442,9 +611,15 @@ }, "xteve": { "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_active": "Aktīvās straumes", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -458,14 +633,24 @@ "layers": "Layers" }, "octoprint": { - "printer_state": "Status", + "printer_state": "Statuss", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "Statuss" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", @@ -474,7 +659,7 @@ "memory_usage": "Memory" }, "immich": { - "users": "Users", + "users": "Lietotāji", "photos": "Photos", "videos": "Videos", "storage": "Storage" @@ -486,10 +671,21 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", - "books": "Books" + "books": "Grāmatas" + }, + "diskstation": { + "days": "Dienas", + "uptime": "Uptime", + "volumeAvailable": "Available" }, "mylar": { "series": "Series", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { - "queue": "Queue", + "queue": "Rindā", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -528,7 +723,7 @@ "numshares": "Shared Items" }, "kopia": { - "status": "Status", + "status": "Statuss", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "down": "Offline", - "players": "Players", - "status": "Status", - "up": "Online", - "version": "Version" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", + "books": "Grāmatas", "podcastsDuration": "Duration", "booksDuration": "Duration" }, @@ -581,89 +764,283 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Grāmatas", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Rindā", + "downloadBytesRemaining": "Palika", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { - "status": "Status", + "azuredevops": { + "result": "Result", + "status": "Statuss", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "result": "Result", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "Statuss", + "online": "Online", + "offline": "Bezsaistē", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Lietotāji", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Kopā", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Statuss", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Nezināms" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Lietotāji", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Lietotāji", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Paziņojumi", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Kopā" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Lejupielāde", + "upload": "Augšupielāde" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informācija", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Statuss", + "online": "Online", + "offline": "Bezsaistē" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "Statuss", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Statuss", + "load": "Ielādē", + "bcharge": "Battery Charge", + "timeleft": "Atlikušais laiks" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index a25ed71f..4ebfd6d8 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -1,22 +1,57 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "bln", + "days": "h", + "hours": "j", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Jenis Widget Hilang: {{type}}", + "api_error": "Masalah API", + "information": "Informasi", + "status": "Status", + "url": "URL", + "raw_error": "Ralat Mentah", + "response_data": "Data Respon" + }, + "weather": { + "current": "Lokasi Sekarang", + "allow": "Klik untuk benarkan", + "updating": "Mengemas kini", + "wait": "Sila tunggu" + }, + "search": { + "placeholder": "Carian…" + }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Jumlah", "free": "Bebas", "used": "Telah diguna", "load": "Beban", - "mem": "MEM", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "temp": "SUHU", + "max": "Tertinggi", + "uptime": "HIDUP" }, "unifi": { - "uptime": "Masa Operasi Sistem", "users": "Pengguna", + "uptime": "Masa Hidup", "days": "Hari", "wan": "WAN", "lan": "LAN", @@ -29,69 +64,405 @@ "up": "HIDUP", "down": "MATI", "wait": "Sila tunggu", - "empty_data": "Subsystem status unknown" + "empty_data": "Status subsistem tak diketahui" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "MEM", + "cpu": "CPU", + "running": "Sedang jalan", + "offline": "Luar talian", + "error": "Ralat", + "unknown": "Tidak Diketahui", + "healthy": "Sihat", + "starting": "Bermula", + "unhealthy": "Kurang sihat", + "not_found": "Tidak dijumpai", + "exited": "Dimatikan", + "partial": "Sebahagian" + }, + "ping": { + "error": "Ralat", + "ping": "Ping", + "down": "Mati", + "up": "Hidup", + "not_available": "Tidak dijumpai" + }, + "siteMonitor": { + "http_status": "Status HTTP", + "error": "Ralat", + "response": "Tindak balas", + "down": "Mati", + "up": "Hidup", + "not_available": "Tidak dijumpai" + }, + "emby": { + "playing": "Sedang dimainkan", + "transcoding": "Transkoding", + "bitrate": "Kadar bit", + "no_active": "Tiada Strim Aktif", + "movies": "Filem", + "series": "Siri", + "episodes": "Episod", + "songs": "Lagu" + }, + "esphome": { + "offline": "Luar talian", + "offline_alt": "Luar talian", + "online": "Dalam Talian", + "total": "Jumlah", + "unknown": "Tidak Diketahui" + }, + "evcc": { + "pv_power": "Produksi", + "battery_soc": "Bateri", + "grid_power": "Grid", + "home_power": "Penggunaan", + "charge_power": "Pengecas", + "kilowatt": "kW" + }, + "flood": { + "download": "Muat turun", + "upload": "Muat naik", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Langganan", + "unread": "Belum dibaca" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Belum disuai", + "connectionStatusConnecting": "Menyambung", + "connectionStatusAuthenticating": "Pengesahan", + "connectionStatusPendingDisconnect": "Tunggu untuk Putus", + "connectionStatusDisconnecting": "Putuskan", + "connectionStatusDisconnected": "Sambungan Terputus", + "connectionStatusConnected": "Connected", + "uptime": "Masa Hidup", + "maxDown": "Mati Maksima", + "maxUp": "Hidup Maksima", + "down": "Mati", + "up": "Hidup", + "received": "Diterima", + "sent": "Telah dihantar", + "externalIPAddress": "IP Luaran", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Permintaan semasa", + "requests_failed": "Permintaan gagal" + }, + "changedetectionio": { + "totalObserved": "Jumlah Diperhatikan", + "diffsDetected": "Perbezaan Dikesan" + }, + "channelsdvrserver": { + "shows": "Papar", + "recordings": "Rakaman", + "scheduled": "Dijadualkan", + "passes": "Lulus" + }, + "tautulli": { + "playing": "Sedang dimainkan", + "transcoding": "Transkoding", + "bitrate": "Kadar bit", + "no_active": "Tiada Strim Aktif", + "plex_connection_error": "Check Plex Connection" + }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Peranti aktif", + "alerts": "Perhatian", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, + "nzbget": { + "rate": "Kadar", + "remaining": "Baki", + "downloaded": "Telah Muat Turun" + }, + "plex": { + "streams": "Strim Aktif", + "albums": "Album", + "movies": "Filem", + "tv": "Rancangan TV" + }, + "sabnzbd": { + "rate": "Kadar", + "queue": "Barisan", + "timeleft": "Masa Tinggal" + }, + "rutorrent": { + "active": "Aktif", + "upload": "Muat naik", + "download": "Muat turun" + }, + "transmission": { + "download": "Muat turun", + "upload": "Muat naik", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Muat turun", + "upload": "Muat naik", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Muat turun", + "upload": "Muat naik", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Muat turun", + "upload": "Muat naik", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Mahu", + "queued": "Dibaris Gilir", + "series": "Siri", + "queue": "Barisan", + "unknown": "Tidak Diketahui" + }, + "radarr": { + "wanted": "Mahu", + "missing": "Hilang", + "queued": "Dibaris Gilir", + "movies": "Filem", + "queue": "Barisan", + "unknown": "Tidak Diketahui" }, "lidarr": { - "queued": "Dibaris Gilir", "wanted": "Mahu", - "artists": "Artists" + "queued": "Dibaris Gilir", + "artists": "Artis" }, "readarr": { "wanted": "Mahu", "queued": "Dibaris Gilir", "books": "Buku" }, - "jellyseerr": { - "pending": "Tertangguh", + "bazarr": { + "missingEpisodes": "Episod Yang Hilang", + "missingMovies": "Filem Yang Hilang" + }, + "ombi": { + "pending": "Tertunda", "approved": "Lulus", "available": "Sudah Ada" }, + "jellyseerr": { + "pending": "Tertunda", + "approved": "Lulus", + "available": "Sudah Ada" + }, + "overseerr": { + "pending": "Tertunda", + "processing": "Processing", + "approved": "Lulus", + "available": "Sudah Ada" + }, + "netalertx": { + "total": "Jumlah", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, + "pihole": { + "queries": "Permintaan", + "blocked": "Disekat", + "blocked_percent": "Blocked %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Permintaan", + "blocked": "Disekat", + "filtered": "Ditapis", + "latency": "Kependaman" + }, + "speedtest": { + "upload": "Muat naik", + "download": "Muat turun", + "ping": "Ping" + }, + "portainer": { + "running": "Sedang jalan", + "stopped": "Terhenti", + "total": "Jumlah" + }, + "suwayomi": { + "download": "Telah Muat Turun", + "nondownload": "Non-Downloaded", + "read": "Baca", + "unread": "Belum dibaca", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Sekarang", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Lepas" + }, + "technitium": { + "totalQueries": "Permintaan", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Disekat", + "totalDropped": "Dropped", + "totalClients": "Klien" + }, + "tdarr": { + "queue": "Barisan", + "processed": "Sudah diprosess", + "errored": "Ralat", + "saved": "Simpan" + }, + "traefik": { + "routers": "Router", + "services": "Servis", + "middleware": "Perisian Tengah" + }, + "navidrome": { + "nothing_streaming": "Tiada Strim Aktif", + "please_wait": "Sila tunggu" + }, + "npm": { + "enabled": "Didayakan", + "disabled": "Dinyahdayakan", + "total": "Jumlah" + }, "coinmarketcap": { - "30days": "30 Hari", "configure": "Konfigurasikan satu atau lebih matawang crypto untuk dipantau", "1hour": "1 Jam", "1day": "1 Hari", - "7days": "7 Hari" + "7days": "7 Hari", + "30days": "30 Hari" }, "gotify": { "apps": "Aplikasi", "clients": "Klien", "messages": "Mesej" }, + "prowlarr": { + "enableIndexers": "Pengindeks", + "numberOfGrabs": "Capai", + "numberOfQueries": "Permintaan", + "numberOfFailGrabs": "Capai Yang Ggagal", + "numberOfFailQueries": "Permintaan Yang Gagal" + }, + "jackett": { + "configured": "Telah Dikonfigurasi", + "errored": "Ralat" + }, + "strelaysrv": { + "numActiveSessions": "Sesi", + "numConnections": "Penyambungan", + "dataRelayed": "Disalurkan", + "transferRate": "Kadar" + }, + "mastodon": { + "user_count": "Pengguna", + "status_count": "Pos", + "domain_count": "Domain" + }, + "medusa": { + "wanted": "Mahu", + "queued": "Dibaris Gilir", + "series": "Siri" + }, + "minecraft": { + "players": "Senarai pemain", + "version": "Versi", + "status": "Status", + "up": "Dalam Talian", + "down": "Luar talian" + }, + "miniflux": { + "read": "Baca", + "unread": "Belum dibaca" + }, + "authentik": { + "users": "Pengguna", + "loginsLast24H": "Logmasuk (24j)", + "failedLoginsLast24H": "Logmasuk Gagal (24j)" + }, "proxmox": { "mem": "MEM", "cpu": "CPU", - "lxc": "LXC", + "lxc": "LCX", "vms": "Mesin Maya" }, "glances": { "cpu": "CPU", + "load": "Beban", "wait": "Sila tunggu", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "temp": "SUHU", + "_temp": "Suhu", + "warn": "Amaran", + "uptime": "HIDUP", + "total": "Jumlah", + "free": "Bebas", + "used": "Telah diguna", + "days": "h", + "hours": "j", + "crit": "Krit", + "read": "Baca", + "write": "Tulis", + "gpu": "GPU", + "mem": "Mem", + "swap": "Penukaran" }, "quicklaunch": { "bookmark": "Tandabuku", "service": "Servis", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "search": "Carian", + "custom": "Khusus", + "visit": "Lawat", + "url": "URL", + "searchsuggestion": "Cadangan" }, "wmo": { "0-day": "Terik", "0-night": "Cerah", "1-day": "Sebahagian Besar Terik", "1-night": "Sebahagian Besar Cerah", - "63-day": "Hujan", - "63-night": "Hujan", "2-day": "Sebahagian Mendung", "2-night": "Sebahagian Mendung", "3-day": "Mendung", @@ -112,6 +483,8 @@ "57-night": "Gerimis Sejuk", "61-day": "Hujan Renyai", "61-night": "Hujan Renyai", + "63-day": "Hujan", + "63-night": "Hujan", "65-day": "Hujan Lebat", "65-night": "Hujan Lebat", "66-day": "Hujan Sejuk", @@ -124,11 +497,11 @@ "73-night": "Salji", "75-day": "Salji Lebat", "75-night": "Salji Lebat", - "81-day": "Rintik", "77-day": "Butiran Salji", "77-night": "Butiran Salji", "80-day": "Rintik Ringan", "80-night": "Rintik Ringan", + "81-day": "Rintik", "81-night": "Rintik", "82-day": "Rintik Lebat", "82-night": "Rintik Lebat", @@ -143,193 +516,26 @@ "99-day": "Ribut Hujan Batu", "99-night": "Ribut Hujan Batu" }, - "widget": { - "missing_type": "Jenis Widget Hilang: {{type}}", - "api_error": "Masalah API", - "status": "Status", - "information": "Informasi", - "url": "URL", - "raw_error": "Ralat Mentah", - "response_data": "Data Respon" - }, - "weather": { - "current": "Lokasi Sekarang", - "allow": "Klik untuk benarkan", - "updating": "Mengemas kini", - "wait": "Sila tunggu" - }, - "search": { - "placeholder": "Carian…" - }, - "nzbget": { - "remaining": "Baki", - "downloaded": "Telah Muat Turun", - "rate": "Kadar" - }, - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "offline": "Luar talian", - "error": "Ralat", - "unknown": "Tidak Diketahui", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" - }, - "changedetectionio": { - "totalObserved": "Jumlah Diperhatikan", - "diffsDetected": "Perbezaan Dikesan" - }, - "emby": { - "playing": "Sedang dimainkan", - "transcoding": "Transkoding", - "bitrate": "Kadar bit", - "no_active": "Tiada Strim Aktif", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" - }, - "tautulli": { - "playing": "Sedang Dimainkan", - "transcoding": "Transkoding", - "bitrate": "Kadar bit", - "no_active": "Tiada Strim Aktif", - "plex_connection_error": "Check Plex Connection" - }, - "plex": { - "streams": "Strim Aktif", - "movies": "Filem", - "tv": "Rancangan TV", - "albums": "Albums" - }, - "sabnzbd": { - "rate": "Kadar", - "queue": "Barisan", - "timeleft": "Masa Tinggal" - }, - "rutorrent": { - "active": "Aktif", - "upload": "Muat Naik", - "download": "Muat Turun" - }, - "transmission": { - "leech": "Leech", - "download": "Muat Turun", - "upload": "Muat Naik", - "seed": "Seed" - }, - "qbittorrent": { - "download": "Muat Turun", - "upload": "Muat Naik", - "leech": "Leech", - "seed": "Seed" - }, - "sonarr": { - "wanted": "Mahu", - "queued": "Dibaris Gilir", - "series": "Bersiri", - "queue": "Queue", - "unknown": "Unknown" - }, - "radarr": { - "wanted": "Mahu", - "missing": "Hilang", - "queued": "Dibaris Gilir", - "movies": "Filem", - "queue": "Queue", - "unknown": "Unknown" - }, - "bazarr": { - "missingEpisodes": "Episod Yang Hilang", - "missingMovies": "Filem Yang Hilang" - }, - "ombi": { - "pending": "Tertunda", - "approved": "Lulus", - "available": "Sudah Ada" - }, - "overseerr": { - "pending": "Tertangguh", - "approved": "Lulus", - "available": "Sudah Ada", - "processing": "Processing" - }, - "pihole": { - "queries": "Permintaan", - "blocked": "Disekat", - "gravity": "Gravity", - "blocked_percent": "Blocked %" - }, - "adguard": { - "queries": "Permintaan", - "blocked": "Disekat", - "filtered": "Ditapis", - "latency": "Kependaman" - }, - "speedtest": { - "upload": "Muat Naik", - "download": "Muat Turun", - "ping": "Ping" - }, - "portainer": { - "running": "Sedang Berjalan", - "stopped": "Terhenti", - "total": "Jumlah" - }, - "traefik": { - "routers": "Router", - "services": "Servis", - "middleware": "Perisian Tengah" - }, - "npm": { - "enabled": "Didayakan", - "disabled": "Dinyahdayakan", - "total": "Jumlah" - }, - "prowlarr": { - "enableIndexers": "Pengindeks", - "numberOfGrabs": "Capai", - "numberOfQueries": "Permintaan", - "numberOfFailGrabs": "Capai Yang Ggagal", - "numberOfFailQueries": "Permintaan Yang Gagal" - }, - "jackett": { - "configured": "Telah Dikonfigurasi", - "errored": "Telah Tersalah" - }, - "strelaysrv": { - "numActiveSessions": "Sesi", - "numConnections": "Penyambungan", - "dataRelayed": "Disalurkan", - "transferRate": "Kadar" - }, - "mastodon": { - "user_count": "Pengguna", - "status_count": "Pos", - "domain_count": "Domain" - }, - "authentik": { - "users": "Pengguna", - "loginsLast24H": "Logmasuk (24j)", - "failedLoginsLast24H": "Logmasuk Gagal (24j)" - }, "homebridge": { - "child_bridges_status": "{{ok}}/{{total}}", "available_update": "Sistem", "updates": "Kemaskini", "update_available": "Kemaskini Tersedia", "up_to_date": "Terkemaskini", "child_bridges": "Jambatan Anak", - "up": "Up", - "pending": "Pending", - "down": "Down" + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Hidup", + "pending": "Tertunda", + "down": "Mati" + }, + "healthchecks": { + "new": "Baharu", + "up": "Hidup", + "grace": "Tempoh Aman", + "down": "Mati", + "paused": "Tangguh", + "status": "Status", + "last_ping": "Ping terakhir", + "never": "Tiada ping" }, "watchtower": { "containers_scanned": "Terimbas", @@ -343,7 +549,7 @@ "indexers": "Pengindeks" }, "tubearchivist": { - "downloads": "Baris Gilir", + "downloads": "Barisan", "videos": "Video", "channels": "Saluran", "playlists": "Senarai Siar" @@ -351,17 +557,12 @@ "truenas": { "load": "Beban Sistem", "uptime": "Masa Hidup", - "alerts": "Amaran", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Tiada Strim Aktif", - "please_wait": "Sila tunggu" + "alerts": "Perhatian" }, "pyload": { "speed": "Kelajuan", "active": "Aktif", - "queue": "Baris Gilir", + "queue": "Barisan", "total": "Jumlah" }, "gluetun": { @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Saluran", - "hd": "HD" - }, - "ping": { - "error": "Ralat", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Penala", + "channelNumber": "Saluran", + "channelNetwork": "Rangkaian", + "signalStrength": "Kekuatan", + "signalQuality": "Kualiti", + "symbolQuality": "Kualiti", + "networkRate": "Kadar bit", + "clientIP": "Klien" }, "scrutiny": { "passed": "Lulus", @@ -386,62 +591,37 @@ "inbox": "Peti Masuk", "total": "Jumlah" }, - "deluge": { - "download": "Muat Turun", - "upload": "Muat Naik", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Bateri dicas", + "ups_load": "Beban UPS", + "ups_status": "Status UPS", + "online": "Dalam Talian", + "on_battery": "Guna bateri", + "low_battery": "Bateri lemah" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "wait": "Sila tunggu", + "no_devices": "Tiada Data Diterima Peranti" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" + "cpuLoad": "Beban CPU", + "memoryUsed": "Penggunaan memori", + "uptime": "Masa Hidup", + "numberOfLeases": "Sewaan" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Semua Strim", + "streams_active": "Strim Aktif", + "streams_xepg": "Saluran XEPG" + }, + "opendtu": { + "yieldDay": "Hari ini", + "absolutePower": "Kuasa", + "relativePower": "Kuasa %", + "limit": "Had/Batas" }, "opnsense": { - "cpu": "CPU Load", + "cpu": "Beban CPU", "memory": "Active Memory", "wanUpload": "WAN Upload", "wanDownload": "WAN Download" @@ -449,14 +629,9 @@ "moonraker": { "printer_state": "Printer State", "print_status": "Print Status", - "print_progress": "Progress", + "print_progress": "Kemajuan", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { "printer_state": "Status", "temp_tool": "Tool temp", @@ -467,6 +642,16 @@ "origin_ip": "Origin IP", "status": "Status" }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Hidup", + "down": "Mati", + "temp": "Suhu", + "disk": "Disk Usage", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", @@ -474,45 +659,55 @@ "memory_usage": "Memory" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", + "users": "Pengguna", + "photos": "Gambar", + "videos": "Video", "storage": "Storage" }, "uptimekuma": { "up": "Sites Up", "down": "Sites Down", - "uptime": "Uptime", + "uptime": "Masa Hidup", "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Siri", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Memori" + }, "komga": { "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" + "series": "Siri", + "books": "Buku" }, "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "days": "Hari", + "uptime": "Masa Hidup", + "volumeAvailable": "Sudah Ada" + }, + "mylar": { + "series": "Siri", + "issues": "Issues", + "wanted": "Mahu" + }, + "photoprism": { + "albums": "Album", + "photos": "Gambar", + "videos": "Video", + "people": "People" }, "fileflows": { - "queue": "Queue", + "queue": "Barisan", "processing": "Processing", - "processed": "Processed", + "processed": "Sudah diprosess", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -532,138 +727,320 @@ "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", - "failed": "Failed" + "failed": "Gagal" }, "unmanic": { "active_workers": "Active Workers", "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" }, "prometheus": { "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_down": "Sasaran Mati", + "targets_total": "Jumlah Sasaran" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Masa Hidup" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "Hari ini", + "gross_percent_1y": "Satu tahun", + "gross_percent_max": "Sepanjang masa" }, "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcasts": "Podkas", + "books": "Buku", + "podcastsDuration": "Tempoh", + "booksDuration": "Tempoh" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "people_home": "Orang Dirumah", + "lights_on": "Hidupkan Lampu", + "switches_on": "Hidupkan Suis" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "Pemantauan", + "updates": "Kemaskini" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Buku", + "authors": "Pengarang/Penulis", + "categories": "Memori", + "series": "Siri" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Barisan", + "downloadBytesRemaining": "Baki", + "downloadTotalBytes": "Size", + "downloadSpeed": "Kelajuan" }, "kavita": { - "seriesCount": "Series", + "seriesCount": "Siri", "totalFiles": "Files" }, - "azurePipelines": { - "result": "Result", + "azuredevops": { + "result": "Keputusan", "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "buildId": "ID Binaan", + "succeeded": "Berjaya", + "notStarted": "Belum Bermula", + "failed": "Gagal", + "canceled": "Dibatalkan", + "inProgress": "Sedang Diproses", + "totalPrs": "Jumlah PR", + "myPrs": "PR Sendiri", + "approved": "Lulus" + }, + "gamedig": { + "status": "Status", + "online": "Dalam Talian", + "offline": "Luar talian", + "name": "Nama", + "map": "Peta", + "currentPlayers": "Pemain Semasa", + "players": "Senarai pemain", + "maxPlayers": "Bilangan peserta maksimum", + "bots": "Bot", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Ralat", + "noRecent": "Luput tarikh", + "totalUsed": "Storan digunakan" + }, + "mealie": { + "recipes": "Resipi", + "users": "Pengguna", + "categories": "Memori", + "tags": "Tanda nama" + }, + "openmediavault": { + "downloading": "Sedang muat turun", + "total": "Jumlah", + "running": "Sedang jalan", + "stopped": "Terhenti", + "passed": "Lulus", + "failed": "Gagal" + }, + "openwrt": { + "uptime": "Masa Hidup", + "cpuLoad": "Purata Beban CPU (5m)", + "up": "Hidup", + "down": "Mati", + "bytesTx": "Terpancar", + "bytesRx": "Diterima" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Masa Hidup", + "lastDown": "Masa Mati Terakhir", + "downDuration": "Jangkamasa Kematian", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Tangguh", + "notyetchecked": "Belum Disemak", + "up": "Hidup", + "seemsdown": "Seperti Mati", + "down": "Mati", + "unknown": "Tidak Diketahui" + }, + "calendar": { + "inCinemas": "Di pawagam", + "physicalRelease": "Edaran fizikal", + "digitalRelease": "Edaran digital", + "noEventsToday": "Tiada agenda untuk hari ini!", + "noEventsFound": "Tiada agenda dijumpai" + }, + "romm": { + "platforms": "Platform", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domain", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Amaran", + "criticals": "Kritikal" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Gambar", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Adegan", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Filem", + "tags": "Tanda nama", + "oCount": "O Count" + }, + "tandoor": { + "users": "Pengguna", + "recipes": "Resipi", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Lokasi", + "labels": "Labels", + "users": "Pengguna", + "totalValue": "Jumlah nilai" + }, + "crowdsec": { + "alerts": "Perhatian", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Didayakan", + "disabled": "Dinyahdayakan", + "total": "Jumlah" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Muat turun", + "upload": "Muat naik" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Masa Hidup", + "version": "Versi" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tanda nama" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informasi", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Nama", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Dalam Talian", + "offline": "Luar talian" + }, + "beszel": { + "name": "Nama", + "systems": "Systems", + "up": "Hidup", + "down": "Mati", + "paused": "Tangguh", + "pending": "Tertunda", + "status": "Status", + "updated": "Dikemaskini", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sihat", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Hilang", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Beban", + "bcharge": "Bateri dicas", + "timeleft": "Masa Tinggal" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tanda nama" + }, + "slskd": { + "slskStatus": "Rangkaian", + "connected": "Connected", + "disconnected": "Sambungan Terputus", + "updateStatus": "Update", + "update_yes": "Sudah Ada", + "update_no": "Terkemaskini", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json index 38dd3012..d4597a83 100644 --- a/public/locales/nb-NO/common.json +++ b/public/locales/nb-NO/common.json @@ -248,7 +248,14 @@ "warn": "Warn", "total": "Total", "free": "Free", - "used": "Used" + "used": "Used", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap", + "_temp": "Temp" }, "changedetectionio": { "totalObserved": "Total Observed", @@ -375,7 +382,9 @@ }, "ping": { "error": "Error", - "ping": "Ping" + "ping": "Ping", + "up": "Up", + "down": "Down" }, "scrutiny": { "passed": "Passed", @@ -656,7 +665,19 @@ "seriesCount": "Series", "totalFiles": "Filer" }, - "azurePipelines": { + "gamedig": { + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +685,66 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" + }, + "uptimerobot": { + "uptime": "Uptime", + "status": "Status", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "opendtu": { + "relativePower": "Power %", + "yieldDay": "Today", + "limit": "Limit", + "absolutePower": "Power" + }, + "calendar": { + "physicalRelease": "Physical release", + "inCinemas": "In cinemas", + "digitalRelease": "Digital release" } } diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 5bcce505..e26ad05e 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -1,105 +1,272 @@ { - "widget": { - "missing_type": "Missend Widget Type: {{type}}", - "api_error": "API Error", - "status": "Status", - "information": "Informatie", - "url": "URL", - "raw_error": "Raw Fout", - "response_data": "Reactiegegevens" - }, - "resources": { - "total": "Totaal", - "free": "Vrij", - "used": "Gebruikt", - "load": "Laadt", - "cpu": "CPU", - "mem": "MEM", + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mnd", "days": "d", - "hours": "h", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "minutes": "m" + "hours": "u", + "minutes": "m", + "seconds": "s" }, - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "offline": "Offline", - "error": "Fout", - "unknown": "Onbekend", - "running": "Running", - "starting": "Starten", - "unhealthy": "Ongezond", - "not_found": "Niet Gevonden", - "exited": "Verlaten", - "partial": "Gedeeltelijk", - "healthy": "Gezond" - }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" - }, - "portainer": { - "running": "Draaiend", - "stopped": "Gestopt", - "total": "Totaal" + "widget": { + "missing_type": "Ontbrekende Widget Type: {{type}}", + "api_error": "API fout", + "information": "Informatie", + "status": "Status", + "url": "URL", + "raw_error": "Raw fout", + "response_data": "Responsgegevens" }, "weather": { - "updating": "Updaten", - "wait": "Even geduld", "current": "Huidige Locatie", - "allow": "Klik om toe te staan" + "allow": "Klik om toe te staan", + "updating": "Updaten", + "wait": "Even geduld" }, "search": { "placeholder": "Zoeken…" }, + "resources": { + "cpu": "CPU", + "mem": "GEH", + "total": "Totaal", + "free": "Vrij", + "used": "Gebruikt", + "load": "Belasting", + "temp": "TEMP", + "max": "Max", + "uptime": "UP" + }, + "unifi": { + "users": "Gebruikers", + "uptime": "Online", + "days": "Dagen", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Apparaten", + "lan_devices": "LAN Apparaten", + "wlan_devices": "WLAN Apparaten", + "lan_users": "LAN Gebruikers", + "wlan_users": "WLAN Gebruikers", + "up": "UP", + "down": "OFFLINE", + "wait": "Even geduld", + "empty_data": "Subsysteem status onbekend" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "GEH", + "cpu": "CPU", + "running": "Actief", + "offline": "Offline", + "error": "Fout", + "unknown": "Onbekend", + "healthy": "Gezond", + "starting": "Starten", + "unhealthy": "Ongezond", + "not_found": "Niet Gevonden", + "exited": "Gestopt", + "partial": "Gedeeltelijk" + }, + "ping": { + "error": "Fout", + "ping": "Ping", + "down": "Offline", + "up": "Online", + "not_available": "Niet Beschikbaar" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Fout", + "response": "Reactie", + "down": "Offline", + "up": "Online", + "not_available": "Niet Beschikbaar" + }, "emby": { "playing": "Afspelen", "transcoding": "Transcodering", - "bitrate": "Bitsnelheid", - "no_active": "Geen Actieve Steams", + "bitrate": "Bitrate", + "no_active": "Geen Actieve Streams", "movies": "Films", "series": "Series", "episodes": "Afleveringen", - "songs": "Liedjes" + "songs": "Nummers" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Bereikbaar", + "total": "Totaal", + "unknown": "Onbekend" + }, + "evcc": { + "pv_power": "Productie", + "battery_soc": "Batterij", + "grid_power": "Netstroom", + "home_power": "Consumptie", + "charge_power": "Oplader", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Delen" + }, + "freshrss": { + "subscriptions": "Abonnementen", + "unread": "Ongelezen" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Niet-geconfigureerd", + "connectionStatusConnecting": "Bezig met verbinden", + "connectionStatusAuthenticating": "Verificatie", + "connectionStatusPendingDisconnect": "In afwachting van loskoppelen", + "connectionStatusDisconnecting": "Verbinding verbreken", + "connectionStatusDisconnected": "Verbinding verbroken", + "connectionStatusConnected": "Verbonden", + "uptime": "Online", + "maxDown": "Max. Download", + "maxUp": "Max. Upload", + "down": "Offline", + "up": "Online", + "received": "Ontvangen", + "sent": "Verzonden", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Huidige verzoeken", + "requests_failed": "Gefaalde verzoeken" + }, + "changedetectionio": { + "totalObserved": "Totaal waargenomen", + "diffsDetected": "Verschillen Gedetecteerd" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Opnames", + "scheduled": "Gepland", + "passes": "Gepasseerd" }, "tautulli": { "playing": "Afspelen", "transcoding": "Transcodering", - "bitrate": "Bitsnelheid", + "bitrate": "Bitrate", "no_active": "Geen Actieve Streams", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Controleer Plex Connectie" + }, + "omada": { + "connectedAp": "Verbonden APs", + "activeUser": "Actieve apparaten", + "alerts": "Meldingen", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Verbonden switches" + }, + "nzbget": { + "rate": "Rate", + "remaining": "Resterend", + "downloaded": "Gedownload" + }, + "plex": { + "streams": "Actieve Streams", + "albums": "Albums", + "movies": "Films", + "tv": "TV Series" + }, + "sabnzbd": { + "rate": "Rate", + "queue": "Wachtrij", + "timeleft": "Resterende Tijd" }, "rutorrent": { "active": "Actief", "upload": "Upload", "download": "Download" }, + "transmission": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Delen" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Delen" + }, + "qnap": { + "cpuUsage": "CPU Verbruik", + "memUsage": "MEM Gebruik", + "systemTempC": "Systeem Temperatuur", + "poolUsage": "Pool Gebruik", + "volumeUsage": "Volume Gebruik", + "invalid": "ongeldig" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Delen" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Delen" + }, "sonarr": { "wanted": "Gezocht", - "queued": "In de wachtrij", + "queued": "Wachtrij", "series": "Series", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Wachtrij", + "unknown": "Onbekend" }, "radarr": { - "movies": "Films", "wanted": "Gezocht", - "queued": "In de wachtrij", - "missing": "Missend", - "queue": "Queue", - "unknown": "Unknown" + "missing": "Ontbreekt", + "queued": "Wachtrij", + "movies": "Films", + "queue": "Wachtrij", + "unknown": "Onbekend" + }, + "lidarr": { + "wanted": "Gezocht", + "queued": "Wachtrij", + "artists": "Artiesten" }, "readarr": { "wanted": "Gezocht", - "queued": "In de wachtrij", + "queued": "Wachtrij", "books": "Boeken" }, + "bazarr": { + "missingEpisodes": "Ontbrekende Afleveringen", + "missingMovies": "Ontbrekende Films" + }, "ombi": { "pending": "In afwachting", "approved": "Goedgekeurd", @@ -110,259 +277,293 @@ "approved": "Goedgekeurd", "available": "Beschikbaar" }, + "overseerr": { + "pending": "In afwachting", + "processing": "Verwerken", + "approved": "Goedgekeurd", + "available": "Beschikbaar" + }, + "netalertx": { + "total": "Totaal", + "connected": "Verbonden", + "new_devices": "Nieuwe Apparaten", + "down_alerts": "Geen verbinding" + }, "pihole": { - "queries": "Queries", + "queries": "Verzoeken", "blocked": "Geblokkeerd", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Geblokkeerde %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Verzoeken", + "blocked": "Geblokkeerd", + "filtered": "Gefilterd", + "latency": "Latentie" + }, + "speedtest": { + "upload": "Upload", + "download": "Download", + "ping": "Ping" + }, + "portainer": { + "running": "Actief", + "stopped": "Gestopt", + "total": "Totaal" + }, + "suwayomi": { + "download": "Gedownload", + "nondownload": "Niet gedownload", + "read": "Gelezen", + "unread": "Ongelezen", + "downloadedread": "Gedownload & gelezen", + "downloadedunread": "Gedownload & ongelezen", + "nondownloadedread": "Niet-gedownload & gelezen", + "nondownloadedunread": "Niet-gedownload & ongelezen" + }, + "tailscale": { + "address": "Adres", + "expires": "Verloopt", + "never": "Nooit", + "last_seen": "Laatst Gezien", + "now": "Nu", + "years": "{{number}}j", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}u", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Geleden" + }, + "technitium": { + "totalQueries": "Verzoeken", + "totalNoError": "Geslaagd", + "totalServerFailure": "Gefaald", + "totalNxDomain": "NX Domains", + "totalRefused": "Geweigerd", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Gecached", + "totalBlocked": "Geblokkeerd", + "totalDropped": "Dropped", + "totalClients": "Cliënten" + }, + "tdarr": { + "queue": "Wachtrij", + "processed": "Verwerkt", + "errored": "Fout", + "saved": "Opgeslagen" }, "traefik": { "routers": "Routers", - "services": "Services", + "services": "Diensten", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "Geen Actieve Streams", + "please_wait": "Even geduld aub" + }, "npm": { "enabled": "Ingeschakeld", "disabled": "Uitgeschakeld", "total": "Totaal" }, - "overseerr": { - "pending": "In Afwachting", - "approved": "Goedgekeurd", - "available": "Beschikbaar", - "processing": "Processing" - }, - "sabnzbd": { - "rate": "Rate", - "queue": "Wachtrij", - "timeleft": "Time Left" - }, - "nzbget": { - "rate": "Rate", - "remaining": "Resterend", - "downloaded": "Gedownload" - }, "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", + "configure": "Configureer een of meer crypto eenheden om bij te houden", "1hour": "1 Uur", - "7days": "7 Dagen", "1day": "1 Dag", + "7days": "7 Dagen", "30days": "30 Dagen" }, "gotify": { "apps": "Applicaties", - "clients": "Clients", + "clients": "Cliënten", "messages": "Berichten" }, "prowlarr": { - "enableIndexers": "Indexers", + "enableIndexers": "Indexeerders", "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" - }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "numberOfQueries": "Verzoeken", + "numberOfFailGrabs": "Ophalen mislukt", + "numberOfFailQueries": "Mislukte verzoeken" }, "jackett": { "configured": "Geconfigureerd", - "errored": "Errored" - }, - "bazarr": { - "missingEpisodes": "Ontbrekende Afleveringen", - "missingMovies": "Ontbrekende Films" - }, - "lidarr": { - "wanted": "Gezocht", - "queued": "In de wachtrij", - "artists": "Artists" - }, - "adguard": { - "queries": "Queries", - "blocked": "Geblokkeerd", - "filtered": "Filtered", - "latency": "Latency" - }, - "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domeinen" + "errored": "Fout" }, "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", + "numActiveSessions": "Sessies", + "numConnections": "Verbindingen", + "dataRelayed": "Omgeleid", "transferRate": "Rate" }, + "mastodon": { + "user_count": "Gebruikers", + "status_count": "Berichten", + "domain_count": "Domeinen" + }, + "medusa": { + "wanted": "Gezocht", + "queued": "Wachtrij", + "series": "Series" + }, + "minecraft": { + "players": "Spelers", + "version": "Versie", + "status": "Status", + "up": "Bereikbaar", + "down": "Offline" + }, + "miniflux": { + "read": "Gelezen", + "unread": "Ongelezen" + }, "authentik": { "users": "Gebruikers", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "loginsLast24H": "Logins (24u)", + "failedLoginsLast24H": "Mislukte Logins (24u)" }, "proxmox": { - "mem": "MEM", + "mem": "GEH", "cpu": "CPU", "lxc": "LXC", - "vms": "VMs" - }, - "unifi": { - "users": "Gebruikers", - "lan_users": "LAN Gebruikers", - "uptime": "Uptime van het systeem", - "days": "Dagen", - "wan": "WAN", - "wlan_users": "WLAN Gebruikers", - "up": "UP", - "down": "DOWN", - "wait": "Wachten aub", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Apparaten", - "lan_devices": "LAN Apparaten", - "wlan_devices": "WLAN Apparaten", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Actieve Streams", - "movies": "Films", - "tv": "TV Series", - "albums": "Albums" + "vms": "VM's" }, "glances": { "cpu": "CPU", - "wait": "Please wait", + "load": "Belasting", + "wait": "Even geduld", "temp": "TEMP", + "_temp": "Temp", + "warn": "Waarschuwing", "uptime": "UP", + "total": "Totaal", + "free": "Vrij", + "used": "Gebruikt", "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "hours": "u", + "crit": "Kritiek", + "read": "Gelezen", + "write": "Schrijven", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Totaal waargenomen", - "diffsDetected": "Verschillen Gedetecteerd" + "quicklaunch": { + "bookmark": "Bladwijzer", + "service": "Dienst", + "search": "Zoek", + "custom": "Aangepast", + "visit": "Bezoek", + "url": "URL", + "searchsuggestion": "Suggestie" }, "wmo": { "0-day": "Zonnig", "0-night": "Helder", "1-day": "Overwegend Zonnig", "1-night": "Overwegend Helder", - "3-day": "Bewolkt", - "99-night": "Onweersbui Met Hagel", - "3-night": "Bewolkt", "2-day": "Gedeeltelijk Bewolkt", "2-night": "Gedeeltelijk Bewolkt", + "3-day": "Bewolkt", + "3-night": "Bewolkt", "45-day": "Mistig", "45-night": "Mistig", "48-day": "Mistig", "48-night": "Mistig", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-night": "Heavy Drizzle", - "55-day": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", + "51-day": "Motregen", + "51-night": "Motregen", + "53-day": "Druilerig", + "53-night": "Druilerig", + "55-day": "Zware motregen", + "55-night": "Zware motregen", + "56-day": "Lichte opvriezende motregen", + "56-night": "Lichte opvriezende motregen", + "57-day": "Opvriezende motregen", + "57-night": "Opvriezende motregen", "61-day": "Lichte Regen", "61-night": "Lichte Regen", "63-day": "Regen", "63-night": "Regen", "65-day": "Hevige Regen", "65-night": "Hevige Regen", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", + "66-day": "Opvriezende regen", + "66-night": "Opvriezende regen", + "67-day": "Opvriezende regen", + "67-night": "Opvriezende regen", "71-day": "Lichte Sneeuw", "71-night": "Lichte Sneeuw", "73-day": "Sneeuw", "73-night": "Sneeuw", "75-day": "Hevige Sneeuw", "75-night": "Hevige Sneeuw", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "82-day": "Heavy Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", + "77-day": "Sneeuw korrels", + "77-night": "Sneeuw korrels", + "80-day": "Lichte regenbui", + "80-night": "Lichte regenbui", + "81-day": "Regenbui", + "81-night": "Regenbui", + "82-day": "Zware Regenbuien", + "82-night": "Zware Regenbuien", + "85-day": "Sneeuwbuien", + "85-night": "Sneeuwbuien", + "86-day": "Sneeuwbuien", + "86-night": "Sneeuwbuien", "95-day": "Onweersbui", "95-night": "Onweersbui", "96-day": "Onweersbui Met Hagel", "96-night": "Onweersbui Met Hagel", - "99-day": "Onweersbui Met Hagel" - }, - "quicklaunch": { - "bookmark": "Bladwijzer", - "service": "Service", - "search": "Zoek", - "custom": "Custom", - "visit": "Bezoek", - "url": "URL" + "99-day": "Onweersbui Met Hagel", + "99-night": "Onweersbui Met Hagel" }, "homebridge": { "available_update": "Systeem", "updates": "Updates", "update_available": "Update Beschikbaar", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", + "up_to_date": "Bijgewerkt", + "child_bridges": "Onderliggende bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "In afwachting van", - "down": "Down" + "up": "Online", + "pending": "In afwachting", + "down": "Offline" + }, + "healthchecks": { + "new": "Nieuw", + "up": "Online", + "grace": "In de respijt periode", + "down": "Offline", + "paused": "Gepauzeerd", + "status": "Status", + "last_ping": "Laatste Ping", + "never": "Nog geen pings" + }, + "watchtower": { + "containers_scanned": "Gescanned", + "containers_updated": "Bijgewerkt", + "containers_failed": "Gefaald" }, "autobrr": { "approvedPushes": "Goedgekeurd", "rejectedPushes": "Afgewezen", "filters": "Filters", - "indexers": "Indexers" - }, - "watchtower": { - "containers_scanned": "Gescanned", - "containers_updated": "Updated", - "containers_failed": "Gefaald" + "indexers": "Indexeerders" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", + "downloads": "Wachtrij", + "videos": "Video's", "channels": "Kanalen", - "playlists": "Playlists" + "playlists": "Speellijsten" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Geen Actieve Streams", - "please_wait": "Even geduld aub" + "load": "Belasting", + "uptime": "Online", + "alerts": "Meldingen" }, "pyload": { "speed": "Snelheid", "active": "Actief", - "total": "Totaal", - "queue": "Wachtrij" + "queue": "Wachtrij", + "total": "Totaal" }, "gluetun": { "public_ip": "Publiek IP", @@ -371,74 +572,53 @@ }, "hdhomerun": { "channels": "Kanalen", - "hd": "HD" - }, - "ping": { - "error": "Fout", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Kanaal", + "channelNetwork": "Netwerk", + "signalStrength": "Sterkte", + "signalQuality": "Kwaliteit", + "symbolQuality": "Kwaliteit", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { - "passed": "Passed", + "passed": "Geslaagd", "failed": "Gefaald", "unknown": "Onbekend" }, "paperlessngx": { - "inbox": "Inbox", + "inbox": "Postvak In", "total": "Totaal" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Wachtrij", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Gelezen", - "unread": "Ongelezen" + "peanut": { + "battery_charge": "Batterij opladen", + "ups_load": "UPS-belasting", + "ups_status": "UPS status", + "online": "Bereikbaar", + "on_battery": "Op batterij", + "low_battery": "Batterij bijna leeg" }, "nextdns": { "wait": "Even geduld aub", "no_devices": "Geen Apparaat Data Ontvangen" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Actieve apparaten", - "alerts": "Meldingen", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Belasting", "memoryUsed": "Geheugen Gebruikt", - "uptime": "Uptime", + "uptime": "Online", "numberOfLeases": "Leases" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Alle Streams", + "streams_active": "Actieve Streams", + "streams_xepg": "XEPG Kanalen" + }, + "opendtu": { + "yieldDay": "Vandaag", + "absolutePower": "Vermogen", + "relativePower": "Vermogen %", + "limit": "Limiet" }, "opnsense": { "cpu": "CPU Belasting", @@ -447,85 +627,100 @@ "wanDownload": "WAN Download" }, "moonraker": { - "printer_state": "Printer State", + "printer_state": "Printer Status", "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "print_progress": "Voortgang", + "layers": "Lagen" }, "octoprint": { "printer_state": "Status", "temp_tool": "Tool temp", "temp_bed": "Bed temp", - "job_completion": "Completion" + "job_completion": "Voltooiing" }, "cloudflared": { - "origin_ip": "Origin IP", + "origin_ip": "Bron IP", "status": "Status" }, + "pfsense": { + "load": "Gem. Load", + "memory": "Mem Gebruik", + "wanStatus": "WAN Status", + "up": "Online", + "down": "Offline", + "temp": "Temp", + "disk": "Schijf Gebruik", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", + "datastore_usage": "Data Opslag", + "failed_tasks_24h": "Gefaalde taken 24u", "cpu_usage": "CPU", "memory_usage": "Geheugen" }, "immich": { "users": "Gebruikers", "photos": "Foto's", - "videos": "Videos", + "videos": "Video's", "storage": "Opslag" }, "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", + "up": "Sites Bereikbaar", + "down": "Sites Onbereikbaar", + "uptime": "Online", "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archieven", + "chapters": "Hoofdstukken", + "categories": "Categorieën" + }, "komga": { "libraries": "Bibliotheken", "series": "Series", "books": "Boeken" }, + "diskstation": { + "days": "Dagen", + "uptime": "Online", + "volumeAvailable": "Beschikbaar" + }, "mylar": { - "wanted": "Wanted", "series": "Series", - "issues": "Problemen" + "issues": "Problemen", + "wanted": "Gezocht" }, "photoprism": { "albums": "Albums", "photos": "Foto's", - "videos": "Videos", + "videos": "Video's", "people": "Personen" }, - "diskstation": { - "days": "Dagen", - "uptime": "Uptime", - "volumeAvailable": "Beschikbaar" - }, "fileflows": { "queue": "Wachtrij", - "processing": "Processing", - "processed": "Processed", + "processing": "Verwerken", + "processed": "Verwerkt", "time": "Tijd" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "datasources": "Data Bronnen", + "totalalerts": "Totaal Alerts", + "alertstriggered": "Getriggerde Alerts" }, "nextcloud": { "cpuload": "Cpu Belasting", "memoryusage": "Geheugen Gebruik", "freespace": "Vrije Ruimte", "activeusers": "Actieve Gebruikers", - "numfiles": "Files", - "numshares": "Shared Items" + "numfiles": "Bestanden", + "numshares": "Gedeelde items" }, "kopia": { "status": "Status", @@ -539,36 +734,24 @@ "total_workers": "Totale Werkers", "records_total": "Wachtrij Lengte" }, - "healthchecks": { - "new": "Nieuw", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Gepauzeerd", - "status": "Status", - "last_ping": "Laatste Ping", - "never": "Nog geen pings" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Doelen bereikbaar", + "targets_down": "Doelen onbereikbaar", + "targets_total": "Totaal aantal doelen" }, - "minecraft": { - "players": "Spelers", - "version": "Versie", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Bereikbaar", + "down": "Sites Onbereikbaar", + "uptime": "Online" }, "ghostfolio": { "gross_percent_today": "Vandaag", "gross_percent_1y": "Een jaar", - "gross_percent_max": "All time" + "gross_percent_max": "Altijd" }, "audiobookshelf": { "podcasts": "Podcasts", @@ -577,93 +760,287 @@ "booksDuration": "Duur" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "people_home": "Mensen thuis", + "lights_on": "Lichten aan", + "switches_on": "Schakelaars aan" }, "whatsupdocker": { - "monitoring": "Monitoring", + "monitoring": "Monitoren", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Boeken", + "authors": "Auteurs", + "categories": "Categorieën", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Wachtrij", + "downloadBytesRemaining": "Resterend", + "downloadTotalBytes": "Grootte", + "downloadSpeed": "Snelheid" }, "kavita": { "seriesCount": "Series", - "totalFiles": "Files" + "totalFiles": "Bestanden" }, - "azurePipelines": { - "result": "Result", + "azuredevops": { + "result": "Resultaat", "status": "Status", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "succeeded": "Geslaagd", + "notStarted": "Niet gestart", + "failed": "Gefaald", + "canceled": "Afgebroken", + "inProgress": "Voortgaand", + "totalPrs": "Totaal PRs", + "myPrs": "Mijn PR's", + "approved": "Goedgekeurd" + }, + "gamedig": { + "status": "Status", + "online": "Bereikbaar", + "offline": "Offline", + "name": "Naam", + "map": "Kaart", + "currentPlayers": "Huidige spelers", + "players": "Spelers", + "maxPlayers": "Max spelers", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Fouten", + "noRecent": "Verouderd", + "totalUsed": "Gebruikte opslag" + }, + "mealie": { + "recipes": "Recepten", + "users": "Gebruikers", + "categories": "Categorieën", + "tags": "Label" + }, + "openmediavault": { + "downloading": "Downloaden", + "total": "Totaal", + "running": "Actief", + "stopped": "Gestopt", + "passed": "Geslaagd", + "failed": "Gefaald" + }, + "openwrt": { + "uptime": "Online", + "cpuLoad": "CPU Load Gem. (5m)", + "up": "Online", + "down": "Offline", + "bytesTx": "Verzonden", + "bytesRx": "Ontvangen" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Online", + "lastDown": "Laatste Downtime", + "downDuration": "Duur Downtime", + "sitesUp": "Sites Bereikbaar", + "sitesDown": "Sites Onbereikbaar", + "paused": "Gepauzeerd", + "notyetchecked": "Nog niet gecontroleerd", + "up": "Online", + "seemsdown": "Lijkt onbereikbaar", + "down": "Offline", + "unknown": "Onbekend" + }, + "calendar": { + "inCinemas": "In de bioscoop", + "physicalRelease": "Fysieke versie", + "digitalRelease": "Digitale versie", + "noEventsToday": "Geen gebeurtenissen voor vandaag!", + "noEventsFound": "Geen gebeurtenissen gevonden" + }, + "romm": { + "platforms": "Platformen", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots ", + "totalfilesize": "Totale grootte" + }, + "mailcow": { + "domains": "Domeinen", + "mailboxes": "Mailboxen", + "mails": "Mails", + "storage": "Opslag" + }, + "netdata": { + "warnings": "Waarschuwingen", + "criticals": "Kritiek" + }, + "plantit": { + "events": "Gebeurtenissen", + "plants": "Planten", + "photos": "Foto's", + "species": "Soorten" + }, + "gitea": { + "notifications": "Notificaties", + "issues": "Problemen", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scènes", + "scenesPlayed": "Afgespeelde scènes", + "playCount": "Totaal aantal keer gespeeld", + "playDuration": "Tijd Bekeken", + "sceneSize": "Grootte Scènes", + "sceneDuration": "Duur scènes", + "images": "Afbeeldingen", + "imageSize": "Afbeeldingsgrootte", + "galleries": "Galerijen", + "performers": "Uitvoerenden", + "studios": "Studio's", + "movies": "Films", + "tags": "Label", + "oCount": "O Aantal" + }, + "tandoor": { + "users": "Gebruikers", + "recipes": "Recepten", + "keywords": "Trefwoorden" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "Met garantie", + "locations": "Locaties", + "labels": "Labels", + "users": "Gebruikers", + "totalValue": "Totale waarde" + }, + "crowdsec": { + "alerts": "Meldingen", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Verbonden", + "enabled": "Ingeschakeld", + "disabled": "Uitgeschakeld", + "total": "Totaal" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Verouderd", + "banned": "Verbannen" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Aandelen", + "loading": "Laden", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Ongeldige configuratie" + }, + "frigate": { + "cameras": "Camera's", + "uptime": "Online", + "version": "Versie" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Label" + }, + "zabbix": { + "unclassified": "Niet geclassificeerd", + "information": "Informatie", + "warning": "Waarschuwingen", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Voertuig", + "vehicles": "Voertuigen", + "serviceRecords": "Service Historie", + "reminders": "Herinneringen", + "nextReminder": "Volgende Herinnering", + "none": "Geen" + }, + "vikunja": { + "projects": "Actieve Projecten", + "tasks7d": "Taken Die Deze Week Af Moeten Zijn", + "tasksOverdue": "Achterstallige Taken", + "tasksInProgress": "Taken In Uitvoering" + }, + "headscale": { + "name": "Naam", + "address": "Adres", + "last_seen": "Laatst Gezien", + "status": "Status", + "online": "Bereikbaar", + "offline": "Offline" + }, + "beszel": { + "name": "Naam", + "systems": "Systemen", + "up": "Online", + "down": "Offline", + "paused": "Gepauzeerd", + "pending": "In afwachting", + "status": "Status", + "updated": "Bijgewerkt", + "cpu": "CPU", + "memory": "GEH", + "disk": "Schijf", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Gesynchroniseerd", + "outOfSync": "Niet gesynchroniseerd", + "healthy": "Gezond", + "degraded": "Gedegradeerd", + "progressing": "Doorvoeren", + "missing": "Ontbreekt", + "suspended": "Onderbroken" + }, + "spoolman": { + "loading": "Laden" + }, + "gitlab": { + "groups": "Groepen", + "issues": "Problemen", + "merges": "Merge Verzoeken", + "projects": "Projecten" + }, + "apcups": { + "status": "Status", + "load": "Belasting", + "bcharge": "Batterij opladen", + "timeleft": "Resterende Tijd" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Label" + }, + "slskd": { + "slskStatus": "Netwerk", + "connected": "Verbonden", + "disconnected": "Verbinding verbroken", + "updateStatus": "Update", + "update_yes": "Beschikbaar", + "update_no": "Bijgewerkt", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Bestanden" } } diff --git a/public/locales/no/common.json b/public/locales/no/common.json new file mode 100644 index 00000000..67710fe1 --- /dev/null +++ b/public/locales/no/common.json @@ -0,0 +1,1046 @@ +{ + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mnd", + "days": "d", + "hours": "t", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Manglende Widget Type: {{type}}", + "api_error": "API-feil", + "information": "Informasjon", + "status": "Status", + "url": "Nettadresse", + "raw_error": "Rå feil", + "response_data": "Responsdata" + }, + "weather": { + "current": "Gjeldende posisjon", + "allow": "Trykk for å tillate", + "updating": "Oppdaterer", + "wait": "Vennligst vent" + }, + "search": { + "placeholder": "Søk…" + }, + "resources": { + "cpu": "CPU", + "mem": "MEM", + "total": "Totalt", + "free": "Ledig", + "used": "Brukt", + "load": "Last", + "temp": "TEMP", + "max": "Maks", + "uptime": "OPP" + }, + "unifi": { + "users": "Brukere", + "uptime": "Oppetid", + "days": "Dager", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Enheter", + "lan_devices": "LAN-enheter", + "wlan_devices": "WLAN-enheter", + "lan_users": "LAN Brukere", + "wlan_users": "WLAN Brukere", + "up": "OPP", + "down": "NEDE", + "wait": "Vennligst vent", + "empty_data": "Ukjent undersystemstatus" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "MEM", + "cpu": "CPU", + "running": "Kjører", + "offline": "Frakoblet", + "error": "Feil", + "unknown": "Ukjent", + "healthy": "Friskt", + "starting": "Starter", + "unhealthy": "Usunn", + "not_found": "Not Found", + "exited": "Exited", + "partial": "Delvis" + }, + "ping": { + "error": "Feil", + "ping": "Responstid", + "down": "Nede", + "up": "Oppe", + "not_available": "Ikke tilgjengelig" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Feil", + "response": "Svar", + "down": "Nede", + "up": "Oppe", + "not_available": "Ikke tilgjengelig" + }, + "emby": { + "playing": "Spiller", + "transcoding": "Transkoding", + "bitrate": "Bitrate", + "no_active": "Ingen aktive strømminger", + "movies": "Film", + "series": "Serie", + "episodes": "Episoder", + "songs": "Sanger" + }, + "esphome": { + "offline": "Frakoblet", + "offline_alt": "Frakoblet", + "online": "På nett", + "total": "Totalt", + "unknown": "Ukjent" + }, + "evcc": { + "pv_power": "Produksjon", + "battery_soc": "Batteri", + "grid_power": "Nett", + "home_power": "Forbruk", + "charge_power": "Lader", + "kilowatt": "kW" + }, + "flood": { + "download": "Last ned", + "upload": "Opplastning", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Abonnementer", + "unread": "Ulest" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Ikke konfigurert", + "connectionStatusConnecting": "Kobler til", + "connectionStatusAuthenticating": "Autentisering", + "connectionStatusPendingDisconnect": "Venter på frakobling", + "connectionStatusDisconnecting": "Kobler fra", + "connectionStatusDisconnected": "Frakoblet", + "connectionStatusConnected": "Tilkoblet", + "uptime": "Oppetid", + "maxDown": "Maks. Ned", + "maxUp": "Max. Opp", + "down": "Nede", + "up": "Oppe", + "received": "Mottatt", + "sent": "Sendt", + "externalIPAddress": "Ekstern IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Oppstrøms", + "requests": "Aktuelle forespørsler", + "requests_failed": "Mislykkede forespørsler" + }, + "changedetectionio": { + "totalObserved": "Totalt sett", + "diffsDetected": "Diffs oppdaget" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Opptak", + "scheduled": "Tidsplan", + "passes": "Pasninger" + }, + "tautulli": { + "playing": "Spiller", + "transcoding": "Transkoding", + "bitrate": "Bitrate", + "no_active": "Ingen aktive strømminger", + "plex_connection_error": "Kontroller Plex tilkoblingen" + }, + "omada": { + "connectedAp": "Tilkoblede AP'er", + "activeUser": "Aktive enheter", + "alerts": "Varsler", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Tilkoblede switcher" + }, + "nzbget": { + "rate": "Ranger", + "remaining": "Gjenstående", + "downloaded": "Nedlastede" + }, + "plex": { + "streams": "Aktive strømmninger", + "albums": "Album", + "movies": "Film", + "tv": "TV serier" + }, + "sabnzbd": { + "rate": "Ranger", + "queue": "Kø", + "timeleft": "Gjenstående tid" + }, + "rutorrent": { + "active": "Aktiv", + "upload": "Opplastning", + "download": "Last ned" + }, + "transmission": { + "download": "Last ned", + "upload": "Opplastning", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Last ned", + "upload": "Opplastning", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Bruk", + "memUsage": "Minnebruk", + "systemTempC": "System temp", + "poolUsage": "Pool Bruk", + "volumeUsage": "Volumbruk", + "invalid": "Ugyldig" + }, + "deluge": { + "download": "Last ned", + "upload": "Opplastning", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Last ned", + "upload": "Opplastning", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Ønsket", + "queued": "Ventende", + "series": "Serie", + "queue": "Kø", + "unknown": "Ukjent" + }, + "radarr": { + "wanted": "Ønsket", + "missing": "Mangler", + "queued": "Ventende", + "movies": "Film", + "queue": "Kø", + "unknown": "Ukjent" + }, + "lidarr": { + "wanted": "Ønsket", + "queued": "Ventende", + "artists": "Artister" + }, + "readarr": { + "wanted": "Ønsket", + "queued": "Ventende", + "books": "Bøker" + }, + "bazarr": { + "missingEpisodes": "Manglende episoder", + "missingMovies": "Manglende filmer" + }, + "ombi": { + "pending": "Ventende", + "approved": "Godkjent", + "available": "Tilgjengelig" + }, + "jellyseerr": { + "pending": "Ventende", + "approved": "Godkjent", + "available": "Tilgjengelig" + }, + "overseerr": { + "pending": "Ventende", + "processing": "Behandler", + "approved": "Godkjent", + "available": "Tilgjengelig" + }, + "netalertx": { + "total": "Totalt", + "connected": "Tilkoblet", + "new_devices": "Nye enheter", + "down_alerts": "Down Alerts" + }, + "pihole": { + "queries": "Spørringer", + "blocked": "Blokkert", + "blocked_percent": "Blokkert %", + "gravity": "Gravitasjon" + }, + "adguard": { + "queries": "Spørringer", + "blocked": "Blokkert", + "filtered": "Filtrert", + "latency": "Responstid" + }, + "speedtest": { + "upload": "Opplastning", + "download": "Last ned", + "ping": "Responstid" + }, + "portainer": { + "running": "Kjører", + "stopped": "Stoppet", + "total": "Totalt" + }, + "suwayomi": { + "download": "Nedlastede", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Ulest", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Adresse", + "expires": "Utgår", + "never": "Aldri", + "last_seen": "Sist sett", + "now": "Nå", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Spørringer", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blokkert", + "totalDropped": "Dropped", + "totalClients": "Klienter" + }, + "tdarr": { + "queue": "Kø", + "processed": "Behandlet", + "errored": "Feilet", + "saved": "Lagret" + }, + "traefik": { + "routers": "Rutere", + "services": "Tjenester", + "middleware": "Mellomvare" + }, + "navidrome": { + "nothing_streaming": "Ingen aktive strømminger", + "please_wait": "Vennligst vent" + }, + "npm": { + "enabled": "Aktivert", + "disabled": "Deaktivert", + "total": "Totalt" + }, + "coinmarketcap": { + "configure": "Konfigurer én eller flere krypteringsvalutaer som skal spores", + "1hour": "Én time", + "1day": "Én dag", + "7days": "7 dager", + "30days": "30 dager" + }, + "gotify": { + "apps": "Applikasjoner", + "clients": "Klienter", + "messages": "Meldinger" + }, + "prowlarr": { + "enableIndexers": "Indeksere", + "numberOfGrabs": "Tatt", + "numberOfQueries": "Spørringer", + "numberOfFailGrabs": "Feil ved henting", + "numberOfFailQueries": "Spørring mislyktes" + }, + "jackett": { + "configured": "Konfigurert", + "errored": "Feilet" + }, + "strelaysrv": { + "numActiveSessions": "Sesjoner", + "numConnections": "Tilkoblinger", + "dataRelayed": "Videresendt", + "transferRate": "Ranger" + }, + "mastodon": { + "user_count": "Brukere", + "status_count": "Innlegg", + "domain_count": "Domener" + }, + "medusa": { + "wanted": "Ønsket", + "queued": "Ventende", + "series": "Serie" + }, + "minecraft": { + "players": "Spillere", + "version": "Versjon", + "status": "Status", + "up": "På nett", + "down": "Frakoblet" + }, + "miniflux": { + "read": "Read", + "unread": "Ulest" + }, + "authentik": { + "users": "Brukere", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Mislykket innlogginger (24t)" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "load": "Last", + "wait": "Vennligst vent", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Advarsel", + "uptime": "OPP", + "total": "Totalt", + "free": "Ledig", + "used": "Brukt", + "days": "d", + "hours": "t", + "crit": "Crit", + "read": "Read", + "write": "Skriv", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Bokmerke", + "service": "Tjeneste", + "search": "Søk", + "custom": "Egendefinert", + "visit": "Besøk", + "url": "Nettadresse", + "searchsuggestion": "Forslag" + }, + "wmo": { + "0-day": "Solfylt", + "0-night": "Klart", + "1-day": "Lettskyet", + "1-night": "Lettskyet", + "2-day": "Delvis skyet", + "2-night": "Delvis skyet", + "3-day": "Skyet", + "3-night": "Skyet", + "45-day": "Tåke", + "45-night": "Tåke", + "48-day": "Tåke", + "48-night": "Tåke", + "51-day": "Lett yr", + "51-night": "Lett yr", + "53-day": "Yr", + "53-night": "Yr", + "55-day": "Tungt Regn", + "55-night": "Tungt Regn", + "56-day": "Lett underkjølt regn", + "56-night": "Lett underkjølt regn", + "57-day": "Underkjølt Regn", + "57-night": "Underkjølt Regn", + "61-day": "Lett regn", + "61-night": "Lett regn", + "63-day": "Regn", + "63-night": "Regn", + "65-day": "Kraftig regn", + "65-night": "Kraftig regn", + "66-day": "Underkjølt regn", + "66-night": "Underkjølt regn", + "67-day": "Underkjølt regn", + "67-night": "Underkjølt regn", + "71-day": "Lett snøvær", + "71-night": "Lett snøvær", + "73-day": "Snø", + "73-night": "Snø", + "75-day": "Tett snø", + "75-night": "Tett snø", + "77-day": "Snøkorn", + "77-night": "Snøkorn", + "80-day": "Lette Regnbyger", + "80-night": "Lette Regnbyger", + "81-day": "Regnbyger", + "81-night": "Regnbyger", + "82-day": "Tunge regnbyger", + "82-night": "Tunge regnbyger", + "85-day": "Snøbyger", + "85-night": "Snøbyger", + "86-day": "Snøbyger", + "86-night": "Snøbyger", + "95-day": "Tordenbyger", + "95-night": "Tordenbyger", + "96-day": "Tordenvær med hagl", + "96-night": "Tordenvær med hagl", + "99-day": "Tordenvær med hagl", + "99-night": "Tordenvær med hagl" + }, + "homebridge": { + "available_update": "System", + "updates": "Oppdateringer", + "update_available": "Oppdatering tilgjengelig", + "up_to_date": "Oppdatert", + "child_bridges": "Child Bridges", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Oppe", + "pending": "Ventende", + "down": "Nede" + }, + "healthchecks": { + "new": "Ny", + "up": "Oppe", + "grace": "I rammeperiode", + "down": "Nede", + "paused": "Pauset", + "status": "Status", + "last_ping": "Siste Ping", + "never": "Ingen ping ennå" + }, + "watchtower": { + "containers_scanned": "Skannet", + "containers_updated": "Oppdatert", + "containers_failed": "Mislyktes" + }, + "autobrr": { + "approvedPushes": "Godkjent", + "rejectedPushes": "Avvist", + "filters": "Filtre", + "indexers": "Indeksere" + }, + "tubearchivist": { + "downloads": "Kø", + "videos": "Videoer", + "channels": "Kanal", + "playlists": "Spillelister" + }, + "truenas": { + "load": "Last på systemet", + "uptime": "Oppetid", + "alerts": "Varsler" + }, + "pyload": { + "speed": "Hastighet", + "active": "Aktiv", + "queue": "Kø", + "total": "Totalt" + }, + "gluetun": { + "public_ip": "Offentlig IP", + "region": "Region", + "country": "Land" + }, + "hdhomerun": { + "channels": "Kanal", + "hd": "HD", + "tunerCount": "Tunere", + "channelNumber": "Kanal", + "channelNetwork": "Nettverk", + "signalStrength": "Styrke", + "signalQuality": "Kvalitet", + "symbolQuality": "Kvalitet", + "networkRate": "Bitrate", + "clientIP": "Klient" + }, + "scrutiny": { + "passed": "Bestått", + "failed": "Mislyktes", + "unknown": "Ukjent" + }, + "paperlessngx": { + "inbox": "Innboks", + "total": "Totalt" + }, + "peanut": { + "battery_charge": "Batteriladning", + "ups_load": "UPS last", + "ups_status": "UPS status", + "online": "På nett", + "on_battery": "På batteri", + "low_battery": "Lavt batterinivå" + }, + "nextdns": { + "wait": "Vennligst vent", + "no_devices": "Ingen enhetsdata mottatt" + }, + "mikrotik": { + "cpuLoad": "Prosessorbelastning", + "memoryUsed": "Minne brukt", + "uptime": "Oppetid", + "numberOfLeases": "Leases" + }, + "xteve": { + "streams_all": "Alle strømminger", + "streams_active": "Aktive strømmninger", + "streams_xepg": "XEPG Kanaler" + }, + "opendtu": { + "yieldDay": "Idag", + "absolutePower": "Effekt", + "relativePower": "Effekt %", + "limit": "Grense" + }, + "opnsense": { + "cpu": "Prosessorbelastning", + "memory": "Aktiv minne", + "wanUpload": "WAN Opplasting", + "wanDownload": "WAN Nedlasting" + }, + "moonraker": { + "printer_state": "Skriver tilstand", + "print_status": "Print Status", + "print_progress": "Progresjon", + "layers": "Lag" + }, + "octoprint": { + "printer_state": "Status", + "temp_tool": "Verktøy temperatur", + "temp_bed": "Seng temperatur", + "job_completion": "Completion" + }, + "cloudflared": { + "origin_ip": "Origin IP", + "status": "Status" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Oppe", + "down": "Nede", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" + }, + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Failed Tasks 24h", + "cpu_usage": "CPU", + "memory_usage": "Memory" + }, + "immich": { + "users": "Brukere", + "photos": "Photos", + "videos": "Videoer", + "storage": "Lagring" + }, + "uptimekuma": { + "up": "Nettsteder opp", + "down": "Sites Down", + "uptime": "Oppetid", + "incident": "Incident", + "m": "m" + }, + "atsumeru": { + "series": "Serie", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "komga": { + "libraries": "Libraries", + "series": "Serie", + "books": "Bøker" + }, + "diskstation": { + "days": "Dager", + "uptime": "Oppetid", + "volumeAvailable": "Tilgjengelig" + }, + "mylar": { + "series": "Serie", + "issues": "Issues", + "wanted": "Ønsket" + }, + "photoprism": { + "albums": "Album", + "photos": "Photos", + "videos": "Videoer", + "people": "People" + }, + "fileflows": { + "queue": "Kø", + "processing": "Behandler", + "processed": "Behandlet", + "time": "Time" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Dashboards", + "datasources": "Data Sources", + "totalalerts": "Total Alerts", + "alertstriggered": "Alerts Triggered" + }, + "nextcloud": { + "cpuload": "Cpu Load", + "memoryusage": "Memory Usage", + "freespace": "Free Space", + "activeusers": "Active Users", + "numfiles": "Files", + "numshares": "Shared Items" + }, + "kopia": { + "status": "Status", + "size": "Size", + "lastrun": "Last Run", + "nextrun": "Next Run", + "failed": "Mislyktes" + }, + "unmanic": { + "active_workers": "Active Workers", + "total_workers": "Totalt antall Arbeidere", + "records_total": "Kø lengde" + }, + "pterodactyl": { + "servers": "Servere", + "nodes": "Noder" + }, + "prometheus": { + "targets_up": "Mål oppe", + "targets_down": "Mål nede", + "targets_total": "Totalt antall mål" + }, + "gatus": { + "up": "Nettsteder opp", + "down": "Sites Down", + "uptime": "Oppetid" + }, + "ghostfolio": { + "gross_percent_today": "Idag", + "gross_percent_1y": "Ett år", + "gross_percent_max": "Gjennom tidene" + }, + "audiobookshelf": { + "podcasts": "Podkaster", + "books": "Bøker", + "podcastsDuration": "Varighet", + "booksDuration": "Varighet" + }, + "homeassistant": { + "people_home": "Personer hjemme", + "lights_on": "Lys på", + "switches_on": "Slår På" + }, + "whatsupdocker": { + "monitoring": "Overvåker", + "updates": "Oppdateringer" + }, + "calibreweb": { + "books": "Bøker", + "authors": "Forfattere", + "categories": "Categories", + "series": "Serie" + }, + "jdownloader": { + "downloadCount": "Kø", + "downloadBytesRemaining": "Gjenstående", + "downloadTotalBytes": "Size", + "downloadSpeed": "Hastighet" + }, + "kavita": { + "seriesCount": "Serie", + "totalFiles": "Files" + }, + "azuredevops": { + "result": "Resultat", + "status": "Status", + "buildId": "Produksjons ID", + "succeeded": "Vellykket", + "notStarted": "Ikke startet", + "failed": "Mislyktes", + "canceled": "Avbrutt", + "inProgress": "Pågående", + "totalPrs": "Totalt PR-er", + "myPrs": "Mine PR'er", + "approved": "Godkjent" + }, + "gamedig": { + "status": "Status", + "online": "På nett", + "offline": "Frakoblet", + "name": "Navn", + "map": "Kart", + "currentPlayers": "Aktuelle spillere", + "players": "Spillere", + "maxPlayers": "Maks spillere", + "bots": "Bots", + "ping": "Responstid" + }, + "urbackup": { + "ok": "Ok", + "errored": "Feil", + "noRecent": "Utdatert", + "totalUsed": "Brukt lagringsplass" + }, + "mealie": { + "recipes": "Oppskrifter", + "users": "Brukere", + "categories": "Categories", + "tags": "Stikkord" + }, + "openmediavault": { + "downloading": "Nedlaster", + "total": "Totalt", + "running": "Kjører", + "stopped": "Stoppet", + "passed": "Bestått", + "failed": "Mislyktes" + }, + "openwrt": { + "uptime": "Oppetid", + "cpuLoad": "CPU-belastning snitt (5m)", + "up": "Oppe", + "down": "Nede", + "bytesTx": "Sendt", + "bytesRx": "Mottatt" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Oppetid", + "lastDown": "Siste nedetid", + "downDuration": "Varighet på nedetid", + "sitesUp": "Nettsteder opp", + "sitesDown": "Sites Down", + "paused": "Pauset", + "notyetchecked": "Ikke sjekket enda", + "up": "Oppe", + "seemsdown": "Virker nede", + "down": "Nede", + "unknown": "Ukjent" + }, + "calendar": { + "inCinemas": "På Kino", + "physicalRelease": "Fysisk utslipp", + "digitalRelease": "Digital utgivelse", + "noEventsToday": "Ingen hendelser for i dag!", + "noEventsFound": "Ingen hendelser funnet" + }, + "romm": { + "platforms": "Plattformer", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domener", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Lagring" + }, + "netdata": { + "warnings": "Advarsler", + "criticals": "Kritiske" + }, + "plantit": { + "events": "Begivenheter", + "plants": "Planter", + "photos": "Photos", + "species": "Arter" + }, + "gitea": { + "notifications": "Varslinger", + "issues": "Issues", + "pulls": "Forespørsel", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scener", + "scenesPlayed": "Scener avspilt", + "playCount": "Totalt Spillt", + "playDuration": "Tid Sett", + "sceneSize": "Scenesstørrelse", + "sceneDuration": "Scener Varighet", + "images": "Bilder", + "imageSize": "Bildestørrelse", + "galleries": "Gallerier", + "performers": "Utøvere", + "studios": "Studios", + "movies": "Film", + "tags": "Stikkord", + "oCount": "O antall" + }, + "tandoor": { + "users": "Brukere", + "recipes": "Oppskrifter", + "keywords": "Nøkkelord" + }, + "homebox": { + "items": "Enheter", + "totalWithWarranty": "Med garanti", + "locations": "Posisjon", + "labels": "Etiketter", + "users": "Brukere", + "totalValue": "Totalverdi" + }, + "crowdsec": { + "alerts": "Varsler", + "bans": "Utestengelse" + }, + "wgeasy": { + "connected": "Tilkoblet", + "enabled": "Aktivert", + "disabled": "Deaktivert", + "total": "Totalt" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Responstid", + "download": "Last ned", + "upload": "Opplastning" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Oppetid", + "version": "Versjon" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Stikkord" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informasjon", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Navn", + "address": "Adresse", + "last_seen": "Sist sett", + "status": "Status", + "online": "På nett", + "offline": "Frakoblet" + }, + "beszel": { + "name": "Navn", + "systems": "Systems", + "up": "Oppe", + "down": "Nede", + "paused": "Pauset", + "pending": "Ventende", + "status": "Status", + "updated": "Oppdatert", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Friskt", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Mangler", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Last", + "bcharge": "Batteriladning", + "timeleft": "Gjenstående tid" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Stikkord" + }, + "slskd": { + "slskStatus": "Nettverk", + "connected": "Tilkoblet", + "disconnected": "Frakoblet", + "updateStatus": "Update", + "update_yes": "Tilgjengelig", + "update_no": "Oppdatert", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" + } +} diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index c44da833..1316d5c9 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -1,97 +1,197 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mc", + "days": "d", + "hours": "g", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Brakujący typ widżetu: {{type}}", + "api_error": "Błąd API", + "information": "Informacje", + "status": "Stan", + "url": "Adres URL", + "raw_error": "Niesformatowany błąd", + "response_data": "Dane odpowiedzi" + }, "weather": { + "current": "Aktualna lokalizacja", "allow": "Kliknij, aby zezwolić", "updating": "Aktualizacja", - "wait": "Proszę czekać", - "current": "Aktualna lokalizacja" + "wait": "Proszę czekać" }, "search": { "placeholder": "Szukaj…" }, "resources": { - "used": "Użyte", - "load": "Obciążenie", + "cpu": "Procesor", + "mem": "RAM", "total": "Całkowite", "free": "Wolne", - "cpu": "CPU", - "mem": "PAM", + "used": "Użyte", + "load": "Obciążenie", "temp": "TEMP.", "max": "Maks", - "uptime": "CZAS", - "months": "miesiąc", - "days": "dni", - "hours": "godz", - "minutes": "min" + "uptime": "CZAS" + }, + "unifi": { + "users": "Użytkownicy", + "uptime": "Czas działania", + "days": "Dni", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Urządzenia", + "lan_devices": "Urządzenia LAN", + "wlan_devices": "Urządzenia WLAN", + "lan_users": "Użytkownicy LAN", + "wlan_users": "Użytkownicy WLAN", + "up": "CZAS", + "down": "Pobieranie", + "wait": "Proszę czekać", + "empty_data": "Status podsystemu nieznany" + }, + "docker": { + "rx": "Rx", + "tx": "Tx", + "mem": "RAM", + "cpu": "Procesor", + "running": "Działa", + "offline": "Nieosiągalny", + "error": "Błąd", + "unknown": "Nieznany", + "healthy": "Zdrowy", + "starting": "Uruchamianie", + "unhealthy": "Niezdrowy", + "not_found": "Nie znaleziono", + "exited": "Zakończony", + "partial": "Częściowy" + }, + "ping": { + "error": "Błąd", + "ping": "Ping", + "down": "Niedostępny", + "up": "Dostępny", + "not_available": "Niedostępny" + }, + "siteMonitor": { + "http_status": "Status HTTP", + "error": "Błąd", + "response": "Odpowiedź", + "down": "Niedostępny", + "up": "Dostępny", + "not_available": "Niedostępny" }, "emby": { - "no_active": "Brak aktywnych strumieni", "playing": "Odtwarzanie", "transcoding": "Transkodowanie", "bitrate": "Bitrate", + "no_active": "Brak aktywnych strumieni", "movies": "Filmy", "series": "Seriale", "episodes": "Odcinki", "songs": "Piosenki" }, + "esphome": { + "offline": "Nieosiągalny", + "offline_alt": "Nieosiągalny", + "online": "Dostępny", + "total": "Całkowite", + "unknown": "Nieznany" + }, + "evcc": { + "pv_power": "Produkcja", + "battery_soc": "Bateria", + "grid_power": "Siatka", + "home_power": "Zużycie", + "charge_power": "Ładowarka", + "kilowatt": "kW" + }, + "flood": { + "download": "Pobieranie", + "upload": "Wysyłanie", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subskrypcje", + "unread": "Nieprzeczytane" + }, + "fritzbox": { + "connectionStatus": "Stan", + "connectionStatusUnconfigured": "Nieskonfigurowane", + "connectionStatusConnecting": "Łączenie", + "connectionStatusAuthenticating": "Uwierzytelnianie", + "connectionStatusPendingDisconnect": "Oczekujące rozłączenie", + "connectionStatusDisconnecting": "Rozłączanie", + "connectionStatusDisconnected": "Rozłączono", + "connectionStatusConnected": "Połączono", + "uptime": "Czas działania", + "maxDown": "Maks. Pobieranie", + "maxUp": "Maks. Wysyłanie", + "down": "Niedostępny", + "up": "Dostępny", + "received": "Odebrane", + "sent": "Wysłane", + "externalIPAddress": "Pub. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Aktualne zapytania", + "requests_failed": "Nieudane zapytania" + }, + "changedetectionio": { + "totalObserved": "Łącznie obserwowanych", + "diffsDetected": "Wykrytych różnic" + }, + "channelsdvrserver": { + "shows": "Seriale", + "recordings": "Nagrania", + "scheduled": "W kolejce", + "passes": "Przebiegi" + }, "tautulli": { "playing": "Odtwarzanie", "transcoding": "Transkodowanie", "bitrate": "Bitrate", "no_active": "Brak aktywnych strumieni", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Sprawdź połączenie z Plex" }, - "speedtest": { - "download": "Pobieranie", - "ping": "Ping", - "upload": "Wysyłanie" - }, - "portainer": { - "running": "Działające", - "stopped": "Zatrzymane", - "total": "Ogólnie" - }, - "coinmarketcap": { - "1day": "1 dzień", - "7days": "7 dni", - "30days": "30 dni", - "1hour": "1 godzina", - "configure": "Wybierz jedną lub więcej kryptowalut do śledzenia" - }, - "gotify": { - "apps": "Aplikacje", - "clients": "Klienci", - "messages": "Wiadomości" - }, - "widget": { - "missing_type": "Brakujący typ widżetu: {{type}}", - "api_error": "Błąd API", - "status": "Stan", - "url": "Adres URL", - "information": "Informacje", - "raw_error": "Niesformatowany błąd", - "response_data": "Dane odpowiedzi" - }, - "docker": { - "rx": "Rx", - "tx": "Tx", - "mem": "Pamięć", - "cpu": "Procesor", - "offline": "Offline", - "error": "Błąd", - "unknown": "Nieznany", - "running": "Działa", - "starting": "Rozpoczynanie", - "unhealthy": "Niezdrowe", - "not_found": "Nie znaleziono", - "exited": "Exited", - "partial": "Częściowe", - "healthy": "Zdrowy" + "omada": { + "connectedAp": "Połączone punkty dostępowe", + "activeUser": "Aktywne urządzenia", + "alerts": "Alarmy", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Połączone przełączniki" }, "nzbget": { "rate": "Szybkość", "remaining": "Pozostało", "downloaded": "Pobrano" }, + "plex": { + "streams": "Aktywne strumienie", + "albums": "Albumy", + "movies": "Filmy", + "tv": "Seriale" + }, "sabnzbd": { "rate": "Szybkość", "queue": "Kolejka", @@ -108,25 +208,55 @@ "leech": "Leech", "seed": "Seed" }, + "qbittorrent": { + "download": "Pobieranie", + "upload": "Wysyłanie", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "Użycie CPU", + "memUsage": "Użycie pamięci", + "systemTempC": "Temperatura systemu", + "poolUsage": "Wykorzystanie puli", + "volumeUsage": "Wykorzystanie woluminu", + "invalid": "Nieprawidłowy" + }, + "deluge": { + "download": "Pobieranie", + "upload": "Wysyłanie", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Trafienia w cache'u", + "cachemissbytes": "Straty cache'u" + }, + "downloadstation": { + "download": "Pobieranie", + "upload": "Wysyłanie", + "leech": "Leech", + "seed": "Seed" + }, "sonarr": { "wanted": "Poszukiwane", "queued": "W kolejce", "series": "Seriale", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Kolejka", + "unknown": "Nieznany" }, "radarr": { "wanted": "Poszukiwane", + "missing": "Brakujące", "queued": "W kolejce", "movies": "Filmy", - "missing": "Brakujące", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Kolejka", + "unknown": "Nieznany" }, "lidarr": { "wanted": "Poszukiwane", "queued": "W kolejce", - "artists": "Artists" + "artists": "Artyści" }, "readarr": { "wanted": "Poszukiwane", @@ -149,25 +279,106 @@ }, "overseerr": { "pending": "Oczekiwane", + "processing": "Przetwarzane", "approved": "Zaakceptowane", - "available": "Dostępne", - "processing": "Przetwarzane" + "available": "Dostępne" + }, + "netalertx": { + "total": "Całkowite", + "connected": "Połączono", + "new_devices": "Nowe urządzenia", + "down_alerts": "Alerty niedostępności" }, "pihole": { "queries": "Zapytania", "blocked": "Zablokowane", - "gravity": "Grawitacja", - "blocked_percent": "Blocked %" + "blocked_percent": "Zablokowano %", + "gravity": "Grawitacja" + }, + "adguard": { + "queries": "Zapytania", + "blocked": "Zablokowane", + "filtered": "Przefiltrowane", + "latency": "Opóźnienia" + }, + "speedtest": { + "upload": "Wysyłanie", + "download": "Pobieranie", + "ping": "Ping" + }, + "portainer": { + "running": "Działa", + "stopped": "Zatrzymane", + "total": "Całkowite" + }, + "suwayomi": { + "download": "Pobrano", + "nondownload": "Niepobrane", + "read": "Przeczytane", + "unread": "Nieprzeczytane", + "downloadedread": "Pobrane i przeczytane", + "downloadedunread": "Pobrane i nieprzeczytane", + "nondownloadedread": "Niepobrane i przeczytane", + "nondownloadedunread": "Niepobrane i nieprzeczytane" + }, + "tailscale": { + "address": "Adres", + "expires": "Wygasa za", + "never": "Nigdy", + "last_seen": "Ostatnio dostępny", + "now": "Teraz", + "years": "{{number}}rok/lat", + "weeks": "{{number}}tygodni", + "days": "{{number}}dni", + "hours": "{{number}}godzin", + "minutes": "{{number}}miesięcy", + "seconds": "{{number}}sekund", + "ago": "{{value}} temu" + }, + "technitium": { + "totalQueries": "Zapytania", + "totalNoError": "Sukces", + "totalServerFailure": "Porażki", + "totalNxDomain": "Domeny NX", + "totalRefused": "Odrzucone", + "totalAuthoritative": "Autorytatywne", + "totalRecursive": "Rekursywne", + "totalCached": "Zbuforowane", + "totalBlocked": "Zablokowane", + "totalDropped": "Upuszczone", + "totalClients": "Klienci" + }, + "tdarr": { + "queue": "Kolejka", + "processed": "Przetworzone", + "errored": "Błędne", + "saved": "Zapisane" }, "traefik": { "routers": "Routery", "services": "Serwisy", "middleware": "Pośrednicy" }, + "navidrome": { + "nothing_streaming": "Brak aktywnych strumieni", + "please_wait": "Proszę czekać" + }, "npm": { "enabled": "Włączone", "disabled": "Wyłączone", - "total": "Ogólnie" + "total": "Całkowite" + }, + "coinmarketcap": { + "configure": "Wybierz jedną lub więcej kryptowalut do śledzenia", + "1hour": "1 godzina", + "1day": "1 dzień", + "7days": "7 dni", + "30days": "30 dni" + }, + "gotify": { + "apps": "Aplikacje", + "clients": "Klienci", + "messages": "Wiadomości" }, "prowlarr": { "enableIndexers": "Indeksery", @@ -180,28 +391,32 @@ "configured": "Skonfigurowane", "errored": "Błędne" }, - "adguard": { - "queries": "Zapytania", - "blocked": "Zablokowane", - "filtered": "Przefiltrowane", - "latency": "Opóźnienia" - }, - "qbittorrent": { - "download": "Pobieranie", - "upload": "Wysyłanie", - "leech": "Leech", - "seed": "Seed" + "strelaysrv": { + "numActiveSessions": "Sesje", + "numConnections": "Połączenia", + "dataRelayed": "Przekazane", + "transferRate": "Szybkość" }, "mastodon": { "user_count": "Użytkownicy", "status_count": "Posty", "domain_count": "Domeny" }, - "strelaysrv": { - "numActiveSessions": "Sesje", - "numConnections": "Połączenia", - "dataRelayed": "Przekazane", - "transferRate": "Przesył" + "medusa": { + "wanted": "Poszukiwane", + "queued": "W kolejce", + "series": "Seriale" + }, + "minecraft": { + "players": "Gracze", + "version": "Wersja", + "status": "Stan", + "up": "Dostępny", + "down": "Nieosiągalny" + }, + "miniflux": { + "read": "Przeczytane", + "unread": "Nieprzeczytane" }, "authentik": { "users": "Użytkownicy", @@ -209,53 +424,41 @@ "failedLoginsLast24H": "Nieudane logowania (24h)" }, "proxmox": { - "mem": "Pamięć", + "mem": "RAM", "cpu": "Procesor", "lxc": "Kontenery LXC", "vms": "Maszyn wirtualnych" }, - "unifi": { - "users": "Użytkownicy", - "uptime": "Czas pracy systemu", - "days": "Dni", - "wan": "WAN", - "lan_users": "Użytkownicy LAN", - "wlan_users": "Użytkownicy WLAN", - "up": "Wysyłanie", - "down": "Pobieranie", - "wait": "Proszę czekać", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Urządzenia", - "lan_devices": "Urządzenia LAN", - "wlan_devices": "Urządzenia WLAN", - "empty_data": "Nieznany stan" - }, - "plex": { - "streams": "Aktywne strumienie", - "movies": "Filmy", - "tv": "Seriale", - "albums": "Albumy" - }, "glances": { "cpu": "Procesor", + "load": "Obciążenie", "wait": "Proszę czekać", - "temp": "TEMP", + "temp": "TEMP.", + "_temp": "Temperatura", + "warn": "Ostrzeżenie", "uptime": "CZAS", - "days": "dni", - "hours": "godz", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "total": "Całkowite", + "free": "Wolne", + "used": "Użyte", + "days": "d", + "hours": "g", + "crit": "Krytyczyny", + "read": "Przeczytane", + "write": "Zapis", + "gpu": "Karta graficzna", + "mem": "Pamięć", + "swap": "Swap" }, - "changedetectionio": { - "diffsDetected": "Wykryto różnic", - "totalObserved": "Obserwowanych ogółem" + "quicklaunch": { + "bookmark": "Zakładka", + "service": "Usługi", + "search": "Wyszukaj", + "custom": "Niestandardowe", + "visit": "Odwiedź", + "url": "Adres URL", + "searchsuggestion": "Sugestia" }, "wmo": { - "77-day": "Ziarnisty śnieg", "0-day": "Słoneczny", "0-night": "Bezchmurny", "1-day": "Głównie słoneczny", @@ -272,8 +475,8 @@ "51-night": "Lekka mżawka", "53-day": "Mżawka", "53-night": "Mżawka", - "55-day": "Ciężka mżawka", - "55-night": "Ciężka mżawka", + "55-day": "Gęsta mżawka", + "55-night": "Gęsta mżawka", "56-day": "Lekko chłodna mżawka", "56-night": "Lekko chłodna mżawka", "57-day": "Chłodna mżawka", @@ -294,6 +497,7 @@ "73-night": "Śnieg", "75-day": "Ciężki śnieg", "75-night": "Ciężki śnieg", + "77-day": "Ziarnisty śnieg", "77-night": "Ziarnisty śnieg", "80-day": "Lekkie opady", "80-night": "Lekkie opady", @@ -312,24 +516,31 @@ "99-day": "Burza z gradobiciem", "99-night": "Burza z gradobiciem" }, - "quicklaunch": { - "bookmark": "Zakładka", - "service": "Usługi", - "search": "Wyszukaj", - "custom": "Niestandardowe", - "visit": "Odwiedź", - "url": "Adres URL" - }, "homebridge": { "available_update": "System", "updates": "Aktualizacje", "update_available": "Dostępna aktualizacja", "up_to_date": "Aktualny", - "child_bridges": "Child Bridges", + "child_bridges": "Mostki podrzędne", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Oczekujące", - "down": "Down" + "up": "Dostępny", + "pending": "Oczekiwane", + "down": "Niedostępny" + }, + "healthchecks": { + "new": "Nowy", + "up": "Dostępny", + "grace": "W okresie karencji", + "down": "Niedostępny", + "paused": "Zatrzymane", + "status": "Stan", + "last_ping": "Ostatni ping", + "never": "Brak pingów" + }, + "watchtower": { + "containers_scanned": "Zeskanowane", + "containers_updated": "Zaktualizowane", + "containers_failed": "Niepowodzenie" }, "autobrr": { "approvedPushes": "Zaakceptowane", @@ -337,11 +548,6 @@ "filters": "Filtry", "indexers": "Indeksery" }, - "watchtower": { - "containers_scanned": "Zeskanowane", - "containers_updated": "Zaktualizowane", - "containers_failed": "Niepowodzenie" - }, "tubearchivist": { "downloads": "Kolejka", "videos": "Pliki wideo", @@ -351,18 +557,13 @@ "truenas": { "load": "Obciążenie systemu", "uptime": "Czas działania", - "alerts": "Ostrzeżenia", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "please_wait": "Proszę czekać", - "nothing_streaming": "Brak aktywnych strumieni" + "alerts": "Alarmy" }, "pyload": { "speed": "Prędkość", - "active": "Aktywne", + "active": "Aktywny", "queue": "Kolejka", - "total": "Razem" + "total": "Całkowite" }, "gluetun": { "public_ip": "Adres publiczny", @@ -371,67 +572,40 @@ }, "hdhomerun": { "channels": "Kanały", - "hd": "HD" - }, - "ping": { - "error": "Błąd", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tunery", + "channelNumber": "Kanał", + "channelNetwork": "Sieć", + "signalStrength": "Siła", + "signalQuality": "Jakość", + "symbolQuality": "Jakość", + "networkRate": "Bitrate", + "clientIP": "Klient" }, "scrutiny": { "passed": "Powodzenie", - "failed": "Nieudane", - "unknown": "Nieznane" + "failed": "Niepowodzenie", + "unknown": "Nieznany" }, "paperlessngx": { "inbox": "Skrzynka odbiorcza", - "total": "W sumie" + "total": "Całkowite" }, - "deluge": { - "download": "Pobieranie", - "upload": "Wysyłanie", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Pobieranie", - "upload": "Wysyłanie", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Kolejka", - "processed": "Przetworzone", - "errored": "Błędne", - "saved": "Zapisane" - }, - "miniflux": { - "read": "Przeczytane", - "unread": "Nieprzeczytane" + "peanut": { + "battery_charge": "Stan baterii", + "ups_load": "Obciążenie UPS", + "ups_status": "Status UPS", + "online": "Dostępny", + "on_battery": "Na baterii", + "low_battery": "Niski poziom baterii" }, "nextdns": { "wait": "Proszę czekać", "no_devices": "Nie otrzymano danych urządzenia" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedSwitches": "Połączone przełączniki", - "connectedAp": "Połączone punkty dostępowe", - "activeUser": "Aktywne urządzenia", - "alerts": "Alarmy", - "connectedGateway": "Połączone bramy" - }, - "downloadstation": { - "download": "Pobieranie", - "upload": "Wysyłanie", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "Obciążenie procesora", - "memoryUsed": "Zuyżyta pamięć", + "memoryUsed": "Zużyta pamięć", "uptime": "Czas działania", "numberOfLeases": "Dzierżawy" }, @@ -440,6 +614,12 @@ "streams_active": "Aktywne strumienie", "streams_xepg": "Kanały XEPG" }, + "opendtu": { + "yieldDay": "Dzisiaj", + "absolutePower": "Zasilanie", + "relativePower": "Moc %", + "limit": "Limit" + }, "opnsense": { "cpu": "Obciążenie procesora", "memory": "Pamięć rzeczywista", @@ -452,72 +632,87 @@ "print_progress": "Postęp", "layers": "Warstwy" }, - "medusa": { - "wanted": "Poszukiwane", - "queued": "Zakolejkowane", - "series": "Seriale" - }, "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", + "printer_state": "Stan", + "temp_tool": "Temperatura narzędzia", + "temp_bed": "Temp. łóżka", "job_completion": "Ukończono" }, "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" + "origin_ip": "IP Źródła", + "status": "Stan" + }, + "pfsense": { + "load": "Śr. Obciążenie", + "memory": "Użycie pamięci", + "wanStatus": "Status WAN", + "up": "Dostępny", + "down": "Niedostępny", + "temp": "Temperatura", + "disk": "Użycie dysku", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", + "datastore_usage": "Magazyn danych", + "failed_tasks_24h": "Nieudane zadania 24h", + "cpu_usage": "Procesor", "memory_usage": "Pamięć" }, "immich": { "users": "Użytkownicy", "photos": "Zdjęcia", - "videos": "Filmy", + "videos": "Pliki wideo", "storage": "Pamięć" }, "uptimekuma": { - "up": "Sites Up", - "down": "Niedziałające strony", + "up": "Działające", + "down": "Niedziałające", "uptime": "Czas działania", "incident": "Incydent", - "m": "min" + "m": "m" + }, + "atsumeru": { + "series": "Seriale", + "archives": "Archiwa", + "chapters": "Rozdziały", + "categories": "Kategorie" }, "komga": { "libraries": "Biblioteki", "series": "Seriale", "books": "Książki" }, + "diskstation": { + "days": "Dni", + "uptime": "Czas działania", + "volumeAvailable": "Dostępne" + }, "mylar": { "series": "Seriale", "issues": "Zgłoszenia", - "wanted": "Wanted" + "wanted": "Poszukiwane" }, "photoprism": { "albums": "Albumy", "photos": "Zdjęcia", - "videos": "Filmy", + "videos": "Pliki wideo", "people": "Ludzie" }, - "diskstation": { - "uptime": "Czas działania", - "volumeAvailable": "Dostępne", - "days": "Dni" - }, "fileflows": { "queue": "Kolejka", - "processing": "Przetwarzanie", - "processed": "Processed", + "processing": "Przetwarzane", + "processed": "Przetworzone", "time": "Czas" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { - "dashboards": "Dashboards", + "dashboards": "Panel główny", "datasources": "Źródła danych", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "totalalerts": "Wszystkie alerty", + "alertstriggered": "Wywołane alerty" }, "nextcloud": { "cpuload": "Obciążenie CPU", @@ -525,50 +720,38 @@ "freespace": "Wolna przestrzeń", "activeusers": "Aktywni użytkownicy", "numfiles": "Pliki", - "numshares": "Shared Items" + "numshares": "Udostępnione elementy" }, "kopia": { - "status": "Status", + "status": "Stan", "size": "Rozmiar", "lastrun": "Ostatnie uruchomienie", - "nextrun": "Next Run", - "failed": "Nieudane" + "nextrun": "Następne uruchomienie", + "failed": "Niepowodzenie" }, "unmanic": { "active_workers": "Aktywni pracownicy", - "total_workers": "Total Workers", + "total_workers": "Wszyscy pracownicy", "records_total": "Długość kolejki" }, - "healthchecks": { - "new": "Nowy", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Zatrzymane", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Serwery", - "nodes": "Nodes" + "nodes": "Węzły" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Cele włączone", + "targets_down": "Cele wyłączone", + "targets_total": "Wszystkich Celi" }, - "minecraft": { - "players": "Gracze", - "version": "Wersja", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Działające", + "down": "Niedziałające", + "uptime": "Czas działania" }, "ghostfolio": { "gross_percent_today": "Dzisiaj", "gross_percent_1y": "Rok", - "gross_percent_max": "All time" + "gross_percent_max": "Od początku" }, "audiobookshelf": { "podcasts": "Podcasty", @@ -577,93 +760,287 @@ "booksDuration": "Czas trwania" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subskrypcje", - "unread": "Nieprzeczytane" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Nagrywanie", - "scheduled": "W kolejce", - "passes": "Passes" + "people_home": "Dom ludzi", + "lights_on": "Światła włączone", + "switches_on": "Przełączniki włączone" }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Aktualizacje" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Książki", + "authors": "Autorzy", + "categories": "Kategorie", + "series": "Seriale" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Kolejka", + "downloadBytesRemaining": "Pozostało", + "downloadTotalBytes": "Rozmiar", + "downloadSpeed": "Prędkość" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Seriale", + "totalFiles": "Pliki" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Wynik", + "status": "Stan", + "buildId": "ID kompilacji", + "succeeded": "Ukończono", + "notStarted": "Nierozpoczęte", + "failed": "Niepowodzenie", + "canceled": "Anulowano", + "inProgress": "W trakcie", + "totalPrs": "Łącznie PRs", + "myPrs": "Moje PRs", + "approved": "Zaakceptowane" + }, + "gamedig": { + "status": "Stan", + "online": "Dostępny", + "offline": "Nieosiągalny", + "name": "Nazwa", + "map": "Mapa", + "currentPlayers": "Gracze online", + "players": "Gracze", + "maxPlayers": "Maksymalna ilość graczy", + "bots": "Boty", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Błędy", + "noRecent": "Nieaktualne", + "totalUsed": "Użyta pamięć" + }, + "mealie": { + "recipes": "Przepisy", + "users": "Użytkownicy", + "categories": "Kategorie", + "tags": "Tagi" + }, + "openmediavault": { + "downloading": "Pobieranie", + "total": "Całkowite", + "running": "Działa", + "stopped": "Zatrzymane", + "passed": "Powodzenie", + "failed": "Niepowodzenie" + }, + "openwrt": { + "uptime": "Czas działania", + "cpuLoad": "Śr. obciążenie CPU (5m)", + "up": "Dostępny", + "down": "Niedostępny", + "bytesTx": "Przesłane", + "bytesRx": "Odebrane" + }, + "uptimerobot": { + "status": "Stan", + "uptime": "Czas działania", + "lastDown": "Ostatni downtime", + "downDuration": "Długość downtime'u", + "sitesUp": "Działające", + "sitesDown": "Niedziałające", + "paused": "Zatrzymane", + "notyetchecked": "Nie sprawdzono", + "up": "Dostępny", + "seemsdown": "Możliwe, że wyłączony", + "down": "Niedostępny", + "unknown": "Nieznany" + }, + "calendar": { + "inCinemas": "W kinach", + "physicalRelease": "Wydanie fizyczne", + "digitalRelease": "Wydanie cyfrowe", + "noEventsToday": "Brak wydarzeń na dziś!", + "noEventsFound": "Nie znaleziono wydarzeń" + }, + "romm": { + "platforms": "Platformy", + "totalRoms": "Gry", + "saves": "Zapisy", + "states": "Stany", + "screenshots": "Screeny", + "totalfilesize": "Rozmiar całkowity" + }, + "mailcow": { + "domains": "Domeny", + "mailboxes": "Skrzynki", + "mails": "Poczta", + "storage": "Pamięć" + }, + "netdata": { + "warnings": "Ostrzeżenia", + "criticals": "Krytyczny" + }, + "plantit": { + "events": "Wydarzenia", + "plants": "Rośliny", + "photos": "Zdjęcia", + "species": "Gatunki" + }, + "gitea": { + "notifications": "Powiadomienia", + "issues": "Zgłoszenia", + "pulls": "Żądania Pull", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Sceny", + "scenesPlayed": "Odgrane sceny", + "playCount": "Łącznie odtworzone", + "playDuration": "Łączny czas oglądania", + "sceneSize": "Rozmiar scen", + "sceneDuration": "Czas trwania scen", + "images": "Obrazy", + "imageSize": "Rozmiar obrazów", + "galleries": "Galerie", + "performers": "Artyści", + "studios": "Studia", + "movies": "Filmy", + "tags": "Tagi", + "oCount": "O Licznik" + }, + "tandoor": { + "users": "Użytkownicy", + "recipes": "Przepisy", + "keywords": "Słowa kluczowe" + }, + "homebox": { + "items": "Elementy", + "totalWithWarranty": "Z gwarancją", + "locations": "Lokalizacje", + "labels": "Etykiety", + "users": "Użytkownicy", + "totalValue": "Wartość całkowita" + }, + "crowdsec": { + "alerts": "Alarmy", + "bans": "Bany" + }, + "wgeasy": { + "connected": "Połączono", + "enabled": "Włączone", + "disabled": "Wyłączone", + "total": "Całkowite" + }, + "swagdashboard": { + "proxied": "Proxy", + "auth": "Z uwietrzytelnieniem", + "outdated": "Nieaktualne", + "banned": "Zbanowano" + }, + "myspeed": { + "ping": "Ping", + "download": "Pobieranie", + "upload": "Wysyłanie" + }, + "stocks": { + "stocks": "Giełda", + "loading": "Wczytywanie", + "open": "Otwarte - rynek US", + "closed": "Zamknięte - rynek US", + "invalidConfiguration": "Nieprawidłowa konfiguracja" + }, + "frigate": { + "cameras": "Kamery", + "uptime": "Czas działania", + "version": "Wersja" + }, + "linkwarden": { + "links": "Łącza", + "collections": "Kolekcje", + "tags": "Tagi" + }, + "zabbix": { + "unclassified": "Niezaklasyfikowane", + "information": "Informacje", + "warning": "Ostrzeżenie", + "average": "Średnia", + "high": "Wysokie", + "disaster": "Katastrofa" + }, + "lubelogger": { + "vehicle": "Pojazd", + "vehicles": "Pojazdy", + "serviceRecords": "Wpisy serwisowe", + "reminders": "Przypomnienia", + "nextReminder": "Następne przypomnienie", + "none": "Brak" + }, + "vikunja": { + "projects": "Aktywne Projekty", + "tasks7d": "Zadania w tym tygodniu", + "tasksOverdue": "Zaległe zadania", + "tasksInProgress": "Zadania w toku" + }, + "headscale": { + "name": "Nazwa", + "address": "Adres", + "last_seen": "Ostatnio dostępny", + "status": "Stan", + "online": "Dostępny", + "offline": "Nieosiągalny" + }, + "beszel": { + "name": "Nazwa", + "systems": "Systemy", + "up": "Dostępny", + "down": "Niedostępny", + "paused": "Zatrzymane", + "pending": "Oczekiwane", + "status": "Stan", + "updated": "Zaktualizowane", + "cpu": "Procesor", + "memory": "RAM", + "disk": "Dysk", + "network": "NET" + }, + "argocd": { + "apps": "Aplikacje", + "synced": "Synchronizowane", + "outOfSync": "Bez synchronizacji", + "healthy": "Zdrowy", + "degraded": "Zdegradowane", + "progressing": "Postępujące", + "missing": "Brakujące", + "suspended": "Zawieszone" + }, + "spoolman": { + "loading": "Wczytywanie" + }, + "gitlab": { + "groups": "Grupy", + "issues": "Zgłoszenia", + "merges": "Żądania scaleń", + "projects": "Projekty" + }, + "apcups": { + "status": "Stan", + "load": "Obciążenie", + "bcharge": "Stan baterii", + "timeleft": "Pozostało" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tagi" + }, + "slskd": { + "slskStatus": "Sieć", + "connected": "Połączono", + "disconnected": "Rozłączono", + "updateStatus": "Update", + "update_yes": "Dostępne", + "update_no": "Aktualny", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Pliki" } } diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index 55e45757..6343d8fe 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -91,7 +91,7 @@ "transcoding": "Transcodificando", "bitrate": "Taxa de bits", "no_active": "Sem transmissões ativas", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Verifique a conexão do Plex" }, "nzbget": { "rate": "Taxa", @@ -114,21 +114,21 @@ "wanted": "Desejado", "queued": "Na fila", "series": "Séries", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Fila", + "unknown": "Desconhecido" }, "radarr": { "wanted": "Desejado", "queued": "Na fila", "movies": "Filmes", "missing": "Faltando", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Fila", + "unknown": "Desconhecido" }, "lidarr": { "wanted": "Desejado", "queued": "Na fila", - "artists": "Artists" + "artists": "Artistas" }, "readarr": { "wanted": "Desejado", @@ -159,7 +159,7 @@ "queries": "Consultas", "blocked": "Bloqueados", "gravity": "Gravidade", - "blocked_percent": "Blocked %" + "blocked_percent": "Bloqueado %" }, "adguard": { "queries": "Consultas", @@ -244,11 +244,18 @@ "uptime": "LIGADO", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", + "load": "Carga", + "warn": "Aviso", "total": "Total", - "free": "Free", - "used": "Used" + "free": "Livre", + "used": "Usado", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap", + "_temp": "Temp" }, "changedetectionio": { "totalObserved": "Observados", @@ -375,7 +382,9 @@ }, "ping": { "error": "Erro", - "ping": "Ping" + "ping": "Ping", + "up": "Up", + "down": "Down" }, "scrutiny": { "passed": "Passou", @@ -524,8 +533,8 @@ "memoryusage": "Memória Utilizada", "freespace": "Espaço Livre", "activeusers": "Usuários Ativos", - "numfiles": "Files", - "numshares": "Shared Items" + "numfiles": "Arquivos", + "numshares": "Itens Compartilhados" }, "kopia": { "status": "Status", @@ -582,81 +591,93 @@ "switches_on": "Interruptores Ligados" }, "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" + "subscriptions": "Assinaturas", + "unread": "Não lida" }, "channelsdvrserver": { "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", + "recordings": "Gravações", + "scheduled": "Agendado", "passes": "Passes" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "Monitorando", + "updates": "Atualizações" }, "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", + "address": "Endereço", + "expires": "Expira", + "never": "Nunca", + "last_seen": "Visto pela última vez", + "now": "Agora", + "years": "{{number}}a", + "weeks": "{{number}}s", "hours": "{{number}}h", "days": "{{number}}d", "minutes": "{{number}}m", "seconds": "{{number}}s", - "ago": "{{value}} Ago" + "ago": "{{value}} Atrás" }, "qnap": { - "systemTempC": "System Temp", - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", + "systemTempC": "Temp Sistema", + "cpuUsage": "Uso CPU", + "memUsage": "Uso MEM", "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "volumeUsage": "Uso Volume", + "invalid": "Invalido" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", + "load": "Média de carga", + "memory": "Uso Mem", "wanStatus": "WAN Status", "up": "Up", "down": "Down", "temp": "Temp", - "disk": "Disk Usage", + "disk": "Uso de disco", "wanIP": "WAN IP" }, "caddy": { "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "requests": "Solicitações atuais", + "requests_failed": "Solicitações com falha" }, "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", + "pv_power": "Produção", + "battery_soc": "Bateria", + "grid_power": "Grade", + "home_power": "Consumo", + "charge_power": "Carregador", "watt_hour": "Wh" }, "pialert": { "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "connected": "Conectado", + "new_devices": "Novos dispositivos", + "down_alerts": "Alertas de Quedas" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Fila", + "downloadSpeed": "Velocidade de download", + "downloadBytesRemaining": "Restante", + "downloadTotalBytes": "Tamanho" }, "kavita": { "seriesCount": "Series", - "totalFiles": "Files" + "totalFiles": "Arquivos" }, - "azurePipelines": { + "gamedig": { + "name": "Nome", + "map": "Mapa", + "currentPlayers": "Jogadores atuais", + "players": "Jogadores", + "maxPlayers": "Jogadores Max", + "bots": "Robos", + "ping": "Ping", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +685,66 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "opendtu": { + "relativePower": "Power %", + "yieldDay": "Today", + "limit": "Limit", + "absolutePower": "Power" + }, + "calendar": { + "physicalRelease": "Physical release", + "inCinemas": "In cinemas", + "digitalRelease": "Digital release" } } diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index add4573a..acbf2d96 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -1,46 +1,101 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mês", + "days": "d", + "hours": "h", + "minutes": "min", + "seconds": "s" + }, "widget": { "missing_type": "Tipo de Widget ausente: {{type}}", "api_error": "Erro da API", - "status": "Estado", "information": "Informação", + "status": "Estado", "url": "Endereço URL", "raw_error": "Erro", "response_data": "Dados da Resposta" }, + "weather": { + "current": "Localização actual", + "allow": "Clique para permitir", + "updating": "A actualizar", + "wait": "Por favor aguarde" + }, "search": { "placeholder": "Pesquisar…" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Livre", "used": "Utilizado", "load": "Carga", - "cpu": "CPU", - "mem": "MEM", - "max": "Máximo", "temp": "TEMP", - "uptime": "CIMA", - "months": "mês", - "days": "d", - "hours": "h", - "minutes": "m" + "max": "Máximo", + "uptime": "CIMA" + }, + "unifi": { + "users": "Utilizadores", + "uptime": "Ligado", + "days": "Dias", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispositivos", + "lan_devices": "Dispositivos LAN", + "wlan_devices": "Dispositivos WLAN", + "lan_users": "Utilizadores LAN", + "wlan_users": "Utilizadores WLAN", + "up": "CIMA", + "down": "Desligado", + "wait": "Por favor aguarde", + "empty_data": "Status de Subsistema Desconhecido" }, "docker": { "rx": "Rx", "tx": "Tx", - "mem": "Mem", + "mem": "MEM", "cpu": "CPU", + "running": "A correr", "offline": "Desligado", "error": "Erro", "unknown": "Desconhecido", - "partial": "Parcial", - "running": "A correr", + "healthy": "Saudável", "starting": "A iniciar", "unhealthy": "Não-saudável", "not_found": "Não Encontrado", - "exited": "Encerrado", - "healthy": "Saudável" + "exited": "Saiu", + "partial": "Parcial" + }, + "ping": { + "error": "Erro", + "ping": "Tempo de resposta", + "down": "Down", + "up": "Up", + "not_available": "Não Disponível" + }, + "siteMonitor": { + "http_status": "Estado HTTP", + "error": "Erro", + "response": "Resposta", + "down": "Down", + "up": "Up", + "not_available": "Não Disponível" }, "emby": { "playing": "A reproduzir", @@ -52,111 +107,269 @@ "episodes": "Episódios", "songs": "Canções" }, + "esphome": { + "offline": "Desligado", + "offline_alt": "Desligado", + "online": "Online", + "total": "Total", + "unknown": "Desconhecido" + }, + "evcc": { + "pv_power": "Produção", + "battery_soc": "Bateria", + "grid_power": "Grelha", + "home_power": "Consumo", + "charge_power": "Carregador", + "kilowatt": "kW" + }, + "flood": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "freshrss": { + "subscriptions": "Subscrições", + "unread": "Não lida" + }, + "fritzbox": { + "connectionStatus": "Estado", + "connectionStatusUnconfigured": "Desconfigurado", + "connectionStatusConnecting": "A conectar", + "connectionStatusAuthenticating": "A Autenticar", + "connectionStatusPendingDisconnect": "Desconexão pendente", + "connectionStatusDisconnecting": "A Desconectar", + "connectionStatusDisconnected": "Desconectado", + "connectionStatusConnected": "Conectado", + "uptime": "Ligado", + "maxDown": "Máx. de Descarga", + "maxUp": "Max. de Envio", + "down": "Down", + "up": "Up", + "received": "Recebido", + "sent": "Enviado", + "externalIPAddress": "Endereço IP Externo", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Solicitações actuais", + "requests_failed": "Solicitações falhadas" + }, + "changedetectionio": { + "totalObserved": "Total Observado", + "diffsDetected": "Diferenças Detectadas" + }, + "channelsdvrserver": { + "shows": "Séries", + "recordings": "Gravações", + "scheduled": "Agendado", + "passes": "Passes" + }, "tautulli": { - "playing": "Reproduzindo", + "playing": "A reproduzir", "transcoding": "Transcodificação", "bitrate": "Taxa de bits", "no_active": "Sem streams ativas", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Verifique a conexão do Plex" + }, + "omada": { + "connectedAp": "APs Ligados", + "activeUser": "Dispositivos activos", + "alerts": "Alertas", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Switches ligados" + }, + "nzbget": { + "rate": "Taxa", + "remaining": "Restante", + "downloaded": "Descarregado" + }, + "plex": { + "streams": "Streams Activas", + "albums": "Álbuns", + "movies": "Filmes", + "tv": "Series de TV" + }, + "sabnzbd": { + "rate": "Taxa", + "queue": "Fila", + "timeleft": "Tempo Restante" }, "rutorrent": { - "active": "Ativo", - "upload": "Enviando", - "download": "Baixando" + "active": "Activo", + "upload": "Carregar", + "download": "Descarregar" + }, + "transmission": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "qbittorrent": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "qnap": { + "cpuUsage": "Utilização do CPU", + "memUsage": "Utilização de Memória", + "systemTempC": "Temperatura do Sistema", + "poolUsage": "Uso de Banco", + "volumeUsage": "Uso do Volume", + "invalid": "Inválido" + }, + "deluge": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "develancacheui": { + "cachehitbytes": "‘Bytes’ de Acerto na Memória transitória", + "cachemissbytes": "‘Bytes’ de Falha de Memória transitória" + }, + "downloadstation": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" }, "sonarr": { - "wanted": "Desejada", - "queued": "Em fila", + "wanted": "Desejados", + "queued": "Em fila de espera", "series": "Séries", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Fila", + "unknown": "Desconhecido" }, "radarr": { - "wanted": "Desejado", - "queued": "Fila", + "wanted": "Desejados", + "missing": "Em falta", + "queued": "Em fila de espera", "movies": "Filmes", - "missing": "Faltando", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Fila", + "unknown": "Desconhecido" + }, + "lidarr": { + "wanted": "Desejados", + "queued": "Em fila de espera", + "artists": "Artistas" }, "readarr": { "wanted": "Desejados", - "queued": "Em fila", + "queued": "Em fila de espera", "books": "Livros" }, + "bazarr": { + "missingEpisodes": "Episódios em Falta", + "missingMovies": "Filmes em Falta" + }, "ombi": { "pending": "Pendente", - "approved": "Aprovada", + "approved": "Aprovado", "available": "Disponível" }, "jellyseerr": { "pending": "Pendente", - "approved": "Aprovada", + "approved": "Aprovado", "available": "Disponível" }, + "overseerr": { + "pending": "Pendente", + "processing": "A Processar", + "approved": "Aprovado", + "available": "Disponível" + }, + "netalertx": { + "total": "Total", + "connected": "Conectado", + "new_devices": "Novos Dispositivos", + "down_alerts": "Alertas de Falha" + }, "pihole": { "queries": "Consultas", "blocked": "Bloqueado", - "gravity": "Gravidade", - "blocked_percent": "Blocked %" + "blocked_percent": "Bloqueado %", + "gravity": "Gravidade" + }, + "adguard": { + "queries": "Consultas", + "blocked": "Bloqueado", + "filtered": "Filtrado", + "latency": "Latência" }, "speedtest": { - "upload": "Envio", - "download": "Download", - "ping": "Ping" + "upload": "Carregar", + "download": "Descarregar", + "ping": "Tempo de resposta" }, "portainer": { "running": "A correr", "stopped": "Parado", "total": "Total" }, + "suwayomi": { + "download": "Descarregado", + "nondownload": "Non-Downloaded", + "read": "Lido", + "unread": "Não lida", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Endereço", + "expires": "Expira", + "never": "Nunca", + "last_seen": "Última Vez Visto", + "now": "Agora", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Atrás" + }, + "technitium": { + "totalQueries": "Consultas", + "totalNoError": "Sucesso", + "totalServerFailure": "Falhas", + "totalNxDomain": "Domínios NX", + "totalRefused": "Recusado", + "totalAuthoritative": "Autoritário", + "totalRecursive": "Recursivo", + "totalCached": "Em Memória transitória", + "totalBlocked": "Bloqueado", + "totalDropped": "Perdidos", + "totalClients": "Clientes" + }, + "tdarr": { + "queue": "Fila", + "processed": "Processado", + "errored": "Erro", + "saved": "Guardado" + }, "traefik": { "routers": "Roteadores", "services": "Serviços", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "Sem streams ativas", + "please_wait": "Por Favor, Aguarde" + }, "npm": { - "enabled": "Ativo", + "enabled": "Activo", "disabled": "Desabilitado", "total": "Total" }, - "common": { - "bytes": "{{value, bytes}}", - "bbytes": "{{value, bytes(binary: true)}}", - "bits": "{{value, bytes(bits: true)}}", - "bbits": "{{value, bytes(bits: true, binary: true)}}", - "number": "{{value, number}}", - "byterate": "{{value, bytes}}", - "ms": "{{value, number}}", - "bitrate": "{{value, bytes(bits: true)}}", - "percent": "{{value, percent}}", - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "weather": { - "current": "Localização atual", - "allow": "Clicar para permitir", - "updating": "Atualizando", - "wait": "Por favor aguarde" - }, - "overseerr": { - "pending": "Pendente", - "approved": "Aprovado", - "available": "Disponível", - "processing": "Processando" - }, - "sabnzbd": { - "rate": "Taxa", - "queue": "Fila", - "timeleft": "Tempo restante" - }, - "nzbget": { - "rate": "Taxa", - "remaining": "Restante", - "downloaded": "Baixado" - }, "coinmarketcap": { - "configure": "Configurar uma ou mais moedas", + "configure": "Configure uma ou mais criptomoedas para rastrear", "1hour": "1 Hora", "1day": "1 Dia", "7days": "7 Dias", @@ -174,41 +387,9 @@ "numberOfFailGrabs": "Falhados", "numberOfFailQueries": "Pesquisas falhadas" }, - "transmission": { - "download": "Baixando", - "upload": "Enviando", - "leech": "Leech", - "seed": "Semeadores" - }, "jackett": { "configured": "Configurado", - "errored": "Errado" - }, - "bazarr": { - "missingEpisodes": "Episódios Faltantes", - "missingMovies": "Filmes Faltantes" - }, - "lidarr": { - "queued": "Enfileirado", - "wanted": "Desejado", - "artists": "Artists" - }, - "adguard": { - "queries": "Consultas", - "blocked": "Bloqueado", - "filtered": "Filtrado", - "latency": "Latência" - }, - "qbittorrent": { - "download": "Baixando", - "upload": "Enviando", - "leech": "Sanguessugas", - "seed": "Semeadores" - }, - "mastodon": { - "user_count": "Usuários", - "status_count": "Postagens", - "domain_count": "Domínios" + "errored": "Erro" }, "strelaysrv": { "numActiveSessions": "Sessões", @@ -216,67 +397,76 @@ "dataRelayed": "Retransmitido", "transferRate": "Taxa" }, + "mastodon": { + "user_count": "Utilizadores", + "status_count": "Postagens", + "domain_count": "Domínios" + }, + "medusa": { + "wanted": "Desejados", + "queued": "Em fila de espera", + "series": "Séries" + }, + "minecraft": { + "players": "Reprodutores", + "version": "Versão", + "status": "Estado", + "up": "Online", + "down": "Desligado" + }, + "miniflux": { + "read": "Lido", + "unread": "Não lida" + }, "authentik": { - "loginsLast24H": "Inícios de sessão (24h)", - "failedLoginsLast24H": "Inícios de sessão falhados (24h)", - "users": "Utilizadores" + "users": "Utilizadores", + "loginsLast24H": "Inícios de Sessão (24h)", + "failedLoginsLast24H": "Inícios de Sessão Falhados (24h)" }, "proxmox": { - "mem": "Memória", + "mem": "MEM", "cpu": "CPU", "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Utilizadores", - "uptime": "Sistema Ativo", - "days": "Dias", - "wan": "WAN", - "lan_users": "Utilizadores LAN", - "wlan_users": "Utilizadores WLAN", - "up": "Ligado", - "down": "Desligado", - "wait": "Por favor, aguarde", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Dispositivos", - "lan_devices": "Dispositivos LAN", - "wlan_devices": "Dispositivos WLAN", - "empty_data": "Status de Subsistema Desconhecido" - }, - "plex": { - "streams": "Streams Ativas", - "movies": "Filmes", - "tv": "Series de TV", - "albums": "Albums" - }, "glances": { "cpu": "CPU", - "wait": "Por favor, aguarde", + "load": "Carga", + "wait": "Por favor aguarde", "temp": "TEMP", - "uptime": "Cima", + "_temp": "Temp", + "warn": "Aviso", + "uptime": "CIMA", + "total": "Total", + "free": "Livre", + "used": "Utilizado", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crítico", + "read": "Lido", + "write": "Gravar", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observado", - "diffsDetected": "Diferenças Detetadas" + "quicklaunch": { + "bookmark": "Marcador", + "service": "Serviço", + "search": "Pesquisa", + "custom": "Personalizado", + "visit": "Visitar", + "url": "Endereço URL", + "searchsuggestion": "Sugestão" }, "wmo": { "0-day": "Solarengo", "0-night": "Limpo", - "1-day": "Maioritariamente ensolarado", + "1-day": "Maioritariamente Solarengo", "1-night": "Maioritariamente Limpo", "2-day": "Parcialmente Nublado", - "2-night": "Parcialmente nublado", + "2-night": "Parcialmente Nublado", "3-day": "Nublado", "3-night": "Nublado", - "99-night": "Trovoada com granizo", "45-day": "Nevoeiro", "45-night": "Nevoeiro", "48-day": "Nevoeiro", @@ -287,20 +477,20 @@ "53-night": "Chuvisco", "55-day": "Aguaceiro Forte", "55-night": "Aguaceiro Forte", - "56-day": "Leve Garoa Congelante", - "56-night": "Leve Garoa Congelante", - "57-day": "Garoa Congelante", - "57-night": "Garoa Congelante", - "66-day": "Chuva Congelante", + "56-day": "Granizo Leve", + "56-night": "Granizo Leve", + "57-day": "Granizo", + "57-night": "Granizo", "61-day": "Chuva fraca", "61-night": "Chuva fraca", "63-day": "Chuva", "63-night": "Chuva", "65-day": "Chuva forte", - "66-night": "Chuva Congelante", "65-night": "Chuva forte", - "67-day": "Chuva Congelante", - "67-night": "Chuva Congelante", + "66-day": "Granizo", + "66-night": "Granizo", + "67-day": "Granizo", + "67-night": "Granizo", "71-day": "Neve fraca", "71-night": "Neve fraca", "73-day": "Neve", @@ -309,40 +499,48 @@ "75-night": "Neve forte", "77-day": "Grãos de Neve", "77-night": "Grãos de Neve", - "80-day": "Neve fraca", - "80-night": "Chuviscos ligeiros", + "80-day": "Chuviscos Leves", + "80-night": "Chuviscos Leves", "81-day": "Chuviscos", "81-night": "Chuviscos", "82-day": "Chuviscos fortes", "82-night": "Chuviscos fortes", - "85-day": "Precipitação de Neve", - "85-night": "Precipitação de Neve", - "86-day": "Precipitação de Neve", - "86-night": "Precipitação de Neve", + "85-day": "Chuva de Neve", + "85-night": "Chuva de Neve", + "86-day": "Chuva de Neve", + "86-night": "Chuva de Neve", "95-day": "Trovoada", "95-night": "Trovoada", "96-day": "Trovoada com granizo", "96-night": "Trovoada com granizo", - "99-day": "Trovoada com granizo" - }, - "quicklaunch": { - "bookmark": "Marcador", - "service": "Serviço", - "search": "Busca", - "custom": "Personalizado", - "visit": "Visitar", - "url": "URL" + "99-day": "Trovoada com granizo", + "99-night": "Trovoada com granizo" }, "homebridge": { "available_update": "Sistema", - "updates": "Atualizações", + "updates": "Actualizações", "update_available": "Atualização disponível", "up_to_date": "Atualizado", - "child_bridges": "Pontes Filhas", + "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", "pending": "Pendente", - "down": "Baixo" + "down": "Down" + }, + "healthchecks": { + "new": "Novo", + "up": "Up", + "grace": "Em Período de Graça", + "down": "Down", + "paused": "Pausa", + "status": "Estado", + "last_ping": "Ultimo Ping", + "never": "Nenhum Ping ainda" + }, + "watchtower": { + "containers_scanned": "Verificado", + "containers_updated": "Atualizado", + "containers_failed": "Falhou" }, "autobrr": { "approvedPushes": "Aprovado", @@ -350,11 +548,6 @@ "filters": "Filtros", "indexers": "Indexadores" }, - "watchtower": { - "containers_scanned": "Verificado", - "containers_updated": "Atualizado", - "containers_failed": "Falhou" - }, "tubearchivist": { "downloads": "Fila", "videos": "Vídeos", @@ -364,31 +557,30 @@ "truenas": { "load": "Carga do sistema", "uptime": "Ligado", - "alerts": "Alertas", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Sem streams ativos", - "please_wait": "Por favor aguarde" + "alerts": "Alertas" }, "pyload": { - "queue": "Fila", - "total": "Total", "speed": "Velocidade", - "active": "Ativo" + "active": "Activo", + "queue": "Fila", + "total": "Total" }, "gluetun": { + "public_ip": "IP público", "region": "Região", - "country": "País", - "public_ip": "IP público" + "country": "País" }, "hdhomerun": { "channels": "Canais", - "hd": "HD" - }, - "ping": { - "error": "Erro", - "ping": "Tempo de resposta" + "hd": "HD", + "tunerCount": "Sintonizadores", + "channelNumber": "Canal", + "channelNetwork": "Rede", + "signalStrength": "Potência", + "signalQuality": "Qualidade", + "symbolQuality": "Qualidade", + "networkRate": "Taxa de bits", + "clientIP": "Cliente" }, "scrutiny": { "passed": "Aprovado", @@ -399,56 +591,35 @@ "inbox": "Caixa de entrada", "total": "Total" }, - "deluge": { - "download": "Descarregar", - "upload": "Enviar", - "leech": "Leech", - "seed": "Semente" - }, - "flood": { - "download": "Descarregar", - "upload": "Carregar", - "leech": "Leech", - "seed": "Semente" - }, - "tdarr": { - "queue": "Fila", - "processed": "Processado", - "errored": "Erro", - "saved": "Guardado" - }, - "miniflux": { - "read": "Lido", - "unread": "Não lido" + "peanut": { + "battery_charge": "Carga da bateria", + "ups_load": "Carga da UPS", + "ups_status": "Estado da UPS", + "online": "Online", + "on_battery": "Em bateria", + "low_battery": "Bateria Fraca" }, "nextdns": { - "wait": "Aguarde", - "no_devices": "Nenhum dado do dispositivo recebido" - }, - "omada": { - "connectedAp": "APs Ligados", - "activeUser": "Dispositivos activos", - "alerts": "Alertas", - "connectedGateway": "Gateways ligados", - "connectedSwitches": "Switches ligados" - }, - "downloadstation": { - "download": "Descarregar", - "upload": "Enviar", - "leech": "Leech", - "seed": "Semente" + "wait": "Por Favor, Aguarde", + "no_devices": "Nenhum Dado do Dispositivo Recebido" }, "mikrotik": { "cpuLoad": "Carga do CPU", "memoryUsed": "Memória Utilizada", - "uptime": "Ativo", + "uptime": "Ligado", "numberOfLeases": "Concessões" }, "xteve": { "streams_all": "Todos os Streams", - "streams_active": "Streams ativos", + "streams_active": "Streams Activas", "streams_xepg": "Canais XEPG" }, + "opendtu": { + "yieldDay": "Hoje", + "absolutePower": "Potência", + "relativePower": "Potência %", + "limit": "Limite" + }, "opnsense": { "cpu": "Carga do CPU", "memory": "Memória Ativa", @@ -461,11 +632,6 @@ "print_progress": "Progresso", "layers": "Camadas" }, - "medusa": { - "wanted": "Desejado", - "queued": "Na fila", - "series": "Séries" - }, "octoprint": { "printer_state": "Estado", "temp_tool": "Temp. Ferramenta", @@ -476,6 +642,16 @@ "origin_ip": "IP Origem", "status": "Estado" }, + "pfsense": { + "load": "Carga Média", + "memory": "Uso de memória", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Utilização do Disco", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Armaz. de Dados", "failed_tasks_24h": "Tarefas Falhas 24h", @@ -491,93 +667,91 @@ "uptimekuma": { "up": "Sites no Ar", "down": "Sites Fora do Ar", - "uptime": "Tempo Ativo", + "uptime": "Ligado", "incident": "Incidente", - "m": "m" + "m": "min" + }, + "atsumeru": { + "series": "Séries", + "archives": "Ficheiros", + "chapters": "Capítulos", + "categories": "Categorias" }, "komga": { "libraries": "Bibliotecas", "series": "Séries", "books": "Livros" }, + "diskstation": { + "days": "Dias", + "uptime": "Ligado", + "volumeAvailable": "Disponível" + }, "mylar": { "series": "Séries", "issues": "Problemas", - "wanted": "Desejado" + "wanted": "Desejados" }, "photoprism": { "albums": "Álbuns", "photos": "Fotos", "videos": "Vídeos", - "people": "Pessoa" - }, - "diskstation": { - "days": "Dias", - "uptime": "Tempo Ativo", - "volumeAvailable": "Disponível" + "people": "Pessoas" }, "fileflows": { "queue": "Fila", - "processing": "Processando", + "processing": "A Processar", "processed": "Processado", "time": "Hora" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Painéis", "datasources": "Origem de Dados", "totalalerts": "Total Alertas", - "alertstriggered": "Alertas Disparados" + "alertstriggered": "Alertas Desencadeados" }, "nextcloud": { "cpuload": "Carga de CPU", "memoryusage": "Memória Utilizada", "freespace": "Espaço Livre", - "activeusers": "Utilizadores Ativos", - "numfiles": "Files", - "numshares": "Shared Items" + "activeusers": "Utilizadores Activos", + "numfiles": "Ficheiros", + "numshares": "Itens partilhados" }, "kopia": { "status": "Estado", "size": "Tamanho", "lastrun": "Ultima Execução", "nextrun": "Próxima Execução", - "failed": "Falha" + "failed": "Falhou" }, "unmanic": { "active_workers": "Workers Ativos", - "total_workers": "Total Workers", + "total_workers": "Total de Trabalhadores", "records_total": "Comprimento da Fila" }, - "healthchecks": { - "never": "Nenhum ping ainda", - "new": "Novo", - "up": "Online", - "grace": "Em Período Gratuito", - "down": "Offline", - "paused": "Pausado", - "status": "Estado", - "last_ping": "Ultimo Ping" - }, "pterodactyl": { "servers": "Servidores", "nodes": "Nós" }, "prometheus": { "targets_up": "Alvo ativo", - "targets_down": "Alvo inativo", + "targets_down": "Alvo Inactivo", "targets_total": "Total de Alvos" }, - "minecraft": { - "players": "Reprodutores", - "version": "Versão", - "status": "Estado", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites no Ar", + "down": "Sites Fora do Ar", + "uptime": "Ligado" }, "ghostfolio": { "gross_percent_today": "Hoje", "gross_percent_1y": "Um ano", - "gross_percent_max": "Todo o tempo" + "gross_percent_max": "Desde Sempre" }, "audiobookshelf": { "podcasts": "Podcasts", @@ -590,89 +764,283 @@ "lights_on": "Luzes Acesas", "switches_on": "Interruptores Ligados" }, - "freshrss": { - "subscriptions": "Assinaturas", - "unread": "Não lida" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Gravações", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "A monitorizar", + "updates": "Actualizações" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanIP": "WAN IP", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Solicitações atuais", - "requests_failed": "Solicitações com falha" - }, - "evcc": { - "pv_power": "Produção", - "battery_soc": "Bateria", - "grid_power": "Grade", - "home_power": "Consumo", - "charge_power": "Carregador", - "watt_hour": "Kw" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Livros", + "authors": "Autores", + "categories": "Categorias", + "series": "Séries" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Fila", + "downloadBytesRemaining": "Restante", + "downloadTotalBytes": "Tamanho", + "downloadSpeed": "Velocidade" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Séries", + "totalFiles": "Ficheiros" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Resultado", + "status": "Estado", + "buildId": "ID da compilação", + "succeeded": "Bem sucedido", + "notStarted": "Não Iniciado", + "failed": "Falhou", + "canceled": "Cancelado", + "inProgress": "Em progresso", + "totalPrs": "Total de PRs", + "myPrs": "Os Meus PRs", + "approved": "Aprovado" + }, + "gamedig": { + "status": "Estado", + "online": "Online", + "offline": "Desligado", + "name": "Nome", + "map": "Mapa", + "currentPlayers": "Jogadores actuais", + "players": "Reprodutores", + "maxPlayers": "Máximo de Jogadores", + "bots": "Bots", + "ping": "Tempo de resposta" + }, + "urbackup": { + "ok": "Ok", + "errored": "Erros", + "noRecent": "Desactualizado", + "totalUsed": "Espaço utilizado" + }, + "mealie": { + "recipes": "Receitas", + "users": "Utilizadores", + "categories": "Categorias", + "tags": "Etiquetas" + }, + "openmediavault": { + "downloading": "A descarregar", + "total": "Total", + "running": "A correr", + "stopped": "Parado", + "passed": "Aprovado", + "failed": "Falhou" + }, + "openwrt": { + "uptime": "Ligado", + "cpuLoad": "Carga da CPU média (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitido", + "bytesRx": "Recebido" + }, + "uptimerobot": { + "status": "Estado", + "uptime": "Ligado", + "lastDown": "Última Inactividade", + "downDuration": "Duração de Inactividade", + "sitesUp": "Sites no Ar", + "sitesDown": "Sites Fora do Ar", + "paused": "Pausa", + "notyetchecked": "Ainda não verificado", + "up": "Up", + "seemsdown": "Parece em Baixo", + "down": "Down", + "unknown": "Desconhecido" + }, + "calendar": { + "inCinemas": "Em cinemas", + "physicalRelease": "Lançamento físico", + "digitalRelease": "Lançamento digital", + "noEventsToday": "Não existem eventos hoje!", + "noEventsFound": "Nenhum evento encontrado" + }, + "romm": { + "platforms": "Plataformas", + "totalRoms": "Jogos", + "saves": "Saves", + "states": "Estados", + "screenshots": "Screenshots", + "totalfilesize": "Tamanho Total" + }, + "mailcow": { + "domains": "Domínios", + "mailboxes": "Caixas de Correio", + "mails": "E-mails", + "storage": "Armazenamento" + }, + "netdata": { + "warnings": "Avisos", + "criticals": "Críticos" + }, + "plantit": { + "events": "Eventos", + "plants": "Plantas", + "photos": "Fotos", + "species": "Espécies" + }, + "gitea": { + "notifications": "Notificações", + "issues": "Problemas", + "pulls": "Solicitar pull", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Cenas", + "scenesPlayed": "Cenas reproduzidas", + "playCount": "Total de Reproduções", + "playDuration": "Tempo Assistido", + "sceneSize": "Tamanho das cenas", + "sceneDuration": "Duração das cenas", + "images": "Imagens", + "imageSize": "Tamanho das imagens", + "galleries": "Galerias", + "performers": "Artistas de palco", + "studios": "Estúdios", + "movies": "Filmes", + "tags": "Etiquetas", + "oCount": "Contagem de O's" + }, + "tandoor": { + "users": "Utilizadores", + "recipes": "Receitas", + "keywords": "Palavras-chave" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "Com Garantia", + "locations": "Localizações", + "labels": "Etiquetas", + "users": "Utilizadores", + "totalValue": "Valor Total" + }, + "crowdsec": { + "alerts": "Alertas", + "bans": "Banidos" + }, + "wgeasy": { + "connected": "Conectado", + "enabled": "Activo", + "disabled": "Desabilitado", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Com proxy", + "auth": "Com Autorização", + "outdated": "Desactualizado", + "banned": "Banido" + }, + "myspeed": { + "ping": "Tempo de resposta", + "download": "Descarregar", + "upload": "Carregar" + }, + "stocks": { + "stocks": "Acções", + "loading": "A carregar", + "open": "Aberto - Mercado dos EUA", + "closed": "Fechado - Mercado dos EUA", + "invalidConfiguration": "Configuração Inválida" + }, + "frigate": { + "cameras": "Câmeras", + "uptime": "Ligado", + "version": "Versão" + }, + "linkwarden": { + "links": "Links", + "collections": "Colecções", + "tags": "Etiquetas" + }, + "zabbix": { + "unclassified": "Não Classificados", + "information": "Informação", + "warning": "Avisos", + "average": "Média", + "high": "Elevado", + "disaster": "Desastre" + }, + "lubelogger": { + "vehicle": "Veículo", + "vehicles": "Veículos", + "serviceRecords": "Registros de Serviço", + "reminders": "Lembretes", + "nextReminder": "Próximo Lembrete", + "none": "Nenhum" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Nome", + "address": "Endereço", + "last_seen": "Última Vez Visto", + "status": "Estado", + "online": "Online", + "offline": "Desligado" + }, + "beszel": { + "name": "Nome", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Pausa", + "pending": "Pendente", + "status": "Estado", + "updated": "Atualizado", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Saudável", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Em falta", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "A carregar" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problemas", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Estado", + "load": "Carga", + "bcharge": "Carga da bateria", + "timeleft": "Tempo Restante" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Etiquetas" + }, + "slskd": { + "slskStatus": "Rede", + "connected": "Conectado", + "disconnected": "Desconectado", + "updateStatus": "Update", + "update_yes": "Disponível", + "update_no": "Atualizado", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Ficheiros" } } diff --git a/public/locales/pt_BR/common.json b/public/locales/pt_BR/common.json new file mode 100644 index 00000000..92a1dfcf --- /dev/null +++ b/public/locales/pt_BR/common.json @@ -0,0 +1,1046 @@ +{ + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "M", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Tipo de Widget ausente: {{type}}", + "api_error": "Erros de API", + "information": "Informação", + "status": "Status", + "url": "Endereço URL", + "raw_error": "Erro Bruto", + "response_data": "Dados de Resposta" + }, + "weather": { + "current": "Localização atual", + "allow": "Clique para permitir", + "updating": "Atualizando", + "wait": "Por favor, aguarde" + }, + "search": { + "placeholder": "Pesquisar…" + }, + "resources": { + "cpu": "CPU", + "mem": "MEM", + "total": "Total", + "free": "Livre", + "used": "Utilizado", + "load": "Carga", + "temp": "TEMP", + "max": "Máximo", + "uptime": "ATIVO" + }, + "unifi": { + "users": "Usuários", + "uptime": "Ligado", + "days": "Dias", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispositivos", + "lan_devices": "Dispositivos LAN", + "wlan_devices": "Dispositivos WLAN", + "lan_users": "Usuários de LAN", + "wlan_users": "Usuários de WLAN", + "up": "ATIVO", + "down": "Desligado", + "wait": "Por favor, aguarde", + "empty_data": "Status do Subsistema desconhecido" + }, + "docker": { + "rx": "Rx", + "tx": "Tx", + "mem": "MEM", + "cpu": "CPU", + "running": "Executando", + "offline": "Offline", + "error": "Erro", + "unknown": "Desconhecido", + "healthy": "Saudável", + "starting": "A iniciar", + "unhealthy": "Não-saudável", + "not_found": "Não Encontrado", + "exited": "Encerrado", + "partial": "Parcial" + }, + "ping": { + "error": "Erro", + "ping": "Tempo de resposta", + "down": "Inativo", + "up": "Ativo", + "not_available": "Não Disponível" + }, + "siteMonitor": { + "http_status": "Estado HTTP", + "error": "Erro", + "response": "Resposta", + "down": "Inativo", + "up": "Ativo", + "not_available": "Não Disponível" + }, + "emby": { + "playing": "A reproduzir", + "transcoding": "Transcodificação", + "bitrate": "Taxa de bits", + "no_active": "Sem Streams Ativos", + "movies": "Filmes", + "series": "Séries", + "episodes": "Episódios", + "songs": "Canções" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Disponível", + "total": "Total", + "unknown": "Desconhecido" + }, + "evcc": { + "pv_power": "Produção", + "battery_soc": "Bateria", + "grid_power": "Grade", + "home_power": "Consumo", + "charge_power": "Carregador", + "kilowatt": "kW" + }, + "flood": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "freshrss": { + "subscriptions": "Assinaturas", + "unread": "Não lida" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Não configurado", + "connectionStatusConnecting": "Conectando", + "connectionStatusAuthenticating": "Autenticando", + "connectionStatusPendingDisconnect": "Desconexão Pendente", + "connectionStatusDisconnecting": "Desconectando", + "connectionStatusDisconnected": "Desconectado", + "connectionStatusConnected": "Conectado", + "uptime": "Ligado", + "maxDown": "Tempo de inatividade máximo", + "maxUp": "Máx. Acima", + "down": "Inativo", + "up": "Ativo", + "received": "Recebido", + "sent": "Enviado", + "externalIPAddress": "IP Externo", + "externalIPv6Address": "IPv6 Externo", + "externalIPv6Prefix": "Prefixo IPv6 Externo" + }, + "caddy": { + "upstreams": "Streams de Envio", + "requests": "Solicitações atuais", + "requests_failed": "Solicitações com falha" + }, + "changedetectionio": { + "totalObserved": "Total Observado", + "diffsDetected": "Diferenças Detetadas" + }, + "channelsdvrserver": { + "shows": "Programas", + "recordings": "Gravações", + "scheduled": "Agendado", + "passes": "Passes" + }, + "tautulli": { + "playing": "A reproduzir", + "transcoding": "Transcodificação", + "bitrate": "Taxa de bits", + "no_active": "Sem Streams Ativos", + "plex_connection_error": "Verifique a conexão do Plex" + }, + "omada": { + "connectedAp": "APs Ligados", + "activeUser": "Dispositivos ativos", + "alerts": "Alertas", + "connectedGateways": "Gateways conectados", + "connectedSwitches": "Switches conectados" + }, + "nzbget": { + "rate": "Taxa", + "remaining": "Restante", + "downloaded": "Baixado" + }, + "plex": { + "streams": "Streams Ativas", + "albums": "Álbuns", + "movies": "Filmes", + "tv": "Series de TV" + }, + "sabnzbd": { + "rate": "Taxa", + "queue": "Fila", + "timeleft": "Tempo restante" + }, + "rutorrent": { + "active": "Ativo", + "upload": "Carregar", + "download": "Descarregar" + }, + "transmission": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "qbittorrent": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "qnap": { + "cpuUsage": "Uso de CPU", + "memUsage": "Uso de Memória", + "systemTempC": "Temp. do Sistema", + "poolUsage": "Uso do Pool", + "volumeUsage": "Uso do volume", + "invalid": "Inválido" + }, + "deluge": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "develancacheui": { + "cachehitbytes": "Bytes de Acerto de Cache", + "cachemissbytes": "Bytes de Falha de Cache" + }, + "downloadstation": { + "download": "Descarregar", + "upload": "Carregar", + "leech": "Leech", + "seed": "Semente" + }, + "sonarr": { + "wanted": "Desejada", + "queued": "Em fila", + "series": "Séries", + "queue": "Fila", + "unknown": "Desconhecido" + }, + "radarr": { + "wanted": "Desejada", + "missing": "Faltando", + "queued": "Em fila", + "movies": "Filmes", + "queue": "Fila", + "unknown": "Desconhecido" + }, + "lidarr": { + "wanted": "Desejada", + "queued": "Em fila", + "artists": "Artistas" + }, + "readarr": { + "wanted": "Desejada", + "queued": "Em fila", + "books": "Livros" + }, + "bazarr": { + "missingEpisodes": "Episódios Faltantes", + "missingMovies": "Filmes Faltantes" + }, + "ombi": { + "pending": "Pendente", + "approved": "Aprovada", + "available": "Disponível" + }, + "jellyseerr": { + "pending": "Pendente", + "approved": "Aprovada", + "available": "Disponível" + }, + "overseerr": { + "pending": "Pendente", + "processing": "Processando", + "approved": "Aprovada", + "available": "Disponível" + }, + "netalertx": { + "total": "Total", + "connected": "Conectado", + "new_devices": "Novos dispositivos", + "down_alerts": "Alertas de Inatividade" + }, + "pihole": { + "queries": "Consultas", + "blocked": "Bloqueado", + "blocked_percent": "Bloqueado %", + "gravity": "Gravidade" + }, + "adguard": { + "queries": "Consultas", + "blocked": "Bloqueado", + "filtered": "Filtrado", + "latency": "Latência" + }, + "speedtest": { + "upload": "Carregar", + "download": "Descarregar", + "ping": "Tempo de resposta" + }, + "portainer": { + "running": "Executando", + "stopped": "Parado", + "total": "Total" + }, + "suwayomi": { + "download": "Baixado", + "nondownload": "Não Baixado", + "read": "Lido", + "unread": "Não lida", + "downloadedread": "Baixado e Lido", + "downloadedunread": "Baixado e Não Lido", + "nondownloadedread": "Não Baixado e Lido", + "nondownloadedunread": "Não Baixado e Não Lido" + }, + "tailscale": { + "address": "Endereço", + "expires": "Expira em", + "never": "Nunca", + "last_seen": "Visto por último", + "now": "Agora", + "years": "{{number}}a", + "weeks": "{{number}}s", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Atrás" + }, + "technitium": { + "totalQueries": "Consultas", + "totalNoError": "Sucesso", + "totalServerFailure": "Falhas", + "totalNxDomain": "Domínios NX", + "totalRefused": "Recusado", + "totalAuthoritative": "Autoritativo", + "totalRecursive": "Recursivo", + "totalCached": "Em cache", + "totalBlocked": "Bloqueado", + "totalDropped": "Perdidos", + "totalClients": "Clientes" + }, + "tdarr": { + "queue": "Fila", + "processed": "Processado", + "errored": "Erro", + "saved": "Guardado" + }, + "traefik": { + "routers": "Roteadores", + "services": "Serviços", + "middleware": "" + }, + "navidrome": { + "nothing_streaming": "Sem Streams Ativos", + "please_wait": "Por favor, aguarde" + }, + "npm": { + "enabled": "Ativo", + "disabled": "Desabilitado", + "total": "Total" + }, + "coinmarketcap": { + "configure": "Configurar uma ou mais moedas", + "1hour": "1 Hora", + "1day": "1 Dia", + "7days": "7 Dias", + "30days": "30 Dias" + }, + "gotify": { + "apps": "Aplicações", + "clients": "Clientes", + "messages": "Mensagens" + }, + "prowlarr": { + "enableIndexers": "Indexadores", + "numberOfGrabs": "Agarrados", + "numberOfQueries": "Consultas", + "numberOfFailGrabs": "Falhados", + "numberOfFailQueries": "Pesquisas falhadas" + }, + "jackett": { + "configured": "Configurado", + "errored": "Erro" + }, + "strelaysrv": { + "numActiveSessions": "Sessões", + "numConnections": "Conexões", + "dataRelayed": "Retransmitido", + "transferRate": "Taxa" + }, + "mastodon": { + "user_count": "Usuários", + "status_count": "Postagens", + "domain_count": "Domínios" + }, + "medusa": { + "wanted": "Desejada", + "queued": "Em fila", + "series": "Séries" + }, + "minecraft": { + "players": "Reprodutores", + "version": "Versão", + "status": "Status", + "up": "Disponível", + "down": "Offline" + }, + "miniflux": { + "read": "Lido", + "unread": "Não lida" + }, + "authentik": { + "users": "Usuários", + "loginsLast24H": "Inícios de sessão (24h)", + "failedLoginsLast24H": "Inícios de sessão falhados (24h)" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "load": "Carga", + "wait": "Por favor, aguarde", + "temp": "TEMP", + "_temp": "Temperatura", + "warn": "Aviso", + "uptime": "ATIVO", + "total": "Total", + "free": "Livre", + "used": "Utilizado", + "days": "d", + "hours": "h", + "crit": "Crítico", + "read": "Lido", + "write": "Escrita", + "gpu": "GPU", + "mem": "Memória", + "swap": "Temporário" + }, + "quicklaunch": { + "bookmark": "Marcador", + "service": "Serviço", + "search": "Busca", + "custom": "Personalizado", + "visit": "Visitar", + "url": "Endereço URL", + "searchsuggestion": "Sugestão" + }, + "wmo": { + "0-day": "Solarengo", + "0-night": "Limpo", + "1-day": "Maioritariamente ensolarado", + "1-night": "Maioritariamente Limpo", + "2-day": "Parcialmente Nublado", + "2-night": "Parcialmente Nublado", + "3-day": "Nublado", + "3-night": "Nublado", + "45-day": "Nevoeiro", + "45-night": "Nevoeiro", + "48-day": "Nevoeiro", + "48-night": "Nevoeiro", + "51-day": "Aguaceiros", + "51-night": "Aguaceiros", + "53-day": "Chuvisco", + "53-night": "Chuvisco", + "55-day": "Aguaceiro Forte", + "55-night": "Aguaceiro Forte", + "56-day": "Leve Garoa Congelante", + "56-night": "Leve Garoa Congelante", + "57-day": "Garoa Congelante", + "57-night": "Garoa Congelante", + "61-day": "Chuva fraca", + "61-night": "Chuva fraca", + "63-day": "Chuva", + "63-night": "Chuva", + "65-day": "Chuva forte", + "65-night": "Chuva forte", + "66-day": "Chuva Congelante", + "66-night": "Chuva Congelante", + "67-day": "Chuva Congelante", + "67-night": "Chuva Congelante", + "71-day": "Neve fraca", + "71-night": "Neve fraca", + "73-day": "Neve", + "73-night": "Neve", + "75-day": "Neve forte", + "75-night": "Neve forte", + "77-day": "Grãos de Neve", + "77-night": "Grãos de Neve", + "80-day": "Neve fraca", + "80-night": "Neve fraca", + "81-day": "Chuviscos", + "81-night": "Chuviscos", + "82-day": "Chuviscos fortes", + "82-night": "Chuviscos fortes", + "85-day": "Precipitação de Neve", + "85-night": "Precipitação de Neve", + "86-day": "Precipitação de Neve", + "86-night": "Precipitação de Neve", + "95-day": "Trovoada", + "95-night": "Trovoada", + "96-day": "Trovoada com granizo", + "96-night": "Trovoada com granizo", + "99-day": "Trovoada com granizo", + "99-night": "Trovoada com granizo" + }, + "homebridge": { + "available_update": "Sistema", + "updates": "Atualizações", + "update_available": "Atualização disponível", + "up_to_date": "Atualizado", + "child_bridges": "Pontes Filhas", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Ativo", + "pending": "Pendente", + "down": "Inativo" + }, + "healthchecks": { + "new": "Novo", + "up": "Ativo", + "grace": "Em Período Gratuito", + "down": "Inativo", + "paused": "Pausado", + "status": "Status", + "last_ping": "Ultimo Ping", + "never": "Nenhum ping ainda" + }, + "watchtower": { + "containers_scanned": "Verificado", + "containers_updated": "Atualizado", + "containers_failed": "Falhou" + }, + "autobrr": { + "approvedPushes": "Aprovada", + "rejectedPushes": "Rejeitado", + "filters": "Filtros", + "indexers": "Indexadores" + }, + "tubearchivist": { + "downloads": "Fila", + "videos": "Vídeos", + "channels": "Canais", + "playlists": "Listas" + }, + "truenas": { + "load": "Carga do sistema", + "uptime": "Ligado", + "alerts": "Alertas" + }, + "pyload": { + "speed": "Velocidade", + "active": "Ativo", + "queue": "Fila", + "total": "Total" + }, + "gluetun": { + "public_ip": "IP público", + "region": "Região", + "country": "País" + }, + "hdhomerun": { + "channels": "Canais", + "hd": "HD", + "tunerCount": "Sintonizadores", + "channelNumber": "Canal", + "channelNetwork": "Rede", + "signalStrength": "Potência", + "signalQuality": "Qualidade", + "symbolQuality": "Qualidade", + "networkRate": "Taxa de bits", + "clientIP": "Cliente" + }, + "scrutiny": { + "passed": "Aprovado", + "failed": "Falhou", + "unknown": "Desconhecido" + }, + "paperlessngx": { + "inbox": "Caixa de entrada", + "total": "Total" + }, + "peanut": { + "battery_charge": "Carga da bateria", + "ups_load": "Carga do UPS", + "ups_status": "Estado UPS", + "online": "Disponível", + "on_battery": "Na bateria", + "low_battery": "Bateria Fraca" + }, + "nextdns": { + "wait": "Por favor, aguarde", + "no_devices": "Nenhum dado do dispositivo recebido" + }, + "mikrotik": { + "cpuLoad": "Carga do CPU", + "memoryUsed": "Memória Utilizada", + "uptime": "Ligado", + "numberOfLeases": "Concessões" + }, + "xteve": { + "streams_all": "Todos os Streams", + "streams_active": "Streams Ativas", + "streams_xepg": "Canais XEPG" + }, + "opendtu": { + "yieldDay": "Hoje", + "absolutePower": "Energia", + "relativePower": "Energia %", + "limit": "Limite" + }, + "opnsense": { + "cpu": "Carga do CPU", + "memory": "Memória Ativa", + "wanUpload": "Envio WAN", + "wanDownload": "WAN Descarga" + }, + "moonraker": { + "printer_state": "Estado da Impressora", + "print_status": "Estado da Impressora", + "print_progress": "Progresso", + "layers": "Camadas" + }, + "octoprint": { + "printer_state": "Status", + "temp_tool": "Temp. Ferramenta", + "temp_bed": "Temp. Cama", + "job_completion": "Conclusão" + }, + "cloudflared": { + "origin_ip": "IP Origem", + "status": "Status" + }, + "pfsense": { + "load": "Carga Média", + "memory": "Uso de memória", + "wanStatus": "Estado WAN", + "up": "Ativo", + "down": "Inativo", + "temp": "Temperatura", + "disk": "Uso do disco", + "wanIP": "IP WAN" + }, + "proxmoxbackupserver": { + "datastore_usage": "Armaz. de Dados", + "failed_tasks_24h": "Tarefas Falhas 24h", + "cpu_usage": "CPU", + "memory_usage": "Memória" + }, + "immich": { + "users": "Usuários", + "photos": "Fotos", + "videos": "Vídeos", + "storage": "Armazenamento" + }, + "uptimekuma": { + "up": "Sites no Ar", + "down": "Sites Fora do Ar", + "uptime": "Ligado", + "incident": "Incidente", + "m": "m" + }, + "atsumeru": { + "series": "Séries", + "archives": "Arquivos", + "chapters": "Capítulos", + "categories": "Categorias" + }, + "komga": { + "libraries": "Bibliotecas", + "series": "Séries", + "books": "Livros" + }, + "diskstation": { + "days": "Dias", + "uptime": "Ligado", + "volumeAvailable": "Disponível" + }, + "mylar": { + "series": "Séries", + "issues": "Problemas", + "wanted": "Desejada" + }, + "photoprism": { + "albums": "Álbuns", + "photos": "Fotos", + "videos": "Vídeos", + "people": "Pessoa" + }, + "fileflows": { + "queue": "Fila", + "processing": "Processando", + "processed": "Processado", + "time": "Hora" + }, + "firefly": { + "networth": "Valor Líquido", + "budget": "Orçamento" + }, + "grafana": { + "dashboards": "Painéis", + "datasources": "Origem de Dados", + "totalalerts": "Total Alertas", + "alertstriggered": "Alertas Disparados" + }, + "nextcloud": { + "cpuload": "Carga de CPU", + "memoryusage": "Memória Utilizada", + "freespace": "Espaço Livre", + "activeusers": "Utilizadores Ativos", + "numfiles": "Arquivos", + "numshares": "Itens compartilhados" + }, + "kopia": { + "status": "Status", + "size": "Tamanho", + "lastrun": "Ultima Execução", + "nextrun": "Próxima Execução", + "failed": "Falhou" + }, + "unmanic": { + "active_workers": "Workers Ativos", + "total_workers": "Total de trabalhadores", + "records_total": "Comprimento da Fila" + }, + "pterodactyl": { + "servers": "Servidores", + "nodes": "Nós" + }, + "prometheus": { + "targets_up": "Alvo ativo", + "targets_down": "Alvo inativo", + "targets_total": "Total de Alvos" + }, + "gatus": { + "up": "Sites no Ar", + "down": "Sites Fora do Ar", + "uptime": "Ligado" + }, + "ghostfolio": { + "gross_percent_today": "Hoje", + "gross_percent_1y": "Um ano", + "gross_percent_max": "Todo o tempo" + }, + "audiobookshelf": { + "podcasts": "Podcasts", + "books": "Livros", + "podcastsDuration": "Duração", + "booksDuration": "Duração" + }, + "homeassistant": { + "people_home": "Pessoas em Casa", + "lights_on": "Luzes Acesas", + "switches_on": "Interruptores Ligados" + }, + "whatsupdocker": { + "monitoring": "Monitorando", + "updates": "Atualizações" + }, + "calibreweb": { + "books": "Livros", + "authors": "Autores", + "categories": "Categorias", + "series": "Séries" + }, + "jdownloader": { + "downloadCount": "Fila", + "downloadBytesRemaining": "Restante", + "downloadTotalBytes": "Tamanho", + "downloadSpeed": "Velocidade" + }, + "kavita": { + "seriesCount": "Séries", + "totalFiles": "Arquivos" + }, + "azuredevops": { + "result": "Resultado", + "status": "Status", + "buildId": "ID Compilação", + "succeeded": "Bem-sucedido", + "notStarted": "Não iniciado", + "failed": "Falhou", + "canceled": "Cancelado", + "inProgress": "Em Progresso", + "totalPrs": "Total de PRs", + "myPrs": "Minhas PRs", + "approved": "Aprovada" + }, + "gamedig": { + "status": "Status", + "online": "Disponível", + "offline": "Offline", + "name": "Nome", + "map": "Mapa", + "currentPlayers": "Jogadores atuais", + "players": "Reprodutores", + "maxPlayers": "Número Máximo de Jogadores", + "bots": "Robôs", + "ping": "Tempo de resposta" + }, + "urbackup": { + "ok": "Ok", + "errored": "Erros", + "noRecent": "Desatualizado", + "totalUsed": "Armazanamento Utilizado" + }, + "mealie": { + "recipes": "Receitas", + "users": "Usuários", + "categories": "Categorias", + "tags": "Marcadores" + }, + "openmediavault": { + "downloading": "Baixando", + "total": "Total", + "running": "Executando", + "stopped": "Parado", + "passed": "Aprovado", + "failed": "Falhou" + }, + "openwrt": { + "uptime": "Ligado", + "cpuLoad": "Carga da CPU média (5m)", + "up": "Ativo", + "down": "Inativo", + "bytesTx": "Transmitido", + "bytesRx": "Recebido" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Ligado", + "lastDown": "Última inatividade", + "downDuration": "Duração de inatividade", + "sitesUp": "Sites no Ar", + "sitesDown": "Sites Fora do Ar", + "paused": "Pausado", + "notyetchecked": "Não conferidos ainda", + "up": "Ativo", + "seemsdown": "Parece Desconectado", + "down": "Inativo", + "unknown": "Desconhecido" + }, + "calendar": { + "inCinemas": "Nos cinemas", + "physicalRelease": "Versão física", + "digitalRelease": "Versão digital", + "noEventsToday": "Nenhum evento para hoje!", + "noEventsFound": "Nenhum evento encontrado" + }, + "romm": { + "platforms": "Plataformas", + "totalRoms": "Jogos", + "saves": "Saves", + "states": "Estados", + "screenshots": "Capturas de Tela", + "totalfilesize": "Tamanho total" + }, + "mailcow": { + "domains": "Domínios", + "mailboxes": "Caixas de e-mail", + "mails": "Mensagens", + "storage": "Armazenamento" + }, + "netdata": { + "warnings": "Alertas", + "criticals": "Críticos" + }, + "plantit": { + "events": "Eventos", + "plants": "Plantas", + "photos": "Fotos", + "species": "Espécies" + }, + "gitea": { + "notifications": "Notificações", + "issues": "Problemas", + "pulls": "Solicitações de Envio", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Cenas", + "scenesPlayed": "Cenas Reproduzidas", + "playCount": "Total de Reproduções", + "playDuration": "Tempo Assistido", + "sceneSize": "Tamanho das cenas", + "sceneDuration": "Duração das cenas", + "images": "Imagens", + "imageSize": "Tamanho da Imagem", + "galleries": "Galerias", + "performers": "Atores", + "studios": "Estúdios", + "movies": "Filmes", + "tags": "Marcadores", + "oCount": "Contagem 0" + }, + "tandoor": { + "users": "Usuários", + "recipes": "Receitas", + "keywords": "Palavras-chave" + }, + "homebox": { + "items": "Itens", + "totalWithWarranty": "Com Garantia", + "locations": "Localização", + "labels": "Rótulos", + "users": "Usuários", + "totalValue": "Valor Total" + }, + "crowdsec": { + "alerts": "Alertas", + "bans": "Banimentos" + }, + "wgeasy": { + "connected": "Conectado", + "enabled": "Ativo", + "disabled": "Desabilitado", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Com proxy", + "auth": "Com Autenticação", + "outdated": "Desatualizado", + "banned": "Banido" + }, + "myspeed": { + "ping": "Tempo de resposta", + "download": "Descarregar", + "upload": "Carregar" + }, + "stocks": { + "stocks": "Ações", + "loading": "Carregando", + "open": "Abrir - Mercado Americano", + "closed": "Fechado - Mercado americano", + "invalidConfiguration": "Configuração Inválida" + }, + "frigate": { + "cameras": "Câmeras", + "uptime": "Ligado", + "version": "Versão" + }, + "linkwarden": { + "links": "Links", + "collections": "Coleções", + "tags": "Marcadores" + }, + "zabbix": { + "unclassified": "Não classificado", + "information": "Informação", + "warning": "Aviso", + "average": "Médio", + "high": "Alto", + "disaster": "Desastre" + }, + "lubelogger": { + "vehicle": "Veículo", + "vehicles": "Veículos", + "serviceRecords": "Registros de Serviço", + "reminders": "Lembretes", + "nextReminder": "Próximo Lembrete", + "none": "Nenhum" + }, + "vikunja": { + "projects": "Projetos Ativos", + "tasks7d": "Tarefas que vencem nesta semana", + "tasksOverdue": "Tarefas Atrasadas", + "tasksInProgress": "Tarefas em Andamento" + }, + "headscale": { + "name": "Nome", + "address": "Endereço", + "last_seen": "Visto por último", + "status": "Status", + "online": "Disponível", + "offline": "Offline" + }, + "beszel": { + "name": "Nome", + "systems": "Sistemas", + "up": "Ativo", + "down": "Inativo", + "paused": "Pausado", + "pending": "Pendente", + "status": "Status", + "updated": "Atualizado", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disco", + "network": "Rede" + }, + "argocd": { + "apps": "Aplicativos", + "synced": "Sincronizado", + "outOfSync": "Fora de sincronia", + "healthy": "Saudável", + "degraded": "Degradado", + "progressing": "Progredindo", + "missing": "Faltando", + "suspended": "Suspenso" + }, + "spoolman": { + "loading": "Carregando" + }, + "gitlab": { + "groups": "Grupos", + "issues": "Problemas", + "merges": "Solicitações de mesclagem", + "projects": "Projetos" + }, + "apcups": { + "status": "Status", + "load": "Carga", + "bcharge": "Carga da bateria", + "timeleft": "Tempo restante" + }, + "hoarder": { + "bookmarks": "Favoritos", + "favorites": "Favoritos", + "archived": "Arquivados", + "highlights": "Destaques", + "lists": "Listas", + "tags": "Marcadores" + }, + "slskd": { + "slskStatus": "Rede", + "connected": "Conectado", + "disconnected": "Desconectado", + "updateStatus": "Update", + "update_yes": "Disponível", + "update_no": "Atualizado", + "downloads": "Transferências", + "uploads": "Envios", + "sharedFiles": "Arquivos" + } +} diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index 96fd22b4..b0eb7747 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -1,151 +1,257 @@ { - "resources": { - "used": "Utilizați", - "load": "Sarcină", - "total": "Total", - "free": "Disponibili", - "cpu": "Procesor", - "mem": "MEM", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", "months": "mo", "days": "d", "hours": "h", - "minutes": "m" + "minutes": "m", + "seconds": "s" + }, + "widget": { + "missing_type": "Lipsește Tipul de Widget: {{type}}", + "api_error": "Eroare API", + "information": "Informație", + "status": "Stare", + "url": "URL", + "raw_error": "Eroare Raw", + "response_data": "Date de raspuns" + }, + "weather": { + "current": "Locația Curentă", + "allow": "Click pentru a permite", + "updating": "Se actualizează", + "wait": "Va rugăm așteptați" + }, + "search": { + "placeholder": "Caută…" + }, + "resources": { + "cpu": "Procesor", + "mem": "MEM", + "total": "Total", + "free": "Disponibili", + "used": "Utilizați", + "load": "Sarcină", + "temp": "TEMP", + "max": "Maxim", + "uptime": "UP" + }, + "unifi": { + "users": "Utilizatori", + "uptime": "Uptime", + "days": "Zile", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Dispozitive", + "lan_devices": "Dispozitive LAN", + "wlan_devices": "Dispozitive WLAN", + "lan_users": "Utilizatori LAN", + "wlan_users": "Utilizatori WLAN", + "up": "UP", + "down": "Oprit", + "wait": "Va rugăm așteptați", + "empty_data": "Starea subsistemului este necunoscut" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", - "cpu": "CPU", + "cpu": "Procesor", + "running": "Rulează", "offline": "Offline", - "error": "Error", - "unknown": "Unknown", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "error": "Eroare", + "unknown": "Necunoscut", + "healthy": "Sănătos", + "starting": "Începe", + "unhealthy": "Nesănătos", + "not_found": "Negăsit", + "exited": "Ieşit", + "partial": "Parțial" }, - "jellyseerr": { - "approved": "Aprobate", - "available": "Disponibile", - "pending": "În așteptare" + "ping": { + "error": "Eroare", + "ping": "Ping", + "down": "Jos", + "up": "Sus", + "not_available": "Indisponibil" }, - "overseerr": { - "pending": "În așteptare", - "approved": "Aprobate", - "available": "Disponibile", - "processing": "Processing" + "siteMonitor": { + "http_status": "Stare HTTP", + "error": "Eroare", + "response": "Răspuns", + "down": "Jos", + "up": "Sus", + "not_available": "Indisponibil" }, - "pihole": { - "queries": "Cereri", - "blocked": "Blocate", - "gravity": "Gravity", - "blocked_percent": "Blocked %" - }, - "adguard": { - "blocked": "Blocate", - "filtered": "Filtrate", - "queries": "Cereri", - "latency": "Latentă" - }, - "traefik": { - "services": "Servicii", - "middleware": "Middleware", - "routers": "Routere" - }, - "npm": { - "enabled": "Activat", - "disabled": "Dezactivat", - "total": "Total" - }, - "coinmarketcap": { - "configure": "Configurați una sau mai multe criptomonede pe care să le urmăriți", - "1hour": "1 Oră", - "1day": "1 Zi", - "7days": "7 Zile", - "30days": "30 Zile" - }, - "weather": { - "allow": "Click pentru a permite", - "updating": "Se actualizează", - "current": "Locația Curentă", - "wait": "Va rugăm așteptați" - }, - "widget": { - "missing_type": "Lipsește Tipul de Widget: {{type}}", - "api_error": "Eroare API", - "status": "Status", - "information": "Informație", - "url": "URL", - "raw_error": "Eroare Raw", - "response_data": "Date de raspuns" - }, - "search": { - "placeholder": "Caută…" - }, - "tautulli": { - "no_active": "Niciun stream activ", + "emby": { "playing": "Activ", "transcoding": "Transcodare", - "bitrate": "Bitrate", + "bitrate": "Rata de biți", + "no_active": "Niciun stream activ", + "movies": "Filme", + "series": "Serie", + "episodes": "Episoade", + "songs": "Melodii" + }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Necunoscut" + }, + "evcc": { + "pv_power": "Producție", + "battery_soc": "Baterie", + "grid_power": "Grilă", + "home_power": "Consum", + "charge_power": "Încărcător", + "kilowatt": "kW" + }, + "flood": { + "download": "Descarcă", + "upload": "Încarcă", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Abonări", + "unread": "Necitit" + }, + "fritzbox": { + "connectionStatus": "Stare", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Jos", + "up": "Sus", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreamuri", + "requests": "Solicitări curente", + "requests_failed": "Solicitări eșuate" + }, + "changedetectionio": { + "totalObserved": "Total observat", + "diffsDetected": "Diffuri detectate" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, + "tautulli": { + "playing": "Activ", + "transcoding": "Transcodare", + "bitrate": "Rata de biți", + "no_active": "Niciun stream activ", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Rată", "remaining": "Rămas", "downloaded": "Descărcat" }, - "emby": { - "playing": "Activ", - "transcoding": "Transcodare", - "bitrate": "Bitrate", - "no_active": "Niciun stream activ", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "plex": { + "streams": "Fluxuri active", + "albums": "Albums", + "movies": "Filme", + "tv": "Seriale" }, "sabnzbd": { "rate": "Rată", "queue": "Coadă", "timeleft": "Timp rămas" }, - "transmission": { - "leech": "Leech", - "seed": "Seed", - "download": "Descarcă", - "upload": "Încarcă" - }, "rutorrent": { "active": "Activ", "upload": "Încarcă", "download": "Descarcă" }, + "transmission": { + "download": "Descarcă", + "upload": "Încarcă", + "leech": "Leech", + "seed": "Seed" + }, "qbittorrent": { "download": "Descarcă", "upload": "Încarcă", "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Descarcă", + "upload": "Încarcă", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Descarcă", + "upload": "Încarcă", + "leech": "Leech", + "seed": "Seed" + }, "sonarr": { "wanted": "Dorite", "queued": "În coadă", - "series": "Seriale", - "queue": "Queue", - "unknown": "Unknown" + "series": "Serie", + "queue": "Coadă", + "unknown": "Necunoscut" }, "radarr": { - "queued": "În coadă", "wanted": "Dorite", - "movies": "Filme", "missing": "Missing", - "queue": "Queue", - "unknown": "Unknown" + "queued": "În coadă", + "movies": "Filme", + "queue": "Coadă", + "unknown": "Necunoscut" }, "lidarr": { "wanted": "Dorite", @@ -166,434 +272,54 @@ "approved": "Aprobate", "available": "Disponibile" }, + "jellyseerr": { + "pending": "În așteptare", + "approved": "Aprobate", + "available": "Disponibile" + }, + "overseerr": { + "pending": "În așteptare", + "processing": "Processing", + "approved": "Aprobate", + "available": "Disponibile" + }, + "netalertx": { + "total": "Total", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, + "pihole": { + "queries": "Cereri", + "blocked": "Blocate", + "blocked_percent": "Blocked %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Cereri", + "blocked": "Blocate", + "filtered": "Filtrate", + "latency": "Latentă" + }, "speedtest": { "upload": "Încarcă", "download": "Descarcă", "ping": "Ping" }, "portainer": { - "running": "Activ", + "running": "Rulează", "stopped": "Oprit", "total": "Total" }, - "gotify": { - "apps": "Aplicații", - "clients": "Clienți", - "messages": "Mesaje" - }, - "prowlarr": { - "numberOfFailGrabs": "Descărcări eșuate", - "numberOfFailQueries": "Cereri eșuate", - "enableIndexers": "Indexatori", - "numberOfGrabs": "Descărcate", - "numberOfQueries": "Cereri" - }, - "jackett": { - "configured": "Configurat", - "errored": "Cu erori" - }, - "strelaysrv": { - "numActiveSessions": "Sesiuni", - "numConnections": "Conexiuni", - "dataRelayed": "Retransmise", - "transferRate": "Rată" - }, - "mastodon": { - "user_count": "Utilizatori", - "status_count": "Postări", - "domain_count": "Domenii" - }, - "authentik": { - "users": "Utilizatori", - "loginsLast24H": "Autentificări (24h)", - "failedLoginsLast24H": "Conectări eșuate (24h)" - }, - "proxmox": { - "vms": "Masini Virtuale", - "mem": "Memorie", - "cpu": "Procesor", - "lxc": "Container" - }, - "unifi": { - "users": "Utilizatori", - "uptime": "Timp de funcționare a sistemului", - "days": "Zile", - "wan": "WAN", - "lan_users": "Utilizatori LAN", - "wlan_users": "Utilizatori WLAN", - "up": "Pornit", - "down": "Oprit", - "wait": "Vă rugăm așteptați", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Dispozitive", - "lan_devices": "Dispozitive LAN", - "wlan_devices": "Dispozitive WLAN", - "empty_data": "Starea subsistemului este necunoscut" - }, - "plex": { - "streams": "Fluxuri active", - "movies": "Filme", - "tv": "Seriale", - "albums": "Albums" - }, - "glances": { - "cpu": "Procesor", - "wait": "Te rugam sa astepti", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" - }, - "wmo": { - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "99-night": "Thunderstorm With Hail", - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "63-day": "Rain", - "63-night": "Rain", - "61-day": "Light Rain", - "61-night": "Light Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, - "homebridge": { - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", - "available_update": "System", - "updates": "Updates", - "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" - }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" - }, - "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" - }, - "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" - }, - "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" - }, - "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" - }, - "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" - }, - "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" - }, - "paperlessngx": { - "inbox": "Inbox", - "total": "Total" - }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { + "suwayomi": { + "download": "Descărcat", + "nondownload": "Non-Downloaded", "read": "Read", - "unread": "Unread" - }, - "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}", - "bibitrate": "{{valoare, rata(biti: adevarat; binar: adevarat)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "mikrotik": { - "numberOfLeases": "Leases", - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime" - }, - "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" - }, - "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" - }, - "moonraker": { - "printer_state": "Printer State", - "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, - "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" - }, - "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "activeusers": "Active Users", - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Eșuat" - }, - "unmanic": { - "active_workers": "Muncitori activi", - "total_workers": "Muncitori totali", - "records_total": "Lungimea cozii" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, - "pterodactyl": { - "servers": "Servere", - "nodes": "Noduri" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Acutalizari" + "unread": "Necitit", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" }, "tailscale": { "address": "Address", @@ -609,61 +335,712 @@ "seconds": "{{number}}s", "ago": "{{value}} Ago" }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "technitium": { + "totalQueries": "Cereri", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocate", + "totalDropped": "Dropped", + "totalClients": "Clienți" + }, + "tdarr": { + "queue": "Coadă", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, + "traefik": { + "routers": "Routere", + "services": "Servicii", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "Niciun stream activ", + "please_wait": "Please Wait" + }, + "npm": { + "enabled": "Activat", + "disabled": "Dezactivat", + "total": "Total" + }, + "coinmarketcap": { + "configure": "Configurați una sau mai multe criptomonede pe care să le urmăriți", + "1hour": "1 Oră", + "1day": "1 Zi", + "7days": "7 Zile", + "30days": "30 Zile" + }, + "gotify": { + "apps": "Aplicații", + "clients": "Clienți", + "messages": "Mesaje" + }, + "prowlarr": { + "enableIndexers": "Indexatori", + "numberOfGrabs": "Descărcate", + "numberOfQueries": "Cereri", + "numberOfFailGrabs": "Descărcări eșuate", + "numberOfFailQueries": "Cereri eșuate" + }, + "jackett": { + "configured": "Configurat", + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "Sesiuni", + "numConnections": "Conexiuni", + "dataRelayed": "Retransmise", + "transferRate": "Rată" + }, + "mastodon": { + "user_count": "Utilizatori", + "status_count": "Postări", + "domain_count": "Domenii" + }, + "medusa": { + "wanted": "Dorite", + "queued": "În coadă", + "series": "Serie" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Stare", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Necitit" + }, + "authentik": { + "users": "Utilizatori", + "loginsLast24H": "Autentificări (24h)", + "failedLoginsLast24H": "Conectări eșuate (24h)" + }, + "proxmox": { + "mem": "MEM", + "cpu": "Procesor", + "lxc": "Container", + "vms": "Masini Virtuale" + }, + "glances": { + "cpu": "Procesor", + "load": "Sarcină", + "wait": "Va rugăm așteptați", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", + "uptime": "UP", + "total": "Total", + "free": "Disponibili", + "used": "Utilizați", + "days": "d", + "hours": "h", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Marcaj", + "service": "Serviciu", + "search": "Caută", + "custom": "Personalizat", + "visit": "Vizită", + "url": "URL", + "searchsuggestion": "Suggestion" + }, + "wmo": { + "0-day": "Însorit", + "0-night": "Fără nori", + "1-day": "Aproape însorit", + "1-night": "Aproape fără nori", + "2-day": "Parţial Înnorat", + "2-night": "Parţial Înnorat", + "3-day": "Înnorat", + "3-night": "Înnorat", + "45-day": "Ceaţă", + "45-night": "Ceaţă", + "48-day": "Ceaţă", + "48-night": "Ceaţă", + "51-day": "Light Drizzle", + "51-night": "Light Drizzle", + "53-day": "Drizzle", + "53-night": "Drizzle", + "55-day": "Heavy Drizzle", + "55-night": "Heavy Drizzle", + "56-day": "Light Freezing Drizzle", + "56-night": "Light Freezing Drizzle", + "57-day": "Freezing Drizzle", + "57-night": "Freezing Drizzle", + "61-day": "Light Rain", + "61-night": "Light Rain", + "63-day": "Rain", + "63-night": "Rain", + "65-day": "Heavy Rain", + "65-night": "Heavy Rain", + "66-day": "Freezing Rain", + "66-night": "Freezing Rain", + "67-day": "Freezing Rain", + "67-night": "Freezing Rain", + "71-day": "Light Snow", + "71-night": "Light Snow", + "73-day": "Snow", + "73-night": "Snow", + "75-day": "Heavy Snow", + "75-night": "Heavy Snow", + "77-day": "Snow Grains", + "77-night": "Snow Grains", + "80-day": "Light Showers", + "80-night": "Light Showers", + "81-day": "Showers", + "81-night": "Showers", + "82-day": "Heavy Showers", + "82-night": "Heavy Showers", + "85-day": "Snow Showers", + "85-night": "Snow Showers", + "86-day": "Snow Showers", + "86-night": "Snow Showers", + "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", + "96-night": "Thunderstorm With Hail", + "99-day": "Thunderstorm With Hail", + "99-night": "Thunderstorm With Hail" + }, + "homebridge": { + "available_update": "System", + "updates": "Updates", + "update_available": "Update Available", + "up_to_date": "Up to Date", + "child_bridges": "Child Bridges", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Sus", + "pending": "În așteptare", + "down": "Jos" + }, + "healthchecks": { + "new": "New", + "up": "Sus", + "grace": "In Grace Period", + "down": "Jos", + "paused": "Paused", + "status": "Stare", + "last_ping": "Last Ping", + "never": "No pings yet" + }, + "watchtower": { + "containers_scanned": "Scanned", + "containers_updated": "Updated", + "containers_failed": "Failed" + }, + "autobrr": { + "approvedPushes": "Aprobate", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexatori" + }, + "tubearchivist": { + "downloads": "Coadă", + "videos": "Videos", + "channels": "Channels", + "playlists": "Playlists" + }, + "truenas": { + "load": "System Load", + "uptime": "Uptime", + "alerts": "Alerts" + }, + "pyload": { + "speed": "Speed", + "active": "Activ", + "queue": "Coadă", + "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" + }, + "hdhomerun": { + "channels": "Channels", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Rata de biți", + "clientIP": "Client" + }, + "scrutiny": { + "passed": "Passed", + "failed": "Failed", + "unknown": "Necunoscut" + }, + "paperlessngx": { + "inbox": "Inbox", + "total": "Total" + }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" + }, + "nextdns": { + "wait": "Please Wait", + "no_devices": "No Device Data Received" + }, + "mikrotik": { + "cpuLoad": "CPU Load", + "memoryUsed": "Memory Used", + "uptime": "Uptime", + "numberOfLeases": "Leases" + }, + "xteve": { + "streams_all": "All Streams", + "streams_active": "Fluxuri active", + "streams_xepg": "XEPG Channels" + }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, + "opnsense": { + "cpu": "CPU Load", + "memory": "Active Memory", + "wanUpload": "WAN Upload", + "wanDownload": "WAN Download" + }, + "moonraker": { + "printer_state": "Printer State", + "print_status": "Print Status", + "print_progress": "Progress", + "layers": "Layers" + }, + "octoprint": { + "printer_state": "Stare", + "temp_tool": "Tool temp", + "temp_bed": "Bed temp", + "job_completion": "Completion" + }, + "cloudflared": { + "origin_ip": "Origin IP", + "status": "Stare" }, "pfsense": { "load": "Load Avg", "memory": "Mem Usage", "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", + "up": "Sus", + "down": "Jos", "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Failed Tasks 24h", + "cpu_usage": "Procesor", + "memory_usage": "Memory" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "Utilizatori", + "photos": "Photos", + "videos": "Videos", + "storage": "Storage" }, - "pialert": { - "new_devices": "New Devices", - "down_alerts": "Down Alerts", - "total": "Total", - "connected": "Connected" + "uptimekuma": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime", + "incident": "Incident", + "m": "m" + }, + "atsumeru": { + "series": "Serie", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "komga": { + "libraries": "Libraries", + "series": "Serie", + "books": "Cărți" + }, + "diskstation": { + "days": "Zile", + "uptime": "Uptime", + "volumeAvailable": "Disponibile" + }, + "mylar": { + "series": "Serie", + "issues": "Issues", + "wanted": "Dorite" + }, + "photoprism": { + "albums": "Albums", + "photos": "Photos", + "videos": "Videos", + "people": "People" + }, + "fileflows": { + "queue": "Coadă", + "processing": "Processing", + "processed": "Processed", + "time": "Time" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Dashboards", + "datasources": "Data Sources", + "totalalerts": "Total Alerts", + "alertstriggered": "Alerts Triggered" + }, + "nextcloud": { + "cpuload": "Cpu Load", + "memoryusage": "Memory Usage", + "freespace": "Free Space", + "activeusers": "Active Users", + "numfiles": "Files", + "numshares": "Shared Items" + }, + "kopia": { + "status": "Stare", + "size": "Size", + "lastrun": "Last Run", + "nextrun": "Next Run", + "failed": "Failed" + }, + "unmanic": { + "active_workers": "Muncitori activi", + "total_workers": "Muncitori totali", + "records_total": "Lungimea cozii" + }, + "pterodactyl": { + "servers": "Servere", + "nodes": "Noduri" + }, + "prometheus": { + "targets_up": "Targets Up", + "targets_down": "Targets Down", + "targets_total": "Total Targets" + }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, + "ghostfolio": { + "gross_percent_today": "Today", + "gross_percent_1y": "One year", + "gross_percent_max": "All time" + }, + "audiobookshelf": { + "podcasts": "Podcasts", + "books": "Cărți", + "podcastsDuration": "Duration", + "booksDuration": "Duration" + }, + "homeassistant": { + "people_home": "People Home", + "lights_on": "Lights On", + "switches_on": "Switches On" + }, + "whatsupdocker": { + "monitoring": "Monitoring", + "updates": "Updates" + }, + "calibreweb": { + "books": "Cărți", + "authors": "Authors", + "categories": "Categories", + "series": "Serie" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Coadă", + "downloadBytesRemaining": "Rămas", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { - "seriesCount": "Series", + "seriesCount": "Serie", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "Stare", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Aprobate" + }, + "gamedig": { + "status": "Stare", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Utilizatori", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Rulează", + "stopped": "Oprit", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Sus", + "down": "Jos", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Stare", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Sus", + "seemsdown": "Seems Down", + "down": "Jos", + "unknown": "Necunoscut" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domenii", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Filme", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Utilizatori", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Utilizatori", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Activat", + "disabled": "Dezactivat", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Descarcă", + "upload": "Încarcă" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informație", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Stare", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Sus", + "down": "Jos", + "paused": "Paused", + "pending": "În așteptare", + "status": "Stare", + "updated": "Updated", + "cpu": "Procesor", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sănătos", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stare", + "load": "Sarcină", + "bcharge": "Battery Charge", + "timeleft": "Timp rămas" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Disponibile", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index ed23a2a9..e1e1a94f 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -1,153 +1,379 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "мес", + "days": "дней", + "hours": "час", + "minutes": "мин", + "seconds": "сек" + }, "widget": { "missing_type": "Отсутствует тип виджета: {{type}}", "api_error": "Ошибка API", - "status": "Статус", "information": "Информация", - "url": "URL", - "raw_error": "Необработанная ошибка", + "status": "Статус", + "url": "Ссылка", + "raw_error": "Ошибка сырых данных", "response_data": "Данные ответа" }, + "weather": { + "current": "Текущее местоположение", + "allow": "Нажмите, чтобы разрешить", + "updating": "Обновление", + "wait": "Пожалуйста, подождите" + }, "search": { "placeholder": "Поиск…" }, "resources": { + "cpu": "ЦП", + "mem": "ОЗУ", "total": "Всего", "free": "Свободно", "used": "Использовано", "load": "Загрузка", - "cpu": "Процессор", - "mem": "Память", "temp": "Температура", - "max": "Макс.", - "uptime": "UP", - "months": "мес", - "days": "д", - "hours": "ч", - "minutes": "м" + "max": "Максимально", + "uptime": "Онлайн" + }, + "unifi": { + "users": "Пользователи", + "uptime": "Время работы", + "days": "Дней", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Устройства", + "lan_devices": "LAN устройства", + "wlan_devices": "WLAN устройства", + "lan_users": "LAN пользователи", + "wlan_users": "WLAN пользователи", + "up": "Онлайн", + "down": "Скачивание", + "wait": "Пожалуйста, подождите", + "empty_data": "Статус подсистемы неизвестен" }, "docker": { - "rx": "Rx", - "tx": "Тx", - "mem": "Память", - "cpu": "Процессор", + "rx": "RX", + "tx": "TX", + "mem": "ОЗУ", + "cpu": "ЦП", + "running": "Запущено", "offline": "Не в сети", "error": "Ошибка", - "unknown": "Неизвестный", - "running": "Запущенно", + "unknown": "Неизвестен", + "healthy": "Здоровый", "starting": "Запускается", - "unhealthy": "Не живой", - "not_found": "Не найден", - "exited": "Существует", - "partial": "Частично", - "healthy": "Живой" + "unhealthy": "Нездоровый", + "not_found": "Не найдено", + "exited": "Вышел", + "partial": "Частичный" + }, + "ping": { + "error": "Ошибка", + "ping": "Пинг", + "down": "Офлайн", + "up": "Онлайн", + "not_available": "Недоступен" + }, + "siteMonitor": { + "http_status": "HTTP статус", + "error": "Ошибка", + "response": "Ответ", + "down": "Офлайн", + "up": "Онлайн", + "not_available": "Недоступен" }, "emby": { - "playing": "Воспроизведение", - "transcoding": "Транскодирование", + "playing": "Воспроизводится", + "transcoding": "Перекодирование", "bitrate": "Битрейт", "no_active": "Нет активных потоков", "movies": "Фильмы", - "series": "Сериалы", + "series": "Серии", "episodes": "Эпизоды", "songs": "Песни" }, + "esphome": { + "offline": "Не в сети", + "offline_alt": "Не в сети", + "online": "В сети", + "total": "Всего", + "unknown": "Неизвестен" + }, + "evcc": { + "pv_power": "Прод", + "battery_soc": "Питание", + "grid_power": "Сетка", + "home_power": "Потребление", + "charge_power": "Зарядка", + "kilowatt": "кВт" + }, + "flood": { + "download": "Скачивание", + "upload": "Загрузка", + "leech": "Лич", + "seed": "Сид" + }, + "freshrss": { + "subscriptions": "Подписки", + "unread": "Не прочитано" + }, + "fritzbox": { + "connectionStatus": "Статус", + "connectionStatusUnconfigured": "Не настроено", + "connectionStatusConnecting": "Подключение", + "connectionStatusAuthenticating": "Авторизация", + "connectionStatusPendingDisconnect": "Ожидает отключения", + "connectionStatusDisconnecting": "Отключение", + "connectionStatusDisconnected": "Отключено", + "connectionStatusConnected": "Подключено", + "uptime": "Время работы", + "maxDown": "Макс. Загрузка", + "maxUp": "Макс. Отдача", + "down": "Офлайн", + "up": "Онлайн", + "received": "Получено", + "sent": "Отправлено", + "externalIPAddress": "Внеш. IP", + "externalIPv6Address": "Внешний IPv6", + "externalIPv6Prefix": "Внешний IPv6 префикс" + }, + "caddy": { + "upstreams": "Входящие каналы", + "requests": "Текущие запросы", + "requests_failed": "Неудачные запросы" + }, + "changedetectionio": { + "totalObserved": "Всего наблюдений", + "diffsDetected": "Обнаружены различия" + }, + "channelsdvrserver": { + "shows": "Показов", + "recordings": "Записей", + "scheduled": "Запланировано", + "passes": "Пропущено" + }, "tautulli": { - "playing": "Воспроизведение", - "transcoding": "Транскодирование", + "playing": "Воспроизводится", + "transcoding": "Перекодирование", "bitrate": "Битрейт", - "no_active": "Нет активных трансляций", - "plex_connection_error": "Проверьте соединение с Plex" + "no_active": "Нет активных потоков", + "plex_connection_error": "Проверка соединения Plex" + }, + "omada": { + "connectedAp": "Подключенные точки доступа", + "activeUser": "Активные устройства", + "alerts": "Предупреждения", + "connectedGateways": "Подключенные шлюзы", + "connectedSwitches": "Подключенные коммутаторы" + }, + "nzbget": { + "rate": "Скорость", + "remaining": "Осталось", + "downloaded": "Загружено" + }, + "plex": { + "streams": "Активные потоки", + "albums": "Альбомы", + "movies": "Фильмы", + "tv": "Сериалы" + }, + "sabnzbd": { + "rate": "Скорость", + "queue": "Очередь", + "timeleft": "Осталось" }, "rutorrent": { - "active": "Активный", + "active": "Активно", "upload": "Загрузка", - "download": "Загрузка" + "download": "Скачивание" + }, + "transmission": { + "download": "Скачивание", + "upload": "Загрузка", + "leech": "Лич", + "seed": "Сид" + }, + "qbittorrent": { + "download": "Скачивание", + "upload": "Загрузка", + "leech": "Лич", + "seed": "Сид" + }, + "qnap": { + "cpuUsage": "Использование ЦП", + "memUsage": "Использование ОЗУ", + "systemTempC": "Температура системы", + "poolUsage": "Использование пула", + "volumeUsage": "Использование тома", + "invalid": "Некорректный" + }, + "deluge": { + "download": "Скачивание", + "upload": "Загрузка", + "leech": "Лич", + "seed": "Сид" + }, + "develancacheui": { + "cachehitbytes": "Хит байты кэша", + "cachemissbytes": "Мисс байты кэша" + }, + "downloadstation": { + "download": "Скачивание", + "upload": "Загрузка", + "leech": "Лич", + "seed": "Сид" }, "sonarr": { - "wanted": "Желаемое", + "wanted": "Розыск", "queued": "В очереди", "series": "Серии", "queue": "Очередь", - "unknown": "Unknown" + "unknown": "Неизвестен" }, "radarr": { - "wanted": "Желаемое", + "wanted": "Розыск", + "missing": "Отсутствует", "queued": "В очереди", "movies": "Фильмы", - "missing": "Пропущено", "queue": "Очередь", - "unknown": "Unknown" + "unknown": "Неизвестен" + }, + "lidarr": { + "wanted": "Розыск", + "queued": "В очереди", + "artists": "Исполнители" }, "readarr": { - "wanted": "Желаемое", + "wanted": "Розыск", "queued": "В очереди", "books": "Книги" }, + "bazarr": { + "missingEpisodes": "Отсутствуют эпизоды", + "missingMovies": "Отсутствуют фильмы" + }, "ombi": { - "pending": "Ожидание", + "pending": "В обработке", "approved": "Одобрено", "available": "Доступно" }, "jellyseerr": { - "pending": "Ожидание", + "pending": "В обработке", "approved": "Одобрено", "available": "Доступно" }, + "overseerr": { + "pending": "В обработке", + "processing": "В процессе", + "approved": "Одобрено", + "available": "Доступно" + }, + "netalertx": { + "total": "Всего", + "connected": "Подключено", + "new_devices": "Новые устройства", + "down_alerts": "Оповещение о недоступности" + }, "pihole": { "queries": "Запросы", "blocked": "Заблокировано", - "gravity": "Сила тяжести", - "blocked_percent": "Blocked %" + "blocked_percent": "Заблокировано %", + "gravity": "Плотность" + }, + "adguard": { + "queries": "Запросы", + "blocked": "Заблокировано", + "filtered": "Отфильтровано", + "latency": "Задержка" }, "speedtest": { - "upload": "Отдача", - "download": "Загрузка", + "upload": "Загрузка", + "download": "Скачивание", "ping": "Пинг" }, "portainer": { - "running": "Запущенно", + "running": "Запущено", "stopped": "Остановлено", "total": "Всего" }, + "suwayomi": { + "download": "Загружено", + "nondownload": "Незагруженные", + "read": "Прочитано", + "unread": "Не прочитано", + "downloadedread": "Загруженные и прочитанные", + "downloadedunread": "Загруженные и непрочитанные", + "nondownloadedread": "Незагруженные и прочитанные", + "nondownloadedunread": "Незагруженные и непрочитанные" + }, + "tailscale": { + "address": "Адрес", + "expires": "Истекает", + "never": "Никогда", + "last_seen": "Последнее посещение", + "now": "Только что", + "years": "{{number}}г", + "weeks": "{{number}}нед", + "days": "{{number}}д", + "hours": "{{number}}ч", + "minutes": "{{number}}м", + "seconds": "{{number}}с", + "ago": "{{value}} назад" + }, + "technitium": { + "totalQueries": "Запросы", + "totalNoError": "Успешные", + "totalServerFailure": "Ошибки", + "totalNxDomain": "NX домены", + "totalRefused": "Отказано", + "totalAuthoritative": "Авторитетные", + "totalRecursive": "Рекурсивные", + "totalCached": "Кэш", + "totalBlocked": "Заблокировано", + "totalDropped": "Отброшенные", + "totalClients": "Клиенты" + }, + "tdarr": { + "queue": "Очередь", + "processed": "Обработано", + "errored": "Ошибок", + "saved": "Сохранено" + }, "traefik": { - "routers": "Маршрутизаторы", + "routers": "Роутеры", "services": "Сервисы", - "middleware": "Промежуточное программное обеспечение" + "middleware": "Связующее ПО" + }, + "navidrome": { + "nothing_streaming": "Нет активных потоков", + "please_wait": "Пожалуйста, подождите" }, "npm": { "enabled": "Включено", - "disabled": "Отключено", + "disabled": "Выключено", "total": "Всего" }, - "weather": { - "wait": "Пожалуйста подождите", - "current": "Текущая локация", - "allow": "Нажмите, чтобы разрешить", - "updating": "Обновление" - }, - "overseerr": { - "pending": "Ожидание", - "approved": "Одобрено", - "available": "Доступно", - "processing": "Обработка" - }, - "sabnzbd": { - "rate": "Оценка", - "queue": "Очередь", - "timeleft": "Осталось времени" - }, - "nzbget": { - "rate": "Оценка", - "remaining": "Осталось", - "downloaded": "Загружено" - }, "coinmarketcap": { "configure": "Настройте одну или несколько криптовалют для отслеживания", - "1hour": "1 Час", - "1day": "1 День", - "7days": "7 Дней", - "30days": "30 Дней" + "1hour": "1 час", + "1day": "1 день", + "7days": "7 дней", + "30days": "30 дней" }, "gotify": { "apps": "Приложения", @@ -161,47 +387,36 @@ "numberOfFailGrabs": "Неудачные захваты", "numberOfFailQueries": "Неудачные запросы" }, - "transmission": { - "download": "Загрузка", - "upload": "Отдача", - "leech": "Пиры", - "seed": "Сиды" - }, "jackett": { "configured": "Настроено", - "errored": "Ошибочно" + "errored": "Ошибок" }, - "bazarr": { - "missingEpisodes": "Отсутствующие эпизоды", - "missingMovies": "Отсутствующие фильмы" - }, - "lidarr": { - "wanted": "Желаемое", - "queued": "В очереди", - "artists": "Артисты" - }, - "adguard": { - "queries": "Запросы", - "blocked": "Заблокировано", - "filtered": "Отсортировано", - "latency": "Задержка" - }, - "qbittorrent": { - "download": "Загрузка", - "upload": "Отдача", - "leech": "Пиры", - "seed": "Сиды" + "strelaysrv": { + "numActiveSessions": "Сессии", + "numConnections": "Соединения", + "dataRelayed": "Ретранслировано", + "transferRate": "Скорость" }, "mastodon": { "user_count": "Пользователи", "status_count": "Посты", "domain_count": "Домены" }, - "strelaysrv": { - "numConnections": "Соединения", - "dataRelayed": "Ретранслировано", - "transferRate": "Оценка", - "numActiveSessions": "Сессий" + "medusa": { + "wanted": "Розыск", + "queued": "В очереди", + "series": "Серии" + }, + "minecraft": { + "players": "Игроки", + "version": "Версия", + "status": "Статус", + "up": "В сети", + "down": "Не в сети" + }, + "miniflux": { + "read": "Прочитано", + "unread": "Не прочитано" }, "authentik": { "users": "Пользователи", @@ -209,102 +424,91 @@ "failedLoginsLast24H": "Неудачные входы (24ч)" }, "proxmox": { - "mem": "Память", - "cpu": "Процессор", + "mem": "ОЗУ", + "cpu": "ЦП", "lxc": "LXC", "vms": "Виртуальные машины" }, - "unifi": { - "users": "Пользователи", - "uptime": "Время работы системы", - "days": "Дней", - "wan": "WAN", - "lan_users": "Пользователи LAN", - "wlan_users": "Пользователи WLAN", - "up": "Работает", - "down": "Не работает", - "wait": "Пожалуйста, подождите", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Устройства", - "lan_devices": "Устройства подключённые по LAN", - "wlan_devices": "Подключения WLAN", - "empty_data": "Статус системы неизвестен" - }, - "plex": { - "streams": "Активные трансляции", - "movies": "Фильмы", - "tv": "Передачи", - "albums": "Альбомы" - }, "glances": { - "cpu": "Процессор", + "cpu": "ЦП", + "load": "Загрузка", "wait": "Пожалуйста, подождите", "temp": "Температура", - "uptime": "Работает", - "days": "д", - "hours": "ч", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "_temp": "Температура", + "warn": "Предупреждение", + "uptime": "Онлайн", + "total": "Всего", + "free": "Свободно", + "used": "Использовано", + "days": "дней", + "hours": "час", + "crit": "Крит", + "read": "Прочитано", + "write": "Запись", + "gpu": "ГП", + "mem": "ОЗУ", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Всего наблюдаемых", - "diffsDetected": "Обнаружены различия" + "quicklaunch": { + "bookmark": "Закладка", + "service": "Сервис", + "search": "Поиск", + "custom": "Пользовательский", + "visit": "Посетите", + "url": "Ссылка", + "searchsuggestion": "Предложение" }, "wmo": { "0-day": "Солнечно", "0-night": "Ясно", - "71-night": "Лёгкий снег", - "73-day": "Снег", - "73-night": "Снег", - "75-day": "Сильный снегопад", - "75-night": "Сильный снегопад", - "77-day": "Снежные зёрна", - "77-night": "Снежные зёрна", - "80-day": "Слабый дождь", - "80-night": "Слабый дождь", - "81-day": "Ливень", - "1-day": "Преимущественно солнечно", - "1-night": "Преимущественно ясно", - "2-day": "Переменная облачность", - "2-night": "Переменная облачность", + "1-day": "Переменно солнечно", + "1-night": "Малооблачно", + "2-day": "Частичная облачность", + "2-night": "Частичная облачность", "3-day": "Облачно", "3-night": "Облачно", "45-day": "Туманно", "45-night": "Туманно", "48-day": "Туманно", "48-night": "Туманно", - "51-day": "Слегка моросит", - "51-night": "Слегка моросит", - "53-day": "Моросит", - "53-night": "Моросит", - "55-day": "Сильно моросит", - "55-night": "Сильно моросит", - "56-day": "Лёгкая изморозь", - "56-night": "Лёгкая изморозь", - "57-day": "Изморозь", - "57-night": "Изморозь", - "61-day": "Лёгкий дождь", - "61-night": "Лёгкий дождь", + "51-day": "Легкая морось", + "51-night": "Легкая морось", + "53-day": "Морось", + "53-night": "Морось", + "55-day": "Сильная морось", + "55-night": "Сильная морось", + "56-day": "Легкая морозная морось", + "56-night": "Легкая морозная морось", + "57-day": "Морозная морось", + "57-night": "Морозная морось", + "61-day": "Слабый дождь", + "61-night": "Слабый дождь", "63-day": "Дождь", "63-night": "Дождь", "65-day": "Сильный дождь", "65-night": "Сильный дождь", - "66-day": "Ледяной дождь", - "66-night": "Ледяной дождь", - "67-day": "Ледяной дождь", - "67-night": "Ледяной дождь", - "71-day": "Лёгкий снег", - "81-night": "Ливень", - "82-day": "Сильный ливень", - "82-night": "Сильный ливень", - "85-day": "Снегопад", - "85-night": "Снегопад", - "86-day": "Снегопад", - "86-night": "Снегопад", + "66-day": "Град", + "66-night": "Град", + "67-day": "Град", + "67-night": "Град", + "71-day": "Легкий снег", + "71-night": "Легкий снег", + "73-day": "Снег", + "73-night": "Снег", + "75-day": "Сильный снег", + "75-night": "Сильный снег", + "77-day": "Снежная крупа", + "77-night": "Снежная крупа", + "80-day": "Лёгкие ливни", + "80-night": "Лёгкие ливни", + "81-day": "Ливни", + "81-night": "Ливни", + "82-day": "Сильные ливни", + "82-night": "Сильные ливни", + "85-day": "Снегопады", + "85-night": "Снегопады", + "86-day": "Снегопады", + "86-night": "Снегопады", "95-day": "Гроза", "95-night": "Гроза", "96-day": "Гроза с градом", @@ -312,24 +516,31 @@ "99-day": "Гроза с градом", "99-night": "Гроза с градом" }, - "quicklaunch": { - "bookmark": "Закладка", - "service": "Сервис", - "search": "Поиск", - "custom": "Пользовательский", - "visit": "Посетить", - "url": "URL" - }, "homebridge": { "available_update": "Система", "updates": "Обновления", - "update_available": "Доступные обновления", - "up_to_date": "Обновлено", - "child_bridges_status": "{{ok}}/{{total}}", + "update_available": "Доступно обновление", + "up_to_date": "Последняя версия", "child_bridges": "Дочерние мосты", - "up": "Включено", - "pending": "В ожидании", - "down": "Выключено" + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Онлайн", + "pending": "В обработке", + "down": "Офлайн" + }, + "healthchecks": { + "new": "Новый", + "up": "Онлайн", + "grace": "Пробный период", + "down": "Офлайн", + "paused": "Приостановлено", + "status": "Статус", + "last_ping": "Последний пинг", + "never": "Нет пингов" + }, + "watchtower": { + "containers_scanned": "Просканировано", + "containers_updated": "Обновленно", + "containers_failed": "Провалено" }, "autobrr": { "approvedPushes": "Одобрено", @@ -337,11 +548,6 @@ "filters": "Фильтры", "indexers": "Индексаторы" }, - "watchtower": { - "containers_scanned": "Отсканировано", - "containers_updated": "Обновлено", - "containers_failed": "Неудачно" - }, "tubearchivist": { "downloads": "Очередь", "videos": "Видео", @@ -349,321 +555,492 @@ "playlists": "Плейлисты" }, "truenas": { - "load": "Загрузка системы", + "load": "Нагрузка системы", "uptime": "Время работы", - "alerts": "Уведомления", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Нет активных трансляций", - "please_wait": "Пожалуйста, подождите" + "alerts": "Предупреждения" }, "pyload": { "speed": "Скорость", - "active": "Активный", + "active": "Активно", "queue": "Очередь", "total": "Всего" }, "gluetun": { - "public_ip": "Публичный IP", + "public_ip": "Публичный IP-адрес", "region": "Регион", "country": "Страна" }, "hdhomerun": { "channels": "Каналы", - "hd": "HD" - }, - "ping": { - "error": "Ошибка", - "ping": "Пинг" + "hd": "HD", + "tunerCount": "Тюнеры", + "channelNumber": "Канал", + "channelNetwork": "Сеть", + "signalStrength": "Сила", + "signalQuality": "Качество", + "symbolQuality": "Качество", + "networkRate": "Битрейт", + "clientIP": "Клиент" }, "scrutiny": { - "failed": "Неудачно", - "unknown": "Неизвестный", - "passed": "Пройдено" + "passed": "Успешно", + "failed": "Провалено", + "unknown": "Неизвестен" }, "paperlessngx": { "inbox": "Входящие", "total": "Всего" }, - "deluge": { - "download": "Загрузка", - "upload": "Отдача", - "leech": "Пиры", - "seed": "Сиды" - }, - "flood": { - "upload": "Отдача", - "download": "Загрузка", - "leech": "Пиры", - "seed": "Сиды" - }, - "tdarr": { - "queue": "Очередь", - "processed": "Обработано", - "errored": "Ошибочно", - "saved": "Сохранено" - }, - "miniflux": { - "read": "Прочитанные", - "unread": "Непрочитанные" + "peanut": { + "battery_charge": "Заряд батареи", + "ups_load": "Нагрузка на UPS", + "ups_status": "Статус UPS", + "online": "В сети", + "on_battery": "От батареи", + "low_battery": "Низкий заряд" }, "nextdns": { "wait": "Пожалуйста, подождите", "no_devices": "Данные устройства не получены" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedSwitches": "Подключенные свитчи", - "connectedAp": "Подключенные точки доступа", - "activeUser": "Активные устройства", - "alerts": "Оповещения", - "connectedGateway": "Подключенные шлюзы" - }, - "downloadstation": { - "download": "Загрузка", - "upload": "Отдача", - "leech": "Пиры", - "seed": "Сиды" - }, "mikrotik": { - "cpuLoad": "Загрузка процессора", - "memoryUsed": "Использование памяти", + "cpuLoad": "Загрузка ЦПУ", + "memoryUsed": "Использовано ОЗУ", "uptime": "Время работы", "numberOfLeases": "Аренды" }, "xteve": { - "streams_all": "Все трансляции", - "streams_active": "Активные трансляции", - "streams_xepg": "XEPG-каналы" + "streams_all": "Все потоки", + "streams_active": "Активные потоки", + "streams_xepg": "Каналы XEPG" + }, + "opendtu": { + "yieldDay": "Сегодня", + "absolutePower": "Питание", + "relativePower": "Питание %", + "limit": "Лимит" }, "opnsense": { - "cpu": "Загрузка процессора", - "memory": "Активная память", - "wanUpload": "Отдача через WAN", - "wanDownload": "Загрузка через WAN" + "cpu": "Загрузка ЦПУ", + "memory": "Активно ОЗУ", + "wanUpload": "WAN Загрузка", + "wanDownload": "WAN скачивание" }, "moonraker": { "printer_state": "Состояние принтера", - "print_status": "Статус печати", + "print_status": "Статус принтера", "print_progress": "Прогресс", "layers": "Слои" }, - "medusa": { - "wanted": "Хотел", - "queued": "В очереди", - "series": "Сериалы" - }, "octoprint": { "printer_state": "Статус", - "temp_tool": "Температура инструмента", + "temp_tool": "Температура головки", "temp_bed": "Температура стола", - "job_completion": "Завершение" + "job_completion": "Прогресс" }, "cloudflared": { - "origin_ip": "IP источника", + "origin_ip": "Исходный IP", "status": "Статус" }, + "pfsense": { + "load": "Средняя нагрузка", + "memory": "Использование ОЗУ", + "wanStatus": "Статус WAN", + "up": "Онлайн", + "down": "Офлайн", + "temp": "Температура", + "disk": "Использование диска", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Хранилище данных", - "failed_tasks_24h": "Неудачные задачи 24ч", - "cpu_usage": "Процессор", - "memory_usage": "Память" + "failed_tasks_24h": "Неудачные задачи 24 часа", + "cpu_usage": "ЦП", + "memory_usage": "ОЗУ" }, "immich": { "users": "Пользователи", - "photos": "Фотографии", + "photos": "Фото", "videos": "Видео", "storage": "Хранилище" }, "uptimekuma": { - "up": "Сайтов включено", - "down": "Сайтов выключено", + "up": "Активные сайты", + "down": "Неактивные сайты", "uptime": "Время работы", - "incident": "Инцидент", - "m": "м" + "incident": "Происшествия", + "m": "мин" + }, + "atsumeru": { + "series": "Серии", + "archives": "Архивы", + "chapters": "Главы", + "categories": "Категории" }, "komga": { "libraries": "Библиотеки", "series": "Серии", "books": "Книги" }, - "mylar": { - "series": "Серии", - "issues": "Проблемы", - "wanted": "Хотел" - }, - "photoprism": { - "albums": "Альбомы", - "photos": "Фотографии", - "videos": "Видео", - "people": "Люди" - }, "diskstation": { "days": "Дней", "uptime": "Время работы", "volumeAvailable": "Доступно" }, + "mylar": { + "series": "Серии", + "issues": "Вопросы", + "wanted": "Розыск" + }, + "photoprism": { + "albums": "Альбомы", + "photos": "Фото", + "videos": "Видео", + "people": "Люди" + }, "fileflows": { "queue": "Очередь", - "processing": "Обработка", + "processing": "В процессе", "processed": "Обработано", "time": "Время" }, + "firefly": { + "networth": "Общая средства", + "budget": "Бюджет" + }, "grafana": { - "dashboards": "Панели мониторинга", + "dashboards": "Панели", "datasources": "Источники данных", - "totalalerts": "Всего уведомлений", - "alertstriggered": "Уведомлений сработало" + "totalalerts": "Предупреждения", + "alertstriggered": "Сработали предупреждения" }, "nextcloud": { - "cpuload": "Загрузка процессора", - "memoryusage": "Использование памяти", - "freespace": "Свободное место", + "cpuload": "Загрузка ЦПУ", + "memoryusage": "Использование ОЗУ", + "freespace": "Свободно места", "activeusers": "Активные пользователи", - "numfiles": "Files", - "numshares": "Shared Items" + "numfiles": "Файлов", + "numshares": "Опубликованных объектов" }, "kopia": { "status": "Статус", "size": "Размер", "lastrun": "Последний запуск", "nextrun": "Следующий запуск", - "failed": "Неудачно" + "failed": "Провалено" }, "unmanic": { - "active_workers": "Активные воркеры", - "total_workers": "Всего воркеров", - "records_total": "Длина запроса" - }, - "healthchecks": { - "new": "Новые", - "up": "Онлайн", - "grace": "В льготный период", - "down": "Офлайн", - "paused": "Приостановлено", - "status": "Статус", - "last_ping": "Последний пинг", - "never": "Пока нет пингов" + "active_workers": "Активные обработчики", + "total_workers": "Всего обработчиков", + "records_total": "Длина очереди" }, "pterodactyl": { - "servers": "Сервера", - "nodes": "Узлы" + "servers": "Серверы", + "nodes": "Ноды" }, "prometheus": { - "targets_up": "Целей включено", - "targets_down": "Целей выключено", + "targets_up": "Активные цели", + "targets_down": "Неактивные цели", "targets_total": "Всего целей" }, - "minecraft": { - "players": "Игроков", - "version": "Версия", - "status": "Статус", - "up": "Онлайн", - "down": "Офлайн" + "gatus": { + "up": "Активные сайты", + "down": "Неактивные сайты", + "uptime": "Время работы" }, "ghostfolio": { "gross_percent_today": "Сегодня", - "gross_percent_1y": "1 год", - "gross_percent_max": "За всё время" + "gross_percent_1y": "Один год", + "gross_percent_max": "Все время" }, "audiobookshelf": { "podcasts": "Подкасты", "books": "Книги", - "podcastsDuration": "Продолжительность", - "booksDuration": "Продолжительность" + "podcastsDuration": "Длительность", + "booksDuration": "Длительность" }, "homeassistant": { - "people_home": "Людей дома", - "lights_on": "Включено света", - "switches_on": "Включено переключателей" - }, - "freshrss": { - "subscriptions": "Подписки", - "unread": "Непрочитанные" - }, - "channelsdvrserver": { - "shows": "Сериалы", - "recordings": "Записи", - "scheduled": "Запланировано", - "passes": "Пройдено" + "people_home": "Люди дома", + "lights_on": "Свет включен", + "switches_on": "Включается" }, "whatsupdocker": { "monitoring": "Мониторинг", "updates": "Обновления" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Использование пула", - "volumeUsage": "Использование тома", - "invalid": "Invalid" - }, - "pfsense": { - "disk": "Disk Usage", - "wanIP": "WAN IP", - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp" - }, - "caddy": { - "upstreams": "Апстримы", - "requests": "Текущие запросы", - "requests_failed": "Неудачные запросы" - }, - "evcc": { - "home_power": "Потребление", - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "charge_power": "Зарядка", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "Новые устройства", - "down_alerts": "Оповещения о сбоях" + "calibreweb": { + "books": "Книги", + "authors": "Авторы", + "categories": "Категории", + "series": "Серии" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Очередь", + "downloadBytesRemaining": "Осталось", + "downloadTotalBytes": "Размер", + "downloadSpeed": "Скорость" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Серии", + "totalFiles": "Файлов" }, - "azurePipelines": { - "inProgress": "In Progress", - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled" + "azuredevops": { + "result": "Результат", + "status": "Статус", + "buildId": "ID сборки", + "succeeded": "Успешно", + "notStarted": "Не начато", + "failed": "Провалено", + "canceled": "Отменено", + "inProgress": "В процессе", + "totalPrs": "Всего PR-ов", + "myPrs": "Мои PR-ы", + "approved": "Одобрено" + }, + "gamedig": { + "status": "Статус", + "online": "В сети", + "offline": "Не в сети", + "name": "Имя", + "map": "Карта", + "currentPlayers": "Текущее количество игроков", + "players": "Игроки", + "maxPlayers": "Максимум игроков", + "bots": "Ботов", + "ping": "Пинг" + }, + "urbackup": { + "ok": "Ок", + "errored": "Ошибки", + "noRecent": "Устаревшие", + "totalUsed": "Использовано места" + }, + "mealie": { + "recipes": "Рецепты", + "users": "Пользователи", + "categories": "Категории", + "tags": "Теги" + }, + "openmediavault": { + "downloading": "Загрузка", + "total": "Всего", + "running": "Запущено", + "stopped": "Остановлено", + "passed": "Успешно", + "failed": "Провалено" + }, + "openwrt": { + "uptime": "Время работы", + "cpuLoad": "Средняя нагрузка ЦП (5м)", + "up": "Онлайн", + "down": "Офлайн", + "bytesTx": "Передано", + "bytesRx": "Получено" + }, + "uptimerobot": { + "status": "Статус", + "uptime": "Время работы", + "lastDown": "Время последнего падения", + "downDuration": "Длительность падения", + "sitesUp": "Активные сайты", + "sitesDown": "Неактивные сайты", + "paused": "Приостановлено", + "notyetchecked": "Ещё не проверено", + "up": "Онлайн", + "seemsdown": "Кажется упал :с", + "down": "Офлайн", + "unknown": "Неизвестен" + }, + "calendar": { + "inCinemas": "В кинотеатрах", + "physicalRelease": "Физический релиз", + "digitalRelease": "Цифровой релиз", + "noEventsToday": "Нет событий на сегодня!", + "noEventsFound": "Событий не найдено" + }, + "romm": { + "platforms": "Платформы", + "totalRoms": "Игры", + "saves": "Сохранения", + "states": "Состояния", + "screenshots": "Скриншоты", + "totalfilesize": "Общий объем" + }, + "mailcow": { + "domains": "Домены", + "mailboxes": "Почтовые ящики", + "mails": "Письма", + "storage": "Хранилище" + }, + "netdata": { + "warnings": "Предупреждения", + "criticals": "Критические" + }, + "plantit": { + "events": "События", + "plants": "Растения", + "photos": "Фото", + "species": "Виды" + }, + "gitea": { + "notifications": "Уведомления", + "issues": "Вопросы", + "pulls": "Запросы на слияние (Pull Request)", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Сцены", + "scenesPlayed": "Проигранных сцен", + "playCount": "Всего проиграно", + "playDuration": "Просмотрено времени", + "sceneSize": "Размер сцены", + "sceneDuration": "Длительность сцен", + "images": "Изображения", + "imageSize": "Размер изображений", + "galleries": "Галереи", + "performers": "Исполнители", + "studios": "Студии", + "movies": "Фильмы", + "tags": "Теги", + "oCount": "0" + }, + "tandoor": { + "users": "Пользователи", + "recipes": "Рецепты", + "keywords": "Ключевые слова" + }, + "homebox": { + "items": "Элементы", + "totalWithWarranty": "С гарантией", + "locations": "Местоположения", + "labels": "Ярлыки", + "users": "Пользователи", + "totalValue": "Общая стоимость" + }, + "crowdsec": { + "alerts": "Предупреждения", + "bans": "Блокировки" + }, + "wgeasy": { + "connected": "Подключено", + "enabled": "Включено", + "disabled": "Выключено", + "total": "Всего" + }, + "swagdashboard": { + "proxied": "Проксировано", + "auth": "С Авторизацией", + "outdated": "Устаревшие", + "banned": "Заблокированные" + }, + "myspeed": { + "ping": "Пинг", + "download": "Скачивание", + "upload": "Загрузка" + }, + "stocks": { + "stocks": "Акции", + "loading": "Загрузка", + "open": "Открыто - Рынок США", + "closed": "Закрыто - рынок США", + "invalidConfiguration": "Неверная конфигурация" + }, + "frigate": { + "cameras": "Камеры", + "uptime": "Время работы", + "version": "Версия" + }, + "linkwarden": { + "links": "Ссылки", + "collections": "Коллекции", + "tags": "Теги" + }, + "zabbix": { + "unclassified": "Не классифицировано", + "information": "Информация", + "warning": "Предупреждение", + "average": "Среднее", + "high": "Высокая", + "disaster": "Чрезвычайное" + }, + "lubelogger": { + "vehicle": "Транспорт", + "vehicles": "Транспорты", + "serviceRecords": "Сервисные записи", + "reminders": "Напоминания", + "nextReminder": "Следующее напоминание", + "none": "Отсутствует" + }, + "vikunja": { + "projects": "Активные Проекты", + "tasks7d": "Задачи на этой неделе", + "tasksOverdue": "Просроченные задачи", + "tasksInProgress": "Задачи в процессе" + }, + "headscale": { + "name": "Имя", + "address": "Адрес", + "last_seen": "Последнее посещение", + "status": "Статус", + "online": "В сети", + "offline": "Не в сети" + }, + "beszel": { + "name": "Имя", + "systems": "Системы", + "up": "Онлайн", + "down": "Офлайн", + "paused": "Приостановлено", + "pending": "В обработке", + "status": "Статус", + "updated": "Обновленно", + "cpu": "ЦП", + "memory": "ОЗУ", + "disk": "Диск", + "network": "Сеть" + }, + "argocd": { + "apps": "Приложения", + "synced": "Синхронизированные", + "outOfSync": "Не синхронизированные", + "healthy": "Здоровый", + "degraded": "Деградированные", + "progressing": "Выполняются", + "missing": "Отсутствует", + "suspended": "Приостановленные" + }, + "spoolman": { + "loading": "Загрузка" + }, + "gitlab": { + "groups": "Группы", + "issues": "Вопросы", + "merges": "Мердж-реквесты", + "projects": "Проекты" + }, + "apcups": { + "status": "Статус", + "load": "Загрузка", + "bcharge": "Заряд батареи", + "timeleft": "Осталось" + }, + "hoarder": { + "bookmarks": "Закладки", + "favorites": "Избранное", + "archived": "Архивированное", + "highlights": "События", + "lists": "Список", + "tags": "Теги" + }, + "slskd": { + "slskStatus": "Сеть", + "connected": "Подключено", + "disconnected": "Отключено", + "updateStatus": "Обновление", + "update_yes": "Доступно", + "update_no": "Последняя версия", + "downloads": "Скачивания", + "uploads": "Загрузки", + "sharedFiles": "Файлов" } } diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index 710b5007..9c154cce 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -1,669 +1,1046 @@ { - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "offline": "Offline", - "error": "Error", - "unknown": "Unknown", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" - }, - "rutorrent": { - "active": "Active", - "upload": "Upload", - "download": "Download" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" - }, - "proxmox": { - "vms": "VMs", - "mem": "MEM", - "cpu": "CPU", - "lxc": "LXC" - }, - "wmo": { - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "0-day": "Sunny", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" - }, - "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "xteve": { - "streams_all": "All Streams", - "streams_xepg": "XEPG Channels", - "streams_active": "Active Streams" - }, - "moonraker": { - "layers": "Layers", - "printer_state": "Printer State", - "print_status": "Print Status", - "print_progress": "Progress" - }, - "immich": { - "storage": "Storage", - "users": "Users", - "videos": "Videos", - "photos": "Photos" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mes", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { - "api_error": "API Error", - "missing_type": "Missing Widget Type: {{type}}", - "information": "Information", - "status": "Status", - "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" + "missing_type": "Chýba typ widgetu: {{type}}", + "api_error": "Chyba API", + "information": "Informácia", + "status": "Stav", + "url": "Odkaz", + "raw_error": "Nevyriešená chyba", + "response_data": "Dáta odpovede" }, "weather": { - "current": "Current Location", - "allow": "Click to allow", - "updating": "Updating", - "wait": "Please wait" + "current": "Aktuálna poloha", + "allow": "Klikni pre povolenie", + "updating": "Prebieha aktualizácia", + "wait": "Počkajte prosím" }, "search": { - "placeholder": "Search…" + "placeholder": "Hľadať…" }, "resources": { "cpu": "CPU", - "mem": "MEM", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "mem": "RAM", + "total": "Celkovo", + "free": "Voľné", + "used": "Využité", + "load": "Záťaž", + "temp": "TEPLOTA", + "max": "Max.", + "uptime": "BEŽÍ" }, "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Days", + "users": "Používatelia", + "uptime": "Prevádzka", + "days": "Dní", "wan": "WAN", - "lan": "LAN", + "lan": "Lokálna sieť", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "empty_data": "Subsystem status unknown" + "devices": "Zariadenia", + "lan_devices": "Zariadenia LAN", + "wlan_devices": "Zariadenia WLAN", + "lan_users": "Použ. LAN", + "wlan_users": "Použ. WLAN", + "up": "BEŽÍ", + "down": "NEBEŽÍ", + "wait": "Počkajte prosím", + "empty_data": "Stav podsystému neznámy" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "RAM", + "cpu": "CPU", + "running": "Beží", + "offline": "Nedostupný", + "error": "Chyba", + "unknown": "Neznáme", + "healthy": "Zdravý", + "starting": "Spúšťa sa", + "unhealthy": "Nezdravý", + "not_found": "Nenájdené", + "exited": "Ukončené", + "partial": "Čiastočný" }, "ping": { - "error": "Error", - "ping": "Ping" + "error": "Chyba", + "ping": "Odozva", + "down": "Sťahovanie", + "up": "Nahrávanie", + "not_available": "Nedostupný" + }, + "siteMonitor": { + "http_status": "HTTP stavový kód", + "error": "Chyba", + "response": "Odpoveď", + "down": "Sťahovanie", + "up": "Nahrávanie", + "not_available": "Nedostupný" }, "emby": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "playing": "Prehrávané", + "transcoding": "Prekódovávané", + "bitrate": "Prenosová rýchlosť", + "no_active": "Žiadny aktívny stream", + "movies": "Filmy", + "series": "Seriály", + "episodes": "Epizódy", + "songs": "Skladby" + }, + "esphome": { + "offline": "Nedostupný", + "offline_alt": "Nedostupný", + "online": "Online", + "total": "Celkovo", + "unknown": "Neznáme" + }, + "evcc": { + "pv_power": "Produkcia", + "battery_soc": "Batéria", + "grid_power": "Mriežka", + "home_power": "Spotreba", + "charge_power": "Nabíjačka", + "kilowatt": "kW" }, "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" - }, - "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", - "plex_connection_error": "Check Plex Connection" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "nzbget": { - "rate": "Rate", - "remaining": "Remaining", - "downloaded": "Downloaded" - }, - "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" - }, - "sabnzbd": { - "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" - }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series", - "queue": "Queue", - "unknown": "Unknown" - }, - "radarr": { - "wanted": "Wanted", - "missing": "Missing", - "queued": "Queued", - "movies": "Movies", - "queue": "Queue", - "unknown": "Unknown" - }, - "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" - }, - "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" - }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" - }, - "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" - }, - "overseerr": { - "pending": "Pending", - "processing": "Processing", - "approved": "Approved", - "available": "Available" - }, - "pihole": { - "queries": "Queries", - "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" - }, - "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" - }, - "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" - }, - "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" - }, - "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" - }, - "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" - }, - "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" - }, - "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" - }, - "jackett": { - "configured": "Configured", - "errored": "Errored" - }, - "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" - }, - "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" - }, - "glances": { - "cpu": "CPU", - "wait": "Please wait", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" - }, - "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", - "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, - "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" - }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" - }, - "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" - }, - "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" - }, - "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" - }, - "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" - }, - "paperlessngx": { - "inbox": "Inbox", - "total": "Total" - }, - "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" - }, - "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" - }, - "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" - }, - "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "freespace": "Free Space", - "activeusers": "Active Users", - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" - }, - "unmanic": { - "total_workers": "Total Workers", - "records_total": "Queue Length", - "active_workers": "Active Workers" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" + "download": "Sťahovanie", + "upload": "Nahrávanie", + "leech": "Leechované", + "seed": "Seedované" }, "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" + "subscriptions": "Odbery", + "unread": "Neprečítané" + }, + "fritzbox": { + "connectionStatus": "Stav", + "connectionStatusUnconfigured": "Nenastavený", + "connectionStatusConnecting": "Pripájanie", + "connectionStatusAuthenticating": "Overovanie", + "connectionStatusPendingDisconnect": "Čakám na odpojenie", + "connectionStatusDisconnecting": "Odpájanie", + "connectionStatusDisconnected": "Odpojené", + "connectionStatusConnected": "Pripojené", + "uptime": "Prevádzka", + "maxDown": "Max. sťahovanie", + "maxUp": "Max. nahrávanie", + "down": "Sťahovanie", + "up": "Nahrávanie", + "received": "Prijaté", + "sent": "Odoslané", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Odosielanie dát", + "requests": "Aktuálne požiadavky", + "requests_failed": "Neúspešné požiadavky" + }, + "changedetectionio": { + "totalObserved": "Spolu kontrolovaných", + "diffsDetected": "Nájdených rozdielov" }, "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "shows": "Relácie", + "recordings": "Záznamy", + "scheduled": "Naplánované", + "passes": "Odvysielané" }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "tautulli": { + "playing": "Prehrávané", + "transcoding": "Prekódovávané", + "bitrate": "Prenosová rýchlosť", + "no_active": "Žiadny aktívny stream", + "plex_connection_error": "Skontroluj spojenie s Plex" + }, + "omada": { + "connectedAp": "Pripojené prístupové body", + "activeUser": "Aktívne zariadenia", + "alerts": "Upozornenia", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Pripojené prepínače" + }, + "nzbget": { + "rate": "Rýchlosť", + "remaining": "Zostávajúce", + "downloaded": "Stiahnuté" + }, + "plex": { + "streams": "Aktívne vysielanie", + "albums": "Albumy", + "movies": "Filmy", + "tv": "Seriály" + }, + "sabnzbd": { + "rate": "Rýchlosť", + "queue": "V poradí", + "timeleft": "Zostávajúci čas" + }, + "rutorrent": { + "active": "Aktívne", + "upload": "Nahrávanie", + "download": "Sťahovanie" + }, + "transmission": { + "download": "Sťahovanie", + "upload": "Nahrávanie", + "leech": "Leechované", + "seed": "Seedované" + }, + "qbittorrent": { + "download": "Sťahovanie", + "upload": "Nahrávanie", + "leech": "Leechované", + "seed": "Seedované" + }, + "qnap": { + "cpuUsage": "Využitie CPU", + "memUsage": "Využitie pamäte", + "systemTempC": "Teplota systému", + "poolUsage": "Využitie zväzku", + "volumeUsage": "Využitie partície", + "invalid": "Neplatný" + }, + "deluge": { + "download": "Sťahovanie", + "upload": "Nahrávanie", + "leech": "Leechované", + "seed": "Seedované" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Sťahovanie", + "upload": "Nahrávanie", + "leech": "Leechované", + "seed": "Seedované" + }, + "sonarr": { + "wanted": "Žiadané", + "queued": "V poradí", + "series": "Seriály", + "queue": "V poradí", + "unknown": "Neznáme" + }, + "radarr": { + "wanted": "Žiadané", + "missing": "Chýbajúce", + "queued": "V poradí", + "movies": "Filmy", + "queue": "V poradí", + "unknown": "Neznáme" + }, + "lidarr": { + "wanted": "Žiadané", + "queued": "V poradí", + "artists": "Interpreti" + }, + "readarr": { + "wanted": "Žiadané", + "queued": "V poradí", + "books": "Knihy" + }, + "bazarr": { + "missingEpisodes": "Chýbajúce epizódy", + "missingMovies": "Chýbajúce filmy" + }, + "ombi": { + "pending": "Čakajúce", + "approved": "Schválené", + "available": "Dostupné" + }, + "jellyseerr": { + "pending": "Čakajúce", + "approved": "Schválené", + "available": "Dostupné" + }, + "overseerr": { + "pending": "Čakajúce", + "processing": "Spracovávané", + "approved": "Schválené", + "available": "Dostupné" + }, + "netalertx": { + "total": "Celkovo", + "connected": "Pripojené", + "new_devices": "Nové zariadenia", + "down_alerts": "Upozornenia o výpadkoch" + }, + "pihole": { + "queries": "Dopyty", + "blocked": "Zablokované", + "blocked_percent": "Blokované", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Dopyty", + "blocked": "Zablokované", + "filtered": "Filtrované", + "latency": "Odozva" + }, + "speedtest": { + "upload": "Nahrávanie", + "download": "Sťahovanie", + "ping": "Odozva" + }, + "portainer": { + "running": "Beží", + "stopped": "Zastavené", + "total": "Celkovo" + }, + "suwayomi": { + "download": "Stiahnuté", + "nondownload": "Non-Downloaded", + "read": "Prečítané", + "unread": "Neprečítané", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" }, "tailscale": { - "address": "Address", - "years": "{{number}}y", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "weeks": "{{number}}w", + "address": "Adresa", + "expires": "Vyprší", + "never": "Nikdy", + "last_seen": "Naposledy videné", + "now": "Teraz", + "years": "{{number}}r", + "weeks": "{{number}}t", "days": "{{number}}d", "hours": "{{number}}h", "minutes": "{{number}}m", "seconds": "{{number}}s", - "ago": "{{value}} Ago" + "ago": "Pred {{value}}" }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "technitium": { + "totalQueries": "Dopyty", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Zablokované", + "totalDropped": "Dropped", + "totalClients": "Klienti" + }, + "tdarr": { + "queue": "V poradí", + "processed": "Spracované", + "errored": "Chybné", + "saved": "Uložené" + }, + "traefik": { + "routers": "Smerovače", + "services": "Služby", + "middleware": "Midlvér" + }, + "navidrome": { + "nothing_streaming": "Žiadny aktívny stream", + "please_wait": "Počkajte prosím" + }, + "npm": { + "enabled": "Povolené", + "disabled": "Zakázané", + "total": "Celkovo" + }, + "coinmarketcap": { + "configure": "Nastavte jednu alebo viac kryptomien na sledovanie", + "1hour": "1 Hodina", + "1day": "1 Deň", + "7days": "7 Dní", + "30days": "30 Dní" + }, + "gotify": { + "apps": "Aplikácie", + "clients": "Klienti", + "messages": "Správy" + }, + "prowlarr": { + "enableIndexers": "Indexery", + "numberOfGrabs": "Zachytení", + "numberOfQueries": "Dopyty", + "numberOfFailGrabs": "Neúspešné zachytenia", + "numberOfFailQueries": "Neúspešné dopyty" + }, + "jackett": { + "configured": "Nastavený", + "errored": "Chybné" + }, + "strelaysrv": { + "numActiveSessions": "Relácie", + "numConnections": "Spojenia", + "dataRelayed": "Prenesené", + "transferRate": "Rýchlosť" + }, + "mastodon": { + "user_count": "Používatelia", + "status_count": "Príspevky", + "domain_count": "Domény" + }, + "medusa": { + "wanted": "Žiadané", + "queued": "V poradí", + "series": "Seriály" + }, + "minecraft": { + "players": "Hráči", + "version": "Verzia", + "status": "Stav", + "up": "Online", + "down": "Nedostupný" + }, + "miniflux": { + "read": "Prečítané", + "unread": "Neprečítané" + }, + "authentik": { + "users": "Používatelia", + "loginsLast24H": "Prihlás. (24 hod.)", + "failedLoginsLast24H": "Neúspešné prihlás. (24 hod.)" + }, + "proxmox": { + "mem": "RAM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "Virtuálne stroje" + }, + "glances": { + "cpu": "CPU", + "load": "Záťaž", + "wait": "Počkajte prosím", + "temp": "TEPLOTA", + "_temp": "Teplota", + "warn": "Upozornení", + "uptime": "BEŽÍ", + "total": "Celkovo", + "free": "Voľné", + "used": "Využité", + "days": "d", + "hours": "h", + "crit": "Kritické", + "read": "Prečítané", + "write": "Zápis", + "gpu": "GPU", + "mem": "Pamäť", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "Záložka", + "service": "Služba", + "search": "Hľadať", + "custom": "Vlastné", + "visit": "Navštíviť", + "url": "Odkaz", + "searchsuggestion": "Návrh" + }, + "wmo": { + "0-day": "Slnečno", + "0-night": "Jasno", + "1-day": "Prevažne slnečno", + "1-night": "Prevažne jasno", + "2-day": "Čiastočne zamračené", + "2-night": "Čiastočne zamračené", + "3-day": "Oblačno", + "3-night": "Oblačno", + "45-day": "Hmlisto", + "45-night": "Hmlisto", + "48-day": "Hmlisto", + "48-night": "Hmlisto", + "51-day": "Mierne mrholenie", + "51-night": "Mierne mrholenie", + "53-day": "Mrholenie", + "53-night": "Mrholenie", + "55-day": "Silné mrholenie", + "55-night": "Silné mrholenie", + "56-day": "Mierne mrazivé mrholenie", + "56-night": "Mierne mrazivé mrholenie", + "57-day": "Mrazivé mrholenie", + "57-night": "Mrazivé mrholenie", + "61-day": "Slabý dážď", + "61-night": "Slabý dážď", + "63-day": "Dážď", + "63-night": "Dážď", + "65-day": "Silný dážď", + "65-night": "Silný dážď", + "66-day": "Mrazivý dážď", + "66-night": "Mrazivý dážď", + "67-day": "Mrazivý dážď", + "67-night": "Mrazivý dážď", + "71-day": "Mierne sneženie", + "71-night": "Mierne sneženie", + "73-day": "Sneženie", + "73-night": "Sneženie", + "75-day": "Silné sneženie", + "75-night": "Silné sneženie", + "77-day": "Snehové vločky", + "77-night": "Snehové vločky", + "80-day": "Mierne prehánky", + "80-night": "Mierne prehánky", + "81-day": "Prehánky", + "81-night": "Prehánky", + "82-day": "Silné prehánky", + "82-night": "Silné prehánky", + "85-day": "Snehové prehánky", + "85-night": "Snehové prehánky", + "86-day": "Snehové prehánky", + "86-night": "Snehové prehánky", + "95-day": "Búrka", + "95-night": "Búrka", + "96-day": "Búrka s krupobitím", + "96-night": "Búrka s krupobitím", + "99-day": "Búrka s krupobitím", + "99-night": "Búrka s krupobitím" + }, + "homebridge": { + "available_update": "Systém", + "updates": "Aktualizácie", + "update_available": "Dostupná aktualizácia", + "up_to_date": "Aktuálny", + "child_bridges": "Podradené premostenia", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Nahrávanie", + "pending": "Čakajúce", + "down": "Sťahovanie" + }, + "healthchecks": { + "new": "Nový", + "up": "Nahrávanie", + "grace": "V dodatočnej lehote", + "down": "Sťahovanie", + "paused": "Pozastavené", + "status": "Stav", + "last_ping": "Poslendný ping", + "never": "Zatiaľ žiadne ping-y" + }, + "watchtower": { + "containers_scanned": "Oskenované", + "containers_updated": "Aktualizované", + "containers_failed": "Zlyhané" + }, + "autobrr": { + "approvedPushes": "Schválené", + "rejectedPushes": "Odmietnuté", + "filters": "Filtre", + "indexers": "Indexery" + }, + "tubearchivist": { + "downloads": "V poradí", + "videos": "Videá", + "channels": "Kanály", + "playlists": "Playlisty" + }, + "truenas": { + "load": "Záťaž systému", + "uptime": "Prevádzka", + "alerts": "Upozornenia" + }, + "pyload": { + "speed": "Rýchlosť", + "active": "Aktívne", + "queue": "V poradí", + "total": "Celkovo" + }, + "gluetun": { + "public_ip": "Verejná IP", + "region": "Región", + "country": "Krajina" + }, + "hdhomerun": { + "channels": "Kanály", + "hd": "HD", + "tunerCount": "Tunery", + "channelNumber": "Kanál", + "channelNetwork": "Sieť", + "signalStrength": "Sila", + "signalQuality": "Kvalita", + "symbolQuality": "Kvalita", + "networkRate": "Prenosová rýchlosť", + "clientIP": "Klient" + }, + "scrutiny": { + "passed": "Úspešný", + "failed": "Zlyhané", + "unknown": "Neznáme" + }, + "paperlessngx": { + "inbox": "Schránka správ", + "total": "Celkovo" + }, + "peanut": { + "battery_charge": "Nabitie batérie", + "ups_load": "Záťaž UPS", + "ups_status": "Status UPS", + "online": "Online", + "on_battery": "Na batérii", + "low_battery": "Slabá batéria" + }, + "nextdns": { + "wait": "Počkajte prosím", + "no_devices": "Informácie o zariadení nezískané" + }, + "mikrotik": { + "cpuLoad": "Využitie CPU", + "memoryUsed": "Využitie pamäte", + "uptime": "Prevádzka", + "numberOfLeases": "Pridelené adresy" + }, + "xteve": { + "streams_all": "Všetky vysielania", + "streams_active": "Aktívne vysielanie", + "streams_xepg": "XEPG kanály" + }, + "opendtu": { + "yieldDay": "Dnes", + "absolutePower": "Činný výkon", + "relativePower": "Relatívny výkon", + "limit": "Limit" + }, + "opnsense": { + "cpu": "Využitie CPU", + "memory": "Aktívna pamäť", + "wanUpload": "WAN nahrávanie", + "wanDownload": "WAN sťahovanie" + }, + "moonraker": { + "printer_state": "Stav tlačiarne", + "print_status": "Stav tlače", + "print_progress": "Priebeh", + "layers": "Vrstvy" + }, + "octoprint": { + "printer_state": "Stav", + "temp_tool": "Teplota extrudéra", + "temp_bed": "Teplota podložky", + "job_completion": "Priebeh" + }, + "cloudflared": { + "origin_ip": "Zdrojová IP", + "status": "Stav" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "disk": "Disk Usage", - "down": "Down", - "temp": "Temp", - "wanIP": "WAN IP" + "load": "Priemerné zaťaženie", + "memory": "Využitie pamäte", + "wanStatus": "Stav WAN", + "up": "Nahrávanie", + "down": "Sťahovanie", + "temp": "Teplota", + "disk": "Využitie disku", + "wanIP": "IP adresa WAN" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "Dátové úložisko", + "failed_tasks_24h": "Zlyhané úlohy za 24h", + "cpu_usage": "CPU", + "memory_usage": "Pamäť" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "Používatelia", + "photos": "Fotografie", + "videos": "Videá", + "storage": "Úložisko" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "Weby dostupné", + "down": "Weby nedostupné", + "uptime": "Prevádzka", + "incident": "Udalosť", + "m": "m" + }, + "atsumeru": { + "series": "Seriály", + "archives": "Archívy", + "chapters": "Kapitoly", + "categories": "Kategórie" + }, + "komga": { + "libraries": "Knižnice", + "series": "Seriály", + "books": "Knihy" + }, + "diskstation": { + "days": "Dní", + "uptime": "Prevádzka", + "volumeAvailable": "Dostupné" + }, + "mylar": { + "series": "Seriály", + "issues": "Problémy", + "wanted": "Žiadané" + }, + "photoprism": { + "albums": "Albumy", + "photos": "Fotografie", + "videos": "Videá", + "people": "Ľudia" + }, + "fileflows": { + "queue": "V poradí", + "processing": "Spracovávané", + "processed": "Spracované", + "time": "Čas" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Panely", + "datasources": "Zdroje dát", + "totalalerts": "Upozornení spolu", + "alertstriggered": "Spustené upozornenia" + }, + "nextcloud": { + "cpuload": "Využitie CPU", + "memoryusage": "Využitie pamäte", + "freespace": "Dostupné miesto", + "activeusers": "Aktívni používatelia", + "numfiles": "Súborov", + "numshares": "Zdieľané položky" + }, + "kopia": { + "status": "Stav", + "size": "Veľkosť", + "lastrun": "Naposledy spustené", + "nextrun": "Nasledujúce spustenie", + "failed": "Zlyhané" + }, + "unmanic": { + "active_workers": "Aktívne Worker-y", + "total_workers": "Spolu Worker-ov", + "records_total": "Dĺžka fronty" + }, + "pterodactyl": { + "servers": "Servery", + "nodes": "Uzly" + }, + "prometheus": { + "targets_up": "Dostupné ciele", + "targets_down": "Nedostupné ciele", + "targets_total": "Cieľov spolu" + }, + "gatus": { + "up": "Weby dostupné", + "down": "Weby nedostupné", + "uptime": "Prevádzka" + }, + "ghostfolio": { + "gross_percent_today": "Dnes", + "gross_percent_1y": "Jeden rok", + "gross_percent_max": "Za celý čas" + }, + "audiobookshelf": { + "podcasts": "Podcasty", + "books": "Knihy", + "podcastsDuration": "Dĺžka", + "booksDuration": "Dĺžka" + }, + "homeassistant": { + "people_home": "Ľudia doma", + "lights_on": "Zapnúť svetlá", + "switches_on": "Zapnúť prepínače" + }, + "whatsupdocker": { + "monitoring": "Monitoring", + "updates": "Aktualizácie" + }, + "calibreweb": { + "books": "Knihy", + "authors": "Autori", + "categories": "Kategórie", + "series": "Seriály" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "V poradí", + "downloadBytesRemaining": "Zostávajúce", + "downloadTotalBytes": "Veľkosť", + "downloadSpeed": "Rýchlosť" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Seriály", + "totalFiles": "Súborov" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Výsledok", + "status": "Stav", + "buildId": "ID zostavy", + "succeeded": "Úspešný", + "notStarted": "Nespustený", + "failed": "Zlyhané", + "canceled": "Zrušený", + "inProgress": "Prebieha", + "totalPrs": "Počet PR-ok", + "myPrs": "Moje PR-ka", + "approved": "Schválené" + }, + "gamedig": { + "status": "Stav", + "online": "Online", + "offline": "Nedostupný", + "name": "Meno", + "map": "Mapa", + "currentPlayers": "Počet hráčov", + "players": "Hráči", + "maxPlayers": "Maximálny počet hráčov", + "bots": "Boti", + "ping": "Odozva" + }, + "urbackup": { + "ok": "Ok", + "errored": "Chyby", + "noRecent": "Neaktuálny", + "totalUsed": "Použité úložisko" + }, + "mealie": { + "recipes": "Recepty", + "users": "Používatelia", + "categories": "Kategórie", + "tags": "Štítky" + }, + "openmediavault": { + "downloading": "Sťahovanie", + "total": "Celkovo", + "running": "Beží", + "stopped": "Zastavené", + "passed": "Úspešný", + "failed": "Zlyhané" + }, + "openwrt": { + "uptime": "Prevádzka", + "cpuLoad": "Záťaž CPU priem. (5m)", + "up": "Nahrávanie", + "down": "Sťahovanie", + "bytesTx": "Prenesených", + "bytesRx": "Prijaté" + }, + "uptimerobot": { + "status": "Stav", + "uptime": "Prevádzka", + "lastDown": "Posledný čas nedostupnosti", + "downDuration": "Trvanie nedostupnosti", + "sitesUp": "Weby dostupné", + "sitesDown": "Weby nedostupné", + "paused": "Pozastavené", + "notyetchecked": "Neskontrolované", + "up": "Nahrávanie", + "seemsdown": "Javí sa nedostupný", + "down": "Sťahovanie", + "unknown": "Neznáme" + }, + "calendar": { + "inCinemas": "V kinách", + "physicalRelease": "Fyzické vydanie", + "digitalRelease": "Digitálne vydanie", + "noEventsToday": "Žiadne udalosti na dnešný deň!", + "noEventsFound": "Žiadne udalosti" + }, + "romm": { + "platforms": "Platformy", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domény", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Úložisko" + }, + "netdata": { + "warnings": "Upozornenia", + "criticals": "Kritické" + }, + "plantit": { + "events": "Udalosti", + "plants": "Rastliny", + "photos": "Fotografie", + "species": "Druhy" + }, + "gitea": { + "notifications": "Oznámenia", + "issues": "Problémy", + "pulls": "Pull requesty", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scény", + "scenesPlayed": "Prehrané scény", + "playCount": "Celkovo prehraní", + "playDuration": "Pozeraný čas", + "sceneSize": "Veľkosť obrazovky", + "sceneDuration": "Dĺžka scény", + "images": "Obrázky", + "imageSize": "Veľkosť obrázkov", + "galleries": "Galérie", + "performers": "Herci", + "studios": "Štúdiá", + "movies": "Filmy", + "tags": "Štítky", + "oCount": "O Count" + }, + "tandoor": { + "users": "Používatelia", + "recipes": "Recepty", + "keywords": "Kľúčové slová" + }, + "homebox": { + "items": "Položky", + "totalWithWarranty": "So zárukou", + "locations": "Umiestnenia", + "labels": "Štítky", + "users": "Používatelia", + "totalValue": "Celková hodnota" + }, + "crowdsec": { + "alerts": "Upozornenia", + "bans": "Bany" + }, + "wgeasy": { + "connected": "Pripojené", + "enabled": "Povolené", + "disabled": "Zakázané", + "total": "Celkovo" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Zastarané", + "banned": "Zabanovaný" + }, + "myspeed": { + "ping": "Odozva", + "download": "Sťahovanie", + "upload": "Nahrávanie" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Prevádzka", + "version": "Verzia" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Štítky" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Informácia", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Meno", + "address": "Adresa", + "last_seen": "Naposledy videné", + "status": "Stav", + "online": "Online", + "offline": "Nedostupný" + }, + "beszel": { + "name": "Meno", + "systems": "Systems", + "up": "Nahrávanie", + "down": "Sťahovanie", + "paused": "Pozastavené", + "pending": "Čakajúce", + "status": "Stav", + "updated": "Aktualizované", + "cpu": "CPU", + "memory": "RAM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Zdravý", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Chýbajúce", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Problémy", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Stav", + "load": "Záťaž", + "bcharge": "Nabitie batérie", + "timeleft": "Zostávajúci čas" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Štítky" + }, + "slskd": { + "slskStatus": "Sieť", + "connected": "Pripojené", + "disconnected": "Odpojené", + "updateStatus": "Update", + "update_yes": "Dostupné", + "update_no": "Aktuálny", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Súborov" } } diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index 60cee85f..a32aa0dd 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -1,97 +1,33 @@ { "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "jellyseerr": { - "available": "Na voljo", - "pending": "V teku", - "approved": "Odobreno" - }, - "overseerr": { - "pending": "V teku", - "processing": "Procesiram", - "approved": "Odobreno", - "available": "Na voljo" - }, - "pihole": { - "queries": "Poizvedbe", - "blocked": "Blokirano", - "gravity": "Gravitacija", - "blocked_percent": "Blokirano %" - }, - "adguard": { - "filtered": "Filtrirano", - "latency": "Zakasnitev", - "queries": "Poizvedbe", - "blocked": "Blokirano" - }, - "opnsense": { - "wanUpload": "WAN naloženo", - "wanDownload": "WAN prejeto", - "cpu": "CPU obremenitev", - "memory": "Aktiven spomin" - }, - "octoprint": { - "temp_bed": "Temperatura postelje", - "job_completion": "Končano", - "printer_state": "Status", - "temp_tool": "Temperatura orodja" - }, - "cloudflared": { - "origin_ip": "Izvorni IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Shramba podatkov", - "failed_tasks_24h": "Opravila z napako 24h", - "cpu_usage": "CPU", - "memory_usage": "Spomin" - }, - "mylar": { - "wanted": "Želeno", - "series": "Serije", - "issues": "Težave" - }, - "photoprism": { - "albums": "Albumi", - "photos": "Slike", - "videos": "Videi", - "people": "Ljudje" - }, - "grafana": { - "alertstriggered": "Sproženi alarmi", - "dashboards": "Nadzorne plošče", - "datasources": "Viri podatkov", - "totalalerts": "Skupaj alarmov" - }, - "nextcloud": { - "cpuload": "CPU obremenitev", - "memoryusage": "Uporabljen spomin", - "freespace": "Prostor na voljo", - "activeusers": "Aktivni uporabniki", - "numfiles": "Datotek", - "numshares": "Deljeno" - }, - "kopia": { - "status": "Stanje", - "size": "Velikost", - "lastrun": "Zadnji zagon", - "nextrun": "Naslednji zagon", - "failed": "Neuspešno" - }, - "pterodactyl": { - "nodes": "Vozlišča", - "servers": "Strežniki" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mes", + "days": "d", + "hours": "u", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Manjka tip widgeta: {{type}}", "api_error": "API napaka", "information": "Informacija", - "raw_error": "Surova napaka", - "response_data": "Podatki iz odgovora", "status": "Stanje", - "url": "URL" + "url": "URL", + "raw_error": "Surova napaka", + "response_data": "Podatki iz odgovora" }, "weather": { "current": "Trenutna lokacija", @@ -111,27 +47,23 @@ "load": "Bremenitev", "temp": "TEMP", "max": "Maks.", - "uptime": "Gor", - "months": "me", - "days": "d", - "hours": "u", - "minutes": "u" + "uptime": "Gor" }, "unifi": { - "devices": "Naprave", - "lan_devices": "LAN naprave", - "wlan_devices": "WLAN naprave", - "lan_users": "LAN uporabniki", - "wlan_users": "WLAN uporabniki", - "up": "Gor", - "down": "Dol", - "wait": "Prosimo počakajte", "users": "Uporabniki", "uptime": "Čas delovanja", "days": "Dni", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", + "devices": "Naprave", + "lan_devices": "LAN naprave", + "wlan_devices": "WLAN naprave", + "lan_users": "LAN uporabniki", + "wlan_users": "WLAN uporabniki", + "up": "Gor", + "down": "DOL", + "wait": "Prosimo počakajte", "empty_data": "Neznani status podsistema" }, "docker": { @@ -152,7 +84,18 @@ }, "ping": { "error": "Napaka", - "ping": "Ping" + "ping": "Ping", + "down": "Nepovezan", + "up": "Povezan", + "not_available": "Ni na voljo" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Napaka", + "response": "Odgovor", + "down": "Nepovezan", + "up": "Povezan", + "not_available": "Ni na voljo" }, "emby": { "playing": "Predvaja", @@ -164,12 +107,20 @@ "episodes": "Epizode", "songs": "Pesmi" }, - "tautulli": { - "transcoding": "Transkodira", - "bitrate": "Pasovna širina", - "playing": "Predvaja", - "no_active": "Ni aktivne vsebine", - "plex_connection_error": "Check Plex Connection" + "esphome": { + "offline": "Ni povezan", + "offline_alt": "Ni povezan", + "online": "Na spletu", + "total": "Skupaj", + "unknown": "Neznano" + }, + "evcc": { + "pv_power": "Proizvodnja", + "battery_soc": "Baterija", + "grid_power": "Omrežje", + "home_power": "Poraba", + "charge_power": "Polnilec", + "kilowatt": "kW" }, "flood": { "download": "Prenos", @@ -177,15 +128,57 @@ "leech": "Pijavka", "seed": "Sejanje" }, + "freshrss": { + "subscriptions": "Naročnine", + "unread": "Neprebrano" + }, + "fritzbox": { + "connectionStatus": "Stanje", + "connectionStatusUnconfigured": "Nenastavljeno", + "connectionStatusConnecting": "Se povezuje", + "connectionStatusAuthenticating": "Avtentikacija", + "connectionStatusPendingDisconnect": "Čakanje na prekinitev", + "connectionStatusDisconnecting": "Prekinitev", + "connectionStatusDisconnected": "Prekinjeno", + "connectionStatusConnected": "Povezan", + "uptime": "Čas delovanja", + "maxDown": "Maks. dol", + "maxUp": "Maks. gor", + "down": "Nepovezan", + "up": "Povezan", + "received": "Prejeto", + "sent": "Poslano", + "externalIPAddress": "Zun. IP", + "externalIPv6Address": "Eks. IPv6", + "externalIPv6Prefix": "Eks. IPv6-predpona" + }, + "caddy": { + "upstreams": "Pretok gor", + "requests": "Trenutnih zahtev", + "requests_failed": "Neuspeš. zahtev" + }, "changedetectionio": { "totalObserved": "Skupaj opazovano", "diffsDetected": "Zaznanih sprememb" }, + "channelsdvrserver": { + "shows": "Epizode", + "recordings": "Posnetki", + "scheduled": "Načrtovano", + "passes": "Prehodi" + }, + "tautulli": { + "playing": "Predvaja", + "transcoding": "Transkodira", + "bitrate": "Pasovna širina", + "no_active": "Ni aktivne vsebine", + "plex_connection_error": "Preveri Plex povezavo" + }, "omada": { "connectedAp": "Povezanih AP", "activeUser": "Aktivne naprave", "alerts": "Opozorila", - "connectedGateway": "Povezan prehod", + "connectedGateways": "Povezani prehodi", "connectedSwitches": "Povezana stikala" }, "nzbget": { @@ -195,38 +188,50 @@ }, "plex": { "streams": "Aktivna vsebina", + "albums": "Albumi", "movies": "Filmi", - "tv": "TV serije", - "albums": "Albumi" + "tv": "TV serije" }, "sabnzbd": { - "rate": "Hitrost", + "rate": "Razmerje", "queue": "Vrsta", "timeleft": "Preostali čas" }, "rutorrent": { "active": "Aktiven", "upload": "Nalaganje", - "download": "Prenašanje" + "download": "Prenos" }, "transmission": { - "download": "Prenašanje", + "download": "Prenos", "upload": "Nalaganje", - "leech": "Pijavk", + "leech": "Pijavka", "seed": "Sejanje" }, "qbittorrent": { "download": "Prenos", "upload": "Nalaganje", - "leech": "Pijavk", + "leech": "Pijavka", "seed": "Sejanje" }, + "qnap": { + "cpuUsage": "CPU", + "memUsage": "MEM", + "systemTempC": "Temperatura", + "poolUsage": "Prostor", + "volumeUsage": "Prostora", + "invalid": "Neveljavno" + }, "deluge": { "download": "Prenos", "upload": "Nalaganje", "leech": "Pijavka", "seed": "Sejanje" }, + "develancacheui": { + "cachehitbytes": "Predpomn. zadetki", + "cachemissbytes": "Predpomn. zgrešeno" + }, "downloadstation": { "download": "Prenos", "upload": "Nalaganje", @@ -267,9 +272,38 @@ "approved": "Odobreno", "available": "Na voljo" }, + "jellyseerr": { + "pending": "V teku", + "approved": "Odobreno", + "available": "Na voljo" + }, + "overseerr": { + "pending": "V teku", + "processing": "Procesiram", + "approved": "Odobreno", + "available": "Na voljo" + }, + "netalertx": { + "total": "Skupaj", + "connected": "Povezan", + "new_devices": "Nova naprave", + "down_alerts": "Alarmi nedelovanja" + }, + "pihole": { + "queries": "Poizvedbe", + "blocked": "Blokirano", + "blocked_percent": "Blokirano %", + "gravity": "Gravitacija" + }, + "adguard": { + "queries": "Poizvedbe", + "blocked": "Blokirano", + "filtered": "Filtrirano", + "latency": "Zakasnitev" + }, "speedtest": { "upload": "Nalaganje", - "download": "Prenašanje", + "download": "Prenos", "ping": "Ping" }, "portainer": { @@ -277,16 +311,62 @@ "stopped": "Ustavljen", "total": "Skupaj" }, + "suwayomi": { + "download": "Preneseno", + "nondownload": "Nepreneseno", + "read": "Prebrano", + "unread": "Neprebrano", + "downloadedread": "Preneseno in prebrano", + "downloadedunread": "Preneseno in neprebrano", + "nondownloadedread": "Nepreneseno in prebrano", + "nondownloadedunread": "Nepreneseno in neprebrano" + }, + "tailscale": { + "address": "Naslov", + "expires": "Poteče", + "never": "Nikoli", + "last_seen": "Viden", + "now": "Sedaj", + "years": "{{number}}l", + "weeks": "{{number}}t", + "days": "{{number}}d", + "hours": "{{number}}u", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} nazaj" + }, + "technitium": { + "totalQueries": "Poizvedbe", + "totalNoError": "Uspeh", + "totalServerFailure": "Neuspehi", + "totalNxDomain": "NX domene", + "totalRefused": "Zavrnjeno", + "totalAuthoritative": "Avtoratitavno", + "totalRecursive": "Rekurzivno", + "totalCached": "Predpomnjeno", + "totalBlocked": "Blokirano", + "totalDropped": "Izpuščeno", + "totalClients": "Klienti" + }, "tdarr": { "queue": "Vrsta", "processed": "Procesiran", "errored": "Z napako", "saved": "Shranjen" }, + "traefik": { + "routers": "Usmerjevalniki", + "services": "Servisi", + "middleware": "Vmesna programska oprema" + }, + "navidrome": { + "nothing_streaming": "Ni aktivne vsebine", + "please_wait": "Prosim počakajte" + }, "npm": { + "enabled": "Omogočen", "disabled": "Onemogočen", - "total": "Skupaj", - "enabled": "Omogočen" + "total": "Skupaj" }, "coinmarketcap": { "configure": "Nastavite eno ali več kripto valut za sledenje", @@ -295,30 +375,21 @@ "7days": "7 dni", "30days": "30 dni" }, - "traefik": { - "routers": "Usmerjevalniki", - "services": "Servisi", - "middleware": "Vmesna programska oprema" - }, "gotify": { "apps": "Aplikacije", "clients": "Klienti", "messages": "Sporočila" }, - "navidrome": { - "nothing_streaming": "Ni aktivnega pretoka", - "please_wait": "Prosim počakajte" - }, "prowlarr": { "enableIndexers": "Indekserji", "numberOfGrabs": "Zajemi", "numberOfQueries": "Poizvedbe", - "numberOfFailGrabs": "Neuspešni zajemi", - "numberOfFailQueries": "Neuspešne poizvedbe" + "numberOfFailGrabs": "Neuspeš. zajem", + "numberOfFailQueries": "Neuspeš. poizvedb" }, "jackett": { "configured": "Nastavljeno", - "errored": "Z napakami" + "errored": "Z napako" }, "strelaysrv": { "numActiveSessions": "Seje", @@ -332,64 +403,72 @@ "domain_count": "Domene" }, "medusa": { - "wanted": "Želeno", + "wanted": "Iskano", "queued": "V vrsti", "series": "Serije" }, "minecraft": { "players": "Igralci", "version": "Verzija", - "status": "Status", + "status": "Stanje", "up": "Na spletu", - "down": "Brez povezave" + "down": "Ni povezan" }, "miniflux": { "read": "Prebrano", "unread": "Neprebrano" }, - "proxmox": { - "lxc": "LXC", - "vms": "VM", - "mem": "MEM", - "cpu": "CPU" - }, - "glances": { - "cpu": "CPU", - "wait": "Prosim počakajte", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "u", - "free": "Prosto", - "load": "Obremenitev", - "warn": "Opoz.", - "total": "Skupaj", - "used": "V uporabi" - }, "authentik": { "users": "Uporabniki", "loginsLast24H": "Prijave (24h)", "failedLoginsLast24H": "Neveljavne prijave (24h)" }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VM" + }, + "glances": { + "cpu": "CPU", + "load": "Bremenitev", + "wait": "Prosimo počakajte", + "temp": "TEMP", + "_temp": "Temp", + "warn": "Opoz.", + "uptime": "Gor", + "total": "Skupaj", + "free": "Prosto", + "used": "V uporabi", + "days": "d", + "hours": "u", + "crit": "Krit.", + "read": "Prebrano", + "write": "Zapisano", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, "quicklaunch": { "bookmark": "Zaznamek", "service": "Storitev", "search": "Iskanje", "custom": "Po meri", + "visit": "Obišči", "url": "URL", - "visit": "Obišči" + "searchsuggestion": "Predlog" }, "wmo": { - "3-night": "Oblačno", - "45-day": "Megleno", "0-day": "Sončno", "0-night": "Jasno", "1-day": "Večinoma sončno", "1-night": "Večinoma jasno", - "45-night": "Megleno", "2-day": "Delno oblačno", "2-night": "Delno oblačno", "3-day": "Oblačno", + "3-night": "Oblačno", + "45-day": "Megleno", + "45-night": "Megleno", "48-day": "Megleno", "48-night": "Megleno", "51-day": "Rahlo rosenje", @@ -401,16 +480,16 @@ "56-day": "Lahko zmrzovano pršenje", "56-night": "Lahko zmrzovano pršenje", "57-day": "Zmrzovano pršenje", + "57-night": "Zmrzovano pršenje", + "61-day": "Rahel dež", + "61-night": "Rahel dež", + "63-day": "Dež", "63-night": "Dež", "65-day": "Močnejši dež", "65-night": "Močnejši dež", "66-day": "Zmrznjen dež", "66-night": "Zmrznjen dež", - "57-night": "Zmrzovano pršenje", - "61-day": "Rahel dež", - "61-night": "Rahel dež", "67-day": "Zmrznjen dež", - "63-day": "Dež", "67-night": "Zmrznjen dež", "71-day": "Rahlo sneženje", "71-night": "Rahlo sneženje", @@ -421,14 +500,14 @@ "77-day": "Snežna zrna", "77-night": "Snežna zrna", "80-day": "Rahlo pršenje", - "85-night": "Snežne plohe", - "86-day": "Snežne plohe", "80-night": "Rahlo pršenje", "81-day": "Nalivi", "81-night": "Nalivi", "82-day": "Močnejši nalivi", "82-night": "Močnejši nalivi", "85-day": "Snežne plohe", + "85-night": "Snežne plohe", + "86-day": "Snežne plohe", "86-night": "Snežne plohe", "95-day": "Nevihta", "95-night": "Nevihta", @@ -438,23 +517,23 @@ "99-night": "Nevihta s točo" }, "homebridge": { - "child_bridges": "Otroški mostovi", - "child_bridges_status": "{{ok}}/{{total}}", - "up": "Gor", "available_update": "Sistem", "updates": "Posodobitve", "update_available": "Posodobitve na voljo", "up_to_date": "Posodobljeno", + "child_bridges": "Otroški mostovi", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Povezan", "pending": "V teku", - "down": "Dol" + "down": "Nepovezan" }, "healthchecks": { "new": "Nov", "up": "Povezan", "grace": "V podaljšanem roku", - "down": "Ni povezan", + "down": "Nepovezan", "paused": "Pavziran", - "status": "Status", + "status": "Stanje", "last_ping": "Zadnji Ping", "never": "Še ni pinga" }, @@ -464,7 +543,7 @@ "containers_failed": "Neuspešno" }, "autobrr": { - "approvedPushes": "Potrjen", + "approvedPushes": "Odobreno", "rejectedPushes": "Zavrnjen", "filters": "Filtri", "indexers": "Indekserji" @@ -478,13 +557,12 @@ "truenas": { "load": "Obremenitev sistema", "uptime": "Čas delovanja", - "alerts": "Alarmi", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Opozorila" }, "pyload": { "speed": "Hitrost", "active": "Aktiven", - "queue": "V vrsti", + "queue": "Vrsta", "total": "Skupaj" }, "gluetun": { @@ -494,17 +572,33 @@ }, "hdhomerun": { "channels": "Kanali", - "hd": "HD" + "hd": "HD", + "tunerCount": "Sprejemniki", + "channelNumber": "Kanal", + "channelNetwork": "Omrežje", + "signalStrength": "Moč", + "signalQuality": "Kakovost", + "symbolQuality": "Kakovost", + "networkRate": "Pasovna širina", + "clientIP": "Odjemalec" }, "scrutiny": { "passed": "Opravljeno", - "failed": "Z napako", + "failed": "Neuspešno", "unknown": "Neznano" }, "paperlessngx": { "inbox": "Prejeto", "total": "Skupaj" }, + "peanut": { + "battery_charge": "Napolnjenost baterije", + "ups_load": "UPS obremenitev", + "ups_status": "UPS status", + "online": "Na spletu", + "on_battery": "Na bateriji", + "low_battery": "Prazna baterija" + }, "nextdns": { "wait": "Prosim počakajte", "no_devices": "Podatki o napravi niso prejeti" @@ -517,15 +611,53 @@ }, "xteve": { "streams_all": "Vsi pretoki", - "streams_active": "Aktivni pretoki", + "streams_active": "Aktivna vsebina", "streams_xepg": "XEPG kanali" }, + "opendtu": { + "yieldDay": "Danes", + "absolutePower": "Napajanje", + "relativePower": "Napajanje %", + "limit": "Limit" + }, + "opnsense": { + "cpu": "CPU obremenitev", + "memory": "Aktiven spomin", + "wanUpload": "WAN naloženo", + "wanDownload": "WAN prejeto" + }, "moonraker": { "printer_state": "Stanje tiskalnika", "print_status": "Stanje tiskanja", "print_progress": "Napredek", "layers": "Sloji" }, + "octoprint": { + "printer_state": "Stanje", + "temp_tool": "Temperatura orodja", + "temp_bed": "Temperatura postelje", + "job_completion": "Končano" + }, + "cloudflared": { + "origin_ip": "Izvorni IP", + "status": "Stanje" + }, + "pfsense": { + "load": "Povp. obremenitev", + "memory": "Poraba spomina", + "wanStatus": "WAN status", + "up": "Povezan", + "down": "Nepovezan", + "temp": "Temp", + "disk": "Poraba diska", + "wanIP": "WAN IP" + }, + "proxmoxbackupserver": { + "datastore_usage": "Shramba podatkov", + "failed_tasks_24h": "Opravila z napako 24h", + "cpu_usage": "CPU", + "memory_usage": "Spomin" + }, "immich": { "users": "Uporabniki", "photos": "Slike", @@ -539,6 +671,12 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Serije", + "archives": "Arhivi", + "chapters": "Poglavja", + "categories": "Kategorije" + }, "komga": { "libraries": "Knjižnice", "series": "Serije", @@ -549,21 +687,66 @@ "uptime": "Čas delovanja", "volumeAvailable": "Na voljo" }, + "mylar": { + "series": "Serije", + "issues": "Težave", + "wanted": "Iskano" + }, + "photoprism": { + "albums": "Albumi", + "photos": "Slike", + "videos": "Videi", + "people": "Ljudje" + }, "fileflows": { "queue": "Vrsta", "processing": "Procesiram", - "processed": "Procesirano", + "processed": "Procesiran", "time": "Čas" }, + "firefly": { + "networth": "Neto vrednost", + "budget": "Proračun" + }, + "grafana": { + "dashboards": "Nadzorne plošče", + "datasources": "Viri podatkov", + "totalalerts": "Skupaj alarmov", + "alertstriggered": "Sproženi alarmi" + }, + "nextcloud": { + "cpuload": "CPU obremenitev", + "memoryusage": "Uporabljen spomin", + "freespace": "Prostor na voljo", + "activeusers": "Aktivni uporabniki", + "numfiles": "Datotek", + "numshares": "Deljeno" + }, + "kopia": { + "status": "Stanje", + "size": "Velikost", + "lastrun": "Zadnji zagon", + "nextrun": "Naslednji zagon", + "failed": "Neuspešno" + }, + "unmanic": { + "active_workers": "Aktivne niti", + "total_workers": "Skupaj niti", + "records_total": "Dolžina vrste" + }, + "pterodactyl": { + "servers": "Strežniki", + "nodes": "Vozlišča" + }, "prometheus": { "targets_up": "Tarče gor", "targets_down": "Tarče dol", "targets_total": "Skupaj tarč" }, - "unmanic": { - "active_workers": "Aktivne niti", - "total_workers": "Skupaj niti", - "records_total": "Dolžina vrste" + "gatus": { + "up": "Deluje", + "down": "Ne deluje", + "uptime": "Čas delovanja" }, "ghostfolio": { "gross_percent_today": "Danes", @@ -581,89 +764,283 @@ "lights_on": "Vklopljene luči", "switches_on": "Vklopljena stikala" }, - "freshrss": { - "subscriptions": "Naročnine", - "unread": "Neprebrano" - }, - "channelsdvrserver": { - "shows": "Epizode", - "recordings": "Posnetki", - "scheduled": "Načrtovano", - "passes": "Prehodi" - }, "whatsupdocker": { "monitoring": "Se spremlja", "updates": "Posodobitve" }, - "tailscale": { - "address": "Naslov", - "expires": "Poteče", - "never": "Nikoli", - "last_seen": "Viden", - "now": "Sedaj", - "years": "{{number}}l", - "weeks": "{{number}}t", - "days": "{{number}}d", - "hours": "{{number}}u", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} nazaj" - }, - "qnap": { - "cpuUsage": "CPU", - "memUsage": "MEM", - "systemTempC": "Temperatura", - "poolUsage": "Prostor", - "volumeUsage": "Prostora", - "invalid": "Neveljavno" - }, - "pfsense": { - "load": "Povp. obremenitev", - "memory": "Poraba spomina", - "wanStatus": "WAN Status", - "up": "Nalaganje", - "down": "Prenašanje", - "temp": "Temperatura", - "disk": "Poraba diska", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Pretok gor", - "requests": "Trenutnih zahtev", - "requests_failed": "Neuspešnih zahtev" - }, - "evcc": { - "pv_power": "Proizvodnja", - "battery_soc": "Baterija", - "grid_power": "Omrežje", - "home_power": "Poraba", - "charge_power": "Polnilec", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Skupaj", - "connected": "Povezanih", - "new_devices": "Nove naprave", - "down_alerts": "Izključeno" + "calibreweb": { + "books": "Knjige", + "authors": "Avtorji", + "categories": "Kategorije", + "series": "Serije" }, "jdownloader": { "downloadCount": "Vrsta", - "downloadSpeed": "Hitrost prenosa", - "downloadBytesRemaining": "Še ostane", - "downloadTotalBytes": "Velikost" + "downloadBytesRemaining": "Še preostane", + "downloadTotalBytes": "Velikost", + "downloadSpeed": "Hitrost" }, "kavita": { "seriesCount": "Serije", - "totalFiles": "Datoteke" + "totalFiles": "Datotek" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Rezultati", + "status": "Stanje", + "buildId": "ID gradnje", + "succeeded": "Uspešnih", + "notStarted": "Ni zagnano", + "failed": "Neuspešno", + "canceled": "Preklicano", + "inProgress": "V delu", + "totalPrs": "Skupaj PR", + "myPrs": "Moji PR", + "approved": "Odobreno" + }, + "gamedig": { + "status": "Stanje", + "online": "Na spletu", + "offline": "Ni povezan", + "name": "Naziv", + "map": "Zemljevid", + "currentPlayers": "Igralcev", + "players": "Igralci", + "maxPlayers": "Maks igralcev", + "bots": "Boti", + "ping": "Ping" + }, + "urbackup": { + "ok": "V redu", + "errored": "Napake", + "noRecent": "Zastarano", + "totalUsed": "Shramba v uporabi" + }, + "mealie": { + "recipes": "Recepti", + "users": "Uporabniki", + "categories": "Kategorije", + "tags": "Značke" + }, + "openmediavault": { + "downloading": "Prenašanje", + "total": "Skupaj", + "running": "Deluje", + "stopped": "Ustavljen", + "passed": "Opravljeno", + "failed": "Neuspešno" + }, + "openwrt": { + "uptime": "Čas delovanja", + "cpuLoad": "CPU obremenitev povp. (5m)", + "up": "Povezan", + "down": "Nepovezan", + "bytesTx": "Prenešeno", + "bytesRx": "Prejeto" + }, + "uptimerobot": { + "status": "Stanje", + "uptime": "Čas delovanja", + "lastDown": "Zadnjič nepovezan", + "downDuration": "Dolžina izpada", + "sitesUp": "Deluje", + "sitesDown": "Ne deluje", + "paused": "Pavziran", + "notyetchecked": "Še nepreverjeno", + "up": "Povezan", + "seemsdown": "Ne deluje", + "down": "Nepovezan", + "unknown": "Neznano" + }, + "calendar": { + "inCinemas": "V kinu", + "physicalRelease": "Fizična izdaja", + "digitalRelease": "Digitalna izdaja", + "noEventsToday": "Za danes ni dogodkov!", + "noEventsFound": "Ni dogodkov" + }, + "romm": { + "platforms": "Platforme", + "totalRoms": "Igre", + "saves": "Shranitve", + "states": "Stanja", + "screenshots": "Posnetki zaslona", + "totalfilesize": "Skupna velikost" + }, + "mailcow": { + "domains": "Domene", + "mailboxes": "Nabiralniki", + "mails": "Pošta", + "storage": "Shramba" + }, + "netdata": { + "warnings": "Opozorila", + "criticals": "Kritično" + }, + "plantit": { + "events": "Dogodki", + "plants": "Rastline", + "photos": "Slike", + "species": "Vrste" + }, + "gitea": { + "notifications": "Obvestila", + "issues": "Težave", + "pulls": "Zahteve za prenos", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scene", + "scenesPlayed": "Predvajane scene", + "playCount": "Skupaj predvajano", + "playDuration": "Čas gledanja", + "sceneSize": "Velikost scene", + "sceneDuration": "Dolžina scene", + "images": "Slike", + "imageSize": "Velikosti slik", + "galleries": "Galerije", + "performers": "Izvajalci", + "studios": "Studiji", + "movies": "Filmi", + "tags": "Značke", + "oCount": "O štetje" + }, + "tandoor": { + "users": "Uporabniki", + "recipes": "Recepti", + "keywords": "Ključne besede" + }, + "homebox": { + "items": "Predmeti", + "totalWithWarranty": "Z garancijo", + "locations": "Lokacije", + "labels": "Oznake", + "users": "Uporabniki", + "totalValue": "Skupna vrednost" + }, + "crowdsec": { + "alerts": "Opozorila", + "bans": "Prepovedi" + }, + "wgeasy": { + "connected": "Povezan", + "enabled": "Omogočen", + "disabled": "Onemogočen", + "total": "Skupaj" + }, + "swagdashboard": { + "proxied": "Čez proxi", + "auth": "Z Auth", + "outdated": "Zastarelo", + "banned": "Prepovedan" + }, + "myspeed": { + "ping": "Ping", + "download": "Prenos", + "upload": "Nalaganje" + }, + "stocks": { + "stocks": "Delnice", + "loading": "Nalaganje", + "open": "Odprto - US trg", + "closed": "Zaprto - US trg", + "invalidConfiguration": "Neveljavna konfiguracija" + }, + "frigate": { + "cameras": "Kamere", + "uptime": "Čas delovanja", + "version": "Verzija" + }, + "linkwarden": { + "links": "Povezave", + "collections": "Zbirke", + "tags": "Značke" + }, + "zabbix": { + "unclassified": "Nerazvrščeno", + "information": "Informacija", + "warning": "Opozorilo", + "average": "Povprečno", + "high": "Visoko", + "disaster": "Katastrofa" + }, + "lubelogger": { + "vehicle": "Vozilo", + "vehicles": "Vozila", + "serviceRecords": "Zapisi servisov", + "reminders": "Opomniki", + "nextReminder": "Naslednji opomnik", + "none": "Brez" + }, + "vikunja": { + "projects": "Aktivni projekti", + "tasks7d": "Potekla opravila tega tedna", + "tasksOverdue": "Potekla opravila", + "tasksInProgress": "Tekoča opravila" + }, + "headscale": { + "name": "Naziv", + "address": "Naslov", + "last_seen": "Viden", + "status": "Stanje", + "online": "Na spletu", + "offline": "Ni povezan" + }, + "beszel": { + "name": "Naziv", + "systems": "Sistemi", + "up": "Povezan", + "down": "Nepovezan", + "paused": "Pavziran", + "pending": "V teku", + "status": "Stanje", + "updated": "Posodobljen", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "Mreža" + }, + "argocd": { + "apps": "Aplikacije", + "synced": "Sinhro", + "outOfSync": "Ni sinhro", + "healthy": "Zdrav", + "degraded": "Degragirano", + "progressing": "V teku", + "missing": "Manjka", + "suspended": "Prekinjeno" + }, + "spoolman": { + "loading": "Nalaganje" + }, + "gitlab": { + "groups": "Skupine", + "issues": "Težave", + "merges": "Združi zahtevke", + "projects": "Projekti" + }, + "apcups": { + "status": "Stanje", + "load": "Bremenitev", + "bcharge": "Napolnjenost baterije", + "timeleft": "Preostali čas" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Značke" + }, + "slskd": { + "slskStatus": "Omrežje", + "connected": "Povezan", + "disconnected": "Prekinjeno", + "updateStatus": "Update", + "update_yes": "Na voljo", + "update_no": "Posodobljeno", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Datotek" } } diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index bb387d90..4e3f5fb0 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Missing Widget Type: {{type}}", "api_error": "API Error", - "status": "Status", "information": "Information", + "status": "Status", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -19,22 +40,18 @@ }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Free", "used": "Used", "load": "Load", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" }, "unifi": { "users": "Users", - "uptime": "System Uptime", + "uptime": "Uptime", "days": "Days", "wan": "WAN", "lan": "LAN", @@ -54,16 +71,31 @@ "tx": "TX", "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Offline", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Playing", @@ -75,6 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Playing", "transcoding": "Transcoding", @@ -82,6 +174,13 @@ "no_active": "No Active Streams", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Rate", "remaining": "Remaining", @@ -89,9 +188,9 @@ }, "plex": { "streams": "Active Streams", + "albums": "Albums", "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" + "tv": "TV Shows" }, "sabnzbd": { "rate": "Rate", @@ -115,6 +214,30 @@ "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, "sonarr": { "wanted": "Wanted", "queued": "Queued", @@ -124,9 +247,9 @@ }, "radarr": { "wanted": "Wanted", + "missing": "Missing", "queued": "Queued", "movies": "Movies", - "missing": "Missing", "queue": "Queue", "unknown": "Unknown" }, @@ -156,15 +279,21 @@ }, "overseerr": { "pending": "Pending", + "processing": "Processing", "approved": "Approved", - "available": "Available", - "processing": "Processing" + "available": "Available" + }, + "netalertx": { + "total": "Total", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", @@ -182,11 +311,58 @@ "stopped": "Stopped", "total": "Total" }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Queue", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, "traefik": { "routers": "Routers", "services": "Services", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" + }, "npm": { "enabled": "Enabled", "disabled": "Disabled", @@ -226,6 +402,22 @@ "status_count": "Posts", "domain_count": "Domains" }, + "medusa": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, "authentik": { "users": "Users", "loginsLast24H": "Logins (24h)", @@ -239,27 +431,34 @@ }, "glances": { "cpu": "CPU", + "load": "Load", "wait": "Please wait", "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", + "_temp": "Temp", "warn": "Warn", + "uptime": "UP", "total": "Total", "free": "Free", - "used": "Used" + "used": "Used", + "days": "d", + "hours": "h", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "99-night": "Thunderstorm With Hail", "0-day": "Sunny", "0-night": "Clear", "1-day": "Mainly Sunny", @@ -271,6 +470,10 @@ "45-day": "Foggy", "45-night": "Foggy", "48-day": "Foggy", + "48-night": "Foggy", + "51-day": "Light Drizzle", + "51-night": "Light Drizzle", + "53-day": "Drizzle", "53-night": "Drizzle", "55-day": "Heavy Drizzle", "55-night": "Heavy Drizzle", @@ -310,15 +513,8 @@ "95-night": "Thunderstorm", "96-day": "Thunderstorm With Hail", "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "99-day": "Thunderstorm With Hail", + "99-night": "Thunderstorm With Hail" }, "homebridge": { "available_update": "System", @@ -331,17 +527,27 @@ "pending": "Pending", "down": "Down" }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Status", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, + "autobrr": { + "approvedPushes": "Approved", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexers" + }, "tubearchivist": { "downloads": "Queue", "videos": "Videos", @@ -351,12 +557,7 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -386,49 +591,18 @@ "inbox": "Inbox", "total": "Total" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "seed": "Seed", - "upload": "Upload", - "leech": "Leech" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -440,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,11 +632,6 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { "printer_state": "Status", "temp_tool": "Tool temp", @@ -467,6 +642,16 @@ "origin_ip": "Origin IP", "status": "Status" }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", @@ -486,11 +671,22 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", "books": "Books" }, + "diskstation": { + "days": "Days", + "uptime": "Uptime", + "volumeAvailable": "Available" + }, "mylar": { "series": "Series", "issues": "Issues", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { "queue": "Queue", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -539,31 +734,19 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { - "nodes": "Nodes", - "servers": "Servers" + "servers": "Servers", + "nodes": "Nodes" }, "prometheus": { - "targets_total": "Total Targets", "targets_up": "Targets Up", - "targets_down": "Targets Down" + "targets_down": "Targets Down", + "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -581,82 +764,27 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "now": "Now", - "years": "{{number}}y", - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "memory": "Mem Usage", - "load": "Load Avg", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", + "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +792,255 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "Status", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Load", + "bcharge": "Battery Charge", + "timeleft": "Time Left" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index d432afc4..caa18acd 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mån", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Saknar Widget-typ: {{type}}", "api_error": "API-fel", - "status": "Status", "information": "Information", + "status": "Status", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -14,39 +35,67 @@ "updating": "Uppdaterar", "wait": "Vänligen vänta" }, + "search": { + "placeholder": "Sök…" + }, "resources": { - "load": "Laddar", + "cpu": "CPU", + "mem": "MEM", "total": "Total", "free": "Ledigt", "used": "Använt", - "cpu": "CPU", - "mem": "MEM", + "load": "Laddar", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "Användare", + "uptime": "Uptime", + "days": "Dagar", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Enheter", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN-användare", + "wlan_users": "WLAN-användare", + "up": "UP", + "down": "MOTTAGIT", + "wait": "Vänligen vänta", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Offline", "error": "Error", "unknown": "Unknown", - "exited": "Exited", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", - "partial": "Partial", - "healthy": "Healthy" + "exited": "Exited", + "partial": "Partial" }, - "search": { - "placeholder": "Sök…" + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "Spelar", @@ -55,9 +104,69 @@ "no_active": "Inga aktiva strömmar", "movies": "Movies", "series": "Series", - "episodes": "Episodes", + "episodes": "Avsnitt", "songs": "Songs" }, + "esphome": { + "offline": "Offline", + "offline_alt": "Offline", + "online": "Online", + "total": "Total", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Status", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Spelar", "transcoding": "Omkodning", @@ -65,11 +174,24 @@ "no_active": "Inga aktiva strömmar", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "Hastighet", "remaining": "Återstående", "downloaded": "Nedladdat" }, + "plex": { + "streams": "Aktiva strömmar", + "albums": "Albums", + "movies": "Movies", + "tv": "TV-serier" + }, "sabnzbd": { "rate": "Hastighet", "queue": "Kö", @@ -77,28 +199,58 @@ }, "rutorrent": { "active": "Aktiva", - "upload": "Uppladdning", - "download": "Nedladdning" + "upload": "Upload", + "download": "Download" }, "transmission": { - "download": "Nedladdning", - "upload": "Uppladdning", + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", "leech": "Leech", "seed": "Seed" }, "sonarr": { "wanted": "Eftersöker", "queued": "I kö", - "series": "Serier", - "queue": "Queue", + "series": "Series", + "queue": "Kö", "unknown": "Unknown" }, "radarr": { "wanted": "Eftersöker", - "queued": "I kö", - "movies": "Filmer", "missing": "Missing", - "queue": "Queue", + "queued": "I kö", + "movies": "Movies", + "queue": "Kö", "unknown": "Unknown" }, "lidarr": { @@ -107,7 +259,7 @@ "artists": "Artists" }, "readarr": { - "wanted": "Eftersökt", + "wanted": "Eftersöker", "queued": "I kö", "books": "Böcker" }, @@ -127,35 +279,94 @@ }, "overseerr": { "pending": "Avvaktar", + "processing": "Processing", "approved": "Godkända", - "available": "Tillgänglig", - "processing": "Processing" + "available": "Tillgänglig" + }, + "netalertx": { + "total": "Total", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { - "blocked": "Blockerad", "queries": "Förfrågningar", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked": "Blockerad", + "blocked_percent": "Blocked %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Förfrågningar", + "blocked": "Blockerad", + "filtered": "Filtrerad", + "latency": "Svarstid" }, "speedtest": { - "upload": "Uppladdning", - "download": "Nedladdning", - "ping": "Svarstid" + "upload": "Upload", + "download": "Download", + "ping": "Ping" }, "portainer": { - "running": "Körs", + "running": "Running", "stopped": "Stoppade", - "total": "Totalt" + "total": "Total" + }, + "suwayomi": { + "download": "Nedladdat", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Förfrågningar", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blockerad", + "totalDropped": "Dropped", + "totalClients": "Klienter" + }, + "tdarr": { + "queue": "Kö", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" }, "traefik": { "routers": "Routers", "services": "Tjänster", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "Inga aktiva strömmar", + "please_wait": "Please Wait" + }, "npm": { "enabled": "Aktiverad", "disabled": "Inaktiverad", - "total": "Totalt" + "total": "Total" }, "coinmarketcap": { "configure": "Konfigurera en eller flera kryptovalutor att följa", @@ -172,36 +383,40 @@ "prowlarr": { "enableIndexers": "Indexerare", "numberOfGrabs": "Hämtningar", - "numberOfQueries": "Hämtningar", + "numberOfQueries": "Förfrågningar", "numberOfFailGrabs": "Misslyckade hämtningar", "numberOfFailQueries": "Misslyckade hämtningar" }, "jackett": { "configured": "Konfigurerade", - "errored": "Felaktiga" + "errored": "Errored" }, - "adguard": { - "queries": "Förfrågningar", - "blocked": "Blockerad", - "filtered": "Filtrerad", - "latency": "Svarstid" - }, - "qbittorrent": { - "download": "Nedladdning", - "upload": "Uppladdning", - "leech": "Leech", - "seed": "Seed" + "strelaysrv": { + "numActiveSessions": "Sessioner", + "numConnections": "Anslutningar", + "dataRelayed": "Relayed", + "transferRate": "Hastighet" }, "mastodon": { "user_count": "Användare", "status_count": "Posts", "domain_count": "Domains" }, - "strelaysrv": { - "numActiveSessions": "Sessioner", - "numConnections": "Anslutningar", - "dataRelayed": "Relayed", - "transferRate": "Rate" + "medusa": { + "wanted": "Eftersöker", + "queued": "I kö", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Status", + "up": "Online", + "down": "Offline" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" }, "authentik": { "users": "Användare", @@ -214,53 +429,42 @@ "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Användare", - "uptime": "Upptid", - "days": "Dagar", - "wan": "WAN", - "lan_users": "LAN-användare", - "wlan_users": "WLAN-användare", - "up": "SKICKAT", - "down": "MOTTAGIT", - "wait": "Vänligen vänta", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Aktiva strömmar", - "movies": "Filmer", - "tv": "TV-serier", - "albums": "Albums" - }, "glances": { "cpu": "CPU", + "load": "Laddar", "wait": "Vänligen vänta", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "Total", + "free": "Ledigt", + "used": "Använt", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Sök", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { + "0-day": "Sunny", + "0-night": "Clear", "1-day": "Mainly Sunny", "1-night": "Mainly Clear", "2-day": "Partly Cloudy", "2-night": "Partly Cloudy", - "0-day": "Sunny", - "0-night": "Clear", "3-day": "Cloudy", "3-night": "Cloudy", "45-day": "Foggy", @@ -290,11 +494,11 @@ "71-day": "Light Snow", "71-night": "Light Snow", "73-day": "Snow", + "73-night": "Snow", + "75-day": "Heavy Snow", "75-night": "Heavy Snow", "77-day": "Snow Grains", - "73-night": "Snow", "77-night": "Snow Grains", - "75-day": "Heavy Snow", "80-day": "Light Showers", "80-night": "Light Showers", "81-day": "Showers", @@ -306,19 +510,11 @@ "86-day": "Snow Showers", "86-night": "Snow Showers", "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", "96-night": "Thunderstorm With Hail", "99-day": "Thunderstorm With Hail", - "95-night": "Thunderstorm", - "99-night": "Thunderstorm With Hail", - "96-day": "Thunderstorm With Hail" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "99-night": "Thunderstorm With Hail" }, "homebridge": { "available_update": "System", @@ -328,22 +524,32 @@ "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "pending": "Pending", + "pending": "Avvaktar", "down": "Down" }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Status", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, + "autobrr": { + "approvedPushes": "Godkända", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexerare" + }, "tubearchivist": { - "downloads": "Queue", + "downloads": "Kö", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -351,17 +557,12 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", + "active": "Aktiva", + "queue": "Kö", "total": "Total" }, "gluetun": { @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -386,49 +591,18 @@ "inbox": "Inbox", "total": "Total" }, - "deluge": { - "download": "Download", - "leech": "Leech", - "upload": "Upload", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", "memoryUsed": "Memory Used", @@ -437,9 +611,15 @@ }, "xteve": { "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_active": "Aktiva strömmar", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -447,16 +627,11 @@ "wanDownload": "WAN Download" }, "moonraker": { - "print_progress": "Progress", "printer_state": "Printer State", "print_status": "Print Status", + "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { "printer_state": "Status", "temp_tool": "Tool temp", @@ -467,6 +642,16 @@ "origin_ip": "Origin IP", "status": "Status" }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", @@ -474,7 +659,7 @@ "memory_usage": "Memory" }, "immich": { - "users": "Users", + "users": "Användare", "photos": "Photos", "videos": "Videos", "storage": "Storage" @@ -486,15 +671,26 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", - "books": "Books" + "books": "Böcker" + }, + "diskstation": { + "days": "Dagar", + "uptime": "Uptime", + "volumeAvailable": "Tillgänglig" }, "mylar": { "series": "Series", "issues": "Issues", - "wanted": "Wanted" + "wanted": "Eftersöker" }, "photoprism": { "albums": "Albums", @@ -502,17 +698,16 @@ "videos": "Videos", "people": "People" }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, "fileflows": { - "queue": "Queue", + "queue": "Kö", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", + "books": "Böcker", "podcastsDuration": "Duration", "booksDuration": "Duration" }, @@ -581,82 +764,27 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Böcker", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Kö", + "downloadBytesRemaining": "Återstående", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { - "totalFiles": "Files", - "seriesCount": "Series" + "seriesCount": "Series", + "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", "status": "Status", "buildId": "Build ID", @@ -664,6 +792,255 @@ "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Godkända" + }, + "gamedig": { + "status": "Status", + "online": "Online", + "offline": "Offline", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Användare", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stoppade", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Användare", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Användare", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Aktiverad", + "disabled": "Inaktiverad", + "total": "Total" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Länkar", + "collections": "Samlingar", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Avvaktar", + "status": "Status", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Status", + "load": "Laddar", + "bcharge": "Battery Charge", + "timeleft": "Tid kvar" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Tillgänglig", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/te/common.json b/public/locales/te/common.json index a73051a4..e34d6fae 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -1,26 +1,30 @@ { - "readarr": { - "books": "పుస్తకాలు", - "wanted": "కావలెను", - "queued": "క్యూయూఎడ్" - }, - "adguard": { - "blocked": "నిరోధించబడింది", - "filtered": "ఫిల్టర్ చేయబడింది", - "latency": "జాప్యం", - "queries": "ప్రశ్నలు" - }, - "strelaysrv": { - "numActiveSessions": "సెషన్స్", - "numConnections": "కనెక్షన్లు", - "dataRelayed": "రెలయెడఁ", - "transferRate": "రేటు" + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "విడ్జెట్ లేదు: {{type}}", "api_error": "API లోపం", - "status": "హోదా", "information": "Information", + "status": "హోదా", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" @@ -36,34 +40,62 @@ }, "resources": { "cpu": "సీపియూ", + "mem": "MEM", "total": "మొత్తం", "free": "మిగిలింది", "used": "ఉపయోగించబడిన", "load": "లోడ్", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "వినియోగదారులు", + "uptime": "Uptime", + "days": "రోజులు", + "wan": "WAN", + "lan": "లాన్", + "wlan": "WLAN", + "devices": "పరికరాలు", + "lan_devices": "LAN పరికరాలు", + "wlan_devices": "WLAN పరికరాలు", + "lan_users": "LAN వినియోగదారులు", + "wlan_users": "WLAN వినియోగదారులు", + "up": "UP", + "down": "డౌన్", + "wait": "దయచేసి వేచి ఉండండి", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "సీపియూ", + "running": "Running", "offline": "ఆఫ్‌లైన్", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "ఆడుతున్నారు", @@ -75,6 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "ఆఫ్‌లైన్", + "offline_alt": "ఆఫ్‌లైన్", + "online": "Online", + "total": "మొత్తం", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "హోదా", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "మొత్తం గమనించబడింది", + "diffsDetected": "తేడాలు గుర్తించబడ్డాయి" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "ఆడుతున్నారు", "transcoding": "ట్రాన్స్‌కోడింగ్", @@ -82,11 +174,24 @@ "no_active": "యాక్టివ్ స్ట్రీమ్‌లు లేవు", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, "nzbget": { "rate": "రేట్", "remaining": "మిగిలింది", "downloaded": "డౌన్‌లోడ్ చేయబడింది" }, + "plex": { + "streams": "యాక్టివ్ స్ట్రీమ్‌లు", + "albums": "Albums", + "movies": "Movies", + "tv": "దూరదర్శిని కార్యక్రమాలు" + }, "sabnzbd": { "rate": "రేట్", "queue": "వరుస", @@ -94,34 +199,58 @@ }, "rutorrent": { "active": "చురుకుగా", - "upload": "అప్‌లోడ్", - "download": "డౌన్‌లోడ్" + "upload": "Upload", + "download": "Download" }, "transmission": { - "download": "డౌన్‌లోడ్", - "upload": "అప్‌లోడ్", - "leech": "జలగ", - "seed": "సీడ్" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "qbittorrent": { - "download": "డౌన్‌లోడ్", - "upload": "అప్లోడ్", - "leech": "లీచ్", - "seed": "సీడ్" + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "sonarr": { "wanted": "కావలెను", "queued": "క్యూయూఎడ్", - "series": "సిరీస్", - "queue": "Queue", + "series": "Series", + "queue": "వరుస", "unknown": "Unknown" }, "radarr": { "wanted": "కావలెను", - "queued": "క్యూయూఎడ్", - "movies": "సినిమాలు", "missing": "మిస్సింగ్", - "queue": "Queue", + "queued": "క్యూయూఎడ్", + "movies": "Movies", + "queue": "వరుస", "unknown": "Unknown" }, "lidarr": { @@ -129,6 +258,11 @@ "queued": "క్యూయూఎడ్", "artists": "Artists" }, + "readarr": { + "wanted": "కావలెను", + "queued": "క్యూయూఎడ్", + "books": "పుస్తకాలు" + }, "bazarr": { "missingEpisodes": "ఎపిసోడ్‌లు లేవు", "missingMovies": "సినిమాలు లేవు" @@ -141,35 +275,94 @@ "jellyseerr": { "pending": "పెండింగ్", "approved": "ఆమోదించబడింది", - "available": "అందుబాటులో" + "available": "అందుబాటులో వున్నవి" }, "overseerr": { "pending": "పెండింగ్", + "processing": "Processing", "approved": "ఆమోదించబడింది", - "available": "అందుబాటులో", - "processing": "Processing" + "available": "అందుబాటులో వున్నవి" + }, + "netalertx": { + "total": "మొత్తం", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "ప్రశ్నలు", "blocked": "నిరోధించబడింది", - "gravity": "గురుత్వాకర్షణ", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "గురుత్వాకర్షణ" + }, + "adguard": { + "queries": "ప్రశ్నలు", + "blocked": "నిరోధించబడింది", + "filtered": "ఫిల్టర్ చేయబడింది", + "latency": "జాప్యం" }, "speedtest": { - "upload": "అప్లోడ్", - "download": "డౌన్‌లోడ్", - "ping": "పింగ్" + "upload": "Upload", + "download": "Download", + "ping": "Ping" }, "portainer": { - "running": "నడుస్తున్నవి", + "running": "Running", "stopped": "ఆగిపోయినవి", "total": "మొత్తం" }, + "suwayomi": { + "download": "డౌన్‌లోడ్ చేయబడింది", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "ప్రశ్నలు", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "నిరోధించబడింది", + "totalDropped": "Dropped", + "totalClients": "ఖాతాదారులు" + }, + "tdarr": { + "queue": "వరుస", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, "traefik": { "routers": "రౌటర్లు", "services": "సేవలు", "middleware": "మిడిల్వేర్" }, + "navidrome": { + "nothing_streaming": "యాక్టివ్ స్ట్రీమ్‌లు లేవు", + "please_wait": "Please Wait" + }, "npm": { "enabled": "ప్రారంభించబడింది", "disabled": "డిసేబ్లెడ్", @@ -196,13 +389,35 @@ }, "jackett": { "configured": "కాన్ఫిగర్ చేయబడింది", - "errored": "పొరపాటు జరిగింది" + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "సెషన్స్", + "numConnections": "కనెక్షన్లు", + "dataRelayed": "రెలయెడఁ", + "transferRate": "రేట్" }, "mastodon": { "user_count": "వినియోగదారులు", "status_count": "పోస్ట్‌లు", "domain_count": "డొమైన్‌లు" }, + "medusa": { + "wanted": "కావలెను", + "queued": "క్యూయూఎడ్", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "హోదా", + "up": "Online", + "down": "ఆఫ్‌లైన్" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, "authentik": { "users": "వినియోగదారులు", "loginsLast24H": "లాగిన్లు (24గం)", @@ -214,64 +429,38 @@ "lxc": "LXC", "vms": "విఎంలు" }, - "unifi": { - "users": "వినియోగదారులు", - "uptime": "సిస్టమ్ సమయము", - "days": "రోజులు", - "wan": "WAN", - "lan_users": "LAN వినియోగదారులు", - "wlan_users": "WLAN వినియోగదారులు", - "up": "అప్", - "down": "డౌన్", - "wait": "దయచేసి వేచి ఉండండి", - "lan": "లాన్", - "wlan": "WLAN", - "devices": "పరికరాలు", - "lan_devices": "LAN పరికరాలు", - "wlan_devices": "WLAN పరికరాలు", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "యాక్టివ్ స్ట్రీమ్‌లు", - "movies": "సినిమాలు", - "tv": "దూరదర్శిని కార్యక్రమాలు", - "albums": "Albums" - }, "glances": { "cpu": "సీపియూ", + "load": "లోడ్", "wait": "దయచేసి వేచి ఉండండి", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "మొత్తం", + "free": "మిగిలింది", + "used": "ఉపయోగించబడిన", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "మొత్తం గమనించబడింది", - "diffsDetected": "తేడాలు గుర్తించబడ్డాయి" + "quicklaunch": { + "bookmark": "బుక్మార్క్", + "service": "సేవ", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "సన్నీ", "0-night": "స్పష్టమైన", - "57-night": "గడ్డకట్టే చినుకులు", - "73-day": "మంచు", - "73-night": "మంచు", - "75-day": "భారీ మంచు", - "75-night": "భారీ మంచు", - "77-day": "మంచు గింజలు", - "77-night": "మంచు గింజలు", - "80-day": "తేలికపాటి జల్లులు", - "80-night": "తేలికపాటి జల్లులు", - "81-day": "జల్లులు", - "81-night": "జల్లులు", - "82-day": "భారీ వర్షాలు", - "82-night": "భారీ వర్షాలు", - "85-day": "మంచు జల్లులు", - "85-night": "మంచు జల్లులు", "1-day": "ప్రధానంగా ఎండ", "1-night": "ప్రధానంగా స్పష్టంగా", "2-day": "పాక్షికంగా మేఘావృతమై ఉంటుంది", @@ -291,6 +480,7 @@ "56-day": "తేలికపాటి గడ్డకట్టే చినుకులు", "56-night": "తేలికపాటి గడ్డకట్టే చినుకులు", "57-day": "గడ్డకట్టే చినుకులు", + "57-night": "గడ్డకట్టే చినుకులు", "61-day": "తేలికపాటి వర్షం", "61-night": "తేలికపాటి వర్షం", "63-day": "వర్షం", @@ -303,6 +493,20 @@ "67-night": "గడ్డకట్టే వర్షం", "71-day": "తేలికపాటి మంచు", "71-night": "తేలికపాటి మంచు", + "73-day": "మంచు", + "73-night": "మంచు", + "75-day": "భారీ మంచు", + "75-night": "భారీ మంచు", + "77-day": "మంచు గింజలు", + "77-night": "మంచు గింజలు", + "80-day": "తేలికపాటి జల్లులు", + "80-night": "తేలికపాటి జల్లులు", + "81-day": "జల్లులు", + "81-night": "జల్లులు", + "82-day": "భారీ వర్షాలు", + "82-night": "భారీ వర్షాలు", + "85-day": "మంచు జల్లులు", + "85-night": "మంచు జల్లులు", "86-day": "మంచు జల్లులు", "86-night": "మంచు జల్లులు", "95-day": "ఉరుము", @@ -312,14 +516,6 @@ "99-day": "వడగళ్లతో కూడిన ఉరుములతో కూడిన వర్షం", "99-night": "వడగళ్లతో కూడిన ఉరుములతో కూడిన వర్షం" }, - "quicklaunch": { - "bookmark": "బుక్మార్క్", - "service": "సేవ", - "search": "Search", - "custom": "Custom", - "url": "URL", - "visit": "Visit" - }, "homebridge": { "available_update": "వ్యవస్థ", "updates": "నవీకరణలు", @@ -328,22 +524,32 @@ "child_bridges": "పిల్ల వంతెనలు", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "pending": "Pending", + "pending": "పెండింగ్", "down": "Down" }, - "autobrr": { - "rejectedPushes": "తిరస్కరించారు", - "approvedPushes": "ఆమోదించబడింది", - "filters": "ఫిల్టర్లు", - "indexers": "సూచికలు" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "హోదా", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "స్కాన్ చేశారు", "containers_updated": "నవీకరించబడింది", "containers_failed": "విఫలమయ్యారు" }, + "autobrr": { + "approvedPushes": "ఆమోదించబడింది", + "rejectedPushes": "తిరస్కరించారు", + "filters": "ఫిల్టర్లు", + "indexers": "సూచికలు" + }, "tubearchivist": { - "downloads": "Queue", + "downloads": "వరుస", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -351,18 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "చురుకుగా", + "queue": "వరుస", + "total": "మొత్తం" }, "gluetun": { "public_ip": "Public IP", @@ -371,75 +572,54 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "బిట్రేట్", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", - "failed": "Failed", + "failed": "విఫలమయ్యారు", "unknown": "Unknown" }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "మొత్తం" }, - "deluge": { - "seed": "Seed", - "download": "Download", - "upload": "Upload", - "leech": "Leech" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { "cpuLoad": "CPU Load", + "memoryUsed": "Memory Used", "uptime": "Uptime", - "numberOfLeases": "Leases", - "memoryUsed": "Memory Used" + "numberOfLeases": "Leases" }, "xteve": { "streams_all": "All Streams", - "streams_active": "Active Streams", + "streams_active": "యాక్టివ్ స్ట్రీమ్‌లు", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,170 +632,15 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { - "printer_state": "Status", + "printer_state": "హోదా", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "cpuload": "Cpu Load", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" - }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" - }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" - }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" - }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" - }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" - }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "status": "హోదా" }, "pfsense": { "load": "Load Avg", @@ -627,43 +652,395 @@ "disk": "Disk Usage", "wanIP": "WAN IP" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "Datastore", + "failed_tasks_24h": "Failed Tasks 24h", + "cpu_usage": "సీపియూ", + "memory_usage": "Memory" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "వినియోగదారులు", + "photos": "Photos", + "videos": "Videos", + "storage": "Storage" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime", + "incident": "Incident", + "m": "m" + }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "komga": { + "libraries": "Libraries", + "series": "Series", + "books": "పుస్తకాలు" + }, + "diskstation": { + "days": "రోజులు", + "uptime": "Uptime", + "volumeAvailable": "అందుబాటులో వున్నవి" + }, + "mylar": { + "series": "Series", + "issues": "Issues", + "wanted": "కావలెను" + }, + "photoprism": { + "albums": "Albums", + "photos": "Photos", + "videos": "Videos", + "people": "People" + }, + "fileflows": { + "queue": "వరుస", + "processing": "Processing", + "processed": "Processed", + "time": "Time" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "Dashboards", + "datasources": "Data Sources", + "totalalerts": "Total Alerts", + "alertstriggered": "Alerts Triggered" + }, + "nextcloud": { + "cpuload": "Cpu Load", + "memoryusage": "Memory Usage", + "freespace": "Free Space", + "activeusers": "Active Users", + "numfiles": "Files", + "numshares": "Shared Items" + }, + "kopia": { + "status": "హోదా", + "size": "Size", + "lastrun": "Last Run", + "nextrun": "Next Run", + "failed": "విఫలమయ్యారు" + }, + "unmanic": { + "active_workers": "Active Workers", + "total_workers": "Total Workers", + "records_total": "Queue Length" + }, + "pterodactyl": { + "servers": "Servers", + "nodes": "Nodes" + }, + "prometheus": { + "targets_up": "Targets Up", + "targets_down": "Targets Down", + "targets_total": "Total Targets" + }, + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" + }, + "ghostfolio": { + "gross_percent_today": "Today", + "gross_percent_1y": "One year", + "gross_percent_max": "All time" + }, + "audiobookshelf": { + "podcasts": "Podcasts", + "books": "పుస్తకాలు", + "podcastsDuration": "Duration", + "booksDuration": "Duration" + }, + "homeassistant": { + "people_home": "People Home", + "lights_on": "Lights On", + "switches_on": "Switches On" + }, + "whatsupdocker": { + "monitoring": "Monitoring", + "updates": "నవీకరణలు" + }, + "calibreweb": { + "books": "పుస్తకాలు", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "వరుస", + "downloadBytesRemaining": "మిగిలింది", + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { - "totalFiles": "Files", - "seriesCount": "Series" + "seriesCount": "Series", + "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "హోదా", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", - "failed": "Failed", + "failed": "విఫలమయ్యారు", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "ఆమోదించబడింది" + }, + "gamedig": { + "status": "హోదా", + "online": "Online", + "offline": "ఆఫ్‌లైన్", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "వినియోగదారులు", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "మొత్తం", + "running": "Running", + "stopped": "ఆగిపోయినవి", + "passed": "Passed", + "failed": "విఫలమయ్యారు" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "హోదా", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "డొమైన్‌లు", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "వినియోగదారులు", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "వినియోగదారులు", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "ప్రారంభించబడింది", + "disabled": "డిసేబ్లెడ్", + "total": "మొత్తం" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "హోదా", + "online": "Online", + "offline": "ఆఫ్‌లైన్" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "పెండింగ్", + "status": "హోదా", + "updated": "నవీకరించబడింది", + "cpu": "సీపియూ", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "మిస్సింగ్", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "హోదా", + "load": "లోడ్", + "bcharge": "Battery Charge", + "timeleft": "మిగిలి వున్న సమయం" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "అందుబాటులో వున్నవి", + "update_no": "తాజాగా", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/th/common.json b/public/locales/th/common.json index 64300953..b37b662d 100644 --- a/public/locales/th/common.json +++ b/public/locales/th/common.json @@ -1,76 +1,24 @@ { - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" - }, - "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" - }, - "pyload": { - "queue": "Queue", - "total": "Total", - "speed": "Speed", - "active": "Active" - }, - "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" - }, - "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" - }, - "docker": { - "rx": "RX", - "tx": "TX", - "mem": "เมม", - "cpu": "ซีพียู", - "offline": "ออฟไลน์", - "error": "ข้อผิดพลาด", - "unknown": "ไม่ทราบ", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" - }, "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "unifi": { - "days": "วัน", - "wan": "WAN", - "lan": "แลน", - "wlan": "WLAN", - "devices": "อุปกรณ์", - "lan_devices": "อุปกรณ์แลน", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "empty_data": "Subsystem status unknown", - "users": "ผู้ใช้", - "uptime": "เวลาทำงานของระบบ" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" }, "widget": { "missing_type": "Missing Widget Type: {{type}}", @@ -97,17 +45,57 @@ "free": "ฟรี", "used": "ใช้แล้ว", "load": "โหลด", - "hours": "h", - "minutes": "m", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d" + "uptime": "UP" + }, + "unifi": { + "users": "ผู้ใช้", + "uptime": "Uptime", + "days": "วัน", + "wan": "WAN", + "lan": "แลน", + "wlan": "WLAN", + "devices": "อุปกรณ์", + "lan_devices": "อุปกรณ์แลน", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "โปรดรอ", + "empty_data": "Subsystem status unknown" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "เมม", + "cpu": "ซีพียู", + "running": "Running", + "offline": "ออฟไลน์", + "error": "ข้อผิดพลาด", + "unknown": "ไม่ทราบ", + "healthy": "Healthy", + "starting": "Starting", + "unhealthy": "Unhealthy", + "not_found": "Not Found", + "exited": "Exited", + "partial": "Partial" }, "ping": { "error": "ข้อผิดพลาด", - "ping": "ปิง" + "ping": "ปิง", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "ข้อผิดพลาด", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" }, "emby": { "playing": "กำลังเล่น", @@ -116,14 +104,23 @@ "no_active": "ไม่มีสตรีมที่ใช้งานอยู่", "movies": "Movies", "series": "Series", - "songs": "Songs", - "episodes": "Episodes" + "episodes": "Episodes", + "songs": "Songs" }, - "deluge": { - "download": "ดาวน์โหลด", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "esphome": { + "offline": "ออฟไลน์", + "offline_alt": "ออฟไลน์", + "online": "Online", + "total": "ทั้งหมด", + "unknown": "ไม่ทราบ" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" }, "flood": { "download": "ดาวน์โหลด", @@ -131,22 +128,57 @@ "leech": "Leech", "seed": "Seed" }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "สถานะ", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Total Observed", "diffsDetected": "Diffs Detected" }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", + "playing": "กำลังเล่น", + "transcoding": "การแปลงรหัส", + "bitrate": "อัตราบิต", + "no_active": "ไม่มีสตรีมที่ใช้งานอยู่", "plex_connection_error": "Check Plex Connection" }, "omada": { "connectedAp": "Connected APs", "activeUser": "Active devices", "alerts": "Alerts", - "connectedGateway": "Connected gateways", + "connectedGateways": "Connected gateways", "connectedSwitches": "Connected switches" }, "nzbget": { @@ -156,9 +188,9 @@ }, "plex": { "streams": "Active Streams", + "albums": "Albums", "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" + "tv": "TV Shows" }, "sabnzbd": { "rate": "Rate", @@ -167,24 +199,42 @@ }, "rutorrent": { "active": "Active", - "upload": "Upload", - "download": "Download" + "upload": "อัพโหลด", + "download": "ดาวน์โหลด" }, "transmission": { - "download": "Download", - "upload": "Upload", + "download": "ดาวน์โหลด", + "upload": "อัพโหลด", "leech": "Leech", "seed": "Seed" }, "qbittorrent": { - "download": "Download", - "upload": "Upload", + "download": "ดาวน์โหลด", + "upload": "อัพโหลด", "leech": "Leech", "seed": "Seed" }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "ดาวน์โหลด", + "upload": "อัพโหลด", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, "downloadstation": { - "download": "Download", - "upload": "Upload", + "download": "ดาวน์โหลด", + "upload": "อัพโหลด", "leech": "Leech", "seed": "Seed" }, @@ -193,27 +243,7 @@ "queued": "Queued", "series": "Series", "queue": "Queue", - "unknown": "Unknown" - }, - "readarr": { - "queued": "Queued", - "books": "Books", - "wanted": "Wanted" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" - }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" + "unknown": "ไม่ทราบ" }, "radarr": { "wanted": "Wanted", @@ -221,13 +251,22 @@ "queued": "Queued", "movies": "Movies", "queue": "Queue", - "unknown": "Unknown" + "unknown": "ไม่ทราบ" }, "lidarr": { "wanted": "Wanted", "queued": "Queued", "artists": "Artists" }, + "readarr": { + "wanted": "Wanted", + "queued": "Queued", + "books": "Books" + }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, "ombi": { "pending": "Pending", "approved": "Approved", @@ -244,11 +283,17 @@ "approved": "Approved", "available": "Available" }, + "netalertx": { + "total": "ทั้งหมด", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" }, "adguard": { "queries": "Queries", @@ -257,14 +302,78 @@ "latency": "Latency" }, "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "upload": "อัพโหลด", + "download": "ดาวน์โหลด", + "ping": "ปิง" }, "portainer": { "running": "Running", "stopped": "Stopped", - "total": "Total" + "total": "ทั้งหมด" + }, + "suwayomi": { + "download": "Downloaded", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Queue", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" + }, + "traefik": { + "routers": "Routers", + "services": "Services", + "middleware": "Middleware" + }, + "navidrome": { + "nothing_streaming": "ไม่มีสตรีมที่ใช้งานอยู่", + "please_wait": "Please Wait" + }, + "npm": { + "enabled": "Enabled", + "disabled": "Disabled", + "total": "ทั้งหมด" + }, + "coinmarketcap": { + "configure": "Configure one or more crypto currencies to track", + "1hour": "1 Hour", + "1day": "1 Day", + "7days": "7 Days", + "30days": "30 Days" }, "gotify": { "apps": "Applications", @@ -289,7 +398,7 @@ "transferRate": "Rate" }, "mastodon": { - "user_count": "Users", + "user_count": "ผู้ใช้", "status_count": "Posts", "domain_count": "Domains" }, @@ -298,33 +407,47 @@ "queued": "Queued", "series": "Series" }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "สถานะ", + "up": "Online", + "down": "ออฟไลน์" + }, "miniflux": { "read": "Read", "unread": "Unread" }, "authentik": { - "users": "Users", + "users": "ผู้ใช้", "loginsLast24H": "Logins (24h)", "failedLoginsLast24H": "Failed Logins (24h)" }, "proxmox": { - "mem": "MEM", - "cpu": "CPU", + "mem": "เมม", + "cpu": "ซีพียู", "lxc": "LXC", "vms": "VMs" }, "glances": { - "cpu": "CPU", - "wait": "Please wait", + "cpu": "ซีพียู", + "load": "โหลด", + "wait": "โปรดรอ", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "ทั้งหมด", + "free": "ฟรี", + "used": "ใช้แล้ว", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, "quicklaunch": { "bookmark": "Bookmark", @@ -332,18 +455,14 @@ "search": "Search", "custom": "Custom", "visit": "Visit", - "url": "URL" + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { - "67-day": "Freezing Rain", "0-day": "Sunny", "0-night": "Clear", "1-day": "Mainly Sunny", "1-night": "Mainly Clear", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", "2-day": "Partly Cloudy", "2-night": "Partly Cloudy", "3-day": "Cloudy", @@ -366,7 +485,17 @@ "61-night": "Light Rain", "63-day": "Rain", "63-night": "Rain", + "65-day": "Heavy Rain", + "65-night": "Heavy Rain", + "66-day": "Freezing Rain", + "66-night": "Freezing Rain", + "67-day": "Freezing Rain", "67-night": "Freezing Rain", + "71-day": "Light Snow", + "71-night": "Light Snow", + "73-day": "Snow", + "73-night": "Snow", + "75-day": "Heavy Snow", "75-night": "Heavy Snow", "77-day": "Snow Grains", "77-night": "Snow Grains", @@ -378,11 +507,6 @@ "82-night": "Heavy Showers", "85-day": "Snow Showers", "85-night": "Snow Showers", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", "86-day": "Snow Showers", "86-night": "Snow Showers", "95-day": "Thunderstorm", @@ -393,16 +517,26 @@ "99-night": "Thunderstorm With Hail" }, "homebridge": { + "available_update": "System", "updates": "Updates", "update_available": "Update Available", "up_to_date": "Up to Date", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "available_update": "System", "up": "Up", "pending": "Pending", "down": "Down" }, + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "สถานะ", + "last_ping": "Last Ping", + "never": "No pings yet" + }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", @@ -423,12 +557,47 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Alerts" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "ทั้งหมด" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" + }, + "hdhomerun": { + "channels": "Channels", + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "อัตราบิต", + "clientIP": "Client" + }, + "scrutiny": { + "passed": "Passed", + "failed": "Failed", + "unknown": "ไม่ทราบ" }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "ทั้งหมด" + }, + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", @@ -445,6 +614,12 @@ "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -458,23 +633,33 @@ "layers": "Layers" }, "octoprint": { - "printer_state": "Status", + "printer_state": "สถานะ", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "สถานะ" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", + "cpu_usage": "ซีพียู", "memory_usage": "Memory" }, "immich": { - "users": "Users", + "users": "ผู้ใช้", "photos": "Photos", "videos": "Videos", "storage": "Storage" @@ -482,17 +667,23 @@ "uptimekuma": { "up": "Sites Up", "down": "เว็บไซต์ ล่ม", - "uptime": "เวลาทำงาน", + "uptime": "Uptime", "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", "books": "Books" }, "diskstation": { - "days": "Days", + "days": "วัน", "uptime": "Uptime", "volumeAvailable": "Available" }, @@ -513,6 +704,10 @@ "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -528,7 +723,7 @@ "numshares": "Shared Items" }, "kopia": { - "status": "Status", + "status": "สถานะ", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "เว็บไซต์ ล่ม", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -581,89 +764,283 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "scheduled": "Scheduled", - "passes": "Passes", - "shows": "Shows", - "recordings": "Recordings" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "address": "Address", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Books", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", + "downloadCount": "Queue", "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "สถานะ", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "gamedig": { + "status": "สถานะ", + "online": "Online", + "offline": "ออฟไลน์", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "ปิง" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "ผู้ใช้", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "ทั้งหมด", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "สถานะ", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "เว็บไซต์ ล่ม", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "ไม่ทราบ" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "ผู้ใช้", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "ผู้ใช้", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "ทั้งหมด" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "ปิง", + "download": "ดาวน์โหลด", + "upload": "อัพโหลด" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "ข้อมูล", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "สถานะ", + "online": "Online", + "offline": "ออฟไลน์" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Pending", + "status": "สถานะ", + "updated": "Updated", + "cpu": "ซีพียู", + "memory": "เมม", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "สถานะ", + "load": "โหลด", + "bcharge": "Battery Charge", + "timeleft": "Time Left" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 0aac8e9f..815b9150 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "ay", + "days": "g", + "hours": "sa", + "minutes": "dk", + "seconds": "s" + }, "widget": { - "missing_type": "Kayıp Araç Türü: {{type}}", + "missing_type": "Eksik Araç Türü: {{type}}", "api_error": "API Hatası", - "status": "Durum", "information": "Bilgi", + "status": "Durum", "url": "URL", "raw_error": "Ham Hata", "response_data": "Yanıt Verisi" @@ -19,51 +40,62 @@ }, "resources": { "cpu": "CPU", + "mem": "MEM", "total": "Toplam", - "free": "Boşta", + "free": "Boş", "used": "Kullanımda", "load": "Yük", - "mem": "MEM", - "temp": "Geçici", + "temp": "Sıcaklık", "max": "En Yüksek", - "uptime": "Çalışma Süresi", - "months": "Ay", - "days": "Gün", - "hours": "Saat", - "minutes": "Dakika" + "uptime": "Çalışıyor" }, "unifi": { "users": "Kullanıcılar", "uptime": "Çalışma Süresi", "days": "Günler", "wan": "WAN", - "lan_users": "LAN Kullanıcıları", - "wlan_users": "WLAN Kullanıcıları", - "up": "Yukarı", - "down": "Aşağı", - "wait": "Lütfen bekleyin", "lan": "LAN", "wlan": "WLAN", "devices": "Aygıtlar", "lan_devices": "LAN Aygıtları", "wlan_devices": "WLAN Aygıtları", + "lan_users": "LAN Kullanıcıları", + "wlan_users": "WLAN Kullanıcıları", + "up": "Çalışıyor", + "down": "Aşağı", + "wait": "Lütfen bekleyin", "empty_data": "Alt sistem durumu bilinmiyor" }, "docker": { "rx": "Gelen Veri", "tx": "Giden Veri", - "mem": "Bellek", - "cpu": "İşlemci", + "mem": "MEM", + "cpu": "CPU", + "running": "Çalışıyor", "offline": "Çevrimdışı", "error": "Hata", "unknown": "Bilinmiyor", - "running": "Çalışan", + "healthy": "Sağlıklı", "starting": "Başlatılıyor", "unhealthy": "Sağlıksız", "not_found": "Bulunamadı", - "exited": "Durduruldu", - "partial": "Parçalı", - "healthy": "Sağlık" + "exited": "Kapandı", + "partial": "Parçalı" + }, + "ping": { + "error": "Hata", + "ping": "Gecikme", + "down": "İndirme", + "up": "Yükleme", + "not_available": "Mevcut Değil" + }, + "siteMonitor": { + "http_status": "HTTPS durumu", + "error": "Hata", + "response": "Yanıt", + "down": "İndirme", + "up": "Yükleme", + "not_available": "Mevcut Değil" }, "emby": { "playing": "Oynatılıyor", @@ -75,12 +107,79 @@ "episodes": "Bölümler", "songs": "Şarkılar" }, + "esphome": { + "offline": "Çevrimdışı", + "offline_alt": "Çevrimdışı", + "online": "Çevrimiçi", + "total": "Toplam", + "unknown": "Bilinmiyor" + }, + "evcc": { + "pv_power": "Üretim", + "battery_soc": "Batarya", + "grid_power": "Güç", + "home_power": "Tüketim", + "charge_power": "Şarj", + "kilowatt": "kW" + }, + "flood": { + "download": "İndirme", + "upload": "Yükleme", + "leech": "Tüketici", + "seed": "Sağlayıcı" + }, + "freshrss": { + "subscriptions": "Abonelikler", + "unread": "Okunmamış" + }, + "fritzbox": { + "connectionStatus": "Durum", + "connectionStatusUnconfigured": "Yapılandırılmamış", + "connectionStatusConnecting": "Bağlanıyor", + "connectionStatusAuthenticating": "Kimlik doğrulanıyor", + "connectionStatusPendingDisconnect": "Bağlantının Kesilmesi Bekleniyor", + "connectionStatusDisconnecting": "Bağlantı kesiliyor...", + "connectionStatusDisconnected": "Bağlantı kesildi", + "connectionStatusConnected": "Bağlandı", + "uptime": "Çalışma Süresi", + "maxDown": "Max. Indirme", + "maxUp": "Max. Gönderme", + "down": "İndirme", + "up": "Yükleme", + "received": "Alınan", + "sent": "Gönderilen", + "externalIPAddress": "Harici IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Akış", + "requests": "Anlık İstekler", + "requests_failed": "Başarısız İstekler" + }, + "changedetectionio": { + "totalObserved": "Toplam Gözlenen", + "diffsDetected": "Farklar Algılandı" + }, + "channelsdvrserver": { + "shows": "Diziler", + "recordings": "Kayıtlar", + "scheduled": "Planlanmış", + "passes": "Geçilenler" + }, "tautulli": { "playing": "Oynatılıyor", "transcoding": "Dönüştürülüyor", "bitrate": "Bit Oranı", "no_active": "Aktif akış yok", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor" + }, + "omada": { + "connectedAp": "Bağlı AP'ler", + "activeUser": "Aktif cihazlar", + "alerts": "Alarmlar", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Bağlı anahtarlar" }, "nzbget": { "rate": "Oran", @@ -89,9 +188,9 @@ }, "plex": { "streams": "Aktif Akış", + "albums": "Albümler", "movies": "Filmler", - "tv": "TV Showları", - "albums": "Albümler" + "tv": "TV Showları" }, "sabnzbd": { "rate": "Oran", @@ -106,87 +205,164 @@ "transmission": { "download": "İndirme", "upload": "Yükleme", - "leech": "İsteyen", - "seed": "Sunan" + "leech": "Tüketici", + "seed": "Sağlayıcı" }, "qbittorrent": { "download": "İndirme", - "upload": "Yükle", - "leech": "İsteyen", - "seed": "Sunan" + "upload": "Yükleme", + "leech": "Tüketici", + "seed": "Sağlayıcı" + }, + "qnap": { + "cpuUsage": "İşlemci Kullanımı", + "memUsage": "Bellek Kullanımı", + "systemTempC": "Sistem Sıcaklığı", + "poolUsage": "Havuz Kullanımı", + "volumeUsage": "Alan Kullanımı", + "invalid": "Geçersiz" + }, + "deluge": { + "download": "İndirme", + "upload": "Yükleme", + "leech": "Tüketici", + "seed": "Sağlayıcı" + }, + "develancacheui": { + "cachehitbytes": "Önbellek İsabetli Byte", + "cachemissbytes": "Önbellek Kaçırılan Byte" + }, + "downloadstation": { + "download": "İndirme", + "upload": "Yükleme", + "leech": "Tüketici", + "seed": "Sağlayıcı" }, "sonarr": { - "wanted": "Aranan", - "queued": "Kuyrukta", - "series": "Seriler", - "queue": "Queue", - "unknown": "Unknown" + "wanted": "İstendi", + "queued": "Sırada", + "series": "Diziler", + "queue": "Kuyruk", + "unknown": "Bilinmiyor" }, "radarr": { - "wanted": "Aranan", - "queued": "Kuyrukta", + "wanted": "İstendi", + "missing": "Eksik", + "queued": "Sırada", "movies": "Filmler", - "missing": "Kayıp", - "queue": "Queue", - "unknown": "Unknown" + "queue": "Kuyruk", + "unknown": "Bilinmiyor" }, "lidarr": { - "wanted": "Aranan", - "queued": "Kuyrukta", - "artists": "Artists" + "wanted": "İstendi", + "queued": "Sırada", + "artists": "Sanatçılar" }, "readarr": { - "wanted": "Aranan", - "queued": "Kuyrukta", + "wanted": "İstendi", + "queued": "Sırada", "books": "Kitaplar" }, "bazarr": { - "missingEpisodes": "Kayıp Bölümler", - "missingMovies": "Kayıp Filmler" + "missingEpisodes": "Eksik Bölümler", + "missingMovies": "Eksik Filmler" }, "ombi": { - "pending": "Bekliyor", + "pending": "Bekleyen", "approved": "Onaylı", "available": "Kullanılabilir" }, "jellyseerr": { - "pending": "Bekliyor", + "pending": "Bekleyen", "approved": "Onaylı", "available": "Kullanılabilir" }, "overseerr": { - "pending": "Bekliyor", + "pending": "Bekleyen", + "processing": "İşleniyor", "approved": "Onaylı", - "available": "Kullanılabilir", - "processing": "İşleniyor" + "available": "Kullanılabilir" + }, + "netalertx": { + "total": "Toplam", + "connected": "Bağlandı", + "new_devices": "Yeni Cihazlar", + "down_alerts": "Hata Uyarıları" }, "pihole": { "queries": "Sorgular", "blocked": "Engellenen", - "gravity": "Yer Çekimi", - "blocked_percent": "Engellenen %" + "blocked_percent": "Engellenen %", + "gravity": "Gravity" }, "adguard": { "queries": "Sorgular", "blocked": "Engellenen", - "filtered": "Filtrelenen", + "filtered": "Filtrelendi", "latency": "Gecikme" }, "speedtest": { "upload": "Yükleme", "download": "İndirme", - "ping": "Ping" + "ping": "Gecikme" }, "portainer": { "running": "Çalışıyor", "stopped": "Durduruldu", "total": "Toplam" }, + "suwayomi": { + "download": "İndirilen", + "nondownload": "Non-Downloaded", + "read": "Okunan", + "unread": "Okunmamış", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Adres", + "expires": "Geciken", + "never": "Asla", + "last_seen": "Son Görülme", + "now": "Şimdi", + "years": "{{number}} Yıl", + "weeks": "{{number}} Hafta", + "days": "{{number}} Gün", + "hours": "{{number}} Saat", + "minutes": "{{number}} Dakika", + "seconds": "{{number}} Saniye", + "ago": "{{value}} Önce" + }, + "technitium": { + "totalQueries": "Sorgular", + "totalNoError": "Başarılı", + "totalServerFailure": "Başarısızlıklar", + "totalNxDomain": "NX Alan Adları", + "totalRefused": "Reddedildi", + "totalAuthoritative": "Yetkili", + "totalRecursive": "Tekrarlamalı", + "totalCached": "Önbelleğe alındı", + "totalBlocked": "Engellenen", + "totalDropped": "Bırakıldı", + "totalClients": "Alıcılar" + }, + "tdarr": { + "queue": "Kuyruk", + "processed": "İşlendi", + "errored": "Hatalı", + "saved": "Kaydedildi" + }, "traefik": { "routers": "Yönlendiriciler", "services": "Hizmetler", "middleware": "Ara Katman" }, + "navidrome": { + "nothing_streaming": "Aktif akış yok", + "please_wait": "Lütfen Bekleyin" + }, "npm": { "enabled": "Etkin", "disabled": "Devre Dışı", @@ -206,10 +382,10 @@ }, "prowlarr": { "enableIndexers": "Dizin Oluşturucular", - "numberOfGrabs": "Yakalama Sayısı", - "numberOfQueries": "Sorgu Sayısı", - "numberOfFailGrabs": "Başarısız Yakalama Sayısı", - "numberOfFailQueries": "Başarısız Sorgu Sayısı" + "numberOfGrabs": "Yakalamalar", + "numberOfQueries": "Sorgular", + "numberOfFailGrabs": "Başarısız Yakalamalar", + "numberOfFailQueries": "Başarısız Sorgular" }, "jackett": { "configured": "Yapılandırılmış", @@ -226,36 +402,63 @@ "status_count": "Gönderiler", "domain_count": "Etki Alanları" }, + "medusa": { + "wanted": "İstendi", + "queued": "Sırada", + "series": "Diziler" + }, + "minecraft": { + "players": "Oyuncular", + "version": "Versiyon", + "status": "Durum", + "up": "Çevrimiçi", + "down": "Çevrimdışı" + }, + "miniflux": { + "read": "Okunan", + "unread": "Okunmamış" + }, "authentik": { "users": "Kullanıcılar", "loginsLast24H": "Girişler (24 Saat)", "failedLoginsLast24H": "Başarısız Girişler (24 Saat)" }, "proxmox": { - "mem": "Bellek", - "cpu": "İşlemci", + "mem": "MEM", + "cpu": "CPU", "lxc": "LXC", "vms": "Sanal Makineler" }, "glances": { - "cpu": "İşlemci", - "wait": "Lütfen bekleyiniz", - "temp": "Sıcaklık", - "uptime": "Çalışma Süresi", - "days": "Gün", - "hours": "Saat", + "cpu": "CPU", "load": "Yük", + "wait": "Lütfen bekleyin", + "temp": "Sıcaklık", + "_temp": "Sıcaklık", "warn": "Uyarı", + "uptime": "Çalışıyor", "total": "Toplam", "free": "Boş", - "used": "Kullanım" + "used": "Kullanımda", + "days": "g", + "hours": "sa", + "crit": "Kritik", + "read": "Okunan", + "write": "Yazma", + "gpu": "GPU", + "mem": "Hafıza", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Toplam Gözlenen", - "diffsDetected": "Farklar Algılandı" + "quicklaunch": { + "bookmark": "Yer İmi", + "service": "Hizmet", + "search": "Ara", + "custom": "Özel", + "visit": "Ziyaret", + "url": "URL", + "searchsuggestion": "Öneri" }, "wmo": { - "99-day": "Dolu İle Gök Gürültülü Fırtına", "0-day": "Güneşli", "0-night": "Açık", "1-day": "Çoğunlukla Güneşli", @@ -301,25 +504,18 @@ "81-day": "Sağanak", "81-night": "Sağanak", "82-day": "Yoğun Sağanak", - "95-night": "Gök Gürültülü Fırtına", "82-night": "Yoğun Sağanak", "85-day": "Karlı Sağanak", "85-night": "Karlı Sağanak", "86-day": "Karlı Sağanak", "86-night": "Karlı Sağanak", "95-day": "Gök Gürültülü Fırtına", + "95-night": "Gök Gürültülü Fırtına", "96-day": "Dolu İle Gök Gürültülü Fırtına", "96-night": "Dolu İle Gök Gürültülü Fırtına", + "99-day": "Dolu İle Gök Gürültülü Fırtına", "99-night": "Dolu İle Gök Gürültülü Fırtına" }, - "quicklaunch": { - "bookmark": "Yer İmi", - "service": "Hizmet", - "search": "Ara", - "custom": "Özel", - "visit": "Ziyaret", - "url": "Link" - }, "homebridge": { "available_update": "Sistem", "updates": "Güncellemeler", @@ -327,21 +523,31 @@ "up_to_date": "Güncel", "child_bridges": "Alt Köprüler", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "Yükleme", + "pending": "Bekleyen", + "down": "İndirme" }, - "autobrr": { - "approvedPushes": "Onaylandı", - "rejectedPushes": "Reddedildi", - "filters": "Süzgeçler", - "indexers": "Dizin Oluşturucular" + "healthchecks": { + "new": "Yeni", + "up": "Yükleme", + "grace": "Tolerans Döneminde", + "down": "İndirme", + "paused": "Duraklatıldı", + "status": "Durum", + "last_ping": "Son Ping", + "never": "Henüz ping yok" }, "watchtower": { "containers_scanned": "Tarandı", "containers_updated": "Güncellendi", "containers_failed": "Başarısız" }, + "autobrr": { + "approvedPushes": "Onaylı", + "rejectedPushes": "Reddedildi", + "filters": "Süzgeçler", + "indexers": "Dizin Oluşturucular" + }, "tubearchivist": { "downloads": "Kuyruk", "videos": "Videolar", @@ -351,16 +557,11 @@ "truenas": { "load": "Sistem Yükü", "uptime": "Çalışma Süresi", - "alerts": "Alarmlar", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "Geçerli Akış Yok", - "please_wait": "Lütfen Bekleyin" + "alerts": "Alarmlar" }, "pyload": { "speed": "Hız", - "active": "Geçerli", + "active": "Aktif", "queue": "Kuyruk", "total": "Toplam" }, @@ -371,75 +572,54 @@ }, "hdhomerun": { "channels": "Kanallar", - "hd": "HD" - }, - "ping": { - "error": "Hata", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Ayarlayıcılar", + "channelNumber": "Kanal", + "channelNetwork": "Ağ", + "signalStrength": "Sağlamlık", + "signalQuality": "Kalite", + "symbolQuality": "Kalite", + "networkRate": "Bit Oranı", + "clientIP": "Alıcı" }, "scrutiny": { "passed": "Geçti", "failed": "Başarısız", - "unknown": "Bilinmeyen" + "unknown": "Bilinmiyor" }, "paperlessngx": { "inbox": "Gelen Kutusu", "total": "Toplam" }, - "deluge": { - "download": "İndir", - "upload": "Yükle", - "leech": "Tüketici", - "seed": "Tohum" - }, - "flood": { - "download": "İndir", - "upload": "Yükle", - "leech": "Tüketici", - "seed": "Sağlayıcı" - }, - "tdarr": { - "queue": "Sıra", - "processed": "İşlendi", - "errored": "Hatalı", - "saved": "Kaydedildi" - }, - "miniflux": { - "read": "Oku", - "unread": "Okunmamış" + "peanut": { + "battery_charge": "Pil Yüzdesi", + "ups_load": "UPS Yükü", + "ups_status": "UPS Durumu", + "online": "Çevrimiçi", + "on_battery": "Pilde", + "low_battery": "Düşük Pil" }, "nextdns": { - "wait": "Lütfen Bekle", + "wait": "Lütfen Bekleyin", "no_devices": "Cihaz Verisi Alınamadı" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Bağlı AP'ler", - "activeUser": "Aktif cihazlar", - "alerts": "Alarmlar", - "connectedGateway": "Bağlı ağ geçitleri", - "connectedSwitches": "Bağlı anahtarlar" - }, - "downloadstation": { - "download": "İndir", - "upload": "Yükle", - "leech": "Tüketici", - "seed": "Tohum" - }, "mikrotik": { "cpuLoad": "CPU Yükü", "memoryUsed": "Bellek Kullanımı", "uptime": "Çalışma Süresi", - "numberOfLeases": "Leases" + "numberOfLeases": "Kiralama" }, "xteve": { "streams_all": "Tüm Akışlar", - "streams_active": "Aktif Akışlar", + "streams_active": "Aktif Akış", "streams_xepg": "XEPG Kanalları" }, + "opendtu": { + "yieldDay": "Bugün", + "absolutePower": "Güç", + "relativePower": "Güç %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Yükü", "memory": "Aktif Bellek", @@ -452,24 +632,29 @@ "print_progress": "İlerleme", "layers": "Katmanlar" }, - "medusa": { - "wanted": "Aranan", - "queued": "Kuyrukta", - "series": "Seri" - }, "octoprint": { "printer_state": "Durum", "temp_tool": "Araç sıcaklığı", "temp_bed": "Yatak sıcaklığı", - "job_completion": "Completion" + "job_completion": "Tamamlanma" }, "cloudflared": { - "origin_ip": "Origin IP", + "origin_ip": "Gerçek IP", "status": "Durum" }, + "pfsense": { + "load": "Ort. Yükleme", + "memory": "Bellek Kullanımı", + "wanStatus": "WAN Durumu", + "up": "Yükleme", + "down": "İndirme", + "temp": "Sıcaklık", + "disk": "Disk Kullanımı", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", + "datastore_usage": "Veri deposu", + "failed_tasks_24h": "Başarısız Görevler 24h", "cpu_usage": "CPU", "memory_usage": "Bellek" }, @@ -480,21 +665,32 @@ "storage": "Depo" }, "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", + "up": "Siteler Çalışıyor", + "down": "Siteler Çalışmıyor", "uptime": "Çalışma Süresi", - "incident": "Incident", - "m": "m" + "incident": "Olay", + "m": "dk" + }, + "atsumeru": { + "series": "Diziler", + "archives": "Arşivler", + "chapters": "Bölümler", + "categories": "Kategoriler" }, "komga": { "libraries": "Kütüphane", - "series": "Series", + "series": "Diziler", "books": "Kitaplar" }, + "diskstation": { + "days": "Günler", + "uptime": "Çalışma Süresi", + "volumeAvailable": "Kullanılabilir" + }, "mylar": { - "series": "Seriler", + "series": "Diziler", "issues": "Sorunlar", - "wanted": "Aranan" + "wanted": "İstendi" }, "photoprism": { "albums": "Albümler", @@ -502,168 +698,349 @@ "videos": "Videolar", "people": "İnsan" }, - "diskstation": { - "days": "Gün", - "uptime": "Çalışma Süresi", - "volumeAvailable": "Mevcut" - }, "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" + "queue": "Kuyruk", + "processing": "İşleniyor", + "processed": "İşlendi", + "time": "Zaman" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" }, "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "dashboards": "Kontrol Paneli", + "datasources": "Veri Kaynakları", + "totalalerts": "Toplam Uyarılar", + "alertstriggered": "Uyarılar Tetiklendi" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "Cpu Yükü", + "memoryusage": "Bellek Kullanımı", + "freespace": "Boş Alan", + "activeusers": "Aktif Kullanıcılar", + "numfiles": "Dosyalar", + "numshares": "Paylaşılan Öğeler" }, "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "status": "Durum", + "size": "Boyut", + "lastrun": "Son Çalışma", + "nextrun": "Sonraki Çalışma", + "failed": "Başarısız" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" - }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "active_workers": "Aktif Kullanıcılar", + "total_workers": "Toplam Kullanıcılar", + "records_total": "Sıra Uzunluğu" }, "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" + "servers": "Sunucular", + "nodes": "Düğümler" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Hedef Çalışıyor", + "targets_down": "Hedef Çalışmıyor", + "targets_total": "Toplam Hedef" }, - "minecraft": { - "players": "Oyuncular", - "version": "Versiyon", - "status": "Durum", - "up": "Çevrimiçi", - "down": "Çevrimdışı" + "gatus": { + "up": "Siteler Çalışıyor", + "down": "Siteler Çalışmıyor", + "uptime": "Çalışma Süresi" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "Bugün", + "gross_percent_1y": "Bir yıl", + "gross_percent_max": "Tüm zaman" }, "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcasts": "Podcast", + "books": "Kitaplar", + "podcastsDuration": "Süre", + "booksDuration": "Süre" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" - }, - "freshrss": { - "subscriptions": "Abonelikler", - "unread": "Okunmamış" - }, - "channelsdvrserver": { - "shows": "Diziler", - "recordings": "Kayıtlar", - "scheduled": "Planlanmış", - "passes": "Geçilenler" + "people_home": "Evdeki İnsanlar", + "lights_on": "Işıklar Açık", + "switches_on": "Aç" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "İzleme", + "updates": "Güncellemeler" }, - "tailscale": { - "never": "Asla", - "last_seen": "Son Görülme", - "now": "Şimdi", - "years": "{{number}} Yıl", - "weeks": "{{number}} Hafta", - "days": "{{number}} Gün", - "hours": "{{number}} Saat", - "minutes": "{{number}} Dakika", - "seconds": "{{number}} Saniye", - "ago": "{{value}} Önce", - "address": "Adres", - "expires": "Geciken" - }, - "qnap": { - "cpuUsage": "İşlemci Kullanımı", - "memUsage": "Bellek Kullanımı", - "systemTempC": "Sistem Sıcaklığı", - "poolUsage": "Havuz Kullanımı", - "volumeUsage": "Alan Kullanımı", - "invalid": "Geçersiz" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Akış", - "requests": "Anlık İstekler", - "requests_failed": "Başarısız İstekler" - }, - "evcc": { - "pv_power": "Üretim", - "battery_soc": "Batarya", - "grid_power": "Güç", - "home_power": "Tüketim", - "charge_power": "Şarj", - "watt_hour": "Watt/Saat" - }, - "pialert": { - "total": "Toplam", - "connected": "Bağlandı", - "new_devices": "Yeni Cihazlar", - "down_alerts": "Düşme Uyarıları" + "calibreweb": { + "books": "Kitaplar", + "authors": "Yazarlar", + "categories": "Kategoriler", + "series": "Diziler" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "Kuyruk", + "downloadBytesRemaining": "Kalan", + "downloadTotalBytes": "Boyut", + "downloadSpeed": "Hız" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Diziler", + "totalFiles": "Dosyalar" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "Sonuç", + "status": "Durum", + "buildId": "Yapı Kimliği", + "succeeded": "Başarılı", + "notStarted": "Henüz Başlamadı", + "failed": "Başarısız", + "canceled": "İptal edildi", + "inProgress": "Sürüyor", + "totalPrs": "Toplam Çekme İstekleri", + "myPrs": "Benim Çekme İsteklerim", + "approved": "Onaylı" + }, + "gamedig": { + "status": "Durum", + "online": "Çevrimiçi", + "offline": "Çevrimdışı", + "name": "İsim", + "map": "Harita", + "currentPlayers": "Mevcut oyuncular", + "players": "Oyuncular", + "maxPlayers": "Maks. oyuncu", + "bots": "Botlar", + "ping": "Gecikme" + }, + "urbackup": { + "ok": "Tamam", + "errored": "Hatalar", + "noRecent": "Tarihi geçmiş", + "totalUsed": "Kullanılan depolama alanı" + }, + "mealie": { + "recipes": "Tarifler", + "users": "Kullanıcılar", + "categories": "Kategoriler", + "tags": "Etiketler" + }, + "openmediavault": { + "downloading": "İndiriliyor", + "total": "Toplam", + "running": "Çalışıyor", + "stopped": "Durduruldu", + "passed": "Geçti", + "failed": "Başarısız" + }, + "openwrt": { + "uptime": "Çalışma Süresi", + "cpuLoad": "CPU Yükü Ortalaması (5dk)", + "up": "Yükleme", + "down": "İndirme", + "bytesTx": "İletilen", + "bytesRx": "Alınan" + }, + "uptimerobot": { + "status": "Durum", + "uptime": "Çalışma Süresi", + "lastDown": "Son Kesinti", + "downDuration": "Kesinti Süresi", + "sitesUp": "Siteler Çalışıyor", + "sitesDown": "Siteler Çalışmıyor", + "paused": "Duraklatıldı", + "notyetchecked": "Henüz Kontrol Edilmedi", + "up": "Yükleme", + "seemsdown": "Kapalı görünüyor", + "down": "İndirme", + "unknown": "Bilinmiyor" + }, + "calendar": { + "inCinemas": "Sinemalarda", + "physicalRelease": "Fiziksel Yayınlanan", + "digitalRelease": "Dijitalde Yayınlandı", + "noEventsToday": "Bugün için etkinlik yok!", + "noEventsFound": "Etkinlik bulunamadı" + }, + "romm": { + "platforms": "Platformlar", + "totalRoms": "Oyunlar", + "saves": "Kayıtlar", + "states": "Durumlar", + "screenshots": "Ekran görüntüleri", + "totalfilesize": "Toplam Kapasite" + }, + "mailcow": { + "domains": "Etki Alanları", + "mailboxes": "Mailboxes", + "mails": "Postalar", + "storage": "Depo" + }, + "netdata": { + "warnings": "Uyarılar", + "criticals": "Kritik" + }, + "plantit": { + "events": "Etkinlikler", + "plants": "Bitkiler", + "photos": "Fotoğraflar", + "species": "Türler" + }, + "gitea": { + "notifications": "Bildirimler", + "issues": "Sorunlar", + "pulls": "Değişiklik İstekleri", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Sahneler", + "scenesPlayed": "Oynanan Sahneler", + "playCount": "Toplam Oynatma", + "playDuration": "İzlenen Süre", + "sceneSize": "Sahne Boyutu", + "sceneDuration": "Sahne Süresi", + "images": "Görseller", + "imageSize": "Görsel Boyutu", + "galleries": "Galeriler", + "performers": "Oyuncu", + "studios": "Stüdyolar", + "movies": "Filmler", + "tags": "Etiketler", + "oCount": "O Sayısı" + }, + "tandoor": { + "users": "Kullanıcılar", + "recipes": "Tarifler", + "keywords": "Anahtar Sözcükler" + }, + "homebox": { + "items": "Ögeler", + "totalWithWarranty": "Garantili", + "locations": "Konum", + "labels": "Etiketler", + "users": "Kullanıcılar", + "totalValue": "Toplam Değer" + }, + "crowdsec": { + "alerts": "Alarmlar", + "bans": "Yasaklar" + }, + "wgeasy": { + "connected": "Bağlandı", + "enabled": "Etkin", + "disabled": "Devre Dışı", + "total": "Toplam" + }, + "swagdashboard": { + "proxied": "Proxy Üzerinden", + "auth": "Kimlik Doğrulamalı", + "outdated": "Eskimiş", + "banned": "Yasaklı" + }, + "myspeed": { + "ping": "Gecikme", + "download": "İndirme", + "upload": "Yükleme" + }, + "stocks": { + "stocks": "Hisse Senetleri", + "loading": "Yükleniyor", + "open": "Açık - ABD Pazarı", + "closed": "Kapalı - ABD Pazarı", + "invalidConfiguration": "Geçersiz Yapılandırma" + }, + "frigate": { + "cameras": "Kameralar", + "uptime": "Çalışma Süresi", + "version": "Versiyon" + }, + "linkwarden": { + "links": "Bağlantılar", + "collections": "Koleksiyonlar", + "tags": "Etiketler" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Bilgi", + "warning": "Uyarı", + "average": "Ortalama", + "high": "Yüksek", + "disaster": "Felaket" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Bitişi Bu Hafta Olan Görevler", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "İsim", + "address": "Adres", + "last_seen": "Son Görülme", + "status": "Durum", + "online": "Çevrimiçi", + "offline": "Çevrimdışı" + }, + "beszel": { + "name": "İsim", + "systems": "Systems", + "up": "Yükleme", + "down": "İndirme", + "paused": "Duraklatıldı", + "pending": "Bekleyen", + "status": "Durum", + "updated": "Güncellendi", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Sağlıklı", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Eksik", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Yükleniyor" + }, + "gitlab": { + "groups": "Groups", + "issues": "Sorunlar", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Durum", + "load": "Yük", + "bcharge": "Pil Yüzdesi", + "timeleft": "Kalan Zaman" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Etiketler" + }, + "slskd": { + "slskStatus": "Ağ", + "connected": "Bağlandı", + "disconnected": "Bağlantı kesildi", + "updateStatus": "Update", + "update_yes": "Kullanılabilir", + "update_no": "Güncel", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Dosyalar" } } diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 86008450..3412d591 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -1,115 +1,31 @@ { "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "alerts": "Оповіщення", - "connectedGateway": "Підключені шлюзи", - "connectedSwitches": "Підключені перемикачі", - "connectedAp": "Підключені точки доступу", - "activeUser": "Активні пристрої" - }, - "sabnzbd": { - "rate": "Швидкість", - "queue": "Черга", - "timeleft": "Залишилось" - }, - "rutorrent": { - "active": "Активний", - "upload": "Відправлення", - "download": "Завантаження" - }, - "deluge": { - "download": "Завантаження", - "upload": "Відправлення", - "leech": "Ліч", - "seed": "Сід" - }, - "readarr": { - "wanted": "Розшукується", - "queued": "У черзі", - "books": "Книжки" - }, - "wmo": { - "55-day": "Сильна мряка", - "55-night": "Сильна мряка", - "56-day": "Невеликий морозний дощ", - "56-night": "Невеликий морозний дощ", - "0-day": "Сонячно", - "0-night": "Ясно", - "1-day": "Переважно сонячно", - "1-night": "Переважно ясно", - "2-day": "Частково хмарно", - "2-night": "Частково хмарно", - "3-day": "Хмарно", - "3-night": "Хмарно", - "53-day": "Мряка", - "45-day": "Туманно", - "45-night": "Туманно", - "48-day": "Туманно", - "48-night": "Туманно", - "51-day": "Легка мряка", - "51-night": "Легка мряка", - "53-night": "Мряка", - "57-day": "Морозний дощ", - "57-night": "Морозний дощ", - "61-day": "Невеликий дощ", - "61-night": "Невеликий дощ", - "63-day": "Дощ", - "63-night": "Дощ", - "65-day": "Сильний дощ", - "65-night": "Сильний дощ", - "66-day": "Холодний дощ", - "66-night": "Холодний дощ", - "67-day": "Холодний дощ", - "67-night": "Холодний дощ", - "71-day": "Невеликий сніг", - "71-night": "Невеликий сніг", - "73-day": "Сніг", - "73-night": "Сніг", - "75-day": "Снігопад", - "75-night": "Снігопад", - "77-day": "Снігові зерна", - "77-night": "Снігові зерна", - "80-day": "Невелика злива", - "80-night": "Невелика злива", - "81-day": "Злива", - "82-day": "Сильна злива", - "82-night": "Сильна злива", - "81-night": "Злива", - "85-day": "Дощ зі снігом", - "85-night": "Дощ зі снігом", - "86-day": "Дощ зі снігом", - "86-night": "Дощ зі снігом", - "95-day": "Гроза", - "95-night": "Гроза", - "96-day": "Гроза з градом", - "96-night": "Гроза з градом", - "99-day": "Гроза з градом", - "99-night": "Гроза з градом" - }, - "pyload": { - "speed": "Швидкість", - "active": "Активно", - "queue": "Черга", - "total": "Всього" - }, - "gluetun": { - "country": "Країна", - "public_ip": "Публічний IP", - "region": "Регіон" - }, - "hdhomerun": { - "channels": "Канали", - "hd": "HD" + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "міс", + "days": "днів", + "hours": "год", + "minutes": "хв", + "seconds": "с" }, "widget": { "missing_type": "Відсутній тип віджета: {{type}}", "api_error": "Помилка API", "information": "Інформація", "status": "Стан", - "url": "URL", + "url": "URL-адреса", "raw_error": "Помилка Raw", "response_data": "Дані відповіді" }, @@ -123,23 +39,19 @@ "placeholder": "Пошук…" }, "resources": { - "cpu": "CPU", - "total": "Всього", + "cpu": "ЦП", + "mem": "ОЗП", + "total": "Усього", "free": "Вільно", "used": "Використано", "load": "Завантаження", - "mem": "Пам'ять", - "temp": "TEMP", - "max": "Max", - "uptime": "Відправка", - "months": "міс", - "days": "д", - "hours": "г", - "minutes": "хв" + "temp": "Температура", + "max": "Макс.", + "uptime": "Онлайн" }, "unifi": { "users": "Користувачі", - "uptime": "Час роботи системи", + "uptime": "Час роботи", "days": "Днів", "wan": "WAN", "lan": "LAN", @@ -149,7 +61,7 @@ "wlan_devices": "WLAN пристрої", "lan_users": "LAN користувачі", "wlan_users": "WLAN користувачі", - "up": "Відправка", + "up": "Онлайн", "down": "Завантаження", "wait": "Будь ласка, зачекайте", "empty_data": "Статус підсистеми невідомий" @@ -157,26 +69,37 @@ "docker": { "rx": "RX", "tx": "TX", - "mem": "Пам'ять", - "cpu": "CPU", + "mem": "ОЗП", + "cpu": "ЦП", + "running": "Запущено", "offline": "Офлайн", "error": "Помилка", "unknown": "Невідомий", + "healthy": "Здоровий", "starting": "Запуск", "unhealthy": "Нездоровий", "not_found": "Не знайдено", "exited": "Вийшов", - "partial": "Частковий", - "running": "Запущено", - "healthy": "Здоров'я" + "partial": "Частковий" }, "ping": { "error": "Помилка", - "ping": "Пінг" + "ping": "Пінг", + "down": "Офлайн", + "up": "Онлайн", + "not_available": "Не доступний" + }, + "siteMonitor": { + "http_status": "HTTP статус", + "error": "Помилка", + "response": "Відповідь", + "down": "Офлайн", + "up": "Онлайн", + "not_available": "Не доступний" }, "emby": { "playing": "Відтворення", - "transcoding": "Перекодування", + "transcoding": "Транскодування", "bitrate": "Бітрейт", "no_active": "Немає активних потоків", "movies": "Фільми", @@ -184,49 +107,134 @@ "episodes": "Епізоди", "songs": "Пісні" }, + "esphome": { + "offline": "Офлайн", + "offline_alt": "Офлайн", + "online": "Онлайн", + "total": "Усього", + "unknown": "Невідомий" + }, + "evcc": { + "pv_power": "Виробництво", + "battery_soc": "Батарея", + "grid_power": "Сітка", + "home_power": "Споживання", + "charge_power": "Зарядний пристрій", + "kilowatt": "kW" + }, "flood": { - "download": "Завантаження", - "upload": "Відправлення", + "download": "Завантажено", + "upload": "Відправлено", "leech": "Ліч", "seed": "Сід" }, + "freshrss": { + "subscriptions": "Передплата", + "unread": "Не прочитано" + }, + "fritzbox": { + "connectionStatus": "Стан", + "connectionStatusUnconfigured": "Не налаштовано", + "connectionStatusConnecting": "Підключення", + "connectionStatusAuthenticating": "Автентифікація", + "connectionStatusPendingDisconnect": "Очікує відключення", + "connectionStatusDisconnecting": "Відключення", + "connectionStatusDisconnected": "Відключено", + "connectionStatusConnected": "З'єднано", + "uptime": "Час роботи", + "maxDown": "Макс. завантаження", + "maxUp": "Макс. віддача", + "down": "Офлайн", + "up": "Онлайн", + "received": "Отримано", + "sent": "Надіслано", + "externalIPAddress": "Зовнішній IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Потоки", + "requests": "Поточні запити", + "requests_failed": "Невдалі запити" + }, "changedetectionio": { "totalObserved": "Всього спостережень", "diffsDetected": "Виявлено відмінності" }, + "channelsdvrserver": { + "shows": "Вистави", + "recordings": "Записи", + "scheduled": "Заплановано", + "passes": "Пропуски" + }, "tautulli": { "playing": "Відтворення", - "transcoding": "Перекодування", + "transcoding": "Транскодування", "bitrate": "Бітрейт", "no_active": "Немає активних потоків", "plex_connection_error": "Перевірте з'єднання Plex" }, + "omada": { + "connectedAp": "Підключені точки доступу", + "activeUser": "Активні пристрої", + "alerts": "Оповіщення", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Підключені перемикачі" + }, "nzbget": { "rate": "Швидкість", - "downloaded": "Завантажено", - "remaining": "Залишилося" + "remaining": "Залишилося", + "downloaded": "Завантажено" }, "plex": { "streams": "Активні потоки", + "albums": "Альбоми", "movies": "Фільми", - "tv": "TБ шоу", - "albums": "Альбоми" + "tv": "TБ шоу" + }, + "sabnzbd": { + "rate": "Швидкість", + "queue": "Черга", + "timeleft": "Залишилось" + }, + "rutorrent": { + "active": "Активний", + "upload": "Відправлено", + "download": "Завантажено" }, "transmission": { - "download": "Завантаження", - "upload": "Відправлення", + "download": "Завантажено", + "upload": "Відправлено", "leech": "Ліч", "seed": "Сід" }, "qbittorrent": { - "download": "Завантаження", - "upload": "Відправлення", + "download": "Завантажено", + "upload": "Відправлено", "leech": "Ліч", "seed": "Сід" }, + "qnap": { + "cpuUsage": "Використання CPU", + "memUsage": "Використання пам'яті", + "systemTempC": "Температура системи", + "poolUsage": "Використання пулу", + "volumeUsage": "Гучність", + "invalid": "Недійсний" + }, + "deluge": { + "download": "Завантажено", + "upload": "Відправлено", + "leech": "Ліч", + "seed": "Сід" + }, + "develancacheui": { + "cachehitbytes": "Кеш-хіт байт", + "cachemissbytes": "Кеш-міс байт" + }, "downloadstation": { - "download": "Завантаження", - "upload": "Відправлення", + "download": "Завантажено", + "upload": "Відправлено", "leech": "Ліч", "seed": "Сід" }, @@ -235,7 +243,7 @@ "queued": "У черзі", "series": "Серії", "queue": "Черга", - "unknown": "Невідомо" + "unknown": "Невідомий" }, "radarr": { "wanted": "Розшукується", @@ -243,21 +251,17 @@ "queued": "У черзі", "movies": "Фільми", "queue": "Черга", - "unknown": "Невідомо" + "unknown": "Невідомий" }, "lidarr": { "wanted": "Розшукується", "queued": "У черзі", "artists": "Виконавці" }, - "traefik": { - "middleware": "Проміжне програмне забезпечення", - "routers": "Роутери", - "services": "Сервіси" - }, - "navidrome": { - "nothing_streaming": "Немає активних потоків", - "please_wait": "Будь ласка, зачекайте" + "readarr": { + "wanted": "Розшукується", + "queued": "У черзі", + "books": "Книжки" }, "bazarr": { "missingEpisodes": "Відсутні епізоди", @@ -279,11 +283,17 @@ "approved": "Затверджено", "available": "Доступно" }, + "netalertx": { + "total": "Усього", + "connected": "З'єднано", + "new_devices": "Нові пристрої", + "down_alerts": "Сповіщення про падіння" + }, "pihole": { "queries": "Запити", "blocked": "Заблоковано", - "gravity": "Гравітація", - "blocked_percent": "Заблоковано %" + "blocked_percent": "Заблоковано %", + "gravity": "Доменів в списку" }, "adguard": { "queries": "Запити", @@ -292,14 +302,51 @@ "latency": "Затримка" }, "speedtest": { - "upload": "Відправлення", - "download": "Завантаження", + "upload": "Відправлено", + "download": "Завантажено", "ping": "Пінг" }, "portainer": { "running": "Запущено", "stopped": "Зупинено", - "total": "Всього" + "total": "Усього" + }, + "suwayomi": { + "download": "Завантажено", + "nondownload": "Не завантажено", + "read": "Прочитано", + "unread": "Не прочитано", + "downloadedread": "Завантажено та Прочитано", + "downloadedunread": "Завантажено та Непрочитано", + "nondownloadedread": "Не завантажено та Прочитано", + "nondownloadedunread": "Не завантажено та Не прочитано" + }, + "tailscale": { + "address": "Адреса", + "expires": "Дійсний до", + "never": "Ніколи", + "last_seen": "Востаннє у мережі", + "now": "Зараз", + "years": "{{number}}р", + "weeks": "{{number}}тиж", + "days": "{{number}}д", + "hours": "{{number}}год", + "minutes": "{{number}}хв", + "seconds": "{{number}}с", + "ago": "{{value}} тому" + }, + "technitium": { + "totalQueries": "Запити", + "totalNoError": "Успішно", + "totalServerFailure": "Помилки", + "totalNxDomain": "NX Домени", + "totalRefused": "Відмовлено", + "totalAuthoritative": "Авторитетні", + "totalRecursive": "Рекурсивні", + "totalCached": "Кешовані", + "totalBlocked": "Заблоковано", + "totalDropped": "Видалені", + "totalClients": "Клієнти" }, "tdarr": { "queue": "Черга", @@ -307,10 +354,19 @@ "errored": "Помилка", "saved": "Збережено" }, + "traefik": { + "routers": "Роутери", + "services": "Сервіси", + "middleware": "Проміжне програмне забезпечення" + }, + "navidrome": { + "nothing_streaming": "Немає активних потоків", + "please_wait": "Будь ласка, зачекайте" + }, "npm": { "enabled": "Увімкнено", "disabled": "Вимкнено", - "total": "Всього" + "total": "Усього" }, "coinmarketcap": { "configure": "Налаштуйте одну або кілька криптовалют для відстеження", @@ -319,15 +375,6 @@ "7days": "7 днів", "30days": "30 днів" }, - "mastodon": { - "domain_count": "Домени", - "user_count": "Користувачі", - "status_count": "Пости" - }, - "miniflux": { - "read": "Прочитано", - "unread": "Не прочитано" - }, "gotify": { "apps": "Застосунки", "clients": "Клієнти", @@ -350,29 +397,57 @@ "dataRelayed": "Ретрансльовано", "transferRate": "Швидкість" }, + "mastodon": { + "user_count": "Користувачі", + "status_count": "Пости", + "domain_count": "Домени" + }, + "medusa": { + "wanted": "Розшукується", + "queued": "У черзі", + "series": "Серії" + }, + "minecraft": { + "players": "Гравці", + "version": "Версія", + "status": "Стан", + "up": "Онлайн", + "down": "Офлайн" + }, + "miniflux": { + "read": "Прочитано", + "unread": "Не прочитано" + }, "authentik": { "users": "Користувачі", "loginsLast24H": "Вхід (24 години)", "failedLoginsLast24H": "Невдалі входи (24 години)" }, "proxmox": { - "mem": "Пам'ять", - "cpu": "CPU", - "vms": "Віртуальні машини", - "lxc": "Контейнери Linux" + "mem": "ОЗП", + "cpu": "ЦП", + "lxc": "Контейнери Linux", + "vms": "Віртуальні машини" }, "glances": { - "cpu": "CPU", - "wait": "Будь ласка, зачекайте", - "temp": "TEMP", - "uptime": "Відправка", - "days": "д", - "hours": "г", + "cpu": "ЦП", "load": "Завантаження", + "wait": "Будь ласка, зачекайте", + "temp": "Температура", + "_temp": "Темп.", "warn": "Увага", - "total": "Всього", - "free": "Вільний", - "used": "Використовується" + "uptime": "Онлайн", + "total": "Усього", + "free": "Вільно", + "used": "Використано", + "days": "днів", + "hours": "год", + "crit": "Крит", + "read": "Прочитано", + "write": "Написати", + "gpu": "GPU", + "mem": "Пам'ять", + "swap": "Обмін" }, "quicklaunch": { "bookmark": "Закладка", @@ -380,18 +455,87 @@ "search": "Пошук", "custom": "Користувацький", "visit": "Відвідайте", - "url": "URL" + "url": "URL-адреса", + "searchsuggestion": "Пропозиція" + }, + "wmo": { + "0-day": "Сонячно", + "0-night": "Ясно", + "1-day": "Переважно сонячно", + "1-night": "Переважно ясно", + "2-day": "Частково хмарно", + "2-night": "Частково хмарно", + "3-day": "Хмарно", + "3-night": "Хмарно", + "45-day": "Туманно", + "45-night": "Туманно", + "48-day": "Туманно", + "48-night": "Туманно", + "51-day": "Легка мряка", + "51-night": "Легка мряка", + "53-day": "Мряка", + "53-night": "Мряка", + "55-day": "Сильна мряка", + "55-night": "Сильна мряка", + "56-day": "Невеликий морозний дощ", + "56-night": "Невеликий морозний дощ", + "57-day": "Морозний дощ", + "57-night": "Морозний дощ", + "61-day": "Невеликий дощ", + "61-night": "Невеликий дощ", + "63-day": "Дощ", + "63-night": "Дощ", + "65-day": "Сильний дощ", + "65-night": "Сильний дощ", + "66-day": "Холодний дощ", + "66-night": "Холодний дощ", + "67-day": "Холодний дощ", + "67-night": "Холодний дощ", + "71-day": "Невеликий сніг", + "71-night": "Невеликий сніг", + "73-day": "Сніг", + "73-night": "Сніг", + "75-day": "Снігопад", + "75-night": "Снігопад", + "77-day": "Снігові зерна", + "77-night": "Снігові зерна", + "80-day": "Невелика злива", + "80-night": "Невелика злива", + "81-day": "Злива", + "81-night": "Злива", + "82-day": "Сильна злива", + "82-night": "Сильна злива", + "85-day": "Дощ зі снігом", + "85-night": "Дощ зі снігом", + "86-day": "Дощ зі снігом", + "86-night": "Дощ зі снігом", + "95-day": "Гроза", + "95-night": "Гроза", + "96-day": "Гроза з градом", + "96-night": "Гроза з градом", + "99-day": "Гроза з градом", + "99-night": "Гроза з градом" }, "homebridge": { "available_update": "Система", "updates": "Оновлення", - "child_bridges_status": "{{ok}}/{{total}}", "update_available": "Доступне оновлення", "up_to_date": "Актуально", "child_bridges": "Дитячі мости", - "up": "Вгору", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Онлайн", "pending": "В очікуванні", - "down": "Вниз" + "down": "Офлайн" + }, + "healthchecks": { + "new": "Новий", + "up": "Онлайн", + "grace": "У пільговий період", + "down": "Офлайн", + "paused": "Призупинено", + "status": "Стан", + "last_ping": "Останній пінг", + "never": "Пінгів ще немає" }, "watchtower": { "containers_scanned": "Відскановано", @@ -399,7 +543,7 @@ "containers_failed": "Невдача" }, "autobrr": { - "approvedPushes": "Схвалено", + "approvedPushes": "Затверджено", "rejectedPushes": "Відхилено", "filters": "Фільтри", "indexers": "Індексатори" @@ -413,17 +557,47 @@ "truenas": { "load": "Завантаження системи", "uptime": "Час роботи", - "alerts": "Сповіщення", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" + "alerts": "Оповіщення" + }, + "pyload": { + "speed": "Швидкість", + "active": "Активний", + "queue": "Черга", + "total": "Усього" + }, + "gluetun": { + "public_ip": "Публічний IP", + "region": "Регіон", + "country": "Країна" + }, + "hdhomerun": { + "channels": "Канали", + "hd": "HD", + "tunerCount": "Тюнери", + "channelNumber": "Канал", + "channelNetwork": "Мережа", + "signalStrength": "Сила", + "signalQuality": "Якість", + "symbolQuality": "Якість", + "networkRate": "Бітрейт", + "clientIP": "Клієнт" }, "scrutiny": { "passed": "Пройшов", "failed": "Невдача", - "unknown": "Невідомо" + "unknown": "Невідомий" }, "paperlessngx": { "inbox": "Вхідні", - "total": "Всього" + "total": "Усього" + }, + "peanut": { + "battery_charge": "Заряд батареї", + "ups_load": "UPS завантаження", + "ups_status": "Статус UPS", + "online": "Онлайн", + "on_battery": "Від батареї", + "low_battery": "Низький заряд" }, "nextdns": { "wait": "Будь ласка, зачекайте", @@ -440,6 +614,12 @@ "streams_active": "Активні потоки", "streams_xepg": "Канали XEPG" }, + "opendtu": { + "yieldDay": "Сьогодні", + "absolutePower": "Абс. потуж.", + "relativePower": "Заряд %", + "limit": "Ліміт" + }, "opnsense": { "cpu": "Завантаження CPU", "memory": "Активна пам'ять", @@ -452,11 +632,6 @@ "print_progress": "Прогрес", "layers": "Шари" }, - "medusa": { - "wanted": "Розшукується", - "queued": "У черзі", - "series": "Серії" - }, "octoprint": { "printer_state": "Стан", "temp_tool": "Температура інструменту", @@ -467,10 +642,20 @@ "origin_ip": "Походження IP", "status": "Стан" }, + "pfsense": { + "load": "Середнє завантаження", + "memory": "Використання пам'яті", + "wanStatus": "Статус WAN", + "up": "Онлайн", + "down": "Офлайн", + "temp": "Темп.", + "disk": "Використання диска", + "wanIP": "WAN IP" + }, "proxmoxbackupserver": { "datastore_usage": "Сховище даних", "failed_tasks_24h": "Невиконані завдання 24 години", - "cpu_usage": "CPU", + "cpu_usage": "ЦП", "memory_usage": "Пам'ять" }, "immich": { @@ -486,11 +671,22 @@ "incident": "Інцидент", "m": "хв" }, + "atsumeru": { + "series": "Серії", + "archives": "Архіви", + "chapters": "Глави", + "categories": "Категорії" + }, "komga": { "libraries": "Бібліотеки", "series": "Серії", "books": "Книжки" }, + "diskstation": { + "days": "Днів", + "uptime": "Час роботи", + "volumeAvailable": "Доступно" + }, "mylar": { "series": "Серії", "issues": "Питання", @@ -498,21 +694,20 @@ }, "photoprism": { "albums": "Альбоми", - "photos": "Фото", + "photos": "Фотографії", "videos": "Відео", "people": "Люди" }, - "diskstation": { - "days": "Днів", - "uptime": "Час роботи", - "volumeAvailable": "Доступно" - }, "fileflows": { "queue": "Черга", "processing": "Обробка", - "processed": "Оброблено", + "processed": "Обробка", "time": "Час" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Інформаційні панелі", "datasources": "Джерела даних", @@ -528,27 +723,17 @@ "numshares": "Спільні елементи" }, "kopia": { - "status": "Статус", + "status": "Стан", "size": "Розмір", "lastrun": "Останній запуск", "nextrun": "Наступний запуск", - "failed": "Помилка" + "failed": "Невдача" }, "unmanic": { "active_workers": "Активні працівники", "total_workers": "Всього робітників", "records_total": "Довжина черги" }, - "healthchecks": { - "new": "Новий", - "up": "Онлайн", - "down": "Офлайн", - "grace": "У пільговий період", - "paused": "Призупинено", - "status": "Стан", - "last_ping": "Останній пінг", - "never": "Пінгів ще немає" - }, "pterodactyl": { "servers": "Сервери", "nodes": "Вузли" @@ -558,12 +743,10 @@ "targets_down": "Цілі вниз", "targets_total": "Всього цілей" }, - "minecraft": { - "players": "Гравці", - "version": "Версія", - "status": "Стан", - "up": "Онлайн", - "down": "Офлайн" + "gatus": { + "up": "Активні сайти", + "down": "Неактивні сайти", + "uptime": "Час роботи" }, "ghostfolio": { "gross_percent_today": "Сьогодні", @@ -581,89 +764,283 @@ "lights_on": "Світло ввімкнено", "switches_on": "Вмикається" }, - "freshrss": { - "subscriptions": "Передплата", - "unread": "Не прочитано" - }, - "channelsdvrserver": { - "shows": "Вистави", - "recordings": "Записи", - "scheduled": "Заплановано", - "passes": "Перепустки" - }, "whatsupdocker": { "monitoring": "Спостереження", "updates": "Оновлення" }, - "tailscale": { - "address": "Адреса", - "expires": "Дійсний до", - "never": "Ніколи", - "last_seen": "Востаннє у мережі", - "now": "Зараз", - "years": "{{number}}р", - "weeks": "{{number}}тиж", - "days": "{{number}}д", - "hours": "{{number}}год", - "minutes": "{{number}}хв", - "seconds": "{{number}}с", - "ago": "{{value}} тому" - }, - "qnap": { - "cpuUsage": "Використання CPU", - "memUsage": "Використання пам'яті", - "systemTempC": "Температура системи", - "poolUsage": "Використання пулу", - "volumeUsage": "Гучність", - "invalid": "Недійсний" - }, - "pfsense": { - "load": "Середнє завантаження", - "memory": "Використання пам'яті", - "wanStatus": "Статус WAN", - "up": "Вгору", - "down": "Вниз", - "temp": "Температура", - "disk": "Використання диска", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Потоки", - "requests": "Поточні запити", - "requests_failed": "Невдалі запити" - }, - "evcc": { - "pv_power": "Виробництво", - "battery_soc": "Батарея", - "grid_power": "Сітка", - "home_power": "Споживання", - "charge_power": "Зарядний пристрій", - "watt_hour": "Вт/год" - }, - "pialert": { - "total": "Всього", - "connected": "Підключено", - "new_devices": "Нові пристрої", - "down_alerts": "Сповіщення про збій" + "calibreweb": { + "books": "Книжки", + "authors": "Автори", + "categories": "Категорії", + "series": "Серії" }, "jdownloader": { "downloadCount": "Черга", - "downloadSpeed": "Швидкість", "downloadBytesRemaining": "Залишилося", - "downloadTotalBytes": "Розмір" + "downloadTotalBytes": "Розмір", + "downloadSpeed": "Швидкість" }, "kavita": { - "seriesCount": "Серій", - "totalFiles": "Файлів" + "seriesCount": "Серії", + "totalFiles": "Файли" }, - "azurePipelines": { - "failed": "Невдача", + "azuredevops": { "result": "Результат", "status": "Стан", "buildId": "ID збірки", "succeeded": "Успішно", "notStarted": "Не розпочато", + "failed": "Невдача", "canceled": "Скасовано", - "inProgress": "В процесі" + "inProgress": "В процесі", + "totalPrs": "Всього PR", + "myPrs": "Мій PR", + "approved": "Затверджено" + }, + "gamedig": { + "status": "Стан", + "online": "Онлайн", + "offline": "Офлайн", + "name": "Назва", + "map": "Мапа", + "currentPlayers": "Поточні гравці", + "players": "Гравці", + "maxPlayers": "Максимум гравців", + "bots": "Ботів", + "ping": "Пінг" + }, + "urbackup": { + "ok": "Добре", + "errored": "Помилки", + "noRecent": "Застарілий", + "totalUsed": "Використовувана пам'ять" + }, + "mealie": { + "recipes": "Отримувачі", + "users": "Користувачі", + "categories": "Категорії", + "tags": "Теги" + }, + "openmediavault": { + "downloading": "Завантаження", + "total": "Усього", + "running": "Запущено", + "stopped": "Зупинено", + "passed": "Пройшов", + "failed": "Невдача" + }, + "openwrt": { + "uptime": "Час роботи", + "cpuLoad": "Сер. навантаження ЦП (5 хв)", + "up": "Онлайн", + "down": "Офлайн", + "bytesTx": "Передано", + "bytesRx": "Отримано" + }, + "uptimerobot": { + "status": "Стан", + "uptime": "Час роботи", + "lastDown": "Останній час простою", + "downDuration": "Тривалість простою", + "sitesUp": "Активні сайти", + "sitesDown": "Неактивні сайти", + "paused": "Призупинено", + "notyetchecked": "Ще не перевірено", + "up": "Онлайн", + "seemsdown": "Вірогідно в простої", + "down": "Офлайн", + "unknown": "Невідомий" + }, + "calendar": { + "inCinemas": "У кінотеатрах", + "physicalRelease": "Фізичний реліз", + "digitalRelease": "Цифровий реліз", + "noEventsToday": "Події на сьогодні відсутні", + "noEventsFound": "Події не знайдено" + }, + "romm": { + "platforms": "Платформи", + "totalRoms": "Ігри", + "saves": "Збереження", + "states": "Стани", + "screenshots": "Знімки екрану", + "totalfilesize": "Загальний обсяг" + }, + "mailcow": { + "domains": "Домени", + "mailboxes": "Пошта", + "mails": "Листи", + "storage": "Сховище" + }, + "netdata": { + "warnings": "Попередження", + "criticals": "Критичні" + }, + "plantit": { + "events": "Події", + "plants": "Рослини", + "photos": "Фотографії", + "species": "Види" + }, + "gitea": { + "notifications": "Сповіщення", + "issues": "Питання", + "pulls": "Pull-запити", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Сцени", + "scenesPlayed": "Зіграні сцени", + "playCount": "Всього п'єс", + "playDuration": "Переглянуто", + "sceneSize": "Розміри сцен", + "sceneDuration": "Тривалість сцен", + "images": "Зображення", + "imageSize": "Розміри зображень", + "galleries": "Галереї", + "performers": "Виконавці", + "studios": "Студії", + "movies": "Фільми", + "tags": "Теги", + "oCount": "Кількість O" + }, + "tandoor": { + "users": "Користувачі", + "recipes": "Отримувачі", + "keywords": "Ключові слова" + }, + "homebox": { + "items": "Речі", + "totalWithWarranty": "З гарантією", + "locations": "Місцезнаходження", + "labels": "Мітки", + "users": "Користувачі", + "totalValue": "Загальне значення" + }, + "crowdsec": { + "alerts": "Оповіщення", + "bans": "Блокування" + }, + "wgeasy": { + "connected": "З'єднано", + "enabled": "Увімкнено", + "disabled": "Вимкнено", + "total": "Усього" + }, + "swagdashboard": { + "proxied": "Пропущено через проксі", + "auth": "З аутентифікацією", + "outdated": "Застаріле", + "banned": "Заблоковано" + }, + "myspeed": { + "ping": "Пінг", + "download": "Завантажено", + "upload": "Відправлено" + }, + "stocks": { + "stocks": "Акції", + "loading": "Завантажую", + "open": "Відкрито - ринок США", + "closed": "Закрито - ринок США", + "invalidConfiguration": "Неприпустима конфігурація" + }, + "frigate": { + "cameras": "Камери", + "uptime": "Час роботи", + "version": "Версія" + }, + "linkwarden": { + "links": "Посилання", + "collections": "Колекції", + "tags": "Теги" + }, + "zabbix": { + "unclassified": "Не визначено", + "information": "Інформація", + "warning": "Попередження", + "average": "Середнє", + "high": "Високе", + "disaster": "Катастрофа" + }, + "lubelogger": { + "vehicle": "Транспортний засіб", + "vehicles": "Транспортні засоби", + "serviceRecords": "Записи служб", + "reminders": "Нагадування", + "nextReminder": "Наступне нагадування", + "none": "Жодного" + }, + "vikunja": { + "projects": "Активні проекти", + "tasks7d": "Завдання цього тижня", + "tasksOverdue": "Прострочені завдання", + "tasksInProgress": "Завдання в процесі" + }, + "headscale": { + "name": "Назва", + "address": "Адреса", + "last_seen": "Востаннє у мережі", + "status": "Стан", + "online": "Онлайн", + "offline": "Офлайн" + }, + "beszel": { + "name": "Назва", + "systems": "Системи", + "up": "Онлайн", + "down": "Офлайн", + "paused": "Призупинено", + "pending": "В очікуванні", + "status": "Стан", + "updated": "Оновлено", + "cpu": "ЦП", + "memory": "ОЗП", + "disk": "Диск", + "network": "МЕРЕЖА" + }, + "argocd": { + "apps": "Додатки", + "synced": "Синхронізовано", + "outOfSync": "Не синхронізовано", + "healthy": "Здоровий", + "degraded": "Деградує", + "progressing": "Прогрес", + "missing": "Відсутній", + "suspended": "Призупинено" + }, + "spoolman": { + "loading": "Завантажую" + }, + "gitlab": { + "groups": "Групи", + "issues": "Питання", + "merges": "Запити на злиття", + "projects": "Проєкти" + }, + "apcups": { + "status": "Стан", + "load": "Завантаження", + "bcharge": "Заряд батареї", + "timeleft": "Залишилось" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Теги" + }, + "slskd": { + "slskStatus": "Мережа", + "connected": "З'єднано", + "disconnected": "Відключено", + "updateStatus": "Update", + "update_yes": "Доступно", + "update_no": "Актуально", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Файли" } } diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index d3341c7a..7e8974f8 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -1,46 +1,101 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "mo", + "days": "d", + "hours": "h", + "minutes": "m", + "seconds": "s" + }, "widget": { "missing_type": "Thiếu loại Widget: {{type}}", "api_error": "Lỗi API", - "status": "Trạng thái", "information": "Information", + "status": "Trạng thái", "url": "URL", "raw_error": "Raw Error", "response_data": "Response Data" }, + "weather": { + "current": "Vị trí hiện tại", + "allow": "Bấm để đồng ý", + "updating": "Đang cập nhật", + "wait": "Vui lòng chờ" + }, "search": { "placeholder": "Tìm kiếm…" }, "resources": { + "cpu": "CPU", + "mem": "MEM", "total": "Tổng", "free": "Dư", "used": "Đã dùng", "load": "Load", - "cpu": "CPU", - "mem": "MEM", "temp": "TEMP", "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "uptime": "UP" + }, + "unifi": { + "users": "Users", + "uptime": "Uptime", + "days": "Days", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Devices", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "Vui lòng chờ", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "BỘ NHỚ", + "mem": "MEM", "cpu": "CPU", + "running": "Running", "offline": "Ngoại tuyến", "error": "Error", "unknown": "Unknown", - "running": "Running", + "healthy": "Healthy", "starting": "Starting", "unhealthy": "Unhealthy", "not_found": "Not Found", "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "partial": "Partial" + }, + "ping": { + "error": "Error", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "Không khả dụng" + }, + "siteMonitor": { + "http_status": "HTTP status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Không khả dụng" }, "emby": { "playing": "Đang chơi", @@ -52,6 +107,66 @@ "episodes": "Episodes", "songs": "Songs" }, + "esphome": { + "offline": "Ngoại tuyến", + "offline_alt": "Ngoại tuyến", + "online": "Online", + "total": "Tổng", + "unknown": "Unknown" + }, + "evcc": { + "pv_power": "Production", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "freshrss": { + "subscriptions": "Subscriptions", + "unread": "Unread" + }, + "fritzbox": { + "connectionStatus": "Trạng thái", + "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusConnecting": "Connecting", + "connectionStatusAuthenticating": "Authenticating", + "connectionStatusPendingDisconnect": "Pending Disconnect", + "connectionStatusDisconnecting": "Disconnecting", + "connectionStatusDisconnected": "Disconnected", + "connectionStatusConnected": "Connected", + "uptime": "Uptime", + "maxDown": "Max. Down", + "maxUp": "Max. Up", + "down": "Down", + "up": "Up", + "received": "Received", + "sent": "Sent", + "externalIPAddress": "Ext. IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "channelsdvrserver": { + "shows": "Shows", + "recordings": "Recordings", + "scheduled": "Scheduled", + "passes": "Passes" + }, "tautulli": { "playing": "Đang chơi", "transcoding": "Chuyển định dạng", @@ -59,46 +174,132 @@ "no_active": "No Active Streams", "plex_connection_error": "Check Plex Connection" }, + "omada": { + "connectedAp": "Connected APs", + "activeUser": "Active devices", + "alerts": "Alerts", + "connectedGateways": "Connected gateways", + "connectedSwitches": "Connected switches" + }, + "nzbget": { + "rate": "Rate", + "remaining": "Remaining", + "downloaded": "Đã tải" + }, + "plex": { + "streams": "Active Streams", + "albums": "Albums", + "movies": "Movies", + "tv": "TV Shows" + }, + "sabnzbd": { + "rate": "Rate", + "queue": "Hàng chờ", + "timeleft": "Thời gian còn lại" + }, "rutorrent": { "active": "Hoạt động", - "upload": "Tải lên", - "download": "Tải xuống" + "upload": "Upload", + "download": "Download" + }, + "transmission": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qnap": { + "cpuUsage": "CPU Usage", + "memUsage": "MEM Usage", + "systemTempC": "System Temp", + "poolUsage": "Pool Usage", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" }, "sonarr": { "wanted": "Wanted", "queued": "Queued", "series": "Series", - "queue": "Queue", + "queue": "Hàng chờ", "unknown": "Unknown" }, "radarr": { "wanted": "Wanted", - "queued": "Queued", - "movies": "Phim", "missing": "Missing", - "queue": "Queue", + "queued": "Queued", + "movies": "Movies", + "queue": "Hàng chờ", "unknown": "Unknown" }, + "lidarr": { + "wanted": "Wanted", + "queued": "Queued", + "artists": "Artists" + }, "readarr": { - "wanted": "Đang tìm", - "queued": "Đang chờ", + "wanted": "Wanted", + "queued": "Queued", "books": "Sách" }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, "ombi": { "pending": "Đang xử lý", "approved": "Đã duyệt", "available": "Available" }, "jellyseerr": { - "pending": "Pending", - "approved": "Approved", + "pending": "Đang xử lý", + "approved": "Đã duyệt", "available": "Available" }, + "overseerr": { + "pending": "Đang xử lý", + "processing": "Processing", + "approved": "Đã duyệt", + "available": "Available" + }, + "netalertx": { + "total": "Tổng", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" + }, "pihole": { "queries": "Queries", "blocked": "Blocked", - "gravity": "Gravity", - "blocked_percent": "Blocked %" + "blocked_percent": "Blocked %", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Queries", + "blocked": "Blocked", + "filtered": "Filtered", + "latency": "Latency" }, "speedtest": { "upload": "Upload", @@ -108,39 +309,64 @@ "portainer": { "running": "Running", "stopped": "Stopped", - "total": "Total" + "total": "Tổng" + }, + "suwayomi": { + "download": "Đã tải", + "nondownload": "Non-Downloaded", + "read": "Read", + "unread": "Unread", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "Address", + "expires": "Expires", + "never": "Never", + "last_seen": "Last Seen", + "now": "Now", + "years": "{{number}}y", + "weeks": "{{number}}w", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} Ago" + }, + "technitium": { + "totalQueries": "Queries", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "Blocked", + "totalDropped": "Dropped", + "totalClients": "Clients" + }, + "tdarr": { + "queue": "Hàng chờ", + "processed": "Processed", + "errored": "Errored", + "saved": "Saved" }, "traefik": { "routers": "Routers", "services": "Services", "middleware": "Middleware" }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" + }, "npm": { "enabled": "Enabled", "disabled": "Disabled", - "total": "Total" - }, - "weather": { - "current": "Vị trí hiện tại", - "allow": "Bấm để đồng ý", - "updating": "Đang cập nhật", - "wait": "Vui lòng chờ" - }, - "overseerr": { - "pending": "Pending", - "approved": "Đã duyệt", - "available": "Available", - "processing": "Processing" - }, - "sabnzbd": { - "rate": "Rate", - "queue": "Hàng chờ", - "timeleft": "Thời gian còn lại" - }, - "nzbget": { - "rate": "Rate", - "remaining": "Remaining", - "downloaded": "Đã tải" + "total": "Tổng" }, "coinmarketcap": { "configure": "Configure one or more crypto currencies to track", @@ -155,54 +381,43 @@ "messages": "Messages" }, "prowlarr": { - "numberOfFailGrabs": "Fail Grabs", "enableIndexers": "Indexers", "numberOfGrabs": "Grabs", "numberOfQueries": "Queries", + "numberOfFailGrabs": "Fail Grabs", "numberOfFailQueries": "Fail Queries" }, - "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "jackett": { "configured": "Configured", "errored": "Errored" }, - "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" - }, - "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" - }, - "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" - }, - "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" - }, "strelaysrv": { "numActiveSessions": "Sessions", "numConnections": "Connections", "dataRelayed": "Relayed", "transferRate": "Rate" }, + "mastodon": { + "user_count": "Users", + "status_count": "Posts", + "domain_count": "Domains" + }, + "medusa": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Series" + }, + "minecraft": { + "players": "Players", + "version": "Version", + "status": "Trạng thái", + "up": "Online", + "down": "Ngoại tuyến" + }, + "miniflux": { + "read": "Read", + "unread": "Unread" + }, "authentik": { "users": "Users", "loginsLast24H": "Logins (24h)", @@ -214,59 +429,38 @@ "lxc": "LXC", "vms": "VMs" }, - "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Days", - "wan": "WAN", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" - }, "glances": { "cpu": "CPU", - "wait": "Please wait", + "load": "Load", + "wait": "Vui lòng chờ", "temp": "TEMP", + "_temp": "Temp", + "warn": "Warn", "uptime": "UP", + "total": "Tổng", + "free": "Dư", + "used": "Đã dùng", "days": "d", "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service", + "search": "Search", + "custom": "Custom", + "visit": "Visit", + "url": "URL", + "searchsuggestion": "Suggestion" }, "wmo": { "0-day": "Sunny", "0-night": "Clear", - "63-day": "Rain", - "63-night": "Rain", - "80-day": "Light Showers", - "81-day": "Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail", "1-day": "Mainly Sunny", "1-night": "Mainly Clear", "2-day": "Partly Cloudy", @@ -289,14 +483,14 @@ "57-night": "Freezing Drizzle", "61-day": "Light Rain", "61-night": "Light Rain", + "63-day": "Rain", + "63-night": "Rain", "65-day": "Heavy Rain", "65-night": "Heavy Rain", "66-day": "Freezing Rain", "66-night": "Freezing Rain", "67-day": "Freezing Rain", "67-night": "Freezing Rain", - "77-night": "Snow Grains", - "80-night": "Light Showers", "71-day": "Light Snow", "71-night": "Light Snow", "73-day": "Snow", @@ -304,21 +498,23 @@ "75-day": "Heavy Snow", "75-night": "Heavy Snow", "77-day": "Snow Grains", + "77-night": "Snow Grains", + "80-day": "Light Showers", + "80-night": "Light Showers", + "81-day": "Showers", "81-night": "Showers", "82-day": "Heavy Showers", "82-night": "Heavy Showers", "85-day": "Snow Showers", "85-night": "Snow Showers", "86-day": "Snow Showers", - "86-night": "Snow Showers" - }, - "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "86-night": "Snow Showers", + "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", + "96-night": "Thunderstorm With Hail", + "99-day": "Thunderstorm With Hail", + "99-night": "Thunderstorm With Hail" }, "homebridge": { "available_update": "System", @@ -328,22 +524,32 @@ "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Up", - "down": "Down", - "pending": "Pending" + "pending": "Đang xử lý", + "down": "Down" }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "healthchecks": { + "new": "New", + "up": "Up", + "grace": "In Grace Period", + "down": "Down", + "paused": "Paused", + "status": "Trạng thái", + "last_ping": "Last Ping", + "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" }, + "autobrr": { + "approvedPushes": "Đã duyệt", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexers" + }, "tubearchivist": { - "downloads": "Queue", + "downloads": "Hàng chờ", "videos": "Videos", "channels": "Channels", "playlists": "Playlists" @@ -351,18 +557,13 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "alerts": "Alerts" }, "pyload": { "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "active": "Hoạt động", + "queue": "Hàng chờ", + "total": "Tổng" }, "gluetun": { "public_ip": "Public IP", @@ -371,11 +572,15 @@ }, "hdhomerun": { "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" + "hd": "HD", + "tunerCount": "Tuners", + "channelNumber": "Channel", + "channelNetwork": "Network", + "signalStrength": "Strength", + "signalQuality": "Quality", + "symbolQuality": "Quality", + "networkRate": "Bitrate", + "clientIP": "Client" }, "scrutiny": { "passed": "Passed", @@ -384,62 +589,37 @@ }, "paperlessngx": { "inbox": "Inbox", - "total": "Total" + "total": "Tổng" }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "seed": "Seed", - "leech": "Leech" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" + "peanut": { + "battery_charge": "Battery Charge", + "ups_load": "UPS Load", + "ups_status": "UPS Status", + "online": "Online", + "on_battery": "On Battery", + "low_battery": "Low Battery" }, "nextdns": { "wait": "Please Wait", "no_devices": "No Device Data Received" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, "mikrotik": { - "uptime": "Uptime", - "numberOfLeases": "Leases", "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used" + "memoryUsed": "Memory Used", + "uptime": "Uptime", + "numberOfLeases": "Leases" }, "xteve": { "streams_all": "All Streams", "streams_active": "Active Streams", "streams_xepg": "XEPG Channels" }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, "opnsense": { "cpu": "CPU Load", "memory": "Active Memory", @@ -452,20 +632,25 @@ "print_progress": "Progress", "layers": "Layers" }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, "octoprint": { - "printer_state": "Status", + "printer_state": "Trạng thái", "temp_tool": "Tool temp", "temp_bed": "Bed temp", "job_completion": "Completion" }, "cloudflared": { "origin_ip": "Origin IP", - "status": "Status" + "status": "Trạng thái" + }, + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", + "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", @@ -486,10 +671,21 @@ "incident": "Incident", "m": "m" }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, "komga": { "libraries": "Libraries", "series": "Series", - "books": "Books" + "books": "Sách" + }, + "diskstation": { + "days": "Days", + "uptime": "Uptime", + "volumeAvailable": "Available" }, "mylar": { "series": "Series", @@ -497,22 +693,21 @@ "wanted": "Wanted" }, "photoprism": { + "albums": "Albums", "photos": "Photos", "videos": "Videos", - "people": "People", - "albums": "Albums" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "people": "People" }, "fileflows": { - "queue": "Queue", + "queue": "Hàng chờ", "processing": "Processing", "processed": "Processed", "time": "Time" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "Dashboards", "datasources": "Data Sources", @@ -528,7 +723,7 @@ "numshares": "Shared Items" }, "kopia": { - "status": "Status", + "status": "Trạng thái", "size": "Size", "lastrun": "Last Run", "nextrun": "Next Run", @@ -539,16 +734,6 @@ "total_workers": "Total Workers", "records_total": "Queue Length" }, - "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" - }, "pterodactyl": { "servers": "Servers", "nodes": "Nodes" @@ -558,12 +743,10 @@ "targets_down": "Targets Down", "targets_total": "Total Targets" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "gatus": { + "up": "Sites Up", + "down": "Sites Down", + "uptime": "Uptime" }, "ghostfolio": { "gross_percent_today": "Today", @@ -572,7 +755,7 @@ }, "audiobookshelf": { "podcasts": "Podcasts", - "books": "Books", + "books": "Sách", "podcastsDuration": "Duration", "booksDuration": "Duration" }, @@ -581,89 +764,283 @@ "lights_on": "Lights On", "switches_on": "Switches On" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" - }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" - }, "whatsupdocker": { "monitoring": "Monitoring", "updates": "Updates" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "hours": "{{number}}h", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" - }, - "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" - }, - "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" - }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" - }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" - }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "calibreweb": { + "books": "Sách", + "authors": "Authors", + "categories": "Categories", + "series": "Series" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", + "downloadCount": "Hàng chờ", "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadTotalBytes": "Size", + "downloadSpeed": "Speed" }, "kavita": { "seriesCount": "Series", "totalFiles": "Files" }, - "azurePipelines": { + "azuredevops": { "result": "Result", - "status": "Status", + "status": "Trạng thái", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", "canceled": "Canceled", - "inProgress": "In Progress" + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Đã duyệt" + }, + "gamedig": { + "status": "Trạng thái", + "online": "Online", + "offline": "Ngoại tuyến", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Tổng", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "openwrt": { + "uptime": "Uptime", + "cpuLoad": "CPU Load Avg (5m)", + "up": "Up", + "down": "Down", + "bytesTx": "Transmitted", + "bytesRx": "Received" + }, + "uptimerobot": { + "status": "Trạng thái", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "No events for today!", + "noEventsFound": "No events found" + }, + "romm": { + "platforms": "Platforms", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "Domains", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "Storage" + }, + "netdata": { + "warnings": "Warnings", + "criticals": "Criticals" + }, + "plantit": { + "events": "Events", + "plants": "Plants", + "photos": "Photos", + "species": "Species" + }, + "gitea": { + "notifications": "Notifications", + "issues": "Issues", + "pulls": "Pull Requests", + "repositories": "Repositories" + }, + "stash": { + "scenes": "Scenes", + "scenesPlayed": "Scenes Played", + "playCount": "Total Plays", + "playDuration": "Time Watched", + "sceneSize": "Scenes Size", + "sceneDuration": "Scenes Duration", + "images": "Images", + "imageSize": "Images Size", + "galleries": "Galleries", + "performers": "Performers", + "studios": "Studios", + "movies": "Movies", + "tags": "Tags", + "oCount": "O Count" + }, + "tandoor": { + "users": "Users", + "recipes": "Recipes", + "keywords": "Keywords" + }, + "homebox": { + "items": "Items", + "totalWithWarranty": "With Warranty", + "locations": "Locations", + "labels": "Labels", + "users": "Users", + "totalValue": "Total Value" + }, + "crowdsec": { + "alerts": "Alerts", + "bans": "Bans" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Tổng" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "Ping", + "download": "Download", + "upload": "Upload" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "Uptime", + "version": "Version" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "Information", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "Name", + "address": "Address", + "last_seen": "Last Seen", + "status": "Trạng thái", + "online": "Online", + "offline": "Ngoại tuyến" + }, + "beszel": { + "name": "Name", + "systems": "Systems", + "up": "Up", + "down": "Down", + "paused": "Paused", + "pending": "Đang xử lý", + "status": "Trạng thái", + "updated": "Updated", + "cpu": "CPU", + "memory": "MEM", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "Healthy", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "Missing", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "Issues", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "Trạng thái", + "load": "Load", + "bcharge": "Battery Charge", + "timeleft": "Thời gian còn lại" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "Network", + "connected": "Connected", + "disconnected": "Disconnected", + "updateStatus": "Update", + "update_yes": "Available", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" } } diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index 91775685..dfe604dd 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -1,35 +1,33 @@ { - "emby": { - "transcoding": "轉碼緊", - "bitrate": "比特率", - "playing": "播放緊", - "no_active": "無任何活動", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" - }, - "tautulli": { - "playing": "播放緊", - "no_active": "無任何活動", - "transcoding": "轉碼緊", - "bitrate": "比特率", - "plex_connection_error": "Check Plex Connection" - }, - "transmission": { - "download": "下載速度", - "upload": "上傳速度", - "leech": "下載緊", - "seed": "做種緊" + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "月", + "days": "天", + "hours": "小時", + "minutes": "分", + "seconds": "秒" }, "widget": { "missing_type": "缺少小部件類型:{{type}}", "api_error": "API 錯誤", + "information": "資訊", "status": "狀況", - "url": "URL", - "information": "Information", - "raw_error": "Raw Error", - "response_data": "Response Data" + "url": "網址", + "raw_error": "原始錯誤", + "response_data": "回應資料" }, "weather": { "current": "依家位置", @@ -41,41 +39,159 @@ "placeholder": "搜索緊…" }, "resources": { + "cpu": "CPU", + "mem": "記憶體", "total": "全部", "free": "剩餘", "used": "用咗", "load": "負荷", - "cpu": "CPU", - "mem": "MEM", - "temp": "TEMP", - "max": "Max", - "uptime": "UP", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m" + "temp": "溫度", + "max": "最大", + "uptime": "運作時間" + }, + "unifi": { + "users": "使用者", + "uptime": "運行時間", + "days": "天", + "wan": "WAN", + "lan": "區域網路", + "wlan": "無線區域網路", + "devices": "設備", + "lan_devices": "有線設備", + "wlan_devices": "無線設備", + "lan_users": "有線使用者", + "wlan_users": "無線使用者", + "up": "運作時間", + "down": "離線", + "wait": "請稍後", + "empty_data": "子系統狀態未知" }, "docker": { "rx": "接收", "tx": "發送", - "mem": "內存", - "cpu": "處理器", + "mem": "記憶體", + "cpu": "CPU", + "running": "執行中", "offline": "離線", - "error": "Error", - "unknown": "Unknown", - "running": "Running", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial", - "healthy": "Healthy" + "error": "錯誤", + "unknown": "未知", + "healthy": "健康", + "starting": "啟動中", + "unhealthy": "不健康的", + "not_found": "未找到", + "exited": "已退出", + "partial": "部分" + }, + "ping": { + "error": "錯誤", + "ping": "延遲", + "down": "離線", + "up": "在線", + "not_available": "不可用" + }, + "siteMonitor": { + "http_status": "HTTP 狀態", + "error": "錯誤", + "response": "回應", + "down": "離線", + "up": "在線", + "not_available": "不可用" + }, + "emby": { + "playing": "播放緊", + "transcoding": "轉碼緊", + "bitrate": "比特率", + "no_active": "無任何活動", + "movies": "電影", + "series": "影集", + "episodes": "集", + "songs": "曲目" + }, + "esphome": { + "offline": "離線", + "offline_alt": "離線", + "online": "在線", + "total": "全部", + "unknown": "未知" + }, + "evcc": { + "pv_power": "正式環境", + "battery_soc": "電池", + "grid_power": "電網", + "home_power": "電源使用率", + "charge_power": "充電", + "kilowatt": "kW" + }, + "flood": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "freshrss": { + "subscriptions": "訂閱", + "unread": "未讀" + }, + "fritzbox": { + "connectionStatus": "狀況", + "connectionStatusUnconfigured": "未設置", + "connectionStatusConnecting": "連線中", + "connectionStatusAuthenticating": "驗證中", + "connectionStatusPendingDisconnect": "待辦的斷開", + "connectionStatusDisconnecting": "正在中斷連線", + "connectionStatusDisconnected": "連接已中斷", + "connectionStatusConnected": "Connected", + "uptime": "運行時間", + "maxDown": "最大下載速率", + "maxUp": "最大上傳速率", + "down": "離線", + "up": "在線", + "received": "已接收", + "sent": "已送出", + "externalIPAddress": "外部 IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "上行", + "requests": "目前請求數", + "requests_failed": "失敗請求" + }, + "changedetectionio": { + "totalObserved": "總監測數", + "diffsDetected": "偵測到的變更" + }, + "channelsdvrserver": { + "shows": "節目", + "recordings": "錄影", + "scheduled": "已排定", + "passes": "通行證" + }, + "tautulli": { + "playing": "播放緊", + "transcoding": "轉碼緊", + "bitrate": "比特率", + "no_active": "無任何活動", + "plex_connection_error": "檢查Plex的連接狀態" + }, + "omada": { + "connectedAp": "已連接的存取點", + "activeUser": "在線裝置", + "alerts": "警示", + "connectedGateways": "Connected gateways", + "connectedSwitches": "已連接的交換器" }, "nzbget": { "rate": "速度", "remaining": "剩餘", "downloaded": "下載咗" }, + "plex": { + "streams": "正在播放", + "albums": "專輯", + "movies": "電影", + "tv": "影集" + }, "sabnzbd": { "rate": "速度", "queue": "隊列", @@ -83,34 +199,64 @@ }, "rutorrent": { "active": "激活", - "upload": "上傳", - "download": "下載" + "upload": "上傳速率", + "download": "下載速率" + }, + "transmission": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" }, "qbittorrent": { - "download": "下載速度", - "upload": "上傳速度", - "leech": "下載緊", - "seed": "做種緊" + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "qnap": { + "cpuUsage": "CPU 使用率", + "memUsage": "記憶體使用率", + "systemTempC": "系統溫度", + "poolUsage": "儲存池使用率", + "volumeUsage": "儲存區用量", + "invalid": "無效的" + }, + "deluge": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" }, "sonarr": { "wanted": "想睇", "queued": "排緊隊", - "series": "電視劇", - "queue": "Queue", - "unknown": "Unknown" + "series": "影集", + "queue": "隊列", + "unknown": "未知" }, "radarr": { "wanted": "想睇", + "missing": "缺少", "queued": "排緊隊", "movies": "電影", - "missing": "Missing", - "queue": "Queue", - "unknown": "Unknown" + "queue": "隊列", + "unknown": "未知" }, "lidarr": { "wanted": "想睇", "queued": "排緊隊", - "artists": "Artists" + "artists": "創作者" }, "readarr": { "wanted": "想睇", @@ -127,21 +273,27 @@ "available": "可用" }, "jellyseerr": { - "pending": "提交咗", - "approved": "批准咗", - "available": "可睇嘅總量" + "pending": "待定", + "approved": "批准", + "available": "可用" }, "overseerr": { "pending": "待定", + "processing": "處理中", "approved": "批准", - "available": "可用", - "processing": "Processing" + "available": "可用" + }, + "netalertx": { + "total": "全部", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "查詢", "blocked": "封鎖", - "gravity": "重力", - "blocked_percent": "Blocked %" + "blocked_percent": "已封鎖 %", + "gravity": "重力" }, "adguard": { "queries": "查詢", @@ -152,30 +304,77 @@ "speedtest": { "upload": "上傳速率", "download": "下載速率", - "ping": "Ping值" + "ping": "延遲" }, "portainer": { - "running": "運行緊", + "running": "執行中", "stopped": "暫停", "total": "全部" }, + "suwayomi": { + "download": "下載咗", + "nondownload": "Non-Downloaded", + "read": "已讀", + "unread": "未讀", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "位址", + "expires": "已失效", + "never": "未曾", + "last_seen": "上次連線", + "now": "現在", + "years": "{{number}} 年", + "weeks": "{{number}} 週", + "days": "{{number}} 天", + "hours": "{{number}} 小時", + "minutes": "{{number}} 分鐘", + "seconds": "{{number}} 秒", + "ago": "{{value}} 前" + }, + "technitium": { + "totalQueries": "查詢", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "封鎖", + "totalDropped": "Dropped", + "totalClients": "客戶端" + }, + "tdarr": { + "queue": "隊列", + "processed": "已處理", + "errored": "發生錯誤", + "saved": "已儲存" + }, "traefik": { "routers": "路由器", "services": "服務項", "middleware": "中間件" }, - "coinmarketcap": { - "1day": "1 日", - "configure": "配置一個或多個加密貨幣以進行跟蹤", - "1hour": "1 個鐘", - "7days": "7 日", - "30days": "30日" + "navidrome": { + "nothing_streaming": "無任何活動", + "please_wait": "請稍後" }, "npm": { "enabled": "啟用", "disabled": "停用咗", "total": "全部" }, + "coinmarketcap": { + "configure": "配置一個或多個加密貨幣以進行跟蹤", + "1hour": "1 個鐘", + "1day": "1 日", + "7days": "7 日", + "30days": "30日" + }, "gotify": { "apps": "應用", "clients": "客戶端", @@ -190,7 +389,7 @@ }, "jackett": { "configured": "配置", - "errored": "已錯誤" + "errored": "發生錯誤" }, "strelaysrv": { "numActiveSessions": "會話", @@ -199,471 +398,649 @@ "transferRate": "速度" }, "mastodon": { - "user_count": "用戶", + "user_count": "使用者", "status_count": "職位", "domain_count": "域" }, + "medusa": { + "wanted": "想睇", + "queued": "排緊隊", + "series": "影集" + }, + "minecraft": { + "players": "玩家", + "version": "版本", + "status": "狀況", + "up": "在線", + "down": "離線" + }, + "miniflux": { + "read": "已讀", + "unread": "未讀" + }, "authentik": { - "users": "用戶", + "users": "使用者", "loginsLast24H": "登錄( 24小时)", "failedLoginsLast24H": "登錄失敗( 24鐘頭)" }, "proxmox": { - "mem": "MEM", + "mem": "記憶體", "cpu": "CPU", - "lxc": "LXC", - "vms": "VMs" - }, - "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Days", - "wan": "WAN", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "empty_data": "Subsystem status unknown" - }, - "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows", - "albums": "Albums" + "lxc": "Linux 容器", + "vms": "虛擬機" }, "glances": { "cpu": "CPU", - "wait": "Please wait", - "temp": "TEMP", - "uptime": "UP", - "days": "d", - "hours": "h", - "load": "Load", - "warn": "Warn", - "total": "Total", - "free": "Free", - "used": "Used" - }, - "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" - }, - "wmo": { - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "63-day": "Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail", - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "51-day": "Light Drizzle", - "48-night": "Foggy", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "80-night": "Light Showers", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "80-day": "Light Showers", - "81-day": "Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail" + "load": "負荷", + "wait": "請稍後", + "temp": "溫度", + "_temp": "溫度", + "warn": "警告", + "uptime": "運作時間", + "total": "全部", + "free": "剩餘", + "used": "用咗", + "days": "天", + "hours": "小時", + "crit": "重大的", + "read": "已讀", + "write": "寫入", + "gpu": "GPU", + "mem": "記憶體", + "swap": "交換空間" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL" + "bookmark": "書籤", + "service": "服務", + "search": "搜尋", + "custom": "自訂", + "visit": "造訪", + "url": "網址", + "searchsuggestion": "建議" + }, + "wmo": { + "0-day": "晴天", + "0-night": "晴朗", + "1-day": "晴時多雲", + "1-night": "晴時多雲", + "2-day": "多雲時陰", + "2-night": "多雲時陰", + "3-day": "陰天", + "3-night": "陰天", + "45-day": "有霧", + "45-night": "有霧", + "48-day": "有霧", + "48-night": "有霧", + "51-day": "小毛雨", + "51-night": "小毛雨", + "53-day": "毛雨", + "53-night": "毛雨", + "55-day": "大毛雨", + "55-night": "大毛雨", + "56-day": "小凍毛雨", + "56-night": "小凍毛雨", + "57-day": "凍毛雨", + "57-night": "凍毛雨", + "61-day": "小雨", + "61-night": "小雨", + "63-day": "雨", + "63-night": "雨", + "65-day": "大雨", + "65-night": "大雨", + "66-day": "凍雨", + "66-night": "凍雨", + "67-day": "凍雨", + "67-night": "凍雨", + "71-day": "小雪", + "71-night": "小雪", + "73-day": "雪", + "73-night": "雪", + "75-day": "大雪", + "75-night": "大雪", + "77-day": "雪粒", + "77-night": "雪粒", + "80-day": "微陣雨", + "80-night": "微陣雨", + "81-day": "陣雨", + "81-night": "陣雨", + "82-day": "強陣雨", + "82-night": "強陣雨", + "85-day": "陣雪", + "85-night": "陣雪", + "86-day": "陣雪", + "86-night": "陣雪", + "95-day": "雷雨", + "95-night": "雷雨", + "96-day": "雷雨伴隨冰雹", + "96-night": "雷雨伴隨冰雹", + "99-day": "雷雨伴隨冰雹", + "99-night": "雷雨伴隨冰雹" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", + "available_update": "系統", + "updates": "更新", + "update_available": "有可用的更新", + "up_to_date": "已更新至最新", + "child_bridges": "子網橋", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" - }, - "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" - }, - "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" - }, - "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" - }, - "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" - }, - "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" - }, - "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" - }, - "hdhomerun": { - "channels": "Channels", - "hd": "HD" - }, - "ping": { - "error": "Error", - "ping": "Ping" - }, - "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" - }, - "paperlessngx": { - "inbox": "Inbox", - "total": "Total" - }, - "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" - }, - "miniflux": { - "read": "Read", - "unread": "Unread" - }, - "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" - }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateway": "Connected gateways", - "connectedSwitches": "Connected switches" - }, - "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" - }, - "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" - }, - "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" - }, - "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" - }, - "moonraker": { - "print_progress": "Progress", - "layers": "Layers", - "printer_state": "Printer State", - "print_status": "Print Status" - }, - "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" - }, - "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" - }, - "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" - }, - "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" - }, - "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" - }, - "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" - }, - "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" - }, - "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" - }, - "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" - }, - "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" - }, - "fileflows": { - "queue": "Queue", - "processed": "Processed", - "time": "Time", - "processing": "Processing" - }, - "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" - }, - "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" - }, - "kopia": { - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed", - "status": "Status", - "size": "Size" - }, - "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" + "up": "在線", + "pending": "待定", + "down": "離線" }, "healthchecks": { - "new": "New", - "up": "Online", - "grace": "In Grace Period", - "down": "Offline", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "new": "新建立", + "up": "在線", + "grace": "延緩中", + "down": "離線", + "paused": "擱置中", + "status": "狀況", + "last_ping": "上次檢查", + "never": "尚未檢查" }, - "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" + "watchtower": { + "containers_scanned": "已掃描", + "containers_updated": "已更新", + "containers_failed": "失敗" }, - "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "autobrr": { + "approvedPushes": "批准", + "rejectedPushes": "拒絕", + "filters": "篩選器", + "indexers": "索引" }, - "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "tubearchivist": { + "downloads": "隊列", + "videos": "影片", + "channels": "頻道", + "playlists": "播放清單" }, - "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "truenas": { + "load": "系統負載", + "uptime": "運行時間", + "alerts": "警示" }, - "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "pyload": { + "speed": "速度", + "active": "激活", + "queue": "隊列", + "total": "全部" }, - "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" + "gluetun": { + "public_ip": "公用IP", + "region": "地區", + "country": "國家" }, - "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" + "hdhomerun": { + "channels": "頻道", + "hd": "高畫質", + "tunerCount": "調諧器", + "channelNumber": "頻道", + "channelNetwork": "網絡", + "signalStrength": "強度", + "signalQuality": "品質", + "symbolQuality": "品質", + "networkRate": "比特率", + "clientIP": "用戶端" }, - "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "scrutiny": { + "passed": "通過", + "failed": "失敗", + "unknown": "未知" }, - "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "paperlessngx": { + "inbox": "收件箱", + "total": "全部" }, - "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" + "peanut": { + "battery_charge": "充電", + "ups_load": "後備電負載", + "ups_status": "後備電狀況", + "online": "在線", + "on_battery": "電池供電", + "low_battery": "低電量" }, - "qnap": { - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "nextdns": { + "wait": "請稍後", + "no_devices": "未收到裝置資料" + }, + "mikrotik": { + "cpuLoad": "CPU負載", + "memoryUsed": "已使用的記憶體", + "uptime": "運行時間", + "numberOfLeases": "租約" + }, + "xteve": { + "streams_all": "所有播放活動", + "streams_active": "正在播放", + "streams_xepg": "XEPG頻道" + }, + "opendtu": { + "yieldDay": "今日", + "absolutePower": "功率", + "relativePower": "功率百分比", + "limit": "上限" + }, + "opnsense": { + "cpu": "CPU負載", + "memory": "記憶體", + "wanUpload": "WAN上傳", + "wanDownload": "WAN下載" + }, + "moonraker": { + "printer_state": "列印機狀態", + "print_status": "列印狀態", + "print_progress": "進度", + "layers": "層" + }, + "octoprint": { + "printer_state": "狀況", + "temp_tool": "噴頭溫度", + "temp_bed": "平台溫度", + "job_completion": "完成度" + }, + "cloudflared": { + "origin_ip": "源頭IP", + "status": "狀況" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" + "load": "平均負載量", + "memory": "記憶體使用率", + "wanStatus": "網際網路狀態", + "up": "在線", + "down": "離線", + "temp": "溫度", + "disk": "硬碟使用率", + "wanIP": "網際網路 IP" }, - "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "proxmoxbackupserver": { + "datastore_usage": "數據存儲", + "failed_tasks_24h": "24小時內失敗任務", + "cpu_usage": "CPU", + "memory_usage": "記憶體" }, - "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "watt_hour": "Wh" + "immich": { + "users": "使用者", + "photos": "照片", + "videos": "影片", + "storage": "儲存空間" }, - "pialert": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "uptimekuma": { + "up": "在線網站", + "down": "離線網站", + "uptime": "運行時間", + "incident": "事件", + "m": "分" + }, + "atsumeru": { + "series": "影集", + "archives": "檔案", + "chapters": "章節", + "categories": "類別" + }, + "komga": { + "libraries": "文庫", + "series": "影集", + "books": "書" + }, + "diskstation": { + "days": "天", + "uptime": "運行時間", + "volumeAvailable": "可用" + }, + "mylar": { + "series": "影集", + "issues": "出版", + "wanted": "想睇" + }, + "photoprism": { + "albums": "專輯", + "photos": "照片", + "videos": "影片", + "people": "人物" + }, + "fileflows": { + "queue": "隊列", + "processing": "處理中", + "processed": "已處理", + "time": "時間" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "控制面板", + "datasources": "數據來源", + "totalalerts": "警報總數", + "alertstriggered": "觸發的警報" + }, + "nextcloud": { + "cpuload": "處理器負載", + "memoryusage": "記憶體用量", + "freespace": "可用空間", + "activeusers": "活躍用戶", + "numfiles": "檔案", + "numshares": "已分享" + }, + "kopia": { + "status": "狀況", + "size": "檔案大小", + "lastrun": "上次執行", + "nextrun": "下次執行", + "failed": "失敗" + }, + "unmanic": { + "active_workers": "在線工作程序", + "total_workers": "總工作程序", + "records_total": "佇列長度" + }, + "pterodactyl": { + "servers": "伺服器", + "nodes": "節點" + }, + "prometheus": { + "targets_up": "目標上線", + "targets_down": "目標離線", + "targets_total": "目標總數" + }, + "gatus": { + "up": "在線網站", + "down": "離線網站", + "uptime": "運行時間" + }, + "ghostfolio": { + "gross_percent_today": "今日", + "gross_percent_1y": "一年", + "gross_percent_max": "所有時間" + }, + "audiobookshelf": { + "podcasts": "播客", + "books": "書", + "podcastsDuration": "歷時", + "booksDuration": "歷時" + }, + "homeassistant": { + "people_home": "在家人數", + "lights_on": "燈亮著", + "switches_on": "開關開著" + }, + "whatsupdocker": { + "monitoring": "監測中", + "updates": "更新" + }, + "calibreweb": { + "books": "書", + "authors": "作者", + "categories": "類別", + "series": "影集" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "隊列", + "downloadBytesRemaining": "剩餘", + "downloadTotalBytes": "檔案大小", + "downloadSpeed": "速度" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "影集", + "totalFiles": "檔案" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "結果", + "status": "狀況", + "buildId": "組建編號", + "succeeded": "成功", + "notStarted": "尚未啟用", + "failed": "失敗", + "canceled": "取消", + "inProgress": "執行中", + "totalPrs": "總提取要求", + "myPrs": "我的提取要求", + "approved": "批准" + }, + "gamedig": { + "status": "狀況", + "online": "在線", + "offline": "離線", + "name": "名稱", + "map": "地圖", + "currentPlayers": "當前玩家數", + "players": "玩家", + "maxPlayers": "玩家數上限", + "bots": "機器人", + "ping": "延遲" + }, + "urbackup": { + "ok": "確定", + "errored": "錯誤", + "noRecent": "已過時", + "totalUsed": "已使用空間" + }, + "mealie": { + "recipes": "食譜", + "users": "使用者", + "categories": "類別", + "tags": "標籤" + }, + "openmediavault": { + "downloading": "下載中", + "total": "全部", + "running": "執行中", + "stopped": "暫停", + "passed": "通過", + "failed": "失敗" + }, + "openwrt": { + "uptime": "運行時間", + "cpuLoad": "處理器平均負載(5分鐘)", + "up": "在線", + "down": "離線", + "bytesTx": "已傳送", + "bytesRx": "已接收" + }, + "uptimerobot": { + "status": "狀況", + "uptime": "運行時間", + "lastDown": "近一次停機時間", + "downDuration": "歷時停機時間", + "sitesUp": "在線網站", + "sitesDown": "離線網站", + "paused": "擱置中", + "notyetchecked": "尚未檢查", + "up": "在線", + "seemsdown": "似乎離線", + "down": "離線", + "unknown": "未知" + }, + "calendar": { + "inCinemas": "上映中", + "physicalRelease": "實體發行", + "digitalRelease": "數位發行", + "noEventsToday": "今日無事件", + "noEventsFound": "未找到事件" + }, + "romm": { + "platforms": "平台", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "域", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "儲存空間" + }, + "netdata": { + "warnings": "警告", + "criticals": "嚴重" + }, + "plantit": { + "events": "事件", + "plants": "植物", + "photos": "照片", + "species": "物種" + }, + "gitea": { + "notifications": "信息", + "issues": "出版", + "pulls": "提取請求", + "repositories": "Repositories" + }, + "stash": { + "scenes": "場景", + "scenesPlayed": "已播放場景", + "playCount": "合共播放", + "playDuration": "觀看時數", + "sceneSize": "場景大小", + "sceneDuration": "場景為期", + "images": "圖片", + "imageSize": "圖像大小", + "galleries": "畫廊", + "performers": "表演者", + "studios": "工作室", + "movies": "電影", + "tags": "標籤", + "oCount": "0 個" + }, + "tandoor": { + "users": "使用者", + "recipes": "食譜", + "keywords": "關鍵字" + }, + "homebox": { + "items": "項目", + "totalWithWarranty": "有保証", + "locations": "位置", + "labels": "標籤", + "users": "使用者", + "totalValue": "總共" + }, + "crowdsec": { + "alerts": "警示", + "bans": "禁止" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "啟用", + "disabled": "停用咗", + "total": "全部" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "延遲", + "download": "下載速率", + "upload": "上傳速率" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "運行時間", + "version": "版本" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "標籤" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "資訊", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "名稱", + "address": "位址", + "last_seen": "上次連線", + "status": "狀況", + "online": "在線", + "offline": "離線" + }, + "beszel": { + "name": "名稱", + "systems": "Systems", + "up": "在線", + "down": "離線", + "paused": "擱置中", + "pending": "待定", + "status": "狀況", + "updated": "已更新", + "cpu": "CPU", + "memory": "記憶體", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "健康", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "缺少", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "出版", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "狀況", + "load": "負荷", + "bcharge": "充電", + "timeleft": "用時" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "標籤" + }, + "slskd": { + "slskStatus": "網絡", + "connected": "Connected", + "disconnected": "連接已中斷", + "updateStatus": "Update", + "update_yes": "可用", + "update_no": "已更新至最新", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "檔案" } } diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index 448893aa..d9ab4c62 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -248,7 +248,14 @@ "warn": "Warn", "total": "Total", "free": "Free", - "used": "Used" + "used": "Used", + "crit": "Crit", + "read": "Read", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap", + "_temp": "Temp" }, "changedetectionio": { "totalObserved": "观察到的总数", @@ -375,7 +382,9 @@ }, "ping": { "error": "错误", - "ping": "Ping" + "ping": "Ping", + "up": "Up", + "down": "Down" }, "scrutiny": { "passed": "通过", @@ -653,17 +662,89 @@ "downloadTotalBytes": "Size" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "系列", + "totalFiles": "文件" }, - "azurePipelines": { + "gamedig": { + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "Players", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping", + "status": "Status", + "online": "Online", + "offline": "Offline" + }, + "azuredevops": { + "canceled": "Canceled", + "inProgress": "In Progress", "result": "Result", "status": "Status", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "Approved" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "Total", + "running": "Running", + "stopped": "Stopped", + "passed": "Passed", + "failed": "Failed" + }, + "mealie": { + "recipes": "Recipes", + "users": "Users", + "categories": "Categories", + "tags": "Tags" + }, + "atsumeru": { + "series": "Series", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "calibreweb": { + "books": "书籍", + "authors": "作者", + "categories": "分类", + "series": "丛书" + }, + "uptimerobot": { + "status": "Status", + "uptime": "Uptime", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "Sites Up", + "sitesDown": "Sites Down", + "paused": "Paused", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "Unknown" + }, + "opendtu": { + "relativePower": "Power %", + "yieldDay": "Today", + "limit": "Limit", + "absolutePower": "Power" + }, + "calendar": { + "physicalRelease": "Physical release", + "inCinemas": "In cinemas", + "digitalRelease": "Digital release" } } diff --git a/public/locales/zh-Hans/common.json b/public/locales/zh-Hans/common.json new file mode 100644 index 00000000..064e2c1c --- /dev/null +++ b/public/locales/zh-Hans/common.json @@ -0,0 +1,1046 @@ +{ + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "月", + "days": "日", + "hours": "时", + "minutes": "分", + "seconds": "秒" + }, + "widget": { + "missing_type": "缺失的组件类型: {{type}}", + "api_error": "API 错误", + "information": "信息", + "status": "状态", + "url": "URL", + "raw_error": "原始信息错误", + "response_data": "响应数据" + }, + "weather": { + "current": "当前位置", + "allow": "点击以允许", + "updating": "更新中", + "wait": "请稍候" + }, + "search": { + "placeholder": "搜索…" + }, + "resources": { + "cpu": "CPU", + "mem": "内存", + "total": "总计", + "free": "空闲", + "used": "已使用", + "load": "负载", + "temp": "温度", + "max": "最大", + "uptime": "运行时间" + }, + "unifi": { + "users": "用户", + "uptime": "运行时间", + "days": "天", + "wan": "WAN", + "lan": "局域网", + "wlan": "无线局域网", + "devices": "设备", + "lan_devices": "LAN 设备", + "wlan_devices": "无线局域网设备", + "lan_users": "局域网用户", + "wlan_users": "无线局域网用户", + "up": "运行时间", + "down": "离线", + "wait": "请稍候", + "empty_data": "子系统状态未知" + }, + "docker": { + "rx": "接收", + "tx": "发送", + "mem": "内存", + "cpu": "CPU", + "running": "运行中", + "offline": "离线", + "error": "错误", + "unknown": "未知", + "healthy": "健康", + "starting": "启动中", + "unhealthy": "不健康", + "not_found": "未找到", + "exited": "已退出", + "partial": "部分" + }, + "ping": { + "error": "错误", + "ping": "Ping", + "down": "Down", + "up": "Up", + "not_available": "不可用" + }, + "siteMonitor": { + "http_status": "HTTP 状态", + "error": "错误", + "response": "响应", + "down": "Down", + "up": "Up", + "not_available": "不可用" + }, + "emby": { + "playing": "播放中", + "transcoding": "转码", + "bitrate": "比特率", + "no_active": "暂无播放", + "movies": "电影", + "series": "系列", + "episodes": "剧集", + "songs": "歌曲" + }, + "esphome": { + "offline": "离线", + "offline_alt": "离线", + "online": "在线的", + "total": "总计", + "unknown": "未知" + }, + "evcc": { + "pv_power": "正式环境", + "battery_soc": "Battery", + "grid_power": "Grid", + "home_power": "Consumption", + "charge_power": "Charger", + "kilowatt": "kW" + }, + "flood": { + "download": "下载", + "upload": "上传速率", + "leech": "下载中", + "seed": "做种" + }, + "freshrss": { + "subscriptions": "订阅", + "unread": "未读" + }, + "fritzbox": { + "connectionStatus": "状态", + "connectionStatusUnconfigured": "未配置", + "connectionStatusConnecting": "连接中", + "connectionStatusAuthenticating": "认证中", + "connectionStatusPendingDisconnect": "等待断开连接", + "connectionStatusDisconnecting": "正在断开连接", + "connectionStatusDisconnected": "未连接", + "connectionStatusConnected": "已连接", + "uptime": "运行时间", + "maxDown": "最大下载速度", + "maxUp": "", + "down": "Down", + "up": "Up", + "received": "已接收", + "sent": "已发送", + "externalIPAddress": "外部IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "上游", + "requests": "当前请求", + "requests_failed": "失败请求" + }, + "changedetectionio": { + "totalObserved": "观察到的总数", + "diffsDetected": "检测到差异" + }, + "channelsdvrserver": { + "shows": "节目", + "recordings": "录像", + "scheduled": "已计划的", + "passes": "通行证" + }, + "tautulli": { + "playing": "播放中", + "transcoding": "转码", + "bitrate": "比特率", + "no_active": "暂无播放", + "plex_connection_error": "Check Plex Connection" + }, + "omada": { + "connectedAp": "连接中的AP", + "activeUser": "活跃设备", + "alerts": "警报", + "connectedGateways": "Connected gateways", + "connectedSwitches": "已连接开关" + }, + "nzbget": { + "rate": "速率", + "remaining": "剩余", + "downloaded": "下载" + }, + "plex": { + "streams": "活动流", + "albums": "专辑", + "movies": "电影", + "tv": "电视节目" + }, + "sabnzbd": { + "rate": "速率", + "queue": "队列", + "timeleft": "剩余时间" + }, + "rutorrent": { + "active": "活动中", + "upload": "上传速率", + "download": "下载" + }, + "transmission": { + "download": "下载", + "upload": "上传速率", + "leech": "下载中", + "seed": "做种" + }, + "qbittorrent": { + "download": "下载", + "upload": "上传速率", + "leech": "下载中", + "seed": "做种" + }, + "qnap": { + "cpuUsage": "处理器", + "memUsage": "内存", + "systemTempC": "系统温度", + "poolUsage": "存储池", + "volumeUsage": "Volume Usage", + "invalid": "Invalid" + }, + "deluge": { + "download": "下载", + "upload": "上传速率", + "leech": "下载中", + "seed": "做种" + }, + "develancacheui": { + "cachehitbytes": "缓存命中字节", + "cachemissbytes": "缓存Bytes失败" + }, + "downloadstation": { + "download": "下载", + "upload": "上传速率", + "leech": "下载中", + "seed": "做种" + }, + "sonarr": { + "wanted": "想看", + "queued": "排队", + "series": "系列", + "queue": "队列", + "unknown": "未知" + }, + "radarr": { + "wanted": "想看", + "missing": "丢失", + "queued": "排队", + "movies": "电影", + "queue": "队列", + "unknown": "未知" + }, + "lidarr": { + "wanted": "想看", + "queued": "排队", + "artists": "Artists" + }, + "readarr": { + "wanted": "想看", + "queued": "排队", + "books": "书籍" + }, + "bazarr": { + "missingEpisodes": "缺少的剧集", + "missingMovies": "缺少的电影" + }, + "ombi": { + "pending": "待办的", + "approved": "已批准", + "available": "可用" + }, + "jellyseerr": { + "pending": "待办的", + "approved": "已批准", + "available": "可用" + }, + "overseerr": { + "pending": "待办的", + "processing": "处理中", + "approved": "已批准", + "available": "可用" + }, + "netalertx": { + "total": "总计", + "connected": "已连接", + "new_devices": "新设备", + "down_alerts": "离线警报" + }, + "pihole": { + "queries": "查询", + "blocked": "阻止", + "blocked_percent": "拦截 %", + "gravity": "屏蔽列表" + }, + "adguard": { + "queries": "查询", + "blocked": "阻止", + "filtered": "过滤", + "latency": "延迟" + }, + "speedtest": { + "upload": "上传速率", + "download": "下载", + "ping": "Ping" + }, + "portainer": { + "running": "运行中", + "stopped": "停止", + "total": "总计" + }, + "suwayomi": { + "download": "下载", + "nondownload": "未下载", + "read": "已读", + "unread": "未读", + "downloadedread": "已下载 & 已读", + "downloadedunread": "已下载 & 未读", + "nondownloadedread": "未下载 & 已读", + "nondownloadedunread": "未下载 & 未读" + }, + "tailscale": { + "address": "地址", + "expires": "失效", + "never": "从不", + "last_seen": "最后上线", + "now": "现在", + "years": "{{number}}年", + "weeks": "{{number}}周", + "days": "{{number}}d", + "hours": "{{number}}h", + "minutes": "{{number}}m", + "seconds": "{{number}}s", + "ago": "{{value}} 以前" + }, + "technitium": { + "totalQueries": "查询", + "totalNoError": "成功", + "totalServerFailure": "失败", + "totalNxDomain": "域", + "totalRefused": "已拒绝", + "totalAuthoritative": "权威", + "totalRecursive": "递归", + "totalCached": "缓存", + "totalBlocked": "阻止", + "totalDropped": "丢弃", + "totalClients": "客户端" + }, + "tdarr": { + "queue": "队列", + "processed": "已处理", + "errored": "出错", + "saved": "已保存" + }, + "traefik": { + "routers": "路由器", + "services": "服务", + "middleware": "中间件" + }, + "navidrome": { + "nothing_streaming": "暂无播放", + "please_wait": "请等待" + }, + "npm": { + "enabled": "已启用", + "disabled": "禁用", + "total": "总计" + }, + "coinmarketcap": { + "configure": "配置一个或多个需要追踪的加密", + "1hour": "1小时", + "1day": "1天", + "7days": "7天", + "30days": "30天" + }, + "gotify": { + "apps": "应用", + "clients": "客户端", + "messages": "信息" + }, + "prowlarr": { + "enableIndexers": "索引器", + "numberOfGrabs": "抓取", + "numberOfQueries": "查询", + "numberOfFailGrabs": "抓取失败", + "numberOfFailQueries": "查询失败" + }, + "jackett": { + "configured": "已配置", + "errored": "出错" + }, + "strelaysrv": { + "numActiveSessions": "会话", + "numConnections": "连接", + "dataRelayed": "中继", + "transferRate": "速率" + }, + "mastodon": { + "user_count": "用户", + "status_count": "帖子", + "domain_count": "域" + }, + "medusa": { + "wanted": "想看", + "queued": "排队", + "series": "系列" + }, + "minecraft": { + "players": "玩家", + "version": "版本", + "status": "状态", + "up": "在线的", + "down": "离线" + }, + "miniflux": { + "read": "已读", + "unread": "未读" + }, + "authentik": { + "users": "用户", + "loginsLast24H": "登录 (24h)", + "failedLoginsLast24H": "登录失败 (24h)" + }, + "proxmox": { + "mem": "内存", + "cpu": "CPU", + "lxc": "容器", + "vms": "虚拟机" + }, + "glances": { + "cpu": "CPU", + "load": "负载", + "wait": "请稍候", + "temp": "温度", + "_temp": "Temp", + "warn": "Warn", + "uptime": "运行时间", + "total": "总计", + "free": "空闲", + "used": "已使用", + "days": "日", + "hours": "时", + "crit": "Crit", + "read": "已读", + "write": "Write", + "gpu": "GPU", + "mem": "Mem", + "swap": "Swap" + }, + "quicklaunch": { + "bookmark": "书签", + "service": "服务", + "search": "搜索", + "custom": "自定", + "visit": "访问", + "url": "URL", + "searchsuggestion": "建议" + }, + "wmo": { + "0-day": "晴天", + "0-night": "晴朗", + "1-day": "主要是晴天", + "1-night": "大部晴朗", + "2-day": "多云", + "2-night": "多云", + "3-day": "阴天", + "3-night": "阴天", + "45-day": "有雾", + "45-night": "有雾", + "48-day": "有雾", + "48-night": "有雾", + "51-day": "小雨", + "51-night": "小雨", + "53-day": "小雨", + "53-night": "小雨", + "55-day": "毛毛雨", + "55-night": "毛毛雨", + "56-day": "小冻毛雨", + "56-night": "小冻毛雨", + "57-day": "冻毛雨", + "57-night": "冻毛雨", + "61-day": "小雨", + "61-night": "小雨", + "63-day": "雨", + "63-night": "雨", + "65-day": "大雨", + "65-night": "大雨", + "66-day": "冻雨", + "66-night": "冻雨", + "67-day": "冻雨", + "67-night": "冻雨", + "71-day": "小雪", + "71-night": "小雪", + "73-day": "中雪", + "73-night": "中雪", + "75-day": "大雪", + "75-night": "大雪", + "77-day": "雪粒", + "77-night": "雪粒", + "80-day": "微阵雨", + "80-night": "微阵雨", + "81-day": "阵雨", + "81-night": "阵雨", + "82-day": "强阵雨", + "82-night": "强阵雨", + "85-day": "阵雪", + "85-night": "阵雪", + "86-day": "阵雪", + "86-night": "阵雪", + "95-day": "雷雨", + "95-night": "雷雨", + "96-day": "雷雨伴随冰雹", + "96-night": "雷雨伴随冰雹", + "99-day": "雷雨伴随冰雹", + "99-night": "雷雨伴随冰雹" + }, + "homebridge": { + "available_update": "System", + "updates": "更新", + "update_available": "有可用的更新", + "up_to_date": "Up to Date", + "child_bridges": "子网桥", + "child_bridges_status": "{{ok}}/{{total}}", + "up": "Up", + "pending": "待办的", + "down": "Down" + }, + "healthchecks": { + "new": "新建立", + "up": "Up", + "grace": "延缓中", + "down": "Down", + "paused": "暂停", + "status": "状态", + "last_ping": "上次检查", + "never": "尚未检查" + }, + "watchtower": { + "containers_scanned": "已扫描", + "containers_updated": "已升级", + "containers_failed": "失败" + }, + "autobrr": { + "approvedPushes": "已批准", + "rejectedPushes": "拒绝", + "filters": "Filters", + "indexers": "索引器" + }, + "tubearchivist": { + "downloads": "队列", + "videos": "影片", + "channels": "频道", + "playlists": "播放清单" + }, + "truenas": { + "load": "系统负载", + "uptime": "运行时间", + "alerts": "警报" + }, + "pyload": { + "speed": "速度", + "active": "活动中", + "queue": "队列", + "total": "总计" + }, + "gluetun": { + "public_ip": "公网 IP", + "region": "区域", + "country": "国家" + }, + "hdhomerun": { + "channels": "频道", + "hd": "HD", + "tunerCount": "电台数", + "channelNumber": "频道数", + "channelNetwork": "网络", + "signalStrength": "强度", + "signalQuality": "质量", + "symbolQuality": "质量", + "networkRate": "比特率", + "clientIP": "客户端" + }, + "scrutiny": { + "passed": "通过", + "failed": "失败", + "unknown": "未知" + }, + "paperlessngx": { + "inbox": "收件箱", + "total": "总计" + }, + "peanut": { + "battery_charge": "充电中", + "ups_load": "UPS 负载", + "ups_status": "UPS 状态", + "online": "在线的", + "on_battery": "电池供电", + "low_battery": "电量低" + }, + "nextdns": { + "wait": "请等待", + "no_devices": "没有接收到设备数据" + }, + "mikrotik": { + "cpuLoad": "处理器", + "memoryUsed": "内存", + "uptime": "运行时间", + "numberOfLeases": "租约" + }, + "xteve": { + "streams_all": "所有播放活动", + "streams_active": "活动流", + "streams_xepg": "XEPG 频道" + }, + "opendtu": { + "yieldDay": "Today", + "absolutePower": "Power", + "relativePower": "Power %", + "limit": "Limit" + }, + "opnsense": { + "cpu": "处理器", + "memory": "内存", + "wanUpload": "WAN上传", + "wanDownload": "WAN下载" + }, + "moonraker": { + "printer_state": "打印机状态", + "print_status": "打印状态", + "print_progress": "打印进程", + "layers": "层" + }, + "octoprint": { + "printer_state": "状态", + "temp_tool": "喷头温度", + "temp_bed": "平台温度", + "job_completion": "完成度" + }, + "cloudflared": { + "origin_ip": "源IP", + "status": "状态" + }, + "pfsense": { + "load": "平均负载", + "memory": "内存", + "wanStatus": "WAN 状态", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "磁盘", + "wanIP": "WAN IP" + }, + "proxmoxbackupserver": { + "datastore_usage": "数据存储", + "failed_tasks_24h": "24h失败任务", + "cpu_usage": "CPU", + "memory_usage": "内存" + }, + "immich": { + "users": "用户", + "photos": "照片", + "videos": "影片", + "storage": "储存空间" + }, + "uptimekuma": { + "up": "在线网站", + "down": "离线网站", + "uptime": "运行时间", + "incident": "严重事件", + "m": "分" + }, + "atsumeru": { + "series": "系列", + "archives": "Archives", + "chapters": "Chapters", + "categories": "Categories" + }, + "komga": { + "libraries": "书库", + "series": "系列", + "books": "书籍" + }, + "diskstation": { + "days": "天", + "uptime": "运行时间", + "volumeAvailable": "可用" + }, + "mylar": { + "series": "系列", + "issues": "问题", + "wanted": "想看" + }, + "photoprism": { + "albums": "专辑", + "photos": "照片", + "videos": "影片", + "people": "人物" + }, + "fileflows": { + "queue": "队列", + "processing": "处理中", + "processed": "已处理", + "time": "时间" + }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, + "grafana": { + "dashboards": "控制面板", + "datasources": "数据来源", + "totalalerts": "警报总数", + "alertstriggered": "触发的警报" + }, + "nextcloud": { + "cpuload": "CPU 负载", + "memoryusage": "内存", + "freespace": "剩余空间", + "activeusers": "活跃用户", + "numfiles": "Files", + "numshares": "共享项目" + }, + "kopia": { + "status": "状态", + "size": "大小", + "lastrun": "最后运行", + "nextrun": "下次运行", + "failed": "失败" + }, + "unmanic": { + "active_workers": "在线工作节点", + "total_workers": "工作节点总数", + "records_total": "队列长度" + }, + "pterodactyl": { + "servers": "服务器", + "nodes": "节点" + }, + "prometheus": { + "targets_up": "目标上线", + "targets_down": "目标离线", + "targets_total": "总目标" + }, + "gatus": { + "up": "在线网站", + "down": "离线网站", + "uptime": "运行时间" + }, + "ghostfolio": { + "gross_percent_today": "Today", + "gross_percent_1y": "一年", + "gross_percent_max": "所有时间" + }, + "audiobookshelf": { + "podcasts": "播客", + "books": "书籍", + "podcastsDuration": "持续时间", + "booksDuration": "持续时间" + }, + "homeassistant": { + "people_home": "房间", + "lights_on": "照明开", + "switches_on": "开关开" + }, + "whatsupdocker": { + "monitoring": "监测中", + "updates": "更新" + }, + "calibreweb": { + "books": "书籍", + "authors": "作者", + "categories": "Categories", + "series": "系列" + }, + "jdownloader": { + "downloadCount": "队列", + "downloadBytesRemaining": "剩余", + "downloadTotalBytes": "大小", + "downloadSpeed": "速度" + }, + "kavita": { + "seriesCount": "系列", + "totalFiles": "Files" + }, + "azuredevops": { + "result": "Result", + "status": "状态", + "buildId": "Build ID", + "succeeded": "Succeeded", + "notStarted": "Not Started", + "failed": "失败", + "canceled": "Canceled", + "inProgress": "In Progress", + "totalPrs": "Total PRs", + "myPrs": "My PRs", + "approved": "已批准" + }, + "gamedig": { + "status": "状态", + "online": "在线的", + "offline": "离线", + "name": "Name", + "map": "Map", + "currentPlayers": "Current players", + "players": "玩家", + "maxPlayers": "Max players", + "bots": "Bots", + "ping": "Ping" + }, + "urbackup": { + "ok": "Ok", + "errored": "Errors", + "noRecent": "Out of Date", + "totalUsed": "Used Storage" + }, + "mealie": { + "recipes": "Recipes", + "users": "用户", + "categories": "Categories", + "tags": "Tags" + }, + "openmediavault": { + "downloading": "Downloading", + "total": "总计", + "running": "运行中", + "stopped": "停止", + "passed": "通过", + "failed": "失败" + }, + "openwrt": { + "uptime": "运行时间", + "cpuLoad": "CPU 负载平均值(5m)", + "up": "Up", + "down": "Down", + "bytesTx": "已传输", + "bytesRx": "已接收" + }, + "uptimerobot": { + "status": "状态", + "uptime": "运行时间", + "lastDown": "Last Downtime", + "downDuration": "Downtime Duration", + "sitesUp": "在线网站", + "sitesDown": "离线网站", + "paused": "暂停", + "notyetchecked": "Not Yet Checked", + "up": "Up", + "seemsdown": "Seems Down", + "down": "Down", + "unknown": "未知" + }, + "calendar": { + "inCinemas": "In cinemas", + "physicalRelease": "Physical release", + "digitalRelease": "Digital release", + "noEventsToday": "今天没有活动!", + "noEventsFound": "未找到事件" + }, + "romm": { + "platforms": "平台", + "totalRoms": "游戏数", + "saves": "已保存", + "states": "状态", + "screenshots": "屏幕截图", + "totalfilesize": "总大小" + }, + "mailcow": { + "domains": "域", + "mailboxes": "邮箱", + "mails": "邮件", + "storage": "储存空间" + }, + "netdata": { + "warnings": "警告", + "criticals": "严重" + }, + "plantit": { + "events": "事件", + "plants": "植物", + "photos": "照片", + "species": "物种" + }, + "gitea": { + "notifications": "通知", + "issues": "问题", + "pulls": "PR", + "repositories": "Repositories" + }, + "stash": { + "scenes": "场景", + "scenesPlayed": "已播放场景", + "playCount": "播放总数", + "playDuration": "播放时间", + "sceneSize": "场景大小", + "sceneDuration": "场景时长", + "images": "图片", + "imageSize": "图像大小", + "galleries": "图库", + "performers": "演员", + "studios": "工作室", + "movies": "电影", + "tags": "Tags", + "oCount": "O 个" + }, + "tandoor": { + "users": "用户", + "recipes": "Recipes", + "keywords": "关键词" + }, + "homebox": { + "items": "条目", + "totalWithWarranty": "有保证", + "locations": "位置", + "labels": "标签", + "users": "用户", + "totalValue": "总计" + }, + "crowdsec": { + "alerts": "警报", + "bans": "禁用" + }, + "wgeasy": { + "connected": "已连接", + "enabled": "已启用", + "disabled": "禁用", + "total": "总计" + }, + "swagdashboard": { + "proxied": "已代理", + "auth": "使用认证", + "outdated": "已过期", + "banned": "已禁止" + }, + "myspeed": { + "ping": "Ping", + "download": "下载", + "upload": "上传速率" + }, + "stocks": { + "stocks": "库存", + "loading": "正在加载", + "open": "打開-美国商店", + "closed": "关闭-美国市场", + "invalidConfiguration": "无效配置" + }, + "frigate": { + "cameras": "摄像头", + "uptime": "运行时间", + "version": "版本" + }, + "linkwarden": { + "links": "链接", + "collections": "收藏", + "tags": "Tags" + }, + "zabbix": { + "unclassified": "未分类", + "information": "信息", + "warning": "警告", + "average": "平均红包", + "high": "高", + "disaster": "灾难" + }, + "lubelogger": { + "vehicle": "载具", + "vehicles": "交通工具", + "serviceRecords": "保养记录", + "reminders": "提示", + "nextReminder": "下次提醒", + "none": "空" + }, + "vikunja": { + "projects": "积极的项目", + "tasks7d": "本周到期的任务", + "tasksOverdue": "过期的任务", + "tasksInProgress": "正在处理的任务" + }, + "headscale": { + "name": "Name", + "address": "地址", + "last_seen": "最后上线", + "status": "状态", + "online": "在线的", + "offline": "离线" + }, + "beszel": { + "name": "Name", + "systems": "系统", + "up": "Up", + "down": "Down", + "paused": "暂停", + "pending": "待办的", + "status": "状态", + "updated": "已升级", + "cpu": "CPU", + "memory": "内存", + "disk": "磁盘", + "network": "网络" + }, + "argocd": { + "apps": "应用程序", + "synced": "已同步", + "outOfSync": "未同步", + "healthy": "健康", + "degraded": "已降级", + "progressing": "进行中", + "missing": "丢失", + "suspended": "已停用" + }, + "spoolman": { + "loading": "正在加载" + }, + "gitlab": { + "groups": "群组", + "issues": "问题", + "merges": "合并请求", + "projects": "项目" + }, + "apcups": { + "status": "状态", + "load": "负载", + "bcharge": "充电中", + "timeleft": "剩余时间" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "Tags" + }, + "slskd": { + "slskStatus": "网络", + "connected": "已连接", + "disconnected": "未连接", + "updateStatus": "Update", + "update_yes": "可用", + "update_no": "Up to Date", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "Files" + } +} diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index 2f9d8622..eb1f7423 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -1,9 +1,30 @@ { + "common": { + "bytes": "{{value, bytes}}", + "bits": "{{value, bytes(bits: true)}}", + "bbytes": "{{value, bytes(binary: true)}}", + "bbits": "{{value, bytes(bits: true; binary: true)}}", + "byterate": "{{value, rate(bits: false)}}", + "bibyterate": "{{value, rate(bits: false; binary: true)}}", + "bitrate": "{{value, rate(bits: true)}}", + "bibitrate": "{{value, rate(bits: true; binary: true)}}", + "percent": "{{value, percent}}", + "number": "{{value, number}}", + "ms": "{{value, number}}", + "date": "{{value, date}}", + "relativeDate": "{{value, relativeDate}}", + "duration": "{{value, duration}}", + "months": "月", + "days": "天", + "hours": "小時", + "minutes": "分", + "seconds": "秒" + }, "widget": { "missing_type": "遺失小工具的類型: {{type}}", "api_error": "API 錯誤", - "status": "狀態", "information": "資訊", + "status": "狀態", "url": "網址", "raw_error": "原始錯誤", "response_data": "回應資料" @@ -11,24 +32,70 @@ "weather": { "current": "目前位置", "allow": "點擊以允許", - "updating": "更新中", - "wait": "請稍後" + "updating": "正在更新", + "wait": "請稍候" + }, + "search": { + "placeholder": "搜尋…" + }, + "resources": { + "cpu": "CPU", + "mem": "記憶體", + "total": "全部", + "free": "剩餘", + "used": "已使用", + "load": "負載", + "temp": "溫度", + "max": "最大", + "uptime": "運作時間" + }, + "unifi": { + "users": "用戶", + "uptime": "運行時間", + "days": "天", + "wan": "WAN", + "lan": "區域網路", + "wlan": "無線區域網路", + "devices": "設備", + "lan_devices": "有線設備", + "wlan_devices": "無線設備", + "lan_users": "有線使用者", + "wlan_users": "無線使用者", + "up": "運作時間", + "down": "離線", + "wait": "請稍候", + "empty_data": "子系統狀態未知" }, "docker": { "rx": "接收", - "offline": "離線", "tx": "發送", "mem": "記憶體", - "cpu": "處理器", + "cpu": "CPU", + "running": "執行中", + "offline": "離線", "error": "錯誤", "unknown": "未知", - "running": "執行中", + "healthy": "健康", "starting": "啟動中", "unhealthy": "不健康的", "not_found": "未找到", "exited": "已退出", - "partial": "部分", - "healthy": "健康" + "partial": "部分" + }, + "ping": { + "error": "錯誤", + "ping": "延遲", + "down": "離線", + "up": "在線", + "not_available": "不可用" + }, + "siteMonitor": { + "http_status": "HTTP 狀態", + "error": "錯誤", + "response": "回應", + "down": "離線", + "up": "在線", + "not_available": "不可用" }, "emby": { "playing": "正在播放", @@ -40,41 +107,91 @@ "episodes": "集", "songs": "曲目" }, + "esphome": { + "offline": "離線", + "offline_alt": "離線", + "online": "在線", + "total": "全部", + "unknown": "未知" + }, + "evcc": { + "pv_power": "正式環境", + "battery_soc": "電池", + "grid_power": "電網", + "home_power": "電源使用率", + "charge_power": "充電", + "kilowatt": "kW" + }, + "flood": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "freshrss": { + "subscriptions": "訂閱", + "unread": "未讀" + }, + "fritzbox": { + "connectionStatus": "狀態", + "connectionStatusUnconfigured": "未設置", + "connectionStatusConnecting": "連線中", + "connectionStatusAuthenticating": "驗證中", + "connectionStatusPendingDisconnect": "待辦的斷開", + "connectionStatusDisconnecting": "正在中斷連線", + "connectionStatusDisconnected": "連接已中斷", + "connectionStatusConnected": "Connected", + "uptime": "運行時間", + "maxDown": "最大下載速率", + "maxUp": "最大上傳速率", + "down": "離線", + "up": "在線", + "received": "已接收", + "sent": "已送出", + "externalIPAddress": "外部 IP", + "externalIPv6Address": "Ext. IPv6", + "externalIPv6Prefix": "Ext. IPv6-Prefix" + }, + "caddy": { + "upstreams": "上行", + "requests": "目前請求數", + "requests_failed": "失敗請求" + }, + "changedetectionio": { + "totalObserved": "總監測數", + "diffsDetected": "偵測到的變更" + }, + "channelsdvrserver": { + "shows": "節目", + "recordings": "錄影", + "scheduled": "已排定", + "passes": "通行證" + }, "tautulli": { "playing": "正在播放", "transcoding": "轉碼", "bitrate": "位元率", "no_active": "無播放活動", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "檢查Plex的連接狀態" }, - "jellyseerr": { - "pending": "待下載", - "approved": "已核准", - "available": "可觀看" - }, - "search": { - "placeholder": "搜尋…" - }, - "resources": { - "total": "全部", - "free": "剩餘", - "used": "已使用", - "load": "負載", - "cpu": "CPU", - "mem": "記憶體", - "temp": "溫度", - "max": "最大", - "uptime": "運作時間", - "months": "月", - "days": "日", - "hours": "時", - "minutes": "分" + "omada": { + "connectedAp": "已連接的存取點", + "activeUser": "在線裝置", + "alerts": "警示", + "connectedGateways": "Connected gateways", + "connectedSwitches": "已連接的交換器" }, "nzbget": { "rate": "速率", "remaining": "剩餘", "downloaded": "已下載" }, + "plex": { + "streams": "正在播放", + "albums": "專輯", + "movies": "電影", + "tv": "影集" + }, "sabnzbd": { "rate": "速率", "queue": "佇列", @@ -82,65 +199,169 @@ }, "rutorrent": { "active": "活動中", - "upload": "上行速率", - "download": "下行速率" + "upload": "上傳速率", + "download": "下載速率" }, - "radarr": { - "movies": "電影", - "wanted": "關注中", - "queued": "已加入佇列", - "missing": "缺少", - "queue": "Queue", - "unknown": "Unknown" + "transmission": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "qbittorrent": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "qnap": { + "cpuUsage": "CPU 使用率", + "memUsage": "記憶體使用率", + "systemTempC": "系統溫度", + "poolUsage": "儲存池使用率", + "volumeUsage": "儲存區用量", + "invalid": "無效的" + }, + "deluge": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" + }, + "develancacheui": { + "cachehitbytes": "Cache Hit Bytes", + "cachemissbytes": "Cache Miss Bytes" + }, + "downloadstation": { + "download": "下載速率", + "upload": "上傳速率", + "leech": "未完成下載", + "seed": "已完成下載" }, "sonarr": { "wanted": "關注中", "queued": "已加入佇列", "series": "影集", - "queue": "Queue", - "unknown": "Unknown" + "queue": "佇列", + "unknown": "未知" + }, + "radarr": { + "wanted": "關注中", + "missing": "缺少", + "queued": "已加入佇列", + "movies": "電影", + "queue": "佇列", + "unknown": "未知" + }, + "lidarr": { + "wanted": "關注中", + "queued": "已加入佇列", + "artists": "創作者" }, "readarr": { "wanted": "關注中", "queued": "已加入佇列", "books": "叢書" }, + "bazarr": { + "missingEpisodes": "缺少的劇集", + "missingMovies": "缺少的電影" + }, "ombi": { "pending": "待下載", "approved": "已核准", "available": "可觀看" }, + "jellyseerr": { + "pending": "待下載", + "approved": "已核准", + "available": "可觀看" + }, "overseerr": { "pending": "待下載", + "processing": "處理中", "approved": "已核准", - "available": "可觀看", - "processing": "處理中" + "available": "可觀看" + }, + "netalertx": { + "total": "全部", + "connected": "Connected", + "new_devices": "New Devices", + "down_alerts": "Down Alerts" }, "pihole": { "queries": "查詢", "blocked": "已阻擋", - "gravity": "阻擋清單", - "blocked_percent": "已封鎖 %" + "blocked_percent": "已封鎖 %", + "gravity": "阻擋清單" + }, + "adguard": { + "queries": "查詢", + "blocked": "已阻擋", + "filtered": "已過濾", + "latency": "延遲" }, "speedtest": { - "upload": "上行速率", - "download": "下行速率", - "ping": "Ping" + "upload": "上傳速率", + "download": "下載速率", + "ping": "延遲" }, "portainer": { - "running": "運作中", + "running": "執行中", "stopped": "已停止", "total": "全部" }, + "suwayomi": { + "download": "已下載", + "nondownload": "Non-Downloaded", + "read": "已讀", + "unread": "未讀", + "downloadedread": "Downloaded & Read", + "downloadedunread": "Downloaded & Unread", + "nondownloadedread": "Non-Downloaded & Read", + "nondownloadedunread": "Non-Downloaded & Unread" + }, + "tailscale": { + "address": "位址", + "expires": "已失效", + "never": "未曾", + "last_seen": "上次連線", + "now": "現在", + "years": "{{number}} 年", + "weeks": "{{number}} 週", + "days": "{{number}} 天", + "hours": "{{number}} 小時", + "minutes": "{{number}} 分鐘", + "seconds": "{{number}} 秒", + "ago": "{{value}} 前" + }, + "technitium": { + "totalQueries": "查詢", + "totalNoError": "Success", + "totalServerFailure": "Failures", + "totalNxDomain": "NX Domains", + "totalRefused": "Refused", + "totalAuthoritative": "Authoritative", + "totalRecursive": "Recursive", + "totalCached": "Cached", + "totalBlocked": "已阻擋", + "totalDropped": "Dropped", + "totalClients": "客戶端" + }, + "tdarr": { + "queue": "佇列", + "processed": "已處理", + "errored": "發生錯誤", + "saved": "已儲存" + }, "traefik": { "routers": "路由器", "services": "服務", "middleware": "中介軟體" }, - "gotify": { - "clients": "客戶端", - "apps": "應用程式", - "messages": "訊息" + "navidrome": { + "nothing_streaming": "無播放活動", + "please_wait": "請稍後" }, "npm": { "enabled": "已啟用", @@ -154,6 +375,11 @@ "7days": "7天", "30days": "30天" }, + "gotify": { + "apps": "應用程式", + "clients": "客戶端", + "messages": "訊息" + }, "prowlarr": { "enableIndexers": "索引器", "numberOfGrabs": "抓取", @@ -161,104 +387,80 @@ "numberOfFailGrabs": "抓取失敗", "numberOfFailQueries": "查詢失敗" }, - "transmission": { - "download": "下行速率", - "upload": "上行速率", - "leech": "未完成下載", - "seed": "已完成下載" - }, "jackett": { "configured": "已設置", "errored": "發生錯誤" }, - "bazarr": { - "missingEpisodes": "缺少的劇集", - "missingMovies": "缺少的電影" - }, - "lidarr": { - "wanted": "關注中", - "queued": "已加入佇列", - "artists": "Artists" - }, - "adguard": { - "queries": "查詢", - "blocked": "已阻擋", - "filtered": "已過濾", - "latency": "延遲" - }, - "qbittorrent": { - "download": "下行速率", - "upload": "上行速率", - "leech": "未完成下載", - "seed": "已完成下載" - }, - "mastodon": { - "user_count": "使用者", - "status_count": "文章", - "domain_count": "網域" - }, "strelaysrv": { "numActiveSessions": "工作階段", "numConnections": "連線", "dataRelayed": "中繼", "transferRate": "速率" }, + "mastodon": { + "user_count": "用戶", + "status_count": "文章", + "domain_count": "網域" + }, + "medusa": { + "wanted": "關注中", + "queued": "已加入佇列", + "series": "影集" + }, + "minecraft": { + "players": "玩家", + "version": "版本", + "status": "狀態", + "up": "在線", + "down": "離線" + }, + "miniflux": { + "read": "已讀", + "unread": "未讀" + }, "authentik": { - "users": "使用者", + "users": "用戶", "loginsLast24H": "登入 (過去 24 小時)", "failedLoginsLast24H": "登入失敗 (過去 24 小時)" }, "proxmox": { "mem": "記憶體", "cpu": "CPU", - "lxc": "LXC", - "vms": "VMs" - }, - "unifi": { - "users": "使用者", - "uptime": "系統運作時間", - "days": "天", - "wan": "WAN", - "lan_users": "有線使用者", - "wlan_users": "無線使用者", - "up": "上線", - "down": "離線", - "wait": "請稍後", - "lan": "LAN", - "wlan": "WLAN", - "devices": "設備", - "lan_devices": "有線設備", - "wlan_devices": "無線設備", - "empty_data": "子系統狀態未知" - }, - "plex": { - "streams": "正在播放", - "movies": "電影", - "tv": "影集", - "albums": "專輯" + "lxc": "Linux 容器", + "vms": "虛擬機" }, "glances": { "cpu": "CPU", - "wait": "請稍後", + "load": "負載", + "wait": "請稍候", "temp": "溫度", - "uptime": "運行時間", - "days": "天", - "hours": "時", - "free": "未使用", - "used": "已使用", - "load": "負載量", + "_temp": "溫度", "warn": "警告", - "total": "總共" + "uptime": "運作時間", + "total": "全部", + "free": "剩餘", + "used": "已使用", + "days": "天", + "hours": "小時", + "crit": "重大的", + "read": "已讀", + "write": "寫入", + "gpu": "GPU", + "mem": "記憶體", + "swap": "交換空間" }, - "changedetectionio": { - "totalObserved": "總監測數", - "diffsDetected": "偵測到的變更" + "quicklaunch": { + "bookmark": "書籤", + "service": "服務", + "search": "搜尋", + "custom": "自訂", + "visit": "造訪", + "url": "網址", + "searchsuggestion": "建議" }, "wmo": { "0-day": "晴天", "0-night": "晴朗", - "71-day": "小雪", - "71-night": "小雪", "1-day": "晴時多雲", "1-night": "晴時多雲", "2-day": "多雲時陰", @@ -289,6 +491,8 @@ "66-night": "凍雨", "67-day": "凍雨", "67-night": "凍雨", + "71-day": "小雪", + "71-night": "小雪", "73-day": "雪", "73-night": "雪", "75-day": "大雪", @@ -312,36 +516,38 @@ "99-day": "雷雨伴隨冰雹", "99-night": "雷雨伴隨冰雹" }, - "quicklaunch": { - "bookmark": "書籤", - "service": "服務", - "search": "搜尋", - "custom": "自訂", - "visit": "造訪", - "url": "網址" - }, "homebridge": { "available_update": "系統", "updates": "更新", "update_available": "有可用的更新", "up_to_date": "已更新至最新", - "child_bridges": "Child Bridges", + "child_bridges": "子網橋", "child_bridges_status": "{{ok}}/{{total}}", "up": "在線", - "pending": "處理中", + "pending": "待下載", "down": "離線" }, + "healthchecks": { + "new": "新建立", + "up": "在線", + "grace": "延緩中", + "down": "離線", + "paused": "擱置中", + "status": "狀態", + "last_ping": "上次檢查", + "never": "尚未檢查" + }, + "watchtower": { + "containers_scanned": "已掃描", + "containers_updated": "已更新", + "containers_failed": "失敗" + }, "autobrr": { "approvedPushes": "已核准", "rejectedPushes": "拒絕", "filters": "篩選器", "indexers": "索引器" }, - "watchtower": { - "containers_scanned": "已掃描", - "containers_updated": "已更新", - "containers_failed": "失敗" - }, "tubearchivist": { "downloads": "佇列", "videos": "影片", @@ -351,16 +557,11 @@ "truenas": { "load": "系統負載", "uptime": "運行時間", - "alerts": "警示", - "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "navidrome": { - "nothing_streaming": "無播放活動", - "please_wait": "請稍後" + "alerts": "警示" }, "pyload": { "speed": "速度", - "active": "執行中", + "active": "活動中", "queue": "佇列", "total": "全部" }, @@ -371,64 +572,37 @@ }, "hdhomerun": { "channels": "頻道", - "hd": "高畫質" - }, - "ping": { - "error": "錯誤", - "ping": "Ping" + "hd": "高畫質", + "tunerCount": "調諧器", + "channelNumber": "頻道", + "channelNetwork": "網絡", + "signalStrength": "強度", + "signalQuality": "品質", + "symbolQuality": "品質", + "networkRate": "位元率", + "clientIP": "用戶端" }, "scrutiny": { "passed": "通過", "failed": "失敗", - "unknown": "未知的" + "unknown": "未知" }, "paperlessngx": { "inbox": "收件箱", "total": "全部" }, - "deluge": { - "download": "下行速率", - "upload": "上行速率", - "leech": "未完成下載", - "seed": "已完成下載" - }, - "flood": { - "download": "下載速率", - "upload": "上傳速率", - "leech": "未完成下載", - "seed": "已完成下載" - }, - "tdarr": { - "queue": "佇列", - "processed": "已處理", - "errored": "發生錯誤", - "saved": "已儲存" - }, - "miniflux": { - "read": "已讀", - "unread": "未讀" + "peanut": { + "battery_charge": "充電", + "ups_load": "後備電負載", + "ups_status": "後備電狀況", + "online": "在線", + "on_battery": "電池供電", + "low_battery": "低電量" }, "nextdns": { "wait": "請稍後", "no_devices": "未收到裝置資料" }, - "common": { - "bibyterate": "{{value, rate(bits: false; binary: true)}}", - "bibitrate": "{{value, rate(bits: true; binary: true)}}" - }, - "omada": { - "connectedAp": "已連接的存取點", - "activeUser": "在線裝置", - "alerts": "警示", - "connectedGateway": "已連接的閘道", - "connectedSwitches": "已連接的交換器" - }, - "downloadstation": { - "download": "下行速率", - "upload": "上行速率", - "leech": "未完成下載", - "seed": "已完成下載" - }, "mikrotik": { "cpuLoad": "CPU負載", "memoryUsed": "已使用的記憶體", @@ -440,6 +614,12 @@ "streams_active": "正在播放", "streams_xepg": "XEPG頻道" }, + "opendtu": { + "yieldDay": "今日", + "absolutePower": "功率", + "relativePower": "功率百分比", + "limit": "上限" + }, "opnsense": { "cpu": "CPU負載", "memory": "記憶體", @@ -452,11 +632,6 @@ "print_progress": "進度", "layers": "層" }, - "medusa": { - "wanted": "關注中", - "queued": "已加入佇列", - "series": "影集" - }, "octoprint": { "printer_state": "狀態", "temp_tool": "噴頭溫度", @@ -467,6 +642,16 @@ "origin_ip": "源頭IP", "status": "狀態" }, + "pfsense": { + "load": "平均負載量", + "memory": "記憶體使用率", + "wanStatus": "網際網路狀態", + "up": "在線", + "down": "離線", + "temp": "溫度", + "disk": "硬碟使用率", + "wanIP": "網際網路 IP" + }, "proxmoxbackupserver": { "datastore_usage": "數據存儲", "failed_tasks_24h": "24小時內失敗任務", @@ -474,7 +659,7 @@ "memory_usage": "記憶體" }, "immich": { - "users": "使用者", + "users": "用戶", "photos": "照片", "videos": "影片", "storage": "儲存空間" @@ -482,30 +667,36 @@ "uptimekuma": { "up": "在線網站", "down": "離線網站", - "uptime": "在線時間", + "uptime": "運行時間", "incident": "事件", - "m": "m" + "m": "分" + }, + "atsumeru": { + "series": "影集", + "archives": "檔案", + "chapters": "章節", + "categories": "類別" }, "komga": { "libraries": "文庫", - "series": "叢刊", + "series": "影集", "books": "叢書" }, - "mylar": { - "series": "系列", - "issues": "出版", - "wanted": "關注中" - }, - "photoprism": { - "albums": "相簿", - "photos": "照片", - "videos": "影片", - "people": "人物" - }, "diskstation": { "days": "天", "uptime": "運行時間", - "volumeAvailable": "剩餘容量" + "volumeAvailable": "可觀看" + }, + "mylar": { + "series": "影集", + "issues": "出版", + "wanted": "關注中" + }, + "photoprism": { + "albums": "專輯", + "photos": "照片", + "videos": "影片", + "people": "人物" }, "fileflows": { "queue": "佇列", @@ -513,6 +704,10 @@ "processed": "已處理", "time": "時間" }, + "firefly": { + "networth": "Net Worth", + "budget": "Budget" + }, "grafana": { "dashboards": "控制面板", "datasources": "數據來源", @@ -539,16 +734,6 @@ "total_workers": "總工作程序", "records_total": "佇列長度" }, - "healthchecks": { - "new": "新建立", - "up": "上線", - "grace": "延緩中", - "down": "離線", - "paused": "擱置中", - "status": "狀態", - "last_ping": "上次檢查", - "never": "尚未檢查" - }, "pterodactyl": { "servers": "伺服器", "nodes": "節點" @@ -558,12 +743,10 @@ "targets_down": "目標離線", "targets_total": "目標總數" }, - "minecraft": { - "players": "玩家", - "version": "版本", - "status": "狀態", - "up": "上線", - "down": "離線" + "gatus": { + "up": "在線網站", + "down": "離線網站", + "uptime": "運行時間" }, "ghostfolio": { "gross_percent_today": "今日", @@ -578,92 +761,286 @@ }, "homeassistant": { "people_home": "在家人數", - "lights_on": "燈亮著", - "switches_on": "開關開著" - }, - "freshrss": { - "subscriptions": "訂閱", - "unread": "未讀" - }, - "channelsdvrserver": { - "shows": "節目", - "recordings": "錄影", - "scheduled": "已排定", - "passes": "通行證" + "lights_on": "燈光開啟", + "switches_on": "開關開啟" }, "whatsupdocker": { "monitoring": "監測中", - "updates": "可更新" + "updates": "更新" }, - "tailscale": { - "address": "位址", - "expires": "已失效", - "never": "未曾", - "last_seen": "上次連線", - "now": "現在", - "years": "{{number}} 年", - "hours": "{{number}} 小時", - "minutes": "{{number}} 分鐘", - "seconds": "{{number}} 秒", - "ago": "{{value}} 前", - "weeks": "{{number}} 週", - "days": "{{number}} 天" - }, - "qnap": { - "cpuUsage": "CPU 使用率", - "memUsage": "記憶體使用率", - "systemTempC": "系統溫度", - "poolUsage": "儲存池使用率", - "volumeUsage": "儲存區用量", - "invalid": "無效的" - }, - "pfsense": { - "load": "平均負載量", - "memory": "記憶體使用率", - "wanStatus": "網際網路狀態", - "up": "已連線", - "down": "已離線", - "temp": "溫度", - "disk": "硬碟使用率", - "wanIP": "網際網路 IP" - }, - "caddy": { - "upstreams": "上行", - "requests": "目前請求數", - "requests_failed": "失敗請求" - }, - "evcc": { - "grid_power": "電網", - "home_power": "電源使用率", - "charge_power": "充電", - "pv_power": "正式環境", - "battery_soc": "電池", - "watt_hour": "瓦時 (Wh)" - }, - "pialert": { - "total": "全部", - "connected": "已連線", - "new_devices": "新裝置", - "down_alerts": "離線警告" + "calibreweb": { + "books": "叢書", + "authors": "作者", + "categories": "類別", + "series": "影集" }, "jdownloader": { - "downloadCount": "Queue Count", - "downloadSpeed": "Download Speed", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size" + "downloadCount": "佇列", + "downloadBytesRemaining": "剩餘", + "downloadTotalBytes": "檔案大小", + "downloadSpeed": "速度" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "影集", + "totalFiles": "檔案" }, - "azurePipelines": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress" + "azuredevops": { + "result": "結果", + "status": "狀態", + "buildId": "組建編號", + "succeeded": "成功", + "notStarted": "尚未啟用", + "failed": "失敗", + "canceled": "取消", + "inProgress": "執行中", + "totalPrs": "總提取要求", + "myPrs": "我的提取要求", + "approved": "已核准" + }, + "gamedig": { + "status": "狀態", + "online": "在線", + "offline": "離線", + "name": "名稱", + "map": "地圖", + "currentPlayers": "當前玩家數", + "players": "玩家", + "maxPlayers": "玩家數上限", + "bots": "機器人", + "ping": "延遲" + }, + "urbackup": { + "ok": "確定", + "errored": "錯誤", + "noRecent": "已過時", + "totalUsed": "已使用空間" + }, + "mealie": { + "recipes": "食譜", + "users": "用戶", + "categories": "類別", + "tags": "標籤" + }, + "openmediavault": { + "downloading": "下載中", + "total": "全部", + "running": "執行中", + "stopped": "已停止", + "passed": "通過", + "failed": "失敗" + }, + "openwrt": { + "uptime": "運行時間", + "cpuLoad": "處理器平均負載(5分鐘)", + "up": "在線", + "down": "離線", + "bytesTx": "已傳送", + "bytesRx": "已接收" + }, + "uptimerobot": { + "status": "狀態", + "uptime": "運行時間", + "lastDown": "近一次停機時間", + "downDuration": "歷時停機時間", + "sitesUp": "在線網站", + "sitesDown": "離線網站", + "paused": "擱置中", + "notyetchecked": "尚未檢查", + "up": "在線", + "seemsdown": "似乎離線", + "down": "離線", + "unknown": "未知" + }, + "calendar": { + "inCinemas": "上映中", + "physicalRelease": "實體發行", + "digitalRelease": "數位發行", + "noEventsToday": "今日無事件", + "noEventsFound": "未找到事件" + }, + "romm": { + "platforms": "平台", + "totalRoms": "Games", + "saves": "Saves", + "states": "States", + "screenshots": "Screenshots", + "totalfilesize": "Total Size" + }, + "mailcow": { + "domains": "網域", + "mailboxes": "Mailboxes", + "mails": "Mails", + "storage": "儲存空間" + }, + "netdata": { + "warnings": "警告", + "criticals": "嚴重" + }, + "plantit": { + "events": "事件", + "plants": "植物", + "photos": "照片", + "species": "物種" + }, + "gitea": { + "notifications": "信息", + "issues": "出版", + "pulls": "提取請求", + "repositories": "Repositories" + }, + "stash": { + "scenes": "場景", + "scenesPlayed": "已播放場景", + "playCount": "合共播放", + "playDuration": "觀看時數", + "sceneSize": "場景大小", + "sceneDuration": "場景為期", + "images": "圖片", + "imageSize": "圖像大小", + "galleries": "畫廊", + "performers": "表演者", + "studios": "工作室", + "movies": "電影", + "tags": "標籤", + "oCount": "0 個" + }, + "tandoor": { + "users": "用戶", + "recipes": "食譜", + "keywords": "關鍵字" + }, + "homebox": { + "items": "項目", + "totalWithWarranty": "有保証", + "locations": "位置", + "labels": "標籤", + "users": "用戶", + "totalValue": "總共" + }, + "crowdsec": { + "alerts": "警示", + "bans": "禁止" + }, + "wgeasy": { + "connected": "Connected", + "enabled": "已啟用", + "disabled": "已停用", + "total": "全部" + }, + "swagdashboard": { + "proxied": "Proxied", + "auth": "With Auth", + "outdated": "Outdated", + "banned": "Banned" + }, + "myspeed": { + "ping": "延遲", + "download": "下載速率", + "upload": "上傳速率" + }, + "stocks": { + "stocks": "Stocks", + "loading": "Loading", + "open": "Open - US Market", + "closed": "Closed - US Market", + "invalidConfiguration": "Invalid Configuration" + }, + "frigate": { + "cameras": "Cameras", + "uptime": "運行時間", + "version": "版本" + }, + "linkwarden": { + "links": "Links", + "collections": "Collections", + "tags": "標籤" + }, + "zabbix": { + "unclassified": "Not classified", + "information": "資訊", + "warning": "Warning", + "average": "Average", + "high": "High", + "disaster": "Disaster" + }, + "lubelogger": { + "vehicle": "Vehicle", + "vehicles": "Vehicles", + "serviceRecords": "Service Records", + "reminders": "Reminders", + "nextReminder": "Next Reminder", + "none": "None" + }, + "vikunja": { + "projects": "Active Projects", + "tasks7d": "Tasks Due This Week", + "tasksOverdue": "Overdue Tasks", + "tasksInProgress": "Tasks In Progress" + }, + "headscale": { + "name": "名稱", + "address": "位址", + "last_seen": "上次連線", + "status": "狀態", + "online": "在線", + "offline": "離線" + }, + "beszel": { + "name": "名稱", + "systems": "Systems", + "up": "在線", + "down": "離線", + "paused": "擱置中", + "pending": "待下載", + "status": "狀態", + "updated": "已更新", + "cpu": "CPU", + "memory": "記憶體", + "disk": "Disk", + "network": "NET" + }, + "argocd": { + "apps": "Apps", + "synced": "Synced", + "outOfSync": "Out Of Sync", + "healthy": "健康", + "degraded": "Degraded", + "progressing": "Progressing", + "missing": "缺少", + "suspended": "Suspended" + }, + "spoolman": { + "loading": "Loading" + }, + "gitlab": { + "groups": "Groups", + "issues": "出版", + "merges": "Merge Requests", + "projects": "Projects" + }, + "apcups": { + "status": "狀態", + "load": "負載", + "bcharge": "充電", + "timeleft": "剩餘時間" + }, + "hoarder": { + "bookmarks": "Bookmarks", + "favorites": "Favorites", + "archived": "Archived", + "highlights": "Highlights", + "lists": "Lists", + "tags": "標籤" + }, + "slskd": { + "slskStatus": "網絡", + "connected": "Connected", + "disconnected": "連接已中斷", + "updateStatus": "Update", + "update_yes": "可觀看", + "update_no": "已更新至最新", + "downloads": "Downloads", + "uploads": "Uploads", + "sharedFiles": "檔案" } } diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..3e2b4c7a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,31 @@ +Babel==2.12.1 +certifi==2023.7.22 +charset-normalizer==3.2.0 +click==8.1.7 +colorama==0.4.6 +ghp-import==2.1.0 +idna==3.4 +Jinja2==3.1.2 +Markdown==3.4.4 +MarkupSafe==2.1.3 +mergedeep==1.3.4 +mkdocs==1.6 +mkdocs-material==9.5.26 +mkdocs-material-extensions==1.3.1 +packaging==23.1 +paginate==0.5.6 +pathspec==0.11.2 +platformdirs==3.10.0 +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 +urllib3==2.0.5 +watchdog==3.0.0 +pre-commit==3.5.0 +mkdocs-material[imaging]==9.5.26 +mkdocs-redirects==1.2.1 diff --git a/src/components/bookmarks/group.jsx b/src/components/bookmarks/group.jsx index 44db59fc..2334dad5 100644 --- a/src/components/bookmarks/group.jsx +++ b/src/components/bookmarks/group.jsx @@ -1,48 +1,85 @@ -import { useRef } from "react"; +import { Disclosure, Transition } from "@headlessui/react"; import classNames from "classnames"; -import { Disclosure, Transition } from '@headlessui/react'; +import List from "components/bookmarks/list"; +import ErrorBoundary from "components/errorboundry"; +import ResolvedIcon from "components/resolvedicon"; +import { useEffect, useRef } from "react"; import { MdKeyboardArrowDown } from "react-icons/md"; -import ErrorBoundary from "components/errorboundry"; -import List from "components/bookmarks/list"; - -export default function BookmarksGroup({ group, disableCollapse }) { +export default function BookmarksGroup({ + bookmarks, + layout, + disableCollapse, + groupsInitiallyCollapsed, + bookmarksStyle, + maxGroupColumns, +}) { const panel = useRef(); + + useEffect(() => { + if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`; + }, [layout, groupsInitiallyCollapsed]); + return ( -
- - {({ open }) => ( - <> - -

{group.name}

- -
- { - panel.current.style.height = `${panel.current.scrollHeight}px`; - setTimeout(() => {panel.current.style.height = `0`}, 1); - }} - beforeEnter={() => { - panel.current.style.height = `0px`; - setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1); - }} - > - - - - - - - - )} -
+
6 + ? `3xl:basis-1/${maxGroupColumns}` + : "", + layout?.header === false ? "px-1" : "p-1 pb-0", + )} + > + + {({ open }) => ( + <> + {layout?.header !== false && ( + + {layout?.icon && ( +
+ +
+ )} +

+ {bookmarks.name} +

+ +
+ )} + { + panel.current.style.height = `${panel.current.scrollHeight}px`; + setTimeout(() => { + panel.current.style.height = `0`; + }, 1); + }} + beforeEnter={() => { + panel.current.style.height = `0px`; + setTimeout(() => { + panel.current.style.height = `${panel.current.scrollHeight}px`; + }, 1); + }} + > + + + + + + + + )} +
); } diff --git a/src/components/bookmarks/item.jsx b/src/components/bookmarks/item.jsx index 89dd698d..7ea16bba 100644 --- a/src/components/bookmarks/item.jsx +++ b/src/components/bookmarks/item.jsx @@ -1,34 +1,57 @@ -import { useContext } from "react"; - -import { SettingsContext } from "utils/contexts/settings"; +import classNames from "classnames"; import ResolvedIcon from "components/resolvedicon"; +import { useContext } from "react"; +import { SettingsContext } from "utils/contexts/settings"; -export default function Item({ bookmark }) { - const { hostname } = new URL(bookmark.href); +export default function Item({ bookmark, iconOnly = false }) { + const description = bookmark.description ?? new URL(bookmark.href).hostname; const { settings } = useContext(SettingsContext); return ( -
  • +
  • -
  • ); diff --git a/src/components/bookmarks/list.jsx b/src/components/bookmarks/list.jsx index d37b83e7..f24794db 100644 --- a/src/components/bookmarks/list.jsx +++ b/src/components/bookmarks/list.jsx @@ -1,10 +1,23 @@ +import classNames from "classnames"; import Item from "components/bookmarks/item"; -export default function List({ bookmarks }) { +import { columnMap } from "../../utils/layout/columns"; + +export default function List({ bookmarks, layout, bookmarksStyle }) { + let classes = layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col bookmark-list"; + const style = {}; + if (layout?.iconsOnly || bookmarksStyle === "icons") { + classes = "grid gap-2 bookmark-list"; + style.gridTemplateColumns = "repeat(auto-fill, minmax(60px, 1fr))"; + } return ( -
      +
        {bookmarks.map((bookmark) => ( - + ))}
      ); diff --git a/src/components/errorboundry.jsx b/src/components/errorboundry.jsx index bad4b552..1b2a3b1e 100644 --- a/src/components/errorboundry.jsx +++ b/src/components/errorboundry.jsx @@ -14,8 +14,10 @@ export default class ErrorBoundary extends React.Component { }); // You can also log error messages to an error reporting service here - // eslint-disable-next-line no-console - console.error(error, errorInfo); + if (error || errorInfo) { + // eslint-disable-next-line no-console + console.error("component error: %s, info: %s", error, errorInfo); + } } render() { diff --git a/src/components/favicon.jsx b/src/components/favicon.jsx index 13c19583..8961d655 100644 --- a/src/components/favicon.jsx +++ b/src/components/favicon.jsx @@ -1,9 +1,9 @@ /* eslint-disable @next/next/no-img-element */ /* eslint-disable jsx-a11y/alt-text */ -import { useRef, useEffect, useContext } from "react"; +import { useContext, useEffect, useRef } from "react"; +import { ColorContext } from "utils/contexts/color"; import themes from "utils/styles/themes"; -import { ColorContext } from "utils/contexts/color"; export function Svg({ svgRef = null }) { const { color } = useContext(ColorContext); diff --git a/src/components/quicklaunch.jsx b/src/components/quicklaunch.jsx index 229b2f4d..a9827659 100644 --- a/src/components/quicklaunch.jsx +++ b/src/components/quicklaunch.jsx @@ -1,25 +1,61 @@ -import { useTranslation } from "react-i18next"; -import { useEffect, useState, useRef, useCallback, useContext } from "react"; import classNames from "classnames"; - -import ResolvedIcon from "./resolvedicon"; - +import { useTranslation } from "next-i18next"; +import { useCallback, useContext, useEffect, useRef, useState } from "react"; +import useSWR from "swr"; import { SettingsContext } from "utils/contexts/settings"; -export default function QuickLaunch({servicesAndBookmarks, searchString, setSearchString, isOpen, close, searchProvider}) { +import ResolvedIcon from "./resolvedicon"; +import { getStoredProvider, searchProviders } from "./widgets/search/search"; + +export default function QuickLaunch({ servicesAndBookmarks, searchString, setSearchString, isOpen, close }) { const { t } = useTranslation(); + const { settings } = useContext(SettingsContext); - const { searchDescriptions, hideVisitURL } = settings?.quicklaunch ? settings.quicklaunch : { searchDescriptions: false, hideVisitURL: false }; + const { searchDescriptions = false, hideVisitURL = false } = settings?.quicklaunch ?? {}; const searchField = useRef(); const [results, setResults] = useState([]); const [currentItemIndex, setCurrentItemIndex] = useState(null); const [url, setUrl] = useState(null); + const [searchSuggestions, setSearchSuggestions] = useState([]); + + const { data: widgets } = useSWR("/api/widgets"); + const searchWidget = Object.values(widgets).find((w) => w.type === "search"); + + let searchProvider; + + if (settings?.quicklaunch?.provider === "custom" && settings?.quicklaunch?.url?.length > 0) { + searchProvider = settings.quicklaunch; + } else if (settings?.quicklaunch?.provider && settings?.quicklaunch?.provider !== "custom") { + searchProvider = searchProviders[settings.quicklaunch.provider]; + } else if (searchWidget) { + // If there is no search provider in quick launch settings, try to get it from the search widget + if (Array.isArray(searchWidget.options?.provider)) { + // If search provider is a list, try to retrieve from localstorage, fall back to the first + searchProvider = getStoredProvider() ?? searchProviders[searchWidget.options.provider[0]]; + } else if (searchWidget.options?.provider === "custom") { + searchProvider = searchWidget.options; + } else { + searchProvider = searchProviders[searchWidget.options?.provider]; + } + } + + if (searchProvider) { + searchProvider.showSearchSuggestions = !!( + settings?.quicklaunch?.showSearchSuggestions ?? + searchWidget?.options?.showSearchSuggestions ?? + false + ); + } function openCurrentItem(newWindow) { const result = results[currentItemIndex]; - window.open(result.href, newWindow ? "_blank" : result.target ?? settings.target ?? "_blank", 'noreferrer'); + window.open( + result.href, + newWindow ? "_blank" : (result.target ?? searchProvider?.target ?? settings.target ?? "_blank"), + "noreferrer", + ); } const closeAndReset = useCallback(() => { @@ -27,20 +63,23 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear setTimeout(() => { setSearchString(""); setCurrentItemIndex(null); + setSearchSuggestions([]); }, 200); // delay a little for animations - }, [close, setSearchString, setCurrentItemIndex]); + }, [close, setSearchString, setCurrentItemIndex, setSearchSuggestions]); function handleSearchChange(event) { - const rawSearchString = event.target.value.toLowerCase(); + const rawSearchString = event.target.value; try { if (!/.+[.:].+/g.test(rawSearchString)) throw new Error(); // basic test for probably a url let urlString = rawSearchString; - if (urlString.indexOf('http') !== 0) urlString = `https://${rawSearchString}`; + if (urlString.toLowerCase().indexOf("http") !== 0) urlString = `https://${rawSearchString}`; setUrl(new URL(urlString)); // basic validation + setSearchString(rawSearchString); + return; } catch (e) { setUrl(null); } - setSearchString(rawSearchString); + setSearchString(rawSearchString.toLowerCase()); } function handleSearchKeyDown(event) { @@ -58,10 +97,15 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear } else if (event.key === "ArrowUp" && currentItemIndex > 0) { setCurrentItemIndex(currentItemIndex - 1); event.preventDefault(); + } else if ( + event.key === "ArrowRight" && + results[currentItemIndex] && + results[currentItemIndex].type === "searchSuggestion" + ) { + setSearchString(results[currentItemIndex].name); } } - function handleItemHover(event) { setCurrentItemIndex(parseInt(event.target?.dataset?.index, 10)); } @@ -71,15 +115,27 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear openCurrentItem(event.metaKey); } + function handleItemKeyDown(event) { + if (!isOpen) return; + + // native button handles other keys + if (event.key === "Escape") { + closeAndReset(); + event.preventDefault(); + } + } + useEffect(() => { - if (searchString.length === 0) setResults([]); + const abortController = new AbortController(); + + if (searchString.trim().length === 0) setResults([]); else { - let newResults = servicesAndBookmarks.filter(r => { + let newResults = servicesAndBookmarks.filter((r) => { const nameMatch = r.name.toLowerCase().includes(searchString); let descriptionMatch; if (searchDescriptions) { - descriptionMatch = r.description?.toLowerCase().includes(searchString) - r.priority = nameMatch ? 2 * (+nameMatch) : +descriptionMatch; // eslint-disable-line no-param-reassign + descriptionMatch = r.description?.toLowerCase().includes(searchString); + r.priority = nameMatch ? 2 * +nameMatch : +descriptionMatch; // eslint-disable-line no-param-reassign } return nameMatch || descriptionMatch; }); @@ -89,23 +145,53 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear } if (searchProvider) { - newResults.push( - { - href: searchProvider.url + encodeURIComponent(searchString), - name: `${searchProvider.name ?? t("quicklaunch.custom")} ${t("quicklaunch.search")} `, - type: 'search', + newResults.push({ + href: searchProvider.url + encodeURIComponent(searchString), + name: `${searchProvider.name ?? t("quicklaunch.custom")} ${t("quicklaunch.search")}`, + type: "search", + }); + + if (searchProvider.showSearchSuggestions && searchProvider.suggestionUrl) { + if (searchString.trim() !== searchSuggestions[0]?.trim()) { + fetch( + `/api/search/searchSuggestion?query=${encodeURIComponent(searchString)}&providerName=${ + searchProvider.name ?? "Custom" + }`, + { signal: abortController.signal }, + ) + .then(async (searchSuggestionResult) => { + const newSearchSuggestions = await searchSuggestionResult.json(); + + if (newSearchSuggestions) { + if (newSearchSuggestions[1].length > 4) { + newSearchSuggestions[1] = newSearchSuggestions[1].splice(0, 4); + } + setSearchSuggestions(newSearchSuggestions); + } + }) + .catch(() => { + // If there is an error, just ignore it. There just will be no search suggestions. + }); } - ) + + if (searchSuggestions[1]) { + newResults = newResults.concat( + searchSuggestions[1].map((suggestion) => ({ + href: searchProvider.url + encodeURIComponent(suggestion), + name: suggestion, + type: "searchSuggestion", + })), + ); + } + } } if (!hideVisitURL && url) { - newResults.unshift( - { - href: url.toString(), - name: `${t("quicklaunch.visit")} URL`, - type: 'url', - } - ) + newResults.unshift({ + href: url.toString(), + name: `${t("quicklaunch.visit")} URL`, + type: "url", + }); } setResults(newResults); @@ -114,8 +200,12 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear setCurrentItemIndex(0); } } - }, [searchString, servicesAndBookmarks, searchDescriptions, hideVisitURL, searchProvider, url, t]); + return () => { + abortController.abort(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [searchString, servicesAndBookmarks, searchDescriptions, hideVisitURL, searchSuggestions, searchProvider, url]); const [hidden, setHidden] = useState(true); useEffect(() => { @@ -125,66 +215,113 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear if (isOpen) { searchField.current.focus(); - document.body.addEventListener('click', handleBackdropClick); + document.body.addEventListener("click", handleBackdropClick); setHidden(false); } else { - document.body.removeEventListener('click', handleBackdropClick); + document.body.removeEventListener("click", handleBackdropClick); searchField.current.blur(); setTimeout(() => { setHidden(true); }, 300); // disable on close } - }, [isOpen, closeAndReset]); function highlightText(text) { - const parts = text.split(new RegExp(`(${searchString})`, 'gi')); - // eslint-disable-next-line react/no-array-index-key - return {parts.map((part, i) => part.toLowerCase() === searchString.toLowerCase() ? {part} : part)}; + const parts = text.split(new RegExp(`(${searchString})`, "gi")); + return ( + + {parts.map((part, i) => + part.toLowerCase() === searchString.toLowerCase() ? ( + // eslint-disable-next-line react/no-array-index-key + + {part} + + ) : ( + part + ), + )} + + ); } return ( -
    } +
    + {t(`quicklaunch.${r.type ? r.type.toLowerCase() : "bookmark"}`)} +
    + + + ))} + + )}
    diff --git a/src/components/resolvedicon.jsx b/src/components/resolvedicon.jsx index fa9fa68d..77ba9119 100644 --- a/src/components/resolvedicon.jsx +++ b/src/components/resolvedicon.jsx @@ -1,12 +1,11 @@ +import Image from "next/image"; import { useContext } from "react"; -import Image from "next/future/image"; - import { SettingsContext } from "utils/contexts/settings"; import { ThemeContext } from "utils/contexts/theme"; const iconSetURLs = { - 'mdi': "https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/", - 'si' : "https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/", + mdi: "https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/", + si: "https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/", }; export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "logo" }) { @@ -33,37 +32,23 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log } // check mdi- or si- prefixed icons - const prefix = icon.split("-")[0] + const prefix = icon.split("-")[0]; - if (prefix in iconSetURLs) { - // get icon source - const iconName = icon.replace(`${prefix}-`, "").replace(".svg", ""); - const iconSource = `${iconSetURLs[prefix]}${iconName}.svg`; + if (prefix === "sh") { + const iconName = icon.replace("sh-", "").replace(".svg", "").replace(".png", "").replace(".webp", ""); - return ( -
    - ); - } + let extension; + if (icon.endsWith(".svg")) { + extension = "svg"; + } else if (icon.endsWith(".webp")) { + extension = "webp"; + } else { + extension = "png"; + } - - // fallback to dashboard-icons - if (icon.endsWith(".svg")) { - const iconName = icon.replace(".svg", ""); return ( log
           height,
           objectFit: ); } - + + if (prefix in iconSetURLs) { + // default to theme setting + let iconName = icon.replace(`${prefix}-`, "").replace(".svg", ""); + let iconColor = + settings.iconStyle === "theme" + ? `rgb(var(--color-${theme === "dark" ? 300 : 900}) / var(--tw-text-opacity, 1))` + : "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))"; + + // use custom hex color if provided + const colorMatches = icon.match(/[#][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/i); + if (colorMatches?.length) { + iconName = icon.replace(`${prefix}-`, "").replace(".svg", "").replace(`-${colorMatches[0]}`, ""); + iconColor = `${colorMatches[0]}`; + } + + const iconSource = `${iconSetURLs[prefix]}${iconName}.svg`; + + return ( +
    + ); + } + + // fallback to dashboard-icons + if (icon.endsWith(".svg")) { + const iconName = icon.replace(".svg", ""); + return ( + {alt} + ); + } + + if (icon.endsWith(".webp")) { + const iconName = icon.replace(".webp", ""); + return ( + {alt} + ); + } + const iconName = icon.replace(".png", ""); return ( log
         height,
         objectFit: diff --git a/src/components/services/dropdown.jsx b/src/components/services/dropdown.jsx index 4bc25a8f..e8e11d97 100644 --- a/src/components/services/dropdown.jsx +++ b/src/components/services/dropdown.jsx @@ -1,13 +1,13 @@ -import { Fragment } from "react"; import { Menu, Transition } from "@headlessui/react"; -import { BiCog } from "react-icons/bi"; import classNames from "classnames"; +import { Fragment } from "react"; +import { BiCog } from "react-icons/bi"; export default function Dropdown({ options, value, setValue }) { return (
    - + {options.find((option) => option.value === value).label} @@ -22,7 +22,7 @@ export default function Dropdown({ options, value, setValue }) { leaveFrom="transform opacity-100 scale-100" leaveTo="transform opacity-0 scale-95" > - +
    {options.map((option) => ( @@ -33,7 +33,7 @@ export default function Dropdown({ options, value, setValue }) { type="button" className={classNames( value === option.value ? "bg-theme-300/40 dark:bg-theme-900/40" : "", - "w-full block px-3 py-1.5 text-sm hover:bg-theme-300/70 hover:dark:bg-theme-900/70 text-left" + "w-full block px-3 py-1.5 text-sm hover:bg-theme-300/70 dark:hover:bg-theme-900/70 text-left", )} > {option.label} diff --git a/src/components/services/group.jsx b/src/components/services/group.jsx index b3805c4f..cad7b5aa 100644 --- a/src/components/services/group.jsx +++ b/src/components/services/group.jsx @@ -1,59 +1,115 @@ -import { useRef } from "react"; +import { Disclosure, Transition } from "@headlessui/react"; import classNames from "classnames"; -import { Disclosure, Transition } from '@headlessui/react'; +import ResolvedIcon from "components/resolvedicon"; +import List from "components/services/list"; +import { useEffect, useRef } from "react"; import { MdKeyboardArrowDown } from "react-icons/md"; -import List from "components/services/list"; -import ResolvedIcon from "components/resolvedicon"; - -export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse }) { +import { columnMap } from "../../utils/layout/columns"; +export default function ServicesGroup({ + group, + layout, + maxGroupColumns, + disableCollapse, + useEqualHeights, + groupsInitiallyCollapsed, + isSubgroup, +}) { const panel = useRef(); + useEffect(() => { + if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`; + }, [layout, groupsInitiallyCollapsed]); + + let groupPadding = layout?.header === false ? "px-1" : "p-1 pb-0"; + if (isSubgroup) groupPadding = ""; + return (
    - - {({ open }) => ( - <> - - {layout?.icon && -
    - -
    - } -

    {services.name}

    - -
    - { - panel.current.style.height = `${panel.current.scrollHeight}px`; - setTimeout(() => {panel.current.style.height = `0`}, 1); - }} - beforeEnter={() => { - panel.current.style.height = `0px`; - setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1); - }} - > - - - - - - )} + + {({ open }) => ( + <> + {layout?.header !== false && ( + + {layout?.icon && ( +
    + +
    + )} +

    + {group.name} +

    + +
    + )} + { + panel.current.style.height = `${panel.current.scrollHeight}px`; + setTimeout(() => { + panel.current.style.height = `0`; + }, 1); + }} + beforeEnter={() => { + panel.current.style.height = `0px`; + setTimeout(() => { + panel.current.style.height = `${panel.current.scrollHeight}px`; + }, 1); + setTimeout(() => { + panel.current.style.height = "auto"; + }, 150); // animation is 150ms + }} + > + + + {group.groups?.length > 0 && ( +
    + {group.groups.map((subgroup) => ( + + ))} +
    + )} +
    +
    + + )}
    ); diff --git a/src/components/services/item.jsx b/src/components/services/item.jsx index 36e454ce..8e851611 100644 --- a/src/components/services/item.jsx +++ b/src/components/services/item.jsx @@ -1,20 +1,21 @@ import classNames from "classnames"; +import ResolvedIcon from "components/resolvedicon"; import { useContext, useState } from "react"; - -import Status from "./status"; -import Widget from "./widget"; -import Ping from "./ping"; -import KubernetesStatus from "./kubernetes-status"; - +import { SettingsContext } from "utils/contexts/settings"; import Docker from "widgets/docker/component"; import Kubernetes from "widgets/kubernetes/component"; -import { SettingsContext } from "utils/contexts/settings"; -import ResolvedIcon from "components/resolvedicon"; -export default function Item({ service, group }) { +import KubernetesStatus from "./kubernetes-status"; +import Ping from "./ping"; +import SiteMonitor from "./site-monitor"; +import Status from "./status"; +import Widget from "./widget"; + +export default function Item({ service, groupName, useEqualHeights }) { const hasLink = service.href && service.href !== "#"; const { settings } = useContext(SettingsContext); - const showStats = (service.showStats === false) ? false : settings.showStats; + const showStats = service.showStats === false ? false : settings.showStats; + const statusStyle = service.statusStyle !== undefined ? service.statusStyle : settings.statusStyle; const [statsOpen, setStatsOpen] = useState(service.showStats); const [statsClosing, setStatsClosing] = useState(false); @@ -30,25 +31,28 @@ export default function Item({ service, group }) { }; return ( -
  • +
  • -
    +
    {service.icon && (hasLink ? ( ) : ( -
    +
    ))} @@ -58,75 +62,100 @@ export default function Item({ service, group }) { href={service.href} target={service.target ?? settings.target ?? "_blank"} rel="noreferrer" - className="flex-1 flex items-center justify-between rounded-r-md " + className="flex-1 flex items-center justify-between rounded-r-md service-title-text" > -
    +
    {service.name} -

    {service.description}

    +

    + {service.description} +

    ) : ( -
    -
    +
    +
    {service.name} -

    {service.description}

    +

    + {service.description} +

    )} -
    - {service.ping && ( -
    - - Ping status -
    - )} +
    + {service.ping && ( +
    + + Ping status +
    + )} - {service.container && ( - - )} - {(service.app && !service.external) && ( - - )} + {service.siteMonitor && ( +
    + + Site monitor status +
    + )} + + {service.container && ( + + )} + {service.app && !service.external && ( + + )}
    {service.container && service.server && (
    - {(showStats || statsOpen) && } + {(showStats || statsOpen) && ( + + )}
    )} {service.app && (
    - {(showStats || statsOpen) && } + {(showStats || statsOpen) && ( + + )}
    )} - {service.widget && } + {service.widgets.map((widget) => ( + + ))}
  • ); diff --git a/src/components/services/kubernetes-status.jsx b/src/components/services/kubernetes-status.jsx index 4739980b..e4ea958d 100644 --- a/src/components/services/kubernetes-status.jsx +++ b/src/components/services/kubernetes-status.jsx @@ -1,35 +1,48 @@ -import useSWR from "swr"; import { t } from "i18next"; +import useSWR from "swr"; -export default function KubernetesStatus({ service }) { +export default function KubernetesStatus({ service, style }) { const podSelectorString = service.podSelector !== undefined ? `podSelector=${service.podSelector}` : ""; const { data, error } = useSWR(`/api/kubernetes/status/${service.namespace}/${service.app}?${podSelectorString}`); + let statusLabel = t("docker.unknown"); + let statusTitle = ""; + let backgroundClass = "px-1.5 py-0.5 bg-theme-500/10 dark:bg-theme-900/50"; + let colorClass = "text-black/20 dark:text-white/40 opacity-20"; + if (error) { -
    -
    {t("docker.error")}
    -
    + statusTitle = t("docker.error"); + statusLabel = statusTitle; + colorClass = "text-rose-500/80"; + } else if (data) { + if (data.status === "running") { + statusTitle = data.health ?? data.status; + statusLabel = statusTitle; + colorClass = "text-emerald-500/80"; + } + + if (data.status === "not found" || data.status === "down" || data.status === "partial") { + statusTitle = data.status; + statusLabel = statusTitle; + colorClass = "text-orange-400/50 dark:text-orange-400/80"; + } } - if (data && data.status === "running") { - return ( -
    -
    {data.health ?? data.status}
    -
    - ); - } - - if (data && (data.status === "not found" || data.status === "down" || data.status === "partial")) { - return ( -
    -
    {data.status}
    -
    - ); + if (style === "dot") { + colorClass = colorClass.replace(/text-/g, "bg-").replace(/\/\d\d/g, ""); + backgroundClass = "p-4 hover:bg-theme-500/10 dark:hover:bg-theme-900/20"; } return ( -
    -
    {t("docker.unknown")}
    +
    + {style !== "dot" ? ( +
    {statusLabel}
    + ) : ( +
    + )}
    ); } diff --git a/src/components/services/list.jsx b/src/components/services/list.jsx index 85083af3..1acf94d6 100644 --- a/src/components/services/list.jsx +++ b/src/components/services/list.jsx @@ -1,29 +1,24 @@ import classNames from "classnames"; - import Item from "components/services/item"; -const columnMap = [ - "grid-cols-1 md:grid-cols-1 lg:grid-cols-1", - "grid-cols-1 md:grid-cols-1 lg:grid-cols-1", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-2", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-3", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-4", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-5", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-6", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-7", - "grid-cols-1 md:grid-cols-2 lg:grid-cols-8", -]; +import { columnMap } from "../../utils/layout/columns"; -export default function List({ group, services, layout }) { +export default function List({ groupName, services, layout, useEqualHeights, header }) { return (
      {services.map((service) => ( - + s).join("-")} + service={service} + groupName={groupName} + useEqualHeights={layout?.useEqualHeights ?? useEqualHeights} + /> ))}
    ); diff --git a/src/components/services/ping.jsx b/src/components/services/ping.jsx index 291bc9e0..f8665e33 100644 --- a/src/components/services/ping.jsx +++ b/src/components/services/ping.jsx @@ -1,42 +1,53 @@ -import { useTranslation } from "react-i18next"; +import { useTranslation } from "next-i18next"; import useSWR from "swr"; -export default function Ping({ group, service }) { +export default function Ping({ groupName, serviceName, style }) { const { t } = useTranslation(); - const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ group, service }).toString()}`, { - refreshInterval: 30000 + const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ groupName, serviceName }).toString()}`, { + refreshInterval: 30000, }); + let colorClass = "text-black/20 dark:text-white/40 opacity-20"; + let backgroundClass = "bg-theme-500/10 dark:bg-theme-900/50 px-1.5 py-0.5"; + let statusTitle = t("ping.ping"); + let statusText = ""; + if (error) { - return ( -
    -
    {t("ping.error")}
    -
    - ); - } - - if (!data) { - return ( -
    -
    {t("ping.ping")}
    -
    - ); + colorClass = "text-rose-500"; + statusText = t("ping.error"); + statusTitle += ` ${t("ping.error")}`; + } else if (!data) { + statusText = t("ping.ping"); + statusTitle += ` ${t("ping.not_available")}`; + } else if (!data.alive) { + colorClass = "text-rose-500/80"; + statusTitle += ` ${t("ping.down")}`; + statusText = t("ping.down"); + } else if (data.alive) { + const ping = t("common.ms", { value: data.time, style: "unit", unit: "millisecond", maximumFractionDigits: 0 }); + statusTitle += ` ${t("ping.up")} (${ping})`; + colorClass = "text-emerald-500/80"; + + if (style === "basic") { + statusText = t("ping.up"); + } else { + statusText = ping; + colorClass += " lowercase"; + } } - const statusText = `${service}: HTTP status ${data.status}`; - - if (data.status > 403) { - return ( -
    -
    {data.status}
    -
    - ); + if (style === "dot") { + backgroundClass = "p-4"; + colorClass = colorClass.replace(/text-/g, "bg-").replace(/\/\d\d/g, ""); } - + return ( -
    -
    {t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", maximumFractionDigits: 0 })}
    +
    + {style !== "dot" &&
    {statusText}
    } + {style === "dot" &&
    }
    ); - } diff --git a/src/components/services/site-monitor.jsx b/src/components/services/site-monitor.jsx new file mode 100644 index 00000000..79496f65 --- /dev/null +++ b/src/components/services/site-monitor.jsx @@ -0,0 +1,63 @@ +import { useTranslation } from "next-i18next"; +import useSWR from "swr"; + +export default function SiteMonitor({ groupName, serviceName, style }) { + const { t } = useTranslation(); + const { data, error } = useSWR(`/api/siteMonitor?${new URLSearchParams({ groupName, serviceName }).toString()}`, { + refreshInterval: 30000, + }); + + let colorClass = "text-black/20 dark:text-white/40 opacity-20"; + let backgroundClass = "bg-theme-500/10 dark:bg-theme-900/50 px-1.5 py-0.5"; + let statusTitle = t("siteMonitor.http_status"); + let statusText = ""; + + if (error || (data && data.error)) { + colorClass = "text-rose-500"; + statusText = t("siteMonitor.error"); + statusTitle += ` ${t("siteMonitor.error")}`; + } else if (!data) { + statusText = t("siteMonitor.response"); + statusTitle += ` ${t("siteMonitor.not_available")}`; + } else if (data.status > 403) { + colorClass = "text-rose-500/80"; + statusTitle += ` ${data.status}`; + + if (style === "basic") { + statusText = t("siteMonitor.down"); + } else { + statusText = data.status; + } + } else if (data) { + const responseTime = t("common.ms", { + value: data.latency, + style: "unit", + unit: "millisecond", + maximumFractionDigits: 0, + }); + statusTitle += ` ${data.status} (${responseTime})`; + colorClass = "text-emerald-500/80"; + + if (style === "basic") { + statusText = t("siteMonitor.up"); + } else { + statusText = responseTime; + colorClass += " lowercase"; + } + } + + if (style === "dot") { + backgroundClass = "p-4"; + colorClass = colorClass.replace(/text-/g, "bg-").replace(/\/\d\d/g, ""); + } + + return ( +
    + {style !== "dot" &&
    {statusText}
    } + {style === "dot" &&
    } +
    + ); +} diff --git a/src/components/services/status.jsx b/src/components/services/status.jsx index 7ef6a079..2688ca0f 100644 --- a/src/components/services/status.jsx +++ b/src/components/services/status.jsx @@ -1,65 +1,64 @@ -import { useTranslation } from "react-i18next"; +import { useTranslation } from "next-i18next"; import useSWR from "swr"; -export default function Status({ service }) { +export default function Status({ service, style }) { const { t } = useTranslation(); const { data, error } = useSWR(`/api/docker/status/${service.container}/${service.server || ""}`); + let statusLabel = t("docker.unknown"); + let backgroundClass = "px-1.5 py-0.5 bg-theme-500/10 dark:bg-theme-900/50"; + let colorClass = "text-black/20 dark:text-white/40 "; + if (error) { -
    -
    {t("docker.error")}
    -
    - } - - if (data) { - let statusLabel = ""; - + statusLabel = t("docker.error"); + colorClass = "text-rose-500/80"; + } else if (data) { if (data.status?.includes("running")) { - if (data.health === "starting") { - return ( -
    -
    {t("docker.starting")}
    -
    - ); - } - - if (data.health === "unhealthy") { - return ( -
    -
    {t("docker.unhealthy")}
    -
    - ); - } + colorClass = "text-emerald-500/80"; if (!data.health) { - statusLabel = data.status.replace("running", t("docker.running")) + statusLabel = data.status.replace("running", t("docker.running")); } else { - statusLabel = data.health === "healthy" ? t("docker.healthy") : data.health - } + statusLabel = data.health === "healthy" ? t("docker.healthy") : data.health; - return ( -
    -
    {statusLabel}
    -
    - ); + if (data.health === "starting") { + statusLabel = t("docker.starting"); + colorClass = "text-blue-500/80"; + } + + if (data.health === "unhealthy") { + statusLabel = t("docker.unhealthy"); + colorClass = "text-orange-400/50 dark:text-orange-400/80"; + } + } } - + if (data.status === "not found" || data.status === "exited" || data.status?.startsWith("partial")) { - if (data.status === "not found") statusLabel = t("docker.not_found") - else if (data.status === "exited") statusLabel = t("docker.exited") - else statusLabel = data.status.replace("partial", t("docker.partial")) - return ( -
    -
    {statusLabel}
    -
    - ); + if (data.status === "not found") statusLabel = t("docker.not_found"); + else if (data.status === "exited") statusLabel = t("docker.exited"); + else statusLabel = data.status.replace("partial", t("docker.partial")); + colorClass = "text-orange-400/50 dark:text-orange-400/80"; } } + if (style === "dot") { + colorClass = colorClass.replace(/text-/g, "bg-").replace(/\/\d\d/g, ""); + backgroundClass = "p-4 hover:bg-theme-500/10 dark:hover:bg-theme-900/20"; + } + return ( -
    -
    {t("docker.unknown")}
    +
    + {style !== "dot" ? ( +
    {statusLabel}
    + ) : ( +
    + )}
    ); } diff --git a/src/components/services/widget.jsx b/src/components/services/widget.jsx index 3a7463ac..6e3a6360 100644 --- a/src/components/services/widget.jsx +++ b/src/components/services/widget.jsx @@ -1,24 +1,26 @@ +import ErrorBoundary from "components/errorboundry"; import { useTranslation } from "next-i18next"; -import ErrorBoundary from "components/errorboundry"; import components from "widgets/components"; -export default function Widget({ service }) { +export default function Widget({ widget, service }) { const { t } = useTranslation("common"); - const ServiceWidget = components[service.widget.type]; + const ServiceWidget = components[widget.type]; + const fullService = Object.apply({}, service); + fullService.widget = widget; if (ServiceWidget) { return ( - + ); } return ( -
    -
    {t("widget.missing_type", { type: service.widget.type })}
    +
    +
    {t("widget.missing_type", { type: widget.type })}
    ); } diff --git a/src/components/services/widget/block.jsx b/src/components/services/widget/block.jsx index 2af53fff..720140cc 100644 --- a/src/components/services/widget/block.jsx +++ b/src/components/services/widget/block.jsx @@ -1,5 +1,5 @@ -import { useTranslation } from "next-i18next"; import classNames from "classnames"; +import { useTranslation } from "next-i18next"; export default function Block({ value, label }) { const { t } = useTranslation(); @@ -7,8 +7,9 @@ export default function Block({ value, label }) { return (
    {value === undefined || value === null ? "-" : value}
    diff --git a/src/components/services/widget/container.jsx b/src/components/services/widget/container.jsx index 7d883336..f5957382 100644 --- a/src/components/services/widget/container.jsx +++ b/src/components/services/widget/container.jsx @@ -1,8 +1,12 @@ import { useContext } from "react"; +import { SettingsContext } from "utils/contexts/settings"; import Error from "./error"; -import { SettingsContext } from "utils/contexts/settings"; +const ALIASED_WIDGETS = { + pialert: "netalertx", + hoarder: "karakeep", +}; export default function Container({ error = false, children, service }) { const { settings } = useContext(SettingsContext); @@ -12,14 +16,14 @@ export default function Container({ error = false, children, service }) { return null; } - return + return ; } const childrenArray = Array.isArray(children) ? children : [children]; let visibleChildren = childrenArray; let fields = service?.widget?.fields; - if (typeof service.widget.fields === 'string') fields = JSON.parse(service.widget.fields); + if (typeof fields === "string") fields = JSON.parse(service.widget.fields); const type = service?.widget?.type; if (fields && type) { // if the field contains a "." then it most likely contains a common loc value @@ -27,14 +31,26 @@ export default function Container({ error = false, children, service }) { // fields: [ "resources.cpu", "resources.mem", "field"] // or even // fields: [ "resources.cpu", "widget_type.field" ] - visibleChildren = childrenArray?.filter(child => fields.some(field => { - let fullField = field; - if (!field.includes(".")) { - fullField = `${type}.${field}`; - } - return fullField === child?.props?.label; - })); + visibleChildren = childrenArray?.filter((child) => + fields.some((field) => { + let fullField = field; + if (!field.includes(".")) { + fullField = `${type}.${field}`; + } + let matches = fullField === child?.props?.label; + // check if the field is an 'alias' + if (matches) { + return true; + } else if (ALIASED_WIDGETS[type]) { + matches = fullField.replace(type, ALIASED_WIDGETS[type]) === child?.props?.label; + + return matches; + } + // no match + return false; + }), + ); } - return
    {visibleChildren}
    ; + return
    {visibleChildren}
    ; } diff --git a/src/components/services/widget/error.jsx b/src/components/services/widget/error.jsx index cf5e1366..0d4757d3 100644 --- a/src/components/services/widget/error.jsx +++ b/src/components/services/widget/error.jsx @@ -1,4 +1,4 @@ -import { useTranslation } from "react-i18next"; +import { useTranslation } from "next-i18next"; import { IoAlertCircle } from "react-icons/io5"; function displayError(error) { @@ -6,43 +6,52 @@ function displayError(error) { } function displayData(data) { - return (data.type === 'Buffer') ? Buffer.from(data).toString() : JSON.stringify(data, 4); + return data.type === "Buffer" ? Buffer.from(data).toString() : JSON.stringify(data, 4); } export default function Error({ error }) { const { t } = useTranslation(); + if (typeof error === "string") { + error = { message: error }; // eslint-disable-line no-param-reassign + } + if (error?.data?.error) { error = error.data.error; // eslint-disable-line no-param-reassign } return (
    - +
    - {t("widget.api_error")} {error.message && t("widget.information")} + + {t("widget.api_error")} {error.message && t("widget.information")}
    -
    +
      - {error.message &&
    • - {t("widget.api_error")}: {error.message} -
    • } - {error.url &&
    • - {t("widget.url")}: {error.url} -
    • } - {error.rawError &&
    • - {t("widget.raw_error")}: -
      - {displayError(error.rawError)} -
      -
    • } - {error.data &&
    • - {t("widget.response_data")}: -
      - {displayData(error.data)} -
      -
    • } + {error.message && ( +
    • + {t("widget.api_error")}: {error.message} +
    • + )} + {error.url && ( +
    • + {t("widget.url")}: {error.url} +
    • + )} + {error.rawError && ( +
    • + {t("widget.raw_error")}: +
      {displayError(error.rawError)}
      +
    • + )} + {error.data && ( +
    • + {t("widget.response_data")}: +
      {displayData(error.data)}
      +
    • + )}
    diff --git a/src/components/tab.jsx b/src/components/tab.jsx new file mode 100644 index 00000000..dc183fe4 --- /dev/null +++ b/src/components/tab.jsx @@ -0,0 +1,43 @@ +import classNames from "classnames"; +import { useContext } from "react"; +import { TabContext } from "utils/contexts/tab"; + +function slugify(tabName) { + return tabName.toString().replace(/\s+/g, "-").toLowerCase(); +} + +export function slugifyAndEncode(tabName) { + return tabName !== undefined ? encodeURIComponent(slugify(tabName)) : ""; +} + +export default function Tab({ tab }) { + const { activeTab, setActiveTab } = useContext(TabContext); + + const matchesTab = decodeURIComponent(activeTab) === slugify(tab); + + return ( +
  • + +
  • + ); +} diff --git a/src/components/toggles/color.jsx b/src/components/toggles/color.jsx index 29e81c0b..7ea700ab 100644 --- a/src/components/toggles/color.jsx +++ b/src/components/toggles/color.jsx @@ -1,8 +1,7 @@ -import { useContext, Fragment } from "react"; -import { IoColorPalette } from "react-icons/io5"; import { Popover, Transition } from "@headlessui/react"; import classNames from "classnames"; - +import { Fragment, useContext } from "react"; +import { IoColorPalette } from "react-icons/io5"; import { ColorContext } from "utils/contexts/color"; const colors = [ @@ -38,9 +37,9 @@ export default function ColorToggle() { } return ( -
    +
    - +