Compare commits

..

33 Commits

Author SHA1 Message Date
Thomas Camlong
ed3d143b8a New Crowdin updates (#2226) 2024-12-17 21:43:24 +01:00
Meier Lukas
136032f920 Merge branch 'master' into dev 2024-12-17 21:20:54 +01:00
Meier Lukas
150e9bf53f chore: update version in package-json to 0.15.10 2024-12-17 21:17:56 +01:00
Thomas Camlong
a3d92d6a73 chore(translations): new crowdin updates (#2225) 2024-12-17 19:03:12 +01:00
Thomas Camlong
d3a48ae0e0 New Crowdin updates (#2190) 2024-12-17 18:40:51 +01:00
Marek Tancak
4aa7e7602b fix: unable to delete boards with capitalised name 'Default' (#2223) 2024-12-17 18:40:32 +01:00
Meier Lukas
d63c610cf5 feat: add 1.0 migration page (#2224) 2024-12-17 18:39:57 +01:00
Manuel
0a31b0fc1c Version 0.15.9 (#2220)
* fix: iframes javascript content (#2218)

* config: update version (#2219)
2024-12-08 21:59:34 +01:00
Manuel
3737543766 config: update version (#2219) 2024-12-08 20:53:35 +01:00
Manuel
85547277d1 fix: iframes javascript content (#2218) 2024-12-08 20:06:15 +01:00
Meier Lukas
8e962abc16 Merge pull request #2216 from ajnart/dev 2024-12-07 22:37:59 +01:00
Meier Lukas
31a7559b86 fix: two issues with board rename and iframes (#2215) 2024-12-07 22:21:40 +01:00
TyxTang
b59921b843 fix: Fix Jellyseerr Avatar Loading Issue (#2197)
fix: Fix Jellyseerr Avatar Loading Issue
feat: Add Fallback Image.
2024-11-27 22:17:48 +01:00
Marius Starke
95c126f2c6 fix: remove several occurrences of translation file prefix (#2188)
Co-authored-by: BuildTools <unconfigured@null.spigotmc.org>
2024-11-05 09:54:27 +01:00
Meier Lukas
c8425acd34 Merge pull request #2178 from ajnart/dev
Version 0.15.7
2024-11-02 17:44:55 +01:00
Meier Lukas
7ea9c00c18 chore: update package-json version to 0.15.7 (#2184) 2024-11-02 17:39:42 +01:00
Thomas Camlong
3651585271 chore: new Crowdin updates (#2169)
* New translations common.json (Ukrainian)

* New translations date.json (Ukrainian)

* New translations weather.json (Ukrainian)

* New translations page-appearance.json (Ukrainian)

* New translations common.json (Ukrainian)

* New translations page-appearance.json (Ukrainian)

* New translations login.json (Ukrainian)

* New translations selector.json (Ukrainian)

* New translations add-app.json (Ukrainian)

* New translations about.json (Ukrainian)

* New translations torrents-status.json (Ukrainian)

* New translations manage.json (Ukrainian)

* New translations boards.json (Ukrainian)

* New translations users.json (Ukrainian)

* New translations docker.json (Ukrainian)

* New translations entity-state.json (Ukrainian)

* New translations edit.json (Ukrainian)

* New translations trigger-automation.json (Ukrainian)

* New translations indexer-manager.json (Ukrainian)

* New translations health-monitoring.json (Ukrainian)

* New translations media-transcoding.json (Ukrainian)
2024-11-01 10:04:23 +01:00
Meier Lukas
22732e33e5 fix: credentials login behind proxy no longer works (#2177) 2024-11-01 10:03:45 +01:00
Lollyde
9caf72aae7 fix: documentation link (#2163)
seems like this was missed a while back.
2024-10-31 13:55:38 +01:00
Meier Lukas
5a73166d70 Merge pull request #2162 from ajnart/dev
v0.15.6
2024-10-18 20:54:33 +02:00
Meier Lukas
5b23f7d13a fix: db migration not working (#2161) 2024-10-18 20:50:56 +02:00
Meier Lukas
26ae001b5a Merge pull request #2157 from ajnart/dev
* fix: app ping retry interval

* Bugfix for dynamic urls not properly replaces on Search (#2124)

* Bugfix for search items

* Fixing server side rendering issues

* Add rel="noreferrer" to link AppTile.tsx (#2126)

reference: 
Issue: https://github.com/ajnart/homarr/issues/1933
PR comment: https://github.com/ajnart/homarr/pull/2048#issuecomment-2113238216

* fix: Make timer button show only to admins (#2143)

* fix: wrong redirect url for oidc requests #1909 (#2149)

* fix: wrong redirect url for oidc requests #1909

* fix: login not working with https

* chore: New Crowdin updates (#2123)

* New translations health-monitoring.json (Greek)

* New translations login.json (French)

* New translations customize.json (French)

---------

Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com>
Co-authored-by: Jelte Lagendijk <j3lte@users.noreply.github.com>
Co-authored-by: Boyd <bebsworthy@gmail.com>
Co-authored-by: SeDemal <Tagaishi@hotmail.ch>
Co-authored-by: Thomas Camlong <thomas@ajnart.fr>
2024-10-18 18:55:22 +02:00
Meier Lukas
59e5c0306f chore: update package-json version (#2158) 2024-10-18 18:50:42 +02:00
Thomas Camlong
baedc001d9 chore: New Crowdin updates (#2123)
* New translations health-monitoring.json (Greek)

* New translations login.json (French)

* New translations customize.json (French)
2024-10-18 18:41:53 +02:00
Meier Lukas
6469aa2350 fix: wrong redirect url for oidc requests #1909 (#2149)
* fix: wrong redirect url for oidc requests #1909

* fix: login not working with https
2024-10-16 16:47:21 +02:00
SeDemal
d4765c1e7f fix: Make timer button show only to admins (#2143) 2024-09-29 22:24:21 +02:00
Manuel
4bba516fdf Merge pull request #2122 from ajnart/fix/app-ping-retry-interval 2024-09-29 20:27:22 +02:00
Boyd
ddde9992c5 Add rel="noreferrer" to link AppTile.tsx (#2126)
reference: 
Issue: https://github.com/ajnart/homarr/issues/1933
PR comment: https://github.com/ajnart/homarr/pull/2048#issuecomment-2113238216
2024-09-16 01:09:06 +02:00
Jelte Lagendijk
c81612e39b Bugfix for dynamic urls not properly replaces on Search (#2124)
* Bugfix for search items

* Fixing server side rendering issues
2024-09-11 23:53:55 +02:00
Manuel
993739ab8e fix: app ping retry interval 2024-09-04 20:48:05 +02:00
Manuel
20a84da5dc chore: merge 0.15.4 from ajnart/dev 2024-09-01 20:27:05 +02:00
Manuel
dbadcd8f7a chore: merge hotfix to master 2024-05-08 19:37:52 +02:00
Manuel
9b95ac3c91 chore: merge version 0.15.3 to master 2024-05-07 20:36:15 +02:00
225 changed files with 3229 additions and 1054 deletions

View File

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

View File

@@ -11,7 +11,7 @@
"layout.manage.navigation.**",
],
"editor.codeActionsOnSave": {
"source.organizeImports": true
"source.organizeImports": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib",
"explorer.fileNesting.patterns": {

View File

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

View File

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

View 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`);

View 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": {}
}
}

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "homarr",
"version": "0.15.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",
@@ -25,7 +25,8 @@
"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": {
"@ctrl/deluge": "^4.1.0",
@@ -126,7 +127,7 @@
"@types/cookies": "^0.7.7",
"@types/dockerode": "^3.3.9",
"@types/ldapjs": "^3.0.2",
"@types/node": "18.17.8",
"@types/node": "^20.6.0",
"@types/prismjs": "^1.26.0",
"@types/react": "^18.2.11",
"@types/swagger-ui-react": "^4.18.3",
@@ -151,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",

View File

@@ -26,7 +26,8 @@
"title": "工具",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -7,8 +7,8 @@
}
},
"modal": {
"text": "",
"label": "您的错误",
"reportButton": "报告错误"
"text": "组件意外崩溃,请阅读文档并修改错误的输入。",
"label": "发生错误",
"reportButton": "在 GitHub 上报告错误"
}
}

View File

@@ -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": {

View 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"
}
}

View File

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

View File

@@ -26,7 +26,8 @@
"title": "Nástroje",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

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

View File

@@ -26,7 +26,8 @@
"title": "Værktøjer",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": "Migrer til 1.0"
}
},
"about": {

View 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"
}
}

View File

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

View File

@@ -26,7 +26,8 @@
"title": "Werkzeuge",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": "Auf 1.0 migrieren"
}
},
"about": {

View File

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

View 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"
}
}

View File

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

View File

@@ -26,7 +26,8 @@
"title": "Εργαλεία",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -86,7 +86,7 @@
},
"info": {
"uptime": "Χρόνος Λειτουργίας",
"uptimeFormat": "",
"uptimeFormat": "{{days}} ημέρες, {{hours}} ώρες, {{minutes}} λεπτά",
"updates": "Διαθέσιμες ενημερώσεις",
"reboot": "Επανεκκίνηση"
},

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Το σφάλμα σας",
"reportButton": "Αναφέρετε αυτό το σφάλμα"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Tools",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": "Migrate to 1.0"
}
},
"about": {

View File

@@ -0,0 +1,33 @@
{
"metaTitle": "Migrate to 1.0",
"pageTitle": "Migrate boards, integrations and users",
"description": "Exports your boards and users to a ZIP-Archive to migrate them to Homarr after version 1.0.0",
"securityNote": {
"title": "Security Note",
"text": "When exporting users and integrations it will also open a modal with an encryption key. This key is required to import the data into Homarr. Keep it safe and do not share it with anyone."
},
"form": {
"label": "Select everything you want to export",
"option": {
"boards": {
"label": "Export boards"
},
"integrations": {
"label": "Export integrations",
"description": "This will include encrypted credentials for integrations. Only available when exporting boards"
},
"users": {
"label": "Export users",
"description": "This will only export credential users, passwords hash and salt are encrypted"
}
}
},
"action": {
"export": "Export data"
},
"modal": {
"title": "Encryption key",
"description": "Your data has been exported. Keep this key safe and do not share it with anyone. You will need this key to import the data into Homarr.",
"copyDismiss": "Copy & dismiss"
}
}

View File

@@ -7,8 +7,8 @@
}
},
"modal": {
"text": "",
"label": "Your error",
"reportButton": "Report this error"
"text": "The widet crashed unexpectitly. Please read the documentation and fix any typos.",
"label": "Occurred error",
"reportButton": "Report this error on GitHub"
}
}

View File

@@ -17,7 +17,7 @@
"afterLoginRedirection": "Después de iniciar sesión, serás redirigido a {{url}}",
"providersEmpty": {
"title": "Error del proveedor de autenticación",
"message": "Los proveedor(es) no están configurados; consulte sus registros para obtener más información."
"message": "El/Los Proveedor(es) no están configurados, por favor, revisa tus registros para obtener más información."
}
},
"alert": "Tus credenciales son incorrectas o esta cuenta no existe. Por favor, inténtalo de nuevo."

View File

@@ -17,7 +17,7 @@
"disabled": "Desactivado",
"enableAll": "Activar todo",
"disableAll": "Desactivar todo",
"setTimer": "",
"setTimer": "Configurar temporizador",
"version": "Versión",
"changePosition": "Cambiar posición",
"remove": "Eliminar",

View File

@@ -26,7 +26,8 @@
"title": "Herramientas",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View File

@@ -32,7 +32,7 @@
"externalAddress": {
"label": "Dirección externa",
"description": "URL que se abrirá al hacer clic en la aplicación.",
"tooltip": ""
"tooltip": "Puedes usar algunas variables para crear direcciones dinámicas:<br><br><b>[homarr_base]</b> : dirección completa excluyendo puerto y ruta. <i>(Ejemplo: 'https://subdominio.homarr.dev')</i><br><b>[homarr_hostname]</b> : url base completa incluyendo su subdominio actual. <i>(Ejemplo: 'subdominio.homarr.dev')</i><br><b>[homarr_domain]</b> : dominio con el subdominio filtrado. <i>(Ejemplo: 'homarr.dev')</i><br><b>[homarr_protocol]</b> : <i>http/https</i><br><br>Todas estas variables dependen de la url actual."
}
},
"behaviour": {

View 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": ""
}
}

View File

@@ -22,7 +22,7 @@
},
"titleState": {
"label": "Título del reloj",
"info": "El título personalizado y el código de zona horaria se pueden mostrar en tu widget.<br/>También puedes mostrar solo la ciudad, no mostrar ninguna<br/>o incluso mostrar solo la zona horaria cuando ambas están seleccionadas y no se proporcione ningún título.",
"info": "El título personalizado y el código de zona horaria se pueden mostrar en tu widget.<br/>También puedes mostrar solo la ciudad, no mostrar nada,<br/>o incluso mostrar solo la zona horaria cuando ambos están seleccionados pero no se proporciona un título.",
"data": {
"both": "Título y zona horaria",
"city": "Solo título",

View File

@@ -16,10 +16,10 @@
}
},
"durationModal": {
"title": "",
"hours": "",
"minutes": "",
"unlimited": "",
"set": ""
"title": "Establecer tiempo de desactivación",
"hours": "Horas",
"minutes": "Minutos",
"unlimited": "Dejar vacío para ilimitado",
"set": "Establecer"
}
}

View File

@@ -9,8 +9,8 @@
},
"cpu": {
"label": "Mostrar información de la CPU",
"load": "",
"minute": "",
"load": "Promedio de Carga",
"minute": "{{minute}} minutos",
"minutes": "{{minutes}} Minutos"
},
"memory": {
@@ -57,43 +57,43 @@
"label": "Mostrar sección de almacenamiento"
},
"sectionIndicatorColor": {
"label": "",
"info": "",
"label": "Requisito para que el indicador de estado de la sección sea 'OK'",
"info": "'Todos' requiere que todos los elementos estén en línea para que el indicador sea verde. 'Cualquiera' requiere que al menos un elemento esté en línea.",
"data": {
"any": "",
"all": ""
"any": "Cualquiera Activo",
"all": "Todos Activos"
}
},
"ignoreCert": {
"label": "",
"info": ""
"label": "Ignorar Errores de Certificado",
"info": "Si está habilitado, el widget ignorará los errores de certificado al acceder a la API de Proxmox. Esto puede ser útil al acceder a Proxmox a través de HTTPS."
}
}
},
"cpu": {
"label": "CPU",
"load": "",
"minute": ""
"load": "Promedio de Carga",
"minute": "{{minute}} minutos"
},
"memory": {
"label": "",
"totalMem": "",
"available": ""
"label": "Memoria",
"totalMem": "Espacio total: {{total}}GB",
"available": "Disponible: {{available}}GB - {{percentage}}%"
},
"fileSystem": {
"label": "",
"available": ""
"label": "Archivo de Sistema",
"available": "Disponible: {{available}} - {{percentage}}%"
},
"info": {
"uptime": "",
"uptimeFormat": "",
"updates": "",
"reboot": ""
"uptime": "Tiempo de Actividad",
"uptimeFormat": "{{days}} días, {{hours}} horas, {{minutes}} minutos",
"updates": "Actualización disponible",
"reboot": "Reiniciar"
},
"errors": {
"general": {
"title": "",
"text": ""
"title": "No se puede encontrar tu(s) sistema(s).",
"text": "Hubo un problema al conectarse a tu sistema. Por favor verifica tu configuración/integración(es)."
}
},
"headings": {
@@ -118,24 +118,24 @@
"name": "Nombre",
"cpu": "CPU",
"ram": "RAM",
"node": ""
"node": "Nodo"
}
},
"popover": {
"node": "",
"vmid": "",
"node": "Nodo",
"vmid": "VMID",
"details": "Detalles",
"cores": "",
"memSize": "",
"memRatio": "",
"diskSize": "",
"diskRatio": "",
"uptime": "",
"plugin": "",
"ha": "",
"sharedStorage": "",
"localStorage": "",
"na": ""
"cores": "Núcleos - {{maxCpu}}",
"memSize": "Memoria - {{maxMem}}",
"memRatio": "Memoria - {{usedMem}} / {{maxMem}}",
"diskSize": "Disco - {{maxDisk}}",
"diskRatio": "Disco - {{usedDisk}} / {{maxDisk}}",
"uptime": "Tiempo de actividad - {{uptime}}",
"plugin": "Complemento",
"ha": "Estado de HA - {{haState}}",
"sharedStorage": "Almacenamiento Compartido",
"localStorage": "Almacenamiento Local",
"na": "N/D"
}
}
}

View File

@@ -1,22 +1,22 @@
{
"descriptor": {
"name": "",
"description": "",
"name": "Estado del Administrador de Índices",
"description": "Estado sobre tus índices",
"settings": {
"title": "",
"title": "Estado del Administrador de Índices",
"openIndexerSiteInNewTab": {
"label": ""
"label": "Abrir el Sitio del Indexador en una Nueva Pestaña"
}
}
},
"indexersStatus": {
"title": "",
"testAllButton": ""
"title": "Administrador de Índices",
"testAllButton": "Probar todo"
},
"errors": {
"general": {
"title": "",
"text": ""
"title": "No se puede encontrar un administrador de índices",
"text": "Hubo un problema al conectarse a tu administrador de índices. Por favor verifica tu configuración/integración(es)."
}
}
}

View File

@@ -1,96 +1,96 @@
{
"descriptor": {
"name": "",
"description": "",
"name": "Transcodificación de Medios",
"description": "Muestra información sobre la transcodificación de medios",
"settings": {
"title": "",
"title": "Configuraciones de Transcodificación de Medios",
"appId": {
"label": ""
"label": "Seleccionar una aplicación"
},
"defaultView": {
"label": "",
"label": "Vista predeterminada",
"data": {
"workers": "",
"workers": "Trabajadores",
"queue": "Cola",
"statistics": ""
"statistics": "Estadísticas"
}
},
"showHealthCheck": {
"label": ""
"label": "Mostrar indicador de Verificación de Salud"
},
"showHealthChecksInQueue": {
"label": ""
"label": "Mostrar Verificaciones de Salud en cola"
},
"queuePageSize": {
"label": ""
"label": "Cola: Elementos por página"
},
"showAppIcon": {
"label": ""
"label": "Mostrar icono de aplicación en la esquina inferior derecha"
}
}
},
"noAppSelected": "",
"noAppSelected": "Por favor selecciona una aplicación en la configuración del widget",
"views": {
"workers": {
"table": {
"header": {
"name": "",
"name": "Archivo",
"eta": "Tiempo restante",
"progress": "Completado %"
},
"empty": "Vacío",
"tooltip": {
"transcode": "",
"healthCheck": ""
"transcode": "Transcodificar",
"healthCheck": "Verificación de Salud"
}
}
},
"queue": {
"table": {
"header": {
"name": "",
"name": "Archivo",
"size": "Tamaño"
},
"footer": {
"currentIndex": ""
"currentIndex": "{{start}}-{{end}} de {{total}}"
},
"empty": "Vacío",
"tooltip": {
"transcode": "",
"healthCheck": ""
"transcode": "Transcodificar",
"healthCheck": "Verificación de Salud"
}
}
},
"statistics": {
"empty": "Vacío",
"box": {
"transcodes": "",
"healthChecks": "",
"files": "",
"spaceSaved": ""
"transcodes": "Transcodificaciones: {{value}}",
"healthChecks": "Verificaciones de Salud: {{value}}",
"files": "Archivos: {{value}}",
"spaceSaved": "Guardado: {{value}}"
},
"pies": {
"transcodes": "",
"healthChecks": "",
"videoCodecs": "",
"videoContainers": "",
"videoResolutions": ""
"transcodes": "Transcodificaciones",
"healthChecks": "Verificaciones de Salud",
"videoCodecs": "Códecs",
"videoContainers": "Contenedores",
"videoResolutions": "Resoluciones"
}
}
},
"error": {
"title": "Error",
"message": ""
"message": "Ocurrió un error al obtener datos de Tdarr."
},
"tabs": {
"workers": "",
"workers": "Trabajadores",
"queue": "Cola",
"statistics": ""
"statistics": "Estadísticas"
},
"healthCheckStatus": {
"title": "",
"queued": "",
"healthy": "",
"unhealthy": ""
"title": "Verificación de Salud",
"queued": "En cola",
"healthy": "Saludable",
"unhealthy": "No saludable"
}
}

View File

@@ -19,13 +19,13 @@
"label": "Límite de líneas de texto"
},
"sortByPublishDateAscending": {
"label": ""
"label": "Ordenar por fecha de publicación (ascendente)"
},
"sortPostsWithoutPublishDateToTheTop": {
"label": ""
"label": "Colocar publicaciones sin fecha de publicación en la parte superior"
},
"maximumAmountOfPosts": {
"label": ""
"label": "Cantidad máxima de publicaciones"
}
},
"card": {

View File

@@ -11,22 +11,22 @@
},
"appendUnit": {
"label": "Añadir unidad de medida",
"info": "Añadir el atributo unidad de medida al estado de la entidad."
"info": "Añadir el atributo de unidad de medida al estado de la entidad."
},
"automationId": {
"label": "ID de automatización opcional",
"info": "Su ID de automatización única. Siempre empieza por automation.XXXXX. Si no está establecida, no se podrá hacer clic en el widget, y solo se mostrará el estado. Al hacer clic, la entidad se refrescará."
"info": "Tu ID de automatización único. Siempre empieza con automation.XXXXX. Si no está configurado, el widget no será clicable y solo mostrará el estado. Después de hacer clic, el estado de la entidad se actualizará."
},
"displayName": {
"label": "Nombre a mostrar"
},
"displayFriendlyName": {
"label": "Mostrar nombre descriptivo",
"info": "Mostrar el nombre descriptivo de Home Assistant en lugar del nombre para mostrar."
"label": "Mostrar nombre amigable",
"info": "Mostrar el nombre amigable de Home Assistant en lugar del nombre de visualización."
},
"genericToggle": {
"label": "Cambio de entidad",
"info": "Realizar una acción genérica de Home Assistant en la entidad cuando se hace clic."
"label": "Interruptor de entidad",
"info": "Realizar una acción genérica de alternar de Home Assistant en la entidad al hacer clic."
}
}
}

View File

@@ -6,7 +6,7 @@
"title": "Ejecutar una automatización",
"automationId": {
"label": "ID de automatización",
"info": "Su ID de automatización única. Siempre empieza por automation.XXXXX."
"info": "Tu ID de automatización único. Siempre empieza con automatización.XXXXX."
},
"displayName": {
"label": "Nombre a mostrar"

View File

@@ -31,15 +31,15 @@
"info": "Si está deshabilitado, solo se mostrará la relación global. La relación global seguirá usando las etiquetas si están configuradas"
},
"columnOrdering": {
"label": ""
"label": "Habilitar el reordenamiento de las columnas"
},
"rowSorting": {
"label": ""
"label": "Habilitar la clasificación de las filas"
},
"columns": {
"label": "",
"label": "Seleccionar columnas para mostrar",
"data": {
"date": "",
"date": "Fecha Agregada",
"down": "Descarga",
"up": "Subida",
"eta": "Tiempo restante",
@@ -47,7 +47,7 @@
}
},
"nameColumnSize": {
"label": ""
"label": "Cambiar el tamaño de la columna del nombre"
}
}
},

View File

@@ -11,10 +11,10 @@
"label": "Mostrar el nombre de la ciudad"
},
"displayWeekly": {
"label": ""
"label": "Mostrar Pronóstico Semanal"
},
"forecastDays": {
"label": ""
"label": "Días a Mostrar"
},
"location": {
"label": "Ubicación"

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Tu error",
"reportButton": "Informar de este error"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "",
"items": {
"docker": "",
"api": ""
"api": "",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -16,7 +16,7 @@
},
"afterLoginRedirection": "Après la connexion, vous serez redirigé vers {{url}}",
"providersEmpty": {
"title": "Erreur de fournisseur d'authentification",
"title": "Erreur du fournisseur d'authentification",
"message": "Le(s) fournisseur(s) n'est (ne sont) pas défini(s), veuillez vérifier les journaux pour plus d'informations."
}
},

View File

@@ -4,7 +4,7 @@
"backToBoard": "Retour au tableau de bord",
"settings": {
"appearance": {
"primaryColor": "Couleur primaire",
"primaryColor": "Couleur principale",
"secondaryColor": "Couleur secondaire"
}
},

View File

@@ -26,7 +26,8 @@
"title": "Outils",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -47,7 +47,7 @@
},
"confirm": {
"label": "Supprimer définitivement",
"description": "J'ai conscience que cette action est permanente et que toutes les données du compte seront perdues."
"description": "Je suis conscient que cette action est permanente et que toutes les données du compte seront perdues."
}
}
}

View File

@@ -1,7 +1,7 @@
{
"metaTitle": "Invitations des utilisateurs",
"pageTitle": "Gérer les invitations des utilisateurs",
"description": "Avec les invitations, vous pouvez convier des utilisateurs sur votre instance Homarr. Une invitation ne sera valide que pendant un certain temps et ne peut être utilisée qu'une fois. L'expiration doit être définie entre 5 minutes et 12 mois.",
"description": "Avec les invitations, vous pouvez convier des utilisateurs sur votre instance Homarr. Une invitation ne sera valide que pendant un certain temps et ne peut être utilisée qu'une seule fois. L'expiration doit être définie entre 5 minutes et 12 mois.",
"button": {
"createInvite": "Créer une invitation",
"deleteInvite": "Supprimer une invitation"
@@ -9,7 +9,7 @@
"table": {
"header": {
"id": "ID",
"creator": "Créé par",
"creator": "Créateur",
"expires": "Date d'expiration",
"action": "Actions"
},
@@ -36,7 +36,7 @@
"token": "Jeton"
},
"button": {
"close": "Copier et fermer"
"close": "Copier et rejeter"
}
},
"delete": {

View File

@@ -8,7 +8,7 @@
"modals": {
"selectBoard": {
"title": "Choisir un tableau de bord",
"text": "Choisissez le tableau sur lequel vous souhaiyez ajouter les applications pour les conteneurs Docker sélectionnés.",
"text": "Choisissez le tableau sur lequel vous souhaitez ajouter les applications pour les conteneurs Docker sélectionnés.",
"form": {
"board": {
"label": "Tableau de bord"
@@ -24,7 +24,7 @@
"message": "Les applications pour les conteneurs Docker sélectionnés ont bien été ajoutées au tableau de bord."
},
"error": {
"title": "Impossible d'ajouter des applications au tableau de bord",
"title": "Échec de l'ajout d'applications au tableau de bord",
"message": "Les applications pour les conteneurs Docker sélectionnés n'ont pas pu être ajoutées au tableau de bord."
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Votre erreur",
"reportButton": "Signaler cette erreur"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "כלים",
"items": {
"docker": "דוקר",
"api": "ממשק API"
"api": "ממשק API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -7,8 +7,8 @@
}
},
"modal": {
"text": "",
"label": "השגיאה שלך",
"reportButton": "דווח על שגיאה זו"
"text": "הווידט התרסק במפתיע. אנא קרא את התיעוד ותקן שגיאות הקלדה.",
"label": "אירעה שגיאה",
"reportButton": "דווח על שגיאה זו ב-GitHub"
}
}

View File

@@ -26,7 +26,8 @@
"title": "Alati",
"items": {
"docker": "Docker",
"api": ""
"api": "",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Vaša greška",
"reportButton": "Prijavi ovu grešku"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Eszközök",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -7,8 +7,8 @@
}
},
"modal": {
"text": "",
"label": "Az Ön hibája",
"reportButton": "Hiba jelentése"
"text": "A widget váratlanul összeomlott. Kérjük, olvassa el a dokumentációt, és javítsa ki a gépelési hibákat.",
"label": "Hiba történt",
"reportButton": "Hiba jelentése a GitHubon"
}
}

View File

@@ -26,7 +26,8 @@
"title": "Strumenti",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -7,8 +7,8 @@
}
},
"modal": {
"text": "",
"label": "Il tuo errore",
"reportButton": "Segnala questo errore"
"text": "Il widget è crashato inaspettatamente. Leggere la documentazione e correggere eventuali errori di battitura.",
"label": "Si è verificato un errore",
"reportButton": "Segnala questo errore su GitHub"
}
}

View File

@@ -1,15 +1,15 @@
{
"save": "保存",
"apply": "適用する",
"apply": "適用",
"insert": "挿入",
"about": "About",
"cancel": "キャンセル",
"close": "閉じる",
"back": "バック",
"back": "戻る",
"delete": "削除",
"ok": "よっしゃー",
"ok": "OK",
"edit": "編集",
"next": "次のページ",
"next": "次",
"previous": "前へ",
"confirm": "確認",
"enabled": "有効",
@@ -21,7 +21,7 @@
"version": "バージョン",
"changePosition": "ポジションを変更する",
"remove": "削除",
"removeConfirm": "{{item}} を削除してもよろしいですか?",
"removeConfirm": "{{item}} を本当に削除してもよろしいですか?",
"createItem": "{{item}}を作成",
"sections": {
"settings": "設定",

View File

@@ -26,7 +26,8 @@
"title": "ツール",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "あなたのエラー",
"reportButton": "このエラーを報告する"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "도구",
"items": {
"docker": "Docker",
"api": ""
"api": "",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "오류",
"reportButton": "이 오류 신고하기"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Įrankiai",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Rīki",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Jūsu kļūda",
"reportButton": "Ziņot par šo kļūdu"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Gereedschappen",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Je fout",
"reportButton": "Deze fout melden"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Verktøy",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -16,7 +16,7 @@
"history": "Logg"
},
"info": {
"sizeLeft": "Størrelse til venstre",
"sizeLeft": "Resterende datamengde",
"paused": "Pauset"
},
"queue": {

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Din feilmelding",
"reportButton": "Rapporter denne feilen"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Narzędzia",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Twój błąd",
"reportButton": "Zgłoś ten błąd"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Ferramentas",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Seu erro",
"reportButton": "Reportar este erro"
"label": "",
"reportButton": ""
}
}

View File

@@ -26,7 +26,8 @@
"title": "Unelte",
"items": {
"docker": "Docker",
"api": "API"
"api": "API",
"migrate": ""
}
},
"about": {

View 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": ""
}
}

View File

@@ -8,7 +8,7 @@
},
"modal": {
"text": "",
"label": "Eroare dvs.",
"reportButton": "Raportați această eroare"
"label": "",
"reportButton": ""
}
}

View File

@@ -1,7 +1,7 @@
{
"metaTitle": "Создать аккаунт",
"title": "Создать аккаунт",
"text": "Пожалуйста, укажите свои регистрационные данные ниже",
"metaTitle": "Создание учётной записи",
"title": "Создание учётной записи",
"text": "Пожалуйста, укажите данные для входа",
"form": {
"fields": {
"username": {
@@ -11,25 +11,25 @@
"label": "Пароль"
},
"passwordConfirmation": {
"label": "Подтвердите пароль"
"label": "Подтверждение пароля"
}
},
"buttons": {
"submit": "Создать аккаунт"
"submit": "Создать учётную запись"
}
},
"notifications": {
"loading": {
"title": "Создание аккаунта",
"title": "Создание учётной записи",
"text": "Пожалуйста, подождите"
},
"success": {
"title": "Аккаунт создан",
"text": "Ваш аккаунт был успешно создан"
"title": "Учётная запись создана",
"text": "Ваша учётная запись успешно создана"
},
"error": {
"title": "Ошибка",
"text": "Что-то пошло не так, произошла следующая ошибка: {{error}}"
"text": "Что-то пошло не так, получена следующая ошибка: {{error}}"
}
}
}

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