Compare commits

...

55 Commits

Author SHA1 Message Date
github-actions[bot]
0af975b3d9 New Crowdin translations by GitHub Action (#3096)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-24 00:09:15 -07:00
shamoon
01a2495e47 Fix: correctly handle direct tab navigation with encoded chars (#3172) 2024-03-23 23:22:27 -07:00
SunnyCloudy
e4b4eba445 Fix: Glances widget display (#3164)
Co-Authored-By: shamoon <4887959+shamoon@users.noreply.github.com>
2024-03-23 23:21:02 -07:00
Dawud
885b2624a8 Enhancement: support Jackett widget with admin password (#3097) (#3165)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-03-23 01:34:07 -07:00
Joseph M
f06214a295 Documentation: note that "issue" permissions are also required for Gitea widget (#3157) 2024-03-21 11:59:31 -07:00
zmweske
7627f9c5a7 Documentation: add info re pfSense API token auth (#3145) 2024-03-20 13:21:56 -07:00
she11sh0cked
556450c8de Fix: log error when getting services from Docker server fails (#3147) 2024-03-20 07:26:11 -07:00
Lukas H
edc38c93e2 Documentation: fix minor typo (#3136) 2024-03-18 15:56:04 -07:00
shamoon
b9e1a514cb Update settings.md 2024-03-17 08:06:49 -07:00
shamoon
7e0fbed06b Remove commented out code 2024-03-15 07:23:19 -07:00
Rob Gonnella
358633638f Documentation: Adds sticky cookie note for k8s multiple replica setups (#3120) 2024-03-14 21:07:35 -07:00
shamoon
fa1d343f2a Documentation: add optional auth to whatsupdocker documentation
Co-Authored-By: zmweske <31971632+zmweske@users.noreply.github.com>
2024-03-14 21:07:35 -07:00
RoboMagus
247f73f0db Fix: Add alternative 'offline' status to EspHome widget (#3107) 2024-03-11 07:06:27 -07:00
shamoon
54db9ac551 Fix: field parsing fails with docker labels (#3101) 2024-03-10 22:27:38 -07:00
github-actions[bot]
c89c4884b6 New Crowdin translations by GitHub Action (#2708)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-10 14:20:36 -07:00
Christian DeLuca
2d5f93668a Feature: Add Homebox widget (#3095)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-03-10 13:24:13 -07:00
Ben Phelps
b5258c5200 Enhancement: Add formatting options to weather widgets (#3093) 2024-03-09 22:52:57 -08:00
shamoon
83d1ea5ec4 Update bug_report.yml 2024-03-08 19:44:12 -08:00
sgrtye
a660b42095 Fix: truncate long process names in glances widget (#3079) 2024-03-08 19:13:36 -08:00
Jon Seager
8b029ac11c Enhancement: support LOG_TARGETS environment variable (#3075) 2024-03-08 19:13:36 -08:00
shamoon
9caede1cc3 Change: default merge pihole blocked fields (#3065) 2024-03-08 19:13:36 -08:00
teffalump
b05b9b1420 Feature: Add tandoor widget (#3060)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-03-08 19:13:36 -08:00
RoboMagus
8e9920a9d8 Feature: ESPHome widget (#2986)
Co-Authored-By: RoboMagus <68224306+RoboMagus@users.noreply.github.com>

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-03-08 19:13:36 -08:00
shamoon
4d68f55dfa Fix: omada widget missing switches field, enforce default and max fields (#3047) 2024-03-08 19:13:36 -08:00
dependabot[bot]
89fe819681 Chore(deps): Bump recharts from 2.12.1 to 2.12.2 (#3043)
Bumps [recharts](https://github.com/recharts/recharts) from 2.12.1 to 2.12.2.
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/recharts/recharts/compare/v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: recharts
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 19:13:36 -08:00
dependabot[bot]
bb311ce1a0 Chore(deps-dev): Bump prettier from 3.2.4 to 3.2.5 (#3042)
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 19:13:36 -08:00
shamoon
fc1bf53f8f Fix: info widget gaps (#3038) 2024-03-08 19:13:36 -08:00
shamoon
70f0eb3af6 Minor status refactoring 2024-03-08 19:13:36 -08:00
RoboMagus
5892d7407c Fix: docker status labels colors (#3028)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-29 07:34:26 -08:00
russkinz
f0910a9e8b Documentation: fix openwrt docs (#3016)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-28 12:32:27 -08:00
shamoon
e92ccc30ba Fix: only log errors directly if exist 2024-02-28 11:44:32 -08:00
shamoon
68e4b98ddb Fix: support cyrillic characters in quicklaunch (#3020) 2024-02-28 01:46:06 -08:00
shamoon
abce57379d Documentation: fix repository typo (#3013) 2024-02-27 00:32:05 -08:00
dependabot[bot]
da57b2779a Chore(deps): Bump recharts from 2.11.0 to 2.12.1 (#3002)
Bumps [recharts](https://github.com/recharts/recharts) from 2.11.0 to 2.12.1.
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/recharts/recharts/compare/v2.11...v2.12.1)

---
updated-dependencies:
- dependency-name: recharts
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-24 15:31:40 -08:00
dependabot[bot]
708a67ad03 Chore(deps-dev): Bump postcss from 8.4.33 to 8.4.35 (#3001)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.33 to 8.4.35.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.33...8.4.35)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-24 15:30:56 -08:00
dependabot[bot]
b07221b8e9 Chore(deps-dev): Bump eslint from 8.56.0 to 8.57.0 (#3000)
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-24 15:30:40 -08:00
dependabot[bot]
c5876f22fe Chore(deps): Bump systeminformation from 5.21.24 to 5.22.0 (#2999)
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.21.24 to 5.22.0.
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.21.24...v5.22.0)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-24 15:30:03 -08:00
flightcode
000d06aa04 Documentation: Fix link in Home Assistant service widget docs (#2994) 2024-02-24 15:26:05 -08:00
shamoon
5a19640c83 Move to discussion-first issues 2024-02-24 15:26:05 -08:00
shamoon
1893c9b8da Fix: Google search suggestions with accented characters (#2993) 2024-02-24 15:26:05 -08:00
shamoon
67d99a5512 Change: use byterate for Sabnzbd (#2990) 2024-02-24 15:26:05 -08:00
Zerebos
8157b03380 Feature: stash widget (#2238) (#2984) 2024-02-24 15:26:05 -08:00
RoboMagus
45a9e2a6da Documentation: fix plant-it docs (#2987)
* Fix plant-it docs

* Run pre-commit

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-24 15:26:05 -08:00
shamoon
fce694e2b9 Feature: add gitea widget (#2968) 2024-02-24 15:26:05 -08:00
shamoon
291bf422f9 Enhancement: support different bytes multipliers for disk space for resources / glances and metrics widgets (#2966) 2024-02-24 15:26:05 -08:00
shamoon
3fae59c2bd Add read-only note for development 2024-02-24 15:26:05 -08:00
Massimiliano De Luise
619f365c92 Feature: Plant-it widget (#2941) 2024-02-19 17:54:28 -08:00
shamoon
841c74d58a Add info re automatic closing 2024-02-19 06:09:07 -08:00
Steven de Jong
b0dd810b49 Enhancement: allow api auth with moonraker service (#2934)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-18 14:14:23 -08:00
shamoon
36585a2c44 Close unsupported feature requests 2024-02-17 21:56:31 -08:00
Derek Stotz
c268739e1f Enhancement: Add requestBody param for customapi (#2921) 2024-02-16 20:25:31 -08:00
Derek Stotz
0d47dcaac7 Enhancement: Add enablePools option to TrueNAS service widget (#2908)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-15 21:38:55 -08:00
Benedek Kozma
a251c34059 Change: move custom.css linking to head to avoid FOUC (#2916)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-15 15:52:59 -08:00
sgrtye
4dca4cc892 Feature: Add list view for custom api (#2891)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-02-14 23:18:37 -08:00
Benedek Kozma
ea0310548a Change: use Script component instead of async script for custom.js (#2901) 2024-02-13 16:42:50 -08:00
135 changed files with 5695 additions and 1665 deletions

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

@@ -27,7 +27,7 @@ jobs:
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
for your contributions. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-respoistory-maintenance) for more details.
lock-threads:
name: 'Lock Old Threads'
runs-on: ubuntu-latest
@@ -42,14 +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-repository-maintenance) for more details.
pr-comment: >
This pull request has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new discussion for related concerns.
See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.
discussion-comment: >
This discussion has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new discussion for related concerns.
See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.
close-answered-discussions:
name: 'Close Answered Discussions'
runs-on: ubuntu-latest
@@ -89,7 +92,7 @@ jobs:
}`;
const commentVariables = {
discussion: discussion.id,
body: 'This discussion has been automatically closed because it was marked as answered.',
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)
@@ -179,7 +182,85 @@ jobs:
}`;
const commentVariables = {
discussion: discussion.id,
body: 'This discussion has been automatically closed due to inactivity.',
body: 'This discussion has been automatically closed due to inactivity. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.',
}
await github.graphql(addCommentMutation, commentVariables);
const closeDiscussionMutation = `mutation($discussion:ID!, $reason:DiscussionCloseReason!) {
closeDiscussion(input:{discussionId:$discussion, reason:$reason}) {
clientMutationId
}
}`;
const closeVariables = {
discussion: discussion.id,
reason: "OUTDATED",
}
await github.graphql(closeDiscussionMutation, closeVariables);
await sleep(1000);
}
}
close-unsupported-feature-requests:
name: 'Close Unsupported Feature Requests'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const CUTOFF_1_DAYS = 180;
const CUTOFF_1_COUNT = 5;
const CUTOFF_2_DAYS = 365;
const CUTOFF_2_COUNT = 10;
const cutoff1Date = new Date();
cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS);
const cutoff2Date = new Date();
cutoff2Date.setDate(cutoff2Date.getDate() - CUTOFF_2_DAYS);
const query = `query(
$owner:String!,
$name:String!,
$featureRequestsCategory:ID!,
) {
repository(owner:$owner, name:$name){
discussions(
categoryId:$featureRequestsCategory,
last:100,
states:[OPEN],
) {
nodes {
id,
number,
updatedAt,
upvoteCount,
}
},
}
}`;
const variables = {
owner: context.repo.owner,
name: context.repo.repo,
featureRequestsCategory: "DIC_kwDOH31rQM4CRErS"
}
const result = await github.graphql(query, variables);
for (const discussion of result.repository.discussions.nodes) {
const discussionDate = new Date(discussion.updatedAt);
if ((discussionDate < cutoff1Date && discussion.upvoteCount < CUTOFF_1_COUNT) ||
(discussionDate < cutoff2Date && discussion.upvoteCount < CUTOFF_2_COUNT)) {
console.log(`Closing discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt} with votes ${discussion.upvoteCount}`);
const addCommentMutation = `mutation($discussion:ID!, $body:String!) {
addDiscussionComment(input:{discussionId:$discussion, body:$body}) {
clientMutationId
}
}`;
const commentVariables = {
discussion: discussion.id,
body: 'This discussion has been automatically closed due to lack of community support. See our [contributing guidelines](https://github.com/gethomepage/homepage/blob/main/CONTRIBUTING.md#automatic-repository-maintenance) for more details.',
}
await github.graphql(addCommentMutation, commentVariables);

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
@@ -51,3 +51,17 @@ By contributing, you agree that your contributions will be licensed under its GN
## References
This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/main/CONTRIBUTING.md)
# Automatic Respository Maintenance
The homepage team appreciates all effort and interest from the community in filing bug reports, creating feature requests, sharing ideas and helping other community members. That said, in an effort to keep the repository organized and managebale the project uses automatic handling of certain areas:
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
- Discussions with a marked answer will be automatically closed.
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
- Feature requests that do not meet the following thresholds will be closed: 5 "up-votes" after 180 days of inactivity or 10 "up-votes" after 365 days.
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.
Thank you all for your contributions.

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

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

@@ -51,6 +51,7 @@ To ensure cohesiveness of various widgets, the following should be used as a gui
- Please only submit widgets that have been requested and have at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
- Widgets should be only one row of blocks
- Widgets should be no more than 4 blocks wide
- Widgets should be no more than 4 blocks wide and generally conform to the styling / design choices of other widgets
- Minimize the number of API calls
- Avoid the use of custom proxy unless absolutely necessary
- Widgets should be 'read-only', as in they should not make write changes using the relevant tool's API. Homepage widgets are designed to surface information, not to be a (usually worse) replacement for the tool itself.

View File

@@ -17,6 +17,7 @@ The Glances widget allows you to monitor the resources (CPU, memory, storage, te
cputemp: true # disabled by default
uptime: true # disabled by default
disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below)
diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk
expanded: true # show the expanded view
label: MyMachine # optional
```

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

@@ -22,6 +22,7 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation]
uptime: true
units: imperial # only used by cpu temp
refresh: 3000 # optional, in ms
diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk
```
You can also pass a `label` option, which allows you to group resources under named sections,

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

@@ -16,6 +16,8 @@ widget:
password: password # auth - optional
method: GET # optional, e.g. POST
headers: # optional, must be object, see below
requestBody: # optional, can be string or object, see below
display: # optional, default to block, see below
mappings:
- field: key # needs to be YAML string or object
label: Field 1
@@ -43,6 +45,15 @@ widget:
locale: nl # optional
style: short # optional - defaults to "long". Allowed values: `["long", "short", "narrow"]`.
numeric: auto # optional - defaults to "always". Allowed values `["always", "auto"]`.
- field: key
label: Field 6
format: text
additionalField: # optional
field:
hourly:
time: other key
color: theme # optional - defaults to "". Allowed values: `["theme", "adaptive", "black", "white"]`.
format: date # optional
```
Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes`, `bitrate`, `date` and `relativeDate`.
@@ -93,7 +104,7 @@ mappings:
## Data Transformation
You can manipulate data with the following tools `remap`, `scale` and `suffix`, for example:
You can manipulate data with the following tools `remap`, `scale`, `prefix` and `suffix`, for example:
```yaml
- field: key4
@@ -110,7 +121,42 @@ You can manipulate data with the following tools `remap`, `scale` and `suffix`,
label: Power
format: float
scale: 0.001 # can be number or string e.g. 1/16
suffix: kW
suffix: "kW"
- field: key6
label: Price
format: float
prefix: "$"
```
## List View
You can change the default block view to a list view by setting the `display` option to `list`.
The list view can optionally display an additional field next to the primary field.
`additionalField`: Similar to `field`, but only used in list view. Displays additional information for the mapping object on the right.
`field`: Defined the same way as other custom api widget fields.
`color`: Allowed options: `"theme", "adaptive", "black", "white"`. The option `adaptive` will apply a color using the value of the `additionalField`, green for positive numbers, red for negative numbers.
```yaml
- field: key
label: Field
format: text
remap:
- value: 0
to: None
- value: 1
to: Connected
- any: true # will map all other values
to: Unknown
additionalField:
field:
hourly:
time: key
color: theme
format: date
```
## Custom Headers
@@ -121,3 +167,16 @@ Pass custom headers using the `headers` option, for example:
headers:
X-API-Token: token
```
## Custom Request Body
Pass custom request body using the `requestBody` option in either a string or object format. Objects will automatically be converted to a JSON string.
```yaml
requestBody:
foo: bar
# or
requestBody: "{\"foo\":\"bar\"}"
```
Both formats result in `{"foo":"bar"}` being sent as the request body. Don't forget to set your `Content-Type` headers!

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

@@ -0,0 +1,17 @@
---
title: Gitea
description: Gitea Widget Configuration
---
Learn more about [Gitea](https://gitea.com).
API token requires `notifications`, `repository` and `issue` permissions. See the [gitea documentation](https://docs.gitea.com/development/api-usage#generating-and-listing-api-tokens) for details on generating tokens.
Allowed fields: ["notifications", "issues", "pulls"]
```yaml
widget:
type: gitea
url: http://gitea.host.or.ip:port
key: giteaapitoken
```

View File

@@ -18,6 +18,9 @@ widget:
username: user # optional if auth enabled in Glances
password: pass # optional if auth enabled in Glances
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

@@ -12,3 +12,12 @@ widget:
type: moonraker
url: http://moonraker.host.or.ip:port
```
If your moonraker instance has an active authorization and your homepage ip isn't whitelisted you need to add your api key ([Authorization Documentation](https://moonraker.readthedocs.io/en/latest/web_api/#authorization)).
```yaml
widget:
type: moonraker
url: http://moonraker.host.or.ip:port
key: api_keymoonraker
```

View File

@@ -26,29 +26,35 @@ 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",
"read": {
"ubus": {
"network.interface.wan": ["status"],
"network.interface.lan": ["status"],
"network.device": ["status"]
"system": ["info"]
}
},
}
"homepage": {
"description": "Homepage widget",
"read": {
"ubus": {
"network.interface.wan": ["status"],
"network.interface.lan": ["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,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

@@ -9,6 +9,8 @@ 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
@@ -16,4 +18,4 @@ widget:
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

@@ -0,0 +1,17 @@
---
title: Plant-it
description: Plant-it Widget Configuration
---
Learn more about [Plantit](https://github.com/MDeLuise/plant-it).
API key can be created from the REST API.
Allowed fields: `["events", "plants", "photos", "species"]`.
```yaml
widget:
type: plantit
url: http://plant-it.host.or.ip:port # api port
key: plantit-api-key
```

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,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

@@ -9,6 +9,8 @@ Allowed fields: `["load", "uptime", "alerts"]`.
To create an API Key, follow [the official TrueNAS documentation](https://www.truenas.com/docs/scale/scaletutorials/toptoolbar/managingapikeys/).
A detailed pool listing is disabled by default, but can be enabled with the `enablePools` option.
```yaml
widget:
type: truenas
@@ -16,4 +18,5 @@ widget:
username: user # not required if using api key
password: pass # not required if using api key
key: yourtruenasapikey # not required if using username / password
enablePools: true # optional, defaults to false
```

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

@@ -49,6 +49,7 @@ nav:
- 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
@@ -57,6 +58,7 @@ nav:
- widgets/services/gamedig.md
- widgets/services/gatus.md
- widgets/services/ghostfolio.md
- widgets/services/gitea.md
- widgets/services/glances.md
- widgets/services/gluetun.md
- widgets/services/gotify.md
@@ -64,6 +66,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
@@ -103,6 +106,7 @@ nav:
- widgets/services/photoprism.md
- widgets/services/pialert.md
- widgets/services/pihole.md
- widgets/services/plantit.md
- widgets/services/plex-tautulli.md
- widgets/services/plex.md
- widgets/services/portainer.md
@@ -122,6 +126,7 @@ nav:
- widgets/services/scrutiny.md
- widgets/services/sonarr.md
- widgets/services/speedtest-tracker.md
- widgets/services/stash.md
- widgets/services/syncthing-relay-server.md
- widgets/services/tailscale.md
- widgets/services/tdarr.md

101
package-lock.json generated
View File

@@ -31,10 +31,10 @@
"react-dom": "^18.2.0",
"react-i18next": "^11.18.6",
"react-icons": "^4.12.0",
"recharts": "^2.11.0",
"recharts": "^2.12.2",
"rrule": "^2.8.1",
"swr": "^1.3.0",
"systeminformation": "^5.21.24",
"systeminformation": "^5.22.0",
"tough-cookie": "^4.1.3",
"urbackup-server-api": "^0.8.9",
"winston": "^3.11.0",
@@ -43,7 +43,7 @@
"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-prettier": "^9.1.0",
@@ -52,8 +52,8 @@
"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",
"postcss": "^8.4.35",
"prettier": "^3.2.5",
"tailwind-scrollbar": "^3.0.5",
"tailwindcss": "^3.4.1",
"typescript": "^4.9.5"
@@ -165,9 +165,9 @@
}
},
"node_modules/@eslint/js": {
"version": "8.56.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
"integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
"version": "8.57.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2130,11 +2130,12 @@
}
},
"node_modules/dom-helpers": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
"integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
"dependencies": {
"@babel/runtime": "^7.1.2"
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
}
},
"node_modules/dom-serializer": {
@@ -2376,16 +2377,16 @@
}
},
"node_modules/eslint": {
"version": "8.56.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
"integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
"version": "8.57.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
"@eslint/js": "8.56.0",
"@humanwhocodes/config-array": "^0.11.13",
"@eslint/js": "8.57.0",
"@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -5228,9 +5229,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.33",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
"version": "8.4.35",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
"integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
"dev": true,
"funding": [
{
@@ -5339,9 +5340,9 @@
}
},
"node_modules/prettier": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz",
"integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==",
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -5539,38 +5540,33 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"node_modules/react-smooth": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.5.tgz",
"integrity": "sha512-BMP2Ad42tD60h0JW6BFaib+RJuV5dsXJK9Baxiv/HlNFjvRLqA9xrNKxVWnUIZPQfzUwGXIlU/dSYLU+54YGQA==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.0.tgz",
"integrity": "sha512-2NMXOBY1uVUQx1jBeENGA497HK20y6CPGYL1ZnJLeoQ8rrc3UfmOM82sRxtzpcoCkUMy4CS0RGylfuVhuFjBgg==",
"dependencies": {
"fast-equals": "^5.0.0",
"react-transition-group": "2.9.0"
"fast-equals": "^5.0.1",
"prop-types": "^15.8.1",
"react-transition-group": "^4.4.5"
},
"peerDependencies": {
"prop-types": "^15.6.0",
"react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/react-transition-group": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
"integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
"version": "4.4.5",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
"dependencies": {
"dom-helpers": "^3.4.0",
"@babel/runtime": "^7.5.5",
"dom-helpers": "^5.0.1",
"loose-envify": "^1.4.0",
"prop-types": "^15.6.2",
"react-lifecycles-compat": "^3.0.4"
"prop-types": "^15.6.2"
},
"peerDependencies": {
"react": ">=15.0.0",
"react-dom": ">=15.0.0"
"react": ">=16.6.0",
"react-dom": ">=16.6.0"
}
},
"node_modules/read-cache": {
@@ -5608,15 +5604,15 @@
}
},
"node_modules/recharts": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.11.0.tgz",
"integrity": "sha512-5s+u1m5Hwxb2nh0LABkE3TS/lFqFHyWl7FnPbQhHobbQQia4ih1t3o3+ikPYr31Ns+kYe4FASIthKeKi/YYvMg==",
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.2.tgz",
"integrity": "sha512-9bpxjXSF5g81YsKkTSlaX7mM4b6oYI1mIYck6YkUcWuL3tomADccI51/6thY4LmvhYuRTwpfrOvE80Zc3oBRfQ==",
"dependencies": {
"clsx": "^2.0.0",
"eventemitter3": "^4.0.1",
"lodash": "^4.17.19",
"lodash": "^4.17.21",
"react-is": "^16.10.2",
"react-smooth": "^2.0.5",
"react-smooth": "^4.0.0",
"recharts-scale": "^0.4.4",
"tiny-invariant": "^1.3.1",
"victory-vendor": "^36.6.8"
@@ -5625,7 +5621,6 @@
"node": ">=14"
},
"peerDependencies": {
"prop-types": "^15.6.0",
"react": "^16.0.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
}
@@ -6494,9 +6489,9 @@
}
},
"node_modules/systeminformation": {
"version": "5.21.24",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.24.tgz",
"integrity": "sha512-xQada8ByGGFoRXJaUptGgddn3i7IjtSdqNdCKzB8xkzsM7pHnfLYBWxkPdGzhZ0Z/l+W1yo+aZQZ74d2isj8kw==",
"version": "5.22.0",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.0.tgz",
"integrity": "sha512-oAP80ymt8ssrAzjX8k3frbL7ys6AotqC35oikG6/SG15wBw+tG9nCk4oPaXIhEaAOAZ8XngxUv3ORq2IuR3r4Q==",
"os": [
"darwin",
"linux",

View File

@@ -33,10 +33,10 @@
"react-dom": "^18.2.0",
"react-i18next": "^11.18.6",
"react-icons": "^4.12.0",
"recharts": "^2.11.0",
"recharts": "^2.12.2",
"rrule": "^2.8.1",
"swr": "^1.3.0",
"systeminformation": "^5.21.24",
"systeminformation": "^5.22.0",
"tough-cookie": "^4.1.3",
"urbackup-server-api": "^0.8.9",
"winston": "^3.11.0",
@@ -45,7 +45,7 @@
"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-prettier": "^9.1.0",
@@ -54,8 +54,8 @@
"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",
"postcss": "^8.4.35",
"prettier": "^3.2.5",
"tailwind-scrollbar": "^3.0.5",
"tailwindcss": "^3.4.1",
"typescript": "^4.9.5"

222
pnpm-lock.yaml generated
View File

@@ -75,8 +75,8 @@ dependencies:
specifier: ^4.12.0
version: 4.12.0(react@18.2.0)
recharts:
specifier: ^2.11.0
version: 2.11.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)
specifier: ^2.12.2
version: 2.12.2(react-dom@18.2.0)(react@18.2.0)
rrule:
specifier: ^2.8.1
version: 2.8.1
@@ -84,8 +84,8 @@ dependencies:
specifier: ^1.3.0
version: 1.3.0(react@18.2.0)
systeminformation:
specifier: ^5.21.24
version: 5.21.24
specifier: ^5.22.0
version: 5.22.0
tough-cookie:
specifier: ^4.1.3
version: 4.1.3
@@ -110,40 +110,40 @@ devDependencies:
version: 0.5.7(tailwindcss@3.4.1)
autoprefixer:
specifier: ^10.4.17
version: 10.4.17(postcss@8.4.33)
version: 10.4.17(postcss@8.4.35)
eslint:
specifier: ^8.56.0
version: 8.56.0
specifier: ^8.57.0
version: 8.57.0
eslint-config-airbnb:
specifier: ^19.0.4
version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0)
version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.57.0)
eslint-config-next:
specifier: ^12.3.4
version: 12.3.4(eslint@8.56.0)(typescript@4.9.5)
version: 12.3.4(eslint@8.57.0)(typescript@4.9.5)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.56.0)
version: 9.1.0(eslint@8.57.0)
eslint-plugin-import:
specifier: ^2.29.1
version: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
version: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
eslint-plugin-jsx-a11y:
specifier: ^6.8.0
version: 6.8.0(eslint@8.56.0)
version: 6.8.0(eslint@8.57.0)
eslint-plugin-prettier:
specifier: ^4.2.1
version: 4.2.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
version: 4.2.1(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5)
eslint-plugin-react:
specifier: ^7.33.2
version: 7.33.2(eslint@8.56.0)
version: 7.33.2(eslint@8.57.0)
eslint-plugin-react-hooks:
specifier: ^4.6.0
version: 4.6.0(eslint@8.56.0)
version: 4.6.0(eslint@8.57.0)
postcss:
specifier: ^8.4.33
version: 8.4.33
specifier: ^8.4.35
version: 8.4.35
prettier:
specifier: ^3.2.4
version: 3.2.4
specifier: ^3.2.5
version: 3.2.5
tailwind-scrollbar:
specifier: ^3.0.5
version: 3.0.5(tailwindcss@3.4.1)
@@ -189,13 +189,13 @@ packages:
kuler: 2.0.0
dev: false
/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
/@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.56.0
eslint: 8.57.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -221,8 +221,8 @@ packages:
- supports-color
dev: true
/@eslint/js@8.56.0:
resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
/@eslint/js@8.57.0:
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
@@ -603,7 +603,7 @@ packages:
resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
dev: false
/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5):
/@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@4.9.5):
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -617,7 +617,7 @@ packages:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
debug: 4.3.4
eslint: 8.56.0
eslint: 8.57.0
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
@@ -849,7 +849,7 @@ packages:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: false
/autoprefixer@10.4.17(postcss@8.4.33):
/autoprefixer@10.4.17(postcss@8.4.35):
resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
@@ -861,7 +861,7 @@ packages:
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.33
postcss: 8.4.35
postcss-value-parser: 4.2.0
dev: true
@@ -1432,10 +1432,11 @@ packages:
esutils: 2.0.3
dev: true
/dom-helpers@3.4.0:
resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==}
/dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
dependencies:
'@babel/runtime': 7.23.9
csstype: 3.1.3
dev: false
/dom-serializer@2.0.0:
@@ -1601,7 +1602,7 @@ packages:
engines: {node: '>=10'}
dev: true
/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0):
/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0):
resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
engines: {node: ^10.12.0 || >=12.0.0}
peerDependencies:
@@ -1609,14 +1610,14 @@ packages:
eslint-plugin-import: ^2.25.2
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.56.0
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
eslint: 8.57.0
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.7
semver: 6.3.1
dev: true
/eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0):
/eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.57.0):
resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==}
engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -1626,17 +1627,17 @@ packages:
eslint-plugin-react: ^7.28.0
eslint-plugin-react-hooks: ^4.3.0
dependencies:
eslint: 8.56.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0)
eslint-plugin-react: 7.33.2(eslint@8.56.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
eslint: 8.57.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
eslint-plugin-react: 7.33.2(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.7
dev: true
/eslint-config-next@12.3.4(eslint@8.56.0)(typescript@4.9.5):
/eslint-config-next@12.3.4(eslint@8.57.0)(typescript@4.9.5):
resolution: {integrity: sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@@ -1647,27 +1648,27 @@ packages:
dependencies:
'@next/eslint-plugin-next': 12.3.4
'@rushstack/eslint-patch': 1.7.2
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
'@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0)
eslint-plugin-react: 7.33.2(eslint@8.56.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
eslint-plugin-react: 7.33.2(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
typescript: 4.9.5
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-config-prettier@9.1.0(eslint@8.56.0):
/eslint-config-prettier@9.1.0(eslint@8.57.0):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.56.0
eslint: 8.57.0
dev: true
/eslint-import-resolver-node@0.3.9:
@@ -1680,7 +1681,7 @@ packages:
- supports-color
dev: true
/eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0):
/eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.29.1)(eslint@8.57.0):
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
engines: {node: '>=4'}
peerDependencies:
@@ -1688,8 +1689,8 @@ packages:
eslint-plugin-import: '*'
dependencies:
debug: 4.3.4
eslint: 8.56.0
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
eslint: 8.57.0
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
glob: 7.2.3
is-glob: 4.0.3
resolve: 1.22.8
@@ -1698,7 +1699,7 @@ packages:
- supports-color
dev: true
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0):
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -1719,16 +1720,16 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@4.9.5)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
debug: 3.2.7
eslint: 8.56.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0)
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0):
/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -1738,16 +1739,16 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@4.9.5)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
eslint: 8.56.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0)
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -1763,7 +1764,7 @@ packages:
- supports-color
dev: true
/eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0):
/eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
engines: {node: '>=4.0'}
peerDependencies:
@@ -1779,7 +1780,7 @@ packages:
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
es-iterator-helpers: 1.0.15
eslint: 8.56.0
eslint: 8.57.0
hasown: 2.0.0
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -1788,7 +1789,7 @@ packages:
object.fromentries: 2.0.7
dev: true
/eslint-plugin-prettier@4.2.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4):
/eslint-plugin-prettier@4.2.1(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5):
resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -1799,22 +1800,22 @@ packages:
eslint-config-prettier:
optional: true
dependencies:
eslint: 8.56.0
eslint-config-prettier: 9.1.0(eslint@8.56.0)
prettier: 3.2.4
eslint: 8.57.0
eslint-config-prettier: 9.1.0(eslint@8.57.0)
prettier: 3.2.5
prettier-linter-helpers: 1.0.0
dev: true
/eslint-plugin-react-hooks@4.6.0(eslint@8.56.0):
/eslint-plugin-react-hooks@4.6.0(eslint@8.57.0):
resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
dependencies:
eslint: 8.56.0
eslint: 8.57.0
dev: true
/eslint-plugin-react@7.33.2(eslint@8.56.0):
/eslint-plugin-react@7.33.2(eslint@8.57.0):
resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
engines: {node: '>=4'}
peerDependencies:
@@ -1825,7 +1826,7 @@ packages:
array.prototype.tosorted: 1.1.2
doctrine: 2.1.0
es-iterator-helpers: 1.0.15
eslint: 8.56.0
eslint: 8.57.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.5
minimatch: 3.1.2
@@ -1852,15 +1853,15 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.56.0:
resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
/eslint@8.57.0:
resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.56.0
'@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
@@ -3361,29 +3362,29 @@ packages:
engines: {node: '>= 6'}
dev: true
/postcss-import@15.1.0(postcss@8.4.33):
/postcss-import@15.1.0(postcss@8.4.35):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.33
postcss: 8.4.35
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
dev: true
/postcss-js@4.0.1(postcss@8.4.33):
/postcss-js@4.0.1(postcss@8.4.35):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.33
postcss: 8.4.35
dev: true
/postcss-load-config@4.0.2(postcss@8.4.33):
/postcss-load-config@4.0.2(postcss@8.4.35):
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
@@ -3396,17 +3397,17 @@ packages:
optional: true
dependencies:
lilconfig: 3.0.0
postcss: 8.4.33
postcss: 8.4.35
yaml: 2.3.4
dev: true
/postcss-nested@6.0.1(postcss@8.4.33):
/postcss-nested@6.0.1(postcss@8.4.35):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
postcss: 8.4.33
postcss: 8.4.35
postcss-selector-parser: 6.0.15
dev: true
@@ -3431,8 +3432,8 @@ packages:
source-map-js: 1.0.2
dev: false
/postcss@8.4.33:
resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
/postcss@8.4.35:
resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@@ -3452,8 +3453,8 @@ packages:
fast-diff: 1.3.0
dev: true
/prettier@3.2.4:
resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
/prettier@3.2.5:
resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
engines: {node: '>=14'}
hasBin: true
dev: true
@@ -3558,36 +3559,31 @@ packages:
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
/react-lifecycles-compat@3.0.4:
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
dev: false
/react-smooth@2.0.5(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-BMP2Ad42tD60h0JW6BFaib+RJuV5dsXJK9Baxiv/HlNFjvRLqA9xrNKxVWnUIZPQfzUwGXIlU/dSYLU+54YGQA==}
/react-smooth@4.0.0(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-2NMXOBY1uVUQx1jBeENGA497HK20y6CPGYL1ZnJLeoQ8rrc3UfmOM82sRxtzpcoCkUMy4CS0RGylfuVhuFjBgg==}
peerDependencies:
prop-types: ^15.6.0
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
fast-equals: 5.0.1
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-transition-group: 2.9.0(react-dom@18.2.0)(react@18.2.0)
react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0)
dev: false
/react-transition-group@2.9.0(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==}
/react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
peerDependencies:
react: '>=15.0.0'
react-dom: '>=15.0.0'
react: '>=16.6.0'
react-dom: '>=16.6.0'
dependencies:
dom-helpers: 3.4.0
'@babel/runtime': 7.23.9
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-lifecycles-compat: 3.0.4
dev: false
/react@18.2.0:
@@ -3646,22 +3642,20 @@ packages:
decimal.js-light: 2.5.1
dev: false
/recharts@2.11.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-5s+u1m5Hwxb2nh0LABkE3TS/lFqFHyWl7FnPbQhHobbQQia4ih1t3o3+ikPYr31Ns+kYe4FASIthKeKi/YYvMg==}
/recharts@2.12.2(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-9bpxjXSF5g81YsKkTSlaX7mM4b6oYI1mIYck6YkUcWuL3tomADccI51/6thY4LmvhYuRTwpfrOvE80Zc3oBRfQ==}
engines: {node: '>=14'}
peerDependencies:
prop-types: ^15.6.0
react: ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
dependencies:
clsx: 2.1.0
eventemitter3: 4.0.7
lodash: 4.17.21
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-is: 16.13.1
react-smooth: 2.0.5(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)
react-smooth: 4.0.0(react-dom@18.2.0)(react@18.2.0)
recharts-scale: 0.4.5
tiny-invariant: 1.3.1
victory-vendor: 36.8.4
@@ -4139,8 +4133,8 @@ packages:
react: 18.2.0
dev: false
/systeminformation@5.21.24:
resolution: {integrity: sha512-xQada8ByGGFoRXJaUptGgddn3i7IjtSdqNdCKzB8xkzsM7pHnfLYBWxkPdGzhZ0Z/l+W1yo+aZQZ74d2isj8kw==}
/systeminformation@5.22.0:
resolution: {integrity: sha512-oAP80ymt8ssrAzjX8k3frbL7ys6AotqC35oikG6/SG15wBw+tG9nCk4oPaXIhEaAOAZ8XngxUv3ORq2IuR3r4Q==}
engines: {node: '>=8.0.0'}
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
hasBin: true
@@ -4174,11 +4168,11 @@ packages:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
postcss: 8.4.33
postcss-import: 15.1.0(postcss@8.4.33)
postcss-js: 4.0.1(postcss@8.4.33)
postcss-load-config: 4.0.2(postcss@8.4.33)
postcss-nested: 6.0.1(postcss@8.4.33)
postcss: 8.4.35
postcss-import: 15.1.0(postcss@8.4.35)
postcss-js: 4.0.1(postcss@8.4.35)
postcss-load-config: 4.0.2(postcss@8.4.35)
postcss-nested: 6.0.1(postcss@8.4.35)
postcss-selector-parser: 6.0.15
resolve: 1.22.8
sucrase: 3.35.0

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",
@@ -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,51 @@
"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"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "حلقات",
"songs": "أغاني"
},
"esphome": {
"offline": "غير متصل",
"offline_alt": "غير متصل",
"online": "مُتّصل",
"total": "المجموع",
"unknown": "مجهول"
},
"evcc": {
"pv_power": "إنتاج",
"battery_soc": "البطارية",
@@ -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,51 @@
"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"
}
}

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",
@@ -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,45 @@
"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"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Fora de línia",
"offline_alt": "Fora de línia",
"online": "Online",
"total": "Total",
"unknown": "Desconegut"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Assolellat",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canals",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Taxa de bits",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Aprobat",
@@ -694,6 +710,11 @@
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Temps actiu"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
@@ -775,6 +796,14 @@
"passed": "Aprobat",
"failed": "Error"
},
"openwrt": {
"uptime": "Temps actiu",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Estat",
"uptime": "Temps actiu",
@@ -803,5 +832,45 @@
"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": "Usuaris",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Usuaris",
"totalValue": "Total Value"
}
}

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",
"connectionStatusConnected": "Connected",
"connectionStatusUnconfigured": "Nenastaveno",
"connectionStatusConnecting": "Připojuji",
"connectionStatusAuthenticating": "Ověřování",
"connectionStatusPendingDisconnect": "Čeká na odpojení",
"connectionStatusDisconnecting": "Odpojování",
"connectionStatusDisconnected": "Odpojeno",
"connectionStatusConnected": "Připojeno",
"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é",
@@ -272,8 +279,8 @@
},
"pialert": {
"total": "Celkem",
"connected": "Connected",
"new_devices": "New Devices",
"connected": "Připojeno",
"new_devices": "Nová zařízení",
"down_alerts": "Down Alerts"
},
"pihole": {
@@ -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,45 @@
"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"
}
}

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",
@@ -139,9 +146,9 @@
"maxUp": "Max. Up",
"down": "Ned",
"up": "Op",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"received": "Modtaget",
"sent": "Sendt",
"externalIPAddress": "Ekstern IP"
},
"caddy": {
"upstreams": "Upstreams",
@@ -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,51 @@
"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"
}
}

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",
@@ -379,7 +386,7 @@
"down": "Offline"
},
"miniflux": {
"read": "Lesen",
"read": "Gelesen",
"unread": "Ungelesen"
},
"authentik": {
@@ -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,51 @@
"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"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Επεισόδια",
"songs": "Τραγούδια"
},
"esphome": {
"offline": "Εκτός σύνδεσης",
"offline_alt": "Εκτός σύνδεσης",
"online": "Συνδεδεμένοι",
"total": "Σύνολο",
"unknown": "Άγνωστο"
},
"evcc": {
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
@@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Λιακάδα",
@@ -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",
"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": "Χρόνος Λειτουργίας"
},
"ghostfolio": {
"gross_percent_today": "Σήμερα",
"gross_percent_1y": "One year",
@@ -775,6 +796,14 @@
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Χρόνος Λειτουργίας",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Κατάσταση",
"uptime": "Χρόνος Λειτουργίας",
@@ -803,5 +832,45 @@
"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"
}
}

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",
@@ -825,5 +832,45 @@
"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"
}
}

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",
@@ -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,45 @@
"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"
}
}

View File

@@ -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",
@@ -419,7 +426,8 @@
"search": "Buscar",
"custom": "Personalizado",
"visit": "Visitar",
"url": "Enlace"
"url": "Enlace",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Soleado",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canales",
"hd": "Alta definición"
"hd": "Alta definición",
"tunerCount": "Tuners",
"channelNumber": "Canal",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Tasa de bits",
"clientIP": "Client"
},
"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": "CPU Load Avg (5m)",
"up": "Activo",
"down": "Inactivo",
"bytesTx": "Transmitted",
"bytesRx": "Recibido"
},
"uptimerobot": {
"status": "Estado",
"uptime": "Tiempo activo",
@@ -803,5 +832,45 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Fotos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Números",
"pulls": "Pull Requests"
},
"stash": {
"scenes": "Scenes",
"scenesPlayed": "Scenes Played",
"playCount": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Imágenes",
"imageSize": "Images Size",
"galleries": "Galerías",
"performers": "Performers",
"studios": "Studios",
"movies": "Películas",
"tags": "Etiquetas",
"oCount": "O Count"
},
"tandoor": {
"users": "Usuarios",
"recipes": "Recetas",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "Con Garantía",
"locations": "Ubicaciones",
"labels": "Labels",
"users": "Usuarios",
"totalValue": "Total Value"
}
}

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",
@@ -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,45 @@
"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"
}
}

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",
@@ -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,45 @@
"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"
}
}

