Compare commits

..

41 Commits

Author SHA1 Message Date
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
126 changed files with 5050 additions and 1509 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: contact_links:
- name: 🤔 Questions and Help - name: 🤔 Questions and Help
url: https://github.com/gethomepage/homepage/discussions url: https://github.com/gethomepage/homepage/discussions
about: For support or general questions. about: For support, possible bug reports or general questions.
- name: 💬 Chat - name: 💬 Chat
url: https://discord.gg/k4ruYNrudu url: https://discord.gg/k4ruYNrudu
about: Want to discuss homepage with others? Check out our chat. about: Want to discuss homepage with others? Check out our chat.

View File

@@ -27,7 +27,7 @@ jobs:
stale-issue-message: > stale-issue-message: >
This issue has been automatically marked as stale because it has not had 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 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: lock-threads:
name: 'Lock Old Threads' name: 'Lock Old Threads'
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -42,14 +42,17 @@ jobs:
This issue has been automatically locked since there This issue has been automatically locked since there
has not been any recent activity after it was closed. has not been any recent activity after it was closed.
Please open a new discussion for related concerns. 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: > pr-comment: >
This pull request has been automatically locked since there This pull request has been automatically locked since there
has not been any recent activity after it was closed. has not been any recent activity after it was closed.
Please open a new discussion for related concerns. 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: > discussion-comment: >
This discussion has been automatically locked since there This discussion has been automatically locked since there
has not been any recent activity after it was closed. has not been any recent activity after it was closed.
Please open a new discussion for related concerns. 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: close-answered-discussions:
name: 'Close Answered Discussions' name: 'Close Answered Discussions'
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -89,7 +92,7 @@ jobs:
}`; }`;
const commentVariables = { const commentVariables = {
discussion: discussion.id, 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) await github.graphql(addCommentMutation, commentVariables)
@@ -179,7 +182,85 @@ jobs:
}`; }`;
const commentVariables = { const commentVariables = {
discussion: discussion.id, 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); 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) ## 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 ## 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 ## 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) 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

@@ -406,6 +406,8 @@ By default the homepage logfile is written to the a `logs` subdirectory of the `
logpath: /logfile/path 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 ## Show Docker Stats
You can show all docker stats expanded in `settings.yaml`: You can show all docker stats expanded in `settings.yaml`:

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. - 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 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 - Minimize the number of API calls
- Avoid the use of custom proxy unless absolutely necessary - 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 cputemp: true # disabled by default
uptime: 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) 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 expanded: true # show the expanded view
label: MyMachine # optional 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 timezone: Europe/Kiev # optional
units: metric # or imperial units: metric # or imperial
cache: 5 # Time in minutes to cache API responses, to stay within limits 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). 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 provider: openweathermap
apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests 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 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). 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 uptime: true
units: imperial # only used by cpu temp units: imperial # only used by cpu temp
refresh: 3000 # optional, in ms 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, 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 units: metric # or imperial
apiKey: yourweatherapikey apiKey: yourweatherapikey
cache: 5 # Time in minutes to cache API responses, to stay within limits 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). 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 password: password # auth - optional
method: GET # optional, e.g. POST method: GET # optional, e.g. POST
headers: # optional, must be object, see below headers: # optional, must be object, see below
requestBody: # optional, can be string or object, see below
display: # optional, default to block, see below
mappings: mappings:
- field: key # needs to be YAML string or object - field: key # needs to be YAML string or object
label: Field 1 label: Field 1
@@ -43,6 +45,15 @@ widget:
locale: nl # optional locale: nl # optional
style: short # optional - defaults to "long". Allowed values: `["long", "short", "narrow"]`. style: short # optional - defaults to "long". Allowed values: `["long", "short", "narrow"]`.
numeric: auto # optional - defaults to "always". Allowed values `["always", "auto"]`. 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`. Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes`, `bitrate`, `date` and `relativeDate`.
@@ -93,7 +104,7 @@ mappings:
## Data Transformation ## 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 ```yaml
- field: key4 - field: key4
@@ -110,7 +121,42 @@ You can manipulate data with the following tools `remap`, `scale` and `suffix`,
label: Power label: Power
format: float format: float
scale: 0.001 # can be number or string e.g. 1/16 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 ## Custom Headers
@@ -121,3 +167,16 @@ Pass custom headers using the `headers` option, for example:
headers: headers:
X-API-Token: token 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,16 @@
---
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", "unknown"]`.
```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` and `repository` 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,7 @@ widget:
username: user # optional if auth enabled in Glances username: user # optional if auth enabled in Glances
password: pass # optional if auth enabled in Glances password: pass # optional if auth enabled in Glances
metric: cpu metric: cpu
diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk
``` ```
_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:_ _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 - 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 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}"` - 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 - if no template label is defined it will be empty
```yaml ```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

