Compare commits
148 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed3d143b8a | ||
|
|
136032f920 | ||
|
|
150e9bf53f | ||
|
|
a3d92d6a73 | ||
|
|
d3a48ae0e0 | ||
|
|
4aa7e7602b | ||
|
|
d63c610cf5 | ||
|
|
0a31b0fc1c | ||
|
|
3737543766 | ||
|
|
85547277d1 | ||
|
|
8e962abc16 | ||
|
|
31a7559b86 | ||
|
|
b59921b843 | ||
|
|
95c126f2c6 | ||
|
|
c8425acd34 | ||
|
|
7ea9c00c18 | ||
|
|
3651585271 | ||
|
|
22732e33e5 | ||
|
|
9caf72aae7 | ||
|
|
5a73166d70 | ||
|
|
5b23f7d13a | ||
|
|
26ae001b5a | ||
|
|
59e5c0306f | ||
|
|
baedc001d9 | ||
|
|
6469aa2350 | ||
|
|
d4765c1e7f | ||
|
|
4bba516fdf | ||
|
|
ddde9992c5 | ||
|
|
c81612e39b | ||
|
|
993739ab8e | ||
|
|
20a84da5dc | ||
|
|
6a7532b5b7 | ||
|
|
714936a2e9 | ||
|
|
d2a40ddf33 | ||
|
|
eba30108f6 | ||
|
|
995c8a481e | ||
|
|
5b5121a609 | ||
|
|
c008cc92c2 | ||
|
|
858ccd72de | ||
|
|
a87935875d | ||
|
|
cc240f4f87 | ||
|
|
47c401145d | ||
|
|
76d46ec1ba | ||
|
|
fbc099d198 | ||
|
|
3de04bdb22 | ||
|
|
c042c245a3 | ||
|
|
68ff84c85a | ||
|
|
dfe7b0d60b | ||
|
|
afdca50bd2 | ||
|
|
cb2b28ca4b | ||
|
|
b7fb086476 | ||
|
|
2bf423132d | ||
|
|
84f57bb0a1 | ||
|
|
5043b9cd30 | ||
|
|
051f439434 | ||
|
|
dbadcd8f7a | ||
|
|
042a381b66 | ||
|
|
9b95ac3c91 | ||
|
|
0a08b8fb9b | ||
|
|
b70e179ff9 | ||
|
|
5fbb444d5f | ||
|
|
477d249da8 | ||
|
|
f12dd52208 | ||
|
|
452304b471 | ||
|
|
18cd1f961f | ||
|
|
6a5836f096 | ||
|
|
7dffe393ab | ||
|
|
fdbb8d8b35 | ||
|
|
2b92c98975 | ||
|
|
39f416c6a9 | ||
|
|
34903d528c | ||
|
|
230f1f77f9 | ||
|
|
f1dc67f206 | ||
|
|
53d1a57f3d | ||
|
|
e71af87b90 | ||
|
|
8f78184323 | ||
|
|
f861eb4bd9 | ||
|
|
a74aa5412c | ||
|
|
06772713ce | ||
|
|
4a8b7377a8 | ||
|
|
5f8b96704b | ||
|
|
d512ae7e22 | ||
|
|
11eaf9eb8e | ||
|
|
ef70e9317d | ||
|
|
f67e2c5a45 | ||
|
|
ce8259b031 | ||
|
|
d4aa866e5b | ||
|
|
6989ce8311 | ||
|
|
5875b1b264 | ||
|
|
fca7fcbad2 | ||
|
|
bbad5a7866 | ||
|
|
08153f9f54 | ||
|
|
81e51d2877 | ||
|
|
030f05b24b | ||
|
|
49b6ef2bde | ||
|
|
29bc596090 | ||
|
|
4f301856fb | ||
|
|
1cc4ae5c03 | ||
|
|
4fa51821ef | ||
|
|
4bafe6bfe7 | ||
|
|
184aa5eca6 | ||
|
|
a9df79642d | ||
|
|
e23e25890a | ||
|
|
28bd849af7 | ||
|
|
918585c3e2 | ||
|
|
0906420584 | ||
|
|
18bd9c856d | ||
|
|
93379145ac | ||
|
|
9c81d34d66 | ||
|
|
b51fcdb342 | ||
|
|
db2501633d | ||
|
|
5cd940f3cc | ||
|
|
1bc19e7857 | ||
|
|
83e3800ddf | ||
|
|
34ef216f3f | ||
|
|
2e014a5883 | ||
|
|
46a57c1cf2 | ||
|
|
78527cb375 | ||
|
|
508f687491 | ||
|
|
9a8ea9e1fe | ||
|
|
b1ae5f700e | ||
|
|
f0a67d9a29 | ||
|
|
5d113ea280 | ||
|
|
d45ae5fab9 | ||
|
|
02249d20c2 | ||
|
|
cefa0d8fde | ||
|
|
4933b4f60d | ||
|
|
55174476e8 | ||
|
|
a60053e6c4 | ||
|
|
6756838d5f | ||
|
|
74fe7a7a28 | ||
|
|
5812a6bd97 | ||
|
|
824f4b8acc | ||
|
|
a6ea9ac333 | ||
|
|
a87bda7810 | ||
|
|
a8f00f5242 | ||
|
|
6268db182e | ||
|
|
6f077f1c5e | ||
|
|
ff21033b0c | ||
|
|
6fdf1dfaa8 | ||
|
|
f1e0b9236c | ||
|
|
4da75134ed | ||
|
|
957ba4e058 | ||
|
|
732ef95bd9 | ||
|
|
37d728cc83 | ||
|
|
b4a8d47636 | ||
|
|
15605e3f09 | ||
|
|
ccf0970226 |
@@ -4,8 +4,7 @@ DATABASE_URL="file:./database/db.sqlite"
|
||||
# You can generate a new secret on the command line with:
|
||||
# openssl rand -base64 32
|
||||
# https://next-auth.js.org/configuration/options#secret
|
||||
NEXTAUTH_URL="http://localhost:3000"
|
||||
|
||||
AUTH_TRUST_HOST="true"
|
||||
NEXTAUTH_SECRET="anything"
|
||||
|
||||
# Disable analytics
|
||||
|
||||
2
.github/workflows/docker_dev.yml
vendored
2
.github/workflows/docker_dev.yml
vendored
@@ -112,7 +112,7 @@ jobs:
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
platforms: linux/amd64,linux/arm64
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
|
||||
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
- uses: actions/stale@v5
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-issue-message: "Hello 👋, this issue has been open for 60 without activity. Please close this issue if it's no longer relevant or has been resolved. Still relevant? Simply reply and I'll mark it as active."
|
||||
stale-issue-message: "Hello 👋, this issue has been open for 60 days without activity. We mark issues to help prioritise and close dead issues. Can you confirm that this issue is still relevant on the latest version? I'll remove the stale label as soon as there is further activity on this issue. Thank you 🙏"
|
||||
stale-pr-message: 'Hello 👋, this PR has gone stale. Please reply to mark it as active.'
|
||||
stale-issue-label: 'Stale'
|
||||
stale-pr-label: 'Stale'
|
||||
|
||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -11,7 +11,7 @@
|
||||
"layout.manage.navigation.**",
|
||||
],
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports": true
|
||||
"source.organizeImports": "explicit"
|
||||
},
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"explorer.fileNesting.patterns": {
|
||||
|
||||
@@ -32,16 +32,14 @@ RUN apt update && apt install -y openssl wget
|
||||
# Move node_modules to temp location to avoid overwriting
|
||||
RUN mv node_modules _node_modules
|
||||
RUN rm package.json
|
||||
|
||||
# Install dependencies for migration
|
||||
RUN cp ./migrate/package.json ./package.json
|
||||
RUN yarn
|
||||
|
||||
# Copy better_sqlite3 build for current platform
|
||||
RUN cp /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/_node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||
|
||||
# Copy node_modules for migration to migrate folder for migration script
|
||||
RUN mv node_modules ./migrate/node_modules
|
||||
|
||||
# Copy temp node_modules of app to app folder
|
||||
RUN mv _node_modules node_modules
|
||||
|
||||
@@ -54,7 +52,7 @@ EXPOSE $PORT
|
||||
ENV PORT=${PORT}
|
||||
|
||||
ENV DATABASE_URL "file:/data/db.sqlite"
|
||||
ENV NEXTAUTH_URL "http://localhost:7575"
|
||||
ENV AUTH_TRUST_HOST="true"
|
||||
ENV PORT 7575
|
||||
ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED
|
||||
|
||||
@@ -63,4 +61,4 @@ HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \
|
||||
|
||||
VOLUME [ "/app/data/configs" ]
|
||||
VOLUME [ "/data" ]
|
||||
ENTRYPOINT ["sh", "./scripts/run.sh"]
|
||||
ENTRYPOINT ["sh", "./scripts/run.sh"]
|
||||
55
README.md
55
README.md
@@ -53,34 +53,46 @@ Simplify the management of your server with Homarr - a sleek, modern dashboard t
|
||||
- 🦞 Comprehensive built-in icon picker with over 7000 icons
|
||||
- 🐳 Easy deployment with Docker, unRAID, and Synology
|
||||
- 🚀 Compatible with any major consumer hardware (x86, Raspberry Pi, old laptops, ...)
|
||||
- 💵 Free and Open-Source - your data stays on your device. No telemetry data.
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||

|
||||
|
||||
Homarr has a [built-in collection of widgets and integrations](https://homarr.dev/docs/integrations/), that connect to your applications and enable you to control them directly from the dashboard.
|
||||
Each widget and integration has a comprehensive documentation for your comfort.
|
||||
Homarr will integrate with the following applications of yours:
|
||||
Homarr has a [built-in collection of widgets and integrations](https://homarr.dev/docs/category/integrations), that connect to your applications and enable you to control them directly from the dashboard.
|
||||
Each widget and integration has a comprehensive documentation
|
||||
Homarr will integrate with the following applications:
|
||||
|
||||
- 📥 Torrent clients
|
||||
- [Deluge](https://homarr.dev/docs/integrations/#deluge)
|
||||
- [Transmission](https://homarr.dev/docs/integrations/#transmission)
|
||||
- [qBittorent](https://homarr.dev/docs/integrations/#qbittorrent-integration)
|
||||
- 📥 Usenet clients
|
||||
- [SABnzbd](https://homarr.dev/docs/integrations/#sabnzbd)
|
||||
- [NZBGet](https://homarr.dev/docs/integrations/#nzbget)
|
||||
- 📚 Media collection managers
|
||||
- [Sonarr](https://homarr.dev/docs/integrations/#sonarr)
|
||||
- [Radarr](https://homarr.dev/docs/integrations/#radarr)
|
||||
- [Lidarr](https://homarr.dev/docs/integrations/#lidarr)
|
||||
- [Readarr](https://homarr.dev/docs/integrations/#readarr)
|
||||
- 🎞️ Media request managers
|
||||
- [Overseerr](https://homarr.dev/docs/integrations/#overseerr--jellyseerr)
|
||||
- [Jellyseerr](https://homarr.dev/docs/integrations/#overseerr--jellyseerr)
|
||||
- 🔌 [Dash.](https://homarr.dev/docs/integrations/#dash)
|
||||
- 🐳 [Docker](https://homarr.dev/docs/integrations/#docker)
|
||||
📥 Torrent clients
|
||||
- [Deluge](https://homarr.dev/docs/integrations/torrent#deluge)
|
||||
- [Transmission](https://homarr.dev/docs/integrations/torrent#transmission)
|
||||
- [qBittorent](https://homarr.dev/docs/integrations/torrent#qbittorrent-integration)
|
||||
|
||||
📥 Usenet clients
|
||||
- [SABnzbd](https://homarr.dev/docs/integrations/usenet#sabnzbd)
|
||||
- [NZBGet](https://homarr.dev/docs/integrations/usenet#nzbget)
|
||||
|
||||
📺 Media servers
|
||||
- [Plex](https://homarr.dev/docs/integrations/media-server/#plex)
|
||||
- [Jellyfin](https://homarr.dev/docs/integrations/media-server#jellyfin-and-emby)
|
||||
|
||||
📚 Media collection managers
|
||||
- [Sonarr](https://homarr.dev/docs/integrations/servarr#sonarr)
|
||||
- [Radarr](https://homarr.dev/docs/integrations/servarr#radarr)
|
||||
- [Lidarr](https://homarr.dev/docs/integrations/servarr#lidarr)
|
||||
- [Readarr](https://homarr.dev/docs/integrations/servarr#readarr)
|
||||
|
||||
🎞️ Media request managers
|
||||
- [Overseerr](https://homarr.dev/docs/integrations/media-requester)
|
||||
- [Jellyseerr](https://homarr.dev/docs/integrations/media-requester)
|
||||
|
||||
🚫 DNS ad-blockers
|
||||
- [Pihole](https://homarr.dev/docs/integrations/dns#pihole)
|
||||
- [AdGuard Home](https://homarr.dev/docs/integrations/dns#adguard-home)
|
||||
|
||||
Other integrations
|
||||
- [🔌 Dash.](https://homarr.dev/docs/integrations/hardware)
|
||||
- [🐳 Docker](https://homarr.dev/docs/integrations/containers)
|
||||
|
||||
We're constantly adding new integrations and widgets, which will enhance your experience even further.
|
||||
|
||||
@@ -123,3 +135,4 @@ You can also support us by helping with [translating the entire project](https:/
|
||||
All contributions, regardless of their size or scope, are welcome and highly appreciated! Thank you ❤️
|
||||
|
||||

|
||||
[](https://argos-ci.com?utm_source=%5Bhomarr%5D&utm_campaign=oss)
|
||||
|
||||
@@ -432,7 +432,7 @@
|
||||
"type": "notebook",
|
||||
"properties": {
|
||||
"showToolbar": true,
|
||||
"content": "<h2><strong>Welcome to Homarr 🚀👋</strong></h2><p>We're glad that you're here! Homarr is a <em>modern </em>and <em>easy to use</em> dashboard that helps you to <strong>organize and manage</strong> your home network from one place. Control is <strong>at your fingertips</strong>.</p><p>We recommend you to read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev/docs/introduction/after-the-installation\">getting started guide</a> first. To edit this board you must enter the edit mode - only administrators can do this. Adding an app is the first step you should take. You can do this by clicking the <code>Add tile</code> button at the top right and select <code>App</code>. After you provided an internal URL, external URL and selected an icon you can drag it around when holding down the left mouse button. Make it bigger or smaller using the drag icon at the bottom right. When you're happy with it's position, you <strong>must exit edit mode to save your board</strong>. Adding widgets works the same way but may require additional configuration - read the documentation for more information.</p><p>To remove this widget, you must log in to your administrator account and click on the menu to delete it.</p><p><strong><u>Your TODO list:</u></strong></p><ul data-type=\"taskList\"><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev\">documentation</a></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add your <em>first app</em></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p><em>Resize </em>and <em>drag</em> your app to a different position</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add the <em>clock widget</em> to your dashboard</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Create a <em>new user</em></p></div></li></ul>"
|
||||
"content": "<h2><strong>Welcome to Homarr 🚀👋</strong></h2><p>We're glad that you're here! Homarr is a <em>modern </em>and <em>easy to use</em> dashboard that helps you to <strong>organize and manage</strong> your home network from one place. Control is <strong>at your fingertips</strong>.</p><p>We recommend you to read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev/docs/getting-started/after-the-installation\">getting started guide</a> first. To edit this board you must enter the edit mode - only administrators can do this. Adding an app is the first step you should take. You can do this by clicking the <code>Add tile</code> button at the top right and select <code>App</code>. After you provided an internal URL, external URL and selected an icon you can drag it around when holding down the left mouse button. Make it bigger or smaller using the drag icon at the bottom right. When you're happy with it's position, you <strong>must exit edit mode to save your board</strong>. Adding widgets works the same way but may require additional configuration - read the documentation for more information.</p><p>To remove this widget, you must log in to your administrator account and click on the menu to delete it.</p><p><strong><u>Your TODO list:</u></strong></p><ul data-type=\"taskList\"><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev\">documentation</a></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add your <em>first app</em></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p><em>Resize </em>and <em>drag</em> your app to a different position</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add the <em>clock widget</em> to your dashboard</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Create a <em>new user</em></p></div></li></ul>"
|
||||
},
|
||||
"area": {
|
||||
"type": "wrapper",
|
||||
@@ -510,4 +510,4 @@
|
||||
"allowGuests": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10
drizzle/0001_brave_mimic.sql
Normal file
10
drizzle/0001_brave_mimic.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
CREATE TABLE `migrate_token` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`token` text NOT NULL,
|
||||
`boards` integer NOT NULL,
|
||||
`users` integer NOT NULL,
|
||||
`integrations` integer NOT NULL,
|
||||
`expires` integer NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `migrate_token_token_unique` ON `migrate_token` (`token`);
|
||||
527
drizzle/meta/0001_snapshot.json
Normal file
527
drizzle/meta/0001_snapshot.json
Normal file
@@ -0,0 +1,527 @@
|
||||
{
|
||||
"version": "5",
|
||||
"dialect": "sqlite",
|
||||
"id": "9c8971c9-6d33-4d14-b318-b19ff9fbb88f",
|
||||
"prevId": "32c1bc91-e69f-4e1d-b53c-9c43f2e6c9d3",
|
||||
"tables": {
|
||||
"account": {
|
||||
"name": "account",
|
||||
"columns": {
|
||||
"userId": {
|
||||
"name": "userId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"type": {
|
||||
"name": "type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"provider": {
|
||||
"name": "provider",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"providerAccountId": {
|
||||
"name": "providerAccountId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"refresh_token": {
|
||||
"name": "refresh_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"access_token": {
|
||||
"name": "access_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires_at": {
|
||||
"name": "expires_at",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token_type": {
|
||||
"name": "token_type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"scope": {
|
||||
"name": "scope",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"id_token": {
|
||||
"name": "id_token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"session_state": {
|
||||
"name": "session_state",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"userId_idx": {
|
||||
"name": "userId_idx",
|
||||
"columns": [
|
||||
"userId"
|
||||
],
|
||||
"isUnique": false
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"account_userId_user_id_fk": {
|
||||
"name": "account_userId_user_id_fk",
|
||||
"tableFrom": "account",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"userId"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {
|
||||
"account_provider_providerAccountId_pk": {
|
||||
"columns": [
|
||||
"provider",
|
||||
"providerAccountId"
|
||||
]
|
||||
}
|
||||
},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"invite": {
|
||||
"name": "invite",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token": {
|
||||
"name": "token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"created_by_id": {
|
||||
"name": "created_by_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"invite_token_unique": {
|
||||
"name": "invite_token_unique",
|
||||
"columns": [
|
||||
"token"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"invite_created_by_id_user_id_fk": {
|
||||
"name": "invite_created_by_id_user_id_fk",
|
||||
"tableFrom": "invite",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"created_by_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"migrate_token": {
|
||||
"name": "migrate_token",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token": {
|
||||
"name": "token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"boards": {
|
||||
"name": "boards",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"users": {
|
||||
"name": "users",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"integrations": {
|
||||
"name": "integrations",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"migrate_token_token_unique": {
|
||||
"name": "migrate_token_token_unique",
|
||||
"columns": [
|
||||
"token"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"session": {
|
||||
"name": "session",
|
||||
"columns": {
|
||||
"sessionToken": {
|
||||
"name": "sessionToken",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"userId": {
|
||||
"name": "userId",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_id_idx": {
|
||||
"name": "user_id_idx",
|
||||
"columns": [
|
||||
"userId"
|
||||
],
|
||||
"isUnique": false
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"session_userId_user_id_fk": {
|
||||
"name": "session_userId_user_id_fk",
|
||||
"tableFrom": "session",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"userId"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"user_setting": {
|
||||
"name": "user_setting",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"user_id": {
|
||||
"name": "user_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"color_scheme": {
|
||||
"name": "color_scheme",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'environment'"
|
||||
},
|
||||
"language": {
|
||||
"name": "language",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'en'"
|
||||
},
|
||||
"default_board": {
|
||||
"name": "default_board",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'default'"
|
||||
},
|
||||
"first_day_of_week": {
|
||||
"name": "first_day_of_week",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'monday'"
|
||||
},
|
||||
"search_template": {
|
||||
"name": "search_template",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": "'https://google.com/search?q=%s'"
|
||||
},
|
||||
"open_search_in_new_tab": {
|
||||
"name": "open_search_in_new_tab",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": true
|
||||
},
|
||||
"disable_ping_pulse": {
|
||||
"name": "disable_ping_pulse",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"replace_ping_with_icons": {
|
||||
"name": "replace_ping_with_icons",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"use_debug_language": {
|
||||
"name": "use_debug_language",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"auto_focus_search": {
|
||||
"name": "auto_focus_search",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {
|
||||
"user_setting_user_id_user_id_fk": {
|
||||
"name": "user_setting_user_id_user_id_fk",
|
||||
"tableFrom": "user_setting",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"user_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"user": {
|
||||
"name": "user",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"email": {
|
||||
"name": "email",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"emailVerified": {
|
||||
"name": "emailVerified",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"image": {
|
||||
"name": "image",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"password": {
|
||||
"name": "password",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"salt": {
|
||||
"name": "salt",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"is_admin": {
|
||||
"name": "is_admin",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
},
|
||||
"is_owner": {
|
||||
"name": "is_owner",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"verificationToken": {
|
||||
"name": "verificationToken",
|
||||
"columns": {
|
||||
"identifier": {
|
||||
"name": "identifier",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"token": {
|
||||
"name": "token",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"expires": {
|
||||
"name": "expires",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {
|
||||
"verificationToken_identifier_token_pk": {
|
||||
"columns": [
|
||||
"identifier",
|
||||
"token"
|
||||
]
|
||||
}
|
||||
},
|
||||
"uniqueConstraints": {}
|
||||
}
|
||||
},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,13 @@
|
||||
"when": 1695874816934,
|
||||
"tag": "0000_supreme_the_captain",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "5",
|
||||
"when": 1730643218521,
|
||||
"tag": "0001_brave_mimic",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
// This file is used to migrate the database to the current version
|
||||
// It is run when the docker container starts
|
||||
import Database from 'better-sqlite3';
|
||||
import dotenv from 'dotenv';
|
||||
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
||||
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
|
||||
const Database = require('better-sqlite3');
|
||||
const path = require('path');
|
||||
const dotenv = require('dotenv');
|
||||
const { drizzle } = require('drizzle-orm/better-sqlite3');
|
||||
const { migrate } = require('drizzle-orm/better-sqlite3/migrator');
|
||||
|
||||
const migrationsFolder = process.argv[2] ?? '../drizzle';
|
||||
|
||||
dotenv.config({ path: __dirname + '/../.env' });
|
||||
|
||||
dotenv.config({ path: path.join(__dirname, '/../.env') });
|
||||
const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', ''));
|
||||
|
||||
const db = drizzle(sqlite);
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
"license": "MIT",
|
||||
"description": "This package.json is used for the migration script the dependencies are only installed within the Dockerfile.",
|
||||
"scripts": {
|
||||
"db:migrate": "ts-node ./migrate.ts"
|
||||
"db:migrate": "tsx ./migrate.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/better-sqlite3": "^7.6.7",
|
||||
"better-sqlite3": "8.6.0",
|
||||
"drizzle-orm": "^0.28.6",
|
||||
"dotenv": "^16.3.1",
|
||||
"ts-node": "^10.9.1",
|
||||
"tsx": "4.19.1",
|
||||
"typescript": "^5.2.2"
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ module.exports = {
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: [
|
||||
'ar',
|
||||
'cn',
|
||||
'cr',
|
||||
'cs',
|
||||
@@ -33,6 +34,9 @@ module.exports = {
|
||||
'tw',
|
||||
'uk',
|
||||
'vi',
|
||||
'et',
|
||||
'lt',
|
||||
'ro'
|
||||
],
|
||||
|
||||
localeDetection: false,
|
||||
|
||||
@@ -6,6 +6,11 @@ const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
||||
});
|
||||
|
||||
module.exports = withBundleAnalyzer({
|
||||
webpack: (config) => {
|
||||
// for dynamic loading of auth providers
|
||||
config.experiments = { ...config.experiments, topLevelAwait: true };
|
||||
return config;
|
||||
},
|
||||
images: {
|
||||
domains: ['cdn.jsdelivr.net'],
|
||||
},
|
||||
|
||||
20
package.json
20
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homarr",
|
||||
"version": "0.14.4",
|
||||
"version": "0.15.10",
|
||||
"description": "Homarr - A homepage for your server.",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"dev": "next dev",
|
||||
"build": "NEXTAUTH_SECRET=WILL_BE_OVERWRITTEN next build",
|
||||
"analyze": "ANALYZE=true next build",
|
||||
"turbo": "DATABASE_URL=file:WILL_BE_OVERWRITTEN.sqlite NEXTAUTH_URL=http://WILL_BE_OVERWRITTEN turbo build",
|
||||
"turbo": "DATABASE_URL=file:WILL_BE_OVERWRITTEN.sqlite turbo build",
|
||||
"start": "next start",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"export": "next build && next export",
|
||||
@@ -19,15 +19,16 @@
|
||||
"prettier:check": "prettier --check \"**/*.{ts,tsx}\"",
|
||||
"prettier:write": "prettier --write \"**/*.{ts,tsx}\"",
|
||||
"test": "SKIP_ENV_VALIDATION=1 vitest",
|
||||
"test:docker": "yarn run turbo build && yarn test:run && docker build . -t homarr:local-dev && docker run -p 7575:7575 --name homarr-dev homarr:local-dev",
|
||||
"test:ui": "SKIP_ENV_VALIDATION=1 vitest --ui",
|
||||
"test:run": "SKIP_ENV_VALIDATION=1 vitest run",
|
||||
"test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage",
|
||||
"docker:build": "turbo build && docker build . -t homarr:local-dev",
|
||||
"docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev",
|
||||
"db:migrate": "dotenv ts-node drizzle/migrate/migrate.ts ./drizzle"
|
||||
"db:migrate": "dotenv tsx drizzle/migrate/migrate.ts ./drizzle",
|
||||
"db:add": "drizzle-kit generate:sqlite --config ./drizzle.config.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@auth/drizzle-adapter": "^0.3.2",
|
||||
"@ctrl/deluge": "^4.1.0",
|
||||
"@ctrl/qbittorrent": "^6.0.0",
|
||||
"@ctrl/shared-torrent": "^4.1.1",
|
||||
@@ -72,6 +73,7 @@
|
||||
"@trpc/server": "^10.37.1",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@vitejs/plugin-react": "^4.0.0",
|
||||
"adm-zip": "^0.5.15",
|
||||
"axios": "^1.0.0",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"better-sqlite3": "^8.6.0",
|
||||
@@ -92,9 +94,8 @@
|
||||
"i18next": "^22.5.1",
|
||||
"immer": "^10.0.2",
|
||||
"js-file-download": "^0.4.12",
|
||||
"ldapjs": "^3.0.5",
|
||||
"mantine-react-table": "^1.3.4",
|
||||
"moment": "^2.29.4",
|
||||
"moment-timezone": "^0.5.43",
|
||||
"next": "13.4.12",
|
||||
"next-auth": "^4.23.0",
|
||||
"next-i18next": "^14.0.0",
|
||||
@@ -108,6 +109,7 @@
|
||||
"rss-parser": "^3.12.0",
|
||||
"sabnzbd-api": "^1.5.0",
|
||||
"swagger-ui-react": "^5.11.0",
|
||||
"tldts": "^6.1.18",
|
||||
"trpc-openapi": "^1.2.0",
|
||||
"uuid": "^9.0.0",
|
||||
"xml-js": "^1.6.11",
|
||||
@@ -120,10 +122,12 @@
|
||||
"@next/eslint-plugin-next": "^13.4.5",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
|
||||
"@types/adm-zip": "^0.5.5",
|
||||
"@types/better-sqlite3": "^7.6.5",
|
||||
"@types/cookies": "^0.7.7",
|
||||
"@types/dockerode": "^3.3.9",
|
||||
"@types/node": "18.17.8",
|
||||
"@types/ldapjs": "^3.0.2",
|
||||
"@types/node": "^20.6.0",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"@types/react": "^18.2.11",
|
||||
"@types/swagger-ui-react": "^4.18.3",
|
||||
@@ -148,7 +152,7 @@
|
||||
"node-mocks-http": "^1.12.2",
|
||||
"prettier": "^3.0.0",
|
||||
"sass": "^1.56.1",
|
||||
"ts-node": "latest",
|
||||
"tsx": "4.19.1",
|
||||
"turbo": "^1.10.12",
|
||||
"typescript": "5.1.6",
|
||||
"video.js": "^8.0.3",
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "登录"
|
||||
},
|
||||
"afterLoginRedirection": "登录后,您将被重定向到 {{url}}"
|
||||
"afterLoginRedirection": "登录后,您将被重定向到 {{url}}",
|
||||
"providersEmpty": {
|
||||
"title": "验证提供程序错误",
|
||||
"message": "服务提供商未设置,请检查您的日志获取更多信息。"
|
||||
}
|
||||
},
|
||||
"alert": "您的凭据不正确或此账户不存在。请重试。"
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "上一步",
|
||||
"confirm": "确认",
|
||||
"enabled": "已启用",
|
||||
"duplicate": "复制",
|
||||
"disabled": "已禁用",
|
||||
"enableAll": "全部启用",
|
||||
"disableAll": "全部禁用",
|
||||
"setTimer": "设置计时器",
|
||||
"version": "版本",
|
||||
"changePosition": "换位",
|
||||
"remove": "删除",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "工具",
|
||||
"items": {
|
||||
"docker": "Docker",
|
||||
"api": "API"
|
||||
"api": "API",
|
||||
"migrate": ""
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "外部地址",
|
||||
"description": "点击应用时打开的网址。"
|
||||
"description": "点击应用时打开的网址。",
|
||||
"tooltip": "您可以使用几个变量来创建动态地址:<br><br><b>[homarr_base]</b>: 不包括端口和路径的完整地址。<i>(例如:'https://subdomain.homarr.dev')</i><br><b>[homarr_hostname]</b>: 完整的基本网址,包括当前的子域。<i>(例如:'</i><b>subdomain</b>.homarr<i>.dev')</i><br><b>[homarr_domain]</b>: 域名,已过滤子域。<i>(例如:\"homarr.dev\")</i><br><b>[homarr_protocol]</b>:<i>http/https</i><br><br>这些变量都取决于当前网址。"
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
33
public/locales/cn/manage/migrate.json
Normal file
33
public/locales/cn/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "",
|
||||
"pageTitle": "",
|
||||
"description": "",
|
||||
"securityNote": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
},
|
||||
"form": {
|
||||
"label": "",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": ""
|
||||
},
|
||||
"integrations": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
},
|
||||
"users": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": ""
|
||||
},
|
||||
"modal": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"copyDismiss": ""
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,12 @@
|
||||
"text": "到DNS漏洞的连接有问题。请验证您的配置/集成设置。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "设置禁用时长",
|
||||
"hours": "时",
|
||||
"minutes": "分",
|
||||
"unlimited": "留空表示无限制",
|
||||
"set": "设置"
|
||||
}
|
||||
}
|
||||
141
public/locales/cn/modules/health-monitoring.json
Normal file
141
public/locales/cn/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "系统健康监测",
|
||||
"description": "显示系统运行状况和状态的信息。",
|
||||
"settings": {
|
||||
"title": "系统健康监测设置",
|
||||
"fahrenheit": {
|
||||
"label": "CPU 温度(华氏度)"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "显示CPU信息",
|
||||
"load": "平均负载",
|
||||
"minute": "{{minute}} 分钟",
|
||||
"minutes": "{{minutes}} 分钟"
|
||||
},
|
||||
"memory": {
|
||||
"label": "显示内存信息"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "显示文件系统信息"
|
||||
},
|
||||
"node": {
|
||||
"label": "按节点名称过滤",
|
||||
"info": "输入您的 Proxmox 节点名称以仅显示该节点的指标。默认情况下,显示整个集群。"
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "默认打开的部分",
|
||||
"data": {
|
||||
"none": "不显示",
|
||||
"node": "节点",
|
||||
"vm": "虚拟机",
|
||||
"lxc": "LXCs",
|
||||
"storage": "存储"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "默认打开选项卡",
|
||||
"info": "默认打开选项卡。仅当多个集成可用时才使用。",
|
||||
"data": {
|
||||
"system": "系统",
|
||||
"cluster": "集群"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "显示摘要部分"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "显示节点部分"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "显示虚拟机部分"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "显示 LXC 部分"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "显示存储部分"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "要求部分状态指示器为“OK”",
|
||||
"info": "全部 \"要求所有项目都在线,指标才会变为绿色。任意 \"要求至少有一个项目在线。",
|
||||
"data": {
|
||||
"any": "任意活动",
|
||||
"all": "全部活动"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "忽略证书错误",
|
||||
"info": "如果启用,小工具在访问 Proxmox API 时将忽略证书错误。这在通过 HTTPS 访问 Proxmox 时很有帮助。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU",
|
||||
"load": "平均负载",
|
||||
"minute": "{{minute}} 分钟"
|
||||
},
|
||||
"memory": {
|
||||
"label": "内存",
|
||||
"totalMem": "内存总量: {{total}}GB",
|
||||
"available": "可用: {{available}}GB - {{percentage}}%"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "文件系统",
|
||||
"available": "可用: {{available}} - {{percentage}}%"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "运行时间",
|
||||
"uptimeFormat": "{{days}} 天, {{hours}} 小时, {{minutes}} 分钟",
|
||||
"updates": "可用更新",
|
||||
"reboot": "重启"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "无法找到您的系统。",
|
||||
"text": "连接到您的系统时出现问题。请验证您的配置/集成。"
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "系统",
|
||||
"cluster": "集群"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "CPU",
|
||||
"ram": "内存"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "节点",
|
||||
"vms": "虚拟机",
|
||||
"lxcs": "LXCs",
|
||||
"storage": "存储"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "名称",
|
||||
"cpu": "CPU",
|
||||
"ram": "内存",
|
||||
"node": "节点"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "节点",
|
||||
"vmid": "VMID",
|
||||
"details": "详情",
|
||||
"cores": "核心 - {{maxCpu}}",
|
||||
"memSize": "内存 - {{maxMem}}",
|
||||
"memRatio": "内存 - {{usedMem}} / {{maxMem}}",
|
||||
"diskSize": "磁盘 - {{maxDisk}}",
|
||||
"diskRatio": "磁盘 - {{usedDisk}} / {{maxDisk}}",
|
||||
"uptime": "运行时间 - {{uptime}}",
|
||||
"plugin": "插件",
|
||||
"ha": "状态 - {{haState}}",
|
||||
"sharedStorage": "共享存储",
|
||||
"localStorage": "本地存储",
|
||||
"na": "不可用"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/cn/modules/indexer-manager.json
Normal file
22
public/locales/cn/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "索引器管理状态",
|
||||
"description": "有关索引器的状态",
|
||||
"settings": {
|
||||
"title": "索引器管理状态",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "在新选项卡中打开索引器站点"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "索引器管理",
|
||||
"testAllButton": "测试全部"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "无法找到索引管理器",
|
||||
"text": "连接索引管理器时出现问题。请验证您的配置/集成。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@
|
||||
"pendingApproval": "待批准",
|
||||
"declined": "已拒绝",
|
||||
"available": "可用",
|
||||
"partial": "局部"
|
||||
"partial": "部分"
|
||||
},
|
||||
"tooltips": {
|
||||
"approve": "批准请求",
|
||||
|
||||
96
public/locales/cn/modules/media-transcoding.json
Normal file
96
public/locales/cn/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "媒体转码",
|
||||
"description": "显示有关媒体转码的信息",
|
||||
"settings": {
|
||||
"title": "媒体转码设置",
|
||||
"appId": {
|
||||
"label": "选择一个应用"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "默认视图",
|
||||
"data": {
|
||||
"workers": "工作种",
|
||||
"queue": "队列",
|
||||
"statistics": "统计"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "显示健康检查指示器"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "在队列中显示健康检查"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "队列:每页项目数"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "在右下角显示应用程序图标"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "请在小组件设置中选择一个应用程序",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "文件",
|
||||
"eta": "剩余时间",
|
||||
"progress": "进度"
|
||||
},
|
||||
"empty": "空",
|
||||
"tooltip": {
|
||||
"transcode": "转码",
|
||||
"healthCheck": "健康检查"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "文件",
|
||||
"size": "大小"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "{{start}}-{{end}} 共 {{total}}"
|
||||
},
|
||||
"empty": "空",
|
||||
"tooltip": {
|
||||
"transcode": "转码",
|
||||
"healthCheck": "健康检查"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "空",
|
||||
"box": {
|
||||
"transcodes": "转码: {{value}}",
|
||||
"healthChecks": "健康检查: {{value}}",
|
||||
"files": "文件: {{value}}",
|
||||
"spaceSaved": "已保存: {{value}}"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "转码",
|
||||
"healthChecks": "健康检查",
|
||||
"videoCodecs": "编码",
|
||||
"videoContainers": "容器",
|
||||
"videoResolutions": "分辨率"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "错误",
|
||||
"message": "从 Tdarr 获取数据时发生错误。"
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "工作种",
|
||||
"queue": "队列",
|
||||
"statistics": "统计"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "健康检查",
|
||||
"queued": "排队中",
|
||||
"healthy": "健康",
|
||||
"unhealthy": "不良"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,12 @@
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": "按发布日期排序(升序)"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "将没有发布日期的文章置顶"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "最大文章数量"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
{
|
||||
"entityNotFound": "未找到实体",
|
||||
"descriptor": {
|
||||
"name": "Home Assistant 实体",
|
||||
"description": "Home Assistant 中实体的当前状态",
|
||||
"name": "家庭助理实体",
|
||||
"description": "家庭助理中实体的当前状态",
|
||||
"settings": {
|
||||
"title": "实体状态",
|
||||
"entityId": {
|
||||
"label": "实体 ID",
|
||||
"info": "Home Assistant 中的唯一实体 ID。通过单击实体 > 单击齿轮图标 > 单击“实体 ID”处的复制按钮进行复制。某些自定义实体可能不受支持。"
|
||||
"info": "家庭助理中的唯一实体 ID。通过单击实体 > 单击齿轮图标 > 单击“实体 ID”处的复制按钮进行复制。某些自定义实体可能不受支持。"
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "附加测量单位",
|
||||
"info": "将测量单位属性附加到实体状态。"
|
||||
},
|
||||
"automationId": {
|
||||
"label": "可选自动化 ID",
|
||||
@@ -15,7 +19,16 @@
|
||||
},
|
||||
"displayName": {
|
||||
"label": "显示名称"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "显示友好名称",
|
||||
"info": "显示来自家庭助理的友好名称,而不是显示名称."
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "实体切换",
|
||||
"info": "单击时对实体执行通用的家庭助理切换操作。"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
"displayRatioWithFilter": {
|
||||
"label": "显示过滤后的 torrents 列表比例",
|
||||
"info": "如果禁用,则只显示全局比率。如果设置为 \"禁用\",全局比率仍将使用标签。"
|
||||
},
|
||||
"columnOrdering": {
|
||||
"label": "启用重新排序列"
|
||||
},
|
||||
"rowSorting": {
|
||||
"label": "启用行排序"
|
||||
},
|
||||
"columns": {
|
||||
"label": "选择要显示的列",
|
||||
"data": {
|
||||
"date": "日期已添加",
|
||||
"down": "下载",
|
||||
"up": "上传",
|
||||
"eta": "剩余时间",
|
||||
"progress": "进度"
|
||||
}
|
||||
},
|
||||
"nameColumnSize": {
|
||||
"label": "更改名称列大小"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -84,10 +103,6 @@
|
||||
"text": "无法与您的 Torrent 客户端通信。请检查您的配置"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"title": "加载中",
|
||||
"description": "建立连接中"
|
||||
},
|
||||
"popover": {
|
||||
"introductionPrefix": "管理方:",
|
||||
"metrics": {
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"displayCityName": {
|
||||
"label": "显示城市名称"
|
||||
},
|
||||
"displayWeekly": {
|
||||
"label": "显示每周预测"
|
||||
},
|
||||
"forecastDays": {
|
||||
"label": "显示天数"
|
||||
},
|
||||
"location": {
|
||||
"label": "天气位置"
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "",
|
||||
"label": "您的错误",
|
||||
"reportButton": "报告该错误"
|
||||
"text": "组件意外崩溃,请阅读文档并修改错误的输入。",
|
||||
"label": "发生错误",
|
||||
"reportButton": "在 GitHub 上报告此错误"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "crwdns1876:0crwdne1876:0"
|
||||
},
|
||||
"afterLoginRedirection": "crwdns3347:0{{url}}crwdne3347:0"
|
||||
"afterLoginRedirection": "crwdns3347:0{{url}}crwdne3347:0",
|
||||
"providersEmpty": {
|
||||
"title": "crwdns4236:0crwdne4236:0",
|
||||
"message": "crwdns4238:0crwdne4238:0"
|
||||
}
|
||||
},
|
||||
"alert": "crwdns3349:0crwdne3349:0"
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "crwdns3375:0crwdne3375:0",
|
||||
"confirm": "crwdns3377:0crwdne3377:0",
|
||||
"enabled": "crwdns2883:0crwdne2883:0",
|
||||
"duplicate": "crwdns4174:0crwdne4174:0",
|
||||
"disabled": "crwdns2885:0crwdne2885:0",
|
||||
"enableAll": "crwdns2887:0crwdne2887:0",
|
||||
"disableAll": "crwdns2889:0crwdne2889:0",
|
||||
"setTimer": "crwdns4484:0crwdne4484:0",
|
||||
"version": "crwdns2023:0crwdne2023:0",
|
||||
"changePosition": "crwdns2025:0crwdne2025:0",
|
||||
"remove": "crwdns2027:0crwdne2027:0",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "crwdns3525:0crwdne3525:0",
|
||||
"items": {
|
||||
"docker": "crwdns3527:0crwdne3527:0",
|
||||
"api": "crwdns4172:0crwdne4172:0"
|
||||
"api": "crwdns4172:0crwdne4172:0",
|
||||
"migrate": "crwdns4536:0crwdne4536:0"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "crwdns2067:0crwdne2067:0",
|
||||
"description": "crwdns2309:0crwdne2309:0"
|
||||
"description": "crwdns2309:0crwdne2309:0",
|
||||
"tooltip": "crwdns4482:0crwdne4482:0"
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
33
public/locales/cr/manage/migrate.json
Normal file
33
public/locales/cr/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "crwdns4506:0crwdne4506:0",
|
||||
"pageTitle": "crwdns4508:0crwdne4508:0",
|
||||
"description": "crwdns4510:0crwdne4510:0",
|
||||
"securityNote": {
|
||||
"title": "crwdns4512:0crwdne4512:0",
|
||||
"text": "crwdns4514:0crwdne4514:0"
|
||||
},
|
||||
"form": {
|
||||
"label": "crwdns4516:0crwdne4516:0",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": "crwdns4518:0crwdne4518:0"
|
||||
},
|
||||
"integrations": {
|
||||
"label": "crwdns4520:0crwdne4520:0",
|
||||
"description": "crwdns4522:0crwdne4522:0"
|
||||
},
|
||||
"users": {
|
||||
"label": "crwdns4524:0crwdne4524:0",
|
||||
"description": "crwdns4526:0crwdne4526:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": "crwdns4528:0crwdne4528:0"
|
||||
},
|
||||
"modal": {
|
||||
"title": "crwdns4530:0crwdne4530:0",
|
||||
"description": "crwdns4532:0crwdne4532:0",
|
||||
"copyDismiss": "crwdns4534:0crwdne4534:0"
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,12 @@
|
||||
"text": "crwdns3862:0crwdne3862:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "crwdns4486:0crwdne4486:0",
|
||||
"hours": "crwdns4488:0crwdne4488:0",
|
||||
"minutes": "crwdns4490:0crwdne4490:0",
|
||||
"unlimited": "crwdns4492:0crwdne4492:0",
|
||||
"set": "crwdns4494:0crwdne4494:0"
|
||||
}
|
||||
}
|
||||
141
public/locales/cr/modules/health-monitoring.json
Normal file
141
public/locales/cr/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "crwdns4202:0crwdne4202:0",
|
||||
"description": "crwdns4246:0crwdne4246:0",
|
||||
"settings": {
|
||||
"title": "crwdns4248:0crwdne4248:0",
|
||||
"fahrenheit": {
|
||||
"label": "crwdns4250:0crwdne4250:0"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "crwdns4252:0crwdne4252:0",
|
||||
"load": "crwdns4254:0crwdne4254:0",
|
||||
"minute": "crwdns4256:0{{minute}}crwdne4256:0",
|
||||
"minutes": "crwdns4258:0{{minutes}}crwdne4258:0"
|
||||
},
|
||||
"memory": {
|
||||
"label": "crwdns4260:0crwdne4260:0"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "crwdns4262:0crwdne4262:0"
|
||||
},
|
||||
"node": {
|
||||
"label": "crwdns4264:0crwdne4264:0",
|
||||
"info": "crwdns4266:0crwdne4266:0"
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "crwdns4268:0crwdne4268:0",
|
||||
"data": {
|
||||
"none": "crwdns4270:0crwdne4270:0",
|
||||
"node": "crwdns4272:0crwdne4272:0",
|
||||
"vm": "crwdns4274:0crwdne4274:0",
|
||||
"lxc": "crwdns4276:0crwdne4276:0",
|
||||
"storage": "crwdns4278:0crwdne4278:0"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "crwdns4280:0crwdne4280:0",
|
||||
"info": "crwdns4282:0crwdne4282:0",
|
||||
"data": {
|
||||
"system": "crwdns4284:0crwdne4284:0",
|
||||
"cluster": "crwdns4286:0crwdne4286:0"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "crwdns4288:0crwdne4288:0"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "crwdns4290:0crwdne4290:0"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "crwdns4292:0crwdne4292:0"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "crwdns4294:0crwdne4294:0"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "crwdns4296:0crwdne4296:0"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "crwdns4298:0crwdne4298:0",
|
||||
"info": "crwdns4300:0crwdne4300:0",
|
||||
"data": {
|
||||
"any": "crwdns4302:0crwdne4302:0",
|
||||
"all": "crwdns4304:0crwdne4304:0"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "crwdns4306:0crwdne4306:0",
|
||||
"info": "crwdns4308:0crwdne4308:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "crwdns4210:0crwdne4210:0",
|
||||
"load": "crwdns4212:0crwdne4212:0",
|
||||
"minute": "crwdns4214:0{{minute}}crwdne4214:0"
|
||||
},
|
||||
"memory": {
|
||||
"label": "crwdns4216:0crwdne4216:0",
|
||||
"totalMem": "crwdns4218:0{{total}}crwdne4218:0",
|
||||
"available": "crwdns4220:0{{available}}crwdnd4220:0{{percentage}}crwdne4220:0"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "crwdns4222:0crwdne4222:0",
|
||||
"available": "crwdns4224:0{{available}}crwdnd4224:0{{percentage}}crwdne4224:0"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "crwdns4226:0crwdne4226:0",
|
||||
"uptimeFormat": "crwdns4498:0{{days}}crwdnd4498:0{{hours}}crwdnd4498:0{{minutes}}crwdne4498:0",
|
||||
"updates": "crwdns4312:0crwdne4312:0",
|
||||
"reboot": "crwdns4230:0crwdne4230:0"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "crwdns4314:0crwdne4314:0",
|
||||
"text": "crwdns4316:0crwdne4316:0"
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "crwdns4318:0crwdne4318:0",
|
||||
"cluster": "crwdns4320:0crwdne4320:0"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "crwdns4322:0crwdne4322:0",
|
||||
"ram": "crwdns4324:0crwdne4324:0"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "crwdns4326:0crwdne4326:0",
|
||||
"vms": "crwdns4328:0crwdne4328:0",
|
||||
"lxcs": "crwdns4330:0crwdne4330:0",
|
||||
"storage": "crwdns4332:0crwdne4332:0"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "crwdns4334:0crwdne4334:0",
|
||||
"cpu": "crwdns4336:0crwdne4336:0",
|
||||
"ram": "crwdns4338:0crwdne4338:0",
|
||||
"node": "crwdns4340:0crwdne4340:0"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "crwdns4342:0crwdne4342:0",
|
||||
"vmid": "crwdns4344:0crwdne4344:0",
|
||||
"details": "crwdns4346:0crwdne4346:0",
|
||||
"cores": "crwdns4348:0{{maxCpu}}crwdne4348:0",
|
||||
"memSize": "crwdns4350:0{{maxMem}}crwdne4350:0",
|
||||
"memRatio": "crwdns4352:0{{usedMem}}crwdnd4352:0{{maxMem}}crwdne4352:0",
|
||||
"diskSize": "crwdns4354:0{{maxDisk}}crwdne4354:0",
|
||||
"diskRatio": "crwdns4356:0{{usedDisk}}crwdnd4356:0{{maxDisk}}crwdne4356:0",
|
||||
"uptime": "crwdns4358:0{{uptime}}crwdne4358:0",
|
||||
"plugin": "crwdns4360:0crwdne4360:0",
|
||||
"ha": "crwdns4362:0{{haState}}crwdne4362:0",
|
||||
"sharedStorage": "crwdns4364:0crwdne4364:0",
|
||||
"localStorage": "crwdns4366:0crwdne4366:0",
|
||||
"na": "crwdns4368:0crwdne4368:0"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/cr/modules/indexer-manager.json
Normal file
22
public/locales/cr/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "crwdns4188:0crwdne4188:0",
|
||||
"description": "crwdns4190:0crwdne4190:0",
|
||||
"settings": {
|
||||
"title": "crwdns4192:0crwdne4192:0",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "crwdns4496:0crwdne4496:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "crwdns4194:0crwdne4194:0",
|
||||
"testAllButton": "crwdns4196:0crwdne4196:0"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "crwdns4198:0crwdne4198:0",
|
||||
"text": "crwdns4200:0crwdne4200:0"
|
||||
}
|
||||
}
|
||||
}
|
||||
96
public/locales/cr/modules/media-transcoding.json
Normal file
96
public/locales/cr/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "crwdns4382:0crwdne4382:0",
|
||||
"description": "crwdns4384:0crwdne4384:0",
|
||||
"settings": {
|
||||
"title": "crwdns4386:0crwdne4386:0",
|
||||
"appId": {
|
||||
"label": "crwdns4388:0crwdne4388:0"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "crwdns4390:0crwdne4390:0",
|
||||
"data": {
|
||||
"workers": "crwdns4392:0crwdne4392:0",
|
||||
"queue": "crwdns4394:0crwdne4394:0",
|
||||
"statistics": "crwdns4396:0crwdne4396:0"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "crwdns4398:0crwdne4398:0"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "crwdns4400:0crwdne4400:0"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "crwdns4402:0crwdne4402:0"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "crwdns4404:0crwdne4404:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "crwdns4406:0crwdne4406:0",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "crwdns4408:0crwdne4408:0",
|
||||
"eta": "crwdns4410:0crwdne4410:0",
|
||||
"progress": "crwdns4412:0crwdne4412:0"
|
||||
},
|
||||
"empty": "crwdns4414:0crwdne4414:0",
|
||||
"tooltip": {
|
||||
"transcode": "crwdns4416:0crwdne4416:0",
|
||||
"healthCheck": "crwdns4418:0crwdne4418:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "crwdns4420:0crwdne4420:0",
|
||||
"size": "crwdns4422:0crwdne4422:0"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "crwdns4424:0{{start}}crwdnd4424:0{{end}}crwdnd4424:0{{total}}crwdne4424:0"
|
||||
},
|
||||
"empty": "crwdns4426:0crwdne4426:0",
|
||||
"tooltip": {
|
||||
"transcode": "crwdns4428:0crwdne4428:0",
|
||||
"healthCheck": "crwdns4430:0crwdne4430:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "crwdns4432:0crwdne4432:0",
|
||||
"box": {
|
||||
"transcodes": "crwdns4434:0{{value}}crwdne4434:0",
|
||||
"healthChecks": "crwdns4436:0{{value}}crwdne4436:0",
|
||||
"files": "crwdns4438:0{{value}}crwdne4438:0",
|
||||
"spaceSaved": "crwdns4440:0{{value}}crwdne4440:0"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "crwdns4442:0crwdne4442:0",
|
||||
"healthChecks": "crwdns4444:0crwdne4444:0",
|
||||
"videoCodecs": "crwdns4446:0crwdne4446:0",
|
||||
"videoContainers": "crwdns4448:0crwdne4448:0",
|
||||
"videoResolutions": "crwdns4450:0crwdne4450:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "crwdns4452:0crwdne4452:0",
|
||||
"message": "crwdns4454:0crwdne4454:0"
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "crwdns4456:0crwdne4456:0",
|
||||
"queue": "crwdns4458:0crwdne4458:0",
|
||||
"statistics": "crwdns4460:0crwdne4460:0"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "crwdns4462:0crwdne4462:0",
|
||||
"queued": "crwdns4464:0crwdne4464:0",
|
||||
"healthy": "crwdns4466:0crwdne4466:0",
|
||||
"unhealthy": "crwdns4468:0crwdne4468:0"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,12 @@
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": "crwdns4160:0crwdne4160:0"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "crwdns4176:0crwdne4176:0"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "crwdns4178:0crwdne4178:0"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -9,13 +9,26 @@
|
||||
"label": "crwdns4046:0crwdne4046:0",
|
||||
"info": "crwdns4048:0crwdne4048:0"
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "crwdns4180:0crwdne4180:0",
|
||||
"info": "crwdns4182:0crwdne4182:0"
|
||||
},
|
||||
"automationId": {
|
||||
"label": "crwdns4156:0crwdne4156:0",
|
||||
"info": "crwdns4158:0crwdne4158:0"
|
||||
},
|
||||
"displayName": {
|
||||
"label": "crwdns4050:0crwdne4050:0"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "crwdns4184:0crwdne4184:0",
|
||||
"info": "crwdns4476:0crwdne4476:0"
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "crwdns4478:0crwdne4478:0",
|
||||
"info": "crwdns4480:0crwdne4480:0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
"displayRatioWithFilter": {
|
||||
"label": "crwdns4000:0crwdne4000:0",
|
||||
"info": "crwdns4002:0crwdne4002:0"
|
||||
},
|
||||
"columnOrdering": {
|
||||
"label": "crwdns4470:0crwdne4470:0"
|
||||
},
|
||||
"rowSorting": {
|
||||
"label": "crwdns4472:0crwdne4472:0"
|
||||
},
|
||||
"columns": {
|
||||
"label": "crwdns4370:0crwdne4370:0",
|
||||
"data": {
|
||||
"date": "crwdns4474:0crwdne4474:0",
|
||||
"down": "crwdns4372:0crwdne4372:0",
|
||||
"up": "crwdns4374:0crwdne4374:0",
|
||||
"eta": "crwdns4376:0crwdne4376:0",
|
||||
"progress": "crwdns4378:0crwdne4378:0"
|
||||
}
|
||||
},
|
||||
"nameColumnSize": {
|
||||
"label": "crwdns4380:0crwdne4380:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -84,10 +103,6 @@
|
||||
"text": "crwdns3193:0crwdne3193:0"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"title": "crwdns3195:0crwdne3195:0",
|
||||
"description": "crwdns3197:0crwdne3197:0"
|
||||
},
|
||||
"popover": {
|
||||
"introductionPrefix": "crwdns2463:0crwdne2463:0",
|
||||
"metrics": {
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"displayCityName": {
|
||||
"label": "crwdns3047:0crwdne3047:0"
|
||||
},
|
||||
"displayWeekly": {
|
||||
"label": "crwdns4240:0crwdne4240:0"
|
||||
},
|
||||
"forecastDays": {
|
||||
"label": "crwdns4242:0crwdne4242:0"
|
||||
},
|
||||
"location": {
|
||||
"label": "crwdns1568:0crwdne1568:0"
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "crwdns2949:0crwdne2949:0",
|
||||
"label": "crwdns2741:0crwdne2741:0",
|
||||
"reportButton": "crwdns2743:0crwdne2743:0"
|
||||
"text": "crwdns4500:0crwdne4500:0",
|
||||
"label": "crwdns4502:0crwdne4502:0",
|
||||
"reportButton": "crwdns4504:0crwdne4504:0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "Přihlásit se"
|
||||
},
|
||||
"afterLoginRedirection": "Po přihlášení budete přesměrováni na {{url}}"
|
||||
"afterLoginRedirection": "Po přihlášení budete přesměrováni na {{url}}",
|
||||
"providersEmpty": {
|
||||
"title": "Chyba poskytovatele ověření",
|
||||
"message": "Poskytovatel(é) není/nejsou nastaven/i, další informace naleznete ve Vašich protokolech."
|
||||
}
|
||||
},
|
||||
"alert": "Vaše přihlašovací údaje jsou nesprávné nebo tento účet neexistuje. Zkuste to prosím znovu."
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "Zpět",
|
||||
"confirm": "Potvrdit",
|
||||
"enabled": "Zapnuto",
|
||||
"duplicate": "Duplikovat",
|
||||
"disabled": "Vypnuto",
|
||||
"enableAll": "Aktivovat vše",
|
||||
"disableAll": "Zakázat vše",
|
||||
"setTimer": "Nastavit časovat",
|
||||
"version": "Verze",
|
||||
"changePosition": "Změnit pozici",
|
||||
"remove": "Odstranit",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "Nástroje",
|
||||
"items": {
|
||||
"docker": "Docker",
|
||||
"api": "API"
|
||||
"api": "API",
|
||||
"migrate": ""
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "Veřejná adresa",
|
||||
"description": "URL která bude otevřena po kliknutí na aplikaci."
|
||||
"description": "URL která bude otevřena po kliknutí na aplikaci.",
|
||||
"tooltip": "Můžete použít několik proměnných k vytvoření dynamických adres:<br><br><b>[homarr_base]</b> : plná adresa bez portu a cesty. <i>(Příklad: 'https://subdomain.homarr.dev')</i><br><b>[homarr_hostname]</b> : plná základní url včetně její aktuální subdomény. <i>(Příklad: 'subdomain.homarr.dev')</i><br><b>[homarr_domain]</b> : doména bez subdomény. <i>(Příklad: `homarr.dev')</i><br><b>[homarr_protocol]</b> : <i>http/https</i><br><br>Všechny tyto proměnné závisejí na aktuální url adrese."
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
33
public/locales/cs/manage/migrate.json
Normal file
33
public/locales/cs/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "",
|
||||
"pageTitle": "",
|
||||
"description": "",
|
||||
"securityNote": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
},
|
||||
"form": {
|
||||
"label": "",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": ""
|
||||
},
|
||||
"integrations": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
},
|
||||
"users": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": ""
|
||||
},
|
||||
"modal": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"copyDismiss": ""
|
||||
}
|
||||
}
|
||||
@@ -11,8 +11,15 @@
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Nepodařilo se najít DNS hole",
|
||||
"text": "Došlo k problému s připojením k Vaší DNS Hole. Ověřte prosím svou konfiguraci/integraci."
|
||||
"text": "Došlo k problému s připojením k Vaší DNS Hole. Ověřte prosím svou konfiguraci."
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "Nastavit dobu trvání deaktivace",
|
||||
"hours": "Hodin",
|
||||
"minutes": "Minut",
|
||||
"unlimited": "ponechte prázdne pro neomezenou dobu",
|
||||
"set": "Nastavit"
|
||||
}
|
||||
}
|
||||
141
public/locales/cs/modules/health-monitoring.json
Normal file
141
public/locales/cs/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Monitorování stavu systému",
|
||||
"description": "Zobrazuje informace o stavu a kondici Vašeho systému (systémů).",
|
||||
"settings": {
|
||||
"title": "Nastavení pro sledování stavu systému",
|
||||
"fahrenheit": {
|
||||
"label": "Teplota CPU ve stupních Fahrenheit"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "Zobrazit info o CPU",
|
||||
"load": "Průměrné zatížení",
|
||||
"minute": "{{minute}} minut",
|
||||
"minutes": "{{minutes}} minut/y"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Zobrazit informace o paměti"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Zobrazit informace o souborovém systému"
|
||||
},
|
||||
"node": {
|
||||
"label": "Filtrovat podle názvu uzlu",
|
||||
"info": "Zadejte název uzlu Proxmox, aby se zobrazovaly metriky pouze pro tento uzel. Ve výchozím nastavení se zobrazí celý cluster."
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "Sekce bude otevřená ve výchozím nastavení",
|
||||
"data": {
|
||||
"none": "Žádný",
|
||||
"node": "Uzly",
|
||||
"vm": "Virtuální Stroje",
|
||||
"lxc": "LXC",
|
||||
"storage": "Úložiště"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "Karta je ve výchozím nastavení otevřena",
|
||||
"info": "Karta je ve výchozím nastavení otevřená. Používá se pouze v případě, že je k dispozici více integrací.",
|
||||
"data": {
|
||||
"system": "Systém",
|
||||
"cluster": "Cluster"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "Zobrazit sekci shrnutí"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "Zobrazit sekci uzlů"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "Zobrazit sekci virutálních strojů"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "Zobrazit sekci s LXC"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "Zobrazit sekci úložiště"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "Požadavky, aby indikátor stavu sekce byl \"OK“",
|
||||
"info": "'Vše' vyžaduje, aby všechny položky byly online, aby byl indikátor zelený. 'Cokoliv' vyžaduje, aby alespoň jedna položka byla online.",
|
||||
"data": {
|
||||
"any": "Jakýkoli aktivní",
|
||||
"all": "Všechny aktivní"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "Ignorovat chyby certifikátu",
|
||||
"info": "Pokud je tato možnost povolena, bude widget při přístupu k rozhraní API Proxmox ignorovat chyby certifikátu. To může být užitečné při přístupu k Proxmoxu přes HTTPS."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "Procesor",
|
||||
"load": "Průměrné zatížení",
|
||||
"minute": "{{minute}} minut"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Pamět",
|
||||
"totalMem": "Celková paměť: {{total}}GB",
|
||||
"available": "K dispozici: {{available}}GB - {{percentage}}%"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Souborový systém",
|
||||
"available": "K dispozici: {{available}} - {{percentage}}%"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "Doba provozu",
|
||||
"uptimeFormat": "{{days}} dní, {{hours}} hodin, {{minutes}} minut",
|
||||
"updates": "Dostupné aktualizace",
|
||||
"reboot": "Restartovat"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Nepodařilo se najít Váš systém/Vaše systémy.",
|
||||
"text": "Došlo k problému s připojením k Vašemu systému. Ověřte prosím svou konfiguraci."
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "Systém",
|
||||
"cluster": "Cluster"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "Procesor",
|
||||
"ram": "RAM"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "Uzly",
|
||||
"vms": "Virtuální Stroje",
|
||||
"lxcs": "LXC",
|
||||
"storage": "Úložiště"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Název",
|
||||
"cpu": "Procesor",
|
||||
"ram": "RAM",
|
||||
"node": "Uzel"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "Uzel",
|
||||
"vmid": "ID virtuálního stroje",
|
||||
"details": "Podrobnosti",
|
||||
"cores": "Jádra - {{maxCpu}}",
|
||||
"memSize": "Paměť - {{maxMem}}",
|
||||
"memRatio": "Paměť - {{usedMem}} / {{maxMem}}",
|
||||
"diskSize": "Disk - {{maxDisk}}",
|
||||
"diskRatio": "Disk - {{usedDisk}} / {{maxDisk}}",
|
||||
"uptime": "Doba provozu - {{uptime}}",
|
||||
"plugin": "Plugin",
|
||||
"ha": "Stav HA - {{haState}}",
|
||||
"sharedStorage": "Sdílené úložiště",
|
||||
"localStorage": "Místní úložiště",
|
||||
"na": "N/A"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/cs/modules/indexer-manager.json
Normal file
22
public/locales/cs/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Stav správce indexeru",
|
||||
"description": "Stav Vašich indexerů",
|
||||
"settings": {
|
||||
"title": "Stav správce indexeru",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "Otevírat stránku indexeru na nové kartě"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "Správce indexeru",
|
||||
"testAllButton": "Otestovat vše"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Nepodařilo se najít správce indexeru",
|
||||
"text": "Došlo k problému s připojením k Vašemu správci indexeru. Ověřte prosím svou konfiguraci."
|
||||
}
|
||||
}
|
||||
}
|
||||
96
public/locales/cs/modules/media-transcoding.json
Normal file
96
public/locales/cs/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Překódování médií",
|
||||
"description": "Zobrazuje informace o překódování médií",
|
||||
"settings": {
|
||||
"title": "Nastavení překódování médií",
|
||||
"appId": {
|
||||
"label": "Vyberte aplikaci"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "Výchozí zobrazení",
|
||||
"data": {
|
||||
"workers": "Stroje",
|
||||
"queue": "Fronta",
|
||||
"statistics": "Statistiky"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "Zobrazit indikátor kontroly stavu"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "Zobrazit kontroly stavu ve frontě"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "Fronta: Počet položek na stránku"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "Zobrazovat ikonu aplikace v pravém dolním rohu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "Prosím vyberte aplikaci v nastavení widgetu",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Soubor",
|
||||
"eta": "Odhadovaný čas",
|
||||
"progress": "Postup"
|
||||
},
|
||||
"empty": "Prázdné",
|
||||
"tooltip": {
|
||||
"transcode": "Překódovat",
|
||||
"healthCheck": "Kontrola stavu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Soubor",
|
||||
"size": "Velikost"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "{{start}}-{{end}} z {{total}}"
|
||||
},
|
||||
"empty": "Prázdné",
|
||||
"tooltip": {
|
||||
"transcode": "Překódovat",
|
||||
"healthCheck": "Kontrola stavu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "Prázdné",
|
||||
"box": {
|
||||
"transcodes": "Překódování: {{value}}",
|
||||
"healthChecks": "Kontroly stavu: {{value}}",
|
||||
"files": "Soubory: {{value}}",
|
||||
"spaceSaved": "Uloženo: {{value}}"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "Překódování",
|
||||
"healthChecks": "Kontroly stavu",
|
||||
"videoCodecs": "Kodeky",
|
||||
"videoContainers": "Kontejnery",
|
||||
"videoResolutions": "Rozlišení"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "Chyba",
|
||||
"message": "Při načítání dat z Tdarru došlo k chybě."
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "Stroje",
|
||||
"queue": "Fronta",
|
||||
"statistics": "Statistiky"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "Kontrola stavu",
|
||||
"queued": "Ve frontě",
|
||||
"healthy": "V pořádku",
|
||||
"unhealthy": "Nastal problém"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,12 @@
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": "Seřadit podle data zveřejnění (vzestupně)"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "Umístit příspěvky bez data zveřejnění navrch"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "Maximální počet příspěvků"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -9,13 +9,26 @@
|
||||
"label": "ID entity",
|
||||
"info": "Jedinečné ID entity v aplikaci Home Assistant. Zkopírujte kliknutím na entitu > klikněte na ikonu ozubeného kolečka > klikněte na tlačítko kopírovat \"ID entity\". Některé vlastní entity nemusí být podporovány."
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "Přidat měrnou jednotku",
|
||||
"info": "Přidávat atribut měrné jednotky ke stavu entity."
|
||||
},
|
||||
"automationId": {
|
||||
"label": "Volitelné ID automatizace",
|
||||
"info": "Vaše unikátní ID automatizace. Vždy začíná s automation.XXXXX. Pokud nebude nastaveno, na widget nebude možné kliknout a bude možné zobrazit pouze stav. Po kliknutí bude stav entity obnoven."
|
||||
},
|
||||
"displayName": {
|
||||
"label": "Zobrazovaný název"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "Zobrazovat čitelné jméno",
|
||||
"info": "Zobrazovat friendly jméno z Home Assistantu místo display jména."
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "Přepínač entity",
|
||||
"info": "Provést obecnou Home Assistant akci přepnutí na entitě po kliknutí."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Automatizace Home Assistanta",
|
||||
"description": "Spustit automatizaci",
|
||||
"description": "Spustí automatizaci",
|
||||
"settings": {
|
||||
"title": "Spustit automatizaci",
|
||||
"title": "Spustí automatizaci",
|
||||
"automationId": {
|
||||
"label": "ID automatizace",
|
||||
"info": "Vaše unikátní ID automatizace. Vždy začíná s automation.XXXXX."
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
"displayRatioWithFilter": {
|
||||
"label": "Zobrazení filtrovaného poměru seznamu torrentů",
|
||||
"info": "Pokud je vypnuto, zobrazí se pouze obecný poměr. Obecný poměr bude stále používat štítky, pokud jsou nastaveny"
|
||||
},
|
||||
"columnOrdering": {
|
||||
"label": "Povolit změnu pořadí sloupců"
|
||||
},
|
||||
"rowSorting": {
|
||||
"label": "Povolit řazení řádků"
|
||||
},
|
||||
"columns": {
|
||||
"label": "Vyberte sloupce k zobrazení",
|
||||
"data": {
|
||||
"date": "Datum přidání",
|
||||
"down": "Stahování",
|
||||
"up": "Nahrávání",
|
||||
"eta": "Odhadovaný čas",
|
||||
"progress": "Postup"
|
||||
}
|
||||
},
|
||||
"nameColumnSize": {
|
||||
"label": "Změna velikosti sloupce s názvem"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -84,10 +103,6 @@
|
||||
"text": "Nelze komunikovat s Vašimi klienty Torrentu. Zkontrolujte prosím Vaši konfiguraci"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"title": "Načítání",
|
||||
"description": "Navazování spojení"
|
||||
},
|
||||
"popover": {
|
||||
"introductionPrefix": "Spravuje",
|
||||
"metrics": {
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"displayCityName": {
|
||||
"label": "Zobrazit název města"
|
||||
},
|
||||
"displayWeekly": {
|
||||
"label": "Zobrazeit týdenní předpověď"
|
||||
},
|
||||
"forecastDays": {
|
||||
"label": "Dny k zobrazení"
|
||||
},
|
||||
"location": {
|
||||
"label": "Lokalita pro počasí"
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "",
|
||||
"label": "Vaše chyba",
|
||||
"reportButton": "Nahlásit tuto chybu"
|
||||
"text": "Widget se nečekaně zhroutil. Přečtěte si prosím dokumentaci a opravte případné překlepy.",
|
||||
"label": "Vyskytlá chyba",
|
||||
"reportButton": "Nahlásit tuto chybu na GitHubu"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "Log ind"
|
||||
},
|
||||
"afterLoginRedirection": "Når du er logget ind, bliver du omdirigeret til {{url}}"
|
||||
"afterLoginRedirection": "Når du er logget ind, bliver du omdirigeret til {{url}}",
|
||||
"providersEmpty": {
|
||||
"title": "Fejl i autorisationsudbyder",
|
||||
"message": "Udbyderen/udbyderne er ikke indstillet. Tjek venligst dine logfiler for mere information."
|
||||
}
|
||||
},
|
||||
"alert": "Dine legitimationsoplysninger er forkerte, eller denne konto findes ikke. Prøv venligst igen."
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "Forrige",
|
||||
"confirm": "Bekræft",
|
||||
"enabled": "Aktiveret",
|
||||
"duplicate": "Duplikér",
|
||||
"disabled": "Deaktiveret",
|
||||
"enableAll": "Aktiver alle",
|
||||
"disableAll": "Deaktiver alle",
|
||||
"setTimer": "Sæt timer",
|
||||
"version": "Version",
|
||||
"changePosition": "Ændre placering",
|
||||
"remove": "Fjern",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "Værktøjer",
|
||||
"items": {
|
||||
"docker": "Docker",
|
||||
"api": ""
|
||||
"api": "API",
|
||||
"migrate": "Migrer til 1.0"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "Ekstern adresse",
|
||||
"description": "URL-adresse, der åbnes, når du klikker på appen."
|
||||
"description": "URL-adresse, der åbnes, når du klikker på appen.",
|
||||
"tooltip": "Du kan bruge nogle få variabler til at oprette dynamiske adresser:<br><br><b>[homarr_base]</b>: fuld adresse uden port og sti. <i>(Eksempel: 'https://subdomain.homarr.dev'</i>)<br><b>[homarr_hostname]</b>: fuld base-url inklusive det aktuelle subdomæne. (Eksempel: ' <i>subdomain.homarr.dev')</i><br><b>[homarr_domain]</b>: domæne med subdomæne filtreret ud. (Eksempel: <i>`homarr.dev</i>')<br><b>[homarr_protocol]</b>: <i>http/https</i><br><br>Disse variabler afhænger alle af den aktuelle url."
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
"label": "Slet permanent",
|
||||
"disabled": "Sletning deaktiveret, fordi ældre Homarr-komponenter ikke tillader sletning af standardkonfigurationen. Sletning vil være mulig i fremtiden."
|
||||
},
|
||||
"duplicate": "",
|
||||
"duplicate": "Duplikér",
|
||||
"rename": {
|
||||
"label": "",
|
||||
"label": "Omdøb",
|
||||
"modal": {
|
||||
"title": "",
|
||||
"title": "Omdøb tavlen {{name}}",
|
||||
"fields": {
|
||||
"name": {
|
||||
"label": "",
|
||||
"placeholder": ""
|
||||
"label": "Nyt navn",
|
||||
"placeholder": "Nyt tavlenavn"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
33
public/locales/da/manage/migrate.json
Normal file
33
public/locales/da/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "Migrer til 1.0",
|
||||
"pageTitle": "Migrér tavler, integrationer og brugere",
|
||||
"description": "Eksporterer dine tavler og brugere til et ZIP-arkiv for at migrere dem til Homarr efter version 1.0.0",
|
||||
"securityNote": {
|
||||
"title": "Sikkerhedsnote",
|
||||
"text": "Når du eksporterer brugere og integrationer, åbnes der også en modal med en krypteringsnøgle. Denne nøgle er nødvendig for at importere data til Homarr. Opbevar den sikkert, og del den ikke med nogen."
|
||||
},
|
||||
"form": {
|
||||
"label": "Vælg alt, hvad du vil eksportere",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": "Eksporter tavler"
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Eksporter integrationer",
|
||||
"description": "Dette inkluderer krypterede legitimationsoplysninger til integrationer. Kun tilgængelig ved eksport af tavler"
|
||||
},
|
||||
"users": {
|
||||
"label": "Eksporter brugere",
|
||||
"description": "Dette vil kun eksportere brugere med legitimiation, adgangskoders hash og salt er krypteret"
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": "Eksport af data"
|
||||
},
|
||||
"modal": {
|
||||
"title": "Krypteringsnøgle",
|
||||
"description": "Dine data er blevet eksporteret. Opbevar denne nøgle sikkert, og del den ikke med nogen. Du skal bruge denne nøgle for at importere dataene til Homarr.",
|
||||
"copyDismiss": "Kopiér og afvis"
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,12 @@
|
||||
"text": "Der opstod et problem med at oprette forbindelse til dit/dine DNS-hul(ler). Bekræft venligst din(e) konfiguration(er)/integration(er)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "Indstil varighed af deaktivering",
|
||||
"hours": "Timer",
|
||||
"minutes": "Minutter",
|
||||
"unlimited": "lad være tom for ubegrænset",
|
||||
"set": "Indstil"
|
||||
}
|
||||
}
|
||||
141
public/locales/da/modules/health-monitoring.json
Normal file
141
public/locales/da/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Systemsundhedsovervågning",
|
||||
"description": "Viser oplysninger om dit/dine systems tilstand og status.",
|
||||
"settings": {
|
||||
"title": "Indstillinger for systemsundhedsovervågning",
|
||||
"fahrenheit": {
|
||||
"label": "CPU-temperatur i Fahrenheit"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "Vis CPU-info",
|
||||
"load": "Load Gennemsnit",
|
||||
"minute": "{{minute}} minutter",
|
||||
"minutes": "{{minutes}} minutter"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Vis hukommelsesoplysninger"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Vis information om filsystemet"
|
||||
},
|
||||
"node": {
|
||||
"label": "Filtrer efter nodenavn",
|
||||
"info": "Indtast navnet på din Proxmox-node for kun at vise metrikker for den node. Som standard vises hele klyngen."
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "Sektion åben som standard",
|
||||
"data": {
|
||||
"none": "Intet",
|
||||
"node": "Noder",
|
||||
"vm": "VM'er",
|
||||
"lxc": "LXC'er",
|
||||
"storage": "Lager"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "Fanen åben som standard",
|
||||
"info": "Fanen åben som standard. Bruges kun, når flere integrationer er tilgængelige.",
|
||||
"data": {
|
||||
"system": "System",
|
||||
"cluster": "Klynge"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "Vis oversigtssektion"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "Vis nodesektion"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "Vis VM-sektion"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "Vis LXC sektion"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "Vis lagerplads sektion"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "Krav om, at sektionsstatusindikator skal være 'OK'",
|
||||
"info": "\"Alle\" kræver, at alle elementer er online, for at indikatoren er grøn. 'Any' kræver, at mindst ét element er online.",
|
||||
"data": {
|
||||
"any": "Enhver aktiv",
|
||||
"all": "Alle aktive"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "Ignorer certifikatfejl",
|
||||
"info": "Hvis den er aktiveret, vil widgetten ignorere certifikatfejl, når den tilgår Proxmox API. Dette kan være nyttigt, når du får adgang til Proxmox via HTTPS."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU",
|
||||
"load": "Load Gennemsnit",
|
||||
"minute": "{{minute}} minutter"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Hukommelse",
|
||||
"totalMem": "Samlet hukommelse: {{total}}GB",
|
||||
"available": "Tilgængelig: {{available}}GB - {{percentage}}%"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Filsystem",
|
||||
"available": "Tilgængelig: {{available}} - {{percentage}}%"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "Oppetid",
|
||||
"uptimeFormat": "{{days}} dage, {{hours}} timer, {{minutes}} minutter",
|
||||
"updates": "Opdateringer tilgængelige",
|
||||
"reboot": "Genstart"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Kan ikke finde dit/dine system(er).",
|
||||
"text": "Der opstod et problem med at oprette forbindelse til dit system. Bekræft venligst din konfiguration/integration(er)."
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "System",
|
||||
"cluster": "Klynge"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "Noder",
|
||||
"vms": "VM'er",
|
||||
"lxcs": "LXC'er",
|
||||
"storage": "Lager"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Navn",
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM",
|
||||
"node": "Node"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "Node",
|
||||
"vmid": "VMID",
|
||||
"details": "Detaljer",
|
||||
"cores": "Kerner - {{maxCpu}}",
|
||||
"memSize": "Hukommelse - {{maxMem}}",
|
||||
"memRatio": "Hukommelse - {{usedMem}} / {{maxMem}}",
|
||||
"diskSize": "Disk - {{maxDisk}}",
|
||||
"diskRatio": "Disk - {{usedDisk}} / {{maxDisk}}",
|
||||
"uptime": "Oppetid - {{uptime}}",
|
||||
"plugin": "Plugin",
|
||||
"ha": "HA Tilstand - {{haState}}",
|
||||
"sharedStorage": "Delt Lager",
|
||||
"localStorage": "Lokalt lager",
|
||||
"na": "Ikke tilgængelig"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/da/modules/indexer-manager.json
Normal file
22
public/locales/da/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Indekserings manager status",
|
||||
"description": "Status for dine indekser",
|
||||
"settings": {
|
||||
"title": "Indekserings manager status",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "Åbn Indekseringswebsted I Nyt Faneblad"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "Indexer-manager",
|
||||
"testAllButton": "Test alle"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Kan ikke finde en indekseringsmanager",
|
||||
"text": "Der opstod et problem med at oprette forbindelse til din indekseringsmanager. Bekræft venligst din konfiguration/integration(er)."
|
||||
}
|
||||
}
|
||||
}
|
||||
96
public/locales/da/modules/media-transcoding.json
Normal file
96
public/locales/da/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Medietranskodning",
|
||||
"description": "Viser information om medietranskoding",
|
||||
"settings": {
|
||||
"title": "Indstillinger for medietranskodning",
|
||||
"appId": {
|
||||
"label": "Vælg en app"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "Standardvisning",
|
||||
"data": {
|
||||
"workers": "Arbejdere",
|
||||
"queue": "Kø",
|
||||
"statistics": "Statistikker"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "Vis indikator for sundhedstjek"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "Vis sundhedstjek i kø"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "Kø: Elementer pr. side"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "Vis app-ikonet i nederste højre hjørne"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "Vælg venligst en app i widgetindstillingerne",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Fil",
|
||||
"eta": "ETA",
|
||||
"progress": "Fremskridt"
|
||||
},
|
||||
"empty": "Tom",
|
||||
"tooltip": {
|
||||
"transcode": "Transkod",
|
||||
"healthCheck": "Sundhedstjek"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Fil",
|
||||
"size": "Størrelse"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "{{start}}-{{end}} af {{total}}"
|
||||
},
|
||||
"empty": "Tom",
|
||||
"tooltip": {
|
||||
"transcode": "Transkod",
|
||||
"healthCheck": "Sundhedstjek"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "Tom",
|
||||
"box": {
|
||||
"transcodes": "Transkodninger: {{value}}",
|
||||
"healthChecks": "Sundhedstjek: {{value}}",
|
||||
"files": "Filer: {{value}}",
|
||||
"spaceSaved": "Gemt: {{value}}"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "Transkoder",
|
||||
"healthChecks": "Sundhedstjek",
|
||||
"videoCodecs": "Kodeks",
|
||||
"videoContainers": "Containere",
|
||||
"videoResolutions": "Opløsninger"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "Fejl",
|
||||
"message": "Der opstod en fejl under hentning af data fra Tdarr."
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "Arbejdere",
|
||||
"queue": "Kø",
|
||||
"statistics": "Statistikker"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "Sundhedstjek",
|
||||
"queued": "I kø",
|
||||
"healthy": "Sund",
|
||||
"unhealthy": "Usund"
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,13 @@
|
||||
"label": "Klemme til tekstlinjer"
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": ""
|
||||
"label": "Sorter efter udgivelsesdato (stigende)"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "Sæt indlæg uden udgivelsesdato øverst"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "Maksimalt antal indlæg"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -9,13 +9,26 @@
|
||||
"label": "Entitet ID",
|
||||
"info": "Unikt entitets-id i Home Assistant. Kopier ved at klikke på entitet > Klik på tandhjulsikon > Klik på kopieringsknappen ved 'Entitets-ID'. Nogle brugerdefinerede entiteter understøttes muligvis ikke."
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "Tilføj måleenhed",
|
||||
"info": "Føj måleenhedsattributten til enhedstilstanden."
|
||||
},
|
||||
"automationId": {
|
||||
"label": "Valgfrit automatiserings ID",
|
||||
"info": "Dit unikke automatiserings ID. Starter altid med automatisering.XXXX. Hvis den ikke er indstillet, vil widget ikke være klikbar og kun vise tilstand. Efter klik vil enhedstilstand blive opdateret."
|
||||
},
|
||||
"displayName": {
|
||||
"label": "Visningsnavn"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "Vis brugervenligt navn",
|
||||
"info": "Vis brugervenligt navn fra Home Assistant i stedet for visningsnavn."
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "Entitetsskift",
|
||||
"info": "Udfør en generisk Home Assistant-skiftehandling på entitet, når der klikkes på den."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
"displayRatioWithFilter": {
|
||||
"label": "Vis filtrerede torrents liste ratio",
|
||||
"info": "Hvis deaktiveret, vil kun den globale ratio blive vist. Den globale ratio vil stadig bruge etiketter hvis sat"
|
||||
},
|
||||
"columnOrdering": {
|
||||
"label": "Aktiver reorganisering af kolonnerne"
|
||||
},
|
||||
"rowSorting": {
|
||||
"label": "Aktiver sortering af rækker"
|
||||
},
|
||||
"columns": {
|
||||
"label": "Vælg kolonner, der skal vises",
|
||||
"data": {
|
||||
"date": "Dato tilføjet",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"eta": "ETA",
|
||||
"progress": "Fremskridt"
|
||||
}
|
||||
},
|
||||
"nameColumnSize": {
|
||||
"label": "Skift størrelsen på navnekolonnen"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -84,10 +103,6 @@
|
||||
"text": "Kan ikke kommunikere med dine Torrent-klienter. Tjek venligst din konfiguration"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"title": "Indlæser",
|
||||
"description": "Etablerer en forbindelse"
|
||||
},
|
||||
"popover": {
|
||||
"introductionPrefix": "Administreret af",
|
||||
"metrics": {
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"displayCityName": {
|
||||
"label": "Vis bynavn"
|
||||
},
|
||||
"displayWeekly": {
|
||||
"label": "Vis ugentlig vejrudsigt"
|
||||
},
|
||||
"forecastDays": {
|
||||
"label": "Dage at vise"
|
||||
},
|
||||
"location": {
|
||||
"label": "Vejr lokation"
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "",
|
||||
"label": "Din fejl",
|
||||
"reportButton": "Rapportér denne fejl"
|
||||
"text": "Widgetten crashede uventet. Læs venligst dokumentationen og ret stavefejl.",
|
||||
"label": "Opstod en fejl",
|
||||
"reportButton": "Rapporter denne fejl på GitHub"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "Anmelden"
|
||||
},
|
||||
"afterLoginRedirection": "Nach der Anmeldung werden Sie zu {{url}} weitergeleitet"
|
||||
"afterLoginRedirection": "Nach der Anmeldung werden Sie zu {{url}} weitergeleitet",
|
||||
"providersEmpty": {
|
||||
"title": "Fehler beim Authentifizierungsanbieter",
|
||||
"message": "Der bzw. die Anbieter sind nicht eingestellt. Weitere Informationen finden Sie in Ihren Protokollen."
|
||||
}
|
||||
},
|
||||
"alert": "Ihre Anmeldedaten sind falsch oder dieses Konto existiert nicht. Bitte versuchen Sie es erneut."
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "Zurück",
|
||||
"confirm": "Bestätigen",
|
||||
"enabled": "Aktiviert",
|
||||
"duplicate": "Duplizieren",
|
||||
"disabled": "Deaktiviert",
|
||||
"enableAll": "Alle aktivieren",
|
||||
"disableAll": "Alles deaktivieren",
|
||||
"setTimer": "Timer festlegen",
|
||||
"version": "Version",
|
||||
"changePosition": "Position wechseln",
|
||||
"remove": "Entfernen",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "Werkzeuge",
|
||||
"items": {
|
||||
"docker": "Docker",
|
||||
"api": "API"
|
||||
"api": "API",
|
||||
"migrate": "Auf 1.0 migrieren"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"translators": "Übersetzer ({{count}})",
|
||||
"translatorsDescription": "Dank dieser Leute ist Homarr in {{languages}} Sprachen verfügbar! Möchten Sie helfen, Homarr in Ihre Sprache zu übersetzen? Lesen Sie <a>hier</a>, wie das geht.",
|
||||
"contributors": "Mitwirkende ({{count}})",
|
||||
"contributorsDescription": "Diese Leute haben den Code erstellt, der Homarr zum Laufen bringt! Möchten Sie beim Aufbau von Homarr helfen? Lesen Sie <a>hier</a>wie das geht",
|
||||
"contributorsDescription": "Diese Leute haben den Code entwickelt, der Homarr zum Laufen bringt! Möchten Sie beim Aufbau von Homarr helfen? Lesen Sie <a>hier</a>, wie Sie das tun können",
|
||||
"actions": {
|
||||
"toggleTheme": "Umschalten zwischen Hell- und Dunkelmodus",
|
||||
"focusSearchBar": "Suchleiste fokussieren",
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "Externe Adresse",
|
||||
"description": "URL, die beim Anklicken der App geöffnet wird."
|
||||
"description": "URL, die beim Anklicken der App geöffnet wird.",
|
||||
"tooltip": "Sie können einige Variablen verwenden, um dynamische Adressen zu erstellen:<br><br><b>[homarr_base]</b> : vollständige Adresse ohne Port und Pfad. <i>(Beispiel: „https://subdomain.homarr.dev“)</i><br><b>[homarr_hostname]</b> : vollständige Basis-URL einschließlich der aktuellen Subdomäne. <i>(Beispiel: „subdomain.homarr.dev“)</i><br><b>[homarr_domain]</b> : Domäne mit herausgefilterter Subdomäne. <i>(Beispiel: „homarr.dev“)</i><br><b>[homarr_protocol]</b> : <i>http/https</i><br><br>Diese Variablen hängen alle von der aktuellen URL ab."
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
33
public/locales/de/manage/migrate.json
Normal file
33
public/locales/de/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "Auf 1.0 migrieren",
|
||||
"pageTitle": "Boards, Integrationen und Benutzer migrieren",
|
||||
"description": "Exportiert deine Boards und Benutzer in ein ZIP-Archiv, um sie nach Version 1.0.0 nach Homarr zu migrieren",
|
||||
"securityNote": {
|
||||
"title": "Sicherheitshinweis",
|
||||
"text": "Beim Exportieren von Benutzern und Integrationen wird ein Modalfenster mit einem Verschlüsselungsschlüssel geöffnet. Dieser Schlüssel ist erforderlich, um Daten in Homarr zu importieren. Bewahren Sie ihn sicher auf und geben Sie ihn nicht an Dritte weiter."
|
||||
},
|
||||
"form": {
|
||||
"label": "Wählen Sie alles aus, was Sie exportieren möchten",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": "Boards exportieren"
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationen exportieren",
|
||||
"description": "Dies beinhaltet verschlüsselte Anmeldeinformationen für Integrationen. Nur verfügbar beim Exportieren von Boards"
|
||||
},
|
||||
"users": {
|
||||
"label": "Benutzer exportieren",
|
||||
"description": "Damit werden nur die Anmeldeinformationen der Benutzer exportiert, Hash und Salt der Passwörter werden verschlüsselt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": "Exportieren von Daten"
|
||||
},
|
||||
"modal": {
|
||||
"title": "Verschlüsselungsschlüssel",
|
||||
"description": "Ihre Daten wurden exportiert. Bewahren Sie diesen Schlüssel sicher auf und geben Sie ihn nicht an Dritte weiter. Sie benötigen diesen Schlüssel, um die Daten in Homarr zu importieren.",
|
||||
"copyDismiss": "Kopieren & Verwerfen"
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,12 @@
|
||||
"text": "Es gab ein Problem bei der Verbindung zu Ihrem DNS Hole(s). Bitte überprüfen Sie Ihre Konfiguration/Integration(en)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "Deaktivierungsdauer festlegen",
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"unlimited": "leer lassen für unbegrenzt",
|
||||
"set": "Speichern"
|
||||
}
|
||||
}
|
||||
141
public/locales/de/modules/health-monitoring.json
Normal file
141
public/locales/de/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Überwachung des Systemzustands",
|
||||
"description": "Zeigt Informationen zum Zustand und Status Ihres/Ihrer Systeme(s) an.",
|
||||
"settings": {
|
||||
"title": "Einstellungen für die Überwachung des Systemzustands",
|
||||
"fahrenheit": {
|
||||
"label": "CPU-Temperatur in Fahrenheit"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU-Info anzeigen",
|
||||
"load": "Durchschnittliche Last",
|
||||
"minute": "{{minute}} Minuten",
|
||||
"minutes": "{{minutes}} Minuten"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Speicher-Info anzeigen"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Dateisystem Info anzeigen"
|
||||
},
|
||||
"node": {
|
||||
"label": "Nach Knotennamen filtern",
|
||||
"info": "Geben Sie den Namen Ihres Proxmox-Knotens ein, um nur Metriken für diesen Knoten anzuzeigen. Standardmäßig wird der gesamte Cluster angezeigt."
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "Abschnitt standardmäßig geöffnet",
|
||||
"data": {
|
||||
"none": "Keine",
|
||||
"node": "Knoten",
|
||||
"vm": "VMs",
|
||||
"lxc": "LXCs",
|
||||
"storage": "Speicher"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "Tab standardmäßig geöffnet",
|
||||
"info": "Tab standardmäßig geöffnet. Wird nur verwendet, wenn mehrere Integrationen verfügbar sind.",
|
||||
"data": {
|
||||
"system": "System",
|
||||
"cluster": "Cluster"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "Abschnitt Zusammenfassung anzeigen"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "Abschnitt Knoten anzeigen"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "Abschnitt VMs anzeigen"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "Abschnitt LXCs anzeigen"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "Abschnitt Speicherbereich anzeigen"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "Voraussetzung dafür, dass die Abschnittsstatusanzeige „OK“ ist",
|
||||
"info": "Bei „Alle“ müssen alle Elemente online sein, damit die Anzeige grün ist. Für „Mindestens“ muss mindestens ein Artikel online sein.",
|
||||
"data": {
|
||||
"any": "Mindestens aktiv",
|
||||
"all": "Alle aktiv"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "Zertifikatfehler ignorieren",
|
||||
"info": "Wenn aktiviert, ignoriert das Widget Zertifikatsfehler beim Zugriff auf die Proxmox-API. Dies kann hilfreich sein, wenn Sie über HTTPS auf Proxmox zugreifen."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU",
|
||||
"load": "Durchschnittliche Last",
|
||||
"minute": "{{minute}} Minuten"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Arbeitsspeicher",
|
||||
"totalMem": "Gesamtspeicher: {{total}} GB",
|
||||
"available": "Verfügbar: {{available}} GB - {{percentage}}%"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Dateisystem",
|
||||
"available": "Verfügbar: {{available}} - {{percentage}}%"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "Betriebszeit",
|
||||
"uptimeFormat": "{{days}} Tage, {{hours}} Stunden, {{minutes}} Minuten",
|
||||
"updates": "Updates verfügbar",
|
||||
"reboot": "Neustart"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Ihr(e) System(e) konnte nicht gefunden werden.",
|
||||
"text": "Beim Herstellen der Verbindung zu Ihrem System ist ein Problem aufgetreten. Bitte überprüfen Sie Ihre Konfiguration/Integration(en)."
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "System",
|
||||
"cluster": "Cluster"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "Knoten",
|
||||
"vms": "VMs",
|
||||
"lxcs": "LXCs",
|
||||
"storage": "Speicher"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Name",
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM",
|
||||
"node": "Knoten"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "Knoten",
|
||||
"vmid": "VMID",
|
||||
"details": "Details",
|
||||
"cores": "Kerne – {{maxCpu}}",
|
||||
"memSize": "Speicher – {{maxMem}}",
|
||||
"memRatio": "Speicher - {{usedMem}} / {{maxMem}}",
|
||||
"diskSize": "Festplatte – {{maxDisk}}",
|
||||
"diskRatio": "Festplatte - {{usedDisk}} / {{maxDisk}}",
|
||||
"uptime": "Betriebszeit – {{uptime}}",
|
||||
"plugin": "Erweiterung",
|
||||
"ha": "HA Status - {{haState}}",
|
||||
"sharedStorage": "Geteilter Speicher",
|
||||
"localStorage": "Lokaler Speicher",
|
||||
"na": "nicht verfügbar"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/de/modules/indexer-manager.json
Normal file
22
public/locales/de/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Status des Indexer-Managers",
|
||||
"description": "Status ihrer Indexer",
|
||||
"settings": {
|
||||
"title": "Status des Indexer-Managers",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "Indexer in neuem Tab öffnen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "Indexer-Manager",
|
||||
"testAllButton": "Alle testen"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Es konnte kein Indexer-Manager gefunden werden",
|
||||
"text": "Beim Herstellen der Verbindung zu Ihrem Indexer-Manager ist ein Problem aufgetreten. Bitte überprüfen Sie Ihre Konfiguration/Integration(en)."
|
||||
}
|
||||
}
|
||||
}
|
||||
96
public/locales/de/modules/media-transcoding.json
Normal file
96
public/locales/de/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Medientranskodierung",
|
||||
"description": "Zeigt Informationen zur Medientranskodierung an",
|
||||
"settings": {
|
||||
"title": "Einstellungen für Medientranskodierung",
|
||||
"appId": {
|
||||
"label": "Wähle eine App"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "Standardansicht",
|
||||
"data": {
|
||||
"workers": "Workers",
|
||||
"queue": "Warteschlange",
|
||||
"statistics": "Statistiken"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "Indikator für Gesundheitscheck anzeigen"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "Gesundheitschecks in Warteschlange anzeigen"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "Warteschlange: Elemente pro Seite"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "App-Symbol in der unteren rechten Ecke anzeigen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "Bitte wählen Sie eine App in den Widget Einstellungen",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Datei",
|
||||
"eta": "Voraussichtlicher Abschluss",
|
||||
"progress": "Fortschritt"
|
||||
},
|
||||
"empty": "Leer",
|
||||
"tooltip": {
|
||||
"transcode": "Transkodieren",
|
||||
"healthCheck": "Gesundheitscheck"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Datei",
|
||||
"size": "Größe"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "{{start}} - {{end}} von {{total}}"
|
||||
},
|
||||
"empty": "Leer",
|
||||
"tooltip": {
|
||||
"transcode": "Transkodieren",
|
||||
"healthCheck": "Gesundheitscheck"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "Leer",
|
||||
"box": {
|
||||
"transcodes": "Transkodierung: {{value}}",
|
||||
"healthChecks": "Gesundheitscheck: {{value}}",
|
||||
"files": "Dateien: {{value}}",
|
||||
"spaceSaved": "Gespeichert: {{value}}"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "Transkodieren",
|
||||
"healthChecks": "Gesundheitscheck",
|
||||
"videoCodecs": "Codecs",
|
||||
"videoContainers": "Container",
|
||||
"videoResolutions": "Auflösungen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "Fehler",
|
||||
"message": "Beim Laden der Daten von Tdarr ist ein Fehler aufgetreten."
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "Workers",
|
||||
"queue": "Warteschlange",
|
||||
"statistics": "Statistiken"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "Gesundheitscheck",
|
||||
"queued": "In der Warteschlange",
|
||||
"healthy": "Gesund",
|
||||
"unhealthy": "Fehlerhaft"
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,13 @@
|
||||
"label": "Textzeilen Klammer"
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": ""
|
||||
"label": "Nach Veröffentlichungsdatum sortieren (aufsteigend)"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "Platzieren Sie Beiträge ohne Veröffentlichungsdatum ganz oben"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "Maximale Anzahl an Beiträgen"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -9,13 +9,26 @@
|
||||
"label": "Eintrag-ID",
|
||||
"info": "Eindeutige Eintrag-ID im Home Assistant. Kopieren durch Anklicken von Eintrag > Anklicken des Zahnradsymbols > Anklicken der Schaltfläche \"Kopieren\" bei \"Eintrag-ID\". Einige benutzerdefinierte Einträge werden möglicherweise nicht unterstützt."
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "Maßeinheiten anzeigen",
|
||||
"info": "Fügt die Maßeinheit des Attributs an den Entitätszustand an."
|
||||
},
|
||||
"automationId": {
|
||||
"label": "Optionale Automatisierungs-ID",
|
||||
"info": "Ihre eindeutige Automatisierungs-ID. Diese beginnt immer mit automation.XXXXX. Wenn sie nicht festgelegt wird, ist das Widget nicht anklickbar und zeigt nur den Status an. Nach dem Klicken wird der Entitätsstatus aktualisiert."
|
||||
},
|
||||
"displayName": {
|
||||
"label": "Anzeigename"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "Benutzerdefinierten Namen anzeigen",
|
||||
"info": "Zeige Benutzerdefinierten Namen anstatt des Anzeigenamen vom Home-Assistent an."
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "Entität umschalten",
|
||||
"info": "Führen Sie beim Klicken eine Home Assistant-Umschaltaktion für die Entität aus."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
"displayRatioWithFilter": {
|
||||
"label": "Verhältnis der gefilterten Torrents-Liste anzeigen",
|
||||
"info": "Ist diese Option deaktiviert, wird nur das globale Verhältnis angezeigt. Für das globale Verhältnis werden weiterhin die Beschriftungen verwendet, wenn diese eingestellt sind"
|
||||
},
|
||||
"columnOrdering": {
|
||||
"label": "Sortierung der Zeilen einschalten"
|
||||
},
|
||||
"rowSorting": {
|
||||
"label": "Sortierung der Reihen einschalten"
|
||||
},
|
||||
"columns": {
|
||||
"label": "Spalten zur Anzeige auswählen",
|
||||
"data": {
|
||||
"date": "Hinzugefügt am",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"eta": "Voraussichtlicher Abschluss",
|
||||
"progress": "Fortschritt"
|
||||
}
|
||||
},
|
||||
"nameColumnSize": {
|
||||
"label": "Ändern Sie die Größe der Namensspalte"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -84,10 +103,6 @@
|
||||
"text": "Homarr konnte nicht mit Ihren Torrent Clients kommunizieren. Bitte überprüfen Sie Ihre Konfiguration"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"title": "Wird geladen...",
|
||||
"description": "Herstellen der Verbindung"
|
||||
},
|
||||
"popover": {
|
||||
"introductionPrefix": "Verwaltet von",
|
||||
"metrics": {
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
"displayCityName": {
|
||||
"label": "Zeige Name der Stadt an"
|
||||
},
|
||||
"displayWeekly": {
|
||||
"label": "Wöchentliche Prognose anzeigen"
|
||||
},
|
||||
"forecastDays": {
|
||||
"label": "Anzuzeigende Tage"
|
||||
},
|
||||
"location": {
|
||||
"label": "Wetterstandort"
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"text": "",
|
||||
"label": "Dein Fehler",
|
||||
"reportButton": "Fehler melden"
|
||||
"text": "Das Widet ist unerwartet abgestürzt. Bitte lesen Sie die Dokumentation und beheben Sie etwaige Tippfehler.",
|
||||
"label": "Fehler aufgetreten",
|
||||
"reportButton": "Diesen Fehler auf GitHub melden"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
"buttons": {
|
||||
"submit": "Σύνδεση"
|
||||
},
|
||||
"afterLoginRedirection": "Μετά τη σύνδεση, θα μεταφερθείτε στο {{url}}"
|
||||
"afterLoginRedirection": "Μετά τη σύνδεση, θα μεταφερθείτε στο {{url}}",
|
||||
"providersEmpty": {
|
||||
"title": "Σφάλμα παρόχου εξουσιοδότησης",
|
||||
"message": "Οι πάροχοι δεν έχουν οριστεί, ελέγξτε τα αρχεία καταγραφής σας για περισσότερες πληροφορίες."
|
||||
}
|
||||
},
|
||||
"alert": "Τα διαπιστευτήριά σας είναι λανθασμένα ή αυτός ο λογαριασμός δεν υπάρχει. Προσπαθήστε ξανά."
|
||||
}
|
||||
@@ -13,9 +13,11 @@
|
||||
"previous": "Προηγούμενο",
|
||||
"confirm": "Επιβεβαίωση",
|
||||
"enabled": "Ενεργοποιημένο",
|
||||
"duplicate": "Διπλότυπο",
|
||||
"disabled": "Απενεργοποιημένο",
|
||||
"enableAll": "Ενεργοποίηση όλων",
|
||||
"disableAll": "Απενεργοποίηση όλων",
|
||||
"setTimer": "Ορισμός Χρονοδιακόπτη",
|
||||
"version": "Έκδοση",
|
||||
"changePosition": "Αλλαγή θέσης",
|
||||
"remove": "Αφαίρεση",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"title": "Εργαλεία",
|
||||
"items": {
|
||||
"docker": "Docker",
|
||||
"api": "API"
|
||||
"api": "API",
|
||||
"migrate": ""
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
},
|
||||
"externalAddress": {
|
||||
"label": "Εξωτερική διεύθυνση",
|
||||
"description": "URL που θα ανοίγει όταν κάνετε κλικ στην εφαρμογή."
|
||||
"description": "URL που θα ανοίγει όταν κάνετε κλικ στην εφαρμογή.",
|
||||
"tooltip": "Μπορείτε να χρησιμοποιήσετε μερικές μεταβλητές για να δημιουργήσετε δυναμικές διευθύνσεις:<br><br><b>[homarr_base]</b>: πλήρης διεύθυνση χωρίς τη πόρτα και τη διαδρομή. <i>(Παράδειγμα: 'https://subdomain.homarr.dev')</i><br><b>[homarr_hostname]</b>: πλήρες url βάσης συμπεριλαμβανομένου του τρέχοντος subdomain. <i>(Παράδειγμα: 'subdomain.homarr.dev')</i><br><b>[homarr_domain]</b>: domain χωρίς το subdomoain. <i>(Παράδειγμα: `homarr.dev')</i><br><b>[homarr_protocol]</b>: <i>http/https</i><br><br>Όλες αυτές οι μεταβλητές εξαρτώνται από το τρέχον url."
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
|
||||
33
public/locales/el/manage/migrate.json
Normal file
33
public/locales/el/manage/migrate.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"metaTitle": "",
|
||||
"pageTitle": "",
|
||||
"description": "",
|
||||
"securityNote": {
|
||||
"title": "",
|
||||
"text": ""
|
||||
},
|
||||
"form": {
|
||||
"label": "",
|
||||
"option": {
|
||||
"boards": {
|
||||
"label": ""
|
||||
},
|
||||
"integrations": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
},
|
||||
"users": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"export": ""
|
||||
},
|
||||
"modal": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"copyDismiss": ""
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,12 @@
|
||||
"text": "Υπήρξε ένα πρόβλημα κατά τη σύνδεση στο/α DNS Hole(s) σας. Παρακαλώ επαληθεύστε τις ρυθμίσεις / ενσωμάτωση."
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationModal": {
|
||||
"title": "Ρύθμιση χρόνου απενεργοποίησης",
|
||||
"hours": "Ώρες",
|
||||
"minutes": "Λεπτά",
|
||||
"unlimited": "αφήστε κενό για απεριόριστο",
|
||||
"set": "Ορισμός"
|
||||
}
|
||||
}
|
||||
141
public/locales/el/modules/health-monitoring.json
Normal file
141
public/locales/el/modules/health-monitoring.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Παρακολούθηση της υγείας του συστήματος",
|
||||
"description": "Εμφανίζει πληροφορίες που δείχνουν την κατάσταση και την υγεία του/ων συστήματος/ων σας.",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις για την παρακολούθηση της υγείας του συστήματος",
|
||||
"fahrenheit": {
|
||||
"label": "Θερμοκρασία CPU σε Φαρενάιτ"
|
||||
},
|
||||
"cpu": {
|
||||
"label": "Εμφάνιση πληροφοριών επεξεργαστή",
|
||||
"load": "Μέσος Όρος Φόρτου",
|
||||
"minute": "{{minute}} λεπτό",
|
||||
"minutes": "{{minutes}} λεπτά"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Εμφάνιση Πληροφοριών Μνήμης"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Εμφάνιση Πληροφοριών Συστήματος Αρχείων"
|
||||
},
|
||||
"node": {
|
||||
"label": "Φίλτρο με βάση το όνομα του κόμβου",
|
||||
"info": "Πληκτρολογήστε το όνομα του κόμβου Proxmox για να εμφανίζονται μόνο οι μετρήσεις για αυτόν τον κόμβο. Από προεπιλογή, εμφανίζεται ολόκληρη η συστάδα."
|
||||
},
|
||||
"defaultViewState": {
|
||||
"label": "Τμήμα ανοιχτό από προεπιλογή",
|
||||
"data": {
|
||||
"none": "Κανένα",
|
||||
"node": "Κόμβοι",
|
||||
"vm": "VMs",
|
||||
"lxc": "LXCs",
|
||||
"storage": "Αποθηκευτικός χώρος"
|
||||
}
|
||||
},
|
||||
"defaultTabState": {
|
||||
"label": "Ανοιχτή καρτέλα από προεπιλογή",
|
||||
"info": "Ανοιχτή καρτέλα από προεπιλογή. Χρησιμοποιείται μόνο όταν είναι διαθέσιμες πολλαπλές ενσωματώσεις.",
|
||||
"data": {
|
||||
"system": "Σύστημα",
|
||||
"cluster": "Συστάδα"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"label": "Εμφάνιση ενότητας σύνοψης"
|
||||
},
|
||||
"showNode": {
|
||||
"label": "Εμφάνιση τμήματος κόμβων"
|
||||
},
|
||||
"showVM": {
|
||||
"label": "Εμφάνιση ενότητας VMs"
|
||||
},
|
||||
"showLXCs": {
|
||||
"label": "Εμφάνιση ενότητας LXC"
|
||||
},
|
||||
"showStorage": {
|
||||
"label": "Εμφάνιση ενότητας αποθήκευσης"
|
||||
},
|
||||
"sectionIndicatorColor": {
|
||||
"label": "Απαίτηση για την ένδειξη κατάστασης του τμήματος να είναι 'OK'",
|
||||
"info": "Η επιλογή \"Όλα\" απαιτεί να είναι όλα τα στοιχεία σε λειτουργία για να είναι ο δείκτης πράσινος. Το \"Οποιοδήποτε\" απαιτεί τουλάχιστον ένα στοιχείο να είναι σε λειτουργία.",
|
||||
"data": {
|
||||
"any": "Οποιοδήποτε ενεργό",
|
||||
"all": "Όλα Ενεργά"
|
||||
}
|
||||
},
|
||||
"ignoreCert": {
|
||||
"label": "Παράβλεψη Σφαλμάτων Πιστοποιητικού",
|
||||
"info": "Εάν είναι ενεργοποιημένο, το widget θα αγνοεί τα σφάλματα πιστοποιητικών κατά την πρόσβαση στο API του Proxmox. Αυτό μπορεί να είναι χρήσιμο κατά την πρόσβαση στο Proxmox μέσω HTTPS."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"label": "CPU",
|
||||
"load": "Μέσος Όρος Φόρτου",
|
||||
"minute": "{{minute}} λεπτό"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Μνήμη",
|
||||
"totalMem": "Συνολική μνήμη: {{total}}GB",
|
||||
"available": "Διαθέσιμα: {{available}}GB - {{percentage}}%"
|
||||
},
|
||||
"fileSystem": {
|
||||
"label": "Σύστημα Αρχείων",
|
||||
"available": "Διαθέσιμα: {{available}} - {{percentage}}%"
|
||||
},
|
||||
"info": {
|
||||
"uptime": "Χρόνος Λειτουργίας",
|
||||
"uptimeFormat": "{{days}} ημέρες, {{hours}} ώρες, {{minutes}} λεπτά",
|
||||
"updates": "Διαθέσιμες ενημερώσεις",
|
||||
"reboot": "Επανεκκίνηση"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Δεν είναι δυνατή η εύρεση του συστήματός σας.",
|
||||
"text": "Υπήρξε πρόβλημα σύνδεσης με το σύστημά σας. Παρακαλούμε επαληθεύστε τις ρυθμίσεις/ενσωμάτωση(ες) σας."
|
||||
}
|
||||
},
|
||||
"headings": {
|
||||
"system": "Σύστημα",
|
||||
"cluster": "Συστάδα"
|
||||
},
|
||||
"cluster": {
|
||||
"summary": {
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM"
|
||||
},
|
||||
"accordion": {
|
||||
"title": {
|
||||
"nodes": "Κόμβοι",
|
||||
"vms": "VMs",
|
||||
"lxcs": "LXCs",
|
||||
"storage": "Αποθηκευτικός χώρος"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Όνομα",
|
||||
"cpu": "CPU",
|
||||
"ram": "RAM",
|
||||
"node": "Κόμβος"
|
||||
}
|
||||
},
|
||||
"popover": {
|
||||
"node": "Κόμβος",
|
||||
"vmid": "VMID",
|
||||
"details": "Λεπτομέρειες",
|
||||
"cores": "Πυρήνες - {{maxCpu}}",
|
||||
"memSize": "Μνήμη - {{maxMem}}",
|
||||
"memRatio": "Μνήμη - {{usedMem}} / {{maxMem}}",
|
||||
"diskSize": "Δίσκος - {{maxDisk}}",
|
||||
"diskRatio": "Δίσκος - {{usedDisk}} / {{maxDisk}}",
|
||||
"uptime": "Χρόνος λειτουργίας - {{uptime}}",
|
||||
"plugin": "Πρόσθετα",
|
||||
"ha": "Κατάσταση HA - {{haState}}",
|
||||
"sharedStorage": "Κοινόχρηστος αποθηκευτικός χώρος",
|
||||
"localStorage": "Τοπικός Αποθηκευτικός Χώρος",
|
||||
"na": "Μη διαθέσιμο"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
public/locales/el/modules/indexer-manager.json
Normal file
22
public/locales/el/modules/indexer-manager.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Κατάσταση διαχειριστή indexer",
|
||||
"description": "Κατάσταση σχετικά με τους indexers σας",
|
||||
"settings": {
|
||||
"title": "Κατάσταση διαχειριστή indexer",
|
||||
"openIndexerSiteInNewTab": {
|
||||
"label": "Άνοιγμα του Indexer ιστότοπου σε νέα καρτέλα"
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexersStatus": {
|
||||
"title": "Διαχειριστής indexer",
|
||||
"testAllButton": "Δοκιμή όλων"
|
||||
},
|
||||
"errors": {
|
||||
"general": {
|
||||
"title": "Δεν είναι δυνατή η εύρεση διαχειριστή indexer",
|
||||
"text": "Υπήρξε πρόβλημα σύνδεσης με τον διαχειριστή των indexers σας. Παρακαλούμε επαληθεύστε τις ρυθμίσεις/ενσωμάτωση(ες) σας."
|
||||
}
|
||||
}
|
||||
}
|
||||
96
public/locales/el/modules/media-transcoding.json
Normal file
96
public/locales/el/modules/media-transcoding.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"descriptor": {
|
||||
"name": "Μετακωδικοποίηση πολυμέσων",
|
||||
"description": "Εμφανίζει πληροφορίες σχετικά με τη μετακωδικοποίηση πολυμέσων",
|
||||
"settings": {
|
||||
"title": "Ρυθμίσεις μετακωδικοποίησης πολυμέσων",
|
||||
"appId": {
|
||||
"label": "Επιλέξτε μια εφαρμογή"
|
||||
},
|
||||
"defaultView": {
|
||||
"label": "Προεπιλεγμένη προβολή",
|
||||
"data": {
|
||||
"workers": "Εργάτες",
|
||||
"queue": "Ουρά",
|
||||
"statistics": "Στατιστικά"
|
||||
}
|
||||
},
|
||||
"showHealthCheck": {
|
||||
"label": "Εμφάνιση δείκτη ελέγχου υγείας"
|
||||
},
|
||||
"showHealthChecksInQueue": {
|
||||
"label": "Εμφάνιση ελέγχων υγείας στην ουρά"
|
||||
},
|
||||
"queuePageSize": {
|
||||
"label": "Ουρά: Στοιχεία ανά σελίδα"
|
||||
},
|
||||
"showAppIcon": {
|
||||
"label": "Εμφάνιση εικονιδίου εφαρμογής στην κάτω δεξιά γωνία"
|
||||
}
|
||||
}
|
||||
},
|
||||
"noAppSelected": "Παρακαλούμε επιλέξτε μια εφαρμογή στις ρυθμίσεις του widget",
|
||||
"views": {
|
||||
"workers": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Αρχείο",
|
||||
"eta": "Εκτιμώμενος χρόνος αναμονής",
|
||||
"progress": "Πρόοδος"
|
||||
},
|
||||
"empty": "Άδειο",
|
||||
"tooltip": {
|
||||
"transcode": "Μετακωδικοποίηση",
|
||||
"healthCheck": "Έλεγχος υγείας"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"table": {
|
||||
"header": {
|
||||
"name": "Αρχείο",
|
||||
"size": "Μέγεθος"
|
||||
},
|
||||
"footer": {
|
||||
"currentIndex": "{{start}}-{{end}} από {{total}}"
|
||||
},
|
||||
"empty": "Άδειο",
|
||||
"tooltip": {
|
||||
"transcode": "Μετακωδικοποίηση",
|
||||
"healthCheck": "Έλεγχος υγείας"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"empty": "Άδειο",
|
||||
"box": {
|
||||
"transcodes": "Κωδικοποιήσεις: {{value}}",
|
||||
"healthChecks": "Έλεγχοι υγείας: {{value}}",
|
||||
"files": "Αρχεία: {{value}}",
|
||||
"spaceSaved": "Αποθηκεύτηκαν: {{value}}"
|
||||
},
|
||||
"pies": {
|
||||
"transcodes": "Μετακωδικοποιήσεις",
|
||||
"healthChecks": "Έλεγχοι υγείας",
|
||||
"videoCodecs": "Κωδικοποιητές",
|
||||
"videoContainers": "Containers",
|
||||
"videoResolutions": "Αναλύσεις"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"title": "Σφάλμα",
|
||||
"message": "Παρουσιάστηκε σφάλμα κατά την ανάκτηση δεδομένων από το Tdarr."
|
||||
},
|
||||
"tabs": {
|
||||
"workers": "Εργάτες",
|
||||
"queue": "Ουρά",
|
||||
"statistics": "Στατιστικά"
|
||||
},
|
||||
"healthCheckStatus": {
|
||||
"title": "Έλεγχος υγείας",
|
||||
"queued": "Στην ουρά",
|
||||
"healthy": "Υγιές",
|
||||
"unhealthy": "Μη υγιές"
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,12 @@
|
||||
},
|
||||
"sortByPublishDateAscending": {
|
||||
"label": "Ταξινόμηση κατά ημερομηνία δημοσίευσης (αύξουσα)"
|
||||
},
|
||||
"sortPostsWithoutPublishDateToTheTop": {
|
||||
"label": "Τοποθετήστε αναρτήσεις χωρίς ημερομηνία δημοσίευσης στην κορυφή"
|
||||
},
|
||||
"maximumAmountOfPosts": {
|
||||
"label": "Μέγιστος αριθμός αναρτήσεων"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
||||
@@ -9,13 +9,26 @@
|
||||
"label": "Αναγνωριστικό οντότητας",
|
||||
"info": "Μοναδικό αναγνωριστικό οντότητας στο Home Assistant. Αντιγράψτε κάνοντας κλικ στην οντότητα > Κάντε κλικ στο εικονίδιο με το γρανάζι > Κάντε κλικ στο κουμπί αντιγραφής στο 'Αναγνωριστικό οντότητας'. Ορισμένες προσαρμοσμένες οντότητες ενδέχεται να μην υποστηρίζονται."
|
||||
},
|
||||
"appendUnit": {
|
||||
"label": "Προσθήκη μονάδας μέτρησης",
|
||||
"info": "Προσθήκη του χαρακτηριστικού μονάδας μέτρησης στην κατάσταση της οντότητας."
|
||||
},
|
||||
"automationId": {
|
||||
"label": "Προαιρετικό αναγνωριστικό αυτοματισμού",
|
||||
"info": "Το μοναδικό σας αναγνωριστικό αυτοματισμού. Ξεκινά πάντα με automation.XXXXX. Αν δεν οριστεί, το widget δεν θα μπορεί να κάνει κλικ και θα εμφανίζει μόνο την κατάσταση. Μετά το κλικ, η κατάσταση της οντότητας θα ανανεωθεί."
|
||||
},
|
||||
"displayName": {
|
||||
"label": "Εμφανιζόμενο όνομα"
|
||||
},
|
||||
"displayFriendlyName": {
|
||||
"label": "Εμφάνιση φιλικού ονόματος",
|
||||
"info": "Εμφάνιση φιλικού ονόματος από το Home Assistant αντί για το εμφανιζόμενο όνομα."
|
||||
},
|
||||
"genericToggle": {
|
||||
"label": "Εναλλαγή οντοτήτων",
|
||||
"info": "Εκτέλεση εναλλαγής στην οντότητα του Home Assistant όταν κάνετε κλικ."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user