View File

@@ -25,7 +25,7 @@
"api_error": "Erreur API",
"information": "Informations",
"status": "Statut",
"url": "Url",
"url": "URL",
"raw_error": "Erreur brute",
"response_data": "Données de réponse"
},
@@ -39,7 +39,7 @@
"placeholder": "Recherche…"
},
"resources": {
"cpu": "Cpu",
"cpu": "CPU",
"mem": "Mém",
"total": "Total",
"free": "Libre",
@@ -70,7 +70,7 @@
"rx": "Rx",
"tx": "Tx",
"mem": "Mém",
"cpu": "Cpu",
"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",
@@ -389,12 +396,12 @@
},
"proxmox": {
"mem": "Mém",
"cpu": "Cpu",
"cpu": "CPU",
"lxc": "LxC",
"vms": "VMs"
},
"glances": {
"cpu": "Cpu",
"cpu": "CPU",
"load": "Charge",
"wait": "Veuillez patienter",
"temp": "Temp",
@@ -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,51 @@
"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": "Total Plays",
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Taille des images",
"galleries": "Galeries",
"performers": "Performers",
"studios": "Studios",
"movies": "Films",
"tags": "Étiquettes",
"oCount": "O Count"
},
"tandoor": {
"users": "Utilisateurs",
"recipes": "Recettes",
"keywords": "Mots-clés"
},
"homebox": {
"items": "Objets",
"totalWithWarranty": "Avec garantie",
"locations": "Emplacements",
"labels": "Étiquettes",
"users": "Utilisateurs",
"totalValue": "Total Value"
}
}

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",
@@ -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,45 @@
"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"
}
}

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",
@@ -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,45 @@
"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"
}
}

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,17 +262,17 @@
"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"
@@ -274,7 +281,7 @@
"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,125 @@
"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": "Events",
"plants": "Plants",
"photos": "Fotografije",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problemi",
"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": "Filmovi",
"tags": "Oznake",
"oCount": "O Count"
},
"tandoor": {
"users": "Korisnici",
"recipes": "Recepti",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Korisnici",
"totalValue": "Total Value"
}
}

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": "",
"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",
@@ -135,8 +142,8 @@
"connectionStatusDisconnected": "Kapcsolat bontva",
"connectionStatusConnected": "Csatlakoztatott",
"uptime": "Üzemidő",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "Max let.",
"maxUp": "Max felt.",
"down": "Le",
"up": "Fel",
"received": "Fogadott",
@@ -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": "",
"_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,81 @@
"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"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -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",
@@ -419,7 +426,8 @@
"search": "Cerca",
"custom": "Personalizzato",
"visit": "Visita",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "Soleggiato",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Canali",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"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à",
@@ -803,5 +832,45 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Foto",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problemi",
"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": "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"
}
}

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}}",
@@ -64,22 +64,22 @@
"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": {
@@ -90,9 +90,9 @@
"not_available": "利用できません。"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "HTTP ステータス",
"error": "エラー",
"response": "Response",
"response": "応答",
"down": "下へ",
"up": "上へ",
"not_available": "利用できません。"
@@ -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",
"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"
"received": "受信済み",
"sent": "送信済み",
"externalIPAddress": "退出ID"
},
"caddy": {
"upstreams": "アップストリーム",
@@ -404,8 +411,8 @@
"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": "晴れ",
@@ -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": "リース"
},
@@ -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,11 +796,19 @@
"passed": "合格",
"failed": "失敗"
},
"openwrt": {
"uptime": "稼働時間",
"cpuLoad": "CPU 平均負荷5 分)",
"up": "上へ",
"down": "下へ",
"bytesTx": "送信済み",
"bytesRx": "受信済み"
},
"uptimerobot": {
"status": "状態",
"uptime": "稼働時間",
"lastDown": "最後のダウンタイム",
"downDuration": "ダウンタイム感覚",
"downDuration": "ダウンタイム時間",
"sitesUp": "サイトUp",
"sitesDown": "サイトDown",
"paused": "一時停止中",
@@ -793,15 +822,55 @@
"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": "合計値"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "에피소드",
"songs": "음악"
},
"esphome": {
"offline": "중지",
"offline_alt": "중지",
"online": "Online",
"total": "총합",
"unknown": "알 수 없음"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@@ -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,45 @@
"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"
}
}

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",
@@ -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,45 @@
"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"
}
}

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"
},
@@ -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,129 @@
"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"
}
}

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",
@@ -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",
@@ -803,5 +832,45 @@
"netdata": {
"warnings": "Waarschuwingen",
"criticals": "Kritiek"
},
"plantit": {
"events": "Gebeurtenissen",
"plants": "Planten",
"photos": "Foto's",
"species": "Soorten"
},
"gitea": {
"notifications": "Notifications",
"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": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "Met garantie",
"locations": "Locaties",
"labels": "Labels",
"users": "Gebruikers",
"totalValue": "Totale waarde"
}
}

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",
@@ -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,45 @@
"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"
}
}

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"
},
@@ -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",
@@ -405,7 +412,7 @@
"free": "Wolne",
"used": "Użyte",
"days": "d",
"hours": "h",
"hours": "g",
"crit": "Crit",
"read": "Przeczytane",
"write": "Zapis",
@@ -419,7 +426,8 @@
"search": "Wyszukaj",
"custom": "Niestandardowe",
"visit": "Odwiedź",
"url": "Adres URL"
"url": "Adres URL",
"searchsuggestion": "Sugestia"
},
"wmo": {
"0-day": "Słoneczny",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanały",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Kanał",
"channelNetwork": "Sieć",
"signalStrength": "Siła",
"signalQuality": "Jakość",
"symbolQuality": "Jakość",
"networkRate": "Bitrate",
"clientIP": "Klient"
},
"scrutiny": {
"passed": "Powodzenie",
@@ -548,11 +564,11 @@
},
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"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ć",
@@ -662,7 +678,7 @@
"grafana": {
"dashboards": "Panel główny",
"datasources": "Źródła danych",
"totalalerts": "Total Alerts",
"totalalerts": "Wszystkie alerty",
"alertstriggered": "Alerts Triggered"
},
"nextcloud": {
@@ -694,6 +710,11 @@
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"gatus": {
"up": "Działające",
"down": "Niedziałające",
"uptime": "Czas działania"
},
"ghostfolio": {
"gross_percent_today": "Dzisiaj",
"gross_percent_1y": "Rok",
@@ -759,7 +780,7 @@
"ok": "Ok",
"errored": "Błędy",
"noRecent": "Nieaktualne",
"totalUsed": "Used Storage"
"totalUsed": "Użyta pamięć"
},
"mealie": {
"recipes": "Recipes",
@@ -775,6 +796,14 @@
"passed": "Powodzenie",
"failed": "Niepowodzenie"
},
"openwrt": {
"uptime": "Czas działania",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Dostępny",
"down": "Niedostępny",
"bytesTx": "Transmitted",
"bytesRx": "Odebrane"
},
"uptimerobot": {
"status": "Stan",
"uptime": "Czas działania",
@@ -790,18 +819,58 @@
"unknown": "Nieznany"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"inCinemas": "W kinach",
"physicalRelease": "Wydanie fizyczne",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
},
"romm": {
"platforms": "Platforms",
"platforms": "Platformy",
"totalRoms": "Total ROMs"
},
"netdata": {
"warnings": "Warnings",
"warnings": "Ostrzeżenia",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Zdjęcia",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Zgłoszenia",
"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": "Tagi",
"oCount": "O Count"
},
"tandoor": {
"users": "Użytkownicy",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Użytkownicy",
"totalValue": "Total Value"
}
}

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",
@@ -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,45 @@
"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"
}
}

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",
@@ -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": "Today",
"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": "Received"
},
"uptimerobot": {
"status": "Estado",
"uptime": "Ligado",
@@ -803,5 +832,45 @@
"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": "Tags",
"oCount": "O Count"
},
"tandoor": {
"users": "Utilizadores",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Utilizadores",
"totalValue": "Total Value"
}
}

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",
@@ -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,45 @@
"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"
}
}

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}}",
@@ -107,6 +107,13 @@
"episodes": "Эпизоды",
"songs": "Песни"
},
"esphome": {
"offline": "Не в сети",
"offline_alt": "Не в сети",
"online": "В сети",
"total": "Всего",
"unknown": "Неизвестен"
},
"evcc": {
"pv_power": "Прод",
"battery_soc": "Питание",
@@ -130,7 +137,7 @@
"connectionStatusUnconfigured": "Не настроено",
"connectionStatusConnecting": "Подключение",
"connectionStatusAuthenticating": "Авторизация",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusPendingDisconnect": "Ожидает отключения",
"connectionStatusDisconnecting": "Отключение",
"connectionStatusDisconnected": "Отключено",
"connectionStatusConnected": "Подключено",
@@ -404,8 +411,8 @@
"total": "Всего",
"free": "Свободно",
"used": "Использовано",
"days": "d",
"hours": "h",
"days": "дней",
"hours": "час",
"crit": "Крит",
"read": "Прочитано",
"write": "Запись",
@@ -419,7 +426,8 @@
"search": "Поиск",
"custom": "Пользовательский",
"visit": "Посетите",
"url": "Ссылка"
"url": "Ссылка",
"searchsuggestion": "Предложение"
},
"wmo": {
"0-day": "Солнечно",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Каналы",
"hd": "HD"
"hd": "HD",
"tunerCount": "Тюнеры",
"channelNumber": "Канал",
"channelNetwork": "Сеть",
"signalStrength": "Сила",
"signalQuality": "Качество",
"symbolQuality": "Качество",
"networkRate": "Битрейт",
"clientIP": "Клиент"
},
"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": "Пожалуйста, подождите",
@@ -624,7 +640,7 @@
"down": "Неактивные сайты",
"uptime": "Время работы",
"incident": "Происшествия",
"m": "m"
"m": "мин"
},
"atsumeru": {
"series": "Серии",
@@ -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,51 @@
"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": "Запросы на слияние (Pull Request)"
},
"stash": {
"scenes": "Сцены",
"scenesPlayed": "Проигранных сцен",
"playCount": "Всего проиграно",
"playDuration": "Просмотрено времени",
"sceneSize": "Размер сцены",
"sceneDuration": "Длительность сцен",
"images": "Изображения",
"imageSize": "Размер изображений",
"galleries": "Галереи",
"performers": "Исполнители",
"studios": "Студии",
"movies": "Фильмы",
"tags": "Теги",
"oCount": "0"
},
"tandoor": {
"users": "Пользователи",
"recipes": "Рецепты",
"keywords": "Ключевые слова"
},
"homebox": {
"items": "Элементы",
"totalWithWarranty": "С гарантией",
"locations": "Местоположения",
"labels": "Ярлыки",
"users": "Пользователи",
"totalValue": "Общая стоимость"
}
}