@@ -12,3 +12,12 @@ widget:
type: moonraker type: moonraker
url: http://moonraker.host.or.ip:port 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: Create an ACL named `homepage.json` in `/usr/share/rpcd/acl.d/`, the following permissions will suffice:
``` ```json
{ {
"homepage": { "homepage": {
"description": "Homepage widget", "description": "Homepage widget",
"read": { "read": {
"ubus": { "ubus": {
"network.interface.wan": ["status"], "network.interface.wan": ["status"],
"network.interface.lan": ["status"], "network.interface.lan": ["status"],
"network.device": ["status"] "network.device": ["status"],
"system": ["info"] "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 username 'homepage'
option password '<password>' option password '<hashedpassword>'
list read homepage list read homepage
list write '*'
``` ```
This username and password will be used in Homepage's services.yaml to grant access. This username and password will be used in Homepage's services.yaml to grant access.

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"]`. 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 ```yaml
widget: widget:
type: pihole type: pihole
@@ -16,4 +18,4 @@ widget:
key: yourpiholeapikey # optional 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/). 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 ```yaml
widget: widget:
type: truenas type: truenas
@@ -16,4 +18,5 @@ widget:
username: user # not required if using api key username: user # not required if using api key
password: pass # not required if using api key password: pass # not required if using api key
key: yourtruenasapikey # not required if using username / password key: yourtruenasapikey # not required if using username / password
enablePools: true # optional, defaults to false
``` ```

View File

@@ -49,6 +49,7 @@ nav:
- widgets/services/diskstation.md - widgets/services/diskstation.md
- widgets/services/downloadstation.md - widgets/services/downloadstation.md
- widgets/services/emby.md - widgets/services/emby.md
- widgets/services/esphome.md
- widgets/services/evcc.md - widgets/services/evcc.md
- widgets/services/fileflows.md - widgets/services/fileflows.md
- widgets/services/flood.md - widgets/services/flood.md
@@ -57,6 +58,7 @@ nav:
- widgets/services/gamedig.md - widgets/services/gamedig.md
- widgets/services/gatus.md - widgets/services/gatus.md
- widgets/services/ghostfolio.md - widgets/services/ghostfolio.md
- widgets/services/gitea.md
- widgets/services/glances.md - widgets/services/glances.md
- widgets/services/gluetun.md - widgets/services/gluetun.md
- widgets/services/gotify.md - widgets/services/gotify.md
@@ -64,6 +66,7 @@ nav:
- widgets/services/hdhomerun.md - widgets/services/hdhomerun.md
- widgets/services/healthchecks.md - widgets/services/healthchecks.md
- widgets/services/homeassistant.md - widgets/services/homeassistant.md
- widgets/services/homebox.md
- widgets/services/homebridge.md - widgets/services/homebridge.md
- widgets/services/iframe.md - widgets/services/iframe.md
- widgets/services/immich.md - widgets/services/immich.md
@@ -103,6 +106,7 @@ nav:
- widgets/services/photoprism.md - widgets/services/photoprism.md
- widgets/services/pialert.md - widgets/services/pialert.md
- widgets/services/pihole.md - widgets/services/pihole.md
- widgets/services/plantit.md
- widgets/services/plex-tautulli.md - widgets/services/plex-tautulli.md
- widgets/services/plex.md - widgets/services/plex.md
- widgets/services/portainer.md - widgets/services/portainer.md
@@ -122,6 +126,7 @@ nav:
- widgets/services/scrutiny.md - widgets/services/scrutiny.md
- widgets/services/sonarr.md - widgets/services/sonarr.md
- widgets/services/speedtest-tracker.md - widgets/services/speedtest-tracker.md
- widgets/services/stash.md
- widgets/services/syncthing-relay-server.md - widgets/services/syncthing-relay-server.md
- widgets/services/tailscale.md - widgets/services/tailscale.md
- widgets/services/tdarr.md - widgets/services/tdarr.md

101
package-lock.json generated
View File

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

View File

@@ -33,10 +33,10 @@
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-i18next": "^11.18.6", "react-i18next": "^11.18.6",
"react-icons": "^4.12.0", "react-icons": "^4.12.0",
"recharts": "^2.11.0", "recharts": "^2.12.2",
"rrule": "^2.8.1", "rrule": "^2.8.1",
"swr": "^1.3.0", "swr": "^1.3.0",
"systeminformation": "^5.21.24", "systeminformation": "^5.22.0",
"tough-cookie": "^4.1.3", "tough-cookie": "^4.1.3",
"urbackup-server-api": "^0.8.9", "urbackup-server-api": "^0.8.9",
"winston": "^3.11.0", "winston": "^3.11.0",
@@ -45,7 +45,7 @@
"devDependencies": { "devDependencies": {
"@tailwindcss/forms": "^0.5.7", "@tailwindcss/forms": "^0.5.7",
"autoprefixer": "^10.4.17", "autoprefixer": "^10.4.17",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^12.3.4", "eslint-config-next": "^12.3.4",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
@@ -54,8 +54,8 @@
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.33.2", "eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.33", "postcss": "^8.4.35",
"prettier": "^3.2.4", "prettier": "^3.2.5",
"tailwind-scrollbar": "^3.0.5", "tailwind-scrollbar": "^3.0.5",
"tailwindcss": "^3.4.1", "tailwindcss": "^3.4.1",
"typescript": "^4.9.5" "typescript": "^4.9.5"

222
pnpm-lock.yaml generated
View File

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

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Liedjies" "songs": "Liedjies"
}, },
"esphome": {
"offline": "Vanlyn",
"online": "Aanlyn",
"total": "Totaal",
"unknown": "Onbekend"
},
"evcc": { "evcc": {
"pv_power": "Produksie", "pv_power": "Produksie",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Soek", "search": "Soek",
"custom": "Pasgemaak", "custom": "Pasgemaak",
"visit": "Besoek", "visit": "Besoek",
"url": "URL" "url": "URL",
"searchsuggestion": "Voorstelling"
}, },
"wmo": { "wmo": {
"0-day": "Sonnig", "0-day": "Sonnig",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanale", "channels": "Kanale",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Kanaal",
"channelNetwork": "Netwerk",
"signalStrength": "Sterkte",
"signalQuality": "Kwaliteit",
"symbolQuality": "Kwaliteit",
"networkRate": "Bistempo",
"clientIP": "Kliënt"
}, },
"scrutiny": { "scrutiny": {
"passed": "Geslaag", "passed": "Geslaag",
@@ -694,6 +709,11 @@
"targets_down": "Teikens Af", "targets_down": "Teikens Af",
"targets_total": "Totale Teikens" "targets_total": "Totale Teikens"
}, },
"gatus": {
"up": "Werwe Op",
"down": "Werwe Af",
"uptime": "Optyd"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Vandag", "gross_percent_today": "Vandag",
"gross_percent_1y": "Een jaar", "gross_percent_1y": "Een jaar",
@@ -775,6 +795,14 @@
"passed": "Geslaag", "passed": "Geslaag",
"failed": "Misluk" "failed": "Misluk"
}, },
"openwrt": {
"uptime": "Optyd",
"cpuLoad": "SVE-lading gemiddelde (5m)",
"up": "Op",
"down": "Af",
"bytesTx": "Oorgedra",
"bytesRx": "Ontvang"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Optyd", "uptime": "Optyd",
@@ -797,11 +825,43 @@
"noEventsFound": "Geen gebeure gevind nie" "noEventsFound": "Geen gebeure gevind nie"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platform",
"totalRoms": "Total ROMs" "totalRoms": "Totale ROMs"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Waarskuwings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "حلقات", "episodes": "حلقات",
"songs": "أغاني" "songs": "أغاني"
}, },
"esphome": {
"offline": "غير متصل",
"online": "مُتّصل",
"total": "المجموع",
"unknown": "مجهول"
},
"evcc": { "evcc": {
"pv_power": "إنتاج", "pv_power": "إنتاج",
"battery_soc": "البطارية", "battery_soc": "البطارية",
@@ -419,7 +425,8 @@
"search": "البحث", "search": "البحث",
"custom": "مُخصّص", "custom": "مُخصّص",
"visit": "زيارة", "visit": "زيارة",
"url": "الرابط" "url": "الرابط",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "مشمس", "0-day": "مشمس",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "القنوات", "channels": "القنوات",
"hd": "جودة HD" "hd": "جودة HD",
"tunerCount": "Tuners",
"channelNumber": "القناة",
"channelNetwork": "الشبكة",
"signalStrength": "القوة",
"signalQuality": "الجودة",
"symbolQuality": "الجودة",
"networkRate": "معدل البت",
"clientIP": "العميل"
}, },
"scrutiny": { "scrutiny": {
"passed": "إجتاز", "passed": "إجتاز",
@@ -694,6 +709,11 @@
"targets_down": "الأهداف لا تعمل", "targets_down": "الأهداف لا تعمل",
"targets_total": "الأهداف الإجمالية" "targets_total": "الأهداف الإجمالية"
}, },
"gatus": {
"up": "المواقع تعمل",
"down": "مواقع لا تعمل",
"uptime": "مدة التشغيل"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "اليوم", "gross_percent_today": "اليوم",
"gross_percent_1y": "سنة", "gross_percent_1y": "سنة",
@@ -775,6 +795,14 @@
"passed": "إجتاز", "passed": "إجتاز",
"failed": "فشل" "failed": "فشل"
}, },
"openwrt": {
"uptime": "مدة التشغيل",
"cpuLoad": "متوسط حمولة المعالج (5دق)",
"up": "يعمل",
"down": "لا يعمل",
"bytesTx": "مرسلة",
"bytesRx": "تم الإستلام"
},
"uptimerobot": { "uptimerobot": {
"status": "الحالة", "status": "الحالة",
"uptime": "مدة التشغيل", "uptime": "مدة التشغيل",
@@ -797,11 +825,43 @@
"noEventsFound": "لم يتم العثور على أحداث" "noEventsFound": "لم يتم العثور على أحداث"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "المِنصات",
"totalRoms": "Total ROMs" "totalRoms": "مجموع الروومات"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "تحذيرات",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Изключен",
"online": "Online",
"total": "Общо",
"unknown": "Неизв."
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Търсене", "search": "Търсене",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Слънчево", "0-day": "Слънчево",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Канали", "channels": "Канали",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Статус", "status": "Статус",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Fora de línia",
"online": "Online",
"total": "Total",
"unknown": "Desconegut"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Assolellat", "0-day": "Assolellat",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Canals", "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": { "scrutiny": {
"passed": "Aprobat", "passed": "Aprobat",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Temps actiu"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Aprobat", "passed": "Aprobat",
"failed": "Error" "failed": "Error"
}, },
"openwrt": {
"uptime": "Temps actiu",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Estat", "status": "Estat",
"uptime": "Temps actiu", "uptime": "Temps actiu",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,7 +14,7 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "měs.",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m", "minutes": "m",
@@ -39,7 +39,7 @@
"placeholder": "Hledat…" "placeholder": "Hledat…"
}, },
"resources": { "resources": {
"cpu": "Procesor", "cpu": "CPU",
"mem": "RAM", "mem": "RAM",
"total": "Celkem", "total": "Celkem",
"free": "Volné", "free": "Volné",
@@ -70,7 +70,7 @@
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "RAM", "mem": "RAM",
"cpu": "Procesor", "cpu": "CPU",
"running": "Běží", "running": "Běží",
"offline": "Offline", "offline": "Offline",
"error": "Chyba", "error": "Chyba",
@@ -87,15 +87,15 @@
"ping": "Odezva", "ping": "Odezva",
"down": "Down", "down": "Down",
"up": "Up", "up": "Up",
"not_available": "Not Available" "not_available": "Není k dispozici"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "Stav HTTP",
"error": "Chyba", "error": "Chyba",
"response": "Response", "response": "Odpověď",
"down": "Down", "down": "Down",
"up": "Up", "up": "Up",
"not_available": "Not Available" "not_available": "Není k dispozici"
}, },
"emby": { "emby": {
"playing": "Přehrává", "playing": "Přehrává",
@@ -107,12 +107,18 @@
"episodes": "Epizody", "episodes": "Epizody",
"songs": "Skladby" "songs": "Skladby"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Celkem",
"unknown": "Neznámý"
},
"evcc": { "evcc": {
"pv_power": "Produkce", "pv_power": "Produkce",
"battery_soc": "Battery", "battery_soc": "Baterie",
"grid_power": "Grid", "grid_power": "Mřížka",
"home_power": "Consumption", "home_power": "Spotřeba",
"charge_power": "Charger", "charge_power": "Nabíječka",
"watt_hour": "Wh" "watt_hour": "Wh"
}, },
"flood": { "flood": {
@@ -127,20 +133,20 @@
}, },
"fritzbox": { "fritzbox": {
"connectionStatus": "Stav", "connectionStatus": "Stav",
"connectionStatusUnconfigured": "Unconfigured", "connectionStatusUnconfigured": "Nenastaveno",
"connectionStatusConnecting": "Connecting", "connectionStatusConnecting": "Připojuji",
"connectionStatusAuthenticating": "Authenticating", "connectionStatusAuthenticating": "Ověřování",
"connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusPendingDisconnect": "Čeká na odpojení",
"connectionStatusDisconnecting": "Disconnecting", "connectionStatusDisconnecting": "Odpojování",
"connectionStatusDisconnected": "Disconnected", "connectionStatusDisconnected": "Odpojeno",
"connectionStatusConnected": "Connected", "connectionStatusConnected": "Připojeno",
"uptime": "Doba spuštění", "uptime": "Doba spuštění",
"maxDown": "Max. Down", "maxDown": "Max. Down",
"maxUp": "Max. Up", "maxUp": "Max. Up",
"down": "Down", "down": "Down",
"up": "Up", "up": "Up",
"received": "Received", "received": "Přijaté",
"sent": "Sent", "sent": "Odeslané",
"externalIPAddress": "Ext. IP" "externalIPAddress": "Ext. IP"
}, },
"caddy": { "caddy": {
@@ -163,7 +169,7 @@
"transcoding": "Překódovávání", "transcoding": "Překódovávání",
"bitrate": "Přenosová rychlost", "bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream", "no_active": "Žádný aktivní stream",
"plex_connection_error": "Check Plex Connection" "plex_connection_error": "Zkontrolujte připojení Plexu"
}, },
"omada": { "omada": {
"connectedAp": "Připojené APs", "connectedAp": "Připojené APs",
@@ -210,8 +216,8 @@
"memUsage": "Využití paměti", "memUsage": "Využití paměti",
"systemTempC": "Teplota systému", "systemTempC": "Teplota systému",
"poolUsage": "Využití fondu", "poolUsage": "Využití fondu",
"volumeUsage": "Volume Usage", "volumeUsage": "Využití svazku",
"invalid": "Invalid" "invalid": "Neplatné"
}, },
"deluge": { "deluge": {
"download": "Stahování", "download": "Stahování",
@@ -243,7 +249,7 @@
"lidarr": { "lidarr": {
"wanted": "Hledané", "wanted": "Hledané",
"queued": "Ve frontě", "queued": "Ve frontě",
"artists": "Artists" "artists": "Interpreti"
}, },
"readarr": { "readarr": {
"wanted": "Hledané", "wanted": "Hledané",
@@ -272,8 +278,8 @@
}, },
"pialert": { "pialert": {
"total": "Celkem", "total": "Celkem",
"connected": "Connected", "connected": "Připojeno",
"new_devices": "New Devices", "new_devices": "Nová zařízení",
"down_alerts": "Down Alerts" "down_alerts": "Down Alerts"
}, },
"pihole": { "pihole": {
@@ -389,17 +395,17 @@
}, },
"proxmox": { "proxmox": {
"mem": "RAM", "mem": "RAM",
"cpu": "Procesor", "cpu": "CPU",
"lxc": "LXC", "lxc": "LXC",
"vms": "Virtuální Stroje" "vms": "Virtuální Stroje"
}, },
"glances": { "glances": {
"cpu": "Procesor", "cpu": "CPU",
"load": "Zatížení", "load": "Zatížení",
"wait": "Počkejte prosím", "wait": "Počkejte prosím",
"temp": "TEPLOTA", "temp": "TEPLOTA",
"_temp": "Temp", "_temp": "Temp",
"warn": "Warn", "warn": "Varováni",
"uptime": "BĚŽÍ", "uptime": "BĚŽÍ",
"total": "Celkem", "total": "Celkem",
"free": "Volné", "free": "Volné",
@@ -419,7 +425,8 @@
"search": "Hledat", "search": "Hledat",
"custom": "Vlastní", "custom": "Vlastní",
"visit": "Navštivte", "visit": "Navštivte",
"url": "Odkaz" "url": "Odkaz",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Slunečno", "0-day": "Slunečno",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanály", "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": { "scrutiny": {
"passed": "Úspěšné", "passed": "Úspěšné",
@@ -610,7 +625,7 @@
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datové úložiště", "datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Neúspěšné úlohy 24h", "failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "Procesor", "cpu_usage": "CPU",
"memory_usage": "Paměť" "memory_usage": "Paměť"
}, },
"immich": { "immich": {
@@ -694,6 +709,11 @@
"targets_down": "Cíle vypnuté", "targets_down": "Cíle vypnuté",
"targets_total": "Cíle celkem" "targets_total": "Cíle celkem"
}, },
"gatus": {
"up": "Stránky Up",
"down": "Stránky Down",
"uptime": "Doba spuštění"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "Jeden rok", "gross_percent_1y": "Jeden rok",
@@ -775,6 +795,14 @@
"passed": "Úspěšné", "passed": "Úspěšné",
"failed": "Selhalo" "failed": "Selhalo"
}, },
"openwrt": {
"uptime": "Doba spuštění",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Přijaté"
},
"uptimerobot": { "uptimerobot": {
"status": "Stav", "status": "Stav",
"uptime": "Doba spuštění", "uptime": "Doba spuštění",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,9 +14,9 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "mnd",
"days": "d", "days": "d",
"hours": "h", "hours": "t",
"minutes": "m", "minutes": "m",
"seconds": "s" "seconds": "s"
}, },
@@ -90,7 +90,7 @@
"not_available": "Ikke tilgængelig" "not_available": "Ikke tilgængelig"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "HTTP-status",
"error": "Fejl", "error": "Fejl",
"response": "Response", "response": "Response",
"down": "Ned", "down": "Ned",
@@ -107,6 +107,12 @@
"episodes": "Episoder", "episodes": "Episoder",
"songs": "Sange" "songs": "Sange"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Ukendt"
},
"evcc": { "evcc": {
"pv_power": "Produktion", "pv_power": "Produktion",
"battery_soc": "Batteri", "battery_soc": "Batteri",
@@ -139,9 +145,9 @@
"maxUp": "Max. Up", "maxUp": "Max. Up",
"down": "Ned", "down": "Ned",
"up": "Op", "up": "Op",
"received": "Received", "received": "Modtaget",
"sent": "Sent", "sent": "Sendt",
"externalIPAddress": "Ext. IP" "externalIPAddress": "Ekstern IP"
}, },
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
@@ -405,7 +411,7 @@
"free": "Fri", "free": "Fri",
"used": "Brugt", "used": "Brugt",
"days": "d", "days": "d",
"hours": "h", "hours": "t",
"crit": "Crit", "crit": "Crit",
"read": "Læst", "read": "Læst",
"write": "Skriv", "write": "Skriv",
@@ -419,7 +425,8 @@
"search": "Søg", "search": "Søg",
"custom": "Brugerdefinerede", "custom": "Brugerdefinerede",
"visit": "Besøg", "visit": "Besøg",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Solrig", "0-day": "Solrig",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanaler", "channels": "Kanaler",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Bestået", "passed": "Bestået",
@@ -547,12 +562,12 @@
"total": "Total" "total": "Total"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Batteriniveau",
"ups_load": "UPS Load", "ups_load": "UPS Load",
"ups_status": "UPS Status", "ups_status": "UPS Status",
"online": "Online", "online": "Online",
"on_battery": "On Battery", "on_battery": "På batteri",
"low_battery": "Low Battery" "low_battery": "Lavt batteriniveau"
}, },
"nextdns": { "nextdns": {
"wait": "Vent venligst", "wait": "Vent venligst",
@@ -694,6 +709,11 @@
"targets_down": "Mål Nede", "targets_down": "Mål Nede",
"targets_total": "Totale Mål" "targets_total": "Totale Mål"
}, },
"gatus": {
"up": "Sider Oppe",
"down": "Sider Nede",
"uptime": "Oppetid"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "I dag", "gross_percent_today": "I dag",
"gross_percent_1y": "Et År", "gross_percent_1y": "Et År",
@@ -775,6 +795,14 @@
"passed": "Bestået", "passed": "Bestået",
"failed": "Fejlet" "failed": "Fejlet"
}, },
"openwrt": {
"uptime": "Oppetid",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Op",
"down": "Ned",
"bytesTx": "Transmitted",
"bytesRx": "Modtaget"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Oppetid", "uptime": "Oppetid",
@@ -797,11 +825,43 @@
"noEventsFound": "No events found" "noEventsFound": "No events found"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platforme",
"totalRoms": "Total ROMs" "totalRoms": "Total ROMs"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Advarsler",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episoden", "episodes": "Episoden",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Gesamt",
"unknown": "Unbekannt"
},
"evcc": { "evcc": {
"pv_power": "Erzeugung", "pv_power": "Erzeugung",
"battery_soc": "Batterie", "battery_soc": "Batterie",
@@ -379,7 +385,7 @@
"down": "Offline" "down": "Offline"
}, },
"miniflux": { "miniflux": {
"read": "Lesen", "read": "Gelesen",
"unread": "Ungelesen" "unread": "Ungelesen"
}, },
"authentik": { "authentik": {
@@ -407,7 +413,7 @@
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"crit": "Krit", "crit": "Krit",
"read": "Lesen", "read": "Gelesen",
"write": "Schreiben", "write": "Schreiben",
"gpu": "GPU", "gpu": "GPU",
"mem": "RAM", "mem": "RAM",
@@ -536,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanäle", "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": { "scrutiny": {
"passed": "Bestanden", "passed": "Bestanden",
@@ -695,6 +709,11 @@
"targets_down": "Ziele Down", "targets_down": "Ziele Down",
"targets_total": "Alle Ziele" "targets_total": "Alle Ziele"
}, },
"gatus": {
"up": "Seiten verfügbar",
"down": "Seiten nicht verfügbar",
"uptime": "Betriebszeit"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Heute", "gross_percent_today": "Heute",
"gross_percent_1y": "Ein Jahr", "gross_percent_1y": "Ein Jahr",
@@ -776,6 +795,14 @@
"passed": "Bestanden", "passed": "Bestanden",
"failed": "Fehlgeschlagen" "failed": "Fehlgeschlagen"
}, },
"openwrt": {
"uptime": "Betriebszeit",
"cpuLoad": "CPU-Last (5 min-Durchschnitt)",
"up": "Senden",
"down": "Empfangen",
"bytesTx": "Übertragen",
"bytesRx": "Empfangen"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Betriebszeit", "uptime": "Betriebszeit",
@@ -798,11 +825,43 @@
"noEventsFound": "Keine Termine gefunden" "noEventsFound": "Keine Termine gefunden"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Plattformen",
"totalRoms": "Total ROMs" "totalRoms": "ROMs gesamt"
}, },
"netdata": { "netdata": {
"warnings": "Warnungen", "warnings": "Warnungen",
"criticals": "Kritisch" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Επεισόδια", "episodes": "Επεισόδια",
"songs": "Τραγούδια" "songs": "Τραγούδια"
}, },
"esphome": {
"offline": "Εκτός σύνδεσης",
"online": "Συνδεδεμένοι",
"total": "Σύνολο",
"unknown": "Άγνωστο"
},
"evcc": { "evcc": {
"pv_power": "Παραγωγή", "pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία", "battery_soc": "Μπαταρία",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Λιακάδα", "0-day": "Λιακάδα",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Ρυθμός bit",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Χρόνος Λειτουργίας"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Σήμερα", "gross_percent_today": "Σήμερα",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Χρόνος Λειτουργίας",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Κατάσταση", "status": "Κατάσταση",
"uptime": "Χρόνος Λειτουργίας", "uptime": "Χρόνος Λειτουργίας",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -825,5 +831,45 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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,12 @@
"episodes": "Epizodoj", "episodes": "Epizodoj",
"songs": "Kantoj" "songs": "Kantoj"
}, },
"esphome": {
"offline": "Malkonekta",
"online": "Online",
"total": "Totalo",
"unknown": "Nekonata"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Suna", "0-day": "Suna",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanaloj", "channels": "Kanaloj",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrapido",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Stato", "status": "Stato",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodios", "episodes": "Episodios",
"songs": "Canciones" "songs": "Canciones"
}, },
"esphome": {
"offline": "Desconectado",
"online": "En línea",
"total": "Total",
"unknown": "Desconocido"
},
"evcc": { "evcc": {
"pv_power": "Producción", "pv_power": "Producción",
"battery_soc": "Batería", "battery_soc": "Batería",
@@ -419,7 +425,8 @@
"search": "Buscar", "search": "Buscar",
"custom": "Personalizado", "custom": "Personalizado",
"visit": "Visitar", "visit": "Visitar",
"url": "Enlace" "url": "Enlace",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Soleado", "0-day": "Soleado",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Canales", "channels": "Canales",
"hd": "Alta definición" "hd": "Alta definición",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Tasa de bits",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Aprobado", "passed": "Aprobado",
@@ -694,6 +709,11 @@
"targets_down": "Objetivos inactivos", "targets_down": "Objetivos inactivos",
"targets_total": "Objetivos totales" "targets_total": "Objetivos totales"
}, },
"gatus": {
"up": "Sitios activos",
"down": "Sitios inactivos",
"uptime": "Tiempo activo"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Hoy", "gross_percent_today": "Hoy",
"gross_percent_1y": "Un año", "gross_percent_1y": "Un año",
@@ -775,6 +795,14 @@
"passed": "Aprobado", "passed": "Aprobado",
"failed": "Fallido" "failed": "Fallido"
}, },
"openwrt": {
"uptime": "Tiempo activo",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Activo",
"down": "Inactivo",
"bytesTx": "Transmitted",
"bytesRx": "Recibido"
},
"uptimerobot": { "uptimerobot": {
"status": "Estado", "status": "Estado",
"uptime": "Tiempo activo", "uptime": "Tiempo activo",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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": "Images",
"imageSize": "Images Size",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"movies": "Películas",
"tags": "Etiquetas",
"oCount": "O Count"
},
"tandoor": {
"users": "Usuarios",
"recipes": "Recetas",
"keywords": "Keywords"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Abestiak" "songs": "Abestiak"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Guztira",
"unknown": "Ezezaguna"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bit-tasa",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Yhteensä",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bittinopeus",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Tila", "status": "Tila",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -25,7 +25,7 @@
"api_error": "Erreur API", "api_error": "Erreur API",
"information": "Informations", "information": "Informations",
"status": "Statut", "status": "Statut",
"url": "Url", "url": "URL",
"raw_error": "Erreur brute", "raw_error": "Erreur brute",
"response_data": "Données de réponse" "response_data": "Données de réponse"
}, },
@@ -39,7 +39,7 @@
"placeholder": "Recherche…" "placeholder": "Recherche…"
}, },
"resources": { "resources": {
"cpu": "Cpu", "cpu": "CPU",
"mem": "Mém", "mem": "Mém",
"total": "Total", "total": "Total",
"free": "Libre", "free": "Libre",
@@ -70,7 +70,7 @@
"rx": "Rx", "rx": "Rx",
"tx": "Tx", "tx": "Tx",
"mem": "Mém", "mem": "Mém",
"cpu": "Cpu", "cpu": "CPU",
"running": "Démarré", "running": "Démarré",
"offline": "Hors ligne", "offline": "Hors ligne",
"error": "Erreur", "error": "Erreur",
@@ -107,6 +107,12 @@
"episodes": "Épisodes", "episodes": "Épisodes",
"songs": "Musique" "songs": "Musique"
}, },
"esphome": {
"offline": "Hors ligne",
"online": "En ligne",
"total": "Total",
"unknown": "Inconnu"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Batterie", "battery_soc": "Batterie",
@@ -150,7 +156,7 @@
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observé", "totalObserved": "Total Observé",
"diffsDetected": "Diffs Detectées" "diffsDetected": "Diffs tectées"
}, },
"channelsdvrserver": { "channelsdvrserver": {
"shows": "Affichages", "shows": "Affichages",
@@ -166,7 +172,7 @@
"plex_connection_error": "Vérifier la connexion à Plex" "plex_connection_error": "Vérifier la connexion à Plex"
}, },
"omada": { "omada": {
"connectedAp": "APs connectées", "connectedAp": "AP connectés",
"activeUser": "Équipts actifs", "activeUser": "Équipts actifs",
"alerts": "Alertes", "alerts": "Alertes",
"connectedGateway": "Passerelles connectées", "connectedGateway": "Passerelles connectées",
@@ -389,12 +395,12 @@
}, },
"proxmox": { "proxmox": {
"mem": "Mém", "mem": "Mém",
"cpu": "Cpu", "cpu": "CPU",
"lxc": "LxC", "lxc": "LxC",
"vms": "VMs" "vms": "VMs"
}, },
"glances": { "glances": {
"cpu": "Cpu", "cpu": "CPU",
"load": "Charge", "load": "Charge",
"wait": "Veuillez patienter", "wait": "Veuillez patienter",
"temp": "Temp", "temp": "Temp",
@@ -419,7 +425,8 @@
"search": "Recherche", "search": "Recherche",
"custom": "Personnalisé", "custom": "Personnalisé",
"visit": "Aller vers", "visit": "Aller vers",
"url": "Url" "url": "URL",
"searchsuggestion": "Suggestions"
}, },
"wmo": { "wmo": {
"0-day": "Ensoleillé", "0-day": "Ensoleillé",
@@ -529,13 +536,21 @@
"total": "Total" "total": "Total"
}, },
"gluetun": { "gluetun": {
"public_ip": "IP Publique", "public_ip": "IP publique",
"region": "Région", "region": "Région",
"country": "Pays" "country": "Pays"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Chaînes", "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": { "scrutiny": {
"passed": "Réussi", "passed": "Réussi",
@@ -547,11 +562,11 @@
"total": "Total" "total": "Total"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Charge Batterie",
"ups_load": "Charge de l'UPS", "ups_load": "Charge de l'UPS",
"ups_status": "État de l'UPS", "ups_status": "État de l'UPS",
"online": "En ligne", "online": "En ligne",
"on_battery": "On Battery", "on_battery": "Sur Batterie",
"low_battery": "Batterie Faible" "low_battery": "Batterie Faible"
}, },
"nextdns": { "nextdns": {
@@ -577,7 +592,7 @@
}, },
"opnsense": { "opnsense": {
"cpu": "Charge CPU", "cpu": "Charge CPU",
"memory": "Mém. Utilisée", "memory": "Mém. utilisée",
"wanUpload": "WAN Envoi", "wanUpload": "WAN Envoi",
"wanDownload": "WAN Récep." "wanDownload": "WAN Récep."
}, },
@@ -610,7 +625,7 @@
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Datastore",
"failed_tasks_24h": "Tâches échouées 24h", "failed_tasks_24h": "Tâches échouées 24h",
"cpu_usage": "Cpu", "cpu_usage": "CPU",
"memory_usage": "Mémoire" "memory_usage": "Mémoire"
}, },
"immich": { "immich": {
@@ -633,7 +648,7 @@
"categories": "Catégories" "categories": "Catégories"
}, },
"komga": { "komga": {
"libraries": "Librairies", "libraries": "Bibliothèques",
"series": "Séries TV", "series": "Séries TV",
"books": "Livres" "books": "Livres"
}, },
@@ -666,7 +681,7 @@
"alertstriggered": "Alertes déclenchées" "alertstriggered": "Alertes déclenchées"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Charge Cpu", "cpuload": "Charge CPU",
"memoryusage": "Utilisation Mémoire", "memoryusage": "Utilisation Mémoire",
"freespace": "Libre", "freespace": "Libre",
"activeusers": "Utilisateurs Actifs", "activeusers": "Utilisateurs Actifs",
@@ -694,6 +709,11 @@
"targets_down": "Down", "targets_down": "Down",
"targets_total": "Total" "targets_total": "Total"
}, },
"gatus": {
"up": "En ligne",
"down": "Hors ligne",
"uptime": "Démarré depuis"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Aujourd'hui", "gross_percent_today": "Aujourd'hui",
"gross_percent_1y": "Un an", "gross_percent_1y": "Un an",
@@ -775,6 +795,14 @@
"passed": "Réussi", "passed": "Réussi",
"failed": "Échoué" "failed": "Échoué"
}, },
"openwrt": {
"uptime": "Démarré depuis",
"cpuLoad": "Charge moyenne CPU (5 min)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmis",
"bytesRx": "Reçu"
},
"uptimerobot": { "uptimerobot": {
"status": "Statut", "status": "Statut",
"uptime": "Démarré depuis", "uptime": "Démarré depuis",
@@ -797,11 +825,43 @@
"noEventsFound": "Aucun événement trouvé" "noEventsFound": "Aucun événement trouvé"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Plateformes",
"totalRoms": "Total ROMs" "totalRoms": "Total des ROMs"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Avertissements",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "כבוי",
"online": "Online",
"total": "סה\"כ",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "סיביות",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "סטטוס", "status": "סטטוס",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

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

View File

@@ -14,18 +14,18 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "",
"days": "d", "days": "n",
"hours": "h", "hours": "ó",
"minutes": "m", "minutes": "p",
"seconds": "s" "seconds": "mp"
}, },
"widget": { "widget": {
"missing_type": "Hiányzó Widget Típus: {{type}}", "missing_type": "Hiányzó Widget Típus: {{type}}",
"api_error": "API Hiba", "api_error": "API Hiba",
"information": "Információ", "information": "Információ",
"status": "Státusz", "status": "Státusz",
"url": "URL", "url": "LINK",
"raw_error": "Nyers hiba", "raw_error": "Nyers hiba",
"response_data": "Válaszadatok" "response_data": "Válaszadatok"
}, },
@@ -40,12 +40,12 @@
}, },
"resources": { "resources": {
"cpu": "Processzor", "cpu": "Processzor",
"mem": "MEM", "mem": "RAM",
"total": "Összes", "total": "Összes",
"free": "Szabad", "free": "Szabad",
"used": "Használt", "used": "Használt",
"load": "Terhelés", "load": "Terhelés",
"temp": "TEMP", "temp": "",
"max": "Max", "max": "Max",
"uptime": "FUT" "uptime": "FUT"
}, },
@@ -69,10 +69,10 @@
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "RAM",
"cpu": "Processzor", "cpu": "Processzor",
"running": "Futó", "running": "Futó",
"offline": "Offline", "offline": "Nem elérhető",
"error": "Hiba", "error": "Hiba",
"unknown": "Ismeretlen", "unknown": "Ismeretlen",
"healthy": "Egészséges", "healthy": "Egészséges",
@@ -107,6 +107,12 @@
"episodes": "Epizód", "episodes": "Epizód",
"songs": "Zeneszám" "songs": "Zeneszám"
}, },
"esphome": {
"offline": "Nem elérhető",
"online": "Csatlakozva",
"total": "Összes",
"unknown": "Ismeretlen"
},
"evcc": { "evcc": {
"pv_power": "Termelés", "pv_power": "Termelés",
"battery_soc": "Akkumulátor", "battery_soc": "Akkumulátor",
@@ -118,8 +124,8 @@
"flood": { "flood": {
"download": "Letöltés", "download": "Letöltés",
"upload": "Feltöltés", "upload": "Feltöltés",
"leech": "Leech", "leech": "Letöltés",
"seed": "Seed" "seed": "Feltöltés"
}, },
"freshrss": { "freshrss": {
"subscriptions": "Előfizetések", "subscriptions": "Előfizetések",
@@ -135,8 +141,8 @@
"connectionStatusDisconnected": "Kapcsolat bontva", "connectionStatusDisconnected": "Kapcsolat bontva",
"connectionStatusConnected": "Csatlakoztatott", "connectionStatusConnected": "Csatlakoztatott",
"uptime": "Üzemidő", "uptime": "Üzemidő",
"maxDown": "Max. Down", "maxDown": "Max let.",
"maxUp": "Max. Up", "maxUp": "Max felt.",
"down": "Le", "down": "Le",
"up": "Fel", "up": "Fel",
"received": "Fogadott", "received": "Fogadott",
@@ -196,14 +202,14 @@
"transmission": { "transmission": {
"download": "Letöltés", "download": "Letöltés",
"upload": "Feltöltés", "upload": "Feltöltés",
"leech": "Leech", "leech": "Letöltés",
"seed": "Seed" "seed": "Feltöltés"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Letöltés", "download": "Letöltés",
"upload": "Feltöltés", "upload": "Feltöltés",
"leech": "Leech", "leech": "Letöltés",
"seed": "Seed" "seed": "Feltöltés"
}, },
"qnap": { "qnap": {
"cpuUsage": "Processzor Használat", "cpuUsage": "Processzor Használat",
@@ -216,14 +222,14 @@
"deluge": { "deluge": {
"download": "Letöltés", "download": "Letöltés",
"upload": "Feltöltés", "upload": "Feltöltés",
"leech": "Leech", "leech": "Letöltés",
"seed": "Seed" "seed": "Feltöltés"
}, },
"downloadstation": { "downloadstation": {
"download": "Letöltés", "download": "Letöltés",
"upload": "Feltöltés", "upload": "Feltöltés",
"leech": "Leech", "leech": "Letöltés",
"seed": "Seed" "seed": "Feltöltés"
}, },
"sonarr": { "sonarr": {
"wanted": "Keresett", "wanted": "Keresett",
@@ -304,12 +310,12 @@
"never": "Soha", "never": "Soha",
"last_seen": "Utoljára látott", "last_seen": "Utoljára látott",
"now": "Most", "now": "Most",
"years": "{{number}}y", "years": "{{number}}év",
"weeks": "{{number}}w", "weeks": "{{number}}h",
"days": "{{number}}d", "days": "{{number}}n",
"hours": "{{number}}h", "hours": "{{number}}ó",
"minutes": "{{number}}m", "minutes": "{{number}}p",
"seconds": "{{number}}s", "seconds": "{{number}}mp",
"ago": "{{value}} Ezelőtt" "ago": "{{value}} Ezelőtt"
}, },
"tdarr": { "tdarr": {
@@ -376,7 +382,7 @@
"version": "Verzió", "version": "Verzió",
"status": "Státusz", "status": "Státusz",
"up": "Csatlakozva", "up": "Csatlakozva",
"down": "Offline" "down": "Nem elérhető"
}, },
"miniflux": { "miniflux": {
"read": "Olvasott", "read": "Olvasott",
@@ -388,7 +394,7 @@
"failedLoginsLast24H": "Sikertelen bejelentkezések (24h)" "failedLoginsLast24H": "Sikertelen bejelentkezések (24h)"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "RAM",
"cpu": "Processzor", "cpu": "Processzor",
"lxc": "LXC", "lxc": "LXC",
"vms": "VM-ek" "vms": "VM-ek"
@@ -397,21 +403,21 @@
"cpu": "Processzor", "cpu": "Processzor",
"load": "Terhelés", "load": "Terhelés",
"wait": "Kérjük várjon", "wait": "Kérjük várjon",
"temp": "TEMP", "temp": "",
"_temp": "Hőmérséklet", "_temp": "Hőmérséklet",
"warn": "Figyelmeztet", "warn": "Figyelmeztet",
"uptime": "FUT", "uptime": "FUT",
"total": "Összes", "total": "Összes",
"free": "Szabad", "free": "Szabad",
"used": "Használt", "used": "Használt",
"days": "d", "days": "n",
"hours": "h", "hours": "ó",
"crit": "Crit", "crit": "Kritikus",
"read": "Olvasott", "read": "Olvasott",
"write": "Írás", "write": "Írás",
"gpu": "GPU", "gpu": "GPU",
"mem": "Memória", "mem": "Memória",
"swap": "Swap" "swap": "Csere"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "Könyvjelző", "bookmark": "Könyvjelző",
@@ -419,7 +425,8 @@
"search": "Keresés", "search": "Keresés",
"custom": "Egyedi", "custom": "Egyedi",
"visit": "Megnéz", "visit": "Megnéz",
"url": "URL" "url": "LINK",
"searchsuggestion": "Javaslat"
}, },
"wmo": { "wmo": {
"0-day": "Napos", "0-day": "Napos",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Csatornák", "channels": "Csatornák",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitráta",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Megfelelt", "passed": "Megfelelt",
@@ -547,12 +562,12 @@
"total": "Összes" "total": "Összes"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Akku töltöttsége",
"ups_load": "UPS Load", "ups_load": "UPS terheltsége",
"ups_status": "UPS Status", "ups_status": "UPS állapot",
"online": "Csatlakozva", "online": "Csatlakozva",
"on_battery": "On Battery", "on_battery": "Akkuról",
"low_battery": "Low Battery" "low_battery": "Alacsony töltöttség"
}, },
"nextdns": { "nextdns": {
"wait": "Kérjük Várjon", "wait": "Kérjük Várjon",
@@ -570,10 +585,10 @@
"streams_xepg": "XEPG Csatornák" "streams_xepg": "XEPG Csatornák"
}, },
"opendtu": { "opendtu": {
"yieldDay": "Today", "yieldDay": "Ma",
"absolutePower": "Power", "absolutePower": "Energia",
"relativePower": "Power %", "relativePower": "Energia %",
"limit": "Limit" "limit": "Korlát"
}, },
"opnsense": { "opnsense": {
"cpu": "Processzor Terhelés", "cpu": "Processzor Terhelés",
@@ -624,13 +639,13 @@
"down": "Nem Elérhető Webhelyek", "down": "Nem Elérhető Webhelyek",
"uptime": "Üzemidő", "uptime": "Üzemidő",
"incident": "Incidens", "incident": "Incidens",
"m": "m" "m": "p"
}, },
"atsumeru": { "atsumeru": {
"series": "Sorozat", "series": "Sorozat",
"archives": "Archives", "archives": "Archívum",
"chapters": "Chapters", "chapters": "Fejezetek",
"categories": "Categories" "categories": "Kategóriák"
}, },
"komga": { "komga": {
"libraries": "Könyvtárak", "libraries": "Könyvtárak",
@@ -694,8 +709,13 @@
"targets_down": "Célpontok Állnak", "targets_down": "Célpontok Állnak",
"targets_total": "Összes Célpont" "targets_total": "Összes Célpont"
}, },
"gatus": {
"up": "Futó Webhelyek",
"down": "Nem Elérhető Webhelyek",
"uptime": "Üzemidő"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Ma",
"gross_percent_1y": "Egy év", "gross_percent_1y": "Egy év",
"gross_percent_max": "Mindig" "gross_percent_max": "Mindig"
}, },
@@ -716,8 +736,8 @@
}, },
"calibreweb": { "calibreweb": {
"books": "Könyvek", "books": "Könyvek",
"authors": "Authors", "authors": "Szerzők",
"categories": "Categories", "categories": "Kategóriák",
"series": "Sorozat" "series": "Sorozat"
}, },
"jdownloader": { "jdownloader": {
@@ -731,22 +751,22 @@
"totalFiles": "Fájlok" "totalFiles": "Fájlok"
}, },
"azuredevops": { "azuredevops": {
"result": "Result", "result": "Eredmény",
"status": "Státusz", "status": "Státusz",
"buildId": "Build ID", "buildId": "Gyártás ID",
"succeeded": "Succeeded", "succeeded": "Sikerült",
"notStarted": "Nem indult", "notStarted": "Nem indult",
"failed": "Sikertelen", "failed": "Sikertelen",
"canceled": "Megszakítva", "canceled": "Megszakítva",
"inProgress": "Folyamatban", "inProgress": "Folyamatban",
"totalPrs": "Total PRs", "totalPrs": "Minden PR",
"myPrs": "My PRs", "myPrs": "Saját PR-ek",
"approved": "Engedélyezett" "approved": "Engedélyezett"
}, },
"gamedig": { "gamedig": {
"status": "Státusz", "status": "Státusz",
"online": "Csatlakozva", "online": "Csatlakozva",
"offline": "Offline", "offline": "Nem elérhető",
"name": "Név", "name": "Név",
"map": "Térkép", "map": "Térkép",
"currentPlayers": "Jelenlegi játékosok", "currentPlayers": "Jelenlegi játékosok",
@@ -764,7 +784,7 @@
"mealie": { "mealie": {
"recipes": "Receptek", "recipes": "Receptek",
"users": "Felhasználók", "users": "Felhasználók",
"categories": "Categories", "categories": "Kategóriák",
"tags": "Címkék" "tags": "Címkék"
}, },
"openmediavault": { "openmediavault": {
@@ -775,33 +795,73 @@
"passed": "Megfelelt", "passed": "Megfelelt",
"failed": "Sikertelen" "failed": "Sikertelen"
}, },
"openwrt": {
"uptime": "Üzemidő",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Fel",
"down": "Le",
"bytesTx": "Transmitted",
"bytesRx": "Fogadott"
},
"uptimerobot": { "uptimerobot": {
"status": "Státusz", "status": "Státusz",
"uptime": "Üzemidő", "uptime": "Üzemidő",
"lastDown": "Last Downtime", "lastDown": "Utolsó leállás",
"downDuration": "Downtime Duration", "downDuration": "Leállás ideje",
"sitesUp": "Futó Webhelyek", "sitesUp": "Futó Webhelyek",
"sitesDown": "Nem Elérhető Webhelyek", "sitesDown": "Nem Elérhető Webhelyek",
"paused": "Szünetel", "paused": "Szünetel",
"notyetchecked": "Not Yet Checked", "notyetchecked": "Még nincs ellenőrizve",
"up": "Fel", "up": "Fel",
"seemsdown": "Seems Down", "seemsdown": "Elérhetetlennek tűnik",
"down": "Le", "down": "Le",
"unknown": "Ismeretlen" "unknown": "Ismeretlen"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "Mozikban",
"physicalRelease": "Physical release", "physicalRelease": "Fizikai kiadás",
"digitalRelease": "Digitális kiadás", "digitalRelease": "Digitális kiadás",
"noEventsToday": "Ezen a napon nincsenek események!", "noEventsToday": "Ezen a napon nincsenek események!",
"noEventsFound": "Nem található esemény" "noEventsFound": "Nem található esemény"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Felület",
"totalRoms": "Total ROMs" "totalRoms": "Minden ROM"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Figyelmeztetések",
"criticals": "Criticals" "criticals": "Kritikusok"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Fényképek",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problémák",
"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": "Címkék",
"oCount": "O Count"
},
"tandoor": {
"users": "Felhasználók",
"recipes": "Receptek",
"keywords": "Keywords"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -107,6 +107,12 @@
"episodes": "Episodi", "episodes": "Episodi",
"songs": "Canzoni" "songs": "Canzoni"
}, },
"esphome": {
"offline": "Non in linea",
"online": "Online",
"total": "Totale",
"unknown": "Sconosciuto"
},
"evcc": { "evcc": {
"pv_power": "Produzione", "pv_power": "Produzione",
"battery_soc": "Batteria", "battery_soc": "Batteria",
@@ -127,21 +133,21 @@
}, },
"fritzbox": { "fritzbox": {
"connectionStatus": "Stato", "connectionStatus": "Stato",
"connectionStatusUnconfigured": "Unconfigured", "connectionStatusUnconfigured": "Non configurato",
"connectionStatusConnecting": "Connecting", "connectionStatusConnecting": "Connessione in corso",
"connectionStatusAuthenticating": "Authenticating", "connectionStatusAuthenticating": "In fase di autenticazione",
"connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusPendingDisconnect": "In attesa di disconnessione",
"connectionStatusDisconnecting": "Disconnecting", "connectionStatusDisconnecting": "Disconnessione in corso",
"connectionStatusDisconnected": "Disconnected", "connectionStatusDisconnected": "Disconnesso",
"connectionStatusConnected": "Connesso", "connectionStatusConnected": "Connesso",
"uptime": "Tempo di attività", "uptime": "Tempo di attività",
"maxDown": "Max. Down", "maxDown": "Max. Down",
"maxUp": "Max. Up", "maxUp": "Max. Up",
"down": "Down", "down": "Down",
"up": "Up", "up": "Up",
"received": "Received", "received": "Ricevuti",
"sent": "Sent", "sent": "Inviati",
"externalIPAddress": "Ext. IP" "externalIPAddress": "IP Esterno"
}, },
"caddy": { "caddy": {
"upstreams": "Upstream", "upstreams": "Upstream",
@@ -419,7 +425,8 @@
"search": "Cerca", "search": "Cerca",
"custom": "Personalizzato", "custom": "Personalizzato",
"visit": "Visita", "visit": "Visita",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Soleggiato", "0-day": "Soleggiato",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Canali", "channels": "Canali",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passati", "passed": "Passati",
@@ -694,6 +709,11 @@
"targets_down": "Target Non Attivi", "targets_down": "Target Non Attivi",
"targets_total": "Targets Totali" "targets_total": "Targets Totali"
}, },
"gatus": {
"up": "Siti On",
"down": "Siti Down",
"uptime": "Tempo di attività"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Oggi", "gross_percent_today": "Oggi",
"gross_percent_1y": "Un anno", "gross_percent_1y": "Un anno",
@@ -775,6 +795,14 @@
"passed": "Passati", "passed": "Passati",
"failed": "Fallito" "failed": "Fallito"
}, },
"openwrt": {
"uptime": "Tempo di attività",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Ricevuti"
},
"uptimerobot": { "uptimerobot": {
"status": "Stato", "status": "Stato",
"uptime": "Tempo di attività", "uptime": "Tempo di attività",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -15,10 +15,10 @@
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "mo",
"days": "d", "days": "",
"hours": "h", "hours": "時間",
"minutes": "m", "minutes": "",
"seconds": "s" "seconds": ""
}, },
"widget": { "widget": {
"missing_type": "見つからないウィジェットタイプ: {{type}}", "missing_type": "見つからないウィジェットタイプ: {{type}}",
@@ -64,22 +64,22 @@
"up": "上へ", "up": "上へ",
"down": "下へ", "down": "下へ",
"wait": "お待ちください", "wait": "お待ちください",
"empty_data": "サブシステム状態不明" "empty_data": "サブシステム状態不明"
}, },
"docker": { "docker": {
"rx": "RX", "rx": "受信済み",
"tx": "TX", "tx": "送信済み",
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"running": "起動中", "running": "起動中",
"offline": "オフライン", "offline": "オフライン",
"error": "エラー", "error": "エラー",
"unknown": "不明", "unknown": "不明",
"healthy": "健全", "healthy": "正常",
"starting": "起動中", "starting": "起動中",
"unhealthy": "非健全", "unhealthy": "非健全",
"not_found": "不明", "not_found": "不明",
"exited": "終了", "exited": "停止しました",
"partial": "部分的" "partial": "部分的"
}, },
"ping": { "ping": {
@@ -90,7 +90,7 @@
"not_available": "利用できません。" "not_available": "利用できません。"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "HTTP ステータス",
"error": "エラー", "error": "エラー",
"response": "Response", "response": "Response",
"down": "下へ", "down": "下へ",
@@ -107,6 +107,12 @@
"episodes": "エピソード", "episodes": "エピソード",
"songs": "曲" "songs": "曲"
}, },
"esphome": {
"offline": "オフライン",
"online": "オンライン",
"total": "合計",
"unknown": "不明"
},
"evcc": { "evcc": {
"pv_power": "発電量", "pv_power": "発電量",
"battery_soc": "バッテリー", "battery_soc": "バッテリー",
@@ -139,8 +145,8 @@
"maxUp": "Max. Up", "maxUp": "Max. Up",
"down": "下へ", "down": "下へ",
"up": "上へ", "up": "上へ",
"received": "Received", "received": "受信済み",
"sent": "Sent", "sent": "送信済み",
"externalIPAddress": "Ext. IP" "externalIPAddress": "Ext. IP"
}, },
"caddy": { "caddy": {
@@ -404,8 +410,8 @@
"total": "合計", "total": "合計",
"free": "空き", "free": "空き",
"used": "使用", "used": "使用",
"days": "d", "days": "",
"hours": "h", "hours": "時間",
"crit": "クリティカル", "crit": "クリティカル",
"read": "既読", "read": "既読",
"write": "書き込み", "write": "書き込み",
@@ -419,7 +425,8 @@
"search": "検索", "search": "検索",
"custom": "カスタム", "custom": "カスタム",
"visit": "訪問", "visit": "訪問",
"url": "URL" "url": "URL",
"searchsuggestion": "提案"
}, },
"wmo": { "wmo": {
"0-day": "晴れ", "0-day": "晴れ",
@@ -523,7 +530,7 @@
"alerts": "アラート" "alerts": "アラート"
}, },
"pyload": { "pyload": {
"speed": "スピード", "speed": "速度",
"active": "アクティブ", "active": "アクティブ",
"queue": "キュー", "queue": "キュー",
"total": "合計" "total": "合計"
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "チャンネル", "channels": "チャンネル",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "チャンネル",
"channelNetwork": "ネットワーク",
"signalStrength": "強さ",
"signalQuality": "クオリティ",
"symbolQuality": "クオリティ",
"networkRate": "ビットレート",
"clientIP": "クライアント IP"
}, },
"scrutiny": { "scrutiny": {
"passed": "合格", "passed": "合格",
@@ -548,11 +563,11 @@
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Battery Charge",
"ups_load": "UPS Load", "ups_load": "UPS 負荷",
"ups_status": "UPS Status", "ups_status": "UPS 状態",
"online": "オンライン", "online": "オンライン",
"on_battery": "On Battery", "on_battery": "バッテリー稼働中",
"low_battery": "Low Battery" "low_battery": "バッテリー残量低下"
}, },
"nextdns": { "nextdns": {
"wait": "お待ちください", "wait": "お待ちください",
@@ -560,7 +575,7 @@
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU負荷", "cpuLoad": "CPU負荷",
"memoryUsed": "使用済みメモリ", "memoryUsed": "メモリ使用量",
"uptime": "稼働時間", "uptime": "稼働時間",
"numberOfLeases": "リース" "numberOfLeases": "リース"
}, },
@@ -623,8 +638,8 @@
"up": "サイトUp", "up": "サイトUp",
"down": "サイトDown", "down": "サイトDown",
"uptime": "稼働時間", "uptime": "稼働時間",
"incident": "インシデント", "incident": "事件",
"m": "m" "m": ""
}, },
"atsumeru": { "atsumeru": {
"series": "シリーズ", "series": "シリーズ",
@@ -694,6 +709,11 @@
"targets_down": "ターゲット Down", "targets_down": "ターゲット Down",
"targets_total": "ターゲット合計" "targets_total": "ターゲット合計"
}, },
"gatus": {
"up": "サイトUp",
"down": "サイトDown",
"uptime": "稼働時間"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "今日", "gross_percent_today": "今日",
"gross_percent_1y": "1年", "gross_percent_1y": "1年",
@@ -724,7 +744,7 @@
"downloadCount": "キュー", "downloadCount": "キュー",
"downloadBytesRemaining": "残り", "downloadBytesRemaining": "残り",
"downloadTotalBytes": "サイズ", "downloadTotalBytes": "サイズ",
"downloadSpeed": "スピード" "downloadSpeed": "速度"
}, },
"kavita": { "kavita": {
"seriesCount": "シリーズ", "seriesCount": "シリーズ",
@@ -775,11 +795,19 @@
"passed": "合格", "passed": "合格",
"failed": "失敗" "failed": "失敗"
}, },
"openwrt": {
"uptime": "稼働時間",
"cpuLoad": "CPU 平均負荷5 分)",
"up": "上へ",
"down": "下へ",
"bytesTx": "送信済み",
"bytesRx": "受信済み"
},
"uptimerobot": { "uptimerobot": {
"status": "状態", "status": "状態",
"uptime": "稼働時間", "uptime": "稼働時間",
"lastDown": "最後のダウンタイム", "lastDown": "最後のダウンタイム",
"downDuration": "ダウンタイム感覚", "downDuration": "ダウンタイム時間",
"sitesUp": "サイトUp", "sitesUp": "サイトUp",
"sitesDown": "サイトDown", "sitesDown": "サイトDown",
"paused": "一時停止中", "paused": "一時停止中",
@@ -793,15 +821,47 @@
"inCinemas": "映画館内", "inCinemas": "映画館内",
"physicalRelease": "物理的なリリース", "physicalRelease": "物理的なリリース",
"digitalRelease": "デジタル・リリース", "digitalRelease": "デジタル・リリース",
"noEventsToday": "No events for today!", "noEventsToday": "本日の予定なし",
"noEventsFound": "No events found" "noEventsFound": "予定が見つかりません"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platforms",
"totalRoms": "Total ROMs" "totalRoms": "Total ROMs"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "警告",
"criticals": "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": "タグ",
"oCount": "O Count"
},
"tandoor": {
"users": "ユーザ",
"recipes": "レシピ",
"keywords": "Keywords"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "에피소드", "episodes": "에피소드",
"songs": "음악" "songs": "음악"
}, },
"esphome": {
"offline": "중지",
"online": "Online",
"total": "총합",
"unknown": "알 수 없음"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "비트레이트",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "상태", "status": "상태",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Bezsaistē",
"online": "Online",
"total": "Kopā",
"unknown": "Nezināms"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Saulains", "0-day": "Saulains",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Statuss", "status": "Statuss",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,9 +14,9 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "bln",
"days": "d", "days": "h",
"hours": "h", "hours": "j",
"minutes": "m", "minutes": "m",
"seconds": "s" "seconds": "s"
}, },
@@ -45,9 +45,9 @@
"free": "Bebas", "free": "Bebas",
"used": "Telah diguna", "used": "Telah diguna",
"load": "Beban", "load": "Beban",
"temp": "TEMP", "temp": "SUHU",
"max": "Max", "max": "Tertinggi",
"uptime": "UP" "uptime": "HIDUP"
}, },
"unifi": { "unifi": {
"users": "Pengguna", "users": "Pengguna",
@@ -61,102 +61,108 @@
"wlan_devices": "Peranti WLAN", "wlan_devices": "Peranti WLAN",
"lan_users": "Pengguna LAN", "lan_users": "Pengguna LAN",
"wlan_users": "Pengguna WLAN", "wlan_users": "Pengguna WLAN",
"up": "UP", "up": "HIDUP",
"down": "MATI", "down": "MATI",
"wait": "Sila tunggu", "wait": "Sila tunggu",
"empty_data": "Subsystem status unknown" "empty_data": "Status subsistem tak diketahui"
}, },
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"running": "Running", "running": "Sedang jalan",
"offline": "Luar talian", "offline": "Luar talian",
"error": "Ralat", "error": "Ralat",
"unknown": "Tidak Diketahui", "unknown": "Tidak Diketahui",
"healthy": "Healthy", "healthy": "Sihat",
"starting": "Starting", "starting": "Bermula",
"unhealthy": "Unhealthy", "unhealthy": "Kurang sihat",
"not_found": "Not Found", "not_found": "Tidak dijumpai",
"exited": "Exited", "exited": "Dimatikan",
"partial": "Partial" "partial": "Sebahagian"
}, },
"ping": { "ping": {
"error": "Ralat", "error": "Ralat",
"ping": "Ping", "ping": "Ping",
"down": "Down", "down": "Mati",
"up": "Up", "up": "Hidup",
"not_available": "Not Available" "not_available": "Tidak dijumpai"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "Status HTTP",
"error": "Ralat", "error": "Ralat",
"response": "Response", "response": "Tindak balas",
"down": "Down", "down": "Mati",
"up": "Up", "up": "Hidup",
"not_available": "Not Available" "not_available": "Tidak dijumpai"
}, },
"emby": { "emby": {
"playing": "Sedang dimainkan", "playing": "Sedang dimainkan",
"transcoding": "Transkoding", "transcoding": "Transkoding",
"bitrate": "Kadar bit", "bitrate": "Kadar bit",
"no_active": "Tiada Strim Aktif", "no_active": "Tiada Strim Aktif",
"movies": "Movies", "movies": "Filem",
"series": "Series", "series": "Siri",
"episodes": "Episodes", "episodes": "Episod",
"songs": "Songs" "songs": "Lagu"
},
"esphome": {
"offline": "Luar talian",
"online": "Dalam Talian",
"total": "Jumlah",
"unknown": "Tidak Diketahui"
}, },
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Produksi",
"battery_soc": "Battery", "battery_soc": "Bateri",
"grid_power": "Grid", "grid_power": "Grid",
"home_power": "Consumption", "home_power": "Penggunaan",
"charge_power": "Charger", "charge_power": "Pengecas",
"watt_hour": "Wh" "watt_hour": "Wj"
}, },
"flood": { "flood": {
"download": "Download", "download": "Muat turun",
"upload": "Upload", "upload": "Muat naik",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"freshrss": { "freshrss": {
"subscriptions": "Subscriptions", "subscriptions": "Langganan",
"unread": "Unread" "unread": "Belum dibaca"
}, },
"fritzbox": { "fritzbox": {
"connectionStatus": "Status", "connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured", "connectionStatusUnconfigured": "Belum disuai",
"connectionStatusConnecting": "Connecting", "connectionStatusConnecting": "Menyambung",
"connectionStatusAuthenticating": "Authenticating", "connectionStatusAuthenticating": "Pengesahan",
"connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusPendingDisconnect": "Tunggu untuk Putus",
"connectionStatusDisconnecting": "Disconnecting", "connectionStatusDisconnecting": "Putuskan",
"connectionStatusDisconnected": "Disconnected", "connectionStatusDisconnected": "Sambungan Terputus",
"connectionStatusConnected": "Connected", "connectionStatusConnected": "Connected",
"uptime": "Masa Hidup", "uptime": "Masa Hidup",
"maxDown": "Max. Down", "maxDown": "Mati Maksima",
"maxUp": "Max. Up", "maxUp": "Hidup Maksima",
"down": "Down", "down": "Mati",
"up": "Up", "up": "Hidup",
"received": "Received", "received": "Diterima",
"sent": "Sent", "sent": "Telah dihantar",
"externalIPAddress": "Ext. IP" "externalIPAddress": "IP Luaran"
}, },
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Permintaan semasa",
"requests_failed": "Failed requests" "requests_failed": "Permintaan gagal"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Jumlah Diperhatikan", "totalObserved": "Jumlah Diperhatikan",
"diffsDetected": "Perbezaan Dikesan" "diffsDetected": "Perbezaan Dikesan"
}, },
"channelsdvrserver": { "channelsdvrserver": {
"shows": "Shows", "shows": "Papar",
"recordings": "Recordings", "recordings": "Rakaman",
"scheduled": "Scheduled", "scheduled": "Dijadualkan",
"passes": "Passes" "passes": "Lulus"
}, },
"tautulli": { "tautulli": {
"playing": "Sedang dimainkan", "playing": "Sedang dimainkan",
@@ -180,7 +186,7 @@
"plex": { "plex": {
"streams": "Strim Aktif", "streams": "Strim Aktif",
"albums": "Albums", "albums": "Albums",
"movies": "Movies", "movies": "Filem",
"tv": "Rancangan TV" "tv": "Rancangan TV"
}, },
"sabnzbd": { "sabnzbd": {
@@ -190,18 +196,18 @@
}, },
"rutorrent": { "rutorrent": {
"active": "Aktif", "active": "Aktif",
"upload": "Upload", "upload": "Muat naik",
"download": "Download" "download": "Muat turun"
}, },
"transmission": { "transmission": {
"download": "Download", "download": "Muat turun",
"upload": "Upload", "upload": "Muat naik",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Download", "download": "Muat turun",
"upload": "Upload", "upload": "Muat naik",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
@@ -214,21 +220,21 @@
"invalid": "Invalid" "invalid": "Invalid"
}, },
"deluge": { "deluge": {
"download": "Download", "download": "Muat turun",
"upload": "Upload", "upload": "Muat naik",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"downloadstation": { "downloadstation": {
"download": "Download", "download": "Muat turun",
"upload": "Upload", "upload": "Muat naik",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"sonarr": { "sonarr": {
"wanted": "Mahu", "wanted": "Mahu",
"queued": "Dibaris Gilir", "queued": "Dibaris Gilir",
"series": "Series", "series": "Siri",
"queue": "Barisan", "queue": "Barisan",
"unknown": "Tidak Diketahui" "unknown": "Tidak Diketahui"
}, },
@@ -236,7 +242,7 @@
"wanted": "Mahu", "wanted": "Mahu",
"missing": "Hilang", "missing": "Hilang",
"queued": "Dibaris Gilir", "queued": "Dibaris Gilir",
"movies": "Movies", "movies": "Filem",
"queue": "Barisan", "queue": "Barisan",
"unknown": "Tidak Diketahui" "unknown": "Tidak Diketahui"
}, },
@@ -289,12 +295,12 @@
"latency": "Kependaman" "latency": "Kependaman"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "Muat naik",
"download": "Download", "download": "Muat turun",
"ping": "Ping" "ping": "Ping"
}, },
"portainer": { "portainer": {
"running": "Running", "running": "Sedang jalan",
"stopped": "Terhenti", "stopped": "Terhenti",
"total": "Jumlah" "total": "Jumlah"
}, },
@@ -310,13 +316,13 @@
"hours": "{{number}}h", "hours": "{{number}}h",
"minutes": "{{number}}m", "minutes": "{{number}}m",
"seconds": "{{number}}s", "seconds": "{{number}}s",
"ago": "{{value}} Ago" "ago": "{{value}} Lepas"
}, },
"tdarr": { "tdarr": {
"queue": "Barisan", "queue": "Barisan",
"processed": "Processed", "processed": "Sudah diprosess",
"errored": "Errored", "errored": "Ralat",
"saved": "Saved" "saved": "Simpan"
}, },
"traefik": { "traefik": {
"routers": "Router", "routers": "Router",
@@ -353,7 +359,7 @@
}, },
"jackett": { "jackett": {
"configured": "Telah Dikonfigurasi", "configured": "Telah Dikonfigurasi",
"errored": "Errored" "errored": "Ralat"
}, },
"strelaysrv": { "strelaysrv": {
"numActiveSessions": "Sesi", "numActiveSessions": "Sesi",
@@ -369,18 +375,18 @@
"medusa": { "medusa": {
"wanted": "Mahu", "wanted": "Mahu",
"queued": "Dibaris Gilir", "queued": "Dibaris Gilir",
"series": "Series" "series": "Siri"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Senarai pemain",
"version": "Version", "version": "Versi",
"status": "Status", "status": "Status",
"up": "Online", "up": "Dalam Talian",
"down": "Luar talian" "down": "Luar talian"
}, },
"miniflux": { "miniflux": {
"read": "Read", "read": "Baca",
"unread": "Unread" "unread": "Belum dibaca"
}, },
"authentik": { "authentik": {
"users": "Pengguna", "users": "Pengguna",
@@ -390,36 +396,37 @@
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"lxc": "LXC", "lxc": "LCX",
"vms": "Mesin Maya" "vms": "Mesin Maya"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
"load": "Beban", "load": "Beban",
"wait": "Sila tunggu", "wait": "Sila tunggu",
"temp": "TEMP", "temp": "SUHU",
"_temp": "Temp", "_temp": "Suhu",
"warn": "Warn", "warn": "Amaran",
"uptime": "UP", "uptime": "HIDUP",
"total": "Jumlah", "total": "Jumlah",
"free": "Bebas", "free": "Bebas",
"used": "Telah diguna", "used": "Telah diguna",
"days": "d", "days": "h",
"hours": "h", "hours": "j",
"crit": "Crit", "crit": "Krit",
"read": "Read", "read": "Baca",
"write": "Write", "write": "Tulis",
"gpu": "GPU", "gpu": "GPU",
"mem": "Mem", "mem": "Mem",
"swap": "Swap" "swap": "Penukaran"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "Tandabuku", "bookmark": "Tandabuku",
"service": "Servis", "service": "Servis",
"search": "Search", "search": "Carian",
"custom": "Custom", "custom": "Khusus",
"visit": "Visit", "visit": "Lawat",
"url": "URL" "url": "URL",
"searchsuggestion": "Cadangan"
}, },
"wmo": { "wmo": {
"0-day": "Terik", "0-day": "Terik",
@@ -486,19 +493,19 @@
"up_to_date": "Terkemaskini", "up_to_date": "Terkemaskini",
"child_bridges": "Jambatan Anak", "child_bridges": "Jambatan Anak",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Hidup",
"pending": "Tertunda", "pending": "Tertunda",
"down": "Down" "down": "Mati"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Baharu",
"up": "Up", "up": "Hidup",
"grace": "In Grace Period", "grace": "Tempoh Aman",
"down": "Down", "down": "Mati",
"paused": "Paused", "paused": "Tangguh",
"status": "Status", "status": "Status",
"last_ping": "Last Ping", "last_ping": "Ping terakhir",
"never": "No pings yet" "never": "Tiada ping"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Terimbas", "containers_scanned": "Terimbas",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Saluran", "channels": "Saluran",
"hd": "HD" "hd": "HD",
"tunerCount": "Penala",
"channelNumber": "Saluran",
"channelNetwork": "Rangkaian",
"signalStrength": "Kekuatan",
"signalQuality": "Kualiti",
"symbolQuality": "Kualiti",
"networkRate": "Kadar bit",
"clientIP": "Klien"
}, },
"scrutiny": { "scrutiny": {
"passed": "Lulus", "passed": "Lulus",
@@ -547,36 +562,36 @@
"total": "Jumlah" "total": "Jumlah"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Bateri dicas",
"ups_load": "UPS Load", "ups_load": "Beban UPS",
"ups_status": "UPS Status", "ups_status": "Status UPS",
"online": "Online", "online": "Dalam Talian",
"on_battery": "On Battery", "on_battery": "Guna bateri",
"low_battery": "Low Battery" "low_battery": "Bateri lemah"
}, },
"nextdns": { "nextdns": {
"wait": "Sila tunggu", "wait": "Sila tunggu",
"no_devices": "No Device Data Received" "no_devices": "Tiada Data Diterima Peranti"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU Load", "cpuLoad": "Beban CPU",
"memoryUsed": "Memory Used", "memoryUsed": "Penggunaan memori",
"uptime": "Masa Hidup", "uptime": "Masa Hidup",
"numberOfLeases": "Leases" "numberOfLeases": "Sewaan"
}, },
"xteve": { "xteve": {
"streams_all": "All Streams", "streams_all": "Semua Strim",
"streams_active": "Strim Aktif", "streams_active": "Strim Aktif",
"streams_xepg": "XEPG Channels" "streams_xepg": "Saluran XEPG"
}, },
"opendtu": { "opendtu": {
"yieldDay": "Today", "yieldDay": "Hari ini",
"absolutePower": "Power", "absolutePower": "Kuasa",
"relativePower": "Power %", "relativePower": "Kuasa %",
"limit": "Limit" "limit": "Had/Batas"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU Load", "cpu": "Beban CPU",
"memory": "Active Memory", "memory": "Active Memory",
"wanUpload": "WAN Upload", "wanUpload": "WAN Upload",
"wanDownload": "WAN Download" "wanDownload": "WAN Download"
@@ -601,9 +616,9 @@
"load": "Load Avg", "load": "Load Avg",
"memory": "Mem Usage", "memory": "Mem Usage",
"wanStatus": "WAN Status", "wanStatus": "WAN Status",
"up": "Up", "up": "Hidup",
"down": "Down", "down": "Mati",
"temp": "Temp", "temp": "Suhu",
"disk": "Disk Usage", "disk": "Disk Usage",
"wanIP": "WAN IP" "wanIP": "WAN IP"
}, },
@@ -627,14 +642,14 @@
"m": "m" "m": "m"
}, },
"atsumeru": { "atsumeru": {
"series": "Series", "series": "Siri",
"archives": "Archives", "archives": "Archives",
"chapters": "Chapters", "chapters": "Chapters",
"categories": "Categories" "categories": "Categories"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Siri",
"books": "Buku" "books": "Buku"
}, },
"diskstation": { "diskstation": {
@@ -643,7 +658,7 @@
"volumeAvailable": "Sudah Ada" "volumeAvailable": "Sudah Ada"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Siri",
"issues": "Issues", "issues": "Issues",
"wanted": "Mahu" "wanted": "Mahu"
}, },
@@ -656,7 +671,7 @@
"fileflows": { "fileflows": {
"queue": "Barisan", "queue": "Barisan",
"processing": "Processing", "processing": "Processing",
"processed": "Processed", "processed": "Sudah diprosess",
"time": "Time" "time": "Time"
}, },
"grafana": { "grafana": {
@@ -691,34 +706,39 @@
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Targets Up",
"targets_down": "Targets Down", "targets_down": "Sasaran Mati",
"targets_total": "Total Targets" "targets_total": "Jumlah Sasaran"
},
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Masa Hidup"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Hari ini",
"gross_percent_1y": "One year", "gross_percent_1y": "Satu tahun",
"gross_percent_max": "All time" "gross_percent_max": "Sepanjang masa"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podkas",
"books": "Buku", "books": "Buku",
"podcastsDuration": "Duration", "podcastsDuration": "Tempoh",
"booksDuration": "Duration" "booksDuration": "Tempoh"
}, },
"homeassistant": { "homeassistant": {
"people_home": "People Home", "people_home": "Orang Dirumah",
"lights_on": "Lights On", "lights_on": "Hidupkan Lampu",
"switches_on": "Switches On" "switches_on": "Hidupkan Suis"
}, },
"whatsupdocker": { "whatsupdocker": {
"monitoring": "Monitoring", "monitoring": "Pemantauan",
"updates": "Kemaskini" "updates": "Kemaskini"
}, },
"calibreweb": { "calibreweb": {
"books": "Buku", "books": "Buku",
"authors": "Authors", "authors": "Pengarang/Penulis",
"categories": "Categories", "categories": "Categories",
"series": "Series" "series": "Siri"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "Barisan", "downloadCount": "Barisan",
@@ -727,81 +747,121 @@
"downloadSpeed": "Kelajuan" "downloadSpeed": "Kelajuan"
}, },
"kavita": { "kavita": {
"seriesCount": "Series", "seriesCount": "Siri",
"totalFiles": "Files" "totalFiles": "Files"
}, },
"azuredevops": { "azuredevops": {
"result": "Result", "result": "Keputusan",
"status": "Status", "status": "Status",
"buildId": "Build ID", "buildId": "ID Binaan",
"succeeded": "Succeeded", "succeeded": "Berjaya",
"notStarted": "Not Started", "notStarted": "Belum Bermula",
"failed": "Gagal", "failed": "Gagal",
"canceled": "Canceled", "canceled": "Dibatalkan",
"inProgress": "In Progress", "inProgress": "Sedang Diproses",
"totalPrs": "Total PRs", "totalPrs": "Jumlah PR",
"myPrs": "My PRs", "myPrs": "PR Sendiri",
"approved": "Lulus" "approved": "Lulus"
}, },
"gamedig": { "gamedig": {
"status": "Status", "status": "Status",
"online": "Online", "online": "Dalam Talian",
"offline": "Luar talian", "offline": "Luar talian",
"name": "Name", "name": "Nama",
"map": "Map", "map": "Peta",
"currentPlayers": "Current players", "currentPlayers": "Pemain Semasa",
"players": "Players", "players": "Senarai pemain",
"maxPlayers": "Max players", "maxPlayers": "Bilangan peserta maksimum",
"bots": "Bots", "bots": "Bot",
"ping": "Ping" "ping": "Ping"
}, },
"urbackup": { "urbackup": {
"ok": "Ok", "ok": "Ok",
"errored": "Errors", "errored": "Ralat",
"noRecent": "Out of Date", "noRecent": "Luput tarikh",
"totalUsed": "Used Storage" "totalUsed": "Storan digunakan"
}, },
"mealie": { "mealie": {
"recipes": "Recipes", "recipes": "Resipi",
"users": "Pengguna", "users": "Pengguna",
"categories": "Categories", "categories": "Categories",
"tags": "Tags" "tags": "Tanda nama"
}, },
"openmediavault": { "openmediavault": {
"downloading": "Downloading", "downloading": "Sedang muat turun",
"total": "Jumlah", "total": "Jumlah",
"running": "Running", "running": "Sedang jalan",
"stopped": "Terhenti", "stopped": "Terhenti",
"passed": "Lulus", "passed": "Lulus",
"failed": "Gagal" "failed": "Gagal"
}, },
"openwrt": {
"uptime": "Masa Hidup",
"cpuLoad": "Purata Beban CPU (5m)",
"up": "Hidup",
"down": "Mati",
"bytesTx": "Terpancar",
"bytesRx": "Diterima"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Masa Hidup", "uptime": "Masa Hidup",
"lastDown": "Last Downtime", "lastDown": "Masa Mati Terakhir",
"downDuration": "Downtime Duration", "downDuration": "Jangkamasa Kematian",
"sitesUp": "Sites Up", "sitesUp": "Sites Up",
"sitesDown": "Sites Down", "sitesDown": "Sites Down",
"paused": "Paused", "paused": "Tangguh",
"notyetchecked": "Not Yet Checked", "notyetchecked": "Belum Disemak",
"up": "Up", "up": "Hidup",
"seemsdown": "Seems Down", "seemsdown": "Seperti Mati",
"down": "Down", "down": "Mati",
"unknown": "Tidak Diketahui" "unknown": "Tidak Diketahui"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "Di pawagam",
"physicalRelease": "Physical release", "physicalRelease": "Edaran fizikal",
"digitalRelease": "Digital release", "digitalRelease": "Edaran digital",
"noEventsToday": "No events for today!", "noEventsToday": "Tiada agenda untuk hari ini!",
"noEventsFound": "No events found" "noEventsFound": "Tiada agenda dijumpai"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platform",
"totalRoms": "Total ROMs" "totalRoms": "Jumlah ROM"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Amaran",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Afleveringen", "episodes": "Afleveringen",
"songs": "Nummers" "songs": "Nummers"
}, },
"esphome": {
"offline": "Onbereikbaar",
"online": "Bereikbaar",
"total": "Totaal",
"unknown": "Onbekend"
},
"evcc": { "evcc": {
"pv_power": "Productie", "pv_power": "Productie",
"battery_soc": "Batterij", "battery_soc": "Batterij",
@@ -419,7 +425,8 @@
"search": "Zoek", "search": "Zoek",
"custom": "Aangepast", "custom": "Aangepast",
"visit": "Bezoek", "visit": "Bezoek",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestie"
}, },
"wmo": { "wmo": {
"0-day": "Zonnig", "0-day": "Zonnig",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanalen", "channels": "Kanalen",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Kanaal",
"channelNetwork": "Netwerk",
"signalStrength": "Sterkte",
"signalQuality": "Kwaliteit",
"symbolQuality": "Kwaliteit",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Geslaagd", "passed": "Geslaagd",
@@ -694,6 +709,11 @@
"targets_down": "Doelen onbereikbaar", "targets_down": "Doelen onbereikbaar",
"targets_total": "Totaal aantal doelen" "targets_total": "Totaal aantal doelen"
}, },
"gatus": {
"up": "Sites Bereikbaar",
"down": "Sites Onbereikbaar",
"uptime": "Online"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Vandaag", "gross_percent_today": "Vandaag",
"gross_percent_1y": "Een jaar", "gross_percent_1y": "Een jaar",
@@ -775,6 +795,14 @@
"passed": "Geslaagd", "passed": "Geslaagd",
"failed": "Gefaald" "failed": "Gefaald"
}, },
"openwrt": {
"uptime": "Online",
"cpuLoad": "CPU Load Gem. (5m)",
"up": "Online",
"down": "Offline",
"bytesTx": "Verzonden",
"bytesRx": "Ontvangen"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Online", "uptime": "Online",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Waarschuwingen", "warnings": "Waarschuwingen",
"criticals": "Kritiek" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,9 +14,9 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "mc",
"days": "d", "days": "d",
"hours": "h", "hours": "g",
"minutes": "m", "minutes": "m",
"seconds": "s" "seconds": "s"
}, },
@@ -107,6 +107,12 @@
"episodes": "Odcinki", "episodes": "Odcinki",
"songs": "Piosenki" "songs": "Piosenki"
}, },
"esphome": {
"offline": "Nieosiągalny",
"online": "Dostępny",
"total": "Całkowite",
"unknown": "Nieznany"
},
"evcc": { "evcc": {
"pv_power": "Produkcja", "pv_power": "Produkcja",
"battery_soc": "Bateria", "battery_soc": "Bateria",
@@ -405,7 +411,7 @@
"free": "Wolne", "free": "Wolne",
"used": "Użyte", "used": "Użyte",
"days": "d", "days": "d",
"hours": "h", "hours": "g",
"crit": "Crit", "crit": "Crit",
"read": "Przeczytane", "read": "Przeczytane",
"write": "Zapis", "write": "Zapis",
@@ -419,7 +425,8 @@
"search": "Wyszukaj", "search": "Wyszukaj",
"custom": "Niestandardowe", "custom": "Niestandardowe",
"visit": "Odwiedź", "visit": "Odwiedź",
"url": "Adres URL" "url": "Adres URL",
"searchsuggestion": "Sugestia"
}, },
"wmo": { "wmo": {
"0-day": "Słoneczny", "0-day": "Słoneczny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanały", "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": { "scrutiny": {
"passed": "Powodzenie", "passed": "Powodzenie",
@@ -548,11 +563,11 @@
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Battery Charge",
"ups_load": "UPS Load", "ups_load": "Obciążenie UPS",
"ups_status": "UPS Status", "ups_status": "Status UPS",
"online": "Dostępny", "online": "Dostępny",
"on_battery": "On Battery", "on_battery": "Na baterii",
"low_battery": "Low Battery" "low_battery": "Niski poziom baterii"
}, },
"nextdns": { "nextdns": {
"wait": "Proszę czekać", "wait": "Proszę czekać",
@@ -662,7 +677,7 @@
"grafana": { "grafana": {
"dashboards": "Panel główny", "dashboards": "Panel główny",
"datasources": "Źródła danych", "datasources": "Źródła danych",
"totalalerts": "Total Alerts", "totalalerts": "Wszystkie alerty",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alerts Triggered"
}, },
"nextcloud": { "nextcloud": {
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Działające",
"down": "Niedziałające",
"uptime": "Czas działania"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Dzisiaj", "gross_percent_today": "Dzisiaj",
"gross_percent_1y": "Rok", "gross_percent_1y": "Rok",
@@ -759,7 +779,7 @@
"ok": "Ok", "ok": "Ok",
"errored": "Błędy", "errored": "Błędy",
"noRecent": "Nieaktualne", "noRecent": "Nieaktualne",
"totalUsed": "Used Storage" "totalUsed": "Użyta pamięć"
}, },
"mealie": { "mealie": {
"recipes": "Recipes", "recipes": "Recipes",
@@ -775,6 +795,14 @@
"passed": "Powodzenie", "passed": "Powodzenie",
"failed": "Niepowodzenie" "failed": "Niepowodzenie"
}, },
"openwrt": {
"uptime": "Czas działania",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Dostępny",
"down": "Niedostępny",
"bytesTx": "Transmitted",
"bytesRx": "Odebrane"
},
"uptimerobot": { "uptimerobot": {
"status": "Stan", "status": "Stan",
"uptime": "Czas działania", "uptime": "Czas działania",
@@ -790,18 +818,50 @@
"unknown": "Nieznany" "unknown": "Nieznany"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "W kinach",
"physicalRelease": "Physical release", "physicalRelease": "Wydanie fizyczne",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!", "noEventsToday": "No events for today!",
"noEventsFound": "No events found" "noEventsFound": "No events found"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platformy",
"totalRoms": "Total ROMs" "totalRoms": "Total ROMs"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Ostrzeżenia",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episódios", "episodes": "Episódios",
"songs": "Canções" "songs": "Canções"
}, },
"esphome": {
"offline": "Desligado",
"online": "Online",
"total": "Total",
"unknown": "Desconhecido"
},
"evcc": { "evcc": {
"pv_power": "Produção", "pv_power": "Produção",
"battery_soc": "Bateria", "battery_soc": "Bateria",
@@ -419,7 +425,8 @@
"search": "Busca", "search": "Busca",
"custom": "Personalizado", "custom": "Personalizado",
"visit": "Visitar", "visit": "Visitar",
"url": "Endereço URL" "url": "Endereço URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Solarengo", "0-day": "Solarengo",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Canais", "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": { "scrutiny": {
"passed": "Aprovado", "passed": "Aprovado",
@@ -694,6 +709,11 @@
"targets_down": "Alvo inativo", "targets_down": "Alvo inativo",
"targets_total": "Total de Alvos" "targets_total": "Total de Alvos"
}, },
"gatus": {
"up": "Sites no Ar",
"down": "Sites Fora do Ar",
"uptime": "Ligado"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Hoje", "gross_percent_today": "Hoje",
"gross_percent_1y": "Um ano", "gross_percent_1y": "Um ano",
@@ -775,6 +795,14 @@
"passed": "Aprovado", "passed": "Aprovado",
"failed": "Falhou" "failed": "Falhou"
}, },
"openwrt": {
"uptime": "Ligado",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Recebido"
},
"uptimerobot": { "uptimerobot": {
"status": "Estado", "status": "Estado",
"uptime": "Ligado", "uptime": "Ligado",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episódios", "episodes": "Episódios",
"songs": "Canções" "songs": "Canções"
}, },
"esphome": {
"offline": "Desligado",
"online": "Online",
"total": "Total",
"unknown": "Desconhecido"
},
"evcc": { "evcc": {
"pv_power": "Produção", "pv_power": "Produção",
"battery_soc": "Bateria", "battery_soc": "Bateria",
@@ -419,7 +425,8 @@
"search": "Busca", "search": "Busca",
"custom": "Personalizado", "custom": "Personalizado",
"visit": "Visitar", "visit": "Visitar",
"url": "Endereço URL" "url": "Endereço URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Solarengo", "0-day": "Solarengo",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Canais", "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": { "scrutiny": {
"passed": "Aprovado", "passed": "Aprovado",
@@ -694,6 +709,11 @@
"targets_down": "Alvo inativo", "targets_down": "Alvo inativo",
"targets_total": "Total de Alvos" "targets_total": "Total de Alvos"
}, },
"gatus": {
"up": "Sites no Ar",
"down": "Sites Fora do Ar",
"uptime": "Ligado"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "Um ano", "gross_percent_1y": "Um ano",
@@ -775,6 +795,14 @@
"passed": "Aprovado", "passed": "Aprovado",
"failed": "Falhou" "failed": "Falhou"
}, },
"openwrt": {
"uptime": "Ligado",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Estado", "status": "Estado",
"uptime": "Ligado", "uptime": "Ligado",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episoade", "episodes": "Episoade",
"songs": "Melodii" "songs": "Melodii"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Necunoscut"
},
"evcc": { "evcc": {
"pv_power": "Producție", "pv_power": "Producție",
"battery_soc": "Baterie", "battery_soc": "Baterie",
@@ -419,7 +425,8 @@
"search": "Caută", "search": "Caută",
"custom": "Personalizat", "custom": "Personalizat",
"visit": "Vizită", "visit": "Vizită",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Însorit", "0-day": "Însorit",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "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": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Sus",
"down": "Jos",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Stare", "status": "Stare",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,11 +14,11 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "мес",
"days": "d", "days": "дней",
"hours": "h", "hours": "час",
"minutes": "m", "minutes": "мин",
"seconds": "s" "seconds": "сек"
}, },
"widget": { "widget": {
"missing_type": "Отсутствует тип виджета: {{type}}", "missing_type": "Отсутствует тип виджета: {{type}}",
@@ -107,6 +107,12 @@
"episodes": "Эпизоды", "episodes": "Эпизоды",
"songs": "Песни" "songs": "Песни"
}, },
"esphome": {
"offline": "Не в сети",
"online": "В сети",
"total": "Всего",
"unknown": "Неизвестен"
},
"evcc": { "evcc": {
"pv_power": "Прод", "pv_power": "Прод",
"battery_soc": "Питание", "battery_soc": "Питание",
@@ -130,7 +136,7 @@
"connectionStatusUnconfigured": "Не настроено", "connectionStatusUnconfigured": "Не настроено",
"connectionStatusConnecting": "Подключение", "connectionStatusConnecting": "Подключение",
"connectionStatusAuthenticating": "Авторизация", "connectionStatusAuthenticating": "Авторизация",
"connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusPendingDisconnect": "Ожидает отключения",
"connectionStatusDisconnecting": "Отключение", "connectionStatusDisconnecting": "Отключение",
"connectionStatusDisconnected": "Отключено", "connectionStatusDisconnected": "Отключено",
"connectionStatusConnected": "Подключено", "connectionStatusConnected": "Подключено",
@@ -404,8 +410,8 @@
"total": "Всего", "total": "Всего",
"free": "Свободно", "free": "Свободно",
"used": "Использовано", "used": "Использовано",
"days": "d", "days": "дней",
"hours": "h", "hours": "час",
"crit": "Крит", "crit": "Крит",
"read": "Прочитано", "read": "Прочитано",
"write": "Запись", "write": "Запись",
@@ -419,7 +425,8 @@
"search": "Поиск", "search": "Поиск",
"custom": "Пользовательский", "custom": "Пользовательский",
"visit": "Посетите", "visit": "Посетите",
"url": "Ссылка" "url": "Ссылка",
"searchsuggestion": "Предложение"
}, },
"wmo": { "wmo": {
"0-day": "Солнечно", "0-day": "Солнечно",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Каналы", "channels": "Каналы",
"hd": "HD" "hd": "HD",
"tunerCount": "Тюнеры",
"channelNumber": "Канал",
"channelNetwork": "Сеть",
"signalStrength": "Сила",
"signalQuality": "Качество",
"symbolQuality": "Качество",
"networkRate": "Битрейт",
"clientIP": "Клиент"
}, },
"scrutiny": { "scrutiny": {
"passed": "Успешно", "passed": "Успешно",
@@ -547,12 +562,12 @@
"total": "Всего" "total": "Всего"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "Заряд батареи",
"ups_load": "UPS Load", "ups_load": "Нагрузка на UPS",
"ups_status": "UPS Status", "ups_status": "Статус UPS",
"online": "В сети", "online": "В сети",
"on_battery": "On Battery", "on_battery": "От батареи",
"low_battery": "Low Battery" "low_battery": "Низкий заряд"
}, },
"nextdns": { "nextdns": {
"wait": "Пожалуйста, подождите", "wait": "Пожалуйста, подождите",
@@ -624,7 +639,7 @@
"down": "Неактивные сайты", "down": "Неактивные сайты",
"uptime": "Время работы", "uptime": "Время работы",
"incident": "Происшествия", "incident": "Происшествия",
"m": "m" "m": "мин"
}, },
"atsumeru": { "atsumeru": {
"series": "Серии", "series": "Серии",
@@ -694,6 +709,11 @@
"targets_down": "Неактивные цели", "targets_down": "Неактивные цели",
"targets_total": "Всего целей" "targets_total": "Всего целей"
}, },
"gatus": {
"up": "Активные сайты",
"down": "Неактивные сайты",
"uptime": "Время работы"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Сегодня", "gross_percent_today": "Сегодня",
"gross_percent_1y": "Один год", "gross_percent_1y": "Один год",
@@ -775,6 +795,14 @@
"passed": "Успешно", "passed": "Успешно",
"failed": "Провалено" "failed": "Провалено"
}, },
"openwrt": {
"uptime": "Время работы",
"cpuLoad": "Средняя нагрузка ЦП (5м)",
"up": "Онлайн",
"down": "Офлайн",
"bytesTx": "Передано",
"bytesRx": "Получено"
},
"uptimerobot": { "uptimerobot": {
"status": "Статус", "status": "Статус",
"uptime": "Время работы", "uptime": "Время работы",
@@ -797,11 +825,43 @@
"noEventsFound": "Событий не найдено" "noEventsFound": "Событий не найдено"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Платформы",
"totalRoms": "Total ROMs" "totalRoms": "Всего ПЗУ"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Предупреждения",
"criticals": "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": "Теги",
"oCount": "O Count"
},
"tandoor": {
"users": "Пользователи",
"recipes": "Рецепты",
"keywords": "Keywords"
} }
} }

