diff --git a/.env.example b/.env.example
index 2de2526be..5a434dfc1 100644
--- a/.env.example
+++ b/.env.example
@@ -11,4 +11,4 @@ NEXTAUTH_SECRET="anything"
# Disable analytics
NEXT_PUBLIC_DISABLE_ANALYTICS="true"
-DEFAULT_COLOR_SCHEME="light"
\ No newline at end of file
+DEFAULT_COLOR_SCHEME="light"
\ No newline at end of file
diff --git a/README.md b/README.md
index 716484ee0..52dc35460 100644
--- a/README.md
+++ b/README.md
@@ -59,40 +59,40 @@ Simplify the management of your server with Homarr - a sleek, modern dashboard t

-Homarr has a [built-in collection of widgets and integrations](https://homarr.dev/docs/management/integrations/), that connect to your applications and enable you to control them directly from the dashboard.
+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/management/integrations/torrent-deluge)
-- [Transmission](https://homarr.dev/docs/management/integrations/torrent-transmission)
-- [qBittorent](https://homarr.dev/docs/management/integrations/torrent-qbittorrent)
+- [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/management/integrations/usenet-sabnzbd)
-- [NZBGet](https://homarr.dev/docs/management/integrations/usenet-nzbget)
+- [SABnzbd](https://homarr.dev/docs/integrations/usenet#sabnzbd)
+- [NZBGet](https://homarr.dev/docs/integrations/usenet#nzbget)
📺 Media servers
-- [Plex](https://homarr.dev/docs/management/integrations/media-server-plex)
-- [Jellyfin](https://homarr.dev/docs/management/integrations/media-server-jellyfin)
+- [Plex](https://homarr.dev/docs/integrations/usenet#nzbget)
+- [Jellyfin](https://homarr.dev/docs/integrations/usenet#nzbget)
📚 Media collection managers
-- [Sonarr](https://homarr.dev/docs/management/integrations/servarr-sonarr)
-- [Radarr](https://homarr.dev/docs/management/integrations/servarr-radarr)
-- [Lidarr](https://homarr.dev/docs/management/integrations/servarr-lidarr)
-- [Readarr](https://homarr.dev/docs/management/integrations/servarr-readarr)
+- [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/management/integrations/media-requester/)
-- [Jellyseerr](https://homarr.dev/docs/management/integrations/media-requester/)
+- [Overseerr](https://homarr.dev/docs/integrations/media-requester)
+- [Jellyseerr](https://homarr.dev/docs/integrations/media-requester)
🚫 DNS ad-blockers
-- [Pihole](https://homarr.dev/docs/management/integrations/dns-pihole)
-- [AdGuard Home](https://homarr.dev/docs/management/integrations/dns-adguard-home)
+- [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/management/integrations/hardware-dash)
-- [🐳 Docker](https://homarr.dev/docs/management/integrations/containers-docker)
+- [🔌 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.
diff --git a/next-i18next.config.js b/next-i18next.config.js
index 0fab2457f..4c67b5cf3 100644
--- a/next-i18next.config.js
+++ b/next-i18next.config.js
@@ -33,6 +33,8 @@ module.exports = {
'tw',
'uk',
'vi',
+ 'et',
+ 'lt',
],
localeDetection: false,
diff --git a/public/locales/cn/modules/health-monitoring.json b/public/locales/cn/modules/health-monitoring.json
new file mode 100644
index 000000000..8ef2b45fa
--- /dev/null
+++ b/public/locales/cn/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "系统健康监测",
+ "description": "关于NAS的信息",
+ "settings": {
+ "title": "系统健康监测",
+ "fahrenheit": {
+ "label": "华氏度"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "平均负载",
+ "minute": "{{minute}} 分钟"
+ },
+ "memory": {
+ "label": "内存",
+ "totalMem": "内存总量: {{total}}GB",
+ "available": "可用: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "文件系统",
+ "available": "可用: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "运行时间",
+ "updates": "更新",
+ "reboot": "重启"
+ },
+ "errors": {
+ "general": {
+ "title": "找不到您的 NAS",
+ "text": "连接到您的NAS时出现了问题。请验证您的配置/集成。"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cn/modules/indexer-manager.json b/public/locales/cn/modules/indexer-manager.json
new file mode 100644
index 000000000..542bd772a
--- /dev/null
+++ b/public/locales/cn/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "索引管理器状态",
+ "description": "有关索引器的状态",
+ "settings": {
+ "title": "索引管理器状态"
+ }
+ },
+ "indexersStatus": {
+ "title": "索引管理器",
+ "testAllButton": "测试全部"
+ },
+ "errors": {
+ "general": {
+ "title": "无法找到索引管理器",
+ "text": "连接索引管理器时出现问题。请验证您的配置/集成。"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cn/modules/smart-home/entity-state.json b/public/locales/cn/modules/smart-home/entity-state.json
index 19be4d740..10a84e2be 100644
--- a/public/locales/cn/modules/smart-home/entity-state.json
+++ b/public/locales/cn/modules/smart-home/entity-state.json
@@ -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,6 +19,10 @@
},
"displayName": {
"label": "显示名称"
+ },
+ "displayFriendlyName": {
+ "label": "显示友好名称",
+ "info": "显示来自家庭助理的友好名称,而不是显示名称"
}
}
}
diff --git a/public/locales/cr/modules/health-monitoring.json b/public/locales/cr/modules/health-monitoring.json
new file mode 100644
index 000000000..cb978df5b
--- /dev/null
+++ b/public/locales/cr/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "crwdns4202:0crwdne4202:0",
+ "description": "crwdns4204:0crwdne4204:0",
+ "settings": {
+ "title": "crwdns4206:0crwdne4206:0",
+ "fahrenheit": {
+ "label": "crwdns4208:0crwdne4208: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",
+ "updates": "crwdns4228:0crwdne4228:0",
+ "reboot": "crwdns4230:0crwdne4230:0"
+ },
+ "errors": {
+ "general": {
+ "title": "crwdns4232:0crwdne4232:0",
+ "text": "crwdns4234:0crwdne4234:0"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cr/modules/indexer-manager.json b/public/locales/cr/modules/indexer-manager.json
new file mode 100644
index 000000000..57d43abf3
--- /dev/null
+++ b/public/locales/cr/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "crwdns4188:0crwdne4188:0",
+ "description": "crwdns4190:0crwdne4190:0",
+ "settings": {
+ "title": "crwdns4192:0crwdne4192:0"
+ }
+ },
+ "indexersStatus": {
+ "title": "crwdns4194:0crwdne4194:0",
+ "testAllButton": "crwdns4196:0crwdne4196:0"
+ },
+ "errors": {
+ "general": {
+ "title": "crwdns4198:0crwdne4198:0",
+ "text": "crwdns4200:0crwdne4200:0"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cr/modules/smart-home/entity-state.json b/public/locales/cr/modules/smart-home/entity-state.json
index 6aeb48ab8..4de87682e 100644
--- a/public/locales/cr/modules/smart-home/entity-state.json
+++ b/public/locales/cr/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"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": "crwdns4186:0crwdne4186:0"
}
}
}
diff --git a/public/locales/cs/modules/health-monitoring.json b/public/locales/cs/modules/health-monitoring.json
new file mode 100644
index 000000000..8c12b2567
--- /dev/null
+++ b/public/locales/cs/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Monitorování stavu systému",
+ "description": "Informace o Vaší NAS",
+ "settings": {
+ "title": "Monitorování stavu systému",
+ "fahrenheit": {
+ "label": "Stupně Fahrenheit"
+ }
+ }
+ },
+ "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",
+ "updates": "Aktualizace",
+ "reboot": "Restartovat"
+ },
+ "errors": {
+ "general": {
+ "title": "Nepodařilo se najít Vaší NAS",
+ "text": "Došlo k problému s připojením k Vaší NAS. Ověřte prosím svou konfiguraci/integraci."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cs/modules/indexer-manager.json b/public/locales/cs/modules/indexer-manager.json
new file mode 100644
index 000000000..d31ea6a9f
--- /dev/null
+++ b/public/locales/cs/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Stav správce indexeru",
+ "description": "Stav Vašich indexerů",
+ "settings": {
+ "title": "Stav správce indexeru"
+ }
+ },
+ "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/integraci."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/cs/modules/smart-home/entity-state.json b/public/locales/cs/modules/smart-home/entity-state.json
index 9c3cad9bd..72746d738 100644
--- a/public/locales/cs/modules/smart-home/entity-state.json
+++ b/public/locales/cs/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"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 přátelské jméno z Home Assistantu místo zobrazovaného jména"
}
}
}
diff --git a/public/locales/cs/modules/smart-home/trigger-automation.json b/public/locales/cs/modules/smart-home/trigger-automation.json
index b6c09dc49..d97aae23d 100644
--- a/public/locales/cs/modules/smart-home/trigger-automation.json
+++ b/public/locales/cs/modules/smart-home/trigger-automation.json
@@ -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."
diff --git a/public/locales/da/common.json b/public/locales/da/common.json
index a140a078f..5525065f3 100644
--- a/public/locales/da/common.json
+++ b/public/locales/da/common.json
@@ -13,7 +13,7 @@
"previous": "Forrige",
"confirm": "Bekræft",
"enabled": "Aktiveret",
- "duplicate": "",
+ "duplicate": "Duplikér",
"disabled": "Deaktiveret",
"enableAll": "Aktiver alle",
"disableAll": "Deaktiver alle",
diff --git a/public/locales/da/manage/boards.json b/public/locales/da/manage/boards.json
index bf4f8abd3..8749f32b8 100644
--- a/public/locales/da/manage/boards.json
+++ b/public/locales/da/manage/boards.json
@@ -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"
}
}
}
diff --git a/public/locales/da/modules/health-monitoring.json b/public/locales/da/modules/health-monitoring.json
new file mode 100644
index 000000000..d4c524ffa
--- /dev/null
+++ b/public/locales/da/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Systemsundhedsovervågning",
+ "description": "Oplysninger om din NAS",
+ "settings": {
+ "title": "Systemsundhedsovervågning",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "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",
+ "updates": "Opdateringer",
+ "reboot": "Genstart"
+ },
+ "errors": {
+ "general": {
+ "title": "Kan ikke finde din NAS",
+ "text": "Der opstod et problem med at oprette forbindelse til din NAS. Bekræft venligst din konfiguration/integration(er)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/da/modules/indexer-manager.json b/public/locales/da/modules/indexer-manager.json
new file mode 100644
index 000000000..f03abb67f
--- /dev/null
+++ b/public/locales/da/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Indekserings manager status",
+ "description": "Status for dine indekser",
+ "settings": {
+ "title": "Indekserings manager status"
+ }
+ },
+ "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)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/da/modules/rss.json b/public/locales/da/modules/rss.json
index bedfa45b8..6ec07a73b 100644
--- a/public/locales/da/modules/rss.json
+++ b/public/locales/da/modules/rss.json
@@ -19,7 +19,7 @@
"label": "Klemme til tekstlinjer"
},
"sortByPublishDateAscending": {
- "label": ""
+ "label": "Sorter efter udgivelsesdato (stigende)"
},
"sortPostsWithoutPublishDateToTheTop": {
"label": "Sæt indlæg uden udgivelsesdato øverst"
diff --git a/public/locales/da/modules/smart-home/entity-state.json b/public/locales/da/modules/smart-home/entity-state.json
index 611cb5417..70a3e8531 100644
--- a/public/locales/da/modules/smart-home/entity-state.json
+++ b/public/locales/da/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"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"
}
}
}
diff --git a/public/locales/de/modules/health-monitoring.json b/public/locales/de/modules/health-monitoring.json
new file mode 100644
index 000000000..3b105dde3
--- /dev/null
+++ b/public/locales/de/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Überwachung des Systemzustands",
+ "description": "Informationen zu Ihrem NAS",
+ "settings": {
+ "title": "Überwachung des Systemzustands",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "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",
+ "updates": "Aktualisierungen",
+ "reboot": "Neustart"
+ },
+ "errors": {
+ "general": {
+ "title": "Ihr NAS konnte nicht gefunden werden",
+ "text": "Es gab ein Problem bei der Verbindung zu Ihrem NAS. Bitte überprüfen Sie Ihre Konfiguration/Integration(en)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/de/modules/indexer-manager.json b/public/locales/de/modules/indexer-manager.json
new file mode 100644
index 000000000..1958e5ffe
--- /dev/null
+++ b/public/locales/de/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Status des Indexer-Managers",
+ "description": "Status ihrer Indexer",
+ "settings": {
+ "title": "Status des Indexer-Managers"
+ }
+ },
+ "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)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/de/modules/rss.json b/public/locales/de/modules/rss.json
index 9b8dd14b3..3c5838184 100644
--- a/public/locales/de/modules/rss.json
+++ b/public/locales/de/modules/rss.json
@@ -19,7 +19,7 @@
"label": "Textzeilen Klammer"
},
"sortByPublishDateAscending": {
- "label": ""
+ "label": "Nach Veröffentlichungsdatum sortieren (aufsteigend)"
},
"sortPostsWithoutPublishDateToTheTop": {
"label": "Platzieren Sie Beiträge ohne Veröffentlichungsdatum ganz oben"
diff --git a/public/locales/de/modules/smart-home/entity-state.json b/public/locales/de/modules/smart-home/entity-state.json
index bc00178ea..f6aec7202 100644
--- a/public/locales/de/modules/smart-home/entity-state.json
+++ b/public/locales/de/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"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 Zeige Benutzerdefinierten Namen statt Anzeigename vom Home-Assistenten an"
}
}
}
diff --git a/public/locales/el/modules/health-monitoring.json b/public/locales/el/modules/health-monitoring.json
new file mode 100644
index 000000000..686a5cf08
--- /dev/null
+++ b/public/locales/el/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Παρακολούθηση της υγείας του συστήματος",
+ "description": "Πληροφορίες για το NAS σας",
+ "settings": {
+ "title": "Παρακολούθηση της υγείας του συστήματος",
+ "fahrenheit": {
+ "label": "Φαρενάιτ (°F)"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Μέσος Όρος Φόρτου",
+ "minute": "{{minute}} λεπτό"
+ },
+ "memory": {
+ "label": "Μνήμη",
+ "totalMem": "Συνολική μνήμη: {{total}}GB",
+ "available": "Διαθέσιμα: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Σύστημα Αρχείων",
+ "available": "Διαθέσιμα: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Χρόνος Λειτουργίας",
+ "updates": "Ενημερώσεις",
+ "reboot": "Επανεκκίνηση"
+ },
+ "errors": {
+ "general": {
+ "title": "Δεν είναι δυνατή η εύρεση του NAS σας",
+ "text": "Υπήρξε πρόβλημα σύνδεσης με το NAS σας. Παρακαλούμε επαληθεύστε τις ρυθμίσεις/ενσωμάτωση(ες) σας."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/el/modules/indexer-manager.json b/public/locales/el/modules/indexer-manager.json
new file mode 100644
index 000000000..86268695e
--- /dev/null
+++ b/public/locales/el/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Κατάσταση διαχειριστή indexer",
+ "description": "Κατάσταση σχετικά με τους indexers σας",
+ "settings": {
+ "title": "Κατάσταση διαχειριστή indexer"
+ }
+ },
+ "indexersStatus": {
+ "title": "Διαχειριστής indexer",
+ "testAllButton": "Δοκιμή όλων"
+ },
+ "errors": {
+ "general": {
+ "title": "Δεν είναι δυνατή η εύρεση διαχειριστή indexer",
+ "text": "Υπήρξε πρόβλημα σύνδεσης με τον διαχειριστή των indexers σας. Παρακαλούμε επαληθεύστε τις ρυθμίσεις/ενσωμάτωση(ες) σας."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/el/modules/smart-home/entity-state.json b/public/locales/el/modules/smart-home/entity-state.json
index 3063245e7..cf850c734 100644
--- a/public/locales/el/modules/smart-home/entity-state.json
+++ b/public/locales/el/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "Αναγνωριστικό οντότητας",
"info": "Μοναδικό αναγνωριστικό οντότητας στο Home Assistant. Αντιγράψτε κάνοντας κλικ στην οντότητα > Κάντε κλικ στο εικονίδιο με το γρανάζι > Κάντε κλικ στο κουμπί αντιγραφής στο 'Αναγνωριστικό οντότητας'. Ορισμένες προσαρμοσμένες οντότητες ενδέχεται να μην υποστηρίζονται."
},
+ "appendUnit": {
+ "label": "Προσθήκη μονάδας μέτρησης",
+ "info": "Προσθήκη του χαρακτηριστικού μονάδας μέτρησης στην κατάσταση της οντότητας."
+ },
"automationId": {
"label": "Προαιρετικό αναγνωριστικό αυτοματισμού",
"info": "Το μοναδικό σας αναγνωριστικό αυτοματισμού. Ξεκινά πάντα με automation.XXXXX. Αν δεν οριστεί, το widget δεν θα μπορεί να κάνει κλικ και θα εμφανίζει μόνο την κατάσταση. Μετά το κλικ, η κατάσταση της οντότητας θα ανανεωθεί."
},
"displayName": {
"label": "Εμφανιζόμενο όνομα"
+ },
+ "displayFriendlyName": {
+ "label": "Εμφάνιση φιλικού ονόματος",
+ "info": "Εμφάνιση φιλικού ονόματος από το Home Assistant αντί για το εμφανιζόμενο όνομα"
}
}
}
diff --git a/public/locales/en/authentication/login.json b/public/locales/en/authentication/login.json
index 33fcdd9d7..dbc8be632 100644
--- a/public/locales/en/authentication/login.json
+++ b/public/locales/en/authentication/login.json
@@ -14,7 +14,11 @@
"buttons": {
"submit": "Sign in"
},
- "afterLoginRedirection": "After login, you'll be redirected to {{url}}"
+ "afterLoginRedirection": "After login, you'll be redirected to {{url}}",
+ "providersEmpty": {
+ "title": "Auth Provider Error",
+ "message": "The provider(s) are unset, please check your logs for more information."
+ }
},
"alert": "Your credentials are incorrect or this account doesn't exist. Please try again."
}
\ No newline at end of file
diff --git a/public/locales/en/modules/health-monitoring.json b/public/locales/en/modules/health-monitoring.json
new file mode 100644
index 000000000..8642591e6
--- /dev/null
+++ b/public/locales/en/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "System Health Monitoring",
+ "description": "Information about your NAS",
+ "settings": {
+ "title": "System Health Monitoring",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Load Average",
+ "minute": "{{minute}} minute"
+ },
+ "memory": {
+ "label": "Memory",
+ "totalMem": "Total memory: {{total}}GB",
+ "available": "Available: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "File System",
+ "available": "Available: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Uptime",
+ "updates": "Updates",
+ "reboot": "Reboot"
+ },
+ "errors": {
+ "general": {
+ "title": "Unable to find your NAS",
+ "text": "There was a problem connecting to your NAS. Please verify your configuration/integration(s)."
+ }
+ }
+ }
\ No newline at end of file
diff --git a/public/locales/en/modules/weather.json b/public/locales/en/modules/weather.json
index 9801bb907..2568164b6 100644
--- a/public/locales/en/modules/weather.json
+++ b/public/locales/en/modules/weather.json
@@ -10,6 +10,12 @@
"displayCityName":{
"label":"Display City Name"
},
+ "displayWeekly":{
+ "label": "Display Weekly Forecast"
+ },
+ "forecastDays":{
+ "label": "Days To Display"
+ },
"location": {
"label": "Weather location"
}
diff --git a/public/locales/es/modules/health-monitoring.json b/public/locales/es/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/es/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/es/modules/indexer-manager.json b/public/locales/es/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/es/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/es/modules/smart-home/entity-state.json b/public/locales/es/modules/smart-home/entity-state.json
index e6fbda21b..ea26580f2 100644
--- a/public/locales/es/modules/smart-home/entity-state.json
+++ b/public/locales/es/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID de la entidad",
"info": "ID de entidad única de Home Assistant. Copia haciendo clic en la entidad > Clic en el icono de engranaje > Clic en el botón copiar en 'ID de la entidad'. Algunas entidades personalizadas pueden no ser compatibles."
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"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á."
},
"displayName": {
"label": "Nombre a mostrar"
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/et/authentication/invite.json b/public/locales/et/authentication/invite.json
new file mode 100644
index 000000000..2d73966c2
--- /dev/null
+++ b/public/locales/et/authentication/invite.json
@@ -0,0 +1,35 @@
+{
+ "metaTitle": "",
+ "title": "",
+ "text": "",
+ "form": {
+ "fields": {
+ "username": {
+ "label": ""
+ },
+ "password": {
+ "label": ""
+ },
+ "passwordConfirmation": {
+ "label": ""
+ }
+ },
+ "buttons": {
+ "submit": ""
+ }
+ },
+ "notifications": {
+ "loading": {
+ "title": "",
+ "text": ""
+ },
+ "success": {
+ "title": "",
+ "text": ""
+ },
+ "error": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/authentication/login.json b/public/locales/et/authentication/login.json
new file mode 100644
index 000000000..e719a0981
--- /dev/null
+++ b/public/locales/et/authentication/login.json
@@ -0,0 +1,20 @@
+{
+ "metaTitle": "",
+ "title": "",
+ "text": "",
+ "form": {
+ "fields": {
+ "username": {
+ "label": ""
+ },
+ "password": {
+ "label": ""
+ }
+ },
+ "buttons": {
+ "submit": ""
+ },
+ "afterLoginRedirection": ""
+ },
+ "alert": ""
+}
\ No newline at end of file
diff --git a/public/locales/et/boards/common.json b/public/locales/et/boards/common.json
new file mode 100644
index 000000000..a70db06bf
--- /dev/null
+++ b/public/locales/et/boards/common.json
@@ -0,0 +1,5 @@
+{
+ "header": {
+ "customize": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/boards/customize.json b/public/locales/et/boards/customize.json
new file mode 100644
index 000000000..a0524fcc9
--- /dev/null
+++ b/public/locales/et/boards/customize.json
@@ -0,0 +1,29 @@
+{
+ "metaTitle": "",
+ "pageTitle": "",
+ "backToBoard": "",
+ "settings": {
+ "appearance": {
+ "primaryColor": "",
+ "secondaryColor": ""
+ }
+ },
+ "save": {
+ "button": "",
+ "note": ""
+ },
+ "notifications": {
+ "pending": {
+ "title": "",
+ "message": ""
+ },
+ "success": {
+ "title": "",
+ "message": ""
+ },
+ "error": {
+ "title": "",
+ "message": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/common.json b/public/locales/et/common.json
new file mode 100644
index 000000000..273eab357
--- /dev/null
+++ b/public/locales/et/common.json
@@ -0,0 +1,58 @@
+{
+ "save": "",
+ "apply": "",
+ "insert": "",
+ "about": "",
+ "cancel": "",
+ "close": "",
+ "back": "",
+ "delete": "",
+ "ok": "",
+ "edit": "",
+ "next": "",
+ "previous": "",
+ "confirm": "",
+ "enabled": "",
+ "duplicate": "",
+ "disabled": "",
+ "enableAll": "",
+ "disableAll": "",
+ "version": "",
+ "changePosition": "",
+ "remove": "",
+ "removeConfirm": "",
+ "createItem": "",
+ "sections": {
+ "settings": "",
+ "dangerZone": ""
+ },
+ "secrets": {
+ "apiKey": "",
+ "username": "",
+ "password": ""
+ },
+ "tip": "",
+ "time": {
+ "seconds": "",
+ "minutes": "",
+ "hours": ""
+ },
+ "loading": "",
+ "breakPoints": {
+ "small": "",
+ "medium": "",
+ "large": ""
+ },
+ "seeMore": "",
+ "position": {
+ "left": "",
+ "center": "",
+ "right": ""
+ },
+ "attributes": {
+ "width": "",
+ "height": ""
+ },
+ "public": "",
+ "restricted": ""
+}
\ No newline at end of file
diff --git a/public/locales/et/layout/common.json b/public/locales/et/layout/common.json
new file mode 100644
index 000000000..4f4c4e6b4
--- /dev/null
+++ b/public/locales/et/layout/common.json
@@ -0,0 +1,25 @@
+{
+ "modals": {
+ "blockedPopups": {
+ "title": "",
+ "text": "",
+ "list": {
+ "browserPermission": "",
+ "adBlockers": "",
+ "otherBrowser": ""
+ }
+ }
+ },
+ "actions": {
+ "category": {
+ "openAllInNewTab": ""
+ }
+ },
+ "menu": {
+ "moveUp": "",
+ "moveDown": "",
+ "addCategory": "",
+ "addAbove": "",
+ "addBelow": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/layout/element-selector/selector.json b/public/locales/et/layout/element-selector/selector.json
new file mode 100644
index 000000000..6fb7ad74f
--- /dev/null
+++ b/public/locales/et/layout/element-selector/selector.json
@@ -0,0 +1,26 @@
+{
+ "modal": {
+ "title": "",
+ "text": ""
+ },
+ "widgetDescription": "",
+ "goBack": "",
+ "actionIcon": {
+ "tooltip": ""
+ },
+ "apps": "",
+ "app": {
+ "defaultName": ""
+ },
+ "widgets": "",
+ "categories": "",
+ "category": {
+ "newName": "",
+ "defaultName": "",
+ "created": {
+ "title": "",
+ "message": ""
+ }
+ },
+ "importFromDocker": ""
+}
diff --git a/public/locales/et/layout/errors/access-denied.json b/public/locales/et/layout/errors/access-denied.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/layout/errors/access-denied.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/layout/errors/not-found.json b/public/locales/et/layout/errors/not-found.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/layout/errors/not-found.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/layout/header.json b/public/locales/et/layout/header.json
new file mode 100644
index 000000000..f273309fe
--- /dev/null
+++ b/public/locales/et/layout/header.json
@@ -0,0 +1,27 @@
+{
+ "search": {
+ "label": "",
+ "engines": {
+ "web": "",
+ "youtube": "",
+ "torrent": "",
+ "movie": ""
+ }
+ },
+ "actions": {
+ "avatar": {
+ "switchTheme": "",
+ "preferences": "",
+ "defaultBoard": "",
+ "manage": "",
+ "logout": "",
+ "login": ""
+ }
+ },
+ "modals": {
+ "movie": {
+ "title": "",
+ "topResults": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/layout/header/actions/toggle-edit-mode.json b/public/locales/et/layout/header/actions/toggle-edit-mode.json
new file mode 100644
index 000000000..4d1ebe1d9
--- /dev/null
+++ b/public/locales/et/layout/header/actions/toggle-edit-mode.json
@@ -0,0 +1,12 @@
+{
+ "description": "",
+ "button": {
+ "disabled": "",
+ "enabled": ""
+ },
+ "popover": {
+ "title": "",
+ "text": ""
+ },
+ "unloadEvent": ""
+}
diff --git a/public/locales/et/layout/manage.json b/public/locales/et/layout/manage.json
new file mode 100644
index 000000000..5b8d0e81b
--- /dev/null
+++ b/public/locales/et/layout/manage.json
@@ -0,0 +1,36 @@
+{
+ "navigation": {
+ "home": {
+ "title": ""
+ },
+ "boards": {
+ "title": ""
+ },
+ "users": {
+ "title": "",
+ "items": {
+ "manage": "",
+ "invites": ""
+ }
+ },
+ "help": {
+ "title": "",
+ "items": {
+ "documentation": "",
+ "report": "",
+ "discord": "",
+ "contribute": ""
+ }
+ },
+ "tools": {
+ "title": "",
+ "items": {
+ "docker": "",
+ "api": ""
+ }
+ },
+ "about": {
+ "title": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/layout/mobile/drawer.json b/public/locales/et/layout/mobile/drawer.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/public/locales/et/layout/mobile/drawer.json
@@ -0,0 +1 @@
+{}
diff --git a/public/locales/et/layout/modals/about.json b/public/locales/et/layout/modals/about.json
new file mode 100644
index 000000000..9a09c330d
--- /dev/null
+++ b/public/locales/et/layout/modals/about.json
@@ -0,0 +1,30 @@
+{
+ "description": "",
+ "addToDashboard": "",
+ "tip": "",
+ "key": "",
+ "action": "",
+ "keybinds": "",
+ "translators": "",
+ "translatorsDescription": "",
+ "contributors": "",
+ "contributorsDescription": "",
+ "actions": {
+ "toggleTheme": "",
+ "focusSearchBar": "",
+ "openDocker": "",
+ "toggleEdit": ""
+ },
+ "metrics": {
+ "configurationSchemaVersion": "",
+ "version": "",
+ "nodeEnvironment": "",
+ "i18n": "",
+ "locales": "",
+ "experimental_disableEditMode": ""
+ },
+ "version": {
+ "new": "",
+ "dropdown": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/layout/modals/add-app.json b/public/locales/et/layout/modals/add-app.json
new file mode 100644
index 000000000..f5a7aa4ea
--- /dev/null
+++ b/public/locales/et/layout/modals/add-app.json
@@ -0,0 +1,128 @@
+{
+ "tabs": {
+ "general": "",
+ "behaviour": "",
+ "network": "",
+ "appearance": "",
+ "integration": ""
+ },
+ "general": {
+ "appname": {
+ "label": "",
+ "description": ""
+ },
+ "internalAddress": {
+ "label": "",
+ "description": "",
+ "troubleshoot": {
+ "label": "",
+ "header": "",
+ "lines": {
+ "nothingAfterPort": "",
+ "protocolCheck": "",
+ "preferIP": "",
+ "enablePings": "",
+ "wget": "",
+ "iframe": "",
+ "clearCache": ""
+ },
+ "footer": ""
+ }
+ },
+ "externalAddress": {
+ "label": "",
+ "description": ""
+ }
+ },
+ "behaviour": {
+ "isOpeningNewTab": {
+ "label": "",
+ "description": ""
+ },
+ "tooltipDescription": {
+ "label": "",
+ "description": ""
+ },
+ "customProtocolWarning": ""
+ },
+ "network": {
+ "statusChecker": {
+ "label": "",
+ "description": ""
+ },
+ "statusCodes": {
+ "label": "",
+ "description": ""
+ }
+ },
+ "appearance": {
+ "icon": {
+ "label": "",
+ "description": "",
+ "autocomplete": {
+ "title": "",
+ "text": ""
+ },
+ "noItems": {
+ "title": "",
+ "text": ""
+ }
+ },
+ "appNameFontSize": {
+ "label": "",
+ "description": ""
+ },
+ "appNameStatus": {
+ "label": "",
+ "description": "",
+ "dropdown": {
+ "normal": "",
+ "hover": "",
+ "hidden": ""
+ }
+ },
+ "positionAppName": {
+ "label": "",
+ "description": "",
+ "dropdown": {
+ "top": "",
+ "right": "",
+ "bottom": "",
+ "left": ""
+ }
+ },
+ "lineClampAppName": {
+ "label": "",
+ "description": ""
+ }
+ },
+ "integration": {
+ "type": {
+ "label": "",
+ "description": "",
+ "placeholder": "",
+ "defined": "",
+ "undefined": "",
+ "public": "",
+ "private": "",
+ "explanationPrivate": "",
+ "explanationPublic": ""
+ },
+ "secrets": {
+ "description": "",
+ "warning": "",
+ "clear": "",
+ "save": "",
+ "update": ""
+ }
+ },
+ "validation": {
+ "popover": "",
+ "name": "",
+ "noUrl": "",
+ "invalidUrl": "",
+ "noIconUrl": "",
+ "noExternalUri": "",
+ "invalidExternalUri": ""
+ }
+}
diff --git a/public/locales/et/layout/modals/change-position.json b/public/locales/et/layout/modals/change-position.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/layout/modals/change-position.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/manage/boards.json b/public/locales/et/manage/boards.json
new file mode 100644
index 000000000..11e46ae34
--- /dev/null
+++ b/public/locales/et/manage/boards.json
@@ -0,0 +1,57 @@
+{
+ "metaTitle": "",
+ "pageTitle": "",
+ "cards": {
+ "statistics": {
+ "apps": "",
+ "widgets": "",
+ "categories": ""
+ },
+ "buttons": {
+ "view": ""
+ },
+ "menu": {
+ "setAsDefault": "",
+ "delete": {
+ "label": "",
+ "disabled": ""
+ },
+ "duplicate": "",
+ "rename": {
+ "label": "",
+ "modal": {
+ "title": "",
+ "fields": {
+ "name": {
+ "label": "",
+ "placeholder": ""
+ }
+ }
+ }
+ }
+ },
+ "badges": {
+ "fileSystem": "",
+ "default": ""
+ }
+ },
+ "buttons": {
+ "create": ""
+ },
+ "modals": {
+ "delete": {
+ "title": "",
+ "text": ""
+ },
+ "create": {
+ "title": "",
+ "text": "",
+ "form": {
+ "name": {
+ "label": ""
+ },
+ "submit": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/manage/index.json b/public/locales/et/manage/index.json
new file mode 100644
index 000000000..5c5b4c0b9
--- /dev/null
+++ b/public/locales/et/manage/index.json
@@ -0,0 +1,23 @@
+{
+ "metaTitle": "",
+ "hero": {
+ "title": "",
+ "fallbackUsername": "",
+ "subtitle": ""
+ },
+ "quickActions": {
+ "title": "",
+ "boards": {
+ "title": "",
+ "subtitle": ""
+ },
+ "inviteUsers": {
+ "title": "",
+ "subtitle": ""
+ },
+ "manageUsers": {
+ "title": "",
+ "subtitle": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/manage/users.json b/public/locales/et/manage/users.json
new file mode 100644
index 000000000..13977abdb
--- /dev/null
+++ b/public/locales/et/manage/users.json
@@ -0,0 +1,44 @@
+{
+ "metaTitle": "",
+ "pageTitle": "",
+ "buttons": {
+ "create": ""
+ },
+ "filter": {
+ "roles": {
+ "all": "",
+ "normal": "",
+ "admin": "",
+ "owner": ""
+ }
+ },
+ "table": {
+ "header": {
+ "user": "",
+ "email": ""
+ }
+ },
+ "tooltips": {
+ "deleteUser": "",
+ "demoteAdmin": "",
+ "promoteToAdmin": ""
+ },
+ "modals": {
+ "delete": {
+ "title": "",
+ "text": ""
+ },
+ "change-role": {
+ "promote": {
+ "title": "",
+ "text": ""
+ },
+ "demote": {
+ "title": "",
+ "text": ""
+ },
+ "confirm": ""
+ }
+ },
+ "searchDoesntMatch": ""
+}
\ No newline at end of file
diff --git a/public/locales/et/manage/users/create.json b/public/locales/et/manage/users/create.json
new file mode 100644
index 000000000..846e81df7
--- /dev/null
+++ b/public/locales/et/manage/users/create.json
@@ -0,0 +1,52 @@
+{
+ "metaTitle": "",
+ "steps": {
+ "account": {
+ "title": "",
+ "text": "",
+ "username": {
+ "label": ""
+ },
+ "email": {
+ "label": ""
+ }
+ },
+ "security": {
+ "title": "",
+ "text": "",
+ "password": {
+ "label": ""
+ }
+ },
+ "finish": {
+ "title": "",
+ "text": "",
+ "card": {
+ "title": "",
+ "text": ""
+ },
+ "table": {
+ "header": {
+ "property": "",
+ "value": "",
+ "username": "",
+ "email": "",
+ "password": ""
+ },
+ "notSet": "",
+ "valid": ""
+ },
+ "failed": ""
+ },
+ "completed": {
+ "alert": {
+ "title": "",
+ "text": ""
+ }
+ }
+ },
+ "buttons": {
+ "generateRandomPassword": "",
+ "createAnother": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/manage/users/edit.json b/public/locales/et/manage/users/edit.json
new file mode 100644
index 000000000..fb95221a8
--- /dev/null
+++ b/public/locales/et/manage/users/edit.json
@@ -0,0 +1,55 @@
+{
+ "metaTitle": "",
+ "back": "",
+ "sections": {
+ "general": {
+ "title": "",
+ "inputs": {
+ "username": {
+ "label": ""
+ },
+ "eMail": {
+ "label": ""
+ }
+ }
+ },
+ "security": {
+ "title": "",
+ "inputs": {
+ "password": {
+ "label": ""
+ },
+ "terminateExistingSessions": {
+ "label": "",
+ "description": ""
+ },
+ "confirm": {
+ "label": "",
+ "description": ""
+ }
+ }
+ },
+ "roles": {
+ "title": "",
+ "currentRole": "",
+ "badges": {
+ "owner": "",
+ "admin": "",
+ "normal": ""
+ }
+ },
+ "deletion": {
+ "title": "",
+ "inputs": {
+ "confirmUsername": {
+ "label": "",
+ "description": ""
+ },
+ "confirm": {
+ "label": "",
+ "description": ""
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/manage/users/invites.json b/public/locales/et/manage/users/invites.json
new file mode 100644
index 000000000..8ba8ec70c
--- /dev/null
+++ b/public/locales/et/manage/users/invites.json
@@ -0,0 +1,48 @@
+{
+ "metaTitle": "",
+ "pageTitle": "",
+ "description": "",
+ "button": {
+ "createInvite": "",
+ "deleteInvite": ""
+ },
+ "table": {
+ "header": {
+ "id": "",
+ "creator": "",
+ "expires": "",
+ "action": ""
+ },
+ "data": {
+ "expiresAt": "",
+ "expiresIn": ""
+ }
+ },
+ "modals": {
+ "create": {
+ "title": "",
+ "description": "",
+ "form": {
+ "expires": "",
+ "submit": ""
+ }
+ },
+ "copy": {
+ "title": "",
+ "description": "",
+ "invitationLink": "",
+ "details": {
+ "id": "",
+ "token": ""
+ },
+ "button": {
+ "close": ""
+ }
+ },
+ "delete": {
+ "title": "",
+ "description": ""
+ }
+ },
+ "noInvites": ""
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/bookmark.json b/public/locales/et/modules/bookmark.json
new file mode 100644
index 000000000..7d5cd1ab3
--- /dev/null
+++ b/public/locales/et/modules/bookmark.json
@@ -0,0 +1,43 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "name": {
+ "label": "",
+ "info": ""
+ },
+ "items": {
+ "label": ""
+ },
+ "layout": {
+ "label": "",
+ "data": {
+ "autoGrid": "",
+ "horizontal": "",
+ "vertical": ""
+ }
+ }
+ }
+ },
+ "card": {
+ "noneFound": {
+ "title": "",
+ "text": ""
+ }
+ },
+ "item": {
+ "validation": {
+ "length": "",
+ "invalidLink": "",
+ "errorMsg": ""
+ },
+ "name": "",
+ "url": "",
+ "newTab": "",
+ "hideHostname": "",
+ "hideIcon": "",
+ "delete": ""
+ }
+}
diff --git a/public/locales/et/modules/calendar.json b/public/locales/et/modules/calendar.json
new file mode 100644
index 000000000..03c146c39
--- /dev/null
+++ b/public/locales/et/modules/calendar.json
@@ -0,0 +1,33 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "radarrReleaseType": {
+ "label": "",
+ "data": {
+ "inCinemas": "",
+ "physicalRelease": "",
+ "digitalRelease": ""
+ }
+ },
+ "hideWeekDays": {
+ "label": ""
+ },
+ "showUnmonitored": {
+ "label": ""
+ },
+ "fontSize": {
+ "label": "",
+ "data": {
+ "xs": "",
+ "sm": "",
+ "md": "",
+ "lg": "",
+ "xl": ""
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/common-media-cards.json b/public/locales/et/modules/common-media-cards.json
new file mode 100644
index 000000000..9f6da0682
--- /dev/null
+++ b/public/locales/et/modules/common-media-cards.json
@@ -0,0 +1,6 @@
+{
+ "buttons": {
+ "play": "",
+ "request": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/common.json b/public/locales/et/modules/common.json
new file mode 100644
index 000000000..ba4f38a1c
--- /dev/null
+++ b/public/locales/et/modules/common.json
@@ -0,0 +1,10 @@
+{
+ "settings": {
+ "label": ""
+ },
+ "errors": {
+ "unmappedOptions": {
+ "text": ""
+ }
+ }
+}
diff --git a/public/locales/et/modules/dashdot.json b/public/locales/et/modules/dashdot.json
new file mode 100644
index 000000000..98f45c5c2
--- /dev/null
+++ b/public/locales/et/modules/dashdot.json
@@ -0,0 +1,118 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "dashName": {
+ "label": ""
+ },
+ "url": {
+ "label": ""
+ },
+ "usePercentages": {
+ "label": ""
+ },
+ "columns": {
+ "label": ""
+ },
+ "graphHeight": {
+ "label": ""
+ },
+ "graphsOrder": {
+ "label": "",
+ "storage": {
+ "label": "",
+ "enabled": {
+ "label": ""
+ },
+ "span": {
+ "label": ""
+ },
+ "compactView": {
+ "label": ""
+ },
+ "multiView": {
+ "label": ""
+ }
+ },
+ "network": {
+ "label": "",
+ "enabled": {
+ "label": ""
+ },
+ "span": {
+ "label": ""
+ },
+ "compactView": {
+ "label": ""
+ }
+ },
+ "cpu": {
+ "label": "",
+ "enabled": {
+ "label": ""
+ },
+ "span": {
+ "label": ""
+ },
+ "multiView": {
+ "label": ""
+ }
+ },
+ "ram": {
+ "label": "",
+ "enabled": {
+ "label": ""
+ },
+ "span": {
+ "label": ""
+ }
+ },
+ "gpu": {
+ "label": "",
+ "enabled": {
+ "label": ""
+ },
+ "span": {
+ "label": ""
+ }
+ }
+ }
+ }
+ },
+ "card": {
+ "title": "",
+ "errors": {
+ "noService": "",
+ "noInformation": "",
+ "protocolDowngrade": {
+ "title": "",
+ "text": ""
+ }
+ },
+ "graphs": {
+ "storage": {
+ "title": "",
+ "label": ""
+ },
+ "network": {
+ "title": "",
+ "label": "",
+ "metrics": {
+ "download": "",
+ "upload": ""
+ }
+ },
+ "cpu": {
+ "title": ""
+ },
+ "ram": {
+ "title": ""
+ },
+ "gpu": {
+ "title": ""
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/date.json b/public/locales/et/modules/date.json
new file mode 100644
index 000000000..0c4dca534
--- /dev/null
+++ b/public/locales/et/modules/date.json
@@ -0,0 +1,34 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "timezone": {
+ "label": "",
+ "info": ""
+ },
+ "customTitle": {
+ "label": ""
+ },
+ "display24HourFormat": {
+ "label": ""
+ },
+ "dateFormat": {
+ "label": "",
+ "data": {
+ "hide": ""
+ }
+ },
+ "titleState": {
+ "label": "",
+ "info": "",
+ "data": {
+ "both": "",
+ "city": "",
+ "none": ""
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/dlspeed.json b/public/locales/et/modules/dlspeed.json
new file mode 100644
index 000000000..1dfd395d3
--- /dev/null
+++ b/public/locales/et/modules/dlspeed.json
@@ -0,0 +1,35 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "card": {
+ "table": {
+ "header": {
+ "name": "",
+ "size": "",
+ "download": "",
+ "upload": "",
+ "estimatedTimeOfArrival": "",
+ "progress": ""
+ },
+ "body": {
+ "nothingFound": ""
+ }
+ },
+ "lineChart": {
+ "title": "",
+ "download": "",
+ "upload": "",
+ "timeSpan": "",
+ "totalDownload": "",
+ "totalUpload": ""
+ },
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": ""
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/dns-hole-controls.json b/public/locales/et/modules/dns-hole-controls.json
new file mode 100644
index 000000000..3bf25c924
--- /dev/null
+++ b/public/locales/et/modules/dns-hole-controls.json
@@ -0,0 +1,18 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "showToggleAllButtons": {
+ "label": ""
+ }
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/dns-hole-summary.json b/public/locales/et/modules/dns-hole-summary.json
new file mode 100644
index 000000000..a18a2c33d
--- /dev/null
+++ b/public/locales/et/modules/dns-hole-summary.json
@@ -0,0 +1,28 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "usePiHoleColors": {
+ "label": ""
+ },
+ "layout": {
+ "label": "",
+ "data": {
+ "grid": "",
+ "row": "",
+ "column": ""
+ }
+ }
+ }
+ },
+ "card": {
+ "metrics": {
+ "domainsOnAdlist": "",
+ "queriesToday": "",
+ "queriesBlockedTodayPercentage": "",
+ "queriesBlockedToday": ""
+ }
+ }
+}
diff --git a/public/locales/et/modules/docker.json b/public/locales/et/modules/docker.json
new file mode 100644
index 000000000..7346ebe39
--- /dev/null
+++ b/public/locales/et/modules/docker.json
@@ -0,0 +1,83 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "search": {
+ "placeholder": ""
+ },
+ "table": {
+ "header": {
+ "name": "",
+ "image": "",
+ "ports": "",
+ "state": ""
+ },
+ "body": {
+ "portCollapse": ""
+ },
+ "states": {
+ "running": "",
+ "created": "",
+ "stopped": "",
+ "unknown": ""
+ }
+ },
+ "actionBar": {
+ "addService": {
+ "title": "",
+ "message": ""
+ },
+ "restart": {
+ "title": ""
+ },
+ "stop": {
+ "title": ""
+ },
+ "start": {
+ "title": ""
+ },
+ "refreshData": {
+ "title": ""
+ },
+ "remove": {
+ "title": ""
+ },
+ "addToHomarr": {
+ "title": ""
+ }
+ },
+ "actions": {
+ "start": {
+ "start": "",
+ "end": ""
+ },
+ "stop": {
+ "start": "",
+ "end": ""
+ },
+ "restart": {
+ "start": "",
+ "end": ""
+ },
+ "remove": {
+ "start": "",
+ "end": ""
+ }
+ },
+ "errors": {
+ "integrationFailed": {
+ "title": "",
+ "message": ""
+ },
+ "unknownError": {
+ "title": ""
+ },
+ "oneServiceAtATime": {
+ "title": ""
+ }
+ },
+ "actionIcon": {
+ "tooltip": ""
+ }
+}
diff --git a/public/locales/et/modules/health-monitoring.json b/public/locales/et/modules/health-monitoring.json
new file mode 100644
index 000000000..a00b40dd5
--- /dev/null
+++ b/public/locales/et/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/iframe.json b/public/locales/et/modules/iframe.json
new file mode 100644
index 000000000..cbd07acf7
--- /dev/null
+++ b/public/locales/et/modules/iframe.json
@@ -0,0 +1,45 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "embedUrl": {
+ "label": ""
+ },
+ "allowFullScreen": {
+ "label": ""
+ },
+ "allowTransparency": {
+ "label": ""
+ },
+ "allowScrolling": {
+ "label": ""
+ },
+ "allowPayment": {
+ "label": ""
+ },
+ "allowAutoPlay": {
+ "label": ""
+ },
+ "allowMicrophone": {
+ "label": ""
+ },
+ "allowCamera": {
+ "label": ""
+ },
+ "allowGeolocation": {
+ "label": ""
+ }
+ }
+ },
+ "card": {
+ "errors": {
+ "noUrl": {
+ "title": "",
+ "text": ""
+ },
+ "browserSupport": ""
+ }
+ }
+}
diff --git a/public/locales/et/modules/indexer-manager.json b/public/locales/et/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/et/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/media-requests-list.json b/public/locales/et/modules/media-requests-list.json
new file mode 100644
index 000000000..bfa16177a
--- /dev/null
+++ b/public/locales/et/modules/media-requests-list.json
@@ -0,0 +1,35 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "replaceLinksWithExternalHost": {
+ "label": ""
+ },
+ "openInNewTab": {
+ "label": ""
+ }
+ }
+ },
+ "noRequests": "",
+ "state": {
+ "approved": "",
+ "pendingApproval": "",
+ "declined": "",
+ "available": "",
+ "partial": ""
+ },
+ "tooltips": {
+ "approve": "",
+ "decline": "",
+ "approving": ""
+ },
+ "mutation": {
+ "approving": "",
+ "declining": "",
+ "request": "",
+ "approved": "",
+ "declined": ""
+ }
+}
diff --git a/public/locales/et/modules/media-requests-stats.json b/public/locales/et/modules/media-requests-stats.json
new file mode 100644
index 000000000..f152af280
--- /dev/null
+++ b/public/locales/et/modules/media-requests-stats.json
@@ -0,0 +1,27 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "replaceLinksWithExternalHost": {
+ "label": ""
+ },
+ "openInNewTab": {
+ "label": ""
+ }
+ }
+ },
+ "mediaStats": {
+ "title": "",
+ "pending": "",
+ "tvRequests": "",
+ "movieRequests": "",
+ "approved": "",
+ "totalRequests": ""
+ },
+ "userStats": {
+ "title": "",
+ "requests": ""
+ }
+}
diff --git a/public/locales/et/modules/media-server.json b/public/locales/et/modules/media-server.json
new file mode 100644
index 000000000..3e8852626
--- /dev/null
+++ b/public/locales/et/modules/media-server.json
@@ -0,0 +1,25 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "loading": "",
+ "card": {
+ "table": {
+ "header": {
+ "session": "",
+ "user": "",
+ "currentlyPlaying": ""
+ }
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/notebook.json b/public/locales/et/modules/notebook.json
new file mode 100644
index 000000000..69b88092c
--- /dev/null
+++ b/public/locales/et/modules/notebook.json
@@ -0,0 +1,59 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "showToolbar": {
+ "label": ""
+ },
+ "allowReadOnlyCheck": {
+ "label": ""
+ },
+ "content": {
+ "label": ""
+ }
+ }
+ },
+ "card": {
+ "controls": {
+ "bold": "",
+ "italic": "",
+ "strikethrough": "",
+ "underline": "",
+ "colorText": "",
+ "colorHighlight": "",
+ "code": "",
+ "clear": "",
+ "heading": "",
+ "align": "",
+ "blockquote": "",
+ "horizontalLine": "",
+ "bulletList": "",
+ "orderedList": "",
+ "checkList": "",
+ "increaseIndent": "",
+ "decreaseIndent": "",
+ "link": "",
+ "unlink": "",
+ "image": "",
+ "addTable": "",
+ "deleteTable": "",
+ "colorCell": "",
+ "mergeCell": "",
+ "addColumnLeft": "",
+ "addColumnRight": "",
+ "deleteColumn": "",
+ "addRowTop": "",
+ "addRowBelow": "",
+ "deleteRow": ""
+ },
+ "modals": {
+ "clearColor": "",
+ "source": "",
+ "widthPlaceholder": "",
+ "columns": "",
+ "rows": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/overseerr.json b/public/locales/et/modules/overseerr.json
new file mode 100644
index 000000000..e7ff04402
--- /dev/null
+++ b/public/locales/et/modules/overseerr.json
@@ -0,0 +1,30 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "popup": {
+ "item": {
+ "buttons": {
+ "askFor": "",
+ "cancel": "",
+ "request": ""
+ },
+ "alerts": {
+ "automaticApproval": {
+ "title": "",
+ "text": ""
+ }
+ }
+ },
+ "seasonSelector": {
+ "caption": "",
+ "table": {
+ "header": {
+ "season": "",
+ "numberOfEpisodes": ""
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/ping.json b/public/locales/et/modules/ping.json
new file mode 100644
index 000000000..76a91fe52
--- /dev/null
+++ b/public/locales/et/modules/ping.json
@@ -0,0 +1,11 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "states": {
+ "online": "",
+ "offline": "",
+ "loading": ""
+ }
+}
diff --git a/public/locales/et/modules/rss.json b/public/locales/et/modules/rss.json
new file mode 100644
index 000000000..78fa5b25b
--- /dev/null
+++ b/public/locales/et/modules/rss.json
@@ -0,0 +1,40 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "rssFeedUrl": {
+ "label": "",
+ "description": ""
+ },
+ "refreshInterval": {
+ "label": ""
+ },
+ "dangerousAllowSanitizedItemContent": {
+ "label": "",
+ "info": ""
+ },
+ "textLinesClamp": {
+ "label": ""
+ },
+ "sortByPublishDateAscending": {
+ "label": ""
+ },
+ "sortPostsWithoutPublishDateToTheTop": {
+ "label": ""
+ },
+ "maximumAmountOfPosts": {
+ "label": ""
+ }
+ },
+ "card": {
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/search.json b/public/locales/et/modules/search.json
new file mode 100644
index 000000000..16651d720
--- /dev/null
+++ b/public/locales/et/modules/search.json
@@ -0,0 +1,30 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "input": {
+ "placeholder": ""
+ },
+ "switched-to": "",
+ "searchEngines": {
+ "search": {
+ "name": "",
+ "description": ""
+ },
+ "youtube": {
+ "name": "",
+ "description": ""
+ },
+ "torrents": {
+ "name": "",
+ "description": ""
+ },
+ "overseerr": {
+ "name": "",
+ "description": ""
+ }
+ },
+ "tip": "",
+ "switchedSearchEngine": ""
+}
diff --git a/public/locales/et/modules/smart-home/entity-state.json b/public/locales/et/modules/smart-home/entity-state.json
new file mode 100644
index 000000000..75dd923c8
--- /dev/null
+++ b/public/locales/et/modules/smart-home/entity-state.json
@@ -0,0 +1,29 @@
+{
+ "entityNotFound": "",
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "entityId": {
+ "label": "",
+ "info": ""
+ },
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
+ "automationId": {
+ "label": "",
+ "info": ""
+ },
+ "displayName": {
+ "label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/smart-home/trigger-automation.json b/public/locales/et/modules/smart-home/trigger-automation.json
new file mode 100644
index 000000000..37046b5cf
--- /dev/null
+++ b/public/locales/et/modules/smart-home/trigger-automation.json
@@ -0,0 +1,16 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "automationId": {
+ "label": "",
+ "info": ""
+ },
+ "displayName": {
+ "label": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/torrents-status.json b/public/locales/et/modules/torrents-status.json
new file mode 100644
index 000000000..2475ec833
--- /dev/null
+++ b/public/locales/et/modules/torrents-status.json
@@ -0,0 +1,103 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "refreshInterval": {
+ "label": ""
+ },
+ "displayCompletedTorrents": {
+ "label": ""
+ },
+ "displayActiveTorrents": {
+ "label": ""
+ },
+ "speedLimitOfActiveTorrents": {
+ "label": ""
+ },
+ "displayStaleTorrents": {
+ "label": ""
+ },
+ "labelFilterIsWhitelist": {
+ "label": ""
+ },
+ "labelFilter": {
+ "label": "",
+ "description": ""
+ },
+ "displayRatioWithFilter": {
+ "label": "",
+ "info": ""
+ }
+ }
+ },
+ "card": {
+ "footer": {
+ "error": "",
+ "lastUpdated": "",
+ "ratioGlobal": "",
+ "ratioWithFilter": ""
+ },
+ "table": {
+ "header": {
+ "isCompleted": "",
+ "name": "",
+ "dateAdded": "",
+ "size": "",
+ "download": "",
+ "upload": "",
+ "estimatedTimeOfArrival": "",
+ "progress": "",
+ "totalUploaded": "",
+ "totalDownloaded": "",
+ "ratio": "",
+ "seeds": "",
+ "peers": "",
+ "label": "",
+ "state": "",
+ "stateMessage": ""
+ },
+ "item": {
+ "text": ""
+ },
+ "body": {
+ "nothingFound": "",
+ "filterHidingItems": ""
+ }
+ },
+ "lineChart": {
+ "title": "",
+ "download": "",
+ "upload": "",
+ "timeSpan": "",
+ "totalDownload": "",
+ "totalUpload": ""
+ },
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": ""
+ },
+ "generic": {
+ "title": "",
+ "text": ""
+ }
+ },
+ "loading": {
+ "title": "",
+ "description": ""
+ },
+ "popover": {
+ "introductionPrefix": "",
+ "metrics": {
+ "queuePosition": "",
+ "progress": "",
+ "totalSelectedSize": "",
+ "state": "",
+ "ratio": "",
+ "completed": ""
+ }
+ }
+ }
+}
diff --git a/public/locales/et/modules/usenet.json b/public/locales/et/modules/usenet.json
new file mode 100644
index 000000000..dfe4e1e86
--- /dev/null
+++ b/public/locales/et/modules/usenet.json
@@ -0,0 +1,49 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "card": {
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": ""
+ }
+ }
+ },
+ "tabs": {
+ "queue": "",
+ "history": ""
+ },
+ "info": {
+ "sizeLeft": "",
+ "paused": ""
+ },
+ "queue": {
+ "header": {
+ "name": "",
+ "size": "",
+ "eta": "",
+ "progress": ""
+ },
+ "empty": "",
+ "error": {
+ "title": "",
+ "message": ""
+ },
+ "paused": ""
+ },
+ "history": {
+ "header": {
+ "name": "",
+ "size": "",
+ "duration": ""
+ },
+ "empty": "",
+ "error": {
+ "title": "",
+ "message": ""
+ },
+ "paused": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/video-stream.json b/public/locales/et/modules/video-stream.json
new file mode 100644
index 000000000..539daa1c4
--- /dev/null
+++ b/public/locales/et/modules/video-stream.json
@@ -0,0 +1,24 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "FeedUrl": {
+ "label": ""
+ },
+ "autoPlay": {
+ "label": ""
+ },
+ "muted": {
+ "label": ""
+ },
+ "controls": {
+ "label": ""
+ }
+ }
+ },
+ "errors": {
+ "invalidStream": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/modules/weather.json b/public/locales/et/modules/weather.json
new file mode 100644
index 000000000..9e52e237f
--- /dev/null
+++ b/public/locales/et/modules/weather.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "displayInFahrenheit": {
+ "label": ""
+ },
+ "displayCityName": {
+ "label": ""
+ },
+ "location": {
+ "label": ""
+ }
+ }
+ },
+ "card": {
+ "weatherDescriptions": {
+ "clear": "",
+ "mainlyClear": "",
+ "fog": "",
+ "drizzle": "",
+ "freezingDrizzle": "",
+ "rain": "",
+ "freezingRain": "",
+ "snowFall": "",
+ "snowGrains": "",
+ "rainShowers": "",
+ "snowShowers": "",
+ "thunderstorm": "",
+ "thunderstormWithHail": "",
+ "unknown": ""
+ }
+ },
+ "error": ""
+}
diff --git a/public/locales/et/password-requirements.json b/public/locales/et/password-requirements.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/password-requirements.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/settings/common.json b/public/locales/et/settings/common.json
new file mode 100644
index 000000000..8ff0e555a
--- /dev/null
+++ b/public/locales/et/settings/common.json
@@ -0,0 +1,38 @@
+{
+ "title": "",
+ "tooltip": "",
+ "tabs": {
+ "common": "",
+ "customizations": ""
+ },
+ "tips": {
+ "configTip": ""
+ },
+ "credits": {
+ "madeWithLove": "",
+ "thirdPartyContent": "",
+ "thirdPartyContentTable": {
+ "dependencyName": "",
+ "dependencyVersion": ""
+ }
+ },
+ "grow": "",
+ "layout": {
+ "preview": {
+ "title": "",
+ "subtitle": ""
+ },
+ "divider": "",
+ "main": "",
+ "sidebar": "",
+ "cannotturnoff": "",
+ "dashboardlayout": "",
+ "enablersidebar": "",
+ "enablelsidebar": "",
+ "enablesearchbar": "",
+ "enabledocker": "",
+ "enableping": "",
+ "enablelsidebardesc": "",
+ "enablersidebardesc": ""
+ }
+}
diff --git a/public/locales/et/settings/customization/access.json b/public/locales/et/settings/customization/access.json
new file mode 100644
index 000000000..cc4d17f61
--- /dev/null
+++ b/public/locales/et/settings/customization/access.json
@@ -0,0 +1,6 @@
+{
+ "allowGuests": {
+ "label": "",
+ "description": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/settings/customization/general.json b/public/locales/et/settings/customization/general.json
new file mode 100644
index 000000000..6c0cee3ef
--- /dev/null
+++ b/public/locales/et/settings/customization/general.json
@@ -0,0 +1,29 @@
+{
+ "text": "",
+ "accordeon": {
+ "layout": {
+ "name": "",
+ "description": ""
+ },
+ "gridstack": {
+ "name": "",
+ "description": ""
+ },
+ "pageMetadata": {
+ "name": "",
+ "description": ""
+ },
+ "appereance": {
+ "name": "",
+ "description": ""
+ },
+ "accessibility": {
+ "name": "",
+ "description": ""
+ },
+ "access": {
+ "name": "",
+ "description": ""
+ }
+ }
+}
diff --git a/public/locales/et/settings/customization/gridstack.json b/public/locales/et/settings/customization/gridstack.json
new file mode 100644
index 000000000..18c3d8233
--- /dev/null
+++ b/public/locales/et/settings/customization/gridstack.json
@@ -0,0 +1,10 @@
+{
+ "columnsCount": {
+ "labelPreset": "",
+ "descriptionPreset": "",
+ "descriptionExceedsPreset": ""
+ },
+ "unsavedChanges": "",
+ "applyChanges": "",
+ "defaultValues": ""
+}
\ No newline at end of file
diff --git a/public/locales/et/settings/customization/opacity-selector.json b/public/locales/et/settings/customization/opacity-selector.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/settings/customization/opacity-selector.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/settings/customization/page-appearance.json b/public/locales/et/settings/customization/page-appearance.json
new file mode 100644
index 000000000..2c806f677
--- /dev/null
+++ b/public/locales/et/settings/customization/page-appearance.json
@@ -0,0 +1,50 @@
+{
+ "pageTitle": {
+ "label": "",
+ "description": ""
+ },
+ "metaTitle": {
+ "label": "",
+ "description": ""
+ },
+ "logo": {
+ "label": "",
+ "description": ""
+ },
+ "favicon": {
+ "label": "",
+ "description": ""
+ },
+ "background": {
+ "label": ""
+ },
+ "backgroundImageAttachment": {
+ "label": "",
+ "options": {
+ "fixed": "",
+ "scroll": ""
+ }
+ },
+ "backgroundImageSize": {
+ "label": "",
+ "options": {
+ "cover": "",
+ "contain": ""
+ }
+ },
+ "backgroundImageRepeat": {
+ "label": "",
+ "options": {
+ "repeat": "",
+ "no-repeat": "",
+ "repeat-x": "",
+ "repeat-y": ""
+ }
+ },
+ "customCSS": {
+ "label": "",
+ "description": "",
+ "placeholder": "",
+ "applying": ""
+ }
+}
diff --git a/public/locales/et/settings/customization/shade-selector.json b/public/locales/et/settings/customization/shade-selector.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/et/settings/customization/shade-selector.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/et/tools/docker.json b/public/locales/et/tools/docker.json
new file mode 100644
index 000000000..54e726b73
--- /dev/null
+++ b/public/locales/et/tools/docker.json
@@ -0,0 +1,32 @@
+{
+ "title": "",
+ "alerts": {
+ "notConfigured": {
+ "text": ""
+ }
+ },
+ "modals": {
+ "selectBoard": {
+ "title": "",
+ "text": "",
+ "form": {
+ "board": {
+ "label": ""
+ },
+ "submit": ""
+ }
+ }
+ },
+ "notifications": {
+ "selectBoard": {
+ "success": {
+ "title": "",
+ "message": ""
+ },
+ "error": {
+ "title": "",
+ "message": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/user/preferences.json b/public/locales/et/user/preferences.json
new file mode 100644
index 000000000..d550a1f03
--- /dev/null
+++ b/public/locales/et/user/preferences.json
@@ -0,0 +1,48 @@
+{
+ "metaTitle": "",
+ "pageTitle": "Teie eelistused",
+ "boards": {
+ "defaultBoard": {
+ "label": ""
+ }
+ },
+ "accessibility": {
+ "title": "",
+ "disablePulse": {
+ "label": "",
+ "description": ""
+ },
+ "replaceIconsWithDots": {
+ "label": "",
+ "description": ""
+ }
+ },
+ "localization": {
+ "language": {
+ "label": ""
+ },
+ "firstDayOfWeek": {
+ "label": "",
+ "options": {
+ "monday": "",
+ "saturday": "",
+ "sunday": ""
+ }
+ }
+ },
+ "searchEngine": {
+ "title": "",
+ "custom": "",
+ "newTab": {
+ "label": ""
+ },
+ "autoFocus": {
+ "label": "",
+ "description": ""
+ },
+ "template": {
+ "label": "",
+ "description": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/widgets/draggable-list.json b/public/locales/et/widgets/draggable-list.json
new file mode 100644
index 000000000..5d27e99ad
--- /dev/null
+++ b/public/locales/et/widgets/draggable-list.json
@@ -0,0 +1,7 @@
+{
+ "noEntries": {
+ "title": "",
+ "text": ""
+ },
+ "buttonAdd": ""
+}
diff --git a/public/locales/et/widgets/error-boundary.json b/public/locales/et/widgets/error-boundary.json
new file mode 100644
index 000000000..ce74ad0fc
--- /dev/null
+++ b/public/locales/et/widgets/error-boundary.json
@@ -0,0 +1,14 @@
+{
+ "card": {
+ "title": "",
+ "buttons": {
+ "details": "",
+ "tryAgain": ""
+ }
+ },
+ "modal": {
+ "text": "",
+ "label": "",
+ "reportButton": ""
+ }
+}
diff --git a/public/locales/et/zod.json b/public/locales/et/zod.json
new file mode 100644
index 000000000..4c7c8b82d
--- /dev/null
+++ b/public/locales/et/zod.json
@@ -0,0 +1,22 @@
+{
+ "errors": {
+ "default": "",
+ "required": "",
+ "string": {
+ "startsWith": "",
+ "endsWith": "",
+ "includes": ""
+ },
+ "tooSmall": {
+ "string": "",
+ "number": ""
+ },
+ "tooBig": {
+ "string": "",
+ "number": ""
+ },
+ "custom": {
+ "passwordMatch": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/fr/modules/health-monitoring.json b/public/locales/fr/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/fr/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/fr/modules/indexer-manager.json b/public/locales/fr/modules/indexer-manager.json
new file mode 100644
index 000000000..a36d3d812
--- /dev/null
+++ b/public/locales/fr/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Statut du gestionnaire d’indexeur",
+ "description": "Statuts de vos indexeurs",
+ "settings": {
+ "title": "Statut du gestionnaire d’indexeur"
+ }
+ },
+ "indexersStatus": {
+ "title": "Gestionnaire d’indexeur",
+ "testAllButton": "Tout tester"
+ },
+ "errors": {
+ "general": {
+ "title": "Impossible de trouver un gestionnaire d’indexeur",
+ "text": "Il y a eu un problème de connexion à votre gestionnaire d’indexeur. Veuillez vérifier votre configuration/intégration(s)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/fr/modules/smart-home/entity-state.json b/public/locales/fr/modules/smart-home/entity-state.json
index b01d36088..975fd3003 100644
--- a/public/locales/fr/modules/smart-home/entity-state.json
+++ b/public/locales/fr/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID de l’entité",
"info": "ID d’entité unique dans Home Assistant. Copiez en cliquant sur l'entité > Cliquez sur l'icône en forme de rouage > Cliquez sur le bouton Copier sous « ID d'entité ». Certaines entités personnalisées peuvent ne pas être prises en charge."
},
+ "appendUnit": {
+ "label": "Ajouter une unité de mesure",
+ "info": "Ajouter l'attribut d'unité de mesure à l'état de l'entité."
+ },
"automationId": {
"label": "ID d'automatisation optionnelle",
"info": "Votre identifiant unique d'automatisation. Commence toujours par automation.XXXXX. S'il n'est pas défini, le widget ne sera pas cliquable et n'affichera que l'état de l'entité. Après un clic, l'état de l'entité sera actualisé."
},
"displayName": {
"label": "Nom d'affichage"
+ },
+ "displayFriendlyName": {
+ "label": "Afficher le nom personnalisé",
+ "info": "Afficher le nom personnalisé de Home Assistant au lieu du nom d'affichage"
}
}
}
diff --git a/public/locales/he/modules/health-monitoring.json b/public/locales/he/modules/health-monitoring.json
new file mode 100644
index 000000000..20c70f59a
--- /dev/null
+++ b/public/locales/he/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "ניטור בריאות המערכת",
+ "description": "מידע על ה-NAS שלך",
+ "settings": {
+ "title": "ניטור בריאות המערכת",
+ "fahrenheit": {
+ "label": "פרנהייט"
+ }
+ }
+ },
+ "cpu": {
+ "label": "מעבד",
+ "load": "טעינה ממוצעת",
+ "minute": "{{minute}} דקה"
+ },
+ "memory": {
+ "label": "זיכרון",
+ "totalMem": "סך הזיכרון: {{total}}GB",
+ "available": "זמין: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "מערכת קבצים",
+ "available": "זמין: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "זמן פעילות",
+ "updates": "עדכונים",
+ "reboot": "אתחול מחדש"
+ },
+ "errors": {
+ "general": {
+ "title": "לא מצליח למצוא את ה-NAS שלך",
+ "text": "הייתה בעיה בחיבור ל-NAS שלך. נא ודא את התצורה/השילובים שלך."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/he/modules/indexer-manager.json b/public/locales/he/modules/indexer-manager.json
new file mode 100644
index 000000000..90b6aeeba
--- /dev/null
+++ b/public/locales/he/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "סטטוס מנהל אינדקס",
+ "description": "סטטוס לגבי האינדקסים שלך",
+ "settings": {
+ "title": "סטטוס מנהל אינדקס"
+ }
+ },
+ "indexersStatus": {
+ "title": "מנהל אינדקס",
+ "testAllButton": "בדוק הכל"
+ },
+ "errors": {
+ "general": {
+ "title": "לא ניתן למצוא מנהל אינדקס",
+ "text": "הייתה בעיה בחיבור למנהל האינדקס שלך. אנא בדוק את הגדרות האינטרגציה."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/he/modules/smart-home/entity-state.json b/public/locales/he/modules/smart-home/entity-state.json
index 4662fd94f..fa9e016b6 100644
--- a/public/locales/he/modules/smart-home/entity-state.json
+++ b/public/locales/he/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "מזהה ישות",
"info": "מזהה ישות ייחודי ב-Home Assistant. העתק על ידי לחיצה על ישות > לחץ על סמל גלגל שיניים > לחץ על כפתור העתק ב'זיהוי ישות'. ייתכן שחלק מהישויות המותאמות אישית אינן נתמכות."
},
+ "appendUnit": {
+ "label": "צרף יחידת מדידה",
+ "info": "הוסף את תכונת יחידת המדידה למצב הישות."
+ },
"automationId": {
"label": "מזהה אוטומציה אופציונלי",
"info": "מזהה האוטומציה הייחודי שלך. תמיד מתחיל באוטומציה.XXXXXX. אם לא מוגדר, לא יהיה ניתן ללחוץ על יישומון והוא רק יציג את המצב. לאחר לחיצה, מצב הישות יתרענן."
},
"displayName": {
"label": "הצג שם"
+ },
+ "displayFriendlyName": {
+ "label": "הצג שם ידידותי",
+ "info": "הצג שם ידידותי מ-Home Assistant במקום שם תצוגה"
}
}
}
diff --git a/public/locales/hr/modules/health-monitoring.json b/public/locales/hr/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/hr/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/hr/modules/indexer-manager.json b/public/locales/hr/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/hr/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/hr/modules/smart-home/entity-state.json b/public/locales/hr/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/hr/modules/smart-home/entity-state.json
+++ b/public/locales/hr/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/hu/modules/health-monitoring.json b/public/locales/hu/modules/health-monitoring.json
new file mode 100644
index 000000000..8efa9674f
--- /dev/null
+++ b/public/locales/hu/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "Processzor",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/hu/modules/indexer-manager.json b/public/locales/hu/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/hu/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/hu/modules/smart-home/entity-state.json b/public/locales/hu/modules/smart-home/entity-state.json
index 3bae542a3..17e2f8abd 100644
--- a/public/locales/hu/modules/smart-home/entity-state.json
+++ b/public/locales/hu/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "Egység azonosító",
"info": "Egyedi egység ID a Home Assistantben. Másolás az egységre kattintva > Kattintson a fogaskerék ikonra > Kattintson a másolás gombra az „Egység ID”-nél. Előfordulhat, hogy egyes egyéni egységek nem támogatottak."
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "Választható automatizálási azonosító",
"info": "Az Ön egyedi automatizálási azonosítója. Mindig az automatizálással kezdődik.XXXX. Ha nincs beállítva, a widget nem kattintható, és csak az állapotot jeleníti meg. A kattintás után az entitás állapota frissül."
},
"displayName": {
"label": "Megjelenített név"
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/it/modules/health-monitoring.json b/public/locales/it/modules/health-monitoring.json
new file mode 100644
index 000000000..5dc0e2d4f
--- /dev/null
+++ b/public/locales/it/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Monitoraggio dello stato del sistema",
+ "description": "Informazioni sul tuo NAS",
+ "settings": {
+ "title": "Monitoraggio dello stato del sistema",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Utilizzo medio",
+ "minute": "{{minute}} minuto"
+ },
+ "memory": {
+ "label": "Memoria",
+ "totalMem": "Memoria totale: {{total}}GB",
+ "available": "Disponibile: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "File System",
+ "available": "Disponibile: {{available}}- {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Uptime",
+ "updates": "Aggiornamenti",
+ "reboot": "Riavvio"
+ },
+ "errors": {
+ "general": {
+ "title": "Impossibile trovare il tuo NAS",
+ "text": "Si è verificato un problema di connessione al tuo NAS. Verifica la configurazione/integrazione."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/it/modules/indexer-manager.json b/public/locales/it/modules/indexer-manager.json
new file mode 100644
index 000000000..a9d978f90
--- /dev/null
+++ b/public/locales/it/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Stato del gestore dell'indicizzatore",
+ "description": "Stato dei tuoi indicizzatori",
+ "settings": {
+ "title": "Stato del gestore dell'indicizzatore"
+ }
+ },
+ "indexersStatus": {
+ "title": "Gestore dell'indicizzatore",
+ "testAllButton": "Prova Tutto"
+ },
+ "errors": {
+ "general": {
+ "title": "Impossibile trovare un gestore dell'indicizzatore",
+ "text": "Si è verificato un problema durante la connessione al gestore dell'indicizzatore. Verifica la tua configurazione/integrazione."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/it/modules/smart-home/entity-state.json b/public/locales/it/modules/smart-home/entity-state.json
index 9dc1ce730..5c86b3fa1 100644
--- a/public/locales/it/modules/smart-home/entity-state.json
+++ b/public/locales/it/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID entità",
"info": "ID entità univoco in Home Assistant. Copia facendo clic sull'entità > clic sull'icona della rondella > clic sul pulsante copia in \"ID entità\". Alcune entità personalizzate potrebbero non essere supportate."
},
+ "appendUnit": {
+ "label": "Aggiungi unità di misura",
+ "info": "Aggiungi l'attributo dell'unità di misura allo stato dell'entità."
+ },
"automationId": {
"label": "ID automazione opzionale",
"info": "Il tuo ID di automazione univoco. Inizia sempre con automation.XXXXX. Se non impostato, il widget non sarà selezionabile e visualizzerà solo lo stato. Dopo il clic, lo stato dell'entità verrà aggiornato."
},
"displayName": {
"label": "Visualizza nome"
+ },
+ "displayFriendlyName": {
+ "label": "Visualizza il nome descrittivo",
+ "info": "Visualizza il nome descrittivo di Home Assistant invece del nome visualizzato"
}
}
}
diff --git a/public/locales/ja/modules/health-monitoring.json b/public/locales/ja/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/ja/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ja/modules/indexer-manager.json b/public/locales/ja/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/ja/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ja/modules/smart-home/entity-state.json b/public/locales/ja/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/ja/modules/smart-home/entity-state.json
+++ b/public/locales/ja/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/ko/modules/health-monitoring.json b/public/locales/ko/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/ko/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ko/modules/indexer-manager.json b/public/locales/ko/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/ko/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ko/modules/smart-home/entity-state.json b/public/locales/ko/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/ko/modules/smart-home/entity-state.json
+++ b/public/locales/ko/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/lt/authentication/invite.json b/public/locales/lt/authentication/invite.json
new file mode 100644
index 000000000..f3c8c6f07
--- /dev/null
+++ b/public/locales/lt/authentication/invite.json
@@ -0,0 +1,35 @@
+{
+ "metaTitle": "Sukurti paskyrą",
+ "title": "Sukurti paskyrą",
+ "text": "Nurodykite savo kredencialus",
+ "form": {
+ "fields": {
+ "username": {
+ "label": ""
+ },
+ "password": {
+ "label": "Slaptažodis"
+ },
+ "passwordConfirmation": {
+ "label": "Patvirtinti slaptažodį"
+ }
+ },
+ "buttons": {
+ "submit": "Sukurti paskyrą"
+ }
+ },
+ "notifications": {
+ "loading": {
+ "title": "Paskyra kuriama",
+ "text": "Prašome palaukti"
+ },
+ "success": {
+ "title": "Paskyra sukurta",
+ "text": "Jūsų paskyra sėkmingai sukurta"
+ },
+ "error": {
+ "title": "",
+ "text": "Kažkas nutiko ne taip, gauta ši klaida: {{error}}"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/authentication/login.json b/public/locales/lt/authentication/login.json
new file mode 100644
index 000000000..1c6e2d548
--- /dev/null
+++ b/public/locales/lt/authentication/login.json
@@ -0,0 +1,20 @@
+{
+ "metaTitle": "Prisijungti",
+ "title": "Sveiki sugrįžę!",
+ "text": "Įveskite savo kredencialus",
+ "form": {
+ "fields": {
+ "username": {
+ "label": ""
+ },
+ "password": {
+ "label": "Slaptažodis"
+ }
+ },
+ "buttons": {
+ "submit": "Prisijungti"
+ },
+ "afterLoginRedirection": "Prisijungę būsite nukreipti į {{url}}"
+ },
+ "alert": "Jūsų kredencialai neteisingi arba šios paskyros nėra. Prašome, pabandyti dar kartą."
+}
\ No newline at end of file
diff --git a/public/locales/lt/boards/common.json b/public/locales/lt/boards/common.json
new file mode 100644
index 000000000..796c1d2e5
--- /dev/null
+++ b/public/locales/lt/boards/common.json
@@ -0,0 +1,5 @@
+{
+ "header": {
+ "customize": "Koreguokite lentą"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/boards/customize.json b/public/locales/lt/boards/customize.json
new file mode 100644
index 000000000..43affc926
--- /dev/null
+++ b/public/locales/lt/boards/customize.json
@@ -0,0 +1,29 @@
+{
+ "metaTitle": "Koreguokite {{name}} Lentą",
+ "pageTitle": "{{name}} Lentos koregacija",
+ "backToBoard": "Atgal į lentą",
+ "settings": {
+ "appearance": {
+ "primaryColor": "Pagrindinė spalva",
+ "secondaryColor": "Antrinė spalva"
+ }
+ },
+ "save": {
+ "button": "Išsaugoti pakeitimus",
+ "note": "Atsargiai, turite neišsaugotų pakeitimų!"
+ },
+ "notifications": {
+ "pending": {
+ "title": "Išsaugomi pakeitimai",
+ "message": "Palaukite, kol išsaugosime jūsų pakeitimus"
+ },
+ "success": {
+ "title": "Pakeitimai išsaugoti",
+ "message": "Jūsų pakeitimai sėkmingai išsaugotas"
+ },
+ "error": {
+ "title": "",
+ "message": "Nepavyko išsaugoti pakeitimų"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/common.json b/public/locales/lt/common.json
new file mode 100644
index 000000000..13d0b6793
--- /dev/null
+++ b/public/locales/lt/common.json
@@ -0,0 +1,58 @@
+{
+ "save": "",
+ "apply": "",
+ "insert": "",
+ "about": "",
+ "cancel": "Atšaukti",
+ "close": "",
+ "back": "",
+ "delete": "",
+ "ok": "",
+ "edit": "",
+ "next": "",
+ "previous": "",
+ "confirm": "",
+ "enabled": "",
+ "duplicate": "Sukurti kopiją",
+ "disabled": "",
+ "enableAll": "",
+ "disableAll": "",
+ "version": "",
+ "changePosition": "",
+ "remove": "Pašalinti",
+ "removeConfirm": "",
+ "createItem": "",
+ "sections": {
+ "settings": "Nustatymai",
+ "dangerZone": ""
+ },
+ "secrets": {
+ "apiKey": "",
+ "username": "",
+ "password": "Slaptažodis"
+ },
+ "tip": "",
+ "time": {
+ "seconds": "",
+ "minutes": "",
+ "hours": ""
+ },
+ "loading": "Kraunama...",
+ "breakPoints": {
+ "small": "",
+ "medium": "",
+ "large": ""
+ },
+ "seeMore": "",
+ "position": {
+ "left": "Kairėje",
+ "center": "",
+ "right": "Dešinėje"
+ },
+ "attributes": {
+ "width": "Plotis",
+ "height": "Aukštis"
+ },
+ "public": "Vieša",
+ "restricted": ""
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/common.json b/public/locales/lt/layout/common.json
new file mode 100644
index 000000000..45f9dc7fe
--- /dev/null
+++ b/public/locales/lt/layout/common.json
@@ -0,0 +1,25 @@
+{
+ "modals": {
+ "blockedPopups": {
+ "title": "Iššokantys langai užblokuoti",
+ "text": "Jūsų naršyklė užblokavo \"Homarr\" prieigą prie jos API. Dažniausiai taip nutinka dėl \"AdBlockers\" arba uždraustų leidimų. \"Homarr\" negali automatiškai prašyti leidimų.",
+ "list": {
+ "browserPermission": "Spustelėkite šalia URL esančią piktogramą ir patikrinkite leidimus. Leisti iššokančius langus ir langus",
+ "adBlockers": "Išjungti skelbimų blokatorius ir saugumo įrankius naršyklėje",
+ "otherBrowser": "Išbandykite kitą naršyklę"
+ }
+ }
+ },
+ "actions": {
+ "category": {
+ "openAllInNewTab": "Atidaryti visus naujame skirtuke"
+ }
+ },
+ "menu": {
+ "moveUp": "Pakelti aukštyn",
+ "moveDown": "Perkelti žemyn",
+ "addCategory": "Pridėti kategoriją {{location}}",
+ "addAbove": "aukščiau",
+ "addBelow": "žemiau"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/element-selector/selector.json b/public/locales/lt/layout/element-selector/selector.json
new file mode 100644
index 000000000..d0442f7fb
--- /dev/null
+++ b/public/locales/lt/layout/element-selector/selector.json
@@ -0,0 +1,26 @@
+{
+ "modal": {
+ "title": "Pridėti naują plytelę",
+ "text": "Plytelės yra pagrindinis Homarr elementas. Jos naudojamos programėlėms ir kitai informacijai rodyti. Galite pridėti tiek plytelių, kiek norite."
+ },
+ "widgetDescription": "Valdikliai sąveikauja su jūsų programomis, kad galėtumėte geriau valdyti programas. Paprastai prieš naudojant jiems reikia papildomos konfigūracijos.",
+ "goBack": "Grįžkite prie ankstesnio veiksmo",
+ "actionIcon": {
+ "tooltip": "Pridėti naują plytelę"
+ },
+ "apps": "Programėlės",
+ "app": {
+ "defaultName": "Jūsų programėlė"
+ },
+ "widgets": "Valdikliai",
+ "categories": "Kategorijos",
+ "category": {
+ "newName": "Naujos kategorijos pavadinimas",
+ "defaultName": "Nauja kategorija",
+ "created": {
+ "title": "Kategorija sukurta",
+ "message": "Sukurta kategorija {{name}}"
+ }
+ },
+ "importFromDocker": "Importuoti iš docker"
+}
diff --git a/public/locales/lt/layout/errors/access-denied.json b/public/locales/lt/layout/errors/access-denied.json
new file mode 100644
index 000000000..7f583d3af
--- /dev/null
+++ b/public/locales/lt/layout/errors/access-denied.json
@@ -0,0 +1,5 @@
+{
+ "title": "Prieiga uždrausta",
+ "text": "Neturite pakankamų teisių, kad galėtumėte pasiekti šį puslapį. Jei manote, kad tai padaryta netyčia, kreipkitės į administratorių.",
+ "switchAccount": "Perjunkite į kitą paskyrą"
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/errors/not-found.json b/public/locales/lt/layout/errors/not-found.json
new file mode 100644
index 000000000..c75f22384
--- /dev/null
+++ b/public/locales/lt/layout/errors/not-found.json
@@ -0,0 +1,5 @@
+{
+ "title": "Puslapis nerastas",
+ "text": "Šio puslapio nepavyko rasti. Šio puslapio URL gali būti pasibaigęs, URL netinkamas arba dabar turite reikiamus leidimus pasiekti šį šaltinį.",
+ "button": "Eiti į pradžią"
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/header.json b/public/locales/lt/layout/header.json
new file mode 100644
index 000000000..11538873f
--- /dev/null
+++ b/public/locales/lt/layout/header.json
@@ -0,0 +1,27 @@
+{
+ "search": {
+ "label": "Ieškoti",
+ "engines": {
+ "web": "Ieškoti {{query}} internete",
+ "youtube": "Ieškoti {{query}} svetainėje YouTube",
+ "torrent": "Ieškoti {{query}} torrentų",
+ "movie": "Ieškoti {{query}} {{app}}"
+ }
+ },
+ "actions": {
+ "avatar": {
+ "switchTheme": "Perjugti temą",
+ "preferences": "Vartotojo nustatymai",
+ "defaultBoard": "Numatytasis skydelis",
+ "manage": "Valdyti",
+ "logout": "Atsijungti nuo {{username}}",
+ "login": "Prisijungti"
+ }
+ },
+ "modals": {
+ "movie": {
+ "title": "",
+ "topResults": "Geriausi {{count}} rezultatai {{search}}."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/header/actions/toggle-edit-mode.json b/public/locales/lt/layout/header/actions/toggle-edit-mode.json
new file mode 100644
index 000000000..4df4bb6ff
--- /dev/null
+++ b/public/locales/lt/layout/header/actions/toggle-edit-mode.json
@@ -0,0 +1,12 @@
+{
+ "description": "Redagavimo režime galite reguliuoti plytekes ir konfigūruoti programas. Pakeitimai neišsaugomi, kol neišeinate iš redagavimo režimo.",
+ "button": {
+ "disabled": "Įjunkite redagavimo režimą",
+ "enabled": "Išeikite ir išsaugokite"
+ },
+ "popover": {
+ "title": "Redagavimo režimas įjungtas <1>{{size}}1> dydžiui",
+ "text": "Galite koreguoti save programas. Pakeitimai yra neišsaugomi, kol neišeinate iš redagavimo režimo"
+ },
+ "unloadEvent": "Išeikite iš redagavimo režimo, kad išsaugotumėte pakeitimus"
+}
diff --git a/public/locales/lt/layout/manage.json b/public/locales/lt/layout/manage.json
new file mode 100644
index 000000000..a315987d0
--- /dev/null
+++ b/public/locales/lt/layout/manage.json
@@ -0,0 +1,36 @@
+{
+ "navigation": {
+ "home": {
+ "title": "Pagrindinis"
+ },
+ "boards": {
+ "title": "Lentos"
+ },
+ "users": {
+ "title": "Vartotojai",
+ "items": {
+ "manage": "Valdyti",
+ "invites": "Pakvietimai"
+ }
+ },
+ "help": {
+ "title": "Pagalba",
+ "items": {
+ "documentation": "Dokumentacija",
+ "report": "Pranešti apie problemą / klaidą",
+ "discord": "Bendruomenės Discord",
+ "contribute": "Prisidėti"
+ }
+ },
+ "tools": {
+ "title": "Įrankiai",
+ "items": {
+ "docker": "Docker",
+ "api": "API"
+ }
+ },
+ "about": {
+ "title": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/mobile/drawer.json b/public/locales/lt/layout/mobile/drawer.json
new file mode 100644
index 000000000..45011ac33
--- /dev/null
+++ b/public/locales/lt/layout/mobile/drawer.json
@@ -0,0 +1,3 @@
+{
+ "title": "{{position}} šoninė juosta"
+}
diff --git a/public/locales/lt/layout/modals/about.json b/public/locales/lt/layout/modals/about.json
new file mode 100644
index 000000000..dc3fee039
--- /dev/null
+++ b/public/locales/lt/layout/modals/about.json
@@ -0,0 +1,30 @@
+{
+ "description": "„Homarr“ yra aptakus, šiuolaikiškas prietaisų skydelis, kuriame visos jūsų programos ir paslaugos yra po ranka. Naudodami Homarr viską galite pasiekti ir valdyti vienoje patogioje vietoje. „Homarr“ sklandžiai integruojasi su jūsų pridėtomis programėlėmis, suteikdama jums vertingos informacijos ir suteikdama visišką valdymą. Diegimas yra lengvas, o „Homarr“ palaiko daugybę diegimo metodų.",
+ "addToDashboard": "Pridėti prie panelės",
+ "tip": "Mod reiškia jūsų modifikatoriaus klavišą, tai yra Ctrl ir Command / Super / Windows klavišas",
+ "key": "Spartusis klavišas",
+ "action": "Veiksmas",
+ "keybinds": "Klavišų priskyrimas",
+ "translators": "Vertėjai ({{count}})",
+ "translatorsDescription": "Šių žmonių dėka Homarr pasiekiamas {{languages}} kalbomis! Norite padėti išversti Homarr į savo kalbą? Skaitykite, kaip tai padaryti čia.",
+ "contributors": "Bendradarbiautojai ({{count}})",
+ "contributorsDescription": "Šie žmonės sukūrė kodą, dėl kurio veikia \"Homarr\"! Norite padėti kurti \"Homarr\"? Skaitykite, kaip tai padaryti čia",
+ "actions": {
+ "toggleTheme": "Perjungti šviesų / tamsų režimą",
+ "focusSearchBar": "Sutelkite dėmesį į paieškos juostą",
+ "openDocker": "Atidaryti \"Docker\" valdiklį",
+ "toggleEdit": "Perjungti redagavimo režimą"
+ },
+ "metrics": {
+ "configurationSchemaVersion": "Konfigūracijos schemos versija",
+ "version": "",
+ "nodeEnvironment": "Node aplinka",
+ "i18n": "Įkeltos I18n vertimo vardų erdvės",
+ "locales": "Sukonfigūruotos I18n lokalės",
+ "experimental_disableEditMode": "EKSPERIMENTINIS: Išjungti redagavimo režimą"
+ },
+ "version": {
+ "new": "Nauja: {{newVersion}}",
+ "dropdown": "Versija {{newVersion}} yra prieinama! Dabartinė versija yra {{currentVersion}}"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/layout/modals/add-app.json b/public/locales/lt/layout/modals/add-app.json
new file mode 100644
index 000000000..e0d46deeb
--- /dev/null
+++ b/public/locales/lt/layout/modals/add-app.json
@@ -0,0 +1,128 @@
+{
+ "tabs": {
+ "general": "Bendras",
+ "behaviour": "Elgesys",
+ "network": "Tinklas",
+ "appearance": "Išvaizda",
+ "integration": "Integracija"
+ },
+ "general": {
+ "appname": {
+ "label": "Programos pavadinimas",
+ "description": "Naudojama programai rodyti lentelėje."
+ },
+ "internalAddress": {
+ "label": "Vidinis adresas",
+ "description": "Programėlės vidinis IP adresas.",
+ "troubleshoot": {
+ "label": "Turite problemų?",
+ "header": "Čia pateikiamas dažniausiai daromų klaidų sąrašas ir jų šalinimas:",
+ "lines": {
+ "nothingAfterPort": "Daugeliu, jei ne visais atvejais, neturėtumėte įvesti jokio kelio po prievado. (Netgi „/admin“, skirta pihole, arba „/web“, skirta plex)",
+ "protocolCheck": "Visada įsitikinkite, kad prieš URL yra http arba https, ir įsitikinkite, kad naudojate tinkamą.",
+ "preferIP": "Rekomenduojama naudoti tiesioginį kompiuterio ar konteinerio Ip adresą, su kuriuo bandote susisiekti.",
+ "enablePings": "Patikrinkite, ar IP yra teisingas, įjungę ping. Pritaikyti valdybą -> Maketas -> Įjungti pingus. Programos plytelėse pasirodys mažas raudonas arba žalias burbuliukas, kurį užkliudžius bus nurodytas atsakymo kodas (dažniausiai tikimasi žalio burbuliuko su kodu 200).",
+ "wget": "Norėdami įsitikinti, kad \"homarr\" gali bendrauti su kitomis programėlėmis, atlikite wget/curl/ping programos IP:prievadas.",
+ "iframe": "Kalbant apie iframe, jie visada turėtų naudoti tą patį protokolą (http/s) kaip ir Homarr.",
+ "clearCache": "Kai kuri informacija registruojama talpykloje, todėl integracija gali neveikti, jei neišvalysite talpyklos \"Homarr\" bendrosiose parinktyse."
+ },
+ "footer": "Jei reikia daugiau trikčių šalinimo, susisiekite su mumis per {{discord}}."
+ }
+ },
+ "externalAddress": {
+ "label": "Išorinis adresas",
+ "description": "URL adresas, kuris bus atidarytas spustelėjus programą."
+ }
+ },
+ "behaviour": {
+ "isOpeningNewTab": {
+ "label": "Atidaryti naujame skirtuke",
+ "description": "Atidarykite programėlę naujame skirtuke, o ne dabartiniame."
+ },
+ "tooltipDescription": {
+ "label": "Programos aprašymas",
+ "description": "Įvestas tekstas bus rodomas užvedus pelės žymeklį virš programos.\nNaudokite tai, kad naudotojams pateiktumėte daugiau informacijos apie programą arba palikite tuščią, kad nieko neturėtumėte."
+ },
+ "customProtocolWarning": "Naudojant nestandartinį protokolą. Tam gali prireikti iš anksto įdiegtų programų ir gali kilti saugumo rizika. Įsitikinkite, kad jūsų adresas yra saugus ir patikimas."
+ },
+ "network": {
+ "statusChecker": {
+ "label": "Būsenos tikrintuvas",
+ "description": "Naudodamas paprastą HTTP(S) užklausą patikrina, ar jūsų programa yra prisijungusi."
+ },
+ "statusCodes": {
+ "label": "HTTP būsenos kodai",
+ "description": "HTTP būsenos kodai, kurie laikomi prisijungusiais."
+ }
+ },
+ "appearance": {
+ "icon": {
+ "label": "Programėlės piktograma",
+ "description": "Pradėkite rašyti, kad rastumėte piktogramą. Taip pat galite įklijuoti paveikslėlio URL adresą ir naudoti pasirinktą piktogramą.",
+ "autocomplete": {
+ "title": "Rezultatų nerasta",
+ "text": "Pabandykite naudoti tikslesnę paieškos frazę. Jei nerandate norimos piktogramos, įklijuokite pirmiau pateiktą paveikslėlio URL, kad gautumėte pasirinktinę piktogramą"
+ },
+ "noItems": {
+ "title": "Įkeliamos išorinės piktogramos",
+ "text": "Gali užtrukti kelias sekundes"
+ }
+ },
+ "appNameFontSize": {
+ "label": "Programos pavadinimo šrifto dydis",
+ "description": "Nustatykite šrifto dydį, kai programėlės pavadinimas rodomas plytelėje."
+ },
+ "appNameStatus": {
+ "label": "Programos pavadinimo būsena",
+ "description": "Pasirinkite, kurioje vietoje norite, kad būtų rodomas pavadinimas, jei apskritai norite, kad jis būtų rodomas.",
+ "dropdown": {
+ "normal": "Rodyti pavadinimą tik ant plytelės",
+ "hover": "Rodyti pavadinimą tik užvedus pelės žymeklį ant patarimo",
+ "hidden": "Visiškai nerodyti"
+ }
+ },
+ "positionAppName": {
+ "label": "Programos pavadinimas Pozicija",
+ "description": "Programėlės pavadinimo padėtis piktogramos atžvilgiu.",
+ "dropdown": {
+ "top": "Viršuje",
+ "right": "Dešinėje",
+ "bottom": "Apačioje",
+ "left": "Kairėje"
+ }
+ },
+ "lineClampAppName": {
+ "label": "Programos pavadinimo linijos spaustukas",
+ "description": "Nustato, kiek eilučių turėtų tilpti į maksimalų pavadinimą. Nustatykite 0, jei norite neriboto skaičiaus."
+ }
+ },
+ "integration": {
+ "type": {
+ "label": "Integracijos konfigūracija",
+ "description": "Integracijos konfigūracija, kuri bus naudojama prisijungti prie jūsų programos.",
+ "placeholder": "Pasirinkite integraciją",
+ "defined": "Nustatyta",
+ "undefined": "Nenustatyta",
+ "public": "Vieša",
+ "private": "Privatu",
+ "explanationPrivate": "Privati paslaptis į serverį siunčiama tik vieną kartą. Naršyklei atnaujinus puslapį, ji daugiau niekada nebus siunčiama.",
+ "explanationPublic": "Viešoji paslaptis visada siunčiama klientui ir yra pasiekiama per API. Jame neturėtų būti jokių konfidencialių verčių, pavyzdžiui, naudotojų vardų, slaptažodžių, žetonų, sertifikatų ir pan."
+ },
+ "secrets": {
+ "description": "Norėdami atnaujinti paslaptį, įveskite reikšmę ir spustelėkite mygtuką Išsaugoti. Jei norite pašalinti paslaptį, naudokite mygtuką ištrinti.",
+ "warning": "Jūsų prisijungimo duomenys yra jūsų integracijų prieiga, todėl turėtumėte niekada jais nesidalyti su niekuo kitu. \"Homarr\" komanda niekada neprašys pateikti įgaliojimų. Įsitikinkite, kad saugote ir saugiai valdote savo paslaptis.",
+ "clear": "Trinti paslaptį",
+ "save": "Išsaugoti paslaptį",
+ "update": "Atnaujinti paslaptį"
+ }
+ },
+ "validation": {
+ "popover": "Jūsų formoje yra neteisingų duomenų. Vadinasi, jo išsaugoti nepavyks. Išspręskite visas problemas ir dar kartą spustelėkite šį mygtuką, kad išsaugotumėte pakeitimus",
+ "name": "Pavadinimas yra būtinas",
+ "noUrl": "Reikalingas URL adresas",
+ "invalidUrl": "Reikšmė nėra galiojantis url",
+ "noIconUrl": "Šis laukelis yra privalomas",
+ "noExternalUri": "Reikalingas išorinis URL",
+ "invalidExternalUri": "Išorinis URL nėra galiojantis URL"
+ }
+}
diff --git a/public/locales/lt/layout/modals/change-position.json b/public/locales/lt/layout/modals/change-position.json
new file mode 100644
index 000000000..8e9133814
--- /dev/null
+++ b/public/locales/lt/layout/modals/change-position.json
@@ -0,0 +1,8 @@
+{
+ "xPosition": "X ašies padėtis",
+ "width": "Plotis",
+ "height": "Aukštis",
+ "yPosition": "Y ašies padėtis",
+ "zeroOrHigher": "0 arba daugiau",
+ "betweenXandY": "Tarp {{min}} ir {{max}}"
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/boards.json b/public/locales/lt/manage/boards.json
new file mode 100644
index 000000000..77ffca12f
--- /dev/null
+++ b/public/locales/lt/manage/boards.json
@@ -0,0 +1,57 @@
+{
+ "metaTitle": "Lentos",
+ "pageTitle": "Lentos",
+ "cards": {
+ "statistics": {
+ "apps": "Programėlės",
+ "widgets": "Valdikliai",
+ "categories": "Kategorijos"
+ },
+ "buttons": {
+ "view": "Žiūrėti lentą"
+ },
+ "menu": {
+ "setAsDefault": "Nustatyti kaip numatytąją lentą",
+ "delete": {
+ "label": "Ištrinti visam laikui",
+ "disabled": "Ištrynimas išjungtas, nes senesni \"Homarr\" komponentai neleidžia ištrinti numatytosios konfigūracijos. Ištrinti bus galima ateityje."
+ },
+ "duplicate": "Sukurti kopiją",
+ "rename": {
+ "label": "Pervadinti",
+ "modal": {
+ "title": "Pervadinti lentą {{name}}",
+ "fields": {
+ "name": {
+ "label": "Naujas pavadinimas",
+ "placeholder": "Naujas lentos pavadinimas"
+ }
+ }
+ }
+ }
+ },
+ "badges": {
+ "fileSystem": "Failų sistema",
+ "default": "Numatytas"
+ }
+ },
+ "buttons": {
+ "create": "Kurti naują lentą"
+ },
+ "modals": {
+ "delete": {
+ "title": "Ištrinti lentą",
+ "text": "Ar tikrai norite ištrinti šią lentą? Šio veiksmo negalima atšaukti ir jūsų duomenys bus prarasti visam laikui."
+ },
+ "create": {
+ "title": "Sukurti lentą",
+ "text": "Sukūrus lentą, pavadinimo keisti negalima.",
+ "form": {
+ "name": {
+ "label": "Pavadinimas"
+ },
+ "submit": "Sukurti"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/index.json b/public/locales/lt/manage/index.json
new file mode 100644
index 000000000..e78de607e
--- /dev/null
+++ b/public/locales/lt/manage/index.json
@@ -0,0 +1,23 @@
+{
+ "metaTitle": "Valdyti",
+ "hero": {
+ "title": "Sveiki sugrįžę, {{username}}",
+ "fallbackUsername": "Anoniminis",
+ "subtitle": "Sveiki atvykę į jūsų programų centrą. Organizuokite, optimizuokite ir užkariaukite!"
+ },
+ "quickActions": {
+ "title": "Spartūs veiksmai",
+ "boards": {
+ "title": "Jūsų lentos",
+ "subtitle": "Kurkite ir tvarkykite lentas"
+ },
+ "inviteUsers": {
+ "title": "Pakviesti naują naudotoją",
+ "subtitle": "Sukurkite ir išsiųskite registracijos kvietimą"
+ },
+ "manageUsers": {
+ "title": "Tvarkyti vartotojus",
+ "subtitle": "Ištrinkite ir tvarkykite vartotojus"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/users.json b/public/locales/lt/manage/users.json
new file mode 100644
index 000000000..5243a0fac
--- /dev/null
+++ b/public/locales/lt/manage/users.json
@@ -0,0 +1,44 @@
+{
+ "metaTitle": "Vartotojai",
+ "pageTitle": "Tvarkyti vartotojus",
+ "buttons": {
+ "create": "Sukurti"
+ },
+ "filter": {
+ "roles": {
+ "all": "Visi",
+ "normal": "Įprastas",
+ "admin": "Administratorius",
+ "owner": "Savininkas"
+ }
+ },
+ "table": {
+ "header": {
+ "user": "Vartotojas",
+ "email": "El. paštas"
+ }
+ },
+ "tooltips": {
+ "deleteUser": "Ištrinti vartotoją",
+ "demoteAdmin": "Pažeminti administratorių",
+ "promoteToAdmin": "Paaukštinti į administratorių"
+ },
+ "modals": {
+ "delete": {
+ "title": "Ištrinti naudotoją {{name}}",
+ "text": "Ar tikrai norite ištrinti naudotoją {{name}}? Tai ištrins su šia paskyra susijusius duomenis, bet ne visus šio naudotojo sukurtas lentas."
+ },
+ "change-role": {
+ "promote": {
+ "title": "Paaukštinti naudotoją {{name}} į administratorių",
+ "text": "Ar tikrai norite paaukštinti naudotoją {{name}} iki administratoriaus? Tai suteiks naudotojui prieigą prie visų jūsų \"Homarr\" lentų."
+ },
+ "demote": {
+ "title": "Pažeminti naudotoją {{name}} iki vartotojo",
+ "text": "Ar tikrai norite pažeminti naudotoją {{name}} į naudotoją? Tai pašalins vartotojo prieigą prie visų jūsų Homarr lentų."
+ },
+ "confirm": ""
+ }
+ },
+ "searchDoesntMatch": "Jūsų paieška neatitinka jokių įrašų. Pakoreguokite filtrą."
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/users/create.json b/public/locales/lt/manage/users/create.json
new file mode 100644
index 000000000..167696688
--- /dev/null
+++ b/public/locales/lt/manage/users/create.json
@@ -0,0 +1,52 @@
+{
+ "metaTitle": "Sukurti vartotoją",
+ "steps": {
+ "account": {
+ "title": "Pirmieji žingsniai",
+ "text": "Sukurti paskyrą",
+ "username": {
+ "label": ""
+ },
+ "email": {
+ "label": "El. paštas"
+ }
+ },
+ "security": {
+ "title": "Antras žingsnis",
+ "text": "Slaptažodis",
+ "password": {
+ "label": "Slaptažodis"
+ }
+ },
+ "finish": {
+ "title": "Patvirtinimas",
+ "text": "Išsaugoti duomenų bazėje",
+ "card": {
+ "title": "Peržiūrėkite įvestus duomenis",
+ "text": "Pateikus duomenis į duomenų bazę, naudotojas galės prisijungti. Ar esate tikri, kad norite šį naudotoją išsaugoti duomenų bazėje ir aktyvuoti prisijungimą?"
+ },
+ "table": {
+ "header": {
+ "property": "Savybė",
+ "value": "Reikšmė",
+ "username": "",
+ "email": "El. paštas",
+ "password": "Slaptažodis"
+ },
+ "notSet": "Nenustatytas",
+ "valid": "Galiojantis"
+ },
+ "failed": "Naudotojo sukūrimas nepavyko: {{error}}"
+ },
+ "completed": {
+ "alert": {
+ "title": "Vartotojas buvo sukurtas",
+ "text": "Vartotojas buvo sukurtas duomenų bazėje. Dabar jis gali prisijungti."
+ }
+ }
+ },
+ "buttons": {
+ "generateRandomPassword": "Sugeneruoti atsitiktinį",
+ "createAnother": "Sukurti kitą"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/users/edit.json b/public/locales/lt/manage/users/edit.json
new file mode 100644
index 000000000..83abc84ea
--- /dev/null
+++ b/public/locales/lt/manage/users/edit.json
@@ -0,0 +1,55 @@
+{
+ "metaTitle": "Vartotojas {{username}}",
+ "back": "Grįžti į vartotojų valdymą",
+ "sections": {
+ "general": {
+ "title": "Bendras",
+ "inputs": {
+ "username": {
+ "label": ""
+ },
+ "eMail": {
+ "label": "El. paštas"
+ }
+ }
+ },
+ "security": {
+ "title": "Apsauga",
+ "inputs": {
+ "password": {
+ "label": "Naujas slaptažodis"
+ },
+ "terminateExistingSessions": {
+ "label": "Nutraukti esamas sesijas",
+ "description": "Priverčia naudotoją dar kartą prisijungti prie savo įrenginių"
+ },
+ "confirm": {
+ "label": "",
+ "description": "Slaptažodis bus atnaujintas. Veiksmų atšaukti negalima."
+ }
+ }
+ },
+ "roles": {
+ "title": "Rolės",
+ "currentRole": "Dabartinė rolė: ",
+ "badges": {
+ "owner": "Savininkas",
+ "admin": "Administratorius",
+ "normal": "Įprastas"
+ }
+ },
+ "deletion": {
+ "title": "Paskyros ištrynimas",
+ "inputs": {
+ "confirmUsername": {
+ "label": "Patvirtinkite vartotojo vardą",
+ "description": "Įveskite vartotojo vardą, kad patvirtintumėte ištrynimą"
+ },
+ "confirm": {
+ "label": "Ištrinti visam laikui",
+ "description": "Žinau, kad šis veiksmas yra negrįžtamas ir visi paskyros duomenys bus prarasti."
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/manage/users/invites.json b/public/locales/lt/manage/users/invites.json
new file mode 100644
index 000000000..c1e2d6cf2
--- /dev/null
+++ b/public/locales/lt/manage/users/invites.json
@@ -0,0 +1,48 @@
+{
+ "metaTitle": "Vartotojo kvietimai",
+ "pageTitle": "Tvarkyti naudotojų kvietimus",
+ "description": "Naudodami kvietimus galite pakviesti naudotojus į savo \"Homarr\" instanciją. Kvietimas galioja tik tam tikrą laiką ir gali būti panaudotas tik vieną kartą. Kvietimo galiojimo laikas turi būti nuo 5 minučių iki 12 mėnesių nuo jo sukūrimo.",
+ "button": {
+ "createInvite": "Sukurti kvietimą",
+ "deleteInvite": "Ištrinti kvietimą"
+ },
+ "table": {
+ "header": {
+ "id": "ID",
+ "creator": "Kūrėjas",
+ "expires": "Baigs galioti po",
+ "action": "Veiksmai"
+ },
+ "data": {
+ "expiresAt": "pasibaigė {{at}}",
+ "expiresIn": "po {{in}}"
+ }
+ },
+ "modals": {
+ "create": {
+ "title": "Sukurti kvietimą",
+ "description": "Pasibaigus galiojimo laikui, kvietimas nebegalios ir kvietimo gavėjas negalės sukurti paskyros.",
+ "form": {
+ "expires": "Galiojimo pasibaigimo data",
+ "submit": "Sukurti"
+ }
+ },
+ "copy": {
+ "title": "Nukopijuoti kvietimą",
+ "description": "Jūsų kvietimas sugeneruotas. Po to, kai šis modalinis langas užsidarys, nebegalėsite nukopijuoti šios nuorodos. Jei nebenorite pakviesti minėto asmens, bet kada galite ištrinti šį kvietimą.",
+ "invitationLink": "Kvietimo nuoroda",
+ "details": {
+ "id": "ID",
+ "token": "Žetonas"
+ },
+ "button": {
+ "close": "Kopijuoti ir atmesti"
+ }
+ },
+ "delete": {
+ "title": "Ištrinti kvietimą",
+ "description": "Ar tikrai norite ištrinti šį kvietimą? Naudotojai, turintys šią nuorodą, nebegalės sukurti paskyros naudodamiesi šia nuoroda."
+ }
+ },
+ "noInvites": "Kvietimų dar nėra."
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/bookmark.json b/public/locales/lt/modules/bookmark.json
new file mode 100644
index 000000000..3c91e49bf
--- /dev/null
+++ b/public/locales/lt/modules/bookmark.json
@@ -0,0 +1,43 @@
+{
+ "descriptor": {
+ "name": "Skirtukas",
+ "description": "Rodo statinį eilučių arba nuorodų sąrašą",
+ "settings": {
+ "title": "Skirtukų nustatymai",
+ "name": {
+ "label": "Valdiklio pavadinimas",
+ "info": "Palikite tuščią, kad pavadinimas būtų paslėptas."
+ },
+ "items": {
+ "label": "Elementai"
+ },
+ "layout": {
+ "label": "",
+ "data": {
+ "autoGrid": "Automatinis tinklelis",
+ "horizontal": "Horizontalus",
+ "vertical": "Vertikalus"
+ }
+ }
+ }
+ },
+ "card": {
+ "noneFound": {
+ "title": "Skirtukų sarašas tuščias",
+ "text": "Naujų elementų įtraukimas į šį sąrašą redagavimo režimu"
+ }
+ },
+ "item": {
+ "validation": {
+ "length": "Ilgis turi būti nuo {{shortest}} iki {{longest}}",
+ "invalidLink": "Negaliojanti nuoroda",
+ "errorMsg": "Neišsaugota, nes buvo patvirtinimo klaidų. Prašome pakoreguoti savo įvestus duomenis"
+ },
+ "name": "Pavadinimas",
+ "url": "URL",
+ "newTab": "Atidaryti naujame skirtuke",
+ "hideHostname": "Paslėpti kompiuterio pavadinimą",
+ "hideIcon": "Paslėpti piktogramą",
+ "delete": ""
+ }
+}
diff --git a/public/locales/lt/modules/calendar.json b/public/locales/lt/modules/calendar.json
new file mode 100644
index 000000000..ca836929e
--- /dev/null
+++ b/public/locales/lt/modules/calendar.json
@@ -0,0 +1,33 @@
+{
+ "descriptor": {
+ "name": "Kalendorius",
+ "description": "Rodo kalendorių su būsimais leidiniais iš palaikomų integracijų.",
+ "settings": {
+ "title": "Kalendoriaus valdiklio nustatymai",
+ "radarrReleaseType": {
+ "label": "\"Radarr\" išleidimo tipas",
+ "data": {
+ "inCinemas": "Kino teatruose",
+ "physicalRelease": "Fizinė",
+ "digitalRelease": "Skaitmeninė"
+ }
+ },
+ "hideWeekDays": {
+ "label": "Paslėpti savaitės dienas"
+ },
+ "showUnmonitored": {
+ "label": "Rodyti neprižiūrimus elementus"
+ },
+ "fontSize": {
+ "label": "Šrifto dydis",
+ "data": {
+ "xs": "Labai mažas",
+ "sm": "Mažas",
+ "md": "Vidutinis",
+ "lg": "Didelis",
+ "xl": "Labai didelis"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/common-media-cards.json b/public/locales/lt/modules/common-media-cards.json
new file mode 100644
index 000000000..992f2e47b
--- /dev/null
+++ b/public/locales/lt/modules/common-media-cards.json
@@ -0,0 +1,6 @@
+{
+ "buttons": {
+ "play": "Groti",
+ "request": "Užklausti"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/common.json b/public/locales/lt/modules/common.json
new file mode 100644
index 000000000..b8f0ada0b
--- /dev/null
+++ b/public/locales/lt/modules/common.json
@@ -0,0 +1,10 @@
+{
+ "settings": {
+ "label": "Nustatymai"
+ },
+ "errors": {
+ "unmappedOptions": {
+ "text": ""
+ }
+ }
+}
diff --git a/public/locales/lt/modules/dashdot.json b/public/locales/lt/modules/dashdot.json
new file mode 100644
index 000000000..053745b7b
--- /dev/null
+++ b/public/locales/lt/modules/dashdot.json
@@ -0,0 +1,118 @@
+{
+ "descriptor": {
+ "name": "Dash.",
+ "description": "Rodomi išorinio prietaiso Dash grafikai. Instance viduje Homarr.",
+ "settings": {
+ "title": "Dash nustatymai. valdiklis",
+ "dashName": {
+ "label": "Dash. Pavadinimas"
+ },
+ "url": {
+ "label": "Dash. URL"
+ },
+ "usePercentages": {
+ "label": "Rodyti procentus"
+ },
+ "columns": {
+ "label": "Rodyti stulpelius"
+ },
+ "graphHeight": {
+ "label": "Grafikų aukštis"
+ },
+ "graphsOrder": {
+ "label": "Grafikai (Išdėstymas)",
+ "storage": {
+ "label": "Saugykla",
+ "enabled": {
+ "label": "Rodyti valdiklyje"
+ },
+ "span": {
+ "label": "Stulpelio apimtis"
+ },
+ "compactView": {
+ "label": "Rodyti kaip tekstą (glaustai)"
+ },
+ "multiView": {
+ "label": "Rodyti kaip kelių diskų peržiūrą"
+ }
+ },
+ "network": {
+ "label": "Tinklas",
+ "enabled": {
+ "label": "Rodyti valdiklyje"
+ },
+ "span": {
+ "label": "Stulpelio apimtis"
+ },
+ "compactView": {
+ "label": "Rodyti kaip tekstą (glaustai)"
+ }
+ },
+ "cpu": {
+ "label": "Procesorius",
+ "enabled": {
+ "label": "Rodyti valdiklyje"
+ },
+ "span": {
+ "label": "Stulpelio apimtis"
+ },
+ "multiView": {
+ "label": "Rodyti kaip kelių branduolių rodinį"
+ }
+ },
+ "ram": {
+ "label": "RAM",
+ "enabled": {
+ "label": "Rodyti valdiklyje"
+ },
+ "span": {
+ "label": "Stulpelio apimtis"
+ }
+ },
+ "gpu": {
+ "label": "Vaizdo plokštė",
+ "enabled": {
+ "label": "Rodyti valdiklyje"
+ },
+ "span": {
+ "label": "Stulpelio apimtis"
+ }
+ }
+ }
+ }
+ },
+ "card": {
+ "title": "Dash.",
+ "errors": {
+ "noService": "Nerasta \"Dash.\" paslauga. Pridėkite ją į \"Homarr\" prietaisų skydelį arba nustatykite \"Dash. URL adresą modulio parinktyse",
+ "noInformation": "Negalima gauti informacijos iš dash. - Ar naudojate naujausią versiją?",
+ "protocolDowngrade": {
+ "title": "Aptiktas protokolo sumažinimas",
+ "text": "Ryšys su jūsų Dash. pavyzdys naudoja HTTP. Tai yra saugumo rizika, nes HTTP yra nešifruotas ir užpuolikai gali piktnaudžiauti šiuo ryšiu. Įsitikinkite, kad Dash. naudoja HTTPS arba sumažinkite Homarr versiją į HTTP (nerekomenduojama)."
+ }
+ },
+ "graphs": {
+ "storage": {
+ "title": "Saugykla",
+ "label": "Saugykla:"
+ },
+ "network": {
+ "title": "Tinklas",
+ "label": "Tinklas:",
+ "metrics": {
+ "download": "Žemyn",
+ "upload": "Aukštyn"
+ }
+ },
+ "cpu": {
+ "title": "Procesorius"
+ },
+ "ram": {
+ "title": "RAM"
+ },
+ "gpu": {
+ "title": "Vaizdo plokštė"
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/date.json b/public/locales/lt/modules/date.json
new file mode 100644
index 000000000..0ecb455be
--- /dev/null
+++ b/public/locales/lt/modules/date.json
@@ -0,0 +1,34 @@
+{
+ "descriptor": {
+ "name": "Data ir Laikas",
+ "description": "Rodo dabartinę datą ir laiką.",
+ "settings": {
+ "title": "Datos ir laiko valdiklio nustatymai",
+ "timezone": {
+ "label": "Laiko juosta",
+ "info": "Pasirinkite savo laiko juostos pavadinimą, savo rasite čia: "
+ },
+ "customTitle": {
+ "label": "Miesto pavadinimas arba pasirinktinis pavadinimas"
+ },
+ "display24HourFormat": {
+ "label": "Rodyti visą laiką (24 val.)"
+ },
+ "dateFormat": {
+ "label": "Datos formatavimas",
+ "data": {
+ "hide": "Paslėpti datą"
+ }
+ },
+ "titleState": {
+ "label": "Laikrodžio pavadinimas",
+ "info": "Pasirinktinis pavadinimas ir laiko juostos kodas gali būti rodomi valdiklyje.
Taip pat galite rodyti tik miestą, nerodyti nė vieno,
arba net rodyti tik laiko juostą, kai pasirenkami abu pavadinimai, bet nepateikiamas pavadinimas.",
+ "data": {
+ "both": "Pavadinimas ir laiko juosta",
+ "city": "Tik pavadinimas",
+ "none": "Nėra"
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/dlspeed.json b/public/locales/lt/modules/dlspeed.json
new file mode 100644
index 000000000..4882869c1
--- /dev/null
+++ b/public/locales/lt/modules/dlspeed.json
@@ -0,0 +1,35 @@
+{
+ "descriptor": {
+ "name": "Atsisiuntimo greitis",
+ "description": "Rodo palaikomų integracijų atsisiuntimo ir išsiuntimo greitį."
+ },
+ "card": {
+ "table": {
+ "header": {
+ "name": "Pavadinimas",
+ "size": "",
+ "download": "Žemyn",
+ "upload": "Aukštyn",
+ "estimatedTimeOfArrival": "",
+ "progress": ""
+ },
+ "body": {
+ "nothingFound": "Torrentų nerasta"
+ }
+ },
+ "lineChart": {
+ "title": "Dabartinis atsisiuntimo greitis",
+ "download": "Atsiuntimas: {{download}}",
+ "upload": "Įkelimas: {{upload}}",
+ "timeSpan": "Prieš {{seconds}} sekundžių",
+ "totalDownload": "Atsiuntimas: {{download}}/s",
+ "totalUpload": "Įkelimas: {{upload}}/s"
+ },
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": "Pridėti atsisiuntimo paslaugą, kad galėtumėte peržiūrėti dabartinius atsisiuntimus"
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/dns-hole-controls.json b/public/locales/lt/modules/dns-hole-controls.json
new file mode 100644
index 000000000..e92cb9160
--- /dev/null
+++ b/public/locales/lt/modules/dns-hole-controls.json
@@ -0,0 +1,18 @@
+{
+ "descriptor": {
+ "name": "DNS hole valdymas",
+ "description": "Valdykite PiHole arba AdGuard iš savo prietaisų skydelio",
+ "settings": {
+ "title": "DNS hole valdymo nustatymai",
+ "showToggleAllButtons": {
+ "label": "Rodyti mygtukus „Įjungti / išjungti “"
+ }
+ },
+ "errors": {
+ "general": {
+ "title": "Nepavyko rasti DNS hole",
+ "text": "Kilo problema jungiantis prie jūsų DNS hole. Patikrinkite savo konfigūraciją / integraciją (-as)."
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/dns-hole-summary.json b/public/locales/lt/modules/dns-hole-summary.json
new file mode 100644
index 000000000..7d20a357c
--- /dev/null
+++ b/public/locales/lt/modules/dns-hole-summary.json
@@ -0,0 +1,28 @@
+{
+ "descriptor": {
+ "name": "DNS hole santrauka",
+ "description": "Rodomi svarbūs PiHole arba AdGuard duomenis",
+ "settings": {
+ "title": "DNS hole santraukos nustatymai",
+ "usePiHoleColors": {
+ "label": "Naudokite spalvas iš PiHole"
+ },
+ "layout": {
+ "label": "",
+ "data": {
+ "grid": "2 po 2",
+ "row": "Horizontalus",
+ "column": "Vertikalus"
+ }
+ }
+ }
+ },
+ "card": {
+ "metrics": {
+ "domainsOnAdlist": "Domenai adlistų sąrašuose",
+ "queriesToday": "Užklausos šiandien",
+ "queriesBlockedTodayPercentage": "Šiandien užblokuota",
+ "queriesBlockedToday": "Šiandien užblokuota"
+ }
+ }
+}
diff --git a/public/locales/lt/modules/docker.json b/public/locales/lt/modules/docker.json
new file mode 100644
index 000000000..96b040bc3
--- /dev/null
+++ b/public/locales/lt/modules/docker.json
@@ -0,0 +1,83 @@
+{
+ "descriptor": {
+ "name": "Docker",
+ "description": "Leidžia lengvai matyti ir valdyti visus Docker konteinerius."
+ },
+ "search": {
+ "placeholder": "Ieškokite pagal konteinerio arba nuotraukos pavadinimą"
+ },
+ "table": {
+ "header": {
+ "name": "Pavadinimas",
+ "image": "Nuotrauka",
+ "ports": "Prievadai",
+ "state": "Būsena"
+ },
+ "body": {
+ "portCollapse": "{{ports}} daugiau"
+ },
+ "states": {
+ "running": "Veikia",
+ "created": "Sukurta",
+ "stopped": "Sustabdyta",
+ "unknown": "Nežinoma"
+ }
+ },
+ "actionBar": {
+ "addService": {
+ "title": "Įtraukti programėlę",
+ "message": "Pridėti programą prie Homarr"
+ },
+ "restart": {
+ "title": "Paleisti iš naujo"
+ },
+ "stop": {
+ "title": "Sustabdyti"
+ },
+ "start": {
+ "title": "Paleisti"
+ },
+ "refreshData": {
+ "title": "Atnaujinti duomenis"
+ },
+ "remove": {
+ "title": "Pašalinti"
+ },
+ "addToHomarr": {
+ "title": "Pridėti prie Homarr"
+ }
+ },
+ "actions": {
+ "start": {
+ "start": "Paleidžiama",
+ "end": "Paleista"
+ },
+ "stop": {
+ "start": "Stabdoma",
+ "end": "Sustabdyta"
+ },
+ "restart": {
+ "start": "Paleidžiama iš naujo",
+ "end": "Paleista iš naujo"
+ },
+ "remove": {
+ "start": "Trinamas",
+ "end": "Pašalinta"
+ }
+ },
+ "errors": {
+ "integrationFailed": {
+ "title": "Docker integravimas nepavyko",
+ "message": "Ar pamiršote prijungti docker lizdą?"
+ },
+ "unknownError": {
+ "title": "Įvyko klaida"
+ },
+ "oneServiceAtATime": {
+ "title": "Vienu metu pridėkite tik vieną programą ar paslaugą!"
+ }
+ },
+ "actionIcon": {
+ "tooltip": "Docker"
+ }
+}
diff --git a/public/locales/lt/modules/health-monitoring.json b/public/locales/lt/modules/health-monitoring.json
new file mode 100644
index 000000000..083c6f96b
--- /dev/null
+++ b/public/locales/lt/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Sistemos būklės stebėjimas",
+ "description": "Informacija apie jūsų NAS",
+ "settings": {
+ "title": "Sistemos būklės stebėjimas",
+ "fahrenheit": {
+ "label": "Farenheitas"
+ }
+ }
+ },
+ "cpu": {
+ "label": "Procesorius",
+ "load": "Apkrovos vidurkis",
+ "minute": "{{minute}} minutė"
+ },
+ "memory": {
+ "label": "Atmintis",
+ "totalMem": "Bendra atmintis: {{total}}GB",
+ "available": "Galimi: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Failų sistema",
+ "available": "Galimi: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Veikimo laikas",
+ "updates": "Atnaujinimai",
+ "reboot": "Paleisti iš naujo"
+ },
+ "errors": {
+ "general": {
+ "title": "Nepavyko rasti jūsų NAS",
+ "text": "Prisijungiant prie NAS kilo problema. Patikrinkite savo konfigūraciją / integraciją (-as)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/iframe.json b/public/locales/lt/modules/iframe.json
new file mode 100644
index 000000000..5310fe9ea
--- /dev/null
+++ b/public/locales/lt/modules/iframe.json
@@ -0,0 +1,45 @@
+{
+ "descriptor": {
+ "name": "iFrame",
+ "description": "Įterpkite bet kokį turinį iš interneto. Kai kuriose svetainėse prieiga gali būti ribojama.",
+ "settings": {
+ "title": "iFrame nustatymai",
+ "embedUrl": {
+ "label": "Įterpimo URL"
+ },
+ "allowFullScreen": {
+ "label": "Leisti per visą ekraną"
+ },
+ "allowTransparency": {
+ "label": "Suteikti skaidrumo"
+ },
+ "allowScrolling": {
+ "label": "Leisti slinkti"
+ },
+ "allowPayment": {
+ "label": "Leisti mokėti"
+ },
+ "allowAutoPlay": {
+ "label": "Leisti automatinį paleidimą"
+ },
+ "allowMicrophone": {
+ "label": "Įgalinti mikrofoną"
+ },
+ "allowCamera": {
+ "label": "Leisti kamerą"
+ },
+ "allowGeolocation": {
+ "label": "Leisti nustatyti geografinę buvimo vietą"
+ }
+ }
+ },
+ "card": {
+ "errors": {
+ "noUrl": {
+ "title": "Klaidingas URL",
+ "text": "Įsitikinkite, kad valdiklio konfigūracijoje įvedėte galiojantį adresą."
+ },
+ "browserSupport": "Jūsų naršyklė nepalaiko iframe. Atnaujinkite savo naršyklę."
+ }
+ }
+}
diff --git a/public/locales/lt/modules/indexer-manager.json b/public/locales/lt/modules/indexer-manager.json
new file mode 100644
index 000000000..a210e0566
--- /dev/null
+++ b/public/locales/lt/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Indeksavimo tvarkytuvo būsena",
+ "description": "Būsena apie jūsų indeksavimo įrenginius",
+ "settings": {
+ "title": "Indeksavimo tvarkytuvo būsena"
+ }
+ },
+ "indexersStatus": {
+ "title": "Indeksavimo tvarkyklė",
+ "testAllButton": "Išbandyk viską"
+ },
+ "errors": {
+ "general": {
+ "title": "Nepavyksta rasti indeksuotojo tvarkytuvo",
+ "text": "Prisijungiant prie indeksavimo tvarkyklės kilo problema. Patikrinkite savo konfigūraciją / integraciją (-as)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/media-requests-list.json b/public/locales/lt/modules/media-requests-list.json
new file mode 100644
index 000000000..31771feee
--- /dev/null
+++ b/public/locales/lt/modules/media-requests-list.json
@@ -0,0 +1,35 @@
+{
+ "descriptor": {
+ "name": "Medijų užklausos",
+ "description": "Peržiūrėkite visų medijų užklausų iš \"Overseerr\" arba \"Jellyseerr\" sąrašą",
+ "settings": {
+ "title": "Medijų užklausų sąrašas",
+ "replaceLinksWithExternalHost": {
+ "label": "Pakeiskite nuorodas išoriniu pagrindiniu kompiuteriu"
+ },
+ "openInNewTab": {
+ "label": "Atidaryti naujame skirtuke"
+ }
+ }
+ },
+ "noRequests": "Užklausų nerasta. Įsitikinkite, kad teisingai sukonfigūravote savo programas.",
+ "state": {
+ "approved": "Patvirtinta",
+ "pendingApproval": "Laukia patvirtinimo",
+ "declined": "Atmesta",
+ "available": "Galima",
+ "partial": "Dalis"
+ },
+ "tooltips": {
+ "approve": "Patvirtinti visas užklausas",
+ "decline": "Atmesti visas užklausas",
+ "approving": "Patvirtinama užklausa..."
+ },
+ "mutation": {
+ "approving": "Patvirtinama",
+ "declining": "Atmetama",
+ "request": "užklausa...",
+ "approved": "Užklausa buvo patvirtinta!",
+ "declined": "Užklausa buvo atmesta!"
+ }
+}
diff --git a/public/locales/lt/modules/media-requests-stats.json b/public/locales/lt/modules/media-requests-stats.json
new file mode 100644
index 000000000..e66374772
--- /dev/null
+++ b/public/locales/lt/modules/media-requests-stats.json
@@ -0,0 +1,27 @@
+{
+ "descriptor": {
+ "name": "Medijų užklausų statistikos",
+ "description": "Statistikos apie jūsų medijų užklausas",
+ "settings": {
+ "title": "Medijų užklausų statistikos",
+ "replaceLinksWithExternalHost": {
+ "label": "Pakeiskite nuorodas išoriniu pagrindiniu kompiuteriu"
+ },
+ "openInNewTab": {
+ "label": "Atidaryti naujame skirtuke"
+ }
+ }
+ },
+ "mediaStats": {
+ "title": "Medijų statistikos",
+ "pending": "Laukia patvirtinimo",
+ "tvRequests": "TV užklausos",
+ "movieRequests": "Filmų užklausos",
+ "approved": "Jau patvirtinta",
+ "totalRequests": "Iš viso"
+ },
+ "userStats": {
+ "title": "Top vartotojai",
+ "requests": "Užklausos: {{number}}"
+ }
+}
diff --git a/public/locales/lt/modules/media-server.json b/public/locales/lt/modules/media-server.json
new file mode 100644
index 000000000..f0a199d7d
--- /dev/null
+++ b/public/locales/lt/modules/media-server.json
@@ -0,0 +1,25 @@
+{
+ "descriptor": {
+ "name": "Medijų serveris",
+ "description": "Bendraukite su savo Jellyfin arba Plex medijos serveriu",
+ "settings": {
+ "title": "Medijos serverio valdiklio nustatymai"
+ }
+ },
+ "loading": "Įkeliami srautai",
+ "card": {
+ "table": {
+ "header": {
+ "session": "Sesija",
+ "user": "Vartotojas",
+ "currentlyPlaying": "Dabar grojama"
+ }
+ },
+ "errors": {
+ "general": {
+ "title": "Nepavyko įkelti turinio",
+ "text": "Nepavyksta gauti informacijos iš serverio. Išsamesnės informacijos ieškokite logs"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/notebook.json b/public/locales/lt/modules/notebook.json
new file mode 100644
index 000000000..813bac99d
--- /dev/null
+++ b/public/locales/lt/modules/notebook.json
@@ -0,0 +1,59 @@
+{
+ "descriptor": {
+ "name": "Užrašai",
+ "description": "Pažymėjimu pagrįstas interaktyvus valdiklis, skirtas užrašams užsirašyti!",
+ "settings": {
+ "title": "Užrašų knygelės valdiklio nustatymai",
+ "showToolbar": {
+ "label": "Rodyti įrankių juostą, padedančią rašyti žymėjimą"
+ },
+ "allowReadOnlyCheck": {
+ "label": "Leidimas tikrinti tik skaitymo režimu"
+ },
+ "content": {
+ "label": "Užrašų knygelės turinys"
+ }
+ }
+ },
+ "card": {
+ "controls": {
+ "bold": "Paryškintas",
+ "italic": "Pasviręs",
+ "strikethrough": "Perbrauktas",
+ "underline": "Pabrauktas",
+ "colorText": "Spalvotas tekstas",
+ "colorHighlight": "Spalvotas paryškintas tekstas",
+ "code": "Kodas",
+ "clear": "Išvalyti formatavimą",
+ "heading": "Antraštė {{level}}",
+ "align": "Teksto lygiavimas: {{position}}",
+ "blockquote": "Kabutės",
+ "horizontalLine": "Horizontali linija",
+ "bulletList": "Suženklintasis sąrašas",
+ "orderedList": "Surikiuotas sąrašas",
+ "checkList": "Sąrašas",
+ "increaseIndent": "Padidinti įtrauką",
+ "decreaseIndent": "Sumažinti įtrauką",
+ "link": "Nuoroda",
+ "unlink": "Pašalinti nuorodą",
+ "image": "Įterpti paveikslėlį",
+ "addTable": "Pridėti lentelę",
+ "deleteTable": "Ištrinti lentelę",
+ "colorCell": "Spalva",
+ "mergeCell": "Perjungti cell sujungimą",
+ "addColumnLeft": "Pridėti stulpelį prieš",
+ "addColumnRight": "Pridėti stulpelį po",
+ "deleteColumn": "Naikinti stulpelį",
+ "addRowTop": "Pridėti eilutę prieš",
+ "addRowBelow": "Pridėti eilutę po",
+ "deleteRow": "Naikinti eilutę"
+ },
+ "modals": {
+ "clearColor": "Pašalinti spalvą",
+ "source": "Šaltinis",
+ "widthPlaceholder": "Vertė % arba pikseliais",
+ "columns": "Stulpeliai",
+ "rows": "Eilutės"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/overseerr.json b/public/locales/lt/modules/overseerr.json
new file mode 100644
index 000000000..cb4e98bef
--- /dev/null
+++ b/public/locales/lt/modules/overseerr.json
@@ -0,0 +1,30 @@
+{
+ "descriptor": {
+ "name": "Overseerr",
+ "description": "Leidžia ieškoti ir pridėti medijos iš Overseerr arba Jellyseerr."
+ },
+ "popup": {
+ "item": {
+ "buttons": {
+ "askFor": "Prašyti {{title}}",
+ "cancel": "Atšaukti",
+ "request": "Užklausti"
+ },
+ "alerts": {
+ "automaticApproval": {
+ "title": "API rakto naudojimas",
+ "text": "Šis prašymas bus automatiškai patvirtintas"
+ }
+ }
+ },
+ "seasonSelector": {
+ "caption": "Pažymėkite sezonus, kuriuos norite atsisiųsti",
+ "table": {
+ "header": {
+ "season": "Sezonas",
+ "numberOfEpisodes": "Epizodų skaičius"
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/ping.json b/public/locales/lt/modules/ping.json
new file mode 100644
index 000000000..6d1097732
--- /dev/null
+++ b/public/locales/lt/modules/ping.json
@@ -0,0 +1,11 @@
+{
+ "descriptor": {
+ "name": "Ping",
+ "description": "Rodo būsenos indikatorių, priklausomai nuo konkretaus URL adreso HTTP atsakymo kodo."
+ },
+ "states": {
+ "online": "Įjungtas {{response}}",
+ "offline": "Išjungtas {{response}}",
+ "loading": "Kraunama..."
+ }
+}
diff --git a/public/locales/lt/modules/rss.json b/public/locales/lt/modules/rss.json
new file mode 100644
index 000000000..126a4a213
--- /dev/null
+++ b/public/locales/lt/modules/rss.json
@@ -0,0 +1,40 @@
+{
+ "descriptor": {
+ "name": "RSS valdiklis",
+ "description": "RSS valdiklis leidžia rodyti RSS informacijos santraukas prietaisų skydelyje.",
+ "settings": {
+ "title": "RSS valdiklio nustatymai",
+ "rssFeedUrl": {
+ "label": "RSS kanalų URL adresai",
+ "description": "RSS kanalų, kuriuos norite rodyti, URL adresai."
+ },
+ "refreshInterval": {
+ "label": "Atnaujinimo intervalas (minutėmis)"
+ },
+ "dangerousAllowSanitizedItemContent": {
+ "label": "Leisti HTML formatavimą (Pavojinga)",
+ "info": "Leidimas formatuoti HTML iš išorės gali būti pavojingas.
Įsitikinkite, kad kanalas yra iš patikimo šaltinio."
+ },
+ "textLinesClamp": {
+ "label": "Teksto linijų spaustukas"
+ },
+ "sortByPublishDateAscending": {
+ "label": "Rūšiuoti pagal paskelbimo datą (didėjančia tvarka)"
+ },
+ "sortPostsWithoutPublishDateToTheTop": {
+ "label": "Įdėkite pranešimus be paskelbimo datos į viršų"
+ },
+ "maximumAmountOfPosts": {
+ "label": "Didžiausias pranešimų skaičius"
+ }
+ },
+ "card": {
+ "errors": {
+ "general": {
+ "title": "Nepavyksta gauti RSS kanalo",
+ "text": "Kilo problema, susijusi su RSS kanalo pasiekiamumu. Įsitikinkite, kad teisingai sukonfigūravote RSS kanalą naudodami galiojantį URL. URL turėtų atitikti oficialią specifikaciją. Atnaujinus kanalą gali tekti atnaujinti prietaisų skydelį."
+ }
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/search.json b/public/locales/lt/modules/search.json
new file mode 100644
index 000000000..ea9c6c348
--- /dev/null
+++ b/public/locales/lt/modules/search.json
@@ -0,0 +1,30 @@
+{
+ "descriptor": {
+ "name": "Paieškos laukelis",
+ "description": "Paieškos juosta, kurioje galite ieškoti pasirinktoje paieškos sistemoje, YouTube ir palaikomose integracijose."
+ },
+ "input": {
+ "placeholder": "Paieška internete..."
+ },
+ "switched-to": "Perjungta į",
+ "searchEngines": {
+ "search": {
+ "name": "Tinklas",
+ "description": "Ieškoti..."
+ },
+ "youtube": {
+ "name": "YouTube",
+ "description": "Ieškokite Youtube"
+ },
+ "torrents": {
+ "name": "Torrentai",
+ "description": "Ieškoti torentų"
+ },
+ "overseerr": {
+ "name": "Overseerr",
+ "description": "Ieškokite filmų ir TV laidų Overseerr"
+ }
+ },
+ "tip": "Paieškos juostą galite pasirinkti naudodami sparčiąją nuorodą ",
+ "switchedSearchEngine": "Pereita prie paieškos su {{searchEngine}}"
+}
diff --git a/public/locales/lt/modules/smart-home/entity-state.json b/public/locales/lt/modules/smart-home/entity-state.json
new file mode 100644
index 000000000..9222d7443
--- /dev/null
+++ b/public/locales/lt/modules/smart-home/entity-state.json
@@ -0,0 +1,29 @@
+{
+ "entityNotFound": "Subjektas nerastas",
+ "descriptor": {
+ "name": "Home Assistant subjektas",
+ "description": "Dabartinė \"Home Assistant\" subjekto būsena",
+ "settings": {
+ "title": "Subjekto būsena",
+ "entityId": {
+ "label": "Subjekto ID",
+ "info": "Unikalus subjekto ID programoje \"Home Assistant\". Kopijuokite spustelėdami ant subjekto > Spustelėkite piktogramą \"cog\" > Spustelėkite mygtuką \"Kopijuoti\" ties \"Subjekto ID\". Kai kurie pasirinktiniai subjektai gali būti nepalaikomi."
+ },
+ "appendUnit": {
+ "label": "Pridėti matavimo vienetą",
+ "info": "Prie esybės būsenos pridėti matavimo vieneto atributą."
+ },
+ "automationId": {
+ "label": "Neprivalomas automatizavimo ID",
+ "info": "Jūsų unikalus automatizavimo ID. Visada prasideda automation.XXXXX. Jei nenustatytas, valdiklis nebus paspaudžiamas ir bus rodoma tik būsena. Paspaudus, bus atnaujinta esybės būsena."
+ },
+ "displayName": {
+ "label": "Rodomas vardas"
+ },
+ "displayFriendlyName": {
+ "label": "Rodyti draugišką pavadinimą",
+ "info": "Rodyti draugišką vardą iš \"Home Assistant\", o ne rodomą vardą"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/smart-home/trigger-automation.json b/public/locales/lt/modules/smart-home/trigger-automation.json
new file mode 100644
index 000000000..437d853e3
--- /dev/null
+++ b/public/locales/lt/modules/smart-home/trigger-automation.json
@@ -0,0 +1,16 @@
+{
+ "descriptor": {
+ "name": "\"Home Assistant\" automatizavimas",
+ "description": "Vykdyti automatizavimą",
+ "settings": {
+ "title": "Vykdyti automatizavimą",
+ "automationId": {
+ "label": "Automatizavimo ID",
+ "info": "Jūsų unikalus automatizavimo ID. Visada prasideda automation.XXXXX."
+ },
+ "displayName": {
+ "label": "Rodomas vardas"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/torrents-status.json b/public/locales/lt/modules/torrents-status.json
new file mode 100644
index 000000000..2e259d5fd
--- /dev/null
+++ b/public/locales/lt/modules/torrents-status.json
@@ -0,0 +1,103 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "refreshInterval": {
+ "label": ""
+ },
+ "displayCompletedTorrents": {
+ "label": ""
+ },
+ "displayActiveTorrents": {
+ "label": ""
+ },
+ "speedLimitOfActiveTorrents": {
+ "label": ""
+ },
+ "displayStaleTorrents": {
+ "label": ""
+ },
+ "labelFilterIsWhitelist": {
+ "label": ""
+ },
+ "labelFilter": {
+ "label": "",
+ "description": ""
+ },
+ "displayRatioWithFilter": {
+ "label": "",
+ "info": ""
+ }
+ }
+ },
+ "card": {
+ "footer": {
+ "error": "",
+ "lastUpdated": "",
+ "ratioGlobal": "",
+ "ratioWithFilter": ""
+ },
+ "table": {
+ "header": {
+ "isCompleted": "",
+ "name": "Pavadinimas",
+ "dateAdded": "",
+ "size": "",
+ "download": "Žemyn",
+ "upload": "Aukštyn",
+ "estimatedTimeOfArrival": "",
+ "progress": "",
+ "totalUploaded": "",
+ "totalDownloaded": "",
+ "ratio": "",
+ "seeds": "",
+ "peers": "",
+ "label": "",
+ "state": "Būsena",
+ "stateMessage": ""
+ },
+ "item": {
+ "text": ""
+ },
+ "body": {
+ "nothingFound": "Torrentų nerasta",
+ "filterHidingItems": ""
+ }
+ },
+ "lineChart": {
+ "title": "Dabartinis atsisiuntimo greitis",
+ "download": "Atsiuntimas: {{download}}",
+ "upload": "Įkelimas: {{upload}}",
+ "timeSpan": "Prieš {{seconds}} sekundžių",
+ "totalDownload": "Atsiuntimas: {{download}}/s",
+ "totalUpload": "Įkelimas: {{upload}}/s"
+ },
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": ""
+ },
+ "generic": {
+ "title": "",
+ "text": ""
+ }
+ },
+ "loading": {
+ "title": "",
+ "description": ""
+ },
+ "popover": {
+ "introductionPrefix": "",
+ "metrics": {
+ "queuePosition": "",
+ "progress": "",
+ "totalSelectedSize": "",
+ "state": "",
+ "ratio": "",
+ "completed": ""
+ }
+ }
+ }
+}
diff --git a/public/locales/lt/modules/usenet.json b/public/locales/lt/modules/usenet.json
new file mode 100644
index 000000000..f6c3f42dd
--- /dev/null
+++ b/public/locales/lt/modules/usenet.json
@@ -0,0 +1,49 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": ""
+ },
+ "card": {
+ "errors": {
+ "noDownloadClients": {
+ "title": "",
+ "text": ""
+ }
+ }
+ },
+ "tabs": {
+ "queue": "",
+ "history": ""
+ },
+ "info": {
+ "sizeLeft": "",
+ "paused": ""
+ },
+ "queue": {
+ "header": {
+ "name": "Pavadinimas",
+ "size": "",
+ "eta": "",
+ "progress": ""
+ },
+ "empty": "",
+ "error": {
+ "title": "",
+ "message": ""
+ },
+ "paused": ""
+ },
+ "history": {
+ "header": {
+ "name": "Pavadinimas",
+ "size": "",
+ "duration": ""
+ },
+ "empty": "",
+ "error": {
+ "title": "",
+ "message": ""
+ },
+ "paused": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/video-stream.json b/public/locales/lt/modules/video-stream.json
new file mode 100644
index 000000000..539daa1c4
--- /dev/null
+++ b/public/locales/lt/modules/video-stream.json
@@ -0,0 +1,24 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "FeedUrl": {
+ "label": ""
+ },
+ "autoPlay": {
+ "label": ""
+ },
+ "muted": {
+ "label": ""
+ },
+ "controls": {
+ "label": ""
+ }
+ }
+ },
+ "errors": {
+ "invalidStream": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/modules/weather.json b/public/locales/lt/modules/weather.json
new file mode 100644
index 000000000..47970743d
--- /dev/null
+++ b/public/locales/lt/modules/weather.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "displayInFahrenheit": {
+ "label": ""
+ },
+ "displayCityName": {
+ "label": ""
+ },
+ "location": {
+ "label": ""
+ }
+ }
+ },
+ "card": {
+ "weatherDescriptions": {
+ "clear": "",
+ "mainlyClear": "",
+ "fog": "",
+ "drizzle": "",
+ "freezingDrizzle": "",
+ "rain": "",
+ "freezingRain": "",
+ "snowFall": "",
+ "snowGrains": "",
+ "rainShowers": "",
+ "snowShowers": "",
+ "thunderstorm": "",
+ "thunderstormWithHail": "",
+ "unknown": "Nežinoma"
+ }
+ },
+ "error": ""
+}
diff --git a/public/locales/lt/password-requirements.json b/public/locales/lt/password-requirements.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/lt/password-requirements.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/lt/settings/common.json b/public/locales/lt/settings/common.json
new file mode 100644
index 000000000..83129f237
--- /dev/null
+++ b/public/locales/lt/settings/common.json
@@ -0,0 +1,38 @@
+{
+ "title": "Nustatymai",
+ "tooltip": "Nustatymai",
+ "tabs": {
+ "common": "",
+ "customizations": ""
+ },
+ "tips": {
+ "configTip": ""
+ },
+ "credits": {
+ "madeWithLove": "",
+ "thirdPartyContent": "",
+ "thirdPartyContentTable": {
+ "dependencyName": "",
+ "dependencyVersion": ""
+ }
+ },
+ "grow": "",
+ "layout": {
+ "preview": {
+ "title": "",
+ "subtitle": ""
+ },
+ "divider": "",
+ "main": "",
+ "sidebar": "",
+ "cannotturnoff": "",
+ "dashboardlayout": "",
+ "enablersidebar": "",
+ "enablelsidebar": "",
+ "enablesearchbar": "",
+ "enabledocker": "",
+ "enableping": "",
+ "enablelsidebardesc": "",
+ "enablersidebardesc": ""
+ }
+}
diff --git a/public/locales/lt/settings/customization/access.json b/public/locales/lt/settings/customization/access.json
new file mode 100644
index 000000000..cc4d17f61
--- /dev/null
+++ b/public/locales/lt/settings/customization/access.json
@@ -0,0 +1,6 @@
+{
+ "allowGuests": {
+ "label": "",
+ "description": ""
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/settings/customization/general.json b/public/locales/lt/settings/customization/general.json
new file mode 100644
index 000000000..1be4b818f
--- /dev/null
+++ b/public/locales/lt/settings/customization/general.json
@@ -0,0 +1,29 @@
+{
+ "text": "",
+ "accordeon": {
+ "layout": {
+ "name": "",
+ "description": ""
+ },
+ "gridstack": {
+ "name": "",
+ "description": ""
+ },
+ "pageMetadata": {
+ "name": "",
+ "description": ""
+ },
+ "appereance": {
+ "name": "Išvaizda",
+ "description": ""
+ },
+ "accessibility": {
+ "name": "",
+ "description": ""
+ },
+ "access": {
+ "name": "",
+ "description": ""
+ }
+ }
+}
diff --git a/public/locales/lt/settings/customization/gridstack.json b/public/locales/lt/settings/customization/gridstack.json
new file mode 100644
index 000000000..18c3d8233
--- /dev/null
+++ b/public/locales/lt/settings/customization/gridstack.json
@@ -0,0 +1,10 @@
+{
+ "columnsCount": {
+ "labelPreset": "",
+ "descriptionPreset": "",
+ "descriptionExceedsPreset": ""
+ },
+ "unsavedChanges": "",
+ "applyChanges": "",
+ "defaultValues": ""
+}
\ No newline at end of file
diff --git a/public/locales/lt/settings/customization/opacity-selector.json b/public/locales/lt/settings/customization/opacity-selector.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/lt/settings/customization/opacity-selector.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/lt/settings/customization/page-appearance.json b/public/locales/lt/settings/customization/page-appearance.json
new file mode 100644
index 000000000..2c806f677
--- /dev/null
+++ b/public/locales/lt/settings/customization/page-appearance.json
@@ -0,0 +1,50 @@
+{
+ "pageTitle": {
+ "label": "",
+ "description": ""
+ },
+ "metaTitle": {
+ "label": "",
+ "description": ""
+ },
+ "logo": {
+ "label": "",
+ "description": ""
+ },
+ "favicon": {
+ "label": "",
+ "description": ""
+ },
+ "background": {
+ "label": ""
+ },
+ "backgroundImageAttachment": {
+ "label": "",
+ "options": {
+ "fixed": "",
+ "scroll": ""
+ }
+ },
+ "backgroundImageSize": {
+ "label": "",
+ "options": {
+ "cover": "",
+ "contain": ""
+ }
+ },
+ "backgroundImageRepeat": {
+ "label": "",
+ "options": {
+ "repeat": "",
+ "no-repeat": "",
+ "repeat-x": "",
+ "repeat-y": ""
+ }
+ },
+ "customCSS": {
+ "label": "",
+ "description": "",
+ "placeholder": "",
+ "applying": ""
+ }
+}
diff --git a/public/locales/lt/settings/customization/shade-selector.json b/public/locales/lt/settings/customization/shade-selector.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/public/locales/lt/settings/customization/shade-selector.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/public/locales/lt/tools/docker.json b/public/locales/lt/tools/docker.json
new file mode 100644
index 000000000..c224c68ec
--- /dev/null
+++ b/public/locales/lt/tools/docker.json
@@ -0,0 +1,32 @@
+{
+ "title": "Docker",
+ "alerts": {
+ "notConfigured": {
+ "text": ""
+ }
+ },
+ "modals": {
+ "selectBoard": {
+ "title": "",
+ "text": "",
+ "form": {
+ "board": {
+ "label": ""
+ },
+ "submit": ""
+ }
+ }
+ },
+ "notifications": {
+ "selectBoard": {
+ "success": {
+ "title": "",
+ "message": ""
+ },
+ "error": {
+ "title": "",
+ "message": ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/user/preferences.json b/public/locales/lt/user/preferences.json
new file mode 100644
index 000000000..6c0e93d28
--- /dev/null
+++ b/public/locales/lt/user/preferences.json
@@ -0,0 +1,48 @@
+{
+ "metaTitle": "",
+ "pageTitle": "",
+ "boards": {
+ "defaultBoard": {
+ "label": ""
+ }
+ },
+ "accessibility": {
+ "title": "",
+ "disablePulse": {
+ "label": "",
+ "description": ""
+ },
+ "replaceIconsWithDots": {
+ "label": "",
+ "description": ""
+ }
+ },
+ "localization": {
+ "language": {
+ "label": ""
+ },
+ "firstDayOfWeek": {
+ "label": "",
+ "options": {
+ "monday": "",
+ "saturday": "",
+ "sunday": ""
+ }
+ }
+ },
+ "searchEngine": {
+ "title": "",
+ "custom": "",
+ "newTab": {
+ "label": ""
+ },
+ "autoFocus": {
+ "label": "",
+ "description": ""
+ },
+ "template": {
+ "label": "",
+ "description": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lt/widgets/draggable-list.json b/public/locales/lt/widgets/draggable-list.json
new file mode 100644
index 000000000..5d27e99ad
--- /dev/null
+++ b/public/locales/lt/widgets/draggable-list.json
@@ -0,0 +1,7 @@
+{
+ "noEntries": {
+ "title": "",
+ "text": ""
+ },
+ "buttonAdd": ""
+}
diff --git a/public/locales/lt/widgets/error-boundary.json b/public/locales/lt/widgets/error-boundary.json
new file mode 100644
index 000000000..ce74ad0fc
--- /dev/null
+++ b/public/locales/lt/widgets/error-boundary.json
@@ -0,0 +1,14 @@
+{
+ "card": {
+ "title": "",
+ "buttons": {
+ "details": "",
+ "tryAgain": ""
+ }
+ },
+ "modal": {
+ "text": "",
+ "label": "",
+ "reportButton": ""
+ }
+}
diff --git a/public/locales/lt/zod.json b/public/locales/lt/zod.json
new file mode 100644
index 000000000..c3b30750f
--- /dev/null
+++ b/public/locales/lt/zod.json
@@ -0,0 +1,22 @@
+{
+ "errors": {
+ "default": "",
+ "required": "Šis laukelis yra privalomas",
+ "string": {
+ "startsWith": "",
+ "endsWith": "",
+ "includes": ""
+ },
+ "tooSmall": {
+ "string": "",
+ "number": ""
+ },
+ "tooBig": {
+ "string": "",
+ "number": ""
+ },
+ "custom": {
+ "passwordMatch": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lv/modules/health-monitoring.json b/public/locales/lv/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/lv/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lv/modules/indexer-manager.json b/public/locales/lv/modules/indexer-manager.json
new file mode 100644
index 000000000..901ea35a5
--- /dev/null
+++ b/public/locales/lv/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Indeksētāja pārvaldnieka statuss",
+ "description": "Statuss par jūsu indeksētājiem",
+ "settings": {
+ "title": "Indeksētāja pārvaldnieka statuss"
+ }
+ },
+ "indexersStatus": {
+ "title": "Indexer pārvaldnieks",
+ "testAllButton": "Pārbaudīt visu"
+ },
+ "errors": {
+ "general": {
+ "title": "Nevar atrast indeksētāja pārvaldnieku",
+ "text": "Savienojoties ar indeksētāja pārvaldnieku radās problēma. Lūdzu, pārbaudiet savu konfigurāciju/integrāciju(-as)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/lv/modules/smart-home/entity-state.json b/public/locales/lv/modules/smart-home/entity-state.json
index f3e41152f..e2da207b3 100644
--- a/public/locales/lv/modules/smart-home/entity-state.json
+++ b/public/locales/lv/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "Vienības ID",
"info": "Unikāls vienības ID pakalpojumā Home Assistant. Ievietojiet starpliktuvē, noklikšķinot uz vienību > Noklikšķiniet uz zobrata ikonu > Noklikšķiniet uz kopēšanas pogu pie \"Vienības ID\". Dažas pielāgotas vienības var nebūt atbalstītas."
},
+ "appendUnit": {
+ "label": "Pievienot mērvienību",
+ "info": "Pievieno mērvienības atribūtu vienības stāvoklim."
+ },
"automationId": {
"label": "Izvēles automatizācijas ID",
"info": "Jūsu unikālais automatizācijas ID. Vienmēr sākas ar automatizāciju.XXXX. Ja tas nav iestatīts, logrīks nebūs noklikšķināms un tiks parādīts tikai statuss. Pēc noklikšķināšanas vienības stāvoklis tiks atsvaidzināts."
},
"displayName": {
"label": "Parādāmais nosaukums"
+ },
+ "displayFriendlyName": {
+ "label": "Draudzīgais nosaukums",
+ "info": "Draudzīgā nosaukuma vietā parādiet no Home Assistant izgulto draudzīgo nosaukumu"
}
}
}
diff --git a/public/locales/nl/modules/health-monitoring.json b/public/locales/nl/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/nl/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/nl/modules/indexer-manager.json b/public/locales/nl/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/nl/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/nl/modules/smart-home/entity-state.json b/public/locales/nl/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/nl/modules/smart-home/entity-state.json
+++ b/public/locales/nl/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/no/modules/health-monitoring.json b/public/locales/no/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/no/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/no/modules/indexer-manager.json b/public/locales/no/modules/indexer-manager.json
new file mode 100644
index 000000000..6018869e3
--- /dev/null
+++ b/public/locales/no/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Indekserings-behandler status",
+ "description": "Status om indeksererne dine",
+ "settings": {
+ "title": "Indekserings-behandler status"
+ }
+ },
+ "indexersStatus": {
+ "title": "Indekserings-behandler",
+ "testAllButton": "Test alle"
+ },
+ "errors": {
+ "general": {
+ "title": "Kan ikke finne en indekserings-behandler",
+ "text": "Det oppsto et problem med å koble til din indekserings-behandler. Vennligst bekreft konfigurasjonen/integrasjonen(e)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/no/modules/smart-home/entity-state.json b/public/locales/no/modules/smart-home/entity-state.json
index 4a10f20bf..b48f3453f 100644
--- a/public/locales/no/modules/smart-home/entity-state.json
+++ b/public/locales/no/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "Enhets-ID",
"info": "Unik enhets-ID i Home Assistant. Kopier ved å klikke på enhet > Klikk på tannhjulikonet > Klikk på kopieringsknappen ved Entitets-ID. Noen egendefinerte enheter støttes kanskje ikke."
},
+ "appendUnit": {
+ "label": "Legg til måleenhet",
+ "info": "Legg til måleenhetsattributtet til enhetstilstanden."
+ },
"automationId": {
"label": "Valgfri automatisering ID",
"info": "Din unike automatisering ID. Starter alltid med automation.XXXXX. Hvis den ikke er angitt, vil widgeten ikke være klikkbar og kun vise status Etter klikk vil enhetsstatus bli oppdatert."
},
"displayName": {
"label": "Visningsnavn"
+ },
+ "displayFriendlyName": {
+ "label": "Vis brukervennlig navn",
+ "info": "Vis brukervennlig navn fra Home Assistant i stedet for visningsnavn"
}
}
}
diff --git a/public/locales/pl/modules/health-monitoring.json b/public/locales/pl/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/pl/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/pl/modules/indexer-manager.json b/public/locales/pl/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/pl/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/pl/modules/smart-home/entity-state.json b/public/locales/pl/modules/smart-home/entity-state.json
index 34458e12c..7f5fe40e1 100644
--- a/public/locales/pl/modules/smart-home/entity-state.json
+++ b/public/locales/pl/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID encji",
"info": "Unikalne ID encji w Home Assistant. Kopiuj klikając na encji > Kliknij ikonę koła zębatego > Kliknij na przycisk kopiuj na 'ID encji'. Niektóre niestandardowe obiekty mogą nie być obsługiwane."
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "Opcjonalne ID automatyzacji",
"info": "Twój unikalny identyfikator automatyzacji. Zawsze zaczyna się od automation.XXXXX. Jeśli nie jest ustawiony, widżet nie będzie klikalny i będzie wyświetlał tylko stan. Po kliknięciu stan encji zostanie odświeżony."
},
"displayName": {
"label": "Nazwa wyświetlana"
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json
index 491a73356..72242b38c 100644
--- a/public/locales/pt/common.json
+++ b/public/locales/pt/common.json
@@ -13,14 +13,14 @@
"previous": "Anterior",
"confirm": "Confirme",
"enabled": "Ativado",
- "duplicate": "",
+ "duplicate": "Duplicar",
"disabled": "Desativado",
"enableAll": "Habilitar tudo",
"disableAll": "Desativar tudo",
"version": "Versão",
"changePosition": "Mudar de posição",
"remove": "Excluir",
- "removeConfirm": "Tem certeza de que deseja remover o site {{item}}?",
+ "removeConfirm": "Tem certeza de que deseja remover o {{item}}?",
"createItem": "+ criar {{item}}",
"sections": {
"settings": "Configurações",
diff --git a/public/locales/pt/layout/element-selector/selector.json b/public/locales/pt/layout/element-selector/selector.json
index 8a60ba385..2bf09cc79 100644
--- a/public/locales/pt/layout/element-selector/selector.json
+++ b/public/locales/pt/layout/element-selector/selector.json
@@ -22,5 +22,5 @@
"message": "A categoria \"{{name}}\" foi criada"
}
},
- "importFromDocker": ""
+ "importFromDocker": "Importar do docker"
}
diff --git a/public/locales/pt/layout/manage.json b/public/locales/pt/layout/manage.json
index f6d16bdd6..1e7a5666c 100644
--- a/public/locales/pt/layout/manage.json
+++ b/public/locales/pt/layout/manage.json
@@ -26,7 +26,7 @@
"title": "Ferramentas",
"items": {
"docker": "Docker",
- "api": ""
+ "api": "API"
}
},
"about": {
diff --git a/public/locales/pt/manage/boards.json b/public/locales/pt/manage/boards.json
index 56916e717..710519d88 100644
--- a/public/locales/pt/manage/boards.json
+++ b/public/locales/pt/manage/boards.json
@@ -16,15 +16,15 @@
"label": "Excluir permanentemente",
"disabled": "Exclusão desativada, pois os componentes Homarr mais antigos não permitem a exclusão da configuração padrão. A exclusão será possível no futuro."
},
- "duplicate": "",
+ "duplicate": "Duplicar",
"rename": {
- "label": "",
+ "label": "Renomear",
"modal": {
- "title": "",
+ "title": "Renomear quadro {{name}}",
"fields": {
"name": {
- "label": "",
- "placeholder": ""
+ "label": "Novo nome",
+ "placeholder": "Nome do novo quadro"
}
}
}
diff --git a/public/locales/pt/manage/users.json b/public/locales/pt/manage/users.json
index fc94a8803..de5848440 100644
--- a/public/locales/pt/manage/users.json
+++ b/public/locales/pt/manage/users.json
@@ -6,10 +6,10 @@
},
"filter": {
"roles": {
- "all": "",
- "normal": "",
- "admin": "",
- "owner": ""
+ "all": "Todos",
+ "normal": "Normal",
+ "admin": "Administrador",
+ "owner": "Dono"
}
},
"table": {
diff --git a/public/locales/pt/manage/users/edit.json b/public/locales/pt/manage/users/edit.json
index f34018664..9dc88b504 100644
--- a/public/locales/pt/manage/users/edit.json
+++ b/public/locales/pt/manage/users/edit.json
@@ -1,6 +1,6 @@
{
- "metaTitle": "",
- "back": "",
+ "metaTitle": "Usuário {{username}}",
+ "back": "Voltar ao gerenciamento de usuários",
"sections": {
"general": {
"title": "Geral",
@@ -14,40 +14,40 @@
}
},
"security": {
- "title": "",
+ "title": "Segurança",
"inputs": {
"password": {
- "label": ""
+ "label": "Nova senha"
},
"terminateExistingSessions": {
- "label": "",
- "description": ""
+ "label": "Encerrar sessões existentes",
+ "description": "Força o usuário a fazer login novamente em seus dispositivos"
},
"confirm": {
"label": "Confirme",
- "description": ""
+ "description": "A senha será atualizada. A ação não pode ser revertida."
}
}
},
"roles": {
- "title": "",
- "currentRole": "",
+ "title": "Funções",
+ "currentRole": "Função atual: ",
"badges": {
- "owner": "",
- "admin": "",
- "normal": ""
+ "owner": "Dono",
+ "admin": "Administrador",
+ "normal": "Normal"
}
},
"deletion": {
- "title": "",
+ "title": "Exclusão de conta",
"inputs": {
"confirmUsername": {
- "label": "",
- "description": ""
+ "label": "Confirmar nome de usuário",
+ "description": "Digite o nome de usuário para confirmar a exclusão"
},
"confirm": {
"label": "Excluir permanentemente",
- "description": ""
+ "description": "Estou ciente de que esta ação é permanente e todos os dados da conta serão perdidos."
}
}
}
diff --git a/public/locales/pt/modules/dashdot.json b/public/locales/pt/modules/dashdot.json
index 6b76641e5..adea8db37 100644
--- a/public/locales/pt/modules/dashdot.json
+++ b/public/locales/pt/modules/dashdot.json
@@ -1,7 +1,7 @@
{
"descriptor": {
"name": "Dash.",
- "description": "Exibe os gráficos de uma instância externa do Dash. Instance dentro da Homarr.",
+ "description": "Exibe os gráficos de um Dash. externo. Instância dentro de Homarr.",
"settings": {
"title": "Definições para o Dash. widget",
"dashName": {
diff --git a/public/locales/pt/modules/date.json b/public/locales/pt/modules/date.json
index 67008b0db..7ce7ba60b 100644
--- a/public/locales/pt/modules/date.json
+++ b/public/locales/pt/modules/date.json
@@ -5,11 +5,11 @@
"settings": {
"title": "Definições para o widget de Data e Hora",
"timezone": {
- "label": "",
- "info": ""
+ "label": "Fuso-horário",
+ "info": "Selecione o nome do seu fuso horário: "
},
"customTitle": {
- "label": ""
+ "label": "Nome da cidade ou título personalizado"
},
"display24HourFormat": {
"label": "Mostrar tempo (24 horas)"
@@ -21,11 +21,11 @@
}
},
"titleState": {
- "label": "",
- "info": "",
+ "label": "Título do relógio",
+ "info": "O título personalizado e o código do fuso horário podem ser mostrados no seu widget.
Você também pode mostrar apenas a cidade, mostrar nenhuma,
ou até mesmo mostrar apenas o fuso horário quando ambos estiverem selecionados, mas nenhum título for fornecido.",
"data": {
- "both": "",
- "city": "",
+ "both": "Título e fuso horário",
+ "city": "Somente título",
"none": "Nenhum"
}
}
diff --git a/public/locales/pt/modules/docker.json b/public/locales/pt/modules/docker.json
index dfffab050..c067974bb 100644
--- a/public/locales/pt/modules/docker.json
+++ b/public/locales/pt/modules/docker.json
@@ -4,7 +4,7 @@
"description": "Permite-lhe ver e gerir facilmente todos os seus Docker Containers."
},
"search": {
- "placeholder": "Procurar por conainer ou imagem"
+ "placeholder": "Procurar por container ou imagem"
},
"table": {
"header": {
diff --git a/public/locales/pt/modules/health-monitoring.json b/public/locales/pt/modules/health-monitoring.json
new file mode 100644
index 000000000..bcd7ddacd
--- /dev/null
+++ b/public/locales/pt/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Monitoramento da integridade do sistema",
+ "description": "Informações sobre o seu NAS",
+ "settings": {
+ "title": "Monitoramento da integridade do sistema",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Carga Média",
+ "minute": "{{minute}} minuto"
+ },
+ "memory": {
+ "label": "Memória",
+ "totalMem": "Memória total: {{total}}GB",
+ "available": "Disponível: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Sistema de arquivos",
+ "available": "Disponível: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Tempo de Atividade",
+ "updates": "Atualizações",
+ "reboot": "Reiniciar"
+ },
+ "errors": {
+ "general": {
+ "title": "Não foi possível encontrar seu NAS",
+ "text": "Ocorreu um problema na conexão com seu NAS. Verifique sua(s) configuração(ões)/integração(ões)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/pt/modules/indexer-manager.json b/public/locales/pt/modules/indexer-manager.json
new file mode 100644
index 000000000..271658e04
--- /dev/null
+++ b/public/locales/pt/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Status do Gerenciador de Indexadores",
+ "description": "Estado dos seus indexadores",
+ "settings": {
+ "title": "Status do Gerenciador de Indexadores"
+ }
+ },
+ "indexersStatus": {
+ "title": "Gerenciador de indexadores",
+ "testAllButton": "Testar todos"
+ },
+ "errors": {
+ "general": {
+ "title": "Não foi possível localizar um gerenciador de indexador",
+ "text": "Houve um problema na conexão com seu gerente de indexação. Por favor, verifique sua configuração/integração(ões)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/pt/modules/media-requests-list.json b/public/locales/pt/modules/media-requests-list.json
index fe81f256f..61cafdbec 100644
--- a/public/locales/pt/modules/media-requests-list.json
+++ b/public/locales/pt/modules/media-requests-list.json
@@ -17,8 +17,8 @@
"approved": "Aprovado",
"pendingApproval": "Aprovação pendente",
"declined": "Recusado",
- "available": "",
- "partial": ""
+ "available": "Disponível",
+ "partial": "Parcial"
},
"tooltips": {
"approve": "Aprovar solicitações",
diff --git a/public/locales/pt/modules/rss.json b/public/locales/pt/modules/rss.json
index 63acf1bf0..6ee713819 100644
--- a/public/locales/pt/modules/rss.json
+++ b/public/locales/pt/modules/rss.json
@@ -19,13 +19,13 @@
"label": "Grampo de linhas de texto"
},
"sortByPublishDateAscending": {
- "label": ""
+ "label": "Ordenar por data de publicação (crescente)"
},
"sortPostsWithoutPublishDateToTheTop": {
- "label": ""
+ "label": "Coloque postagens sem data de publicação no topo"
},
"maximumAmountOfPosts": {
- "label": ""
+ "label": "Quantidade máxima de postagens"
}
},
"card": {
diff --git a/public/locales/pt/modules/search.json b/public/locales/pt/modules/search.json
index 5e1147f70..a12de17ad 100644
--- a/public/locales/pt/modules/search.json
+++ b/public/locales/pt/modules/search.json
@@ -6,7 +6,7 @@
"input": {
"placeholder": "Pesquisar na Internet..."
},
- "switched-to": "Comutado para",
+ "switched-to": "Mudou para",
"searchEngines": {
"search": {
"name": "Web",
@@ -18,13 +18,13 @@
},
"torrents": {
"name": "Torrentes",
- "description": "Pesquisa de Torrentes"
+ "description": "Pesquisa de Torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Pesquisa de Filmes e Programas de TV no Overseerr"
}
},
- "tip": "Pode seleccionar a barra de pesquisa com o atalho ",
+ "tip": "Você pode selecionar a barra de pesquisa com o atalho ",
"switchedSearchEngine": "Comutado para pesquisa com {{searchEngine}}"
}
diff --git a/public/locales/pt/modules/smart-home/entity-state.json b/public/locales/pt/modules/smart-home/entity-state.json
index 949c72728..ba2f751dc 100644
--- a/public/locales/pt/modules/smart-home/entity-state.json
+++ b/public/locales/pt/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID da entidade",
"info": "ID de entidade exclusiva do Home Assistant. Copie clicando na entidade > Clique no ícone de engrenagem > Clique no botão copiar em 'ID da entidade'. Algumas entidades personalizadas podem não ser suportadas."
},
+ "appendUnit": {
+ "label": "Anexar unidade de medida",
+ "info": "Acrescentar o atributo da unidade de medida ao estado da entidade."
+ },
"automationId": {
- "label": "",
- "info": ""
+ "label": "ID de automação opcional",
+ "info": "Seu ID de automação único. Sempre começa com automation.XXXXX. Se não definido, o widget não será clicável e apenas será exibido. Após clicar, o estado da entidade será atualizado."
},
"displayName": {
"label": "Nome de exibição"
+ },
+ "displayFriendlyName": {
+ "label": "Exibir nome amigável",
+ "info": "Exibir nome amigável do Home Assistant em vez do nome de exibição"
}
}
}
diff --git a/public/locales/pt/modules/smart-home/trigger-automation.json b/public/locales/pt/modules/smart-home/trigger-automation.json
index 030643c70..d4deff2f5 100644
--- a/public/locales/pt/modules/smart-home/trigger-automation.json
+++ b/public/locales/pt/modules/smart-home/trigger-automation.json
@@ -1,12 +1,12 @@
{
"descriptor": {
- "name": "",
- "description": "",
+ "name": "Automação do Home Assistant",
+ "description": "Executar uma automação",
"settings": {
- "title": "",
+ "title": "Executar uma automação",
"automationId": {
- "label": "",
- "info": ""
+ "label": "ID da automação",
+ "info": "Seu ID de automação único. Sempre começa com automation.XXXXX."
},
"displayName": {
"label": "Nome de exibição"
diff --git a/public/locales/pt/modules/torrents-status.json b/public/locales/pt/modules/torrents-status.json
index cd004536c..7fa0e918f 100644
--- a/public/locales/pt/modules/torrents-status.json
+++ b/public/locales/pt/modules/torrents-status.json
@@ -41,22 +41,22 @@
},
"table": {
"header": {
- "isCompleted": "",
+ "isCompleted": "Baixando",
"name": "Nome",
- "dateAdded": "",
+ "dateAdded": "Adicionado em",
"size": "Tamanho",
"download": "Para baixo",
"upload": "Para cima",
"estimatedTimeOfArrival": "TED",
"progress": "Progresso",
- "totalUploaded": "",
- "totalDownloaded": "",
- "ratio": "",
- "seeds": "",
- "peers": "",
- "label": "",
+ "totalUploaded": "Total enviado",
+ "totalDownloaded": "Total baixado",
+ "ratio": "Razão",
+ "seeds": "Sementes (conectadas)",
+ "peers": "Pares (conectados)",
+ "label": "Etiqueta",
"state": "Estado",
- "stateMessage": ""
+ "stateMessage": "Mensagem de Estado"
},
"item": {
"text": "Gerido por {{appName}}, {{ratio}} ratio"
diff --git a/public/locales/pt/modules/weather.json b/public/locales/pt/modules/weather.json
index 8446e11be..1539abb65 100644
--- a/public/locales/pt/modules/weather.json
+++ b/public/locales/pt/modules/weather.json
@@ -20,16 +20,16 @@
"clear": "Limpar",
"mainlyClear": "Principalmente claro",
"fog": "Névoa",
- "drizzle": "Drizzle",
+ "drizzle": "Chuvisco",
"freezingDrizzle": "Chuvisco de congelação",
"rain": "Chuva",
"freezingRain": "Chuva gelada",
"snowFall": "Queda de neve",
"snowGrains": "Grãos de neve",
"rainShowers": "Duches de chuva",
- "snowShowers": "Duches de neve",
- "thunderstorm": "Tempestade de trovoada",
- "thunderstormWithHail": "Tempestade de trovoada com granizo",
+ "snowShowers": "Aguaceiros de neve",
+ "thunderstorm": "Tempestade",
+ "thunderstormWithHail": "Tempestade com granizo",
"unknown": "Desconhecido"
}
},
diff --git a/public/locales/pt/settings/common.json b/public/locales/pt/settings/common.json
index 086096ce3..e0cba7530 100644
--- a/public/locales/pt/settings/common.json
+++ b/public/locales/pt/settings/common.json
@@ -16,7 +16,7 @@
"dependencyVersion": "Versão"
}
},
- "grow": "Grelha de cultivo (ocupar todo o espaço)",
+ "grow": "Grelha de crescimento (ocupar todo o espaço)",
"layout": {
"preview": {
"title": "Pré-visualizar",
diff --git a/public/locales/ru/modules/health-monitoring.json b/public/locales/ru/modules/health-monitoring.json
new file mode 100644
index 000000000..ccc017bb3
--- /dev/null
+++ b/public/locales/ru/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "ЦПУ",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ru/modules/indexer-manager.json b/public/locales/ru/modules/indexer-manager.json
new file mode 100644
index 000000000..2d1f8d3a3
--- /dev/null
+++ b/public/locales/ru/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Статус менеджера индексаторов",
+ "description": "Информация о статусе ваших индексаторов",
+ "settings": {
+ "title": "Статус менеджера индексаторов"
+ }
+ },
+ "indexersStatus": {
+ "title": "Статус менеджера индексаторов",
+ "testAllButton": "Тестировать все"
+ },
+ "errors": {
+ "general": {
+ "title": "Не удалось найти менеджера индексаторов",
+ "text": "Проблема с подключением к вашему менеджеру индексаторов. Пожалуйста, проверьте свои настройки/интеграцию."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ru/modules/smart-home/entity-state.json b/public/locales/ru/modules/smart-home/entity-state.json
index 59e10091c..eb48be315 100644
--- a/public/locales/ru/modules/smart-home/entity-state.json
+++ b/public/locales/ru/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID объекта",
"info": "Уникальный идентификатор объекта в Home Assistant. Скопируйте, нажав на объект > Щелкните значок шестеренки > Нажмите кнопку копирования в разделе «Идентификатор объекта». Некоторые пользовательские объекты могут не поддерживаться."
},
+ "appendUnit": {
+ "label": "Добавить единицу измерения",
+ "info": "Добавьте атрибут единицы измерения к состоянию объекта."
+ },
"automationId": {
"label": "ID автоматизации (необязательно)",
"info": "Ваш уникальный идентификатор автоматизации. Всегда начинается с automation.XXXXX. Если не задан, виджет не будет кликабельным и будет только отображать состояние. После клика состояние объекта будет обновлено."
},
"displayName": {
"label": "Отображаемое имя"
+ },
+ "displayFriendlyName": {
+ "label": "Показать собственное имя",
+ "info": "Показывать собственное имя Home Assistant вместо отображаемого имени"
}
}
}
diff --git a/public/locales/sk/modules/health-monitoring.json b/public/locales/sk/modules/health-monitoring.json
new file mode 100644
index 000000000..1019267ae
--- /dev/null
+++ b/public/locales/sk/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Monitorovanie stavu systému",
+ "description": "Informácie o vašom NAS",
+ "settings": {
+ "title": "Monitorovanie stavu systému",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Priemerná záťaž",
+ "minute": "{minutes} min."
+ },
+ "memory": {
+ "label": "Pamäť",
+ "totalMem": "Celková pamäť: {{total}}GB",
+ "available": "K dispozícii: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Súborový systém",
+ "available": "K dispozícii: {{available}}GB - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Čas prevádzky",
+ "updates": "Aktualizácie",
+ "reboot": "Reštartovať"
+ },
+ "errors": {
+ "general": {
+ "title": "Nemožno nájsť váš NAS",
+ "text": "Nastal problém s pripojením k vášmu NAS. Skontrolujte prosím svoju konfiguráciu/integráciu."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sk/modules/indexer-manager.json b/public/locales/sk/modules/indexer-manager.json
new file mode 100644
index 000000000..2698af172
--- /dev/null
+++ b/public/locales/sk/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Stav správcu indexovača",
+ "description": "Stav vašich indexov",
+ "settings": {
+ "title": "Stav správcu indexovača"
+ }
+ },
+ "indexersStatus": {
+ "title": "Správca indexovača",
+ "testAllButton": "Otestujte všetky"
+ },
+ "errors": {
+ "general": {
+ "title": "Nie je možné nájsť správcu indexera",
+ "text": "Vyskytol sa problém s pripojením k vášmu správcovi indexera. Overte svoju konfiguráciu/integráciu."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sk/modules/smart-home/entity-state.json b/public/locales/sk/modules/smart-home/entity-state.json
index 454fc7809..c3eccddb4 100644
--- a/public/locales/sk/modules/smart-home/entity-state.json
+++ b/public/locales/sk/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID subjektu",
"info": "Jedinečné ID subjektu v aplikácii Home Assistant. Kopírujte kliknutím na entitu > kliknite na ikonu ozubeného kolieska > kliknite na tlačidlo Kopírovať pri \"ID entity\". Niektoré vlastné entity nemusia byť podporované."
},
+ "appendUnit": {
+ "label": "Pripojte mernú jednotku",
+ "info": "Pripojte atribút jednotky merania k stavu entity."
+ },
"automationId": {
"label": "Voliteľné ID automatizácie",
"info": "Vaše jedinečné ID automatizácie. Vždy začína automatizáciou.XXXXX. Ak nie je nastavené, na miniaplikáciu sa nebude dať kliknúť a bude zobrazovať iba stav. Po kliknutí sa stav entity obnoví."
},
"displayName": {
"label": "Zobrazenie názvu"
+ },
+ "displayFriendlyName": {
+ "label": "Zobraziť priateľské meno",
+ "info": "Namiesto zobrazovaného mena zobraziť popisný názov z Home Assistant"
}
}
}
diff --git a/public/locales/sl/modules/health-monitoring.json b/public/locales/sl/modules/health-monitoring.json
new file mode 100644
index 000000000..dd45386b4
--- /dev/null
+++ b/public/locales/sl/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sl/modules/indexer-manager.json b/public/locales/sl/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/sl/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sl/modules/smart-home/entity-state.json b/public/locales/sl/modules/smart-home/entity-state.json
index 4d8d875f6..e3b2b290b 100644
--- a/public/locales/sl/modules/smart-home/entity-state.json
+++ b/public/locales/sl/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID subjekta",
"info": "Edinstveni identifikator entitete v programu Home Assistant. Kopirajte s klikom na entiteto > kliknite na ikono z zobnikom > kliknite na gumb za kopiranje pri \"ID entitete\". Nekatere entitete po meri morda ne bodo podprte."
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": "Prikaži ime"
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/sv/modules/health-monitoring.json b/public/locales/sv/modules/health-monitoring.json
new file mode 100644
index 000000000..de23c2466
--- /dev/null
+++ b/public/locales/sv/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Övervakning av systemhälsan",
+ "description": "Information om din NAS",
+ "settings": {
+ "title": "Övervakning av systemhälsan",
+ "fahrenheit": {
+ "label": "Fahrenheit"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Genomsnittlig belastning",
+ "minute": "{{minute}} minut"
+ },
+ "memory": {
+ "label": "Minne",
+ "totalMem": "Totalt minne: {{total}}GB",
+ "available": "Tillgängligt: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Filsystem",
+ "available": "Tillgängligt: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Drifttid",
+ "updates": "Uppdateringar",
+ "reboot": "Omstart"
+ },
+ "errors": {
+ "general": {
+ "title": "Det gick inte att hitta din NAS",
+ "text": "Det gick inte att ansluta till din NAS. Vänligen verifiera din konfiguration/integration(er)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sv/modules/indexer-manager.json b/public/locales/sv/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/sv/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/sv/modules/smart-home/entity-state.json b/public/locales/sv/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/sv/modules/smart-home/entity-state.json
+++ b/public/locales/sv/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/tr/modules/health-monitoring.json b/public/locales/tr/modules/health-monitoring.json
new file mode 100644
index 000000000..330a479d8
--- /dev/null
+++ b/public/locales/tr/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Sistem Sağlığı İzleme",
+ "description": "NAS'ınız hakkında bilgi",
+ "settings": {
+ "title": "Sistem Sağlığı İzleme",
+ "fahrenheit": {
+ "label": "Fahrenayt"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Yük Ortalaması",
+ "minute": "{{minute}} dakika"
+ },
+ "memory": {
+ "label": "Bellek",
+ "totalMem": "Toplam bellek: {{total}}GB",
+ "available": "Mevcut: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Dosya Sistemi",
+ "available": "Mevcut: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Çalışma süresi",
+ "updates": "Güncellemeler",
+ "reboot": "Yeniden başlat"
+ },
+ "errors": {
+ "general": {
+ "title": "NAS'ınız bulunamıyor",
+ "text": "NAS'ınıza bağlanırken bir sorun oluştu. Lütfen yapılandırmanızı/entegrasyonlarınızı kontrol edin."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/tr/modules/indexer-manager.json b/public/locales/tr/modules/indexer-manager.json
new file mode 100644
index 000000000..7fa9f83d5
--- /dev/null
+++ b/public/locales/tr/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "Dizin oluşturucu yöneticisi statüsü",
+ "description": "Dizin oluşturucularınızın statüsü",
+ "settings": {
+ "title": "Dizin oluşturucu yöneticisi statüsü"
+ }
+ },
+ "indexersStatus": {
+ "title": "Dizin oluşturucu yöneticisi",
+ "testAllButton": "Tümünü test et"
+ },
+ "errors": {
+ "general": {
+ "title": "Dizin oluşturucu yöneticisi bulunamıyor",
+ "text": "Dizin oluşturucu yöneticinize bağlanırken bir sorun oluştu. Lütfen yapılandırmanızı/entegrasyonlarınızı kontrol edin."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/tr/modules/smart-home/entity-state.json b/public/locales/tr/modules/smart-home/entity-state.json
index 8a030881b..8e104239d 100644
--- a/public/locales/tr/modules/smart-home/entity-state.json
+++ b/public/locales/tr/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "Varlık Kimliği",
"info": "Home Assistant'ta benzersiz varlık kimliği. Varlığa tıklayın > Çark simgesine tıklayın > 'Varlık Kimliği'ndeki kopyala butonuna tıklayın. Bazı özel varlıklar desteklenmeyebilir."
},
+ "appendUnit": {
+ "label": "Ölçü birimini ekle",
+ "info": "Varlık durumuna ölçü birim özelliğini ekler."
+ },
"automationId": {
"label": "İsteğe bağlı otomasyon kimliği",
"info": "Benzersiz otomasyon kimliğiniz. Her zaman automation.XXXXX başlar. Ayarlanmazsa widget etkileşimli olmayacak ve yalnızca durumu görüntüleyecektir. Tıklandığında varlık durumu yenilenecektir."
},
"displayName": {
"label": "Ekran adı"
+ },
+ "displayFriendlyName": {
+ "label": "Kolay adı görüntüle",
+ "info": "Görünen ad yerine Home Assistant'ın kolay adını görüntüler"
}
}
}
diff --git a/public/locales/tr/modules/smart-home/trigger-automation.json b/public/locales/tr/modules/smart-home/trigger-automation.json
index 3e4369234..bf2d79388 100644
--- a/public/locales/tr/modules/smart-home/trigger-automation.json
+++ b/public/locales/tr/modules/smart-home/trigger-automation.json
@@ -1,6 +1,6 @@
{
"descriptor": {
- "name": "Ev Asistanı otomasyonu",
+ "name": "Home Assistant otomasyonu",
"description": "Bir otomasyon yürütün",
"settings": {
"title": "Bir otomasyon yürütün",
diff --git a/public/locales/tr/password-requirements.json b/public/locales/tr/password-requirements.json
index 000881dc3..3f5565853 100644
--- a/public/locales/tr/password-requirements.json
+++ b/public/locales/tr/password-requirements.json
@@ -1,7 +1,7 @@
{
- "number": "Numara içerir",
- "lowercase": "Küçük harf içerir",
- "uppercase": "Büyük harf içerir",
- "special": "Özel karakterleri dahil et",
- "length": "En az {{count}} karakter içerir"
+ "number": "Rakam içermeli",
+ "lowercase": "Küçük harf içermeli",
+ "uppercase": "Büyük harf içermeli",
+ "special": "Özel karakter içermeli",
+ "length": "En az {{count}} karakter içermeli"
}
\ No newline at end of file
diff --git a/public/locales/tw/modules/health-monitoring.json b/public/locales/tw/modules/health-monitoring.json
new file mode 100644
index 000000000..915360b65
--- /dev/null
+++ b/public/locales/tw/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "處理器",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/tw/modules/indexer-manager.json b/public/locales/tw/modules/indexer-manager.json
new file mode 100644
index 000000000..a9b41c16e
--- /dev/null
+++ b/public/locales/tw/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "索引管理器狀態",
+ "description": "有關索引器的狀態",
+ "settings": {
+ "title": "索引管理器狀態"
+ }
+ },
+ "indexersStatus": {
+ "title": "索引管理器",
+ "testAllButton": "測試全部"
+ },
+ "errors": {
+ "general": {
+ "title": "無法找到索引管理器",
+ "text": "連線索引管理器時出現問題,請驗證您的配置/集成"
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/tw/modules/smart-home/entity-state.json b/public/locales/tw/modules/smart-home/entity-state.json
index cbc79dfcc..dd0561c30 100644
--- a/public/locales/tw/modules/smart-home/entity-state.json
+++ b/public/locales/tw/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "實體 ID",
"info": "Home Assistant 中的唯一實體ID,通過點擊實體 > 點擊齒輪圖示 > 點擊實體 ID 觸地的複製按鈕進行複製,某些自定義實體可能不支持"
},
+ "appendUnit": {
+ "label": "附加測量單位",
+ "info": "將測量單位的屬性附加至實體狀態"
+ },
"automationId": {
"label": "可選自動化ID",
"info": "自動化ID必須以 automation.XXXX 開頭,當未設定時小部件將不可點擊,且僅顯示狀況,點擊後實體狀態將被更新"
},
"displayName": {
"label": "顯示名稱"
+ },
+ "displayFriendlyName": {
+ "label": "顯示友好名稱",
+ "info": "顯示來自 Home Assistant 的友好名稱,而不是顯示名稱"
}
}
}
diff --git a/public/locales/uk/modules/health-monitoring.json b/public/locales/uk/modules/health-monitoring.json
new file mode 100644
index 000000000..43dc6133b
--- /dev/null
+++ b/public/locales/uk/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": "",
+ "fahrenheit": {
+ "label": ""
+ }
+ }
+ },
+ "cpu": {
+ "label": "Процесор",
+ "load": "",
+ "minute": ""
+ },
+ "memory": {
+ "label": "",
+ "totalMem": "",
+ "available": ""
+ },
+ "fileSystem": {
+ "label": "",
+ "available": ""
+ },
+ "info": {
+ "uptime": "",
+ "updates": "",
+ "reboot": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/uk/modules/indexer-manager.json b/public/locales/uk/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/uk/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/uk/modules/smart-home/entity-state.json b/public/locales/uk/modules/smart-home/entity-state.json
index 0ce4fcc65..75dd923c8 100644
--- a/public/locales/uk/modules/smart-home/entity-state.json
+++ b/public/locales/uk/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "",
"info": ""
},
+ "appendUnit": {
+ "label": "",
+ "info": ""
+ },
"automationId": {
"label": "",
"info": ""
},
"displayName": {
"label": ""
+ },
+ "displayFriendlyName": {
+ "label": "",
+ "info": ""
}
}
}
diff --git a/public/locales/vi/modules/health-monitoring.json b/public/locales/vi/modules/health-monitoring.json
new file mode 100644
index 000000000..f3849cb90
--- /dev/null
+++ b/public/locales/vi/modules/health-monitoring.json
@@ -0,0 +1,37 @@
+{
+ "descriptor": {
+ "name": "Giám sát tình trạng hệ thống",
+ "description": "Cung cấp thông tin về NAS của bạn",
+ "settings": {
+ "title": "Giám sát tình trạng hệ thống",
+ "fahrenheit": {
+ "label": "Độ F"
+ }
+ }
+ },
+ "cpu": {
+ "label": "CPU",
+ "load": "Tải trung bình",
+ "minute": "{{minute}} phút"
+ },
+ "memory": {
+ "label": "Bộ nhớ",
+ "totalMem": "Tổng bộ nhớ: {{total}}GB",
+ "available": "Có sẵn: {{available}}GB - {{percentage}}%"
+ },
+ "fileSystem": {
+ "label": "Hệ thống tập tin",
+ "available": "Có sẵn: {{available}} - {{percentage}}%"
+ },
+ "info": {
+ "uptime": "Thời gian hoạt động",
+ "updates": "Cập nhật",
+ "reboot": "Khởi động lại"
+ },
+ "errors": {
+ "general": {
+ "title": "Không thể tìm thấy NAS của bạn",
+ "text": "Đã xảy ra sự cố khi kết nối với NAS của bạn. Vui lòng xác minh (các) cấu hình/tích hợp của bạn."
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/vi/modules/indexer-manager.json b/public/locales/vi/modules/indexer-manager.json
new file mode 100644
index 000000000..9b01e3093
--- /dev/null
+++ b/public/locales/vi/modules/indexer-manager.json
@@ -0,0 +1,19 @@
+{
+ "descriptor": {
+ "name": "",
+ "description": "",
+ "settings": {
+ "title": ""
+ }
+ },
+ "indexersStatus": {
+ "title": "",
+ "testAllButton": ""
+ },
+ "errors": {
+ "general": {
+ "title": "",
+ "text": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/locales/vi/modules/rss.json b/public/locales/vi/modules/rss.json
index 090686eb0..1bb1fae4a 100644
--- a/public/locales/vi/modules/rss.json
+++ b/public/locales/vi/modules/rss.json
@@ -22,10 +22,10 @@
"label": "Sắp xếp theo ngày phát hành (tăng dần)"
},
"sortPostsWithoutPublishDateToTheTop": {
- "label": ""
+ "label": "Đưa bài viết không có ngày xuất bản lên đầu"
},
"maximumAmountOfPosts": {
- "label": ""
+ "label": "Số lượng bài viết tối đa"
}
},
"card": {
diff --git a/public/locales/vi/modules/smart-home/entity-state.json b/public/locales/vi/modules/smart-home/entity-state.json
index ab5fc0329..2898301b2 100644
--- a/public/locales/vi/modules/smart-home/entity-state.json
+++ b/public/locales/vi/modules/smart-home/entity-state.json
@@ -9,12 +9,20 @@
"label": "ID thực thể",
"info": "ID thực thể độc nhất trong Home Assistant. Sao chép bằng cách nhấp vào thực thể > Nhấp vào biểu tượng răng cưa > Nhấp vào nút sao chép tại 'ID thực thể'. Một số thực thể tùy chỉnh có thể không được hỗ trợ."
},
+ "appendUnit": {
+ "label": "Thêm đơn vị đo",
+ "info": "Thêm thuộc tính đơn vị đo lường vào trạng thái thực thể."
+ },
"automationId": {
"label": "ID tự động hóa tùy chọn",
"info": "ID tự động hóa riêng của bạn. Luôn bắt đầu bằng tự động hóa.XXXXX. Nếu không được đặt, tiện ích sẽ không thể tương tác và chỉ hiển thị trạng thái. Sau khi nhấp vào, trạng thái thực thể sẽ được làm mới."
},
"displayName": {
"label": "Tên hiển thị"
+ },
+ "displayFriendlyName": {
+ "label": "Hiển thị tên thân thiện",
+ "info": "Hiển thị tên thân thiện từ Home Assistant thay vì tên hiển thị"
}
}
}
diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx
index 21ad22500..bedb543a2 100644
--- a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx
+++ b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx
@@ -171,7 +171,7 @@ export const availableIntegrations = [
{
value: 'jellyfin',
image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyfin.png',
- label: 'Jellyfin',
+ label: 'Jellyfin (and Emby)',
},
{
value: 'plex',
@@ -193,4 +193,9 @@ export const availableIntegrations = [
image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/home-assistant.png',
label: 'Home Assistant',
},
+ {
+ value: 'openmediavault',
+ image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/openmediavault.png',
+ label: 'OpenMediaVault',
+ },
] as const satisfies Readonly;
diff --git a/src/components/layout/Templates/BoardLayout.tsx b/src/components/layout/Templates/BoardLayout.tsx
index f82730dac..0e7f82609 100644
--- a/src/components/layout/Templates/BoardLayout.tsx
+++ b/src/components/layout/Templates/BoardLayout.tsx
@@ -182,7 +182,7 @@ const ToggleEditModeButton = () => {
),
diff --git a/src/components/layout/Templates/ManageLayout.tsx b/src/components/layout/Templates/ManageLayout.tsx
index 067840a05..80c5af531 100644
--- a/src/components/layout/Templates/ManageLayout.tsx
+++ b/src/components/layout/Templates/ManageLayout.tsx
@@ -112,7 +112,7 @@ export const ManageLayout = ({ children }: ManageLayoutProps) => {
items: {
documentation: {
icon: IconBook2,
- href: 'https://homarr.dev/docs/about',
+ href: 'https://homarr.dev/about-us',
target: '_blank',
},
report: {
diff --git a/src/env.js b/src/env.js
index 1b7c349ce..203a48be9 100644
--- a/src/env.js
+++ b/src/env.js
@@ -1,13 +1,16 @@
const { z } = require('zod');
const { createEnv } = require('@t3-oss/env-nextjs');
-const trueStrings = ["1", "t", "T", "TRUE", "true", "True"];
-const falseStrings = ["0", "f", "F", "FALSE", "false", "False"];
+const trueStrings = ['1', 't', 'T', 'TRUE', 'true', 'True'];
+const falseStrings = ['0', 'f', 'F', 'FALSE', 'false', 'False'];
-const zodParsedBoolean = () => z
- .enum([...trueStrings, ...falseStrings])
- .default("false")
- .transform((value) => trueStrings.includes(value))
+const ldapSearchScope = z.enum(['base', 'one', 'sub']).default('base');
+
+const zodParsedBoolean = () =>
+ z
+ .enum([...trueStrings, ...falseStrings])
+ .default('false')
+ .transform((value) => trueStrings.includes(value));
const portSchema = z
.string()
@@ -16,6 +19,7 @@ const portSchema = z
.optional();
const envSchema = z.enum(['development', 'test', 'production']);
+const validAuthProviders = ['credentials', 'ldap', 'oidc'];
const authProviders = process.env.AUTH_PROVIDER?.replaceAll(' ', '').split(',') || ['credentials'];
const env = createEnv({
@@ -40,34 +44,53 @@ const env = createEnv({
HOSTNAME: z.string().optional(),
// Authentication
- AUTH_PROVIDER: z.string().default('credentials').transform(providers => providers.replaceAll(' ', '').split(',')),
+ AUTH_PROVIDER: z
+ .string()
+ .min(1)
+ .default('credentials')
+ .transform((providers) =>
+ providers
+ .replaceAll(' ', '')
+ .toLowerCase()
+ .split(',')
+ .filter((provider) => {
+ if (validAuthProviders.includes(provider)) return provider;
+ else if (!provider)
+ console.log(
+ `One or more of the entries for AUTH_PROVIDER could not be parsed and/or returned null.`
+ );
+ else console.log(`The value entered for AUTH_PROVIDER "${provider}" is incorrect.`);
+ })
+ ),
// LDAP
...(authProviders.includes('ldap')
? {
- AUTH_LDAP_URI: z.string().url(),
- AUTH_LDAP_BIND_DN: z.string(),
- AUTH_LDAP_BIND_PASSWORD: z.string(),
- AUTH_LDAP_BASE: z.string(),
- AUTH_LDAP_USERNAME_ATTRIBUTE: z.string().default('uid'),
- AUTH_LDAP_GROUP_CLASS: z.string().default('groupOfUniqueNames'),
- AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE: z.string().default('member'),
- AUTH_LDAP_GROUP_MEMBER_USER_ATTRIBUTE: z.string().default('dn'),
- AUTH_LDAP_ADMIN_GROUP: z.string().default('admin'),
- AUTH_LDAP_OWNER_GROUP: z.string().default('admin'),
- }
+ AUTH_LDAP_URI: z.string().url(),
+ AUTH_LDAP_BIND_DN: z.string(),
+ AUTH_LDAP_BIND_PASSWORD: z.string(),
+ AUTH_LDAP_BASE: z.string(),
+ AUTH_LDAP_SEARCH_SCOPE: z.enum(['base', 'one', 'sub']).default('base'),
+ AUTH_LDAP_USERNAME_ATTRIBUTE: z.string().default('uid'),
+ AUTH_LDAP_GROUP_CLASS: z.string().default('groupOfUniqueNames'),
+ AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE: z.string().default('member'),
+ AUTH_LDAP_GROUP_MEMBER_USER_ATTRIBUTE: z.string().default('dn'),
+ AUTH_LDAP_ADMIN_GROUP: z.string().default('admin'),
+ AUTH_LDAP_OWNER_GROUP: z.string().default('admin'),
+ }
: {}),
// OIDC
...(authProviders.includes('oidc')
? {
- AUTH_OIDC_CLIENT_ID: z.string(),
- AUTH_OIDC_CLIENT_SECRET: z.string(),
- AUTH_OIDC_URI: z.string().url(),
- // Custom Display name, defaults to OIDC
- AUTH_OIDC_CLIENT_NAME: z.string().default('OIDC'),
- AUTH_OIDC_ADMIN_GROUP: z.string().default('admin'),
- AUTH_OIDC_OWNER_GROUP: z.string().default('admin'),
- AUTH_OIDC_AUTO_LOGIN: zodParsedBoolean()
- }
+ AUTH_OIDC_CLIENT_ID: z.string(),
+ AUTH_OIDC_CLIENT_SECRET: z.string(),
+ AUTH_OIDC_URI: z.string().url(),
+ // Custom Display name, defaults to OIDC
+ AUTH_OIDC_CLIENT_NAME: z.string().default('OIDC'),
+ AUTH_OIDC_ADMIN_GROUP: z.string().default('admin'),
+ AUTH_OIDC_OWNER_GROUP: z.string().default('admin'),
+ AUTH_OIDC_AUTO_LOGIN: zodParsedBoolean(),
+ AUTH_OIDC_SCOPE_OVERWRITE: z.string().default('openid email profile groups'),
+ }
: {}),
},
@@ -110,6 +133,7 @@ const env = createEnv({
AUTH_LDAP_BIND_DN: process.env.AUTH_LDAP_BIND_DN,
AUTH_LDAP_BIND_PASSWORD: process.env.AUTH_LDAP_BIND_PASSWORD,
AUTH_LDAP_BASE: process.env.AUTH_LDAP_BASE,
+ AUTH_LDAP_SEARCH_SCOPE: process.env.AUTH_LDAP_SEARCH_SCOPE?.toLowerCase(),
AUTH_LDAP_USERNAME_ATTRIBUTE: process.env.AUTH_LDAP_USERNAME_ATTRIBUTE,
AUTH_LDAP_GROUP_CLASS: process.env.AUTH_LDAP_GROUP_CLASS,
AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE: process.env.AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE,
@@ -124,6 +148,7 @@ const env = createEnv({
AUTH_OIDC_ADMIN_GROUP: process.env.AUTH_OIDC_ADMIN_GROUP,
AUTH_OIDC_OWNER_GROUP: process.env.AUTH_OIDC_OWNER_GROUP,
AUTH_OIDC_AUTO_LOGIN: process.env.AUTH_OIDC_AUTO_LOGIN,
+ AUTH_OIDC_SCOPE_OVERWRITE: process.env.AUTH_OIDC_SCOPE_OVERWRITE,
DEMO_MODE: process.env.DEMO_MODE,
},
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
diff --git a/src/pages/api/auth/[...nextauth].ts b/src/pages/api/auth/[...nextauth].ts
index b5a1818de..8adfc426b 100644
--- a/src/pages/api/auth/[...nextauth].ts
+++ b/src/pages/api/auth/[...nextauth].ts
@@ -3,5 +3,5 @@ import NextAuth from 'next-auth';
import { constructAuthOptions } from '~/server/auth';
export default async function auth(req: NextApiRequest, res: NextApiResponse) {
- return await NextAuth(req, res, constructAuthOptions(req, res));
+ return await NextAuth(req, res, await constructAuthOptions(req, res));
}
diff --git a/src/pages/auth/login.tsx b/src/pages/auth/login.tsx
index eb7f0af2e..19b8442f2 100644
--- a/src/pages/auth/login.tsx
+++ b/src/pages/auth/login.tsx
@@ -70,7 +70,15 @@ export default function LoginPage({
};
useEffect(() => {
- if (oidcAutoLogin) signIn('oidc');
+ if (oidcAutoLogin && !isError)
+ signIn('oidc', {
+ redirect: false,
+ callbackUrl: '/',
+ }).then((response) => {
+ if (!response?.ok) {
+ setIsError(true);
+ }
+ });
}, [oidcAutoLogin]);
const metaTitle = `${t('metaTitle')} • Homarr`;
@@ -116,9 +124,19 @@ export default function LoginPage({
{t('title')}
-
- {t('text')}
-
+ {(providers.length < 1 && (
+ }
+ title={t('form.providersEmpty.title')}
+ mt={5}
+ >
+ {t('form.providersEmpty.message')}
+
+ )) || (
+
+ {t('text')}
+
+ )}
{isError && (
} color="red">
@@ -186,7 +204,17 @@ export default function LoginPage({
)}
{providers.includes('oidc') && (
-