View File

@@ -11,7 +11,7 @@
"percent": "{{value, percent}}",
"number": "{{value, number}}",
"ms": "{{value, number}}",
"date": "{value, date}",
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mes",
@@ -107,6 +107,13 @@
"episodes": "Epizódy",
"songs": "Skladby"
},
"esphome": {
"offline": "Nedostupný",
"offline_alt": "Nedostupný",
"online": "Online",
"total": "Celkovo",
"unknown": "Neznáme"
},
"evcc": {
"pv_power": "Produkcia",
"battery_soc": "Batéria",
@@ -135,8 +142,8 @@
"connectionStatusDisconnected": "Odpojené",
"connectionStatusConnected": "Pripojené",
"uptime": "Prevádzka",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "Max. sťahovanie",
"maxUp": "Max. nahrávanie",
"down": "Sťahovanie",
"up": "Nahrávanie",
"received": "Prijaté",
@@ -419,7 +426,8 @@
"search": "Hľadať",
"custom": "Vlastné",
"visit": "Navštíviť",
"url": "Odkaz"
"url": "Odkaz",
"searchsuggestion": "Návrh"
},
"wmo": {
"0-day": "Slnečno",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanály",
"hd": "HD"
"hd": "HD",
"tunerCount": "Tunery",
"channelNumber": "Kanál",
"channelNetwork": "Sieť",
"signalStrength": "Sila",
"signalQuality": "Kvalita",
"symbolQuality": "Kvalita",
"networkRate": "Prenosová rýchlosť",
"clientIP": "Klient"
},
"scrutiny": {
"passed": "Úspešný",
@@ -694,6 +710,11 @@
"targets_down": "Nedostupné ciele",
"targets_total": "Cieľov spolu"
},
"gatus": {
"up": "Weby dostupné",
"down": "Weby nedostupné",
"uptime": "Prevádzka"
},
"ghostfolio": {
"gross_percent_today": "Dnes",
"gross_percent_1y": "Jeden rok",
@@ -775,6 +796,14 @@
"passed": "Úspešný",
"failed": "Zlyhané"
},
"openwrt": {
"uptime": "Prevádzka",
"cpuLoad": "Záťaž CPU priem. (5m)",
"up": "Nahrávanie",
"down": "Sťahovanie",
"bytesTx": "Prenesených",
"bytesRx": "Prijaté"
},
"uptimerobot": {
"status": "Stav",
"uptime": "Prevádzka",
@@ -797,11 +826,51 @@
"noEventsFound": "Žiadne udalosti"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platformy",
"totalRoms": "Celkovo ROM"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Upozornenia",
"criticals": "Kritic"
},
"plantit": {
"events": "Udalosti",
"plants": "Rastliny",
"photos": "Fotografie",
"species": "Druhy"
},
"gitea": {
"notifications": "Oznámenia",
"issues": "Problémy",
"pulls": "Pull requesty"
},
"stash": {
"scenes": "Scény",
"scenesPlayed": "Scenes Played",
"playCount": "Celkovo prehraní",
"playDuration": "Pozeraný čas",
"sceneSize": "Veľkosť obrazovky",
"sceneDuration": "Dĺžka scény",
"images": "Obrázky",
"imageSize": "Veľkosť obrázkov",
"galleries": "Galérie",
"performers": "Herci",
"studios": "Štúdiá",
"movies": "Filmy",
"tags": "Štítky",
"oCount": "O Count"
},
"tandoor": {
"users": "Používatelia",
"recipes": "Recepty",
"keywords": "Kľúčové slová"
},
"homebox": {
"items": "Položky",
"totalWithWarranty": "So zárukou",
"locations": "Umiestnenia",
"labels": "Labels",
"users": "Používatelia",
"totalValue": "Total Value"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Epizode",
"songs": "Pesmi"
},
"esphome": {
"offline": "Ni povezan",
"offline_alt": "Ni povezan",
"online": "Na spletu",
"total": "Skupaj",
"unknown": "Neznano"
},
"evcc": {
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
@@ -419,7 +426,8 @@
"search": "Iskanje",
"custom": "Po meri",
"visit": "Obišči",
"url": "URL"
"url": "URL",
"searchsuggestion": "Predlog"
},
"wmo": {
"0-day": "Sončno",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanali",
"hd": "HD"
"hd": "HD",
"tunerCount": "Sprejemniki",
"channelNumber": "Kanal",
"channelNetwork": "Omrežje",
"signalStrength": "Moč",
"signalQuality": "Kakovost",
"symbolQuality": "Kakovost",
"networkRate": "Pasovna širina",
"clientIP": "Odjemalec"
},
"scrutiny": {
"passed": "Opravljeno",
@@ -694,6 +710,11 @@
"targets_down": "Tarče dol",
"targets_total": "Skupaj tarč"
},
"gatus": {
"up": "Deluje",
"down": "Ne deluje",
"uptime": "Čas delovanja"
},
"ghostfolio": {
"gross_percent_today": "Danes",
"gross_percent_1y": "Eno leto",
@@ -775,6 +796,14 @@
"passed": "Opravljeno",
"failed": "Neuspešno"
},
"openwrt": {
"uptime": "Čas delovanja",
"cpuLoad": "CPU obremenitev povp. (5m)",
"up": "Povezan",
"down": "Nepovezan",
"bytesTx": "Prenešeno",
"bytesRx": "Prejeto"
},
"uptimerobot": {
"status": "Stanje",
"uptime": "Čas delovanja",
@@ -797,11 +826,51 @@
"noEventsFound": "Ni dogodkov"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platforme",
"totalRoms": "Skupaj ROM-ov"
},
"netdata": {
"warnings": "Opozorila",
"criticals": "Kritično"
},
"plantit": {
"events": "Dogodki",
"plants": "Rastline",
"photos": "Slike",
"species": "Vrste"
},
"gitea": {
"notifications": "Obvestila",
"issues": "Težave",
"pulls": "Zahteve za prenos"
},
"stash": {
"scenes": "Scene",
"scenesPlayed": "Predvajane scene",
"playCount": "Skupaj predvajano",
"playDuration": "Čas gledanja",
"sceneSize": "Velikost scene",
"sceneDuration": "Dolžina scene",
"images": "Slike",
"imageSize": "Velikosti slik",
"galleries": "Galerije",
"performers": "Izvajalci",
"studios": "Studiji",
"movies": "Filmi",
"tags": "Značke",
"oCount": "O štetje"
},
"tandoor": {
"users": "Uporabniki",
"recipes": "Recepti",
"keywords": "Ključne besede"
},
"homebox": {
"items": "Predmeti",
"totalWithWarranty": "Z garancijo",
"locations": "Lokacije",
"labels": "Oznake",
"users": "Uporabniki",
"totalValue": "Skupna vrednost"
}
}

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",
@@ -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,45 @@
"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"
}
}