View File

@@ -11,7 +11,7 @@
"percent": "{{value, percent}}", "percent": "{{value, percent}}",
"number": "{{value, number}}", "number": "{{value, number}}",
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{value, date}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mes", "months": "mes",
@@ -107,6 +107,12 @@
"episodes": "Epizódy", "episodes": "Epizódy",
"songs": "Skladby" "songs": "Skladby"
}, },
"esphome": {
"offline": "Nedostupný",
"online": "Online",
"total": "Celkovo",
"unknown": "Neznáme"
},
"evcc": { "evcc": {
"pv_power": "Produkcia", "pv_power": "Produkcia",
"battery_soc": "Batéria", "battery_soc": "Batéria",
@@ -135,8 +141,8 @@
"connectionStatusDisconnected": "Odpojené", "connectionStatusDisconnected": "Odpojené",
"connectionStatusConnected": "Pripojené", "connectionStatusConnected": "Pripojené",
"uptime": "Prevádzka", "uptime": "Prevádzka",
"maxDown": "Max. Down", "maxDown": "Max. sťahovanie",
"maxUp": "Max. Up", "maxUp": "Max. nahrávanie",
"down": "Sťahovanie", "down": "Sťahovanie",
"up": "Nahrávanie", "up": "Nahrávanie",
"received": "Prijaté", "received": "Prijaté",
@@ -419,7 +425,8 @@
"search": "Hľadať", "search": "Hľadať",
"custom": "Vlastné", "custom": "Vlastné",
"visit": "Navštíviť", "visit": "Navštíviť",
"url": "Odkaz" "url": "Odkaz",
"searchsuggestion": "Návrh"
}, },
"wmo": { "wmo": {
"0-day": "Slnečno", "0-day": "Slnečno",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanály", "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": { "scrutiny": {
"passed": "Úspešný", "passed": "Úspešný",
@@ -694,6 +709,11 @@
"targets_down": "Nedostupné ciele", "targets_down": "Nedostupné ciele",
"targets_total": "Cieľov spolu" "targets_total": "Cieľov spolu"
}, },
"gatus": {
"up": "Weby dostupné",
"down": "Weby nedostupné",
"uptime": "Prevádzka"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Dnes", "gross_percent_today": "Dnes",
"gross_percent_1y": "Jeden rok", "gross_percent_1y": "Jeden rok",
@@ -775,6 +795,14 @@
"passed": "Úspešný", "passed": "Úspešný",
"failed": "Zlyhané" "failed": "Zlyhané"
}, },
"openwrt": {
"uptime": "Prevádzka",
"cpuLoad": "Záťaž CPU priem. (5m)",
"up": "Nahrávanie",
"down": "Sťahovanie",
"bytesTx": "Prenesených",
"bytesRx": "Prijaté"
},
"uptimerobot": { "uptimerobot": {
"status": "Stav", "status": "Stav",
"uptime": "Prevádzka", "uptime": "Prevádzka",
@@ -797,11 +825,43 @@
"noEventsFound": "Žiadne udalosti" "noEventsFound": "Žiadne udalosti"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platformy",
"totalRoms": "Total ROMs" "totalRoms": "Celkovo ROM"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Upozornenia",
"criticals": "Criticals" "criticals": "Kritic"
},
"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": "Štítky",
"oCount": "O Count"
},
"tandoor": {
"users": "Používatelia",
"recipes": "Recepty",
"keywords": "Keywords"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Epizode", "episodes": "Epizode",
"songs": "Pesmi" "songs": "Pesmi"
}, },
"esphome": {
"offline": "Ni povezan",
"online": "Na spletu",
"total": "Skupaj",
"unknown": "Neznano"
},
"evcc": { "evcc": {
"pv_power": "Proizvodnja", "pv_power": "Proizvodnja",
"battery_soc": "Baterija", "battery_soc": "Baterija",
@@ -419,7 +425,8 @@
"search": "Iskanje", "search": "Iskanje",
"custom": "Po meri", "custom": "Po meri",
"visit": "Obišči", "visit": "Obišči",
"url": "URL" "url": "URL",
"searchsuggestion": "Predlog"
}, },
"wmo": { "wmo": {
"0-day": "Sončno", "0-day": "Sončno",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanali", "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": { "scrutiny": {
"passed": "Opravljeno", "passed": "Opravljeno",
@@ -694,6 +709,11 @@
"targets_down": "Tarče dol", "targets_down": "Tarče dol",
"targets_total": "Skupaj tarč" "targets_total": "Skupaj tarč"
}, },
"gatus": {
"up": "Deluje",
"down": "Ne deluje",
"uptime": "Čas delovanja"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Danes", "gross_percent_today": "Danes",
"gross_percent_1y": "Eno leto", "gross_percent_1y": "Eno leto",
@@ -775,6 +795,14 @@
"passed": "Opravljeno", "passed": "Opravljeno",
"failed": "Neuspešno" "failed": "Neuspešno"
}, },
"openwrt": {
"uptime": "Čas delovanja",
"cpuLoad": "CPU obremenitev povp. (5m)",
"up": "Povezan",
"down": "Nepovezan",
"bytesTx": "Prenešeno",
"bytesRx": "Prejeto"
},
"uptimerobot": { "uptimerobot": {
"status": "Stanje", "status": "Stanje",
"uptime": "Čas delovanja", "uptime": "Čas delovanja",
@@ -797,11 +825,43 @@
"noEventsFound": "Ni dogodkov" "noEventsFound": "Ni dogodkov"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Platforme",
"totalRoms": "Total ROMs" "totalRoms": "Skupaj ROM-ov"
}, },
"netdata": { "netdata": {
"warnings": "Opozorila", "warnings": "Opozorila",
"criticals": "Kritično" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -14,7 +14,7 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "mån",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m", "minutes": "m",
@@ -56,7 +56,7 @@
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Devices", "devices": "Enheter",
"lan_devices": "LAN Devices", "lan_devices": "LAN Devices",
"wlan_devices": "WLAN Devices", "wlan_devices": "WLAN Devices",
"lan_users": "LAN-användare", "lan_users": "LAN-användare",
@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Status", "status": "Status",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "ఆఫ్‌లైన్",
"online": "Online",
"total": "మొత్తం",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "సన్నీ", "0-day": "సన్నీ",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "బిట్రేట్",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "విఫలమయ్యారు" "failed": "విఫలమయ్యారు"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "హోదా", "status": "హోదా",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "ออฟไลน์",
"online": "Online",
"total": "ทั้งหมด",
"unknown": "ไม่ทราบ"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "อัตราบิต",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "เว็บไซต์ ล่ม",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "สถานะ", "status": "สถานะ",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Bölümler", "episodes": "Bölümler",
"songs": "Şarkılar" "songs": "Şarkılar"
}, },
"esphome": {
"offline": "Çevrimdışı",
"online": "Çevrimiçi",
"total": "Toplam",
"unknown": "Bilinmiyor"
},
"evcc": { "evcc": {
"pv_power": "Üretim", "pv_power": "Üretim",
"battery_soc": "Batarya", "battery_soc": "Batarya",
@@ -419,7 +425,8 @@
"search": "Ara", "search": "Ara",
"custom": "Özel", "custom": "Özel",
"visit": "Ziyaret", "visit": "Ziyaret",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Güneşli", "0-day": "Güneşli",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Kanallar", "channels": "Kanallar",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bit Oranı",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Geçti", "passed": "Geçti",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Çalışma Süresi"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Geçti", "passed": "Geçti",
"failed": "Başarısız" "failed": "Başarısız"
}, },
"openwrt": {
"uptime": "Çalışma Süresi",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Yükleme",
"down": "İndirme",
"bytesTx": "Transmitted",
"bytesRx": "Alınan"
},
"uptimerobot": { "uptimerobot": {
"status": "Durum", "status": "Durum",
"uptime": "Çalışma Süresi", "uptime": "Çalışma Süresi",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Fotoğraflar",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Sorunlar",
"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": "Filmler",
"tags": "Tags",
"oCount": "O Count"
},
"tandoor": {
"users": "Kullanıcılar",
"recipes": "Recipes",
"keywords": "Keywords"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Епізоди", "episodes": "Епізоди",
"songs": "Пісні" "songs": "Пісні"
}, },
"esphome": {
"offline": "Офлайн",
"online": "Онлайн",
"total": "Усього",
"unknown": "Невідомий"
},
"evcc": { "evcc": {
"pv_power": "Виробництво", "pv_power": "Виробництво",
"battery_soc": "Батарея", "battery_soc": "Батарея",
@@ -419,7 +425,8 @@
"search": "Пошук", "search": "Пошук",
"custom": "Користувацький", "custom": "Користувацький",
"visit": "Відвідайте", "visit": "Відвідайте",
"url": "URL-адреса" "url": "URL-адреса",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Сонячно", "0-day": "Сонячно",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Канали", "channels": "Канали",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Бітрейт",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Пройшов", "passed": "Пройшов",
@@ -694,6 +709,11 @@
"targets_down": "Цілі вниз", "targets_down": "Цілі вниз",
"targets_total": "Всього цілей" "targets_total": "Всього цілей"
}, },
"gatus": {
"up": "Активні сайти",
"down": "Неактивні сайти",
"uptime": "Час роботи"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "Один рік", "gross_percent_1y": "Один рік",
@@ -775,6 +795,14 @@
"passed": "Пройшов", "passed": "Пройшов",
"failed": "Невдача" "failed": "Невдача"
}, },
"openwrt": {
"uptime": "Час роботи",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Стан", "status": "Стан",
"uptime": "Час роботи", "uptime": "Час роботи",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
}, },
"esphome": {
"offline": "Ngoại tuyến",
"online": "Online",
"total": "Tổng",
"unknown": "Unknown"
},
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Battery",
@@ -419,7 +425,8 @@
"search": "Search", "search": "Search",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL",
"searchsuggestion": "Suggestion"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Sunny",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Channels",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "Network",
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Client"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
@@ -694,6 +709,11 @@
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"gatus": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
@@ -775,6 +795,14 @@
"passed": "Passed", "passed": "Passed",
"failed": "Failed" "failed": "Failed"
}, },
"openwrt": {
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Received"
},
"uptimerobot": { "uptimerobot": {
"status": "Trạng thái", "status": "Trạng thái",
"uptime": "Uptime", "uptime": "Uptime",
@@ -803,5 +831,37 @@
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "Warnings",
"criticals": "Criticals" "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"
} }
} }

