Merge remote-tracking branch 'origin/benphelpsMain' into LocalMain

This commit is contained in:
Karl Hudgell 2024-06-14 11:02:05 +01:00
commit 01b7431b66
228 changed files with 10749 additions and 4109 deletions

View File

@ -11,3 +11,6 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
[*.md]
trim_trailing_whitespace = false

3
.github/FUNDING.yml vendored
View File

@ -1,2 +1,3 @@
github: [gethomepage, benphelps, shamoon]
github: [gethomepage]
open_collective: homepage
patreon: gethomepage

33
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@ -0,0 +1,33 @@
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: |
## ⚠️ 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, please confirm the following
options:
- label: I confirm this was discussed, and the maintainers suggest I open an issue (note that AI bots are not maintainers).
required: true
- 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

View File

@ -2,7 +2,7 @@ blank_issues_enabled: false
contact_links:
- name: 🤔 Questions and Help
url: https://github.com/gethomepage/homepage/discussions
about: For support or general questions.
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.

View File

@ -1,12 +1,12 @@
## Proposed change
<!--
Please include a summary of the change. Screenshots and / or videos can also be helpful if appropriate.
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
*** Please see the development guidelines for new widgets: https://gethomepage.dev/latest/more/development/#service-widget-guidelines
*** If you do not follow these guidelines your PR will likely be closed without review.
New service widgets should include example(s) of relevant relevant API output as well updates to the docs for the new widget.
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
-->
Closes # (issue)

View File

@ -19,7 +19,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: crowdin action
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
upload_translations: false
download_translations: true

View File

@ -2,15 +2,15 @@ name: Docs
on:
push:
tags: [ 'v*.*.*' ]
branches: ['main']
tags: ["v*.*.*"]
branches: ["main"]
paths:
- 'docs/**'
- 'mkdocs.yml'
- "docs/**"
- "mkdocs.yml"
pull_request:
paths:
- 'docs/**'
- 'mkdocs.yml'
- "docs/**"
- "mkdocs.yml"
merge_group:
workflow_dispatch:
@ -22,16 +22,13 @@ jobs:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
-
name: Checkout repository
- name: Checkout repository
uses: actions/checkout@v4
-
name: Install python
- name: Install python
uses: actions/setup-python@v5
with:
python-version: 3.x
-
name: Check files
- name: Check files
uses: pre-commit/action@v3.0.1
test:
@ -55,6 +52,7 @@ jobs:
- run: sudo apt-get install pngquant
- run: pip install mike
- run: pip install mkdocs-material
- run: pip install "mkdocs-material[imaging]"
- name: Test Docs Build
run: MKINSIDERS=false mkdocs build
deploy:
@ -80,6 +78,7 @@ jobs:
- run: sudo apt-get install pngquant
- run: pip install mike==2.0.0
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
- run: pip install "mkdocs-material[imaging]"
- name: Set Git config
run: |
git config --global user.name "GitHub Action"

View File

@ -42,17 +42,17 @@ jobs:
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-respoistory-maintenance) for more details.
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-respoistory-maintenance) for more details.
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-respoistory-maintenance) for more details.
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
@ -92,7 +92,7 @@ jobs:
}`;
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-respoistory-maintenance) for more details.',
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)
@ -182,7 +182,7 @@ jobs:
}`;
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-respoistory-maintenance) for more details.',
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);
@ -260,7 +260,7 @@ jobs:
}`;
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-respoistory-maintenance) for more details.',
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);

View File

@ -18,7 +18,7 @@ In short, when you submit code changes, your submissions are understood to be un
## 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!
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
@ -48,15 +48,18 @@ Please see information in the docs regarding [code formatting with pre-commit ho
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 Respoistory Maintenance
## 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 that cannot be reproduced will be marked 'stale' after 7 days of inactivity and closed after 14 further days of inactivity.
- 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.

View File

@ -25,6 +25,13 @@
<a href="https://paypal.me/phelpsben" title="Donate"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/benphelps"></a>
</p>
<p align="center">
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>
</p>
<p align="center">
<em>Homepage builds are kindly powered by DigitalOcean.</em>
</p>
# Features
With features like quick search, bookmarks, weather support, a wide range of integrations and widgets, an elegant and modern design, and a focus on performance, Homepage is your ideal start to the day and a handy companion throughout it.
@ -41,7 +48,7 @@ With features like quick search, bookmarks, weather support, a wide range of int
## Docker Integration
Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker](https://gethomepage.dev/latest/installation/docker/) page for more information.
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/latest/configs/docker/#automatic-service-discovery) page for more information.
## Service Widgets
@ -59,6 +66,10 @@ Homepage is highly customizable, with support for custom themes, custom CSS & JS
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 KiB

BIN
docs/assets/sections.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

View File

@ -235,4 +235,4 @@ You can show the docker stats by clicking the status indicator but this can also
showStats: true
```
Also see the settings for [show docker stats](docker.md#show-docker-stats).
Also see the settings for [show docker stats](settings.md#show-docker-stats).

View File

@ -98,6 +98,8 @@ When the Kubernetes cluster connection has been properly configured, this servic
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.
### 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:

View File

@ -85,7 +85,7 @@ Or you may pass the path to a local image relative to the `/app/public` director
## Theme
You can configure a fixed them (and disable the theme switcher) by passing the `theme` option, like so:
You can configure a fixed theme (and disable the theme switcher) by passing the `theme` option, like so:
```yaml
theme: dark # or light
@ -211,13 +211,13 @@ layout:
### Five Columns
You can add a fifth column (when `style: columns` which is default) by adding:
You can add a fifth column to services (when `style: columns` which is default) by adding:
```yaml
fiveColumns: true
```
By default homepage will max out at 4 columns for column style
By default homepage will max out at 4 columns for services with `columns` style
### Collapsible sections
@ -363,7 +363,7 @@ providers:
You can then pass `provider` instead of `apiKey` in your widget configuration.
```yaml
- weather:
- weatherapi:
latitude: 50.449684
longitude: 30.525026
provider: weatherapi
@ -377,9 +377,10 @@ You can use the 'Quick Launch' feature to search services, perform a web search
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 off by default. When enabled, results that match the item name will be placed above those that only match the description.
- `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`: shows search suggestions for the internet search. This value will be inherited from the search widget if it is not specified. If it is not specified there either, it will default to false.
- `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
@ -388,6 +389,17 @@ quicklaunch:
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
@ -406,6 +418,8 @@ By default the homepage logfile is written to the a `logs` subdirectory of the `
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`:

View File

@ -17,3 +17,10 @@ hide:
A modern, <em>fully static, fast</em>, secure <em>fully proxied</em>, 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.
![Alt text](assets/homepage_demo.png)
<p align="center">
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%203.svg" alt="DigitalOcean Referral Badge" /></a>
</p>
<p align="center">
<em>Homepage builds are kindly powered by DigitalOcean.</em>
</p>

View File

@ -7,6 +7,10 @@ description: Docs intro
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
</p>
!!! danger
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.
<br>
<div class="grid cards" style="margin: 0 auto;" markdown>

View File

@ -361,3 +361,33 @@ spec:
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.
```
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
```

View File

@ -39,6 +39,11 @@ Once installed, hooks will run when you commit. If the formatting isn't quite ri
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 Guidelines
- New features should be linked to an existing feature request with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.

47
docs/overrides/main.html Normal file
View File

@ -0,0 +1,47 @@
{% extends "base.html" %}
{% block site_nav %}
<!-- Navigation -->
{% if nav %}
{% if page.meta and page.meta.hide %}
{% set hidden = "hidden" if "navigation" in page.meta.hide %}
{% endif %}
<div
class="md-sidebar md-sidebar--primary"
data-md-component="sidebar"
data-md-type="navigation"
{{ hidden }}
>
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
{% include "partials/nav.html" %}
{% if 'widgets/' not in page.url and 'more/' not in page.url %}
<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CWYIL2JU&placement=gethomepagedev&format=cover" id="_carbonads_js"></script>
{% endif %}
</div>
</div>
</div>
{% endif %}
<!-- Table of contents -->
{% if "toc.integrate" not in features %}
{% if page.meta and page.meta.hide %}
{% set hidden = "hidden" if "toc" in page.meta.hide %}
{% endif %}
<div
class="md-sidebar md-sidebar--secondary"
data-md-component="sidebar"
data-md-type="toc"
{{ hidden }}
>
<div class="md-sidebar__scrollwrap" style="height: 200px;">
<div class="md-sidebar__inner">
{% include "partials/toc.html" %}
{% if 'widgets/' in page.url or 'more/' in page.url %}
<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CWYIL2JU&placement=gethomepagedev&format=cover" id="_carbonads_js"></script>
{% endif %}
</div>
</div>
</div>
{% endif %}
{% endblock %}

View File

@ -1,16 +1,16 @@
[data-md-toggle="search"]:not(:checked) ~ .md-header .md-search__form::after {
position: absolute;
top: .3rem;
right: .3rem;
top: 0.3rem;
right: 0.3rem;
display: block;
padding: .1rem .4rem;
padding: 0.1rem 0.4rem;
color: var(--md-default-fg-color--lighter);
font-weight: bold;
font-size: .8rem;
border: .05rem solid var(--md-default-fg-color--lighter);
border-radius: .1rem;
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 {
@ -22,3 +22,23 @@
#glimeRoot * {
font-family: var(--md-text-font) !important;
}
#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;
}
.md-typeset__table {
width: 100%;
}
.md-typeset table:not([class]) {
display: table;
}

View File

@ -0,0 +1,50 @@
---
title: API Guide
description: How to fetch data from an API in Homepage widgets.
---
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](widget.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](widget.md#params). This is done to prevent arbitrary query parameters from being passed to the API.

View File

@ -0,0 +1,102 @@
---
title: Component Guide
description: How to create and configure Homepage widget components.
---
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 <Container service={service} error={error} />;
}
if (!data) {
return (
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
);
}
return (
<Container service={service}>
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
<Block label="yourwidget.key2" value={t("common.number", { value: data.key2 })} />
<Block label="yourwidget.key3" value={t("common.number", { value: data.key3 })} />
</Container>
);
}
```
### 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.png)
**`<Container>`**
This component is a wrapper for the widget. It provides a consistent layout for all widgets.
```js
<Container service={service}></Container>
```
`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
<Container service={service} error={error}></Container>
```
**`<Block>`**
This component is used to display a key-value pair. It takes a label and value as props.
```js
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
```
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
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
```

View File

@ -0,0 +1,289 @@
---
title: Widget Guide
description: How to create a custom widget for Homepage.
---
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.
## 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 nativly 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.
## 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 <Container>` and `#!jsx <Block>` are custom components that we'll use to structure our widget.
3. `#!jsx <Container>` and `#!jsx <Block>` 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 <Container service={service} error={error} />;
}
```
---
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 (
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
);
}
```
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 (
<Container service={service}>
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
<Block label="yourwidget.key2" value={t("common.number", { value: data.key2 })} />
<Block label="yourwidget.key3" value={t("common.number", { value: data.key3 })} />
</Container>
);
```
---
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 <Container service={service} error={error} />;
}
if (!data) {
return (
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
);
}
return (
<Container service={service}>
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
<Block label="yourwidget.key2" value={t("common.number", { value: data.key2 })} />
<Block label="yourwidget.key3" value={t("common.number", { value: data.key3 })} />
</Container>
);
}
```
## 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!

View File

@ -0,0 +1,34 @@
---
title: Homepage Widget Guides
description: How to create and configure Homepage widgets.
---
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 Guide](guide.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).
The Homepage community prides itself on being multilingual, and we strongly encourage you to add translations for your widgets.
If you are looking 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.
If you are looking 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.
If you are looking to learn more about widget metadata, endpoint and data mapping, please refer to the guide here: [Metadata Guide](widget.md).
If you are looking to learn more about proxy handlers, please refer to the guide here: [Proxies Guide](proxies.md).
If you are looking to learn more making API calls from inside your widget, please refer to the guide here: [API Guide](api.md).

View File

@ -0,0 +1,178 @@
---
title: Proxies Guide
description: How to use and create Homepage widget proxies.
---
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 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. Where the endpoint is the method to call.
=== "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" },
},
};
```
=== "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
```
### `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.

View File

@ -0,0 +1,80 @@
---
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).
The Homepage community prides itself on being multilingual, and we strongly encourage you to add translations for your widgets.
## 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 (
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
);
}
```
=== "en.json"
```json
"yourwidget": {
"key1": "Value 1",
"key2": "Value 2",
"key3": "Value 3"
}
```
## 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.uptime` | `1 day, 1 hour` | Format an uptime. |
### 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. |

View File

@ -0,0 +1,310 @@
---
title: Metadata Guide
description: How to create and configure Homepage widget metadata.
---
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 widgets 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.

View File

@ -12,6 +12,7 @@ The Glances widget allows you to monitor the resources (CPU, memory, storage, te
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

View File

@ -13,6 +13,8 @@ No registration is required at all! See [https://open-meteo.com/en/docs](https:/
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).

View File

@ -14,6 +14,8 @@ The free tier "One Call API" is all that's required, you will need to [subscribe
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).

View File

@ -19,6 +19,8 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation]
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
refresh: 3000 # optional, in ms

View File

@ -15,6 +15,8 @@ The free tier is all that's required, you will need to [register](https://www.we
units: metric # or imperial
apiKey: yourweatherapikey
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).

View File

@ -7,14 +7,13 @@ 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. To do so follow these steps:
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".
1. Navigate to the Authentik Admin Portal
2. Expand Directory, the click Tokens & App passwords
3. Click the Create button
4. Fill out the dialog making sure to set Intent to API Token
5. Click the Create button on the dialog
6. Click the copy button on the far right of the newly created 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"]`.

View File

@ -7,10 +7,10 @@ Learn more about [Azure DevOps](https://azure.microsoft.com/en-us/products/devop
This widget has 2 functions:
1. Pipelines: checks if the relevant pipeline is running or not, and if not, reports the last status.\
1. Pipelines: checks if the relevant pipeline is running or not, and if not, reports the last status.<br>
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.\
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.<br>
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)

View File

@ -8,5 +8,5 @@ Learn more about [Channels DVR Server](https://getchannels.com/dvr-server/).
```yaml
widget:
type: channelsdvrserver
url: http://192.168.1.55:8089
url: http://server.host.or.ip:port
```

View File

@ -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
```

View File

@ -11,22 +11,27 @@ An optional 'volume' parameter can be supplied to specify which volume's free sp
Allowed fields: `["uptime", "volumeAvailable", "resources.cpu", "resources.mem"]`.
To access these system metrics you need to connect to the DiskStation 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:
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 `Download Station` application, either by
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 `Download Station` row, click `Save`.
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, 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.
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:

View File

@ -16,4 +16,7 @@ widget:
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
```

View File

@ -0,0 +1,19 @@
---
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
```

View File

@ -5,9 +5,9 @@ description: Gitea Widget Configuration
Learn more about [Gitea](https://gitea.com).
API token requires `notifications` and `repository` permissions. See the [gitea documentation](https://docs.gitea.com/development/api-usage#generating-and-listing-api-tokens) for details on generating tokens.
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: ["notifications", "issues", "pulls"]
Allowed fields: `["notifications", "issues", "pulls"]`.
```yaml
widget:

View File

@ -17,8 +17,11 @@ widget:
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:_

View File

@ -18,7 +18,7 @@ The `custom` property will have no effect as long as the `fields` property is de
- 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]
- `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

View File

@ -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
```

View File