View File

@@ -14,7 +14,7 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"months": "mån",
"days": "d",
"hours": "h",
"minutes": "m",
@@ -56,7 +56,7 @@
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Devices",
"devices": "Enheter",
"lan_devices": "LAN Devices",
"wlan_devices": "WLAN Devices",
"lan_users": "LAN-användare",
@@ -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",
@@ -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,45 @@
"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": "Användare",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Användare",
"totalValue": "Total Value"
}
}

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",
@@ -419,7 +426,8 @@
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"url": "URL",
"searchsuggestion": "Suggestion"
},
"wmo": {
"0-day": "సన్నీ",
@@ -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": "విఫలమయ్యారు"
},
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "హోదా",
"uptime": "Uptime",
@@ -803,5 +832,45 @@
"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": "వినియోగదారులు",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "వినియోగదారులు",
"totalValue": "Total Value"
}
}

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",
@@ -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": "เว็บไซต์ ล่ม",
"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,45 @@
"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": "ผู้ใช้",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "ผู้ใช้",
"totalValue": "Total Value"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Bölümler",
"songs": "Şarkılar"
},
"esphome": {
"offline": "Çevrimdışı",
"offline_alt": "Çevrimdışı",
"online": "Çevrimiçi",
"total": "Toplam",
"unknown": "Bilinmiyor"
},
"evcc": {
"pv_power": "Üretim",
"battery_soc": "Batarya",
@@ -130,18 +137,18 @@
"connectionStatusUnconfigured": "Yapılandırılmamış",
"connectionStatusConnecting": "Bağlanıyor",
"connectionStatusAuthenticating": "Kimlik doğrulanıyor",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusPendingDisconnect": "Bağlantının Kesilmesi Bekleniyor",
"connectionStatusDisconnecting": "Bağlantı kesiliyor...",
"connectionStatusDisconnected": "Bağlantı kesildi",
"connectionStatusConnected": "Bağlandı",
"uptime": "Çalışma Süresi",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"maxDown": "Max. Indirme",
"maxUp": "Max. Gönderme",
"down": "İndirme",
"up": "Yükleme",
"received": "Alınan",
"sent": "Gönderilen",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Harici IP"
},
"caddy": {
"upstreams": "Akış",
@@ -163,7 +170,7 @@
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Oranı",
"no_active": "Aktif akış yok",
"plex_connection_error": "Check Plex Connection"
"plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor"
},
"omada": {
"connectedAp": "Bağlı AP'ler",
@@ -419,7 +426,8 @@
"search": "Ara",
"custom": "Özel",
"visit": "Ziyaret",
"url": "URL"
"url": "URL",
"searchsuggestion": "Öneri"
},
"wmo": {
"0-day": "Güneşli",
@@ -491,14 +499,14 @@
"down": "İndirme"
},
"healthchecks": {
"new": "New",
"new": "Yeni",
"up": "Yükleme",
"grace": "In Grace Period",
"grace": "Tolerans Döneminde",
"down": "İndirme",
"paused": "Paused",
"paused": "Durduruldu",
"status": "Durum",
"last_ping": "Son Ping",
"never": "No pings yet"
"never": "Henüz ping yok"
},
"watchtower": {
"containers_scanned": "Tarandı",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "Kanallar",
"hd": "HD"
"hd": "HD",
"tunerCount": "Ayarlayıcılar",
"channelNumber": "Kanal",
"channelNetwork": "Ağ",
"signalStrength": "Sağlamlık",
"signalQuality": "Kalite",
"symbolQuality": "Kalite",
"networkRate": "Bit Oranı",
"clientIP": "Alıcı"
},
"scrutiny": {
"passed": "Geçti",
@@ -548,11 +564,11 @@
},
"peanut": {
"battery_charge": "Pil Yüzdesi",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"ups_load": "UPS Yükü",
"ups_status": "UPS Durumu",
"online": "Çevrimiçi",
"on_battery": "Pilde",
"low_battery": "Low Battery"
"low_battery": "Düşük Pil"
},
"nextdns": {
"wait": "Lütfen Bekleyin",
@@ -562,7 +578,7 @@
"cpuLoad": "CPU Yükü",
"memoryUsed": "Bellek Kullanımı",
"uptime": "Çalışma Süresi",
"numberOfLeases": "Leases"
"numberOfLeases": "Kiralama"
},
"xteve": {
"streams_all": "Tüm Akışlar",
@@ -570,9 +586,9 @@
"streams_xepg": "XEPG Kanalları"
},
"opendtu": {
"yieldDay": "Today",
"absolutePower": "Power",
"relativePower": "Power %",
"yieldDay": "Bugün",
"absolutePower": "Güç",
"relativePower": "Güç %",
"limit": "Limit"
},
"opnsense": {
@@ -591,25 +607,25 @@
"printer_state": "Durum",
"temp_tool": "Araç sıcaklığı",
"temp_bed": "Yatak sıcaklığı",
"job_completion": "Completion"
"job_completion": "Tamamlanma"
},
"cloudflared": {
"origin_ip": "Origin IP",
"origin_ip": "Gerçek IP",
"status": "Durum"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"load": "Ort. Yükleme",
"memory": "Bellek Kullanımı",
"wanStatus": "WAN Durumu",
"up": "Yükleme",
"down": "İndirme",
"temp": "Sıcaklık",
"disk": "Disk Usage",
"disk": "Disk Kullanımı",
"wanIP": "WAN IP"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"datastore_usage": "Veri deposu",
"failed_tasks_24h": "Başarısız Görevler 24h",
"cpu_usage": "CPU",
"memory_usage": "Bellek"
},
@@ -623,14 +639,14 @@
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Çalışma Süresi",
"incident": "Incident",
"incident": "Olay",
"m": "dk"
},
"atsumeru": {
"series": "Diziler",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
"archives": "Arşivler",
"chapters": "Bölümler",
"categories": "Kategoriler"
},
"komga": {
"libraries": "Kütüphane",
@@ -657,88 +673,93 @@
"queue": "Kuyruk",
"processing": "İşleniyor",
"processed": "İşlendi",
"time": "Time"
"time": "Zaman"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "Kontrol Paneli",
"datasources": "Veri Kaynakları",
"totalalerts": "Toplam Uyarılar",
"alertstriggered": "Uyarılar Tetiklendi"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
"cpuload": "Cpu Yükü",
"memoryusage": "Bellek Kullanımı",
"freespace": "Boş Alan",
"activeusers": "Aktif Kullanıcılar",
"numfiles": "Dosyalar",
"numshares": "Paylaşılan Öğeler"
},
"kopia": {
"status": "Durum",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"size": "Boyut",
"lastrun": "Son Çalışma",
"nextrun": "Sonraki Çalışma",
"failed": "Başarısız"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "Aktif Kullanıcılar",
"total_workers": "Toplam Kullanıcılar",
"records_total": "Sıra Uzunluğu"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "Sunucular",
"nodes": "Düğümler"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_total": "Toplam Hedef"
},
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Çalışma Süresi"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_today": "Bugün",
"gross_percent_1y": "Bir yıl",
"gross_percent_max": "Tüm zaman"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"podcasts": "Podcast",
"books": "Kitaplar",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcastsDuration": "Süre",
"booksDuration": "Süre"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"lights_on": "ıklar Açık",
"switches_on": ""
},
"whatsupdocker": {
"monitoring": "Monitoring",
"monitoring": "İzleme",
"updates": "Güncellemeler"
},
"calibreweb": {
"books": "Kitaplar",
"authors": "Authors",
"categories": "Categories",
"authors": "Yazarlar",
"categories": "Kategoriler",
"series": "Diziler"
},
"jdownloader": {
"downloadCount": "Kuyruk",
"downloadBytesRemaining": "Kalan",
"downloadTotalBytes": "Size",
"downloadTotalBytes": "Boyut",
"downloadSpeed": "Hız"
},
"kavita": {
"seriesCount": "Diziler",
"totalFiles": "Files"
"totalFiles": "Dosyalar"
},
"azuredevops": {
"result": "Result",
"result": "Sonuç",
"status": "Durum",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"succeeded": "Başarılı",
"notStarted": "Henüz Başlamadı",
"failed": "Başarısız",
"canceled": "Canceled",
"inProgress": "In Progress",
"canceled": "İptal edildi",
"inProgress": "Sürüyor",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Onaylı"
@@ -747,61 +768,109 @@
"status": "Durum",
"online": "Çevrimiçi",
"offline": "Çevrimdışı",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"name": "İsim",
"map": "Harita",
"currentPlayers": "Mevcut oyuncular",
"players": "Oyuncular",
"maxPlayers": "Max players",
"bots": "Bots",
"maxPlayers": "Maks. oyuncu",
"bots": "Botlar",
"ping": "Gecikme"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
"ok": "Tamam",
"errored": "Hatalar",
"noRecent": "Tarihi geçmiş",
"totalUsed": "Kullanılan depolama alanı"
},
"mealie": {
"recipes": "Recipes",
"recipes": "Tarifler",
"users": "Kullanıcılar",
"categories": "Categories",
"tags": "Tags"
"categories": "Kategoriler",
"tags": "Etiketler"
},
"openmediavault": {
"downloading": "Downloading",
"downloading": "İndiriliyor",
"total": "Toplam",
"running": "Çalışan",
"stopped": "Durduruldu",
"passed": "Geçti",
"failed": "Başarısız"
},
"openwrt": {
"uptime": "Çalışma Süresi",
"cpuLoad": "CPU Yükü Ortalaması (5dk)",
"up": "Yükleme",
"down": "İndirme",
"bytesTx": "İletilen",
"bytesRx": "Alınan"
},
"uptimerobot": {
"status": "Durum",
"uptime": "Çalışma Süresi",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
"lastDown": "Son Kesinti",
"downDuration": "Kesinti Süresi",
"sitesUp": "Sites Up",
"sitesDown": "Sites Down",
"paused": "Paused",
"notyetchecked": "Not Yet Checked",
"paused": "Durduruldu",
"notyetchecked": "Henüz Kontrol Edilmedi",
"up": "Yükleme",
"seemsdown": "Seems Down",
"seemsdown": "Kapalı görünüyor",
"down": "İndirme",
"unknown": "Bilinmiyor"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"inCinemas": "Sinemalarda",
"physicalRelease": "Fiziksel Yayınlanan",
"digitalRelease": "Dijital Yayınlanan",
"noEventsToday": "Bugün için etkinlik yok!",
"noEventsFound": "Etkinlik bulunamadı"
},
"romm": {
"platforms": "Platforms",
"totalRoms": "Total ROMs"
"platforms": "Platformlar",
"totalRoms": "Toplam ROM'lar"
},
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
"warnings": "Uyarılar",
"criticals": "Kritik"
},
"plantit": {
"events": "Etkinlikler",
"plants": "Plants",
"photos": "Fotoğraflar",
"species": "Türler"
},
"gitea": {
"notifications": "Bildirimler",
"issues": "Sorunlar",
"pulls": "Değişiklik İstekleri"
},
"stash": {
"scenes": "Sahneler",
"scenesPlayed": "Oynanan Sahneler",
"playCount": "Toplam Oynatma",
"playDuration": "İzlenen Süre",
"sceneSize": "Sahne Boyutu",
"sceneDuration": "Sahne Süresi",
"images": "Görseller",
"imageSize": "Görsel Boyutu",
"galleries": "Galeriler",
"performers": "Performers",
"studios": "Stüdyolar",
"movies": "Filmler",
"tags": "Etiketler",
"oCount": "O Count"
},
"tandoor": {
"users": "Kullanıcılar",
"recipes": "Tarifler",
"keywords": "Anahtar Sözcükler"
},
"homebox": {
"items": "Ögeler",
"totalWithWarranty": "Garantili",
"locations": "Konum",
"labels": "Etiketler",
"users": "Kullanıcılar",
"totalValue": "Toplam Değer"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Епізоди",
"songs": "Пісні"
},
"esphome": {
"offline": "Офлайн",
"offline_alt": "Офлайн",
"online": "Онлайн",
"total": "Усього",
"unknown": "Невідомий"
},
"evcc": {
"pv_power": "Виробництво",
"battery_soc": "Батарея",
@@ -419,7 +426,8 @@
"search": "Пошук",
"custom": "Користувацький",
"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": "Бітрейт",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Пройшов",
@@ -694,6 +710,11 @@
"targets_down": "Цілі вниз",
"targets_total": "Всього цілей"
},
"gatus": {
"up": "Активні сайти",
"down": "Неактивні сайти",
"uptime": "Час роботи"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "Один рік",
@@ -775,6 +796,14 @@
"passed": "Пройшов",
"failed": "Невдача"
},
"openwrt": {
"uptime": "Час роботи",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Стан",
"uptime": "Час роботи",
@@ -803,5 +832,45 @@
"netdata": {
"warnings": "Warnings",
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Фотографії",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"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"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "Episodes",
"songs": "Songs"
},
"esphome": {
"offline": "Ngoại tuyến",
"offline_alt": "Ngoại tuyến",
"online": "Online",
"total": "Tổng",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
@@ -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": "Trạng thái",
"uptime": "Uptime",
@@ -803,5 +832,45 @@
"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"
}
}