View File

@@ -107,6 +107,12 @@
"episodes": "集", "episodes": "集",
"songs": "曲目" "songs": "曲目"
}, },
"esphome": {
"offline": "離線",
"online": "在線",
"total": "全部",
"unknown": "未知"
},
"evcc": { "evcc": {
"pv_power": "正式環境", "pv_power": "正式環境",
"battery_soc": "電池", "battery_soc": "電池",
@@ -419,7 +425,8 @@
"search": "搜尋", "search": "搜尋",
"custom": "自訂", "custom": "自訂",
"visit": "造訪", "visit": "造訪",
"url": "網址" "url": "網址",
"searchsuggestion": "建議"
}, },
"wmo": { "wmo": {
"0-day": "晴天", "0-day": "晴天",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "頻道", "channels": "頻道",
"hd": "高畫質" "hd": "高畫質",
"tunerCount": "調諧器",
"channelNumber": "頻道",
"channelNetwork": "網絡",
"signalStrength": "強度",
"signalQuality": "品質",
"symbolQuality": "品質",
"networkRate": "比特率",
"clientIP": "用戶端"
}, },
"scrutiny": { "scrutiny": {
"passed": "通過", "passed": "通過",
@@ -548,8 +563,8 @@
}, },
"peanut": { "peanut": {
"battery_charge": "充電", "battery_charge": "充電",
"ups_load": "UPS Load", "ups_load": "後備電負載",
"ups_status": "UPS Status", "ups_status": "後備電狀況",
"online": "在線", "online": "在線",
"on_battery": "電池供電", "on_battery": "電池供電",
"low_battery": "低電量" "low_battery": "低電量"
@@ -694,6 +709,11 @@
"targets_down": "目標離線", "targets_down": "目標離線",
"targets_total": "目標總數" "targets_total": "目標總數"
}, },
"gatus": {
"up": "在線網站",
"down": "離線網站",
"uptime": "運行時間"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "今日", "gross_percent_today": "今日",
"gross_percent_1y": "一年", "gross_percent_1y": "一年",
@@ -775,6 +795,14 @@
"passed": "通過", "passed": "通過",
"failed": "失敗" "failed": "失敗"
}, },
"openwrt": {
"uptime": "運行時間",
"cpuLoad": "處理器平均負載(5分鐘)",
"up": "在線",
"down": "離線",
"bytesTx": "已傳送",
"bytesRx": "已接收"
},
"uptimerobot": { "uptimerobot": {
"status": "狀況", "status": "狀況",
"uptime": "運行時間", "uptime": "運行時間",
@@ -797,11 +825,43 @@
"noEventsFound": "未找到事件" "noEventsFound": "未找到事件"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "平台",
"totalRoms": "Total ROMs" "totalRoms": "總唯讀記憶體"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "警告",
"criticals": "Criticals" "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": "Keywords"
} }
} }