@ -5,7 +5,7 @@ description: Jackett Widget Configuration
Learn more about [Jackett](https://github.com/Jackett/Jackett).
Jackett must not have any authentication for the widget to work.
If Jackett has an admin password set, you must set the `password` field for the widget to work.
Allowed fields: `["configured", "errored"]`.
@ -13,5 +13,5 @@ Allowed fields: `["configured", "errored"]`.
widget:
type: jackett
url: http://jackett.host.or.ip
key: jackettapikey
password: jackettadminpassword # optional
```

View File

@ -16,4 +16,7 @@ widget:
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
```

View File

@ -3,7 +3,7 @@ title: Medusa
description: Medusa Widget Configuration
---
Learn more about [Medusa](https://github.com/medusajs/medusa).
Learn more about [Medusa](https://github.com/pymedusa/Medusa).
Allowed fields: `["wanted", "queued", "series"]`.

View File

@ -3,7 +3,7 @@ title: MJPEG
description: MJPEG Stream Widget Configuration
---
![camera-preview](https://github.com/gethomepage/homepage-docs/assets/82196/dc375ae3-0670-489f-8db6-83ff1f423d12)
![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).

View File

@ -0,0 +1,16 @@
---
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"]`.
```yaml
widget:
type: netalertx
url: http://ip:port
```

View File

@ -26,7 +26,7 @@ In order for homepage to access the OpenWRT RPC endpoints you will need to [crea
Create an ACL named `homepage.json` in `/usr/share/rpcd/acl.d/`, the following permissions will suffice:
```
```json
{
"homepage": {
"description": "Homepage widget",
@ -34,21 +34,27 @@ Create an ACL named `homepage.json` in `/usr/share/rpcd/acl.d/`, the following p
"ubus": {
"network.interface.wan": ["status"],
"network.interface.lan": ["status"],
"network.device": ["status"]
"network.device": ["status"],
"system": ["info"]
}
},
}
}
}
```
Then add a user that will use that ACL in `/etc/config/rpc`:
Create a `crypt(5)` password hash using the following command in the OpenWRT shell:
```config login
```sh
uhttpd -m "<somepassphrase>"
```
Then add a user that will use the ACL and hashed password in `/etc/config/rpcd`:
```
config login
option username 'homepage'
option password '<password>'
option password '<hashedpassword>'
list read homepage
list write '*'
```
This username and password will be used in Homepage's services.yaml to grant access.

View File

@ -9,7 +9,7 @@ This widget adds support for [Network UPS Tools](https://networkupstools.org/) v
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"]`
Allowed fields: `["battery_charge", "ups_load", "ups_status"]`.
!!! note

View File

@ -9,9 +9,9 @@ This widget requires the installation of the [pfsense-api](https://github.com/ja
Once pfSense API is installed, you can set the API to be read-only in System > API > Settings.
Currently the only supported authentication mode is 'Local Database'.
There are two currently supported authentication modes: 'Local Database' and 'API Token'. For 'Local Database', use `username` and `password` with the credentials of an admin user. For 'API Token', utilize the `headers` parameter with `client_token` and `client_id` obtained from pfSense as shown below. Do not use both headers and username / password.
WAN interface to monitor can be defined by updating the `wan` param.
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.
@ -21,7 +21,10 @@ Allowed fields: `["load", "memory", "temp", "wanStatus", "wanIP", "disk"]` (maxi
widget:
type: pfsense
url: http://pfsense.host.or.ip:port
username: user
password: pass
username: user # optional, or API token
password: pass # optional, or API token
headers: # optional, or username/password
Authorization: client_id client_token
wan: igb0
fields: ["load", "memory", "temp", "wanStatus"] # optional
```

View File

@ -1,16 +0,0 @@
---
title: PiAlert
description: PiAlert Widget Configuration
---
Learn more about [PiAlert](https://github.com/jokob-sk/Pi.Alert).
Note that [pucherot/PiAlert](https://github.com/pucherot/Pi.Alert) has been abandoned and might not work properly.
Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
```yaml
widget:
type: pialert
url: http://ip:port
```

View File

@ -9,11 +9,14 @@ As of v2022.12 [PiHole requires the use of an API key](https://pi-hole.net/blog/
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
```
_Added in v0.1.0, updated in v0.6.18_
_Added in v0.1.0, updated in v0.8.9_

View File

@ -7,6 +7,8 @@ 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

View File

@ -14,4 +14,7 @@ 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
```

View File

@ -5,7 +5,7 @@ description: Prometheus Widget Configuration
Learn more about [Prometheus](https://github.com/prometheus/prometheus).
Allowed fields: `["targets_up", "targets_down", "targets_total"]`
Allowed fields: `["targets_up", "targets_down", "targets_total"]`.
```yaml
widget:

View File

@ -5,7 +5,7 @@ description: Pterodactyl Widget Configuration
Learn more about [Pterodactyl](https://github.com/pterodactyl).
Allowed fields: `["nodes", "servers"]`
Allowed fields: `["nodes", "servers"]`.
```yaml
widget:

View File

@ -16,4 +16,5 @@ Allowed fields: `["download", "upload", "ping"]`.
widget:
type: speedtest
url: http://speedtest.host.or.ip
bitratePrecision: 3 # optional, default is 0
```

View File

@ -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
```

View File

@ -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
```

View File

@ -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
```

View File

@ -11,6 +11,8 @@ To create an API Key, follow [the official TrueNAS documentation](https://www.tr
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
@ -19,4 +21,5 @@ widget:
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
```

View File

@ -5,7 +5,7 @@ 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 (without the `/status/` portion).
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"]`.

View File

@ -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
```

View File

@ -1,11 +1,9 @@
---
title: Whats Up Docker
description: WhatsUpDocker Widget Configuration
title: What's Up Docker
description: What's Up Docker Widget Configuration
---
Learn more about [Whats Up Docker](https://github.com/fmartinou/whats-up-docker).
Currently requires unauthenticated whatsupdocker instance.
Learn more about [What's Up Docker](https://github.com/fmartinou/whats-up-docker).
Allowed fields: `["monitoring", "updates"]`.
@ -13,4 +11,6 @@ Allowed fields: `["monitoring", "updates"]`.
widget:
type: whatsupdocker
url: http://whatsupdocker:port
username: username # optional
password: password # optional
```

View File

@ -44,11 +44,13 @@ nav:
- 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/diskstation.md
- widgets/services/downloadstation.md
- widgets/services/emby.md
- widgets/services/esphome.md
- widgets/services/evcc.md
- widgets/services/fileflows.md
- widgets/services/flood.md
@ -65,6 +67,7 @@ nav:
- widgets/services/hdhomerun.md
- widgets/services/healthchecks.md
- widgets/services/homeassistant.md
- widgets/services/homebox.md
- widgets/services/homebridge.md
- widgets/services/iframe.md
- widgets/services/immich.md
@ -87,6 +90,7 @@ nav:
- widgets/services/mylar.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
@ -97,12 +101,12 @@ nav:
- 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/pialert.md
- widgets/services/pihole.md
- widgets/services/plantit.md
- widgets/services/plex-tautulli.md
@ -124,8 +128,11 @@ nav:
- widgets/services/scrutiny.md
- widgets/services/sonarr.md
- widgets/services/speedtest-tracker.md
- widgets/services/stash.md
- widgets/services/swagdashboard.md
- widgets/services/syncthing-relay-server.md
- widgets/services/tailscale.md
- widgets/services/tandoor.md
- widgets/services/tdarr.md
- widgets/services/traefik.md
- widgets/services/transmission.md
@ -153,6 +160,14 @@ nav:
- widgets/info/search.md
- widgets/info/unifi_controller.md
- widgets/info/weather.md
- "Guides":
- widgets/authoring/index.md
- widgets/authoring/guide.md
- widgets/authoring/component.md
- widgets/authoring/widget.md
- widgets/authoring/proxies.md
- widgets/authoring/api.md
- widgets/authoring/translations.md
- more/troubleshooting.md
- "More":
- more/index.md
@ -162,6 +177,7 @@ nav:
theme:
name: material
custom_dir: docs/overrides
language: en
palette:
- media: "(prefers-color-scheme)"
@ -195,6 +211,7 @@ theme:
- navigation.tabs
- navigation.sections
- navigation.indexes
- content.code.annotate
extra_css:
- "stylesheets/extra.css"
@ -223,6 +240,8 @@ markdown_extensions:
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.critic
- pymdownx.caret
- pymdownx.keys
@ -239,7 +258,12 @@ plugins:
plugins:
- optimize
- typeset
- social
- social:
cards_layout: default/variant
cards_layout_options:
background_image: docs/assets/BlossomValley.jpg
background_color: "rgba(13, 29, 41, 128)"
color: "#ffffff"
- tags
- search:
pipeline:

1060
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,7 @@
"classnames": "^2.5.1",
"compare-versions": "^6.1.0",
"dockerode": "^4.0.2",
"follow-redirects": "^1.15.5",
"follow-redirects": "^1.15.6",
"gamedig": "^4.3.1",
"i18next": "^21.10.0",
"js-yaml": "^4.1.0",
@ -29,15 +29,15 @@
"ping": "^0.4.4",
"pretty-bytes": "^6.1.1",
"raw-body": "^2.5.2",
"react": "^18.2.0",
"react": "^18.3.1",
"react-dom": "^18.2.0",
"react-i18next": "^11.18.6",
"salted-md5": "^4.0.5",
"react-icons": "^4.12.0",
"recharts": "^2.11.0",
"recharts": "^2.12.6",
"rrule": "^2.8.1",
"swr": "^1.3.0",
"systeminformation": "^5.21.24",
"systeminformation": "^5.22.7",
"tough-cookie": "^4.1.3",
"urbackup-server-api": "^0.8.9",
"winston": "^3.11.0",
@ -46,20 +46,20 @@
"devDependencies": {
"@tailwindcss/forms": "^0.5.7",
"autoprefixer": "^10.4.17",
"eslint": "^8.56.0",
"eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^12.3.4",
"eslint-config-next": "^14.2.3",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.33",
"prettier": "^3.2.4",
"eslint-plugin-react": "^7.34.2",
"eslint-plugin-react-hooks": "^4.6.2",
"postcss": "^8.4.38",
"prettier": "^3.2.5",
"tailwind-scrollbar": "^3.0.5",
"tailwindcss": "^3.4.1",
"typescript": "^4.9.5"
"tailwindcss": "^3.4.3",
"typescript": "^5.4.5"
},
"optionalDependencies": {
"osx-temperature-sensor": "^1.0.8"

1130
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Liedjies"
},
"esphome": {
"offline": "Vanlyn",
"offline_alt": "Vanlyn",
"online": "Aanlyn",
"total": "Totaal",
"unknown": "Onbekend"
},
"evcc": {
"pv_power": "Produksie",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Goedgekeur",
"available": "Beskikbaar"
},
"pialert": {
"netalertx": {
"total": "Totaal",
"connected": "Gekoppel",
"new_devices": "Nuwe Toestelle",
@ -419,7 +426,8 @@
"search": "Soek",
"custom": "Pasgemaak",
"visit": "Besoek",
"url": "URL"
"url": "URL",
"searchsuggestion": "Voorstelling"
},
"wmo": {
"0-day": "Sonnig",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanale",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Kanaal",
"channelNetwork": "Netwerk",
"signalStrength": "Sterkte",
"signalQuality": "Kwaliteit",
"symbolQuality": "Kwaliteit",
"networkRate": "Bistempo",
"clientIP": "Kliënt"
},
"scrutiny": {
"passed": "Geslaag",
@ -694,6 +710,11 @@
"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",
@ -775,6 +796,14 @@
"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",
@ -797,11 +826,67 @@
"noEventsFound": "Geen gebeure gevind nie"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platform",
"totalRoms": "Totale ROMs"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Waarskuwings",
"criticals": "Kritici"
},
"plantit": {
"events": "Gebeure",
"plants": "Plante",
"photos": "Foto's",
"species": "Spesies"
},
"gitea": {
"notifications": "Kennisgewings",
"issues": "Kwessies",
"pulls": "Trek Versoeke"
},
"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": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "حلقات",
"songs": "أغاني"
},
"esphome": {
"offline": "غير متصل",
"offline_alt": "غير متصل",
"online": "مُتّصل",
"total": "المجموع",
"unknown": "مجهول"
},
"evcc": {
"pv_power": "إنتاج",
"battery_soc": "البطارية",
@ -133,7 +140,7 @@
"connectionStatusPendingDisconnect": "في انتظار قطع الاتصال",
"connectionStatusDisconnecting": "جار قطع الاتصال",
"connectionStatusDisconnected": "غير متصل",
"connectionStatusConnected": "متصل",
"connectionStatusConnected": "Connected",
"uptime": "مدة التشغيل",
"maxDown": "أقصى حد للتنزيل",
"maxUp": "أقصى حد للتحميل",
@ -270,11 +277,11 @@
"approved": "مصدق",
"available": "متاح"
},
"pialert": {
"netalertx": {
"total": "المجموع",
"connected": "متصل",
"new_devices": "أجهزة جديدة",
"down_alerts": "تنبيهات تعطل الخوادم"
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "الاستعلامات",
@ -419,7 +426,8 @@
"search": "البحث",
"custom": "مُخصّص",
"visit": "زيارة",
"url": "الرابط"
"url": "الرابط",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "مشمس",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "القنوات",
"hd": "جودة HD"
"hd": "جودة HD",
"tunerCount": "Tuners",
"channelNumber": "القناة",
"channelNetwork": "الشبكة",
"signalStrength": "القوة",
"signalQuality": "الجودة",
"symbolQuality": "الجودة",
"networkRate": "معدل البت",
"clientIP": "العميل"
},
"scrutiny": {
"passed": "إجتاز",
@ -694,6 +710,11 @@
"targets_down": "الأهداف لا تعمل",
"targets_total": "الأهداف الإجمالية"
},
"gatus": {
"up": "المواقع تعمل",
"down": "مواقع لا تعمل",
"uptime": "مدة التشغيل"
},
"ghostfolio": {
"gross_percent_today": "اليوم",
"gross_percent_1y": "سنة",
@ -775,6 +796,14 @@
"passed": "إجتاز",
"failed": "فشل"
},
"openwrt": {
"uptime": "مدة التشغيل",
"cpuLoad": "متوسط حمولة المعالج (5دق)",
"up": "يعمل",
"down": "لا يعمل",
"bytesTx": "مرسلة",
"bytesRx": "تم الإستلام"
},
"uptimerobot": {
"status": "الحالة",
"uptime": "مدة التشغيل",
@ -797,11 +826,67 @@
"noEventsFound": "لم يتم العثور على أحداث"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "المِنصات",
"totalRoms": "مجموع الروومات"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "تحذيرات",
"criticals": "حرج"
},
"plantit": {
"events": "أحداث",
"plants": "نباتات",
"photos": "الصور",
"species": "الأنواع"
},
"gitea": {
"notifications": "الإشعارات",
"issues": "المُشكِلات",
"pulls": "طلبات السحب"
},
"stash": {
"scenes": "المشاهد",
"scenesPlayed": "Scenes Played",
"playCount": "إجمالي المشغلات",
"playDuration": "وقت المشاهدة",
"sceneSize": "حجم المشاهد",
"sceneDuration": "مدة المشهد",
"images": "صور",
"imageSize": "حجم الصور",
"galleries": "المعارض",
"performers": "Performers",
"studios": "استوديوهات",
"movies": "أفلام",
"tags": "التصنيفات",
"oCount": "عدد O"
},
"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": "Connected",
"enabled": "مفعل",
"disabled": "معطل",
"total": "المجموع"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Изключен",
"offline_alt": "Изключен",
"online": "Online",
"total": "Общо",
"unknown": "Неизв."
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -133,7 +140,7 @@
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Свързано",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
@ -270,10 +277,10 @@
"approved": "Одобрен",
"available": "Наличен"
},
"pialert": {
"netalertx": {
"total": "Общо",
"connected": "Свързано",
"new_devices": "Нови устройства",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
@ -419,7 +426,8 @@
"search": "Търсене",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Слънчево",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Канали",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Статус",
"uptime": "Uptime",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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": "Connected",
"enabled": "Активирано",
"disabled": "Деактивирано",
"total": "Общо"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -14,7 +14,7 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "mes",
"days": "d",
"hours": "h",
"minutes": "m",
@ -46,8 +46,8 @@
"used": "Utilitzat",
"load": "Càrrega",
"temp": "TEMP",
"max": "Max",
"uptime": "UP"
"max": "Màx.",
"uptime": "ACTIU"
},
"unifi": {
"users": "Usuaris",
@ -61,58 +61,65 @@
"wlan_devices": "Dispositius WLAN",
"lan_users": "Usuaris LAN",
"wlan_users": "Usuaris WLAN",
"up": "UP",
"up": "ACTIU",
"down": "INACTIU",
"wait": "Si us plau, espereu",
"empty_data": "Subsystem status unknown"
"empty_data": "Estat del subsistema desconegut"
},
"docker": {
"rx": "Rebut",
"tx": "Transmès",
"mem": "MEM",
"cpu": "CPU",
"running": "Running",
"running": "En execució",
"offline": "Fora de línia",
"error": "Error",
"unknown": "Desconegut",
"healthy": "Healthy",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial"
"healthy": "Saludable",
"starting": "Iniciant",
"unhealthy": "No saludable",
"not_found": "No trobat",
"exited": "Tancat",
"partial": "Parcial"
},
"ping": {
"error": "Error",
"ping": "Ping",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"ping": "Latència",
"down": "Inactiu",
"up": "Actiu",
"not_available": "No Disponible"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "Estat HTTP",
"error": "Error",
"response": "Response",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"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": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Producció",
"battery_soc": "Bateria",
"grid_power": "Xarxa",
"home_power": "Consum",
"charge_power": "Carregador",
"watt_hour": "Wh"
},
"flood": {
@ -122,55 +129,55 @@
"seed": "Llavor"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Subcripcions",
"unread": "Sense llegir"
},
"fritzbox": {
"connectionStatus": "Estat",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"connectionStatusUnconfigured": "Sense configurar",
"connectionStatusConnecting": "Connectant",
"connectionStatusAuthenticating": "Autenticant",
"connectionStatusPendingDisconnect": "Desconnexió pendent",
"connectionStatusDisconnecting": "Desconnectant",
"connectionStatusDisconnected": "Desconnectat",
"connectionStatusConnected": "Connectat",
"uptime": "Temps actiu",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"maxDown": "Màx. Descàrrega",
"maxUp": "Màx. Càrrega",
"down": "Inactiu",
"up": "Actiu",
"received": "Rebuts",
"sent": "Enviats",
"externalIPAddress": "IP ext."
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Peticions actuals",
"requests_failed": "Peticions fallides"
},
"changedetectionio": {
"totalObserved": "Total d'observats",
"diffsDetected": "Diferències detectades"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Sèries",
"recordings": "Gravacions",
"scheduled": "Programat",
"passes": "Aprovat"
},
"tautulli": {
"playing": "Reproduint",
"transcoding": "Transcodificant",
"bitrate": "Taxa de bits",
"no_active": "Sense reproduccions actives",
"plex_connection_error": "Check Plex Connection"
"plex_connection_error": "Comprova la connexió de Plex"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
"connectedAp": "AP connectats",
"activeUser": "Dispositius actius",
"alerts": "Alertes",
"connectedGateway": "Pasarel·les connectades",
"connectedSwitches": "Conmutadors connectats"
},
"nzbget": {
"rate": "Taxa",
@ -180,7 +187,7 @@
"plex": {
"streams": "Transmissions actives",
"albums": "Àlbums",
"movies": "Movies",
"movies": "Pel·lícules",
"tv": "Sèries"
},
"sabnzbd": {
@ -206,12 +213,12 @@
"seed": "Llavor"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
"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",
@ -228,7 +235,7 @@
"sonarr": {
"wanted": "Volgut",
"queued": "En cua",
"series": "Series",
"series": "Sèries",
"queue": "Cua",
"unknown": "Desconegut"
},
@ -236,14 +243,14 @@
"wanted": "Volgut",
"missing": "Faltant",
"queued": "En cua",
"movies": "Movies",
"movies": "Pel·lícules",
"queue": "Cua",
"unknown": "Desconegut"
},
"lidarr": {
"wanted": "Volgut",
"queued": "En cua",
"artists": "Artists"
"artists": "Artistes"
},
"readarr": {
"wanted": "Volgut",
@ -270,17 +277,17 @@
"approved": "Aprovat",
"available": "Disponible"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
"connected": "Connectat",
"new_devices": "Nous dispositius",
"down_alerts": "Alertes de caigudes"
},
"pihole": {
"queries": "Consultes",
"blocked": "Bloquejat",
"blocked_percent": "Blocked %",
"gravity": "Gravity"
"blocked_percent": "Bloquejat %",
"gravity": "Gravetat"
},
"adguard": {
"queries": "Consultes",
@ -291,37 +298,37 @@
"speedtest": {
"upload": "Pujada",
"download": "Descarregar",
"ping": "Ping"
"ping": "Latència"
},
"portainer": {
"running": "Running",
"running": "En execució",
"stopped": "Aturat",
"total": "Total"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"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": "{{value}} Ago"
"ago": "Fa {{value}}"
},
"tdarr": {
"queue": "Cua",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
"processed": "Processat",
"errored": "Error",
"saved": "Desat"
},
"traefik": {
"routers": "Encaminadors",
"services": "Serveis",
"middleware": "Middleware"
"middleware": "Intermediari"
},
"navidrome": {
"nothing_streaming": "Sense reproduccions actives",
@ -353,7 +360,7 @@
},
"jackett": {
"configured": "Configurat",
"errored": "Errored"
"errored": "Error"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
@ -369,18 +376,18 @@
"medusa": {
"wanted": "Volgut",
"queued": "En cua",
"series": "Series"
"series": "Sèries"
},
"minecraft": {
"players": "Players",
"version": "Version",
"players": "Jugadors",
"version": "Versió",
"status": "Estat",
"up": "Online",
"up": "En línia",
"down": "Fora de línia"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
"read": "Llegir",
"unread": "Sense llegir"
},
"authentik": {
"users": "Usuaris",
@ -399,27 +406,28 @@
"wait": "Si us plau, espereu",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"warn": "Avís",
"uptime": "ACTIU",
"total": "Total",
"free": "Lliure",
"used": "Utilitzat",
"days": "d",
"hours": "h",
"crit": "Crit",
"read": "Read",
"write": "Write",
"crit": "Crític",
"read": "Llegir",
"write": "Escriure",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
"swap": "Intercanvi"
},
"quicklaunch": {
"bookmark": "Marcador",
"service": "Servei",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"search": "Cercar",
"custom": "Personalitzat",
"visit": "Visitar",
"url": "URL",
"searchsuggestion": "Suggeriment"
},
"wmo": {
"0-day": "Assolellat",
@ -484,21 +492,21 @@
"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",
"up": "Actiu",
"pending": "Pendent",
"down": "Down"
"down": "Inactiu"
},
"healthchecks": {
"new": "New",
"up": "Up",
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"new": "Nou",
"up": "Actiu",
"grace": "En Període de gràcia",
"down": "Inactiu",
"paused": "En pausa",
"status": "Estat",
"last_ping": "Last Ping",
"never": "No pings yet"
"last_ping": "Últim ping",
"never": "Sense pings"
},
"watchtower": {
"containers_scanned": "Escanejat",
@ -520,7 +528,7 @@
"truenas": {
"load": "Càrrega del sistema",
"uptime": "Temps actiu",
"alerts": "Alerts"
"alerts": "Alertes"
},
"pyload": {
"speed": "Velocitat",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canals",
"hd": "HD"
"hd": "HD",
"tunerCount": "Sintonitzadors",
"channelNumber": "Canal",
"channelNetwork": "Xarxa",
"signalStrength": "Intensitat",
"signalQuality": "Qualitat",
"symbolQuality": "Qualitat",
"networkRate": "Taxa de bits",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Aprobat",
@ -547,94 +563,94 @@
"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"
"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": "Espereu si us plau",
"no_devices": "No Device Data Received"
"no_devices": "No s'han rebut dades del Dispositiu"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"cpuLoad": "Càrrega de CPU",
"memoryUsed": "Memoria en ús",
"uptime": "Temps actiu",
"numberOfLeases": "Leases"
"numberOfLeases": "IPs assignades"
},
"xteve": {
"streams_all": "All Streams",
"streams_all": "Tots els fluxos",
"streams_active": "Transmissions actives",
"streams_xepg": "XEPG Channels"
"streams_xepg": "Canals XEPG"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"limit": "Limit"
"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",
"printer_state": "Estat de l'impressora",
"print_status": "Estat de l'impressió",
"print_progress": "Progress",
"layers": "Layers"
"layers": "Capes"
},
"octoprint": {
"printer_state": "Estat",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
"temp_tool": "Temperatura capçal",
"temp_bed": "Temperatura llit",
"job_completion": "Finalització"
},
"cloudflared": {
"origin_ip": "Origin IP",
"origin_ip": "IP Origen",
"status": "Estat"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"load": "Promig Càrrega",
"memory": "Ús Memòria",
"wanStatus": "Estat WAN",
"up": "Actiu",
"down": "Inactiu",
"temp": "Temp",
"disk": "Disk Usage",
"disk": "Ús Disc",
"wanIP": "WAN IP"
},
"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": "Usuaris",
"photos": "Photos",
"photos": "Fotos",
"videos": "Vídeos",
"storage": "Storage"
"storage": "Emmagatzematge"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"up": "Actius",
"down": "Caiguts",
"uptime": "Temps actiu",
"incident": "Incident",
"incident": "Incidència",
"m": "m"
},
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"series": "Sèries",
"archives": "Arxius",
"chapters": "Capítols",
"categories": "Categories"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"libraries": "Biblioteques",
"series": "Sèries",
"books": "Llibres"
},
"diskstation": {
@ -643,72 +659,77 @@
"volumeAvailable": "Disponible"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"series": "Sèries",
"issues": "Problemes",
"wanted": "Volgut"
},
"photoprism": {
"albums": "Àlbums",
"photos": "Photos",
"photos": "Fotos",
"videos": "Vídeos",
"people": "People"
"people": "Gent"
},
"fileflows": {
"queue": "Cua",
"processing": "Processant",
"processed": "Processed",
"time": "Time"
"processed": "Processat",
"time": "Temps"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "Taulells",
"datasources": "Origen 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": "Estat",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"size": "Mida",
"lastrun": "Darrera execució",
"nextrun": "Següent execució",
"failed": "Error"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"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"
},
"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": "Tot"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Llibres",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcastsDuration": "Durada",
"booksDuration": "Durada"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Gent a casa",
"lights_on": "Llums enceses",
"switches_on": "Endolls activats"
},
"whatsupdocker": {
"monitoring": "Supervisió",
@ -716,92 +737,156 @@
},
"calibreweb": {
"books": "Llibres",
"authors": "Authors",
"authors": "Autors",
"categories": "Categories",
"series": "Series"
"series": "Sèries"
},
"jdownloader": {
"downloadCount": "Cua",
"downloadBytesRemaining": "Restant",
"downloadTotalBytes": "Size",
"downloadTotalBytes": "Mida",
"downloadSpeed": "Velocitat"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
"seriesCount": "Sèries",
"totalFiles": "Fitxers"
},
"azuredevops": {
"result": "Result",
"result": "Resultat",
"status": "Estat",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"buildId": "Id de compilació",
"succeeded": "Amb èxit",
"notStarted": "No Iniciat",
"failed": "Error",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"canceled": "Cancel·lat",
"inProgress": "En curs",
"totalPrs": "RP Totals",
"myPrs": "Els meus RP",
"approved": "Aprovat"
},
"gamedig": {
"status": "Estat",
"online": "Online",
"online": "En línia",
"offline": "Fora de línia",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"name": "Nom",
"map": "Mapa",
"currentPlayers": "Jugadors actuals",
"players": "Jugadors",
"maxPlayers": "Màxim de jugadors",
"bots": "Bots",
"ping": "Ping"
"ping": "Latència"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"noRecent": "Obsolet",
"totalUsed": "Emmagatzematge utilitzat"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Receptes",
"users": "Usuaris",
"categories": "Categories",
"tags": "Tags"
"tags": "Etiquetes"
},
"openmediavault": {
"downloading": "Downloading",
"downloading": "Descarregant",
"total": "Total",
"running": "Running",
"running": "En execució",
"stopped": "Aturat",
"passed": "Aprobat",
"failed": "Error"
},
"openwrt": {
"uptime": "Temps actiu",
"cpuLoad": "Càrrega promig de CPU (5m)",
"up": "Actiu",
"down": "Inactiu",
"bytesTx": "Enviat",
"bytesRx": "Rebuts"
},
"uptimerobot": {
"status": "Estat",
"uptime": "Temps actiu",
"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",
"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": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "En cines",
"physicalRelease": "Estrena física",
"digitalRelease": "Estrena digital",
"noEventsToday": "Cap esdeveniment per avui!",
"noEventsFound": "No s'han trobat esdeveniments"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Plataformes",
"totalRoms": "ROMs totals"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"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"
},
"stash": {
"scenes": "Escenes",
"scenesPlayed": "Escenes reproduïdes",
"playCount": "Total reproduccions",
"playDuration": "Temps visionat",
"sceneSize": "Tamany Escena",
"sceneDuration": "Duració Escenes",
"images": "Imatges",
"imageSize": "Mida 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": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -14,7 +14,7 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "měs.",
"days": "d",
"hours": "h",
"minutes": "m",
@ -39,7 +39,7 @@
"placeholder": "Hledat…"
},
"resources": {
"cpu": "Procesor",
"cpu": "CPU",
"mem": "RAM",
"total": "Celkem",
"free": "Volné",
@ -70,7 +70,7 @@
"rx": "RX",
"tx": "TX",
"mem": "RAM",
"cpu": "Procesor",
"cpu": "CPU",
"running": "Běží",
"offline": "Offline",
"error": "Chyba",
@ -87,15 +87,15 @@
"ping": "Odezva",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"not_available": "Není k dispozici"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "Stav HTTP",
"error": "Chyba",
"response": "Response",
"response": "Odpověď",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"not_available": "Není k dispozici"
},
"emby": {
"playing": "Přehrává",
@ -107,12 +107,19 @@
"episodes": "Epizody",
"songs": "Skladby"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Celkem",
"unknown": "Neznámý"
},
"evcc": {
"pv_power": "Produkce",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"battery_soc": "Baterie",
"grid_power": "Mřížka",
"home_power": "Spotřeba",
"charge_power": "Nabíječka",
"watt_hour": "Wh"
},
"flood": {
@ -127,20 +134,20 @@
},
"fritzbox": {
"connectionStatus": "Stav",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusUnconfigured": "Nenastaveno",
"connectionStatusConnecting": "Připojuji",
"connectionStatusAuthenticating": "Ověřování",
"connectionStatusPendingDisconnect": "Čeká na odpojení",
"connectionStatusDisconnecting": "Odpojování",
"connectionStatusDisconnected": "Odpojeno",
"connectionStatusConnected": "Connected",
"uptime": "Doba spuštění",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"received": "Přijaté",
"sent": "Odeslané",
"externalIPAddress": "Ext. IP"
},
"caddy": {
@ -163,7 +170,7 @@
"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",
@ -210,8 +217,8 @@
"memUsage": "Využití paměti",
"systemTempC": "Teplota systému",
"poolUsage": "Využití fondu",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
"volumeUsage": "Využití svazku",
"invalid": "Neplatné"
},
"deluge": {
"download": "Stahování",
@ -243,7 +250,7 @@
"lidarr": {
"wanted": "Hledané",
"queued": "Ve frontě",
"artists": "Artists"
"artists": "Interpreti"
},
"readarr": {
"wanted": "Hledané",
@ -270,7 +277,7 @@
"approved": "Schváleno",
"available": "Dostupné"
},
"pialert": {
"netalertx": {
"total": "Celkem",
"connected": "Connected",
"new_devices": "New Devices",
@ -389,17 +396,17 @@
},
"proxmox": {
"mem": "RAM",
"cpu": "Procesor",
"cpu": "CPU",
"lxc": "LXC",
"vms": "Virtuální Stroje"
},
"glances": {
"cpu": "Procesor",
"cpu": "CPU",
"load": "Zatížení",
"wait": "Počkejte prosím",
"temp": "TEPLOTA",
"_temp": "Temp",
"warn": "Warn",
"warn": "Varováni",
"uptime": "BĚŽÍ",
"total": "Celkem",
"free": "Volné",
@ -419,7 +426,8 @@
"search": "Hledat",
"custom": "Vlastní",
"visit": "Navštivte",
"url": "Odkaz"
"url": "Odkaz",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Slunečno",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanály",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Přenosová rychlost",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Úspěšné",
@ -610,7 +626,7 @@
"proxmoxbackupserver": {
"datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "Procesor",
"cpu_usage": "CPU",
"memory_usage": "Paměť"
},
"immich": {
@ -694,6 +710,11 @@
"targets_down": "Cíle vypnuté",
"targets_total": "Cíle celkem"
},
"gatus": {
"up": "Stránky Up",
"down": "Stránky Down",
"uptime": "Doba spuštění"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "Jeden rok",
@ -775,6 +796,14 @@
"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í",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Fotografie",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problémy",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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": "Connected",
"enabled": "Povoleno",
"disabled": "Zakázáno",
"total": "Celkem"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -14,9 +14,9 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "mnd",
"days": "d",
"hours": "h",
"hours": "t",
"minutes": "m",
"seconds": "s"
},
@ -90,7 +90,7 @@
"not_available": "Ikke tilgængelig"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "HTTP-status",
"error": "Fejl",
"response": "Response",
"down": "Ned",
@ -107,6 +107,13 @@
"episodes": "Episoder",
"songs": "Sange"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Ukendt"
},
"evcc": {
"pv_power": "Produktion",
"battery_soc": "Batteri",
@ -133,15 +140,15 @@
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Forbundet",
"connectionStatusConnected": "Connected",
"uptime": "Oppetid",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Ned",
"up": "Op",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"received": "Modtaget",
"sent": "Sendt",
"externalIPAddress": "Ekstern IP"
},
"caddy": {
"upstreams": "Upstreams",
@ -270,11 +277,11 @@
"approved": "Godkendt",
"available": "Tilgængelig"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Forbundet",
"new_devices": "Nye Enheder",
"down_alerts": "Nedadvarsler"
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Forespørgsler",
@ -405,7 +412,7 @@
"free": "Fri",
"used": "Brugt",
"days": "d",
"hours": "h",
"hours": "t",
"crit": "Crit",
"read": "Læst",
"write": "Skriv",
@ -419,7 +426,8 @@
"search": "Søg",
"custom": "Brugerdefinerede",
"visit": "Besøg",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Solrig",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanaler",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Bestået",
@ -547,12 +563,12 @@
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
"battery_charge": "Batteriniveau",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"online": "Online",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "På batteri",
"low_battery": "Lavt batteriniveau"
},
"nextdns": {
"wait": "Vent venligst",
@ -694,6 +710,11 @@
"targets_down": "Mål Nede",
"targets_total": "Totale Mål"
},
"gatus": {
"up": "Sider Oppe",
"down": "Sider Nede",
"uptime": "Oppetid"
},
"ghostfolio": {
"gross_percent_today": "I dag",
"gross_percent_1y": "Et År",
@ -775,6 +796,14 @@
"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",
@ -797,11 +826,67 @@
"noEventsFound": "No events found"
},
"romm": {
"platforms": "Platforms",
"platforms": "Platforme",
"totalRoms": "Total ROMs"
},
"netdata": {
"warnings": "Warnings",
"warnings": "Advarsler",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Billeder",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problemer",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episoden",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Gesamt",
"unknown": "Unbekannt"
},
"evcc": {
"pv_power": "Erzeugung",
"battery_soc": "Batterie",
@ -135,8 +142,8 @@
"connectionStatusDisconnected": "Getrennt",
"connectionStatusConnected": "Verbunden",
"uptime": "Betriebszeit",
"maxDown": "Max. Empfang",
"maxUp": "Max. Senden",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Empfangen",
"up": "Senden",
"received": "Empfangen",
@ -270,7 +277,7 @@
"approved": "Genehmigt",
"available": "Verfügbar"
},
"pialert": {
"netalertx": {
"total": "Gesamt",
"connected": "Verbunden",
"new_devices": "Neue Geräte",
@ -379,13 +386,13 @@
"down": "Offline"
},
"miniflux": {
"read": "Lesen",
"read": "Gelesen",
"unread": "Ungelesen"
},
"authentik": {
"users": "Benutzer",
"loginsLast24H": "Anmeldungen (24 h)",
"failedLoginsLast24H": "Fehlgeschlagene Anmeldungen (24 h)"
"failedLoginsLast24H": "Fehlversuche (24 h)"
},
"proxmox": {
"mem": "RAM",
@ -407,7 +414,7 @@
"days": "d",
"hours": "h",
"crit": "Krit",
"read": "Lesen",
"read": "Gelesen",
"write": "Schreiben",
"gpu": "GPU",
"mem": "RAM",
@ -536,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanäle",
"hd": "HD"
"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",
@ -695,6 +710,11 @@
"targets_down": "Ziele Down",
"targets_total": "Alle Ziele"
},
"gatus": {
"up": "Seiten verfügbar",
"down": "Seiten nicht verfügbar",
"uptime": "Betriebszeit"
},
"ghostfolio": {
"gross_percent_today": "Heute",
"gross_percent_1y": "Ein Jahr",
@ -776,6 +796,14 @@
"passed": "Bestanden",
"failed": "Fehlgeschlagen"
},
"openwrt": {
"uptime": "Betriebszeit",
"cpuLoad": "CPU-Last (5 min-Durchschnitt)",
"up": "Senden",
"down": "Empfangen",
"bytesTx": "Übertragen",
"bytesRx": "Empfangen"
},
"uptimerobot": {
"status": "Status",
"uptime": "Betriebszeit",
@ -798,11 +826,67 @@
"noEventsFound": "Keine Termine gefunden"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Plattformen",
"totalRoms": "ROMs gesamt"
},
"netdata": {
"warnings": "Warnungen",
"criticals": "Kritisch"
},
"plantit": {
"events": "Ereignisse",
"plants": "Pflanzen",
"photos": "Fotos",
"species": "Spezies"
},
"gitea": {
"notifications": "Benachrichtigungen",
"issues": "Probleme",
"pulls": "Pull-Requests"
},
"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"
}
}

View File

@ -40,14 +40,14 @@
},
"resources": {
"cpu": "Επεξεργαστής",
"mem": "MEM",
"mem": "Μνήμη",
"total": "Σύνολο",
"free": "Δωρεάν",
"used": "χρησιμοποιημένο",
"load": "Φόρτωση",
"temp": ΕΡΜΟΚΡΑΣΪΑ",
"temp": ερμοκρασία",
"max": "Μέγιστο",
"uptime": "ΠΑΝΩ"
"uptime": "Χρόνος Λειτουργίας"
},
"unifi": {
"users": "Χρήστες",
@ -61,7 +61,7 @@
"wlan_devices": "WLAN Συσκευές",
"lan_users": "LAN Χρήστες",
"wlan_users": "WLAN Χρήστες",
"up": "ΠΑΝΩ",
"up": "Χρόνος Λειτουργίας",
"down": "ΚΑΤΩ",
"wait": "Παρακαλώ περιμένετε",
"empty_data": "Άγνωστη κατάσταση υποσυστήματος"
@ -69,7 +69,7 @@
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"mem": "Μνήμη",
"cpu": "Επεξεργαστής",
"running": "Τρέχων",
"offline": "Εκτός σύνδεσης",
@ -85,16 +85,16 @@
"ping": {
"error": "Σφάλμα",
"ping": "Ping",
"down": "Down",
"up": "Up",
"down": "Ping down",
"up": "Ping up",
"not_available": "Μη διαθέσιμο"
},
"siteMonitor": {
"http_status": "Κατάσταση HTTP",
"error": "Σφάλμα",
"response": "Απόκριση",
"down": "Down",
"up": "Up",
"down": "Ping down",
"up": "Ping up",
"not_available": "Μη διαθέσιμο"
},
"emby": {
@ -107,6 +107,13 @@
"episodes": "Επεισόδια",
"songs": "Τραγούδια"
},
"esphome": {
"offline": "Εκτός σύνδεσης",
"offline_alt": "Εκτός σύνδεσης",
"online": "Συνδεδεμένοι",
"total": "Σύνολο",
"unknown": "Άγνωστο"
},
"evcc": {
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
@ -129,19 +136,19 @@
"connectionStatus": "Κατάσταση",
"connectionStatusUnconfigured": "Μη Ρυθμισμένο",
"connectionStatusConnecting": "Κατάσταση Σύνδεσης",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"connectionStatusAuthenticating": "Ταυτοποίηση",
"connectionStatusPendingDisconnect": "Εκκρεμεί Αποσύνδεση",
"connectionStatusDisconnecting": "Αποσύνδεση",
"connectionStatusDisconnected": "Αποσυνδέθηκε",
"connectionStatusConnected": "Συνδέθηκε",
"uptime": "Χρόνος Λειτουργίας",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"maxDown": "Μέγιστο Download",
"maxUp": "Μέγιστο Upload",
"down": "Ping down",
"up": "Ping up",
"received": "Ληφθέντα",
"sent": "Απεσταλμένα",
"externalIPAddress": "Εξωτερική IP"
},
"caddy": {
"upstreams": "Upstreams",
@ -210,7 +217,7 @@
"memUsage": "Χρήση μνήμης",
"systemTempC": "Θερμοκρασία συστήματος",
"poolUsage": "Χρήση πισίνας",
"volumeUsage": "Volume Usage",
"volumeUsage": "Χρήση Όγκου",
"invalid": "Μη έγκυρο"
},
"deluge": {
@ -266,15 +273,15 @@
},
"overseerr": {
"pending": "Σε εκκρεμότητα",
"processing": "Processing",
"processing": "Σε επεξεργασία",
"approved": "Εγκρίθηκε",
"available": "Διαθέσιμο"
},
"pialert": {
"netalertx": {
"total": "Σύνολο",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
"connected": "Συνδέθηκε",
"new_devices": "Νέες συσκευές",
"down_alerts": "Ειδοποιήσεις offline"
},
"pihole": {
"queries": "Queries",
@ -302,26 +309,26 @@
"address": "Διεύθυνση",
"expires": "Λήγει",
"never": "Ποτέ",
"last_seen": "Last Seen",
"last_seen": "Τελευταία Σύνδεση",
"now": "Τώρα",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"years": "{{number}}χρόνια",
"weeks": "{{number}}εβδομάδες",
"days": "{{number}}μέρες",
"hours": "{{number}}ώρες",
"minutes": "{{number}}λεπτά",
"seconds": "{{number}}δευτερόλεπτα",
"ago": "{{value}} πρίν"
},
"tdarr": {
"queue": "Ουρά",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
"processed": "Σε επεξεργασία",
"errored": "Σφάλματα",
"saved": "Αποθηκεύτηκε"
},
"traefik": {
"routers": "Routers",
"services": "Services",
"middleware": "Middleware"
"routers": "Δρομολογητές",
"services": "Υπηρεσίες",
"middleware": "Ενδιάμεσο λογισμικό"
},
"navidrome": {
"nothing_streaming": "Δεν υπάρχουν ενεργές ροές",
@ -353,7 +360,7 @@
},
"jackett": {
"configured": "Ρυθμισμένο",
"errored": "Errored"
"errored": "Σφάλματα"
},
"strelaysrv": {
"numActiveSessions": "Συνεδρίες",
@ -364,7 +371,7 @@
"mastodon": {
"user_count": "Χρήστες",
"status_count": "Δημοσιεύσεις",
"domain_count": "Domains"
"domain_count": "Τομείς"
},
"medusa": {
"wanted": "Επιθυμούντε",
@ -379,7 +386,7 @@
"down": "Εκτός σύνδεσης"
},
"miniflux": {
"read": "Read",
"read": "Διαβάστηκε",
"unread": "Μη Διαβασμένο"
},
"authentik": {
@ -388,7 +395,7 @@
"failedLoginsLast24H": "Αποτυχημένες Συνδέσεις (24h)"
},
"proxmox": {
"mem": "MEM",
"mem": "Μνήμη",
"cpu": "Επεξεργαστής",
"lxc": "LXC",
"vms": "VMs"
@ -397,17 +404,17 @@
"cpu": "Επεξεργαστής",
"load": "Φόρτωση",
"wait": "Παρακαλώ περιμένετε",
"temp": ΕΡΜΟΚΡΑΣΪΑ",
"temp": ερμοκρασία",
"_temp": "Temp",
"warn": "Warn",
"uptime": "ΠΑΝΩ",
"uptime": "Χρόνος Λειτουργίας",
"total": "Σύνολο",
"free": "Δωρεάν",
"used": "χρησιμοποιημένο",
"days": "d",
"hours": "h",
"crit": "Crit",
"read": "Read",
"read": "Διαβάστηκε",
"write": "Write",
"gpu": "GPU",
"mem": "Μνήμη",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Λιακάδα",
@ -442,80 +450,80 @@
"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"
"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",
"up": "Ping up",
"pending": "Σε εκκρεμότητα",
"down": "Down"
"down": "Ping down"
},
"healthchecks": {
"new": "New",
"up": "Up",
"up": "Ping up",
"grace": "In Grace Period",
"down": "Down",
"down": "Ping down",
"paused": "Paused",
"status": "Κατάσταση",
"last_ping": "Last Ping",
"never": "No pings yet"
"last_ping": "Τελευταίο Ping",
"never": "Δεν υπάρχουν ping ακόμα"
},
"watchtower": {
"containers_scanned": "Scanned",
"containers_updated": "Updated",
"containers_failed": "Failed"
"containers_scanned": "Σκαναρισμένο",
"containers_updated": "Ενημερώθηκε",
"containers_failed": "Απέτυχε"
},
"autobrr": {
"approvedPushes": "Εγκρίθηκε",
"rejectedPushes": "Rejected",
"filters": "Filters",
"rejectedPushes": "Απορρίφθηκε",
"filters": "Φίλτρα",
"indexers": "Ευρετήρια"
},
"tubearchivist": {
"downloads": "Ουρά",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
"videos": "Βίντεο",
"channels": "Κανάλια",
"playlists": "Λίστες αναπαραγωγής"
},
"truenas": {
"load": "Φόρτος Συστήματος",
@ -534,16 +542,24 @@
"country": "Χώρα"
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
"channels": "Κανάλια",
"hd": "HD",
"tunerCount": "Δέκτες",
"channelNumber": "Κανάλι",
"channelNetwork": "Δίκτυο",
"signalStrength": "Ισχύς σήματος",
"signalQuality": "Ποιότητα",
"symbolQuality": "Ποιότητα",
"networkRate": "Ρυθμός bit",
"clientIP": "Πελάτης"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"failed": "Απέτυχε",
"unknown": "Άγνωστο"
},
"paperlessngx": {
"inbox": "Inbox",
"inbox": "Εισερχόμενα",
"total": "Σύνολο"
},
"peanut": {
@ -551,8 +567,8 @@
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"online": "Συνδεδεμένοι",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "Σε μπαταρία",
"low_battery": "Χαμηλή μπαταρία"
},
"nextdns": {
"wait": "Παρακαλώ περιμένετε",
@ -601,10 +617,10 @@
"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"
},
"proxmoxbackupserver": {
@ -615,22 +631,22 @@
},
"immich": {
"users": "Χρήστες",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"photos": "Φωτογραφίες",
"videos": "Βίντεο",
"storage": "Αποθηκευτικός χώρος"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"up": "Online τοποθεσίες",
"down": "Offline τοποθεσίες",
"uptime": "Χρόνος Λειτουργίας",
"incident": "Incident",
"incident": "Περιστατικό",
"m": "m"
},
"atsumeru": {
"series": "Σειρές",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
"categories": "Κατηγορίες"
},
"komga": {
"libraries": "Libraries",
@ -649,96 +665,101 @@
},
"photoprism": {
"albums": "Άλμπουμ",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"photos": "Φωτογραφίες",
"videos": "Βίντεο",
"people": "Άνθρωποι"
},
"fileflows": {
"queue": "Ουρά",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
"processing": "Σε επεξεργασία",
"processed": "Σε επεξεργασία",
"time": "Ώρα"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "Πίνακας Ελέγχου",
"datasources": "Πηγές Δεδομένων",
"totalalerts": "Σύνολο Ειδοποιήσεων",
"alertstriggered": "Ενεργοποιημένες Ειδοποιήσεις"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
"cpuload": "Φόρτος CPU",
"memoryusage": "Χρήση Mνήμης",
"freespace": "Ελεύθερος χώρος",
"activeusers": "Ενεργοί χρήστες",
"numfiles": "Αρχεία",
"numshares": "Κοινόχρηστα στοιχεία"
},
"kopia": {
"status": "Κατάσταση",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
"size": "Μέγεθος",
"lastrun": "Τελευταία εκτέλεση",
"nextrun": "Επόμενη εκτέλεση",
"failed": "Απέτυχε"
},
"unmanic": {
"active_workers": "Active Workers",
"active_workers": "Ενεργοί χρήστες",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"records_total": "Μήκος Ουράς"
},
"pterodactyl": {
"servers": "Διακομιστές",
"nodes": "Nodes"
"nodes": "Κόμβοι [Nodes]"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "Στόχοι Πάνω",
"targets_down": "Στόχοι Κάτω",
"targets_total": "Συνολικοί Στόχοι"
},
"gatus": {
"up": "Online τοποθεσίες",
"down": "Offline τοποθεσίες",
"uptime": "Χρόνος Λειτουργίας"
},
"ghostfolio": {
"gross_percent_today": "Σήμερα",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_1y": "Ένας χρόνος",
"gross_percent_max": "Διαχρονικά"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Βιβλία",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcastsDuration": "Διάρκεια",
"booksDuration": "Διάρκεια"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Σύνολο ανθρώπων στο σπίτι",
"lights_on": "Αναμμένα φώτα",
"switches_on": "Ανοιχτοί διακόπτες"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Παρακολούθηση",
"updates": "Ενημερώσεις"
},
"calibreweb": {
"books": "Βιβλία",
"authors": "Authors",
"categories": "Categories",
"authors": "Συντάκτες",
"categories": "Κατηγορίες",
"series": "Σειρές"
},
"jdownloader": {
"downloadCount": "Ουρά",
"downloadBytesRemaining": "Υπόλοιπο",
"downloadTotalBytes": "Size",
"downloadTotalBytes": "Μέγεθος",
"downloadSpeed": "Ταχύτητα"
},
"kavita": {
"seriesCount": "Σειρές",
"totalFiles": "Files"
"totalFiles": "Αρχεία"
},
"azuredevops": {
"result": "Result",
"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": "Εγκρίθηκε"
@ -747,8 +768,8 @@
"status": "Κατάσταση",
"online": "Συνδεδεμένοι",
"offline": "Εκτός σύνδεσης",
"name": "Name",
"map": "Map",
"name": "Όνομα",
"map": "Χάρτης",
"currentPlayers": "Current players",
"players": "Παίκτες",
"maxPlayers": "Max players",
@ -756,37 +777,45 @@
"ping": "Ping"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"ok": "Οκ",
"errored": "Σφάλματα",
"noRecent": "Απαρχαιωμένη έκδοση",
"totalUsed": "Χώρος αποθήκευσης σε χρήση"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Συνταγές",
"users": "Χρήστες",
"categories": "Categories",
"tags": "Tags"
"categories": "Κατηγορίες",
"tags": "Ετικέτες"
},
"openmediavault": {
"downloading": "Downloading",
"downloading": "Γίνεται λήψη",
"total": "Σύνολο",
"running": "Τρέχων",
"stopped": "Σταματημένο",
"passed": "Passed",
"failed": "Failed"
"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": "Sites Up",
"sitesDown": "Sites Down",
"sitesUp": "Online τοποθεσίες",
"sitesDown": "Offline τοποθεσίες",
"paused": "Paused",
"notyetchecked": "Not Yet Checked",
"up": "Up",
"up": "Ping up",
"seemsdown": "Seems Down",
"down": "Down",
"down": "Ping down",
"unknown": "Άγνωστο"
},
"calendar": {
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Φωτογραφίες",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
@ -749,9 +756,6 @@
"retryCache": "Retry Cache",
"feedCache": "Feed Cache"
},
"wgeasy": {
"clients": "Total Clients"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
@ -869,5 +873,50 @@
"serverName": "Server Name",
"numberOfActiveCams": "Active Cameras",
"numberOfAlerts": "Total 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"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Epizodoj",
"songs": "Kantoj"
},
"esphome": {
"offline": "Malkonekta",
"offline_alt": "Malkonekta",
"online": "Online",
"total": "Totalo",
"unknown": "Nekonata"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Aprobita",
"available": "Havebla"
},
"pialert": {
"netalertx": {
"total": "Totalo",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Suna",
@ -535,7 +543,15 @@
},
"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",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -12,7 +12,7 @@
"number": "{{value, number}}",
"ms": "{{value, number}}",
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"relativeDate": "{{valor, relativaFecha}}",
"uptime": "{{value, uptime}}",
"months": "me",
"days": "d",
@ -107,6 +107,13 @@
"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",
@ -270,11 +277,11 @@
"approved": "Aprobado",
"available": "Disponible"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Conectado",
"new_devices": "Nuevos dispositivos",
"down_alerts": "Alertas de caídas"
"down_alerts": "Alertas de caída"
},
"pihole": {
"queries": "Consultas",
@ -419,7 +426,8 @@
"search": "Buscar",
"custom": "Personalizado",
"visit": "Visitar",
"url": "Enlace"
"url": "Enlace",
"searchsuggestion": "Sugerencia"
},
"wmo": {
"0-day": "Soleado",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canales",
"hd": "Alta definición"
"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",
@ -694,6 +710,11 @@
"targets_down": "Objetivos inactivos",
"targets_total": "Objetivos totales"
},
"gatus": {
"up": "Sitios activos",
"down": "Sitios inactivos",
"uptime": "Tiempo activo"
},
"ghostfolio": {
"gross_percent_today": "Hoy",
"gross_percent_1y": "Un año",
@ -775,6 +796,14 @@
"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",
@ -797,11 +826,67 @@
"noEventsFound": "No se encontraron eventos"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Plataformas",
"totalRoms": "ROMs totales"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Advertencias",
"criticals": "Críticos"
},
"plantit": {
"events": "Eventos",
"plants": "Plantas",
"photos": "Fotos",
"species": "Especies"
},
"gitea": {
"notifications": "Notificaciones",
"issues": "Números",
"pulls": "Solicitudes de cambios"
},
"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 imagen",
"galleries": "Galerías",
"performers": "Intérpretes",
"studios": "Estudios",
"movies": "Películas",
"tags": "Etiquetas",
"oCount": "O cuenta"
},
"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": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Abestiak"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Guztira",
"unknown": "Ezezaguna"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"netalertx": {
"total": "Guztira",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Sunny",
@ -535,7 +543,15 @@
},
"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",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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": "Guztira"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Yhteensä",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Hyväksytty",
"available": "Saatavilla"
},
"pialert": {
"netalertx": {
"total": "Yhteensä",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Sunny",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bittinopeus",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -15,17 +15,17 @@
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"days": "j",
"hours": "h",
"minutes": "m",
"seconds": "s"
},
"widget": {
"missing_type": "Widget manquant: {{type}}",
"missing_type": "Type de widget manquant: {{type}}",
"api_error": "Erreur API",
"information": "Informations",
"status": "Statut",
"url": "Url",
"url": "URL",
"raw_error": "Erreur brute",
"response_data": "Données de réponse"
},
@ -39,8 +39,8 @@
"placeholder": "Recherche…"
},
"resources": {
"cpu": "Cpu",
"mem": "Mém",
"cpu": "CPU",
"mem": "MÉM",
"total": "Total",
"free": "Libre",
"used": "Utilisé",
@ -69,8 +69,8 @@
"docker": {
"rx": "Rx",
"tx": "Tx",
"mem": "Mém",
"cpu": "Cpu",
"mem": "MÉM",
"cpu": "CPU",
"running": "Démarré",
"offline": "Hors ligne",
"error": "Erreur",
@ -107,6 +107,13 @@
"episodes": "Épisodes",
"songs": "Musique"
},
"esphome": {
"offline": "Hors ligne",
"offline_alt": "Hors ligne",
"online": "En ligne",
"total": "Total",
"unknown": "Inconnu"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Batterie",
@ -150,7 +157,7 @@
},
"changedetectionio": {
"totalObserved": "Total Observé",
"diffsDetected": "Diffs Detectées"
"diffsDetected": "Diffs tectées"
},
"channelsdvrserver": {
"shows": "Affichages",
@ -166,7 +173,7 @@
"plex_connection_error": "Vérifier la connexion à Plex"
},
"omada": {
"connectedAp": "APs connectées",
"connectedAp": "AP connectés",
"activeUser": "Équipts actifs",
"alerts": "Alertes",
"connectedGateway": "Passerelles connectées",
@ -270,11 +277,11 @@
"approved": "Validé",
"available": "Disponible"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connecté",
"new_devices": "Nouvel Appareil",
"down_alerts": "Alertes"
"new_devices": "Nouveaux appareils",
"down_alerts": "Alertes d'arrêt"
},
"pihole": {
"queries": "Requêtes",
@ -388,13 +395,13 @@
"failedLoginsLast24H": "Cnx. échouées (24h)"
},
"proxmox": {
"mem": "Mém",
"cpu": "Cpu",
"mem": "MÉM",
"cpu": "CPU",
"lxc": "LxC",
"vms": "VMs"
},
"glances": {
"cpu": "Cpu",
"cpu": "CPU",
"load": "Charge",
"wait": "Veuillez patienter",
"temp": "Temp",
@ -404,7 +411,7 @@
"total": "Total",
"free": "Libre",
"used": "Utilisé",
"days": "d",
"days": "j",
"hours": "h",
"crit": "Crit.",
"read": "Lu",
@ -419,7 +426,8 @@
"search": "Recherche",
"custom": "Personnalisé",
"visit": "Aller vers",
"url": "Url"
"url": "URL",
"searchsuggestion": "Suggestions"
},
"wmo": {
"0-day": "Ensoleillé",
@ -529,13 +537,21 @@
"total": "Total"
},
"gluetun": {
"public_ip": "IP Publique",
"public_ip": "IP publique",
"region": "Région",
"country": "Pays"
},
"hdhomerun": {
"channels": "Chaînes",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Canal",
"channelNetwork": "Réseau",
"signalStrength": "Force",
"signalQuality": "Qualité",
"symbolQuality": "Qualité",
"networkRate": "Débit",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Réussi",
@ -547,11 +563,11 @@
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
"battery_charge": "Charge Batterie",
"ups_load": "Charge de l'UPS",
"ups_status": "État de l'UPS",
"online": "En ligne",
"on_battery": "On Battery",
"on_battery": "Sur Batterie",
"low_battery": "Batterie Faible"
},
"nextdns": {
@ -577,7 +593,7 @@
},
"opnsense": {
"cpu": "Charge CPU",
"memory": "Mém. Utilisée",
"memory": "Mém. utilisée",
"wanUpload": "WAN Envoi",
"wanDownload": "WAN Récep."
},
@ -610,7 +626,7 @@
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Tâches échouées 24h",
"cpu_usage": "Cpu",
"cpu_usage": "CPU",
"memory_usage": "Mémoire"
},
"immich": {
@ -633,7 +649,7 @@
"categories": "Catégories"
},
"komga": {
"libraries": "Librairies",
"libraries": "Bibliothèques",
"series": "Séries TV",
"books": "Livres"
},
@ -666,7 +682,7 @@
"alertstriggered": "Alertes déclenchées"
},
"nextcloud": {
"cpuload": "Charge Cpu",
"cpuload": "Charge CPU",
"memoryusage": "Utilisation Mémoire",
"freespace": "Libre",
"activeusers": "Utilisateurs Actifs",
@ -694,6 +710,11 @@
"targets_down": "Down",
"targets_total": "Total"
},
"gatus": {
"up": "En ligne",
"down": "Hors ligne",
"uptime": "Démarré depuis"
},
"ghostfolio": {
"gross_percent_today": "Aujourd'hui",
"gross_percent_1y": "Un an",
@ -775,6 +796,14 @@
"passed": "Réussi",
"failed": "Échoué"
},
"openwrt": {
"uptime": "Démarré depuis",
"cpuLoad": "Charge moyenne CPU (5 min)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmis",
"bytesRx": "Reçu"
},
"uptimerobot": {
"status": "Statut",
"uptime": "Démarré depuis",
@ -797,11 +826,67 @@
"noEventsFound": "Aucun événement trouvé"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Plateformes",
"totalRoms": "Total des ROMs"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Avertissements",
"criticals": "Urgent"
},
"plantit": {
"events": "Événements",
"plants": "Plantes",
"photos": "Photos",
"species": "Espèces"
},
"gitea": {
"notifications": "Notifications",
"issues": "Anomalies",
"pulls": "Demandes de tirage"
},
"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": "Exclusions"
},
"wgeasy": {
"connected": "Connecté",
"enabled": "Activé",
"disabled": "Désactivé",
"total": "Total"
},
"swagdashboard": {
"proxied": "Par proxy",
"auth": "Avec authentification",
"outdated": "Obsolète",
"banned": "Banni"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "כבוי",
"offline_alt": "כבוי",
"online": "Online",
"total": "סה\"כ",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "מאושר",
"available": "זמין"
},
"pialert": {
"netalertx": {
"total": "סה\"כ",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Sunny",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "סיביות",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "סטטוס",
"uptime": "Uptime",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -11,14 +11,14 @@
"percent": "{{value, percent}}",
"number": "{{value, number}}",
"ms": "{{value, number}}",
"date": "{{value, date}}",
"date": "{value, date}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "माह",
"days": "d",
"hours": "h",
"hours": "घं.",
"minutes": "m",
"seconds": "s"
"seconds": "पल"
},
"widget": {
"missing_type": "Missing Widget Type: {{type}}",
@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
@ -405,7 +412,7 @@
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"hours": "घं.",
"crit": "Crit",
"read": "Read",
"write": "Write",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Sunny",
@ -535,7 +543,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",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -14,10 +14,10 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"months": "mj",
"days": "dan(a)",
"hours": "h",
"minutes": "m",
"minutes": "min",
"seconds": "s"
},
"widget": {
@ -46,12 +46,12 @@
"used": "Korišteno",
"load": "Opterećenje",
"temp": "TEMP",
"max": "Maks",
"uptime": "UP"
"max": "Maks.",
"uptime": "Vrijeme rada"
},
"unifi": {
"users": "Korisnici",
"uptime": "Radno vrijeme",
"uptime": "Vrijeme rada",
"days": "Dani",
"wan": "WAN",
"lan": "LAN",
@ -61,8 +61,8 @@
"wlan_devices": "WLAN uređaji",
"lan_users": "LAN korisnici",
"wlan_users": "WLAN korisnici",
"up": "UP",
"down": "PRIMANJE",
"up": "Vrijeme rada",
"down": "NEDOSTUPNO",
"wait": "Pričekaj",
"empty_data": "Stanje podsustava nepoznato"
},
@ -85,17 +85,17 @@
"ping": {
"error": "Greška",
"ping": "Ping",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"down": "Nedostupno",
"up": "Dostupno",
"not_available": "Nije dostupno"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "Stanje HTTP-a",
"error": "Greška",
"response": "Response",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"response": "Odgovor",
"down": "Nedostupno",
"up": "Dostupno",
"not_available": "Nije dostupno"
},
"emby": {
"playing": "Reprodukcija",
@ -107,13 +107,20 @@
"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č",
"watt_hour": "Wh"
"watt_hour": "Kilovat-sat"
},
"flood": {
"download": "Preuzimanje",
@ -127,21 +134,21 @@
},
"fritzbox": {
"connectionStatus": "Stanje",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusUnconfigured": "Nekonfigurirano",
"connectionStatusConnecting": "Povezivanje",
"connectionStatusAuthenticating": "Autentificiranje",
"connectionStatusPendingDisconnect": "Odspajanje u tijeku",
"connectionStatusDisconnecting": "Odspajanje",
"connectionStatusDisconnected": "Odspojeno",
"connectionStatusConnected": "Povezano",
"uptime": "Radno vrijeme",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"uptime": "Vrijeme rada",
"maxDown": "Maksimum preuzimanja",
"maxUp": "Maksimum prijenosa",
"down": "Nedostupno",
"up": "Dostupno",
"received": "Primljeno",
"sent": "Poslano",
"externalIPAddress": "Eksterna IP adresa"
},
"caddy": {
"upstreams": "Glavne grane",
@ -255,26 +262,26 @@
"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": "Predstoji",
"pending": "U tijeku",
"processing": "Obrada",
"approved": "Odobreno",
"available": "Dostupno"
},
"pialert": {
"netalertx": {
"total": "Ukupno",
"connected": "Povezano",
"new_devices": "Novi uređaji",
"down_alerts": "Obavijest o rušenju"
"down_alerts": "Obavijesti o nedostupnosti"
},
"pihole": {
"queries": "Upiti",
@ -398,20 +405,20 @@
"load": "Opterećenje",
"wait": "Pričekaj",
"temp": "TEMP",
"_temp": "Temp",
"_temp": "Temperatura",
"warn": "Upozori",
"uptime": "UP",
"uptime": "Vrijeme rada",
"total": "Ukupno",
"free": "Slobodno",
"used": "Korišteno",
"days": "d",
"days": "dan(a)",
"hours": "h",
"crit": "Crit",
"crit": "Krritično",
"read": "Pročitano",
"write": "Write",
"write": "Piši",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
"mem": "Memorija",
"swap": "Virtualna memorija"
},
"quicklaunch": {
"bookmark": "Straničnik",
@ -419,7 +426,8 @@
"search": "Traži",
"custom": "Prilagođeno",
"visit": "Posjeti",
"url": "URL"
"url": "URL",
"searchsuggestion": "Prijedlog"
},
"wmo": {
"0-day": "Sunčano",
@ -486,15 +494,15 @@
"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"
},
"healthchecks": {
"new": "Novo",
"up": "Up",
"up": "Dostupno",
"grace": "U razdoblju odgode",
"down": "Down",
"down": "Nedostupno",
"paused": "Zaustavljeno",
"status": "Stanje",
"last_ping": "Zadnji ping",
@ -519,7 +527,7 @@
},
"truenas": {
"load": "Opterećenje sustava",
"uptime": "Radno vrijeme",
"uptime": "Vrijeme rada",
"alerts": "Upozorenja"
},
"pyload": {
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanali",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuneri",
"channelNumber": "Kanal",
"channelNetwork": "Mreža",
"signalStrength": "Jačina",
"signalQuality": "Kvaliteta",
"symbolQuality": "Kvaliteta",
"networkRate": "Stopa bitova",
"clientIP": "Klijent"
},
"scrutiny": {
"passed": "Uspjelo",
@ -547,12 +563,12 @@
"total": "Ukupno"
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"battery_charge": "Napunjenost baterije",
"ups_load": "UPS opterećenje",
"ups_status": "UPS stanje",
"online": "Online",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "Koristi bateriju",
"low_battery": "Slaba baterija"
},
"nextdns": {
"wait": "Pričekaj",
@ -561,7 +577,7 @@
"mikrotik": {
"cpuLoad": "CPU opterećenje",
"memoryUsed": "Korištena memorija",
"uptime": "Radno vrijeme",
"uptime": "Vrijeme rada",
"numberOfLeases": "Unajmljivanja"
},
"xteve": {
@ -570,10 +586,10 @@
"streams_xepg": "XEPG kanali"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"limit": "Limit"
"yieldDay": "Danas",
"absolutePower": "Snaga",
"relativePower": "Postotak snage",
"limit": "Ograničenje"
},
"opnsense": {
"cpu": "CPU opterećenje",
@ -601,9 +617,9 @@
"load": "Prosječno opterećenje",
"memory": "Korištenje memorije",
"wanStatus": "Stanje WAN-a",
"up": "Up",
"down": "Down",
"temp": "Temp",
"up": "Dostupno",
"down": "Nedostupno",
"temp": "Temperatura",
"disk": "Korištenje diska",
"wanIP": "WAN IP"
},
@ -620,17 +636,17 @@
"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": "m"
"m": "min"
},
"atsumeru": {
"series": "Serije",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
"archives": "Arhive",
"chapters": "Poglavlja",
"categories": "Kategorije"
},
"komga": {
"libraries": "Biblioteke",
@ -639,7 +655,7 @@
},
"diskstation": {
"days": "Dani",
"uptime": "Radno vrijeme",
"uptime": "Vrijeme rada",
"volumeAvailable": "Dostupno"
},
"mylar": {
@ -662,7 +678,7 @@
"grafana": {
"dashboards": "Pregledne ploče",
"datasources": "Izvori podataka",
"totalalerts": "Ukupno upozorenja",
"totalalerts": "Ukupni broj upozorenja",
"alertstriggered": "Aktivirana upozorenja"
},
"nextcloud": {
@ -682,7 +698,7 @@
},
"unmanic": {
"active_workers": "Aktivni radnici",
"total_workers": "Ukupni radnici",
"total_workers": "Ukupni broj radnika",
"records_total": "Količina zapisa u redu čekanja"
},
"pterodactyl": {
@ -692,10 +708,15 @@
"prometheus": {
"targets_up": "Aktivni ciljevi",
"targets_down": "Neaktivni ciljevi",
"targets_total": "Ukupno ciljeva"
"targets_total": "Ukupni broj ciljeva"
},
"gatus": {
"up": "Dostupne stranice",
"down": "Nedostupne stranice",
"uptime": "Vrijeme rada"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_today": "Danas",
"gross_percent_1y": "Jedna godina",
"gross_percent_max": "Svo vrijeme"
},
@ -711,13 +732,13 @@
"switches_on": "Prekidači uključeni"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"monitoring": "Praćenje",
"updates": "Aktualiziranja"
},
"calibreweb": {
"books": "Knjige",
"authors": "Authors",
"categories": "Categories",
"authors": "Autori",
"categories": "Kategorije",
"series": "Serije"
},
"jdownloader": {
@ -731,77 +752,141 @@
"totalFiles": "Datoteke"
},
"azuredevops": {
"result": "Result",
"result": "Rezultat",
"status": "Stanje",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"buildId": "ID izgradnje",
"succeeded": "Uspjelo",
"notStarted": "Nije započeto",
"failed": "Neuspjelo",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"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": "Name",
"map": "Map",
"currentPlayers": "Current players",
"name": "Ime",
"map": "Karta",
"currentPlayers": "Trenutačni igrači",
"players": "Igrači",
"maxPlayers": "Max players",
"bots": "Bots",
"maxPlayers": "Maks. broj igrača",
"bots": "Botovi",
"ping": "Ping"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"ok": "U redu",
"errored": "Greške",
"noRecent": "Zastarjelo",
"totalUsed": "Korištena memorija"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Recepti",
"users": "Korisnici",
"categories": "Categories",
"tags": "Tags"
"categories": "Kategorije",
"tags": "Oznake"
},
"openmediavault": {
"downloading": "Downloading",
"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": "Radno vrijeme",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
"sitesUp": "Aktivne stranice",
"sitesDown": "Neaktivne stranice",
"uptime": "Vrijeme rada",
"lastDown": "Zadnja nedostupnost",
"downDuration": "Trajanje nedostupnosti",
"sitesUp": "Dostupne stranice",
"sitesDown": "Nedostupne stranice",
"paused": "Zaustavljeno",
"notyetchecked": "Not Yet Checked",
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"notyetchecked": "Još nije provjereno",
"up": "Dostupno",
"seemsdown": "Čini se da je nedostupno",
"down": "Nedostupno",
"unknown": "Nepoznato"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "U kinima",
"physicalRelease": "Fizičko izdanje",
"digitalRelease": "Digitalno izdanje",
"noEventsToday": "Danas nema događaja!",
"noEventsFound": "Nema događaja"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platforme",
"totalRoms": "Ukupne ROM memorije"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"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"
},
"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"
}
}

View File

@ -14,18 +14,18 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m",
"seconds": "s"
"months": "",
"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",
"url": "LINK",
"raw_error": "Nyers hiba",
"response_data": "Válaszadatok"
},
@ -40,12 +40,12 @@
},
"resources": {
"cpu": "Processzor",
"mem": "MEM",
"mem": "RAM",
"total": "Összes",
"free": "Szabad",
"used": "Használt",
"load": "Terhelés",
"temp": "TEMP",
"temp": "HŐM",
"max": "Max",
"uptime": "FUT"
},
@ -69,10 +69,10 @@
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"mem": "RAM",
"cpu": "Processzor",
"running": "Futó",
"offline": "Offline",
"offline": "Nem elérhető",
"error": "Hiba",
"unknown": "Ismeretlen",
"healthy": "Egészséges",
@ -107,6 +107,13 @@
"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",
@ -133,10 +140,10 @@
"connectionStatusPendingDisconnect": "Szétkapcsolás függőben",
"connectionStatusDisconnecting": "Kapcsolat bontása",
"connectionStatusDisconnected": "Kapcsolat bontva",
"connectionStatusConnected": "Csatlakoztatott",
"connectionStatusConnected": "Csatlakozva",
"uptime": "Üzemidő",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "Max let.",
"maxUp": "Max felt.",
"down": "Le",
"up": "Fel",
"received": "Fogadott",
@ -270,11 +277,11 @@
"approved": "Engedélyezett",
"available": "Elérhető"
},
"pialert": {
"netalertx": {
"total": "Összes",
"connected": "Csatlakoztatott",
"new_devices": "Új Eszközök",
"down_alerts": "Leállási Figyelmeztetések"
"connected": "Csatlakozva",
"new_devices": "Új eszközök",
"down_alerts": "Leállási riasztások"
},
"pihole": {
"queries": "Lekérdezések",
@ -304,12 +311,12 @@
"never": "Soha",
"last_seen": "Utoljára látott",
"now": "Most",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"years": "{{number}}év",
"weeks": "{{number}}h",
"days": "{{number}}n",
"hours": "{{number}}ó",
"minutes": "{{number}}p",
"seconds": "{{number}}mp",
"ago": "{{value}} Ezelőtt"
},
"tdarr": {
@ -376,7 +383,7 @@
"version": "Verzió",
"status": "Státusz",
"up": "Csatlakozva",
"down": "Offline"
"down": "Nem elérhető"
},
"miniflux": {
"read": "Olvasott",
@ -388,30 +395,30 @@
"failedLoginsLast24H": "Sikertelen bejelentkezések (24h)"
},
"proxmox": {
"mem": "MEM",
"mem": "RAM",
"cpu": "Processzor",
"lxc": "LXC",
"lxc": "LXC-k",
"vms": "VM-ek"
},
"glances": {
"cpu": "Processzor",
"load": "Terhelés",
"wait": "Kérjük várjon",
"temp": "TEMP",
"temp": "HŐM",
"_temp": "Hőmérséklet",
"warn": "Figyelmeztet",
"uptime": "FUT",
"total": "Összes",
"free": "Szabad",
"used": "Használt",
"days": "d",
"hours": "h",
"crit": "Crit",
"days": "n",
"hours": "ó",
"crit": "Kritikus",
"read": "Olvasott",
"write": "Írás",
"gpu": "GPU",
"mem": "Memória",
"swap": "Swap"
"swap": "Csere"
},
"quicklaunch": {
"bookmark": "Könyvjelző",
@ -419,7 +426,8 @@
"search": "Keresés",
"custom": "Egyedi",
"visit": "Megnéz",
"url": "URL"
"url": "LINK",
"searchsuggestion": "Javaslat"
},
"wmo": {
"0-day": "Napos",
@ -518,7 +526,7 @@
"playlists": "Lejátszási listák"
},
"truenas": {
"load": "Rendszerterheltség",
"load": "Rendszerterhelés",
"uptime": "Üzemidő",
"alerts": "Riasztások"
},
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Csatornák",
"hd": "HD"
"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",
@ -547,12 +563,12 @@
"total": "Összes"
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"battery_charge": "Akku töltöttsége",
"ups_load": "UPS terheltsége",
"ups_status": "UPS állapot",
"online": "Csatlakozva",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "Akkuról",
"low_battery": "Alacsony töltöttség"
},
"nextdns": {
"wait": "Kérjük Várjon",
@ -570,10 +586,10 @@
"streams_xepg": "XEPG Csatornák"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"limit": "Limit"
"yieldDay": "Ma",
"absolutePower": "Energia",
"relativePower": "Energia %",
"limit": "Korlát"
},
"opnsense": {
"cpu": "Processzor Terhelés",
@ -624,13 +640,13 @@
"down": "Nem Elérhető Webhelyek",
"uptime": "Üzemidő",
"incident": "Incidens",
"m": "m"
"m": "p"
},
"atsumeru": {
"series": "Sorozat",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
"archives": "Archívum",
"chapters": "Fejezetek",
"categories": "Kategóriák"
},
"komga": {
"libraries": "Könyvtárak",
@ -694,8 +710,13 @@
"targets_down": "Célpontok Állnak",
"targets_total": "Összes Célpont"
},
"gatus": {
"up": "Futó Webhelyek",
"down": "Nem Elérhető Webhelyek",
"uptime": "Üzemidő"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_today": "Ma",
"gross_percent_1y": "Egy év",
"gross_percent_max": "Mindig"
},
@ -716,8 +737,8 @@
},
"calibreweb": {
"books": "Könyvek",
"authors": "Authors",
"categories": "Categories",
"authors": "Szerzők",
"categories": "Kategóriák",
"series": "Sorozat"
},
"jdownloader": {
@ -731,22 +752,22 @@
"totalFiles": "Fájlok"
},
"azuredevops": {
"result": "Result",
"result": "Eredmény",
"status": "Státusz",
"buildId": "Build ID",
"succeeded": "Succeeded",
"buildId": "Gyártás ID",
"succeeded": "Sikerült",
"notStarted": "Nem indult",
"failed": "Sikertelen",
"canceled": "Megszakítva",
"inProgress": "Folyamatban",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"totalPrs": "Minden PR",
"myPrs": "Saját PR-ek",
"approved": "Engedélyezett"
},
"gamedig": {
"status": "Státusz",
"online": "Csatlakozva",
"offline": "Offline",
"offline": "Nem elérhető",
"name": "Név",
"map": "Térkép",
"currentPlayers": "Jelenlegi játékosok",
@ -764,7 +785,7 @@
"mealie": {
"recipes": "Receptek",
"users": "Felhasználók",
"categories": "Categories",
"categories": "Kategóriák",
"tags": "Címkék"
},
"openmediavault": {
@ -775,33 +796,97 @@
"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": "Last Downtime",
"downDuration": "Downtime Duration",
"lastDown": "Utolsó leállás",
"downDuration": "Leállás ideje",
"sitesUp": "Futó Webhelyek",
"sitesDown": "Nem Elérhető Webhelyek",
"paused": "Szünetel",
"notyetchecked": "Not Yet Checked",
"notyetchecked": "Még nincs ellenőrizve",
"up": "Fel",
"seemsdown": "Seems Down",
"seemsdown": "Elérhetetlennek tűnik",
"down": "Le",
"unknown": "Ismeretlen"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"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": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Felület",
"totalRoms": "Minden ROM"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"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"
},
"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": "Bans"
},
"wgeasy": {
"connected": "Csatlakozva",
"enabled": "Bekapcsolva",
"disabled": "Kikapcsolva",
"total": "Összes"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -15,8 +15,8 @@
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"hours": "h",
"days": "g",
"hours": "o",
"minutes": "m",
"seconds": "s"
},
@ -107,6 +107,13 @@
"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",
@ -127,21 +134,21 @@
},
"fritzbox": {
"connectionStatus": "Stato",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"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": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"received": "Ricevuti",
"sent": "Inviati",
"externalIPAddress": "IP Esterno"
},
"caddy": {
"upstreams": "Upstream",
@ -270,7 +277,7 @@
"approved": "Approvati",
"available": "Disponibili"
},
"pialert": {
"netalertx": {
"total": "Totale",
"connected": "Connesso",
"new_devices": "Nuovi Dispositivi",
@ -404,8 +411,8 @@
"total": "Totale",
"free": "Libero",
"used": "In utilizzo",
"days": "d",
"hours": "h",
"days": "g",
"hours": "o",
"crit": "Critico",
"read": "Letti",
"write": "Scrittura",
@ -419,7 +426,8 @@
"search": "Cerca",
"custom": "Personalizzato",
"visit": "Visita",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggerimenti"
},
"wmo": {
"0-day": "Soleggiato",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canali",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Rete",
"signalStrength": "Intensità",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passati",
@ -694,6 +710,11 @@
"targets_down": "Target Non Attivi",
"targets_total": "Targets Totali"
},
"gatus": {
"up": "Siti On",
"down": "Siti Down",
"uptime": "Tempo di attività"
},
"ghostfolio": {
"gross_percent_today": "Oggi",
"gross_percent_1y": "Un anno",
@ -775,6 +796,14 @@
"passed": "Passati",
"failed": "Fallito"
},
"openwrt": {
"uptime": "Tempo di attività",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Ricevuti"
},
"uptimerobot": {
"status": "Stato",
"uptime": "Tempo di attività",
@ -801,13 +830,63 @@
"totalRoms": "Total ROMs"
},
"netdata": {
"warnings": "Warnings",
"warnings": "Avvisi",
"criticals": "Criticals"
},
"plantit": {
"events": "Eventi",
"plants": "Piante",
"species": "Specie",
"images": "Immagini"
"events": "Events",
"plants": "Plants",
"photos": "Foto",
"species": "Specie"
},
"gitea": {
"notifications": "Notifiche",
"issues": "Problemi",
"pulls": "Richieste di Pull"
},
"stash": {
"scenes": "Scene",
"scenesPlayed": "Scene Riprodotte",
"playCount": "Totale Riproduzioni",
"playDuration": "Tempo Guardato",
"sceneSize": "Dimensione Delle Scene",
"sceneDuration": "Durata Delle Scene",
"images": "Immagini",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Esecutori",
"studios": "Studi",
"movies": "Film",
"tags": "Tag",
"oCount": "O Count"
},
"tandoor": {
"users": "Utenti",
"recipes": "Ricette",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Utenti",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "Allarmi",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connesso",
"enabled": "Abilitato",
"disabled": "Disabilitati",
"total": "Totale"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -14,11 +14,11 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m",
"seconds": "s"
"months": "",
"days": "",
"hours": "時間",
"minutes": "",
"seconds": ""
},
"widget": {
"missing_type": "見つからないウィジェットタイプ: {{type}}",
@ -47,7 +47,7 @@
"load": "ロード",
"temp": "温度",
"max": "最大",
"uptime": "上へ"
"uptime": "UP"
},
"unifi": {
"users": "ユーザ",
@ -61,40 +61,40 @@
"wlan_devices": "WLAN デバイス",
"lan_users": "LAN ユーザ",
"wlan_users": "WLAN ユーザ",
"up": "上へ",
"up": "UP",
"down": "下へ",
"wait": "お待ちください",
"empty_data": "サブシステム状態・不明"
"empty_data": "サブシステムの状態は不明"
},
"docker": {
"rx": "RX",
"tx": "TX",
"rx": "受信済み",
"tx": "送信済み",
"mem": "MEM",
"cpu": "CPU",
"running": "起動中",
"offline": "オフライン",
"error": "エラー",
"unknown": "不明",
"healthy": "健全",
"healthy": "正常",
"starting": "起動中",
"unhealthy": "非健全",
"not_found": "不明",
"exited": "終了",
"exited": "停止しました",
"partial": "部分的"
},
"ping": {
"error": "エラー",
"ping": "Ping",
"down": "下へ",
"up": "上へ",
"up": "稼働",
"not_available": "利用できません。"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "HTTP ステータス",
"error": "エラー",
"response": "Response",
"response": "応答",
"down": "下へ",
"up": "上へ",
"up": "稼働",
"not_available": "利用できません。"
},
"emby": {
@ -107,6 +107,13 @@
"episodes": "エピソード",
"songs": "曲"
},
"esphome": {
"offline": "オフライン",
"offline_alt": "オフライン",
"online": "オンライン",
"total": "合計",
"unknown": "不明"
},
"evcc": {
"pv_power": "発電量",
"battery_soc": "バッテリー",
@ -127,21 +134,21 @@
},
"fritzbox": {
"connectionStatus": "状態",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "接続済",
"connectionStatusUnconfigured": "未設定",
"connectionStatusConnecting": "接続中",
"connectionStatusAuthenticating": "認証中",
"connectionStatusPendingDisconnect": "接続を切断する",
"connectionStatusDisconnecting": "接続を切断中",
"connectionStatusDisconnected": "切断されました",
"connectionStatusConnected": "接続済",
"uptime": "稼働時間",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "最大ダウン",
"maxUp": "最大アップ",
"down": "下へ",
"up": "上へ",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"up": "稼働",
"received": "受信済み",
"sent": "送信済み",
"externalIPAddress": "退出ID"
},
"caddy": {
"upstreams": "アップストリーム",
@ -270,10 +277,10 @@
"approved": "承認済",
"available": "利用可"
},
"pialert": {
"netalertx": {
"total": "合計",
"connected": "接続済",
"new_devices": "新しいデバイス",
"connected": "接続済",
"new_devices": "新デバイス",
"down_alerts": "ダウンアラート"
},
"pihole": {
@ -400,12 +407,12 @@
"temp": "温度",
"_temp": "温度",
"warn": "警告",
"uptime": "上へ",
"uptime": "UP",
"total": "合計",
"free": "空き",
"used": "使用",
"days": "d",
"hours": "h",
"days": "",
"hours": "時間",
"crit": "クリティカル",
"read": "既読",
"write": "書き込み",
@ -419,7 +426,8 @@
"search": "検索",
"custom": "カスタム",
"visit": "訪問",
"url": "URL"
"url": "URL",
"searchsuggestion": "提案"
},
"wmo": {
"0-day": "晴れ",
@ -486,13 +494,13 @@
"up_to_date": "最新",
"child_bridges": "子ブリッジ",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "上へ",
"up": "稼働",
"pending": "保留中",
"down": "下へ"
},
"healthchecks": {
"new": "新着",
"up": "上へ",
"up": "稼働",
"grace": "猶予期間中",
"down": "下へ",
"paused": "一時停止中",
@ -523,7 +531,7 @@
"alerts": "アラート"
},
"pyload": {
"speed": "スピード",
"speed": "速度",
"active": "アクティブ",
"queue": "キュー",
"total": "合計"
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "チャンネル",
"hd": "HD"
"hd": "HD",
"tunerCount": "チューナー",
"channelNumber": "チャンネル",
"channelNetwork": "ネットワーク",
"signalStrength": "強さ",
"signalQuality": "クオリティ",
"symbolQuality": "クオリティ",
"networkRate": "ビットレート",
"clientIP": "クライアント IP"
},
"scrutiny": {
"passed": "合格",
@ -547,12 +563,12 @@
"total": "合計"
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"battery_charge": "バッテリー充電",
"ups_load": "UPS 負荷",
"ups_status": "UPS 状態",
"online": "オンライン",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "バッテリー稼働中",
"low_battery": "バッテリー残量低下"
},
"nextdns": {
"wait": "お待ちください",
@ -560,7 +576,7 @@
},
"mikrotik": {
"cpuLoad": "CPU負荷",
"memoryUsed": "使用済みメモリ",
"memoryUsed": "メモリ使用量",
"uptime": "稼働時間",
"numberOfLeases": "リース"
},
@ -601,7 +617,7 @@
"load": "読み込み平均",
"memory": "メモリ使用量",
"wanStatus": "WANステータス",
"up": "上へ",
"up": "稼働",
"down": "下へ",
"temp": "温度",
"disk": "ディスク使用量",
@ -623,8 +639,8 @@
"up": "サイトUp",
"down": "サイトDown",
"uptime": "稼働時間",
"incident": "インシデント",
"m": "m"
"incident": "事件",
"m": ""
},
"atsumeru": {
"series": "シリーズ",
@ -694,6 +710,11 @@
"targets_down": "ターゲット Down",
"targets_total": "ターゲット合計"
},
"gatus": {
"up": "サイトUp",
"down": "サイトDown",
"uptime": "稼働時間"
},
"ghostfolio": {
"gross_percent_today": "今日",
"gross_percent_1y": "1年",
@ -724,7 +745,7 @@
"downloadCount": "キュー",
"downloadBytesRemaining": "残り",
"downloadTotalBytes": "サイズ",
"downloadSpeed": "スピード"
"downloadSpeed": "速度"
},
"kavita": {
"seriesCount": "シリーズ",
@ -775,16 +796,24 @@
"passed": "合格",
"failed": "失敗"
},
"openwrt": {
"uptime": "稼働時間",
"cpuLoad": "CPU 平均負荷5 分)",
"up": "稼働",
"down": "下へ",
"bytesTx": "送信済み",
"bytesRx": "受信済み"
},
"uptimerobot": {
"status": "状態",
"uptime": "稼働時間",
"lastDown": "最後のダウンタイム",
"downDuration": "ダウンタイム感覚",
"downDuration": "ダウンタイム時間",
"sitesUp": "サイトUp",
"sitesDown": "サイトDown",
"paused": "一時停止中",
"notyetchecked": "チェックされていません",
"up": "上へ",
"up": "稼働",
"seemsdown": "ダウンしているようです",
"down": "下へ",
"unknown": "不明"
@ -793,15 +822,71 @@
"inCinemas": "映画館内",
"physicalRelease": "物理的なリリース",
"digitalRelease": "デジタル・リリース",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsToday": "本日の予定なし",
"noEventsFound": "予定が見つかりません"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "プラットフォーム",
"totalRoms": "ROMの合計"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "警告",
"criticals": "重大"
},
"plantit": {
"events": "イベント",
"plants": "植物",
"photos": "写真",
"species": "種"
},
"gitea": {
"notifications": "通知",
"issues": "課題",
"pulls": "プルリクエスト"
},
"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": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "에피소드",
"songs": "음악"
},
"esphome": {
"offline": "중지",
"offline_alt": "중지",
"online": "Online",
"total": "총합",
"unknown": "알 수 없음"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "승인됨",
"available": "이용 가능"
},
"pialert": {
"netalertx": {
"total": "총합",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Sunny",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "비트레이트",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "상태",
"uptime": "Uptime",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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": "경고",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connected",
"enabled": "활성",
"disabled": "비활성",
"total": "총합"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Bezsaistē",
"offline_alt": "Bezsaistē",
"online": "Online",
"total": "Kopā",
"unknown": "Nezināms"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@ -270,7 +277,7 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"netalertx": {
"total": "Kopā",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Saulains",
@ -535,7 +543,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",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

View File

@ -14,9 +14,9 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"hours": "h",
"months": "bln",
"days": "h",
"hours": "j",
"minutes": "m",
"seconds": "s"
},
@ -45,9 +45,9 @@
"free": "Bebas",
"used": "Telah diguna",
"load": "Beban",
"temp": "TEMP",
"max": "Max",
"uptime": "UP"
"temp": "SUHU",
"max": "Tertinggi",
"uptime": "HIDUP"
},
"unifi": {
"users": "Pengguna",
@ -61,102 +61,109 @@
"wlan_devices": "Peranti WLAN",
"lan_users": "Pengguna LAN",
"wlan_users": "Pengguna WLAN",
"up": "UP",
"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": "Running",
"running": "Sedang jalan",
"offline": "Luar talian",
"error": "Ralat",
"unknown": "Tidak Diketahui",
"healthy": "Healthy",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial"
"healthy": "Sihat",
"starting": "Bermula",
"unhealthy": "Kurang sihat",
"not_found": "Tidak dijumpai",
"exited": "Dimatikan",
"partial": "Sebahagian"
},
"ping": {
"error": "Ralat",
"ping": "Ping",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"down": "Mati",
"up": "Hidup",
"not_available": "Tidak dijumpai"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "Status HTTP",
"error": "Ralat",
"response": "Response",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"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": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"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": "Production",
"battery_soc": "Battery",
"pv_power": "Produksi",
"battery_soc": "Bateri",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"home_power": "Penggunaan",
"charge_power": "Pengecas",
"watt_hour": "Wj"
},
"flood": {
"download": "Download",
"upload": "Upload",
"download": "Muat turun",
"upload": "Muat naik",
"leech": "Leech",
"seed": "Seed"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Langganan",
"unread": "Belum dibaca"
},
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusUnconfigured": "Belum disuai",
"connectionStatusConnecting": "Menyambung",
"connectionStatusAuthenticating": "Pengesahan",
"connectionStatusPendingDisconnect": "Tunggu untuk Putus",
"connectionStatusDisconnecting": "Putuskan",
"connectionStatusDisconnected": "Sambungan Terputus",
"connectionStatusConnected": "Connected",
"uptime": "Masa Hidup",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"maxDown": "Mati Maksima",
"maxUp": "Hidup Maksima",
"down": "Mati",
"up": "Hidup",
"received": "Diterima",
"sent": "Telah dihantar",
"externalIPAddress": "IP Luaran"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Permintaan semasa",
"requests_failed": "Permintaan gagal"
},
"changedetectionio": {
"totalObserved": "Jumlah Diperhatikan",
"diffsDetected": "Perbezaan Dikesan"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Papar",
"recordings": "Rakaman",
"scheduled": "Dijadualkan",
"passes": "Lulus"
},
"tautulli": {
"playing": "Sedang dimainkan",
@ -180,7 +187,7 @@
"plex": {
"streams": "Strim Aktif",
"albums": "Albums",
"movies": "Movies",
"movies": "Filem",
"tv": "Rancangan TV"
},
"sabnzbd": {
@ -190,18 +197,18 @@
},
"rutorrent": {
"active": "Aktif",
"upload": "Upload",
"download": "Download"
"upload": "Muat naik",
"download": "Muat turun"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"download": "Muat turun",
"upload": "Muat naik",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"download": "Muat turun",
"upload": "Muat naik",
"leech": "Leech",
"seed": "Seed"
},
@ -214,21 +221,21 @@
"invalid": "Invalid"
},
"deluge": {
"download": "Download",
"upload": "Upload",
"download": "Muat turun",
"upload": "Muat naik",
"leech": "Leech",
"seed": "Seed"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"download": "Muat turun",
"upload": "Muat naik",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "Mahu",
"queued": "Dibaris Gilir",
"series": "Series",
"series": "Siri",
"queue": "Barisan",
"unknown": "Tidak Diketahui"
},
@ -236,7 +243,7 @@
"wanted": "Mahu",
"missing": "Hilang",
"queued": "Dibaris Gilir",
"movies": "Movies",
"movies": "Filem",
"queue": "Barisan",
"unknown": "Tidak Diketahui"
},
@ -270,7 +277,7 @@
"approved": "Lulus",
"available": "Sudah Ada"
},
"pialert": {
"netalertx": {
"total": "Jumlah",
"connected": "Connected",
"new_devices": "New Devices",
@ -289,12 +296,12 @@
"latency": "Kependaman"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"upload": "Muat naik",
"download": "Muat turun",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"running": "Sedang jalan",
"stopped": "Terhenti",
"total": "Jumlah"
},
@ -310,13 +317,13 @@
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
"ago": "{{value}} Lepas"
},
"tdarr": {
"queue": "Barisan",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
"processed": "Sudah diprosess",
"errored": "Ralat",
"saved": "Simpan"
},
"traefik": {
"routers": "Router",
@ -353,7 +360,7 @@
},
"jackett": {
"configured": "Telah Dikonfigurasi",
"errored": "Errored"
"errored": "Ralat"
},
"strelaysrv": {
"numActiveSessions": "Sesi",
@ -369,18 +376,18 @@
"medusa": {
"wanted": "Mahu",
"queued": "Dibaris Gilir",
"series": "Series"
"series": "Siri"
},
"minecraft": {
"players": "Players",
"version": "Version",
"players": "Senarai pemain",
"version": "Versi",
"status": "Status",
"up": "Online",
"up": "Dalam Talian",
"down": "Luar talian"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
"read": "Baca",
"unread": "Belum dibaca"
},
"authentik": {
"users": "Pengguna",
@ -390,36 +397,37 @@
"proxmox": {
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC",
"lxc": "LCX",
"vms": "Mesin Maya"
},
"glances": {
"cpu": "CPU",
"load": "Beban",
"wait": "Sila tunggu",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"temp": "SUHU",
"_temp": "Suhu",
"warn": "Amaran",
"uptime": "HIDUP",
"total": "Jumlah",
"free": "Bebas",
"used": "Telah diguna",
"days": "d",
"hours": "h",
"crit": "Crit",
"read": "Read",
"write": "Write",
"days": "h",
"hours": "j",
"crit": "Krit",
"read": "Baca",
"write": "Tulis",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
"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",
@ -486,19 +494,19 @@
"up_to_date": "Terkemaskini",
"child_bridges": "Jambatan Anak",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"up": "Hidup",
"pending": "Tertunda",
"down": "Down"
"down": "Mati"
},
"healthchecks": {
"new": "New",
"up": "Up",
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"new": "Baharu",
"up": "Hidup",
"grace": "Tempoh Aman",
"down": "Mati",
"paused": "Tangguh",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
"last_ping": "Ping terakhir",
"never": "Tiada ping"
},
"watchtower": {
"containers_scanned": "Terimbas",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Saluran",
"hd": "HD"
"hd": "HD",
"tunerCount": "Penala",
"channelNumber": "Saluran",
"channelNetwork": "Rangkaian",
"signalStrength": "Kekuatan",
"signalQuality": "Kualiti",
"symbolQuality": "Kualiti",
"networkRate": "Kadar bit",
"clientIP": "Klien"
},
"scrutiny": {
"passed": "Lulus",
@ -547,36 +563,36 @@
"total": "Jumlah"
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"online": "Online",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"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": "Sila tunggu",
"no_devices": "No Device Data Received"
"no_devices": "Tiada Data Diterima Peranti"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"cpuLoad": "Beban CPU",
"memoryUsed": "Penggunaan memori",
"uptime": "Masa Hidup",
"numberOfLeases": "Leases"
"numberOfLeases": "Sewaan"
},
"xteve": {
"streams_all": "All Streams",
"streams_all": "Semua Strim",
"streams_active": "Strim Aktif",
"streams_xepg": "XEPG Channels"
"streams_xepg": "Saluran XEPG"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"limit": "Limit"
"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"
@ -601,9 +617,9 @@
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"up": "Hidup",
"down": "Mati",
"temp": "Suhu",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
@ -627,14 +643,14 @@
"m": "m"
},
"atsumeru": {
"series": "Series",
"series": "Siri",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"series": "Siri",
"books": "Buku"
},
"diskstation": {
@ -643,7 +659,7 @@
"volumeAvailable": "Sudah Ada"
},
"mylar": {
"series": "Series",
"series": "Siri",
"issues": "Issues",
"wanted": "Mahu"
},
@ -656,7 +672,7 @@
"fileflows": {
"queue": "Barisan",
"processing": "Processing",
"processed": "Processed",
"processed": "Sudah diprosess",
"time": "Time"
},
"grafana": {
@ -691,34 +707,39 @@
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_down": "Sasaran Mati",
"targets_total": "Jumlah Sasaran"
},
"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",
"podcasts": "Podkas",
"books": "Buku",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcastsDuration": "Tempoh",
"booksDuration": "Tempoh"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Orang Dirumah",
"lights_on": "Hidupkan Lampu",
"switches_on": "Hidupkan Suis"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"monitoring": "Pemantauan",
"updates": "Kemaskini"
},
"calibreweb": {
"books": "Buku",
"authors": "Authors",
"authors": "Pengarang/Penulis",
"categories": "Categories",
"series": "Series"
"series": "Siri"
},
"jdownloader": {
"downloadCount": "Barisan",
@ -727,81 +748,145 @@
"downloadSpeed": "Kelajuan"
},
"kavita": {
"seriesCount": "Series",
"seriesCount": "Siri",
"totalFiles": "Files"
},
"azuredevops": {
"result": "Result",
"result": "Keputusan",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"buildId": "ID Binaan",
"succeeded": "Berjaya",
"notStarted": "Belum Bermula",
"failed": "Gagal",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"canceled": "Dibatalkan",
"inProgress": "Sedang Diproses",
"totalPrs": "Jumlah PR",
"myPrs": "PR Sendiri",
"approved": "Lulus"
},
"gamedig": {
"status": "Status",
"online": "Online",
"online": "Dalam Talian",
"offline": "Luar talian",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"name": "Nama",
"map": "Peta",
"currentPlayers": "Pemain Semasa",
"players": "Senarai pemain",
"maxPlayers": "Bilangan peserta maksimum",
"bots": "Bot",
"ping": "Ping"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"errored": "Ralat",
"noRecent": "Luput tarikh",
"totalUsed": "Storan digunakan"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Resipi",
"users": "Pengguna",
"categories": "Categories",
"tags": "Tags"
"tags": "Tanda nama"
},
"openmediavault": {
"downloading": "Downloading",
"downloading": "Sedang muat turun",
"total": "Jumlah",
"running": "Running",
"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": "Last Downtime",
"downDuration": "Downtime Duration",
"lastDown": "Masa Mati Terakhir",
"downDuration": "Jangkamasa Kematian",
"sitesUp": "Sites Up",
"sitesDown": "Sites Down",
"paused": "Paused",
"notyetchecked": "Not Yet Checked",
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"paused": "Tangguh",
"notyetchecked": "Belum Disemak",
"up": "Hidup",
"seemsdown": "Seperti Mati",
"down": "Mati",
"unknown": "Tidak Diketahui"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "Di pawagam",
"physicalRelease": "Edaran fizikal",
"digitalRelease": "Edaran digital",
"noEventsToday": "Tiada agenda untuk hari ini!",
"noEventsFound": "Tiada agenda dijumpai"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platform",
"totalRoms": "Jumlah ROM"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Amaran",
"criticals": "Kritikal"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"movies": "Filem",
"tags": "Tanda nama",
"oCount": "O Count"
},
"tandoor": {
"users": "Pengguna",
"recipes": "Resipi",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Pengguna",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "Alerts",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connected",
"enabled": "Didayakan",
"disabled": "Dinyahdayakan",
"total": "Jumlah"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Afleveringen",
"songs": "Nummers"
},
"esphome": {
"offline": "Onbereikbaar",
"offline_alt": "Onbereikbaar",
"online": "Bereikbaar",
"total": "Totaal",
"unknown": "Onbekend"
},
"evcc": {
"pv_power": "Productie",
"battery_soc": "Batterij",
@ -270,7 +277,7 @@
"approved": "Goedgekeurd",
"available": "Beschikbaar"
},
"pialert": {
"netalertx": {
"total": "Totaal",
"connected": "Verbonden",
"new_devices": "Nieuwe Apparaten",
@ -419,7 +426,8 @@
"search": "Zoek",
"custom": "Aangepast",
"visit": "Bezoek",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestie"
},
"wmo": {
"0-day": "Zonnig",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanalen",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Kanaal",
"channelNetwork": "Netwerk",
"signalStrength": "Sterkte",
"signalQuality": "Kwaliteit",
"symbolQuality": "Kwaliteit",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Geslaagd",
@ -694,6 +710,11 @@
"targets_down": "Doelen onbereikbaar",
"targets_total": "Totaal aantal doelen"
},
"gatus": {
"up": "Sites Bereikbaar",
"down": "Sites Onbereikbaar",
"uptime": "Online"
},
"ghostfolio": {
"gross_percent_today": "Vandaag",
"gross_percent_1y": "Een jaar",
@ -775,6 +796,14 @@
"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",
@ -797,11 +826,67 @@
"noEventsFound": "Geen gebeurtenissen gevonden"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platformen",
"totalRoms": "Totale ROM's"
},
"netdata": {
"warnings": "Waarschuwingen",
"criticals": "Kritiek"
},
"plantit": {
"events": "Gebeurtenissen",
"plants": "Planten",
"photos": "Foto's",
"species": "Soorten"
},
"gitea": {
"notifications": "Notificaties",
"issues": "Problemen",
"pulls": "Pull Requests"
},
"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": "Outdated",
"banned": "Banned"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -14,9 +14,9 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "mc",
"days": "d",
"hours": "h",
"hours": "g",
"minutes": "m",
"seconds": "s"
},
@ -40,7 +40,7 @@
},
"resources": {
"cpu": "Procesor",
"mem": "PAM",
"mem": "RAM",
"total": "Całkowite",
"free": "Wolne",
"used": "Użyte",
@ -53,9 +53,9 @@
"users": "Użytkownicy",
"uptime": "Czas działania",
"days": "Dni",
"wan": "Sieć WAN",
"lan": "Sieć LAN",
"wlan": "Sieć WLAN",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Urządzenia",
"lan_devices": "Urządzenia LAN",
"wlan_devices": "Urządzenia WLAN",
@ -64,23 +64,23 @@
"up": "CZAS",
"down": "Pobieranie",
"wait": "Proszę czekać",
"empty_data": "Nieznany stan"
"empty_data": "Status podsystemu nieznany"
},
"docker": {
"rx": "Rx",
"tx": "Tx",
"mem": "PAM",
"mem": "RAM",
"cpu": "Procesor",
"running": "Działa",
"offline": "Nieosiągalny",
"error": "Błąd",
"unknown": "Nieznany",
"healthy": "Zdrowy",
"starting": "Rozpoczynanie",
"unhealthy": "Niezdrowe",
"starting": "Uruchamianie",
"unhealthy": "Niezdrowy",
"not_found": "Nie znaleziono",
"exited": "Zakończone",
"partial": "Częściowe"
"exited": "Zakończony",
"partial": "Częściowy"
},
"ping": {
"error": "Błąd",
@ -107,6 +107,13 @@
"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",
@ -130,18 +137,18 @@
"connectionStatusUnconfigured": "Nieskonfigurowane",
"connectionStatusConnecting": "Łączenie",
"connectionStatusAuthenticating": "Uwierzytelnianie",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusPendingDisconnect": "Oczekujące rozłączenie",
"connectionStatusDisconnecting": "Rozłączanie",
"connectionStatusDisconnected": "Rozłączono",
"connectionStatusConnected": "Połączony",
"connectionStatusConnected": "Connected",
"uptime": "Czas działania",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "Maks. Pobieranie",
"maxUp": "Maks. Wysyłanie",
"down": "Niedostępny",
"up": "Dostępny",
"received": "Odebrane",
"sent": "Wysłane",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Pub. IP"
},
"caddy": {
"upstreams": "Upstreams",
@ -149,12 +156,12 @@
"requests_failed": "Nieudane zapytania"
},
"changedetectionio": {
"totalObserved": "Obserwowanych ogółem",
"diffsDetected": "Wykryto różnic"
"totalObserved": "Łącznie obserwowanych",
"diffsDetected": "Wykrytych różnic"
},
"channelsdvrserver": {
"shows": "Seriale",
"recordings": "Nagrywanie",
"recordings": "Nagrania",
"scheduled": "W kolejce",
"passes": "Przebiegi"
},
@ -270,11 +277,11 @@
"approved": "Zaakceptowane",
"available": "Dostępne"
},
"pialert": {
"netalertx": {
"total": "Całkowite",
"connected": "Połączony",
"new_devices": "Nowe urządzenia",
"down_alerts": "Powiadomienia o niedostępności"
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Zapytania",
@ -388,7 +395,7 @@
"failedLoginsLast24H": "Nieudane logowania (24h)"
},
"proxmox": {
"mem": "PAM",
"mem": "RAM",
"cpu": "Procesor",
"lxc": "Kontenery LXC",
"vms": "Maszyn wirtualnych"
@ -405,8 +412,8 @@
"free": "Wolne",
"used": "Użyte",
"days": "d",
"hours": "h",
"crit": "Crit",
"hours": "g",
"crit": "Krytyczyny",
"read": "Przeczytane",
"write": "Zapis",
"gpu": "Karta graficzna",
@ -419,7 +426,8 @@
"search": "Wyszukaj",
"custom": "Niestandardowe",
"visit": "Odwiedź",
"url": "Adres URL"
"url": "Adres URL",
"searchsuggestion": "Sugestia"
},
"wmo": {
"0-day": "Słoneczny",
@ -484,7 +492,7 @@
"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": "Dostępny",
"pending": "Oczekiwane",
@ -493,12 +501,12 @@
"healthchecks": {
"new": "Nowy",
"up": "Dostępny",
"grace": "In Grace Period",
"grace": "W okresie karencji",
"down": "Niedostępny",
"paused": "Zatrzymane",
"status": "Stan",
"last_ping": "Ostatni ping",
"never": "No pings yet"
"never": "Brak pingów"
},
"watchtower": {
"containers_scanned": "Zeskanowane",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanały",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tunery",
"channelNumber": "Kanał",
"channelNetwork": "Sieć",
"signalStrength": "Siła",
"signalQuality": "Jakość",
"symbolQuality": "Jakość",
"networkRate": "Bitrate",
"clientIP": "Klient"
},
"scrutiny": {
"passed": "Powodzenie",
@ -547,12 +563,12 @@
"total": "Całkowite"
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"battery_charge": "Stan baterii",
"ups_load": "Obciążenie UPS",
"ups_status": "Status UPS",
"online": "Dostępny",
"on_battery": "On Battery",
"low_battery": "Low Battery"
"on_battery": "Na baterii",
"low_battery": "Niski poziom baterii"
},
"nextdns": {
"wait": "Proszę czekać",
@ -560,7 +576,7 @@
},
"mikrotik": {
"cpuLoad": "Obciążenie procesora",
"memoryUsed": "Zuyżyta pamięć",
"memoryUsed": "Zużyta pamięć",
"uptime": "Czas działania",
"numberOfLeases": "Dzierżawy"
},
@ -571,8 +587,8 @@
},
"opendtu": {
"yieldDay": "Dzisiaj",
"absolutePower": "Power",
"relativePower": "Power %",
"absolutePower": "Zasilanie",
"relativePower": "Moc %",
"limit": "Limit"
},
"opnsense": {
@ -589,16 +605,16 @@
},
"octoprint": {
"printer_state": "Stan",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"temp_tool": "Temperatura narzędzia",
"temp_bed": "Temp. łóżka",
"job_completion": "Ukończono"
},
"cloudflared": {
"origin_ip": "Origin IP",
"origin_ip": "IP Źródła",
"status": "Stan"
},
"pfsense": {
"load": "Load Avg",
"load": "Śr. Obciążenie",
"memory": "Użycie pamięci",
"wanStatus": "Status WAN",
"up": "Dostępny",
@ -608,8 +624,8 @@
"wanIP": "WAN IP"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"datastore_usage": "Magazyn danych",
"failed_tasks_24h": "Nieudane zadania 24h",
"cpu_usage": "Procesor",
"memory_usage": "Pamięć"
},
@ -662,8 +678,8 @@
"grafana": {
"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",
@ -671,7 +687,7 @@
"freespace": "Wolna przestrzeń",
"activeusers": "Aktywni użytkownicy",
"numfiles": "Pliki",
"numshares": "Shared Items"
"numshares": "Udostępnione elementy"
},
"kopia": {
"status": "Stan",
@ -682,7 +698,7 @@
},
"unmanic": {
"active_workers": "Aktywni pracownicy",
"total_workers": "Total Workers",
"total_workers": "Wszyscy pracownicy",
"records_total": "Długość kolejki"
},
"pterodactyl": {
@ -690,9 +706,14 @@
"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"
},
"gatus": {
"up": "Działające",
"down": "Niedziałające",
"uptime": "Czas działania"
},
"ghostfolio": {
"gross_percent_today": "Dzisiaj",
@ -706,9 +727,9 @@
"booksDuration": "Czas trwania"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Dom ludzi",
"lights_on": "Światła włączone",
"switches_on": "Przełączniki włączone"
},
"whatsupdocker": {
"monitoring": "Monitoring",
@ -735,12 +756,12 @@
"status": "Stan",
"buildId": "ID kompilacji",
"succeeded": "Ukończono",
"notStarted": "Not Started",
"notStarted": "Nierozpoczęte",
"failed": "Niepowodzenie",
"canceled": "Anulowano",
"inProgress": "W trakcie",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"totalPrs": "Łącznie PRs",
"myPrs": "Moje PRs",
"approved": "Zaakceptowane"
},
"gamedig": {
@ -749,7 +770,7 @@
"offline": "Nieosiągalny",
"name": "Nazwa",
"map": "Mapa",
"currentPlayers": "Current players",
"currentPlayers": "Gracze online",
"players": "Gracze",
"maxPlayers": "Maksymalna ilość graczy",
"bots": "Boty",
@ -759,10 +780,10 @@
"ok": "Ok",
"errored": "Błędy",
"noRecent": "Nieaktualne",
"totalUsed": "Used Storage"
"totalUsed": "Użyta pamięć"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Przepisy",
"users": "Użytkownicy",
"categories": "Kategorie",
"tags": "Tagi"
@ -775,33 +796,97 @@
"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": "Last Downtime",
"downDuration": "Downtime Duration",
"lastDown": "Ostatni downtime",
"downDuration": "Długość downtime'u",
"sitesUp": "Działające",
"sitesDown": "Niedziałające",
"paused": "Zatrzymane",
"notyetchecked": "Not Yet Checked",
"notyetchecked": "Nie sprawdzono",
"up": "Dostępny",
"seemsdown": "Seems Down",
"seemsdown": "Możliwe, że wyłączony",
"down": "Niedostępny",
"unknown": "Nieznany"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "W kinach",
"physicalRelease": "Wydanie fizyczne",
"digitalRelease": "Wydanie cyfrowe",
"noEventsToday": "Brak wydarzeń na dziś!",
"noEventsFound": "Nie znaleziono wydarzeń"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platformy",
"totalRoms": "Łącznie ROM"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"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"
},
"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": "Connected",
"enabled": "Włączone",
"disabled": "Wyłączone",
"total": "Całkowite"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"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",
@ -133,7 +140,7 @@
"connectionStatusPendingDisconnect": "Desconexão pendente",
"connectionStatusDisconnecting": "Desconectando",
"connectionStatusDisconnected": "Desconectado",
"connectionStatusConnected": "Conectado",
"connectionStatusConnected": "Connected",
"uptime": "Ligado",
"maxDown": "Máx. de Descarga",
"maxUp": "Max. de Envio",
@ -270,11 +277,11 @@
"approved": "Aprovada",
"available": "Disponível"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Conectado",
"new_devices": "Novos dispositivos",
"down_alerts": "Alertas de Baixo"
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Consultas",
@ -419,7 +426,8 @@
"search": "Busca",
"custom": "Personalizado",
"visit": "Visitar",
"url": "Endereço URL"
"url": "Endereço URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Solarengo",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canais",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Taxa de bits",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Aprovado",
@ -694,6 +710,11 @@
"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",
@ -775,6 +796,14 @@
"passed": "Aprovado",
"failed": "Falhou"
},
"openwrt": {
"uptime": "Ligado",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Recebido"
},
"uptimerobot": {
"status": "Estado",
"uptime": "Ligado",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Fotos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problemas",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"movies": "Filmes",
"tags": "Etiquetas",
"oCount": "O Count"
},
"tandoor": {
"users": "Utilizadores",
"recipes": "Receitas",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Utilizadores",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "Alertas",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connected",
"enabled": "Ativo",
"disabled": "Desabilitado",
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -14,7 +14,7 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "M",
"days": "d",
"hours": "h",
"minutes": "m",
@ -22,11 +22,11 @@
},
"widget": {
"missing_type": "Tipo de Widget ausente: {{type}}",
"api_error": "Erro da API",
"api_error": "Erros de API",
"information": "Informação",
"status": "Estado",
"url": "Endereço URL",
"raw_error": "Erro",
"raw_error": "Erro Raw",
"response_data": "Dados da Resposta"
},
"weather": {
@ -85,28 +85,35 @@
"ping": {
"error": "Erro",
"ping": "Tempo de resposta",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"down": "Inativo",
"up": "Ativo",
"not_available": "Não Disponível"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "Estado HTTP",
"error": "Erro",
"response": "Response",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"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 ativas",
"no_active": "Sem Streams Ativos",
"movies": "Filmes",
"series": "Séries",
"episodes": "Episódios",
"songs": "Canções"
},
"esphome": {
"offline": "Desligado",
"offline_alt": "Desligado",
"online": "Disponível",
"total": "Total",
"unknown": "Desconhecido"
},
"evcc": {
"pv_power": "Produção",
"battery_soc": "Bateria",
@ -127,24 +134,24 @@
},
"fritzbox": {
"connectionStatus": "Estado",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"connectionStatusUnconfigured": "Não configurado",
"connectionStatusConnecting": "Conectando",
"connectionStatusAuthenticating": "Autenticando",
"connectionStatusPendingDisconnect": "Desconexão Pendente",
"connectionStatusDisconnecting": "Desconectando",
"connectionStatusDisconnected": "Desconectado",
"connectionStatusConnected": "Conectado",
"uptime": "Ligado",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"maxUp": "Máx. Acima",
"down": "Inativo",
"up": "Ativo",
"received": "Recebido",
"sent": "Enviado",
"externalIPAddress": "IP Externo"
},
"caddy": {
"upstreams": "Upstreams",
"upstreams": "Streams de Envio",
"requests": "Solicitações atuais",
"requests_failed": "Solicitações com falha"
},
@ -153,24 +160,24 @@
"diffsDetected": "Diferenças Detetadas"
},
"channelsdvrserver": {
"shows": "Shows",
"shows": "Programas",
"recordings": "Gravações",
"scheduled": "Scheduled",
"scheduled": "Agendado",
"passes": "Passes"
},
"tautulli": {
"playing": "A reproduzir",
"transcoding": "Transcodificação",
"bitrate": "Taxa de bits",
"no_active": "Sem streams ativas",
"plex_connection_error": "Check Plex Connection"
"no_active": "Sem Streams Ativos",
"plex_connection_error": "Verifique a conexão do Plex"
},
"omada": {
"connectedAp": "APs Ligados",
"activeUser": "Dispositivos activos",
"activeUser": "Dispositivos ativos",
"alerts": "Alertas",
"connectedGateway": "Gateways ligados",
"connectedSwitches": "Switches ligados"
"connectedGateway": "Gateways conectados",
"connectedSwitches": "Switches conectados"
},
"nzbget": {
"rate": "Taxa",
@ -179,7 +186,7 @@
},
"plex": {
"streams": "Streams Ativas",
"albums": "Albums",
"albums": "Álbuns",
"movies": "Filmes",
"tv": "Series de TV"
},
@ -206,12 +213,12 @@
"seed": "Semente"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"cpuUsage": "Uso de CPU",
"memUsage": "Uso de Memória",
"systemTempC": "Temp. do Sistema",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
"volumeUsage": "Uso do volume",
"invalid": "Inválido"
},
"deluge": {
"download": "Descarregar",
@ -243,7 +250,7 @@
"lidarr": {
"wanted": "Desejada",
"queued": "Em fila",
"artists": "Artists"
"artists": "Artistas"
},
"readarr": {
"wanted": "Desejada",
@ -270,16 +277,16 @@
"approved": "Aprovada",
"available": "Disponível"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
"connected": "Conectado",
"new_devices": "Novos dispositivos",
"down_alerts": "Alertas de Inatividade"
},
"pihole": {
"queries": "Consultas",
"blocked": "Bloqueado",
"blocked_percent": "Blocked %",
"blocked_percent": "Bloqueado %",
"gravity": "Gravidade"
},
"adguard": {
@ -299,11 +306,11 @@
"total": "Total"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"address": "Endereço",
"expires": "Expira em",
"never": "Nunca",
"last_seen": "Visto por último",
"now": "Agora",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
@ -324,8 +331,8 @@
"middleware": "Middleware"
},
"navidrome": {
"nothing_streaming": "Sem streams ativas",
"please_wait": "Por favor aguarde"
"nothing_streaming": "Sem Streams Ativos",
"please_wait": "Por favor, aguarde"
},
"npm": {
"enabled": "Ativo",
@ -375,7 +382,7 @@
"players": "Reprodutores",
"version": "Versão",
"status": "Estado",
"up": "Online",
"up": "Disponível",
"down": "Desligado"
},
"miniflux": {
@ -398,20 +405,20 @@
"load": "Carga",
"wait": "Por favor aguarde",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"_temp": "Temperatura",
"warn": "Aviso",
"uptime": "CIMA",
"total": "Total",
"free": "Livre",
"used": "Utilizado",
"days": "d",
"hours": "h",
"crit": "Crit",
"crit": "Crítico",
"read": "Lido",
"write": "Write",
"write": "Escrita",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
"mem": "Memória",
"swap": "Temporário"
},
"quicklaunch": {
"bookmark": "Marcador",
@ -419,7 +426,8 @@
"search": "Busca",
"custom": "Personalizado",
"visit": "Visitar",
"url": "Endereço URL"
"url": "Endereço URL",
"searchsuggestion": "Sugestão"
},
"wmo": {
"0-day": "Solarengo",
@ -486,15 +494,15 @@
"up_to_date": "Atualizado",
"child_bridges": "Pontes Filhas",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"up": "Ativo",
"pending": "Pendente",
"down": "Down"
"down": "Inativo"
},
"healthchecks": {
"new": "Novo",
"up": "Up",
"up": "Ativo",
"grace": "Em Período Gratuito",
"down": "Down",
"down": "Inativo",
"paused": "Pausado",
"status": "Estado",
"last_ping": "Ultimo Ping",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canais",
"hd": "HD"
"hd": "HD",
"tunerCount": "Sintonizadores",
"channelNumber": "Canal",
"channelNetwork": "Rede",
"signalStrength": "Potência",
"signalQuality": "Qualidade",
"symbolQuality": "Qualidade",
"networkRate": "Taxa de bits",
"clientIP": "Cliente"
},
"scrutiny": {
"passed": "Aprovado",
@ -547,15 +563,15 @@
"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"
"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",
"wait": "Por favor, aguarde",
"no_devices": "Nenhum dado do dispositivo recebido"
},
"mikrotik": {
@ -570,10 +586,10 @@
"streams_xepg": "Canais XEPG"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"limit": "Limit"
"yieldDay": "Hoje",
"absolutePower": "Energia",
"relativePower": "Energia %",
"limit": "Limite"
},
"opnsense": {
"cpu": "Carga do CPU",
@ -598,14 +614,14 @@
"status": "Estado"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
"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",
@ -628,9 +644,9 @@
},
"atsumeru": {
"series": "Séries",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
"archives": "Arquivos",
"chapters": "Capítulos",
"categories": "Categorias"
},
"komga": {
"libraries": "Bibliotecas",
@ -648,7 +664,7 @@
"wanted": "Desejada"
},
"photoprism": {
"albums": "Albums",
"albums": "Álbuns",
"photos": "Fotos",
"videos": "Vídeos",
"people": "Pessoa"
@ -670,8 +686,8 @@
"memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre",
"activeusers": "Utilizadores Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
"numfiles": "Arquivos",
"numshares": "Itens compartilhados"
},
"kopia": {
"status": "Estado",
@ -682,7 +698,7 @@
},
"unmanic": {
"active_workers": "Workers Ativos",
"total_workers": "Total Workers",
"total_workers": "Total de trabalhadores",
"records_total": "Comprimento da Fila"
},
"pterodactyl": {
@ -694,8 +710,13 @@
"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": "Today",
"gross_percent_today": "Hoje",
"gross_percent_1y": "Um ano",
"gross_percent_max": "Todo o tempo"
},
@ -711,13 +732,13 @@
"switches_on": "Interruptores Ligados"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"monitoring": "Monitorando",
"updates": "Atualizações"
},
"calibreweb": {
"books": "Livros",
"authors": "Authors",
"categories": "Categories",
"authors": "Autores",
"categories": "Categorias",
"series": "Séries"
},
"jdownloader": {
@ -728,80 +749,144 @@
},
"kavita": {
"seriesCount": "Séries",
"totalFiles": "Files"
"totalFiles": "Arquivos"
},
"azuredevops": {
"result": "Result",
"result": "Resultado",
"status": "Estado",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"buildId": "ID Compilação",
"succeeded": "Bem-sucedido",
"notStarted": "Não iniciado",
"failed": "Falhou",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"canceled": "Cancelado",
"inProgress": "Em Progresso",
"totalPrs": "Total de PRs",
"myPrs": "Minhas PRs",
"approved": "Aprovada"
},
"gamedig": {
"status": "Estado",
"online": "Online",
"online": "Disponível",
"offline": "Desligado",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"name": "Nome",
"map": "Mapa",
"currentPlayers": "Jogadores atuais",
"players": "Reprodutores",
"maxPlayers": "Max players",
"bots": "Bots",
"maxPlayers": "Número Máximo de Jogadores",
"bots": "Robôs",
"ping": "Tempo de resposta"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"errored": "Erros",
"noRecent": "Desatualizado",
"totalUsed": "Armazanamento Utilizado"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Receitas",
"users": "Utilizadores",
"categories": "Categories",
"tags": "Tags"
"categories": "Categorias",
"tags": "Marcadores"
},
"openmediavault": {
"downloading": "Downloading",
"downloading": "Baixando",
"total": "Total",
"running": "A correr",
"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": "Estado",
"uptime": "Ligado",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
"lastDown": "Última inatividade",
"downDuration": "Duração de inatividade",
"sitesUp": "Sites no Ar",
"sitesDown": "Sites Fora do Ar",
"paused": "Pausado",
"notyetchecked": "Not Yet Checked",
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"notyetchecked": "Não conferidos ainda",
"up": "Ativo",
"seemsdown": "Parece Desconectado",
"down": "Inativo",
"unknown": "Desconhecido"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "Nos cinemas",
"physicalRelease": "Versão física",
"digitalRelease": "Versão digital",
"noEventsToday": "Nenhum evento para hoje!",
"noEventsFound": "Nenhum evento encontrado"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Plataformas",
"totalRoms": "Total de ROMs"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"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"
},
"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": "Utilizadores",
"recipes": "Receitas",
"keywords": "Palavras-chave"
},
"homebox": {
"items": "Itens",
"totalWithWarranty": "Com Garantia",
"locations": "Localização",
"labels": "Rótulos",
"users": "Utilizadores",
"totalValue": "Valor Total"
},
"crowdsec": {
"alerts": "Alertas",
"bans": "Banimentos"
},
"wgeasy": {
"connected": "Conectado",
"enabled": "Ativo",
"disabled": "Desabilitado",
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
"auth": "With Auth",
"outdated": "Outdated",
"banned": "Banned"
}
}

View File

@ -107,6 +107,13 @@
"episodes": "Episoade",
"songs": "Melodii"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Necunoscut"
},
"evcc": {
"pv_power": "Producție",
"battery_soc": "Baterie",
@ -270,7 +277,7 @@
"approved": "Aprobate",
"available": "Disponibile"
},
"pialert": {
"netalertx": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
@ -419,7 +426,8 @@
"search": "Caută",
"custom": "Personalizat",
"visit": "Vizită",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Însorit",
@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Rata de biți",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
@ -694,6 +710,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",
@ -775,6 +796,14 @@
"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",
@ -803,5 +832,61 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"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"
}
}

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