View File

@@ -107,6 +107,13 @@
"episodes": "集",
"songs": "曲目"
},
"esphome": {
"offline": "離線",
"offline_alt": "離線",
"online": "在線",
"total": "全部",
"unknown": "未知"
},
"evcc": {
"pv_power": "正式環境",
"battery_soc": "電池",
@@ -419,7 +426,8 @@
"search": "搜尋",
"custom": "自訂",
"visit": "造訪",
"url": "網址"
"url": "網址",
"searchsuggestion": "建議"
},
"wmo": {
"0-day": "晴天",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "頻道",
"hd": "高畫質"
"hd": "高畫質",
"tunerCount": "調諧器",
"channelNumber": "頻道",
"channelNetwork": "網絡",
"signalStrength": "強度",
"signalQuality": "品質",
"symbolQuality": "品質",
"networkRate": "比特率",
"clientIP": "用戶端"
},
"scrutiny": {
"passed": "通過",
@@ -548,8 +564,8 @@
},
"peanut": {
"battery_charge": "充電",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"ups_load": "後備電負載",
"ups_status": "後備電狀況",
"online": "在線",
"on_battery": "電池供電",
"low_battery": "低電量"
@@ -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,51 @@
"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": "已播放場景",
"playCount": "合共播放",
"playDuration": "觀看時數",
"sceneSize": "場景大小",
"sceneDuration": "場景為期",
"images": "圖片",
"imageSize": "圖像大小",
"galleries": "畫廊",
"performers": "表演者",
"studios": "工作室",
"movies": "電影",
"tags": "標籤",
"oCount": "O Count"
},
"tandoor": {
"users": "使用者",
"recipes": "食譜",
"keywords": "關鍵字"
},
"homebox": {
"items": "項目",
"totalWithWarranty": "With Warranty",
"locations": "位置",
"labels": "標籤",
"users": "使用者",
"totalValue": "總共"
}
}

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}}",
@@ -90,7 +90,7 @@
"not_available": "不可用"
},
"siteMonitor": {
"http_status": "HTTP status",
"http_status": "HTTP 状态",
"error": "错误",
"response": "响应",
"down": "离线",
@@ -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",
"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"
"received": "最大上传数",
"sent": "已发送",
"externalIPAddress": "外部IP"
},
"caddy": {
"upstreams": "上行",
@@ -404,8 +411,8 @@
"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": "晴天",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "频道",
"hd": "HD"
"hd": "HD",
"tunerCount": "电台数",
"channelNumber": "频道数",
"channelNetwork": "网络",
"signalStrength": "强度",
"signalQuality": "质量",
"symbolQuality": "质量",
"networkRate": "码率",
"clientIP": "客户端"
},
"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": "请稍候",
@@ -624,7 +640,7 @@
"down": "离线网站",
"uptime": "运行时间",
"incident": "事件",
"m": "m"
"m": ""
},
"atsumeru": {
"series": "剧集",
@@ -694,6 +710,11 @@
"targets_down": "离线目标",
"targets_total": "目标总数"
},
"gatus": {
"up": "在线网站",
"down": "离线网站",
"uptime": "运行时间"
},
"ghostfolio": {
"gross_percent_today": "今日",
"gross_percent_1y": "1年",
@@ -775,6 +796,14 @@
"passed": "通过",
"failed": "失败"
},
"openwrt": {
"uptime": "运行时间",
"cpuLoad": "CPU 负载平均值(5m)",
"up": "在线",
"down": "离线",
"bytesTx": "已传输",
"bytesRx": "最大上传数"
},
"uptimerobot": {
"status": "状态",
"uptime": "运行时间",
@@ -797,11 +826,51 @@
"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": "PR"
},
"stash": {
"scenes": "场景",
"scenesPlayed": "已播放场景",
"playCount": "播放总数",
"playDuration": "播放时间",
"sceneSize": "场景大小",
"sceneDuration": "场景时长",
"images": "图片",
"imageSize": "图像大小",
"galleries": "图库",
"performers": "演员",
"studios": "工作室",
"movies": "电影",
"tags": "标签",
"oCount": "O Count"
},
"tandoor": {
"users": "用户数",
"recipes": "食谱",
"keywords": "关键词"
},
"homebox": {
"items": "Items",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "用户数",
"totalValue": "Total Value"
}
}