View File

@@ -14,11 +14,11 @@
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "uptime": "{{value, uptime}}",
"months": "mo", "months": "",
"days": "d", "days": "",
"hours": "h", "hours": "",
"minutes": "m", "minutes": "",
"seconds": "s" "seconds": ""
}, },
"widget": { "widget": {
"missing_type": "缺失的组件类型: {{type}}", "missing_type": "缺失的组件类型: {{type}}",
@@ -90,7 +90,7 @@
"not_available": "不可用" "not_available": "不可用"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "HTTP 状态",
"error": "错误", "error": "错误",
"response": "响应", "response": "响应",
"down": "离线", "down": "离线",
@@ -107,6 +107,12 @@
"episodes": "集", "episodes": "集",
"songs": "曲目" "songs": "曲目"
}, },
"esphome": {
"offline": "离线",
"online": "在线",
"total": "总计",
"unknown": "未知"
},
"evcc": { "evcc": {
"pv_power": "发电量", "pv_power": "发电量",
"battery_soc": "电量", "battery_soc": "电量",
@@ -127,20 +133,20 @@
}, },
"fritzbox": { "fritzbox": {
"connectionStatus": "状态", "connectionStatus": "状态",
"connectionStatusUnconfigured": "Unconfigured", "connectionStatusUnconfigured": "未配置",
"connectionStatusConnecting": "Connecting", "connectionStatusConnecting": "连接中",
"connectionStatusAuthenticating": "Authenticating", "connectionStatusAuthenticating": "认证中",
"connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusPendingDisconnect": "等待断开连接",
"connectionStatusDisconnecting": "Disconnecting", "connectionStatusDisconnecting": "正在断开连接",
"connectionStatusDisconnected": "Disconnected", "connectionStatusDisconnected": "未连接",
"connectionStatusConnected": "已连接", "connectionStatusConnected": "已连接",
"uptime": "运行时间", "uptime": "运行时间",
"maxDown": "Max. Down", "maxDown": "",
"maxUp": "Max. Up", "maxUp": "",
"down": "离线", "down": "离线",
"up": "在线", "up": "在线",
"received": "Received", "received": "已接收",
"sent": "Sent", "sent": "已发送",
"externalIPAddress": "Ext. IP" "externalIPAddress": "Ext. IP"
}, },
"caddy": { "caddy": {
@@ -404,8 +410,8 @@
"total": "总计", "total": "总计",
"free": "空闲", "free": "空闲",
"used": "已使用", "used": "已使用",
"days": "d", "days": "",
"hours": "h", "hours": "",
"crit": "严重", "crit": "严重",
"read": "已读", "read": "已读",
"write": "写入", "write": "写入",
@@ -419,7 +425,8 @@
"search": "搜索", "search": "搜索",
"custom": "自定义", "custom": "自定义",
"visit": "访问", "visit": "访问",
"url": "URL" "url": "URL",
"searchsuggestion": "建议"
}, },
"wmo": { "wmo": {
"0-day": "晴天", "0-day": "晴天",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "频道", "channels": "频道",
"hd": "HD" "hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
"channelNetwork": "网络",
"signalStrength": "强度",
"signalQuality": "质量",
"symbolQuality": "质量",
"networkRate": "码率",
"clientIP": "客户端"
}, },
"scrutiny": { "scrutiny": {
"passed": "通过", "passed": "通过",
@@ -547,12 +562,12 @@
"total": "总计" "total": "总计"
}, },
"peanut": { "peanut": {
"battery_charge": "Battery Charge", "battery_charge": "充电中",
"ups_load": "UPS Load", "ups_load": "UPS 负载",
"ups_status": "UPS Status", "ups_status": "UPS 状态",
"online": "在线", "online": "在线",
"on_battery": "On Battery", "on_battery": "电池供电",
"low_battery": "Low Battery" "low_battery": "电量低"
}, },
"nextdns": { "nextdns": {
"wait": "请稍候", "wait": "请稍候",
@@ -624,7 +639,7 @@
"down": "离线网站", "down": "离线网站",
"uptime": "运行时间", "uptime": "运行时间",
"incident": "事件", "incident": "事件",
"m": "m" "m": ""
}, },
"atsumeru": { "atsumeru": {
"series": "剧集", "series": "剧集",
@@ -694,6 +709,11 @@
"targets_down": "离线目标", "targets_down": "离线目标",
"targets_total": "目标总数" "targets_total": "目标总数"
}, },
"gatus": {
"up": "在线网站",
"down": "离线网站",
"uptime": "运行时间"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "今日", "gross_percent_today": "今日",
"gross_percent_1y": "1年", "gross_percent_1y": "1年",
@@ -775,6 +795,14 @@
"passed": "通过", "passed": "通过",
"failed": "失败" "failed": "失败"
}, },
"openwrt": {
"uptime": "运行时间",
"cpuLoad": "CPU 负载平均值(5m)",
"up": "在线",
"down": "离线",
"bytesTx": "已传输",
"bytesRx": "已接收"
},
"uptimerobot": { "uptimerobot": {
"status": "状态", "status": "状态",
"uptime": "运行时间", "uptime": "运行时间",
@@ -797,11 +825,43 @@
"noEventsFound": "未找到事件" "noEventsFound": "未找到事件"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "平台",
"totalRoms": "Total ROMs" "totalRoms": "ROM"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "警告",
"criticals": "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": "标签",
"oCount": "O Count"
},
"tandoor": {
"users": "用户数",
"recipes": "食谱",
"keywords": "Keywords"
} }
} }

View File

@@ -32,8 +32,8 @@
"weather": { "weather": {
"current": "目前位置", "current": "目前位置",
"allow": "點擊以允許", "allow": "點擊以允許",
"updating": "更新", "updating": "正在更新",
"wait": "請稍" "wait": "請稍"
}, },
"search": { "search": {
"placeholder": "搜尋…" "placeholder": "搜尋…"
@@ -63,7 +63,7 @@
"wlan_users": "無線使用者", "wlan_users": "無線使用者",
"up": "運作時間", "up": "運作時間",
"down": "離線", "down": "離線",
"wait": "請稍", "wait": "請稍",
"empty_data": "子系統狀態未知" "empty_data": "子系統狀態未知"
}, },
"docker": { "docker": {
@@ -107,6 +107,12 @@
"episodes": "集", "episodes": "集",
"songs": "曲目" "songs": "曲目"
}, },
"esphome": {
"offline": "離線",
"online": "在線",
"total": "全部",
"unknown": "未知"
},
"evcc": { "evcc": {
"pv_power": "正式環境", "pv_power": "正式環境",
"battery_soc": "電池", "battery_soc": "電池",
@@ -396,7 +402,7 @@
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
"load": "負載", "load": "負載",
"wait": "請稍", "wait": "請稍",
"temp": "溫度", "temp": "溫度",
"_temp": "溫度", "_temp": "溫度",
"warn": "警告", "warn": "警告",
@@ -419,7 +425,8 @@
"search": "搜尋", "search": "搜尋",
"custom": "自訂", "custom": "自訂",
"visit": "造訪", "visit": "造訪",
"url": "網址" "url": "網址",
"searchsuggestion": "建議"
}, },
"wmo": { "wmo": {
"0-day": "晴天", "0-day": "晴天",
@@ -535,7 +542,15 @@
}, },
"hdhomerun": { "hdhomerun": {
"channels": "頻道", "channels": "頻道",
"hd": "高畫質" "hd": "高畫質",
"tunerCount": "調諧器",
"channelNumber": "頻道",
"channelNetwork": "網絡",
"signalStrength": "強度",
"signalQuality": "品質",
"symbolQuality": "品質",
"networkRate": "位元率",
"clientIP": "用戶端"
}, },
"scrutiny": { "scrutiny": {
"passed": "通過", "passed": "通過",
@@ -548,8 +563,8 @@
}, },
"peanut": { "peanut": {
"battery_charge": "充電", "battery_charge": "充電",
"ups_load": "UPS Load", "ups_load": "後備電負載",
"ups_status": "UPS Status", "ups_status": "後備電狀況",
"online": "在線", "online": "在線",
"on_battery": "電池供電", "on_battery": "電池供電",
"low_battery": "低電量" "low_battery": "低電量"
@@ -694,6 +709,11 @@
"targets_down": "目標離線", "targets_down": "目標離線",
"targets_total": "目標總數" "targets_total": "目標總數"
}, },
"gatus": {
"up": "在線網站",
"down": "離線網站",
"uptime": "運行時間"
},
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "今日", "gross_percent_today": "今日",
"gross_percent_1y": "一年", "gross_percent_1y": "一年",
@@ -707,8 +727,8 @@
}, },
"homeassistant": { "homeassistant": {
"people_home": "在家人數", "people_home": "在家人數",
"lights_on": "燈亮著", "lights_on": "燈光開啟",
"switches_on": "開關開" "switches_on": "開關開"
}, },
"whatsupdocker": { "whatsupdocker": {
"monitoring": "監測中", "monitoring": "監測中",
@@ -775,6 +795,14 @@
"passed": "通過", "passed": "通過",
"failed": "失敗" "failed": "失敗"
}, },
"openwrt": {
"uptime": "運行時間",
"cpuLoad": "處理器平均負載(5分鐘)",
"up": "在線",
"down": "離線",
"bytesTx": "已傳送",
"bytesRx": "已接收"
},
"uptimerobot": { "uptimerobot": {
"status": "狀態", "status": "狀態",
"uptime": "運行時間", "uptime": "運行時間",
@@ -797,11 +825,43 @@
"noEventsFound": "未找到事件" "noEventsFound": "未找到事件"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "平台",
"totalRoms": "Total ROMs" "totalRoms": "總唯讀記憶體"
}, },
"netdata": { "netdata": {
"warnings": "Warnings", "warnings": "警告",
"criticals": "Criticals" "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": "Keywords"
} }
} }

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

View File

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

View File

@@ -46,6 +46,7 @@ function Widget({ options }) {
value: data.current_weather.temperature, value: data.current_weather.temperature,
style: "unit", style: "unit",
unit, unit,
...options.format,
})} })}
</PrimaryText> </PrimaryText>
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText> <SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText>

View File

@@ -42,7 +42,7 @@ function Widget({ options }) {
<Container options={options} additionalClassNames="information-widget-openweathermap"> <Container options={options} additionalClassNames="information-widget-openweathermap">
<PrimaryText> <PrimaryText>
{options.label && `${options.label}, `} {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> </PrimaryText>
<SecondaryText>{data.weather[0].description}</SecondaryText> <SecondaryText>{data.weather[0].description}</SecondaryText>
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" /> <WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,7 @@ export function getAllClasses(options, additionalClassNames = "") {
} }
return classNames( 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", "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, 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"; let widgetAlignedClasses = "flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap";
if (options?.style?.isRightAligned) { 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); return classNames(widgetAlignedClasses, additionalClassNames);

View File

@@ -28,7 +28,7 @@ export default async function handler(req, res) {
res.setHeader("Content-Type", mimeType); res.setHeader("Content-Type", mimeType);
return res.status(200).send(fileContent); return res.status(200).send(fileContent);
} catch (error) { } catch (error) {
logger.error(error); if (error) logger.error(error);
return res.status(500).end("Internal Server 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", error: "not found",
}); });
} catch (e) { } catch (e) {
logger.error(e); if (e) logger.error(e);
return res.status(500).send({ return res.status(500).send({
error: { message: e?.message ?? "Unknown error" }, error: { message: e?.message ?? "Unknown error" },
}); });

View File

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

View File

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

View File

@@ -59,7 +59,7 @@ export default async function handler(req, res) {
status, status,
}); });
} catch (e) { } catch (e) {
logger.error(e); if (e) logger.error(e);
res.status(500).send({ res.status(500).send({
error: "unknown error", 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.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); logger.debug("Unknown proxy service type: %s", type);
return res.status(403).json({ error: "Unkown proxy service type" }); return res.status(403).json({ error: "Unkown proxy service type" });
} catch (ex) { } catch (e) {
logger.error(ex); if (e) logger.error(e);
return res.status(500).send({ error: "Unexpected error" }); 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 })), nodes: Object.entries(nodeMap).map(([name, node]) => ({ name, ...node })),
}); });
} catch (e) { } catch (e) {
logger.error("exception %s", e); if (e) logger.error(e);
return res.status(500).send({ return res.status(500).send({
error: "unknown error", error: "unknown error",
}); });

View File

@@ -1,6 +1,7 @@
/* eslint-disable react/no-array-index-key */ /* eslint-disable react/no-array-index-key */
import useSWR, { SWRConfig } from "swr"; import useSWR, { SWRConfig } from "swr";
import Head from "next/head"; import Head from "next/head";
import Script from "next/script";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
import classNames from "classnames"; import classNames from "classnames";
import { useTranslation } from "next-i18next"; import { useTranslation } from "next-i18next";
@@ -10,7 +11,6 @@ import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import Tab, { slugify } from "components/tab"; import Tab, { slugify } from "components/tab";
import FileContent from "components/filecontent";
import ServicesGroup from "components/services/group"; import ServicesGroup from "components/services/group";
import BookmarksGroup from "components/bookmarks/group"; import BookmarksGroup from "components/bookmarks/group";
import Widget from "components/widgets/widget"; import Widget from "components/widgets/widget";
@@ -65,7 +65,7 @@ export async function getStaticProps() {
}, },
}; };
} catch (e) { } catch (e) {
if (logger) { if (logger && e) {
logger.error(e); logger.error(e);
} }
return { return {
@@ -161,10 +161,10 @@ function Index({ initialSettings, fallback }) {
const headerStyles = { const headerStyles = {
boxed: 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", "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-6 mb-0 sm:m-9 sm:mb-1 border-b-2 pb-4 border-theme-800 dark:border-theme-200/50", 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-6 mb-0 sm:m-9 sm:mb-0", clean: "m-5 mb-0 sm:m-9 sm:mb-0",
boxedWidgets: "m-6 mb-0 sm:m-9 sm:mb-0 sm:mt-1", boxedWidgets: "m-5 mb-0 sm:m-9 sm:mb-0 sm:mt-1",
}; };
function Home({ initialSettings }) { function Home({ initialSettings }) {
@@ -225,7 +225,7 @@ function Home({ initialSettings }) {
if (e.target.tagName === "BODY" || e.target.id === "inner_wrapper") { if (e.target.tagName === "BODY" || e.target.id === "inner_wrapper") {
if ( if (
(e.key.length === 1 && (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.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) ||
e.key.match(/([à-ü]|[À-Ü])/g) || // accented characters may require modifier keys e.key.match(/([à-ü]|[À-Ü])/g) || // accented characters may require modifier keys
(e.key === "v" && (e.ctrlKey || e.metaKey)) (e.key === "v" && (e.ctrlKey || e.metaKey))
@@ -282,7 +282,7 @@ function Home({ initialSettings }) {
return ( return (
<> <>
{tabs.length > 0 && ( {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 <ul
className={classNames( className={classNames(
"sm:flex rounded-md bg-theme-100/20 dark:bg-white/5", "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="msapplication-TileColor" content={themes[settings.color || "slate"][settings.theme || "dark"]} />
<meta name="theme-color" 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> </Head>
<link rel="preload" href="/api/config/custom.css" as="fetch" crossOrigin="anonymous" /> <Script src="/api/config/custom.js" />
<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 />
<div className="relative container m-auto flex flex-col justify-start z-10 h-full"> <div className="relative container m-auto flex flex-col justify-start z-10 h-full">
<QuickLaunch <QuickLaunch
@@ -423,11 +415,7 @@ function Home({ initialSettings }) {
`backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`, `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
)} )}
> >
<div <div id="widgets-wrap" className={classNames("flex flex-row w-full flex-wrap justify-between gap-x-2")}>
id="widgets-wrap"
style={{ width: "calc(100% + 1rem)" }}
className={classNames("flex flex-row w-full flex-wrap justify-between -ml-2 -mr-2")}
>
{widgets && ( {widgets && (
<> <>
{widgets {widgets
@@ -444,7 +432,7 @@ function Home({ initialSettings }) {
id="information-widgets-right" id="information-widgets-right"
className={classNames( className={classNames(
"m-auto flex flex-wrap grow sm:basis-auto justify-between md:justify-end", "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 {widgets

View File

@@ -325,7 +325,7 @@ export async function servicesFromKubernetes() {
return mappedServiceGroups; return mappedServiceGroups;
} catch (e) { } catch (e) {
logger.error(e); if (e) logger.error(e);
throw e; throw e;
} }
} }
@@ -378,6 +378,7 @@ export function cleanServiceGroups(groups) {
// customapi // customapi
mappings, mappings,
display,
// diskstation // diskstation
volume, volume,
@@ -394,6 +395,7 @@ export function cleanServiceGroups(groups) {
chart, chart,
metric, metric,
pointsLimit, pointsLimit,
diskUnits,
// glances, customapi, iframe // glances, customapi, iframe
refreshInterval, refreshInterval,
@@ -441,6 +443,9 @@ export function cleanServiceGroups(groups) {
// sonarr, radarr // sonarr, radarr
enableQueue, enableQueue,
// truenas
enablePools,
// unifi // unifi
site, site,
} = cleanedService.widget; } = cleanedService.widget;
@@ -510,6 +515,9 @@ export function cleanServiceGroups(groups) {
if (["sonarr", "radarr"].includes(type)) { if (["sonarr", "radarr"].includes(type)) {
if (enableQueue !== undefined) cleanedService.widget.enableQueue = JSON.parse(enableQueue); 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 (["diskstation", "qnap"].includes(type)) {
if (volume) cleanedService.widget.volume = volume; if (volume) cleanedService.widget.volume = volume;
} }
@@ -526,6 +534,7 @@ export function cleanServiceGroups(groups) {
} }
if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval; if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval;
if (pointsLimit) cleanedService.widget.pointsLimit = pointsLimit; if (pointsLimit) cleanedService.widget.pointsLimit = pointsLimit;
if (diskUnits) cleanedService.widget.diskUnits = diskUnits;
} }
if (type === "mjpeg") { if (type === "mjpeg") {
if (stream) cleanedService.widget.stream = stream; if (stream) cleanedService.widget.stream = stream;
@@ -539,6 +548,7 @@ export function cleanServiceGroups(groups) {
} }
if (type === "customapi") { if (type === "customapi") {
if (mappings) cleanedService.widget.mappings = mappings; if (mappings) cleanedService.widget.mappings = mappings;
if (display) cleanedService.widget.display = display;
if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval; if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval;
} }
if (type === "calendar") { if (type === "calendar") {

View File

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

View File

@@ -57,7 +57,7 @@ export function jsonArrayFilter(data, filter) {
export function sanitizeErrorURL(errorURL) { export function sanitizeErrorURL(errorURL) {
// Dont display sensitive params on frontend // Dont display sensitive params on frontend
const url = new URL(errorURL); 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, "***"); if (url.searchParams.has(key)) url.searchParams.set(key, "***");
}); });
return url.toString(); return url.toString();

View File

@@ -2,7 +2,7 @@ import cache from "memory-cache";
const defaultDuration = 5; const defaultDuration = 5;
export default async function cachedFetch(url, duration) { export default async function cachedFetch(url, duration, ua) {
const cached = cache.get(url); const cached = cache.get(url);
// eslint-disable-next-line no-param-reassign // 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 // 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); cache.put(url, data, duration * 1000 * 60);
return data; return data;
} }

View File

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

View File

@@ -35,6 +35,12 @@ export default async function genericProxyHandler(req, res, map) {
}; };
if (req.body) { if (req.body) {
params.body = req.body; params.body = req.body;
} else if (widget.requestBody) {
if (typeof widget.requestBody === "object") {
params.body = JSON.stringify(widget.requestBody);
} else {
params.body = widget.requestBody;
}
} }
const [status, contentType, data] = await httpProxy(url, params); const [status, contentType, data] = await httpProxy(url, params);

View File

@@ -44,7 +44,7 @@ function handleRequest(requestor, url, params) {
// zlib errors // zlib errors
responseContent.on("error", (e) => { responseContent.on("error", (e) => {
logger.error(e); if (e) logger.error(e);
responseContent = response; // fallback responseContent = response; // fallback
}); });
response.pipe(responseContent); response.pipe(responseContent);
@@ -112,7 +112,7 @@ export async function httpProxy(url, params = {}) {
constructedUrl.port ? `:${constructedUrl.port}` : "", constructedUrl.port ? `:${constructedUrl.port}` : "",
constructedUrl.pathname, constructedUrl.pathname,
); );
logger.error(err); if (err) logger.error(err);
return [500, "application/json", { error: { message: err?.message ?? "Unknown error", url, rawError: err } }, null]; return [500, "application/json", { error: { message: err?.message ?? "Unknown error", url, rawError: err } }, null];
} }
} }

View File

@@ -63,7 +63,7 @@ export default async function audiobookshelfProxyHandler(req, res) {
return res.status(200).send(libraryStats); return res.status(200).send(libraryStats);
} catch (e) { } catch (e) {
logger.error(e.message); if (e) logger.error(e);
return res.status(500).send({ error: { message: e.message } }); return res.status(500).send({ error: { message: e.message } });
} }
} }

View File

@@ -23,6 +23,7 @@ const components = {
docker: dynamic(() => import("./docker/component")), docker: dynamic(() => import("./docker/component")),
kubernetes: dynamic(() => import("./kubernetes/component")), kubernetes: dynamic(() => import("./kubernetes/component")),
emby: dynamic(() => import("./emby/component")), emby: dynamic(() => import("./emby/component")),
esphome: dynamic(() => import("./esphome/component")),
evcc: dynamic(() => import("./evcc/component")), evcc: dynamic(() => import("./evcc/component")),
fileflows: dynamic(() => import("./fileflows/component")), fileflows: dynamic(() => import("./fileflows/component")),
flood: dynamic(() => import("./flood/component")), flood: dynamic(() => import("./flood/component")),
@@ -31,6 +32,7 @@ const components = {
gamedig: dynamic(() => import("./gamedig/component")), gamedig: dynamic(() => import("./gamedig/component")),
gatus: dynamic(() => import("./gatus/component")), gatus: dynamic(() => import("./gatus/component")),
ghostfolio: dynamic(() => import("./ghostfolio/component")), ghostfolio: dynamic(() => import("./ghostfolio/component")),
gitea: dynamic(() => import("./gitea/component")),
glances: dynamic(() => import("./glances/component")), glances: dynamic(() => import("./glances/component")),
gluetun: dynamic(() => import("./gluetun/component")), gluetun: dynamic(() => import("./gluetun/component")),
gotify: dynamic(() => import("./gotify/component")), gotify: dynamic(() => import("./gotify/component")),
@@ -38,6 +40,7 @@ const components = {
hdhomerun: dynamic(() => import("./hdhomerun/component")), hdhomerun: dynamic(() => import("./hdhomerun/component")),
peanut: dynamic(() => import("./peanut/component")), peanut: dynamic(() => import("./peanut/component")),
homeassistant: dynamic(() => import("./homeassistant/component")), homeassistant: dynamic(() => import("./homeassistant/component")),
homebox: dynamic(() => import("./homebox/component")),
homebridge: dynamic(() => import("./homebridge/component")), homebridge: dynamic(() => import("./homebridge/component")),
healthchecks: dynamic(() => import("./healthchecks/component")), healthchecks: dynamic(() => import("./healthchecks/component")),
immich: dynamic(() => import("./immich/component")), immich: dynamic(() => import("./immich/component")),
@@ -78,6 +81,7 @@ const components = {
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")), proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
pialert: dynamic(() => import("./pialert/component")), pialert: dynamic(() => import("./pialert/component")),
pihole: dynamic(() => import("./pihole/component")), pihole: dynamic(() => import("./pihole/component")),
plantit: dynamic(() => import("./plantit/component")),
plex: dynamic(() => import("./plex/component")), plex: dynamic(() => import("./plex/component")),
portainer: dynamic(() => import("./portainer/component")), portainer: dynamic(() => import("./portainer/component")),
prometheus: dynamic(() => import("./prometheus/component")), prometheus: dynamic(() => import("./prometheus/component")),
@@ -95,8 +99,10 @@ const components = {
scrutiny: dynamic(() => import("./scrutiny/component")), scrutiny: dynamic(() => import("./scrutiny/component")),
sonarr: dynamic(() => import("./sonarr/component")), sonarr: dynamic(() => import("./sonarr/component")),
speedtest: dynamic(() => import("./speedtest/component")), speedtest: dynamic(() => import("./speedtest/component")),
stash: dynamic(() => import("./stash/component")),
strelaysrv: dynamic(() => import("./strelaysrv/component")), strelaysrv: dynamic(() => import("./strelaysrv/component")),
tailscale: dynamic(() => import("./tailscale/component")), tailscale: dynamic(() => import("./tailscale/component")),
tandoor: dynamic(() => import("./tandoor/component")),
tautulli: dynamic(() => import("./tautulli/component")), tautulli: dynamic(() => import("./tautulli/component")),
tdarr: dynamic(() => import("./tdarr/component")), tdarr: dynamic(() => import("./tdarr/component")),
traefik: dynamic(() => import("./traefik/component")), traefik: dynamic(() => import("./traefik/component")),

View File

@@ -90,6 +90,12 @@ function formatValue(t, mapping, rawValue) {
// nothing // nothing
} }
// Apply fixed prefix.
const prefix = mapping?.prefix;
if (prefix) {
value = `${prefix} ${value}`;
}
// Apply fixed suffix. // Apply fixed suffix.
const suffix = mapping?.suffix; const suffix = mapping?.suffix;
if (suffix) { if (suffix) {
@@ -99,12 +105,35 @@ function formatValue(t, mapping, rawValue) {
return value; return value;
} }
function getColor(mapping, customData) {
const value = getValue(mapping.additionalField.field, customData);
const { color } = mapping.additionalField;
switch (color) {
case "adaptive":
try {
const number = parseFloat(value);
return number > 0 ? "text-emerald-300" : "text-rose-300";
} catch (e) {
return "";
}
case "black":
return `text-black`;
case "white":
return `text-white`;
case "theme":
return `text-theme-500`;
default:
return "";
}
}
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();
const { widget } = service; const { widget } = service;
const { mappings = [], refreshInterval = 10000 } = widget; const { mappings = [], refreshInterval = 10000, display = "block" } = widget;
const { data: customData, error: customError } = useWidgetAPI(widget, null, { const { data: customData, error: customError } = useWidgetAPI(widget, null, {
refreshInterval: Math.max(1000, refreshInterval), refreshInterval: Math.max(1000, refreshInterval),
}); });
@@ -114,24 +143,73 @@ export default function Component({ service }) {
} }
if (!customData) { if (!customData) {
return ( switch (display) {
<Container service={service}> case "list":
{mappings.slice(0, 4).map((item) => ( return (
<Block label={item.label} key={item.label} /> <Container service={service}>
))} <div className="flex flex-col w-full">
</Container> {mappings.map((mapping) => (
); <div
key={mapping.label}
className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-row items-center justify-between p-1 text-xs animate-pulse"
>
<div className="font-thin pl-2">{mapping.label}</div>
<div className="flex flex-row text-right">
<div className="font-bold mr-2">-</div>
</div>
</div>
))}
</div>
</Container>
);
default:
return (
<Container service={service}>
{mappings.slice(0, 4).map((item) => (
<Block label={item.label} key={item.label} />
))}
</Container>
);
}
} }
return ( switch (display) {
<Container service={service}> case "list":
{mappings.slice(0, 4).map((mapping) => ( return (
<Block <Container service={service}>
label={mapping.label} <div className="flex flex-col w-full">
key={mapping.label} {mappings.map((mapping) => (
value={formatValue(t, mapping, getValue(mapping.field, customData))} <div
/> key={mapping.label}
))} className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-row items-center justify-between p-1 text-xs"
</Container> >
); <div className="font-thin pl-2">{mapping.label}</div>
<div className="flex flex-row text-right">
<div className="font-bold mr-2">{formatValue(t, mapping, getValue(mapping.field, customData))}</div>
{mapping.additionalField && (
<div className={`font-bold mr-2 ${getColor(mapping, customData)}`}>
{formatValue(t, mapping.additionalField, getValue(mapping.additionalField.field, customData))}
</div>
)}
</div>
</div>
))}
</div>
</Container>
);
default:
return (
<Container service={service}>
{mappings.slice(0, 4).map((mapping) => (
<Block
label={mapping.label}
key={mapping.label}
value={formatValue(t, mapping, getValue(mapping.field, customData))}
/>
))}
</Container>
);
}
} }

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