View File

@@ -32,8 +32,8 @@
"weather": {
"current": "目前位置",
"allow": "點擊以允許",
"updating": "更新",
"wait": "請稍"
"updating": "正在更新",
"wait": "請稍"
},
"search": {
"placeholder": "搜尋…"
@@ -50,7 +50,7 @@
"uptime": "運作時間"
},
"unifi": {
"users": "使用者",
"users": "用戶",
"uptime": "運行時間",
"days": "天",
"wan": "WAN",
@@ -63,7 +63,7 @@
"wlan_users": "無線使用者",
"up": "運作時間",
"down": "離線",
"wait": "請稍",
"wait": "請稍",
"empty_data": "子系統狀態未知"
},
"docker": {
@@ -107,6 +107,13 @@
"episodes": "集",
"songs": "曲目"
},
"esphome": {
"offline": "離線",
"offline_alt": "離線",
"online": "在線",
"total": "全部",
"unknown": "未知"
},
"evcc": {
"pv_power": "正式環境",
"battery_soc": "電池",
@@ -362,7 +369,7 @@
"transferRate": "速率"
},
"mastodon": {
"user_count": "使用者",
"user_count": "用戶",
"status_count": "文章",
"domain_count": "網域"
},
@@ -383,7 +390,7 @@
"unread": "未讀"
},
"authentik": {
"users": "使用者",
"users": "用戶",
"loginsLast24H": "登入 (過去 24 小時)",
"failedLoginsLast24H": "登入失敗 (過去 24 小時)"
},
@@ -396,7 +403,7 @@
"glances": {
"cpu": "CPU",
"load": "負載",
"wait": "請稍",
"wait": "請稍",
"temp": "溫度",
"_temp": "溫度",
"warn": "警告",
@@ -419,7 +426,8 @@
"search": "搜尋",
"custom": "自訂",
"visit": "造訪",
"url": "網址"
"url": "網址",
"searchsuggestion": "建議"
},
"wmo": {
"0-day": "晴天",
@@ -535,7 +543,15 @@
},
"hdhomerun": {
"channels": "頻道",
"hd": "高畫質"
"hd": "高畫質",
"tunerCount": "調諧器",
"channelNumber": "頻道",
"channelNetwork": "網絡",
"signalStrength": "強度",
"signalQuality": "品質",
"symbolQuality": "品質",
"networkRate": "位元率",
"clientIP": "用戶端"
},
"scrutiny": {
"passed": "通過",
@@ -548,8 +564,8 @@
},
"peanut": {
"battery_charge": "充電",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"ups_load": "後備電負載",
"ups_status": "後備電狀況",
"online": "在線",
"on_battery": "電池供電",
"low_battery": "低電量"
@@ -614,7 +630,7 @@
"memory_usage": "記憶體"
},
"immich": {
"users": "使用者",
"users": "用戶",
"photos": "照片",
"videos": "影片",
"storage": "儲存空間"
@@ -694,6 +710,11 @@
"targets_down": "目標離線",
"targets_total": "目標總數"
},
"gatus": {
"up": "在線網站",
"down": "離線網站",
"uptime": "運行時間"
},
"ghostfolio": {
"gross_percent_today": "今日",
"gross_percent_1y": "一年",
@@ -707,8 +728,8 @@
},
"homeassistant": {
"people_home": "在家人數",
"lights_on": "燈亮著",
"switches_on": "開關開"
"lights_on": "燈光開啟",
"switches_on": "開關開"
},
"whatsupdocker": {
"monitoring": "監測中",
@@ -763,7 +784,7 @@
},
"mealie": {
"recipes": "食譜",
"users": "使用者",
"users": "用戶",
"categories": "類別",
"tags": "標籤"
},
@@ -775,6 +796,14 @@
"passed": "通過",
"failed": "失敗"
},
"openwrt": {
"uptime": "運行時間",
"cpuLoad": "處理器平均負載(5分鐘)",
"up": "在線",
"down": "離線",
"bytesTx": "已傳送",
"bytesRx": "已接收"
},
"uptimerobot": {
"status": "狀態",
"uptime": "運行時間",
@@ -797,11 +826,51 @@
"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": "已播放場景",
"playCount": "合共播放",
"playDuration": "觀看時數",
"sceneSize": "場景大小",
"sceneDuration": "場景為期",
"images": "圖片",
"imageSize": "圖像大小",
"galleries": "畫廊",
"performers": "表演者",
"studios": "工作室",
"movies": "電影",
"tags": "標籤",
"oCount": "O Count"
},
"tandoor": {
"users": "用戶",
"recipes": "食譜",
"keywords": "關鍵字"
},
"homebox": {
"items": "項目",
"totalWithWarranty": "With Warranty",
"locations": "位置",
"labels": "標籤",
"users": "用戶",
"totalValue": "總共"
}
}

View File

@@ -1,10 +0,0 @@
import useSWR from "swr";
export default function FileContent({ path, loadingValue, errorValue, emptyValue = "" }) {
const fetcher = (url) => fetch(url).then((res) => res.text());
const { data, error, isLoading } = useSWR(`/api/config/${path}`, fetcher);
if (error) return errorValue;
if (isLoading) return loadingValue;
return data || emptyValue;
}

View File

@@ -36,7 +36,6 @@ export default function Item({ service, group, useEqualHeights }) {
<div
className={classNames(
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
hasLink && "cursor-pointer",
useEqualHeights && "h-[calc(100%-0.5rem)]",
"transition-all mb-2 p-1 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10 relative overflow-clip service-card",
)}

View File

@@ -7,33 +7,31 @@ export default function Status({ service, style }) {
const { data, error } = useSWR(`/api/docker/status/${service.container}/${service.server || ""}`);
let statusLabel = t("docker.unknown");
let statusTitle = "";
let backgroundClass = "px-1.5 py-0.5 bg-theme-500/10 dark:bg-theme-900/50";
let colorClass = "text-black/20 dark:text-white/40 ";
if (error) {
statusTitle = t("docker.error");
statusLabel = t("docker.error");
colorClass = "text-rose-500/80";
} else if (data) {
if (data.status?.includes("running")) {
if (data.health === "starting") {
statusTitle = t("docker.starting");
colorClass = "text-blue-500/80";
}
if (data.health === "unhealthy") {
statusTitle = t("docker.unhealthy");
colorClass = "text-orange-400/50 dark:text-orange-400/80";
}
colorClass = "text-emerald-500/80";
if (!data.health) {
statusLabel = data.status.replace("running", t("docker.running"));
} else {
statusLabel = data.health === "healthy" ? t("docker.healthy") : data.health;
}
statusTitle = statusLabel;
colorClass = "text-emerald-500/80";
if (data.health === "starting") {
statusLabel = t("docker.starting");
colorClass = "text-blue-500/80";
}
if (data.health === "unhealthy") {
statusLabel = t("docker.unhealthy");
colorClass = "text-orange-400/50 dark:text-orange-400/80";
}
}
}
if (data.status === "not found" || data.status === "exited" || data.status?.startsWith("partial")) {
@@ -47,13 +45,14 @@ export default function Status({ service, style }) {
if (style === "dot") {
colorClass = colorClass.replace(/text-/g, "bg-").replace(/\/\d\d/g, "");
backgroundClass = "p-4 hover:bg-theme-500/10 dark:hover:bg-theme-900/20";
statusTitle = statusLabel;
}
return (
<div
className={`w-auto text-center overflow-hidden ${backgroundClass} rounded-b-[3px] docker-status`}
title={statusTitle}
className={`w-auto text-center overflow-hidden ${backgroundClass} rounded-b-[3px] docker-status docker-status-${statusLabel
.toLowerCase()
.replace(" ", "-")}`}
title={statusLabel}
>
{style !== "dot" ? (
<div className={`text-[8px] font-bold ${colorClass} uppercase`}>{statusLabel}</div>

View File

@@ -3,13 +3,19 @@ import classNames from "classnames";
import { TabContext } from "utils/contexts/tab";
export function slugify(tabName) {
return tabName !== undefined ? encodeURIComponent(tabName.toString().replace(/\s+/g, "-").toLowerCase()) : "";
function slugify(tabName) {
return tabName.toString().replace(/\s+/g, "-").toLowerCase();
}
export function slugifyAndEncode(tabName) {
return tabName !== undefined ? encodeURIComponent(slugify(tabName)) : "";
}
export default function Tab({ tab }) {
const { activeTab, setActiveTab } = useContext(TabContext);
const matchesTab = decodeURI(activeTab) === slugify(tab);
return (
<li
key={tab}
@@ -21,16 +27,14 @@ export default function Tab({ tab }) {
type="button"
role="tab"
aria-controls={`#${tab}`}
aria-selected={activeTab === slugify(tab) ? "true" : "false"}
aria-selected={matchesTab ? "true" : "false"}
className={classNames(
"w-full rounded-md m-1",
activeTab === slugify(tab)
? "bg-theme-300/20 dark:bg-white/10"
: "hover:bg-theme-100/20 dark:hover:bg-white/5",
matchesTab ? "bg-theme-300/20 dark:bg-white/10" : "hover:bg-theme-100/20 dark:hover:bg-white/5",
)}
onClick={() => {
setActiveTab(slugify(tab));
window.location.hash = `#${slugify(tab)}`;
setActiveTab(slugifyAndEncode(tab));
window.location.hash = `#${slugifyAndEncode(tab)}`;
}}
>
{tab}

View File

@@ -21,6 +21,7 @@ function convertToFahrenheit(t) {
export default function Widget({ options }) {
const { t, i18n } = useTranslation();
const { settings } = useContext(SettingsContext);
const diskUnits = options.diskUnits === "bbytes" ? "common.bbytes" : "common.bytes";
const { data, error } = useSWR(
`/api/widgets/glances?${new URLSearchParams({ lang: i18n.language, ...options }).toString()}`,
@@ -132,9 +133,9 @@ export default function Widget({ options }) {
<Resource
key={`disk_${disk.mnt_point ?? disk.device_name}`}
icon={FiHardDrive}
value={t("common.bytes", { value: disk.free })}
value={t(diskUnits, { value: disk.free })}
label={t("glances.free")}
expandedValue={t("common.bytes", { value: disk.size })}
expandedValue={t(diskUnits, { value: disk.size })}
expandedLabel={t("glances.total")}
percentage={disk.percent}
expanded={options.expanded}

View File

@@ -46,6 +46,7 @@ function Widget({ options }) {
value: data.current_weather.temperature,
style: "unit",
unit,
...options.format,
})}
</PrimaryText>
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText>
@@ -83,8 +84,6 @@ export default function OpenMeteo({ options }) {
}
};
// if (!requesting && !location) requestLocation();
if (!location) {
return (
<ContainerButton

View File

@@ -42,7 +42,7 @@ function Widget({ options }) {
<Container options={options} additionalClassNames="information-widget-openweathermap">
<PrimaryText>
{options.label && `${options.label}, `}
{t("common.number", { value: data.main.temp, style: "unit", unit })}
{t("common.number", { value: data.main.temp, style: "unit", unit, ...options.format })}
</PrimaryText>
<SecondaryText>{data.weather[0].description}</SecondaryText>
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />

View File

@@ -5,8 +5,9 @@ import { useTranslation } from "next-i18next";
import Resource from "../widget/resource";
import Error from "../widget/error";
export default function Disk({ options, expanded, refresh = 1500 }) {
export default function Disk({ options, expanded, diskUnits, refresh = 1500 }) {
const { t } = useTranslation();
const diskUnitsName = diskUnits === "bbytes" ? "common.bbytes" : "common.bytes";
const { data, error } = useSWR(`/api/widgets/resources?type=disk&target=${options.disk}`, {
refreshInterval: refresh,
@@ -36,9 +37,9 @@ export default function Disk({ options, expanded, refresh = 1500 }) {
return (
<Resource
icon={FiHardDrive}
value={t("common.bytes", { value: data.drive.available })}
value={t(diskUnitsName, { value: data.drive.available })}
label={t("resources.free")}
expandedValue={t("common.bytes", { value: data.drive.size })}
expandedValue={t(diskUnitsName, { value: data.drive.size })}
expandedLabel={t("resources.total")}
percentage={percent}
expanded={expanded}

View File

@@ -8,7 +8,7 @@ import CpuTemp from "./cputemp";
import Uptime from "./uptime";
export default function Resources({ options }) {
const { expanded, units } = options;
const { expanded, units, diskUnits } = options;
let { refresh } = options;
if (!refresh) refresh = 1500;
refresh = Math.max(refresh, 1000);
@@ -19,8 +19,10 @@ export default function Resources({ options }) {
{options.cpu && <Cpu expanded={expanded} refresh={refresh} />}
{options.memory && <Memory expanded={expanded} refresh={refresh} />}
{Array.isArray(options.disk)
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} refresh={refresh} />)
: options.disk && <Disk options={options} expanded={expanded} refresh={refresh} />}
? options.disk.map((disk) => (
<Disk key={disk} options={{ disk }} expanded={expanded} diskUnits={diskUnits} refresh={refresh} />
))
: options.disk && <Disk options={options} expanded={expanded} diskUnits={diskUnits} refresh={refresh} />}
{options.cputemp && <CpuTemp expanded={expanded} units={units} refresh={refresh} />}
{options.uptime && <Uptime refresh={refresh} />}
</div>

View File

@@ -45,6 +45,7 @@ function Widget({ options }) {
value: options.units === "metric" ? data.current.temp_c : data.current.temp_f,
style: "unit",
unit,
...options.format,
})}
</PrimaryText>
<SecondaryText>{data.current.condition.text}</SecondaryText>

View File

@@ -16,7 +16,7 @@ export function getAllClasses(options, additionalClassNames = "") {
}
return classNames(
"flex flex-col justify-center ml-2 mr-2",
"flex flex-col justify-center",
"mt-2 m:mb-0 rounded-md shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 dark:bg-white/5 p-2 pl-3 pr-3",
additionalClassNames,
);
@@ -24,7 +24,7 @@ export function getAllClasses(options, additionalClassNames = "") {
let widgetAlignedClasses = "flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap";
if (options?.style?.isRightAligned) {
widgetAlignedClasses = "flex flex-col justify-center first:ml-auto ml-2 mr-2 ";
widgetAlignedClasses = "flex flex-col justify-center";
}
return classNames(widgetAlignedClasses, additionalClassNames);

View File

@@ -28,7 +28,7 @@ export default async function handler(req, res) {
res.setHeader("Content-Type", mimeType);
return res.status(200).send(fileContent);
} catch (error) {
logger.error(error);
if (error) logger.error(error);
return res.status(500).end("Internal Server Error");
}
}

View File

@@ -80,7 +80,7 @@ export default async function handler(req, res) {
error: "not found",
});
} catch (e) {
logger.error(e);
if (e) logger.error(e);
return res.status(500).send({
error: { message: e?.message ?? "Unknown error" },
});

View File

@@ -108,7 +108,7 @@ export default async function handler(req, res) {
status: "not found",
});
} catch (e) {
logger.error(e);
if (e) logger.error(e);
return res.status(500).send({
error: { message: e?.message ?? "Unknown error" },
});

View File

@@ -106,7 +106,7 @@ export default async function handler(req, res) {
stats,
});
} catch (e) {
logger.error(e);
if (e) logger.error(e);
res.status(500).send({
error: "unknown error",
});

View File

@@ -59,7 +59,7 @@ export default async function handler(req, res) {
status,
});
} catch (e) {
logger.error(e);
if (e) logger.error(e);
res.status(500).send({
error: "unknown error",
});

View File

@@ -19,5 +19,5 @@ export default async function handler(req, res) {
return res.json([query, []]); // Responde with the same array format but with no suggestions.
}
return res.send(await cachedFetch(`${provider.suggestionUrl}${encodeURIComponent(query)}`, 5));
return res.send(await cachedFetch(`${provider.suggestionUrl}${encodeURIComponent(query)}`, 5, "Mozilla/5.0"));
}

View File

@@ -71,8 +71,8 @@ export default async function handler(req, res) {
logger.debug("Unknown proxy service type: %s", type);
return res.status(403).json({ error: "Unkown proxy service type" });
} catch (ex) {
logger.error(ex);
} catch (e) {
if (e) logger.error(e);
return res.status(500).send({ error: "Unexpected error" });
}
}

View File

@@ -94,7 +94,7 @@ export default async function handler(req, res) {
nodes: Object.entries(nodeMap).map(([name, node]) => ({ name, ...node })),
});
} catch (e) {
logger.error("exception %s", e);
if (e) logger.error(e);
return res.status(500).send({
error: "unknown error",
});

View File

@@ -1,6 +1,7 @@
/* eslint-disable react/no-array-index-key */
import useSWR, { SWRConfig } from "swr";
import Head from "next/head";
import Script from "next/script";
import dynamic from "next/dynamic";
import classNames from "classnames";
import { useTranslation } from "next-i18next";
@@ -9,8 +10,7 @@ import { BiError } from "react-icons/bi";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import { useRouter } from "next/router";
import Tab, { slugify } from "components/tab";
import FileContent from "components/filecontent";
import Tab, { slugifyAndEncode } from "components/tab";
import ServicesGroup from "components/services/group";
import BookmarksGroup from "components/bookmarks/group";
import Widget from "components/widgets/widget";
@@ -65,7 +65,7 @@ export async function getStaticProps() {
},
};
} catch (e) {
if (logger) {
if (logger && e) {
logger.error(e);
}
return {
@@ -161,10 +161,10 @@ function Index({ initialSettings, fallback }) {
const headerStyles = {
boxed:
"m-6 mb-0 sm:m-9 sm:mb-0 rounded-md shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 dark:bg-white/5 p-3",
underlined: "m-6 mb-0 sm:m-9 sm:mb-1 border-b-2 pb-4 border-theme-800 dark:border-theme-200/50",
clean: "m-6 mb-0 sm:m-9 sm:mb-0",
boxedWidgets: "m-6 mb-0 sm:m-9 sm:mb-0 sm:mt-1",
"m-5 mb-0 sm:m-9 sm:mb-0 rounded-md shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 dark:bg-white/5 p-3",
underlined: "m-5 mb-0 sm:m-9 sm:mb-1 border-b-2 pb-4 border-theme-800 dark:border-theme-200/50",
clean: "m-5 mb-0 sm:m-9 sm:mb-0",
boxedWidgets: "m-5 mb-0 sm:m-9 sm:mb-0 sm:mt-1",
};
function Home({ initialSettings }) {
@@ -225,7 +225,7 @@ function Home({ initialSettings }) {
if (e.target.tagName === "BODY" || e.target.id === "inner_wrapper") {
if (
(e.key.length === 1 &&
e.key.match(/(\w|\s|[à-ü]|[À-Ü])/g) &&
e.key.match(/(\w|\s|[à-ü]|[À-Ü]|[\w\u0430-\u044f])/gi) &&
!(e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) ||
e.key.match(/([à-ü]|[À-Ü])/g) || // accented characters may require modifier keys
(e.key === "v" && (e.ctrlKey || e.metaKey))
@@ -258,13 +258,13 @@ function Home({ initialSettings }) {
useEffect(() => {
if (!activeTab) {
const initialTab = decodeURI(asPath.substring(asPath.indexOf("#") + 1));
setActiveTab(initialTab === "/" ? slugify(tabs["0"]) : initialTab);
const initialTab = asPath.substring(asPath.indexOf("#") + 1);
setActiveTab(initialTab === "/" ? slugifyAndEncode(tabs["0"]) : initialTab);
}
});
const servicesAndBookmarksGroups = useMemo(() => {
const tabGroupFilter = (g) => g && [activeTab, ""].includes(slugify(settings.layout?.[g.name]?.tab));
const tabGroupFilter = (g) => g && [activeTab, ""].includes(slugifyAndEncode(settings.layout?.[g.name]?.tab));
const undefinedGroupFilter = (g) => settings.layout?.[g.name] === undefined;
const layoutGroups = Object.keys(settings.layout ?? {})
@@ -282,7 +282,7 @@ function Home({ initialSettings }) {
return (
<>
{tabs.length > 0 && (
<div key="tabs" id="tabs" className="m-6 sm:m-9 sm:mt-4 sm:mb-0">
<div key="tabs" id="tabs" className="m-5 sm:m-9 sm:mt-4 sm:mb-0">
<ul
className={classNames(
"sm:flex rounded-md bg-theme-100/20 dark:bg-white/5",
@@ -390,19 +390,11 @@ function Home({ initialSettings }) {
)}
<meta name="msapplication-TileColor" content={themes[settings.color || "slate"][settings.theme || "dark"]} />
<meta name="theme-color" content={themes[settings.color || "slate"][settings.theme || "dark"]} />
<link rel="preload" href="/api/config/custom.css" as="style" />
<link rel="stylesheet" href="/api/config/custom.css" /> {/* eslint-disable-line @next/next/no-css-tags */}
</Head>
<link rel="preload" href="/api/config/custom.css" as="fetch" crossOrigin="anonymous" />
<style data-name="custom.css">
<FileContent
path="custom.css"
loadingValue="/* Loading custom CSS... */"
errorValue="/* Failed to load custom CSS... */"
emptyValue="/* No custom CSS */"
/>
</style>
<link rel="preload" href="/api/config/custom.js" as="fetch" crossOrigin="anonymous" />
<script data-name="custom.js" src="/api/config/custom.js" async />
<Script src="/api/config/custom.js" />
<div className="relative container m-auto flex flex-col justify-start z-10 h-full">
<QuickLaunch
@@ -423,11 +415,7 @@ function Home({ initialSettings }) {
`backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
)}
>
<div
id="widgets-wrap"
style={{ width: "calc(100% + 1rem)" }}
className={classNames("flex flex-row w-full flex-wrap justify-between -ml-2 -mr-2")}
>
<div id="widgets-wrap" className={classNames("flex flex-row w-full flex-wrap justify-between gap-x-2")}>
{widgets && (
<>
{widgets
@@ -444,7 +432,7 @@ function Home({ initialSettings }) {
id="information-widgets-right"
className={classNames(
"m-auto flex flex-wrap grow sm:basis-auto justify-between md:justify-end",
headerStyle === "boxedWidgets" ? "sm:ml-4" : "sm:ml-2",
"m-auto flex flex-wrap grow sm:basis-auto justify-between md:justify-end gap-x-2",
)}
>
{widgets

View File

@@ -117,6 +117,8 @@ export async function servicesFromDocker() {
return { server: serverName, services: discovered.filter((filteredService) => filteredService) };
} catch (e) {
logger.error("Error getting services from Docker server '%s': %s", serverName, e);
// a server failed, but others may succeed
return { server: serverName, services: [] };
}
@@ -325,7 +327,7 @@ export async function servicesFromKubernetes() {
return mappedServiceGroups;
} catch (e) {
logger.error(e);
if (e) logger.error(e);
throw e;
}
}
@@ -378,6 +380,7 @@ export function cleanServiceGroups(groups) {
// customapi
mappings,
display,
// diskstation
volume,
@@ -394,6 +397,7 @@ export function cleanServiceGroups(groups) {
chart,
metric,
pointsLimit,
diskUnits,
// glances, customapi, iframe
refreshInterval,
@@ -441,6 +445,9 @@ export function cleanServiceGroups(groups) {
// sonarr, radarr
enableQueue,
// truenas
enablePools,
// unifi
site,
} = cleanedService.widget;
@@ -448,7 +455,7 @@ export function cleanServiceGroups(groups) {
let fieldsList = fields;
if (typeof fields === "string") {
try {
JSON.parse(fields);
fieldsList = JSON.parse(fields);
} catch (e) {
logger.error("Invalid fields list detected in config for service '%s'", service.name);
fieldsList = null;
@@ -510,6 +517,9 @@ export function cleanServiceGroups(groups) {
if (["sonarr", "radarr"].includes(type)) {
if (enableQueue !== undefined) cleanedService.widget.enableQueue = JSON.parse(enableQueue);
}
if (type === "truenas") {
if (enablePools !== undefined) cleanedService.widget.enablePools = JSON.parse(enablePools);
}
if (["diskstation", "qnap"].includes(type)) {
if (volume) cleanedService.widget.volume = volume;
}
@@ -526,6 +536,7 @@ export function cleanServiceGroups(groups) {
}
if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval;
if (pointsLimit) cleanedService.widget.pointsLimit = pointsLimit;
if (diskUnits) cleanedService.widget.diskUnits = diskUnits;
}
if (type === "mjpeg") {
if (stream) cleanedService.widget.stream = stream;
@@ -539,6 +550,7 @@ export function cleanServiceGroups(groups) {
}
if (type === "customapi") {
if (mappings) cleanedService.widget.mappings = mappings;
if (display) cleanedService.widget.display = display;
if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval;
}
if (type === "calendar") {

View File

@@ -3,68 +3,89 @@ import { format as utilFormat } from "node:util";
import winston from "winston";
import checkAndCopyConfig, { getSettings, CONF_DIR } from "utils/config/config";
import checkAndCopyConfig, { CONF_DIR, getSettings } from "utils/config/config";
let winstonLogger;
function init() {
checkAndCopyConfig("settings.yaml");
function combineMessageAndSplat() {
return {
// eslint-disable-next-line no-unused-vars
transform: (info, opts) => {
// combine message and args if any
// eslint-disable-next-line no-param-reassign
info.message = utilFormat(info.message, ...(info[Symbol.for("splat")] || []));
return info;
},
};
}
function messageFormatter(logInfo) {
if (logInfo.label) {
if (logInfo.stack) {
return `[${logInfo.timestamp}] ${logInfo.level}: <${logInfo.label}> ${logInfo.stack}`;
}
return `[${logInfo.timestamp}] ${logInfo.level}: <${logInfo.label}> ${logInfo.message}`;
}
if (logInfo.stack) {
return `[${logInfo.timestamp}] ${logInfo.level}: ${logInfo.stack}`;
}
return `[${logInfo.timestamp}] ${logInfo.level}: ${logInfo.message}`;
}
function getConsoleLogger() {
return new winston.transports.Console({
format: winston.format.combine(
winston.format.errors({ stack: true }),
combineMessageAndSplat(),
winston.format.timestamp(),
winston.format.colorize(),
winston.format.printf(messageFormatter),
),
handleExceptions: true,
handleRejections: true,
});
}
function getFileLogger() {
const settings = getSettings();
const logpath = settings.logpath || CONF_DIR;
function combineMessageAndSplat() {
return {
// eslint-disable-next-line no-unused-vars
transform: (info, opts) => {
// combine message and args if any
// eslint-disable-next-line no-param-reassign
info.message = utilFormat(info.message, ...(info[Symbol.for("splat")] || []));
return info;
},
};
}
return new winston.transports.File({
format: winston.format.combine(
winston.format.errors({ stack: true }),
combineMessageAndSplat(),
winston.format.timestamp(),
winston.format.printf(messageFormatter),
),
filename: `${logpath}/logs/homepage.log`,
handleExceptions: true,
handleRejections: true,
});
}
function messageFormatter(logInfo) {
if (logInfo.label) {
if (logInfo.stack) {
return `[${logInfo.timestamp}] ${logInfo.level}: <${logInfo.label}> ${logInfo.stack}`;
}
return `[${logInfo.timestamp}] ${logInfo.level}: <${logInfo.label}> ${logInfo.message}`;
}
function init() {
checkAndCopyConfig("settings.yaml");
const configuredTargets = process.env.LOG_TARGETS || "both";
const loggingTransports = [];
if (logInfo.stack) {
return `[${logInfo.timestamp}] ${logInfo.level}: ${logInfo.stack}`;
}
return `[${logInfo.timestamp}] ${logInfo.level}: ${logInfo.message}`;
switch (configuredTargets) {
case "both":
loggingTransports.push(getConsoleLogger(), getFileLogger());
break;
case "stdout":
loggingTransports.push(getConsoleLogger());
break;
case "file":
loggingTransports.push(getFileLogger());
break;
default:
loggingTransports.push(getConsoleLogger(), getFileLogger());
}
winstonLogger = winston.createLogger({
level: process.env.LOG_LEVEL || "info",
transports: [
new winston.transports.Console({
format: winston.format.combine(
winston.format.errors({ stack: true }),
combineMessageAndSplat(),
winston.format.timestamp(),
winston.format.colorize(),
winston.format.printf(messageFormatter),
),
handleExceptions: true,
handleRejections: true,
}),
new winston.transports.File({
format: winston.format.combine(
winston.format.errors({ stack: true }),
combineMessageAndSplat(),
winston.format.timestamp(),
winston.format.printf(messageFormatter),
),
filename: `${logpath}/logs/homepage.log`,
handleExceptions: true,
handleRejections: true,
}),
],
transports: loggingTransports,
});
// patch the console log mechanism to use our logger

View File

@@ -57,7 +57,7 @@ export function jsonArrayFilter(data, filter) {
export function sanitizeErrorURL(errorURL) {
// Dont display sensitive params on frontend
const url = new URL(errorURL);
["apikey", "api_key", "token", "t"].forEach((key) => {
["apikey", "api_key", "token", "t", "access_token"].forEach((key) => {
if (url.searchParams.has(key)) url.searchParams.set(key, "***");
});
return url.toString();

View File

@@ -2,7 +2,7 @@ import cache from "memory-cache";
const defaultDuration = 5;
export default async function cachedFetch(url, duration) {
export default async function cachedFetch(url, duration, ua) {
const cached = cache.get(url);
// eslint-disable-next-line no-param-reassign
@@ -13,7 +13,13 @@ export default async function cachedFetch(url, duration) {
}
// wrapping text in JSON.parse to handle utf-8 issues
const data = JSON.parse(await fetch(url).then((res) => res.text()));
const options = {};
if (ua) {
options.headers = {
"User-Agent": ua,
};
}
const data = await fetch(url, options).then((res) => res.json());
cache.put(url, data, duration * 1000 * 60);
return data;
}

View File

@@ -29,11 +29,17 @@ export default async function credentialedProxyHandler(req, res, map) {
} else if (widget.type === "gotify") {
headers["X-gotify-Key"] = `${widget.key}`;
} else if (
["authentik", "cloudflared", "ghostfolio", "mealie", "tailscale", "truenas", "pterodactyl"].includes(
["authentik", "cloudflared", "ghostfolio", "mealie", "tailscale", "tandoor", "pterodactyl"].includes(
widget.type,
)
) {
headers.Authorization = `Bearer ${widget.key}`;
} else if (widget.type === "truenas") {
if (widget.key) {
headers.Authorization = `Bearer ${widget.key}`;
} else {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
}
} else if (widget.type === "proxmox") {
headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`;
} else if (widget.type === "proxmoxbackupserver") {
@@ -61,6 +67,8 @@ export default async function credentialedProxyHandler(req, res, map) {
headers.Authorization = `Basic ${Buffer.from(`$:${widget.key}`).toString("base64")}`;
} else if (widget.type === "glances") {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
} else if (widget.type === "plantit") {
headers.Key = `${widget.key}`;
} else {
headers["X-API-Key"] = `${widget.key}`;
}

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