diff --git a/data/constants.ts b/data/constants.ts index 7b407844c12..f7022807e7b 100644 --- a/data/constants.ts +++ b/data/constants.ts @@ -1,2 +1,2 @@ export const REPO_URL = 'ajnart/homarr'; -export const CURRENT_VERSION = 'v0.10.1'; +export const CURRENT_VERSION = 'v0.10.2'; diff --git a/package.json b/package.json index db4cac302db..54ef5cb43c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "0.10.1", + "version": "0.10.2", "description": "Homarr - A homepage for your server.", "license": "MIT", "repository": { diff --git a/public/locales/es/authentication/login.json b/public/locales/es/authentication/login.json index 0af029427d2..268d533c815 100644 --- a/public/locales/es/authentication/login.json +++ b/public/locales/es/authentication/login.json @@ -1,27 +1,27 @@ { - "title": "", - "text": "", + "title": "¡Bienvenido/a otra vez!", + "text": "Por favor, introduce la Contraseña", "form": { "fields": { "password": { "label": "Contraseña", - "placeholder": "" + "placeholder": "Tu contraseña" } }, "buttons": { - "submit": "" + "submit": "Iniciar sesión" } }, "notifications": { "checking": { - "title": "", - "message": "" + "title": "Comprobando tu contraseña", + "message": "Tu contraseña está siendo comprobada..." }, "correct": { - "title": "" + "title": "Contraseña correcta, redireccionándote..." }, "wrong": { - "title": "" + "title": "Contraseña incorrecta, por favor, intenta otra vez." } } } diff --git a/public/locales/es/layout/add-service-app-shelf.json b/public/locales/es/layout/add-service-app-shelf.json index 032d9bae5b3..5f734dcfad9 100644 --- a/public/locales/es/layout/add-service-app-shelf.json +++ b/public/locales/es/layout/add-service-app-shelf.json @@ -34,8 +34,8 @@ }, "category": { "label": "Categoría", - "placeholder": "Selecciona una categoría o cree una nueva", - "nothingFound": "No se ha encontrado nada", + "placeholder": "Seleccione una categoría o cree una nueva", + "nothingFound": "No se ha encontrado ningún resultado", "createLabel": "+ Crear {{query}}" }, "integrations": { @@ -101,7 +101,7 @@ "label": "Códigos de Estado HTTP", "placeholder": "Seleccionar códigos de estado válidos", "clearButtonLabel": "Borrar selección", - "nothingFound": "No se ha encontrado nada" + "nothingFound": "No se ha encontrado ningún resultado" }, "openServiceInNewTab": { "label": "Abrir el servicio en una nueva pestaña" diff --git a/public/locales/fr/authentication/login.json b/public/locales/fr/authentication/login.json index 846d95de076..9e47001a83c 100644 --- a/public/locales/fr/authentication/login.json +++ b/public/locales/fr/authentication/login.json @@ -1,27 +1,27 @@ { - "title": "", - "text": "", + "title": "Bienvenue !", + "text": "Veuillez entrer votre mot de passe", "form": { "fields": { "password": { "label": "Mot de passe", - "placeholder": "" + "placeholder": "Votre mot de passe" } }, "buttons": { - "submit": "" + "submit": "Se connecter" } }, "notifications": { "checking": { - "title": "", - "message": "" + "title": "Vérification de votre mot de passe", + "message": "Votre mot de passe est en cours de vérification..." }, "correct": { - "title": "" + "title": "Mot de passe correct, redirection en cours..." }, "wrong": { - "title": "" + "title": "Mot de passe erroné, veuillez réessayer." } } } diff --git a/public/locales/fr/modules/dashdot.json b/public/locales/fr/modules/dashdot.json index e24d7e5887e..b33cbba3113 100644 --- a/public/locales/fr/modules/dashdot.json +++ b/public/locales/fr/modules/dashdot.json @@ -35,8 +35,8 @@ "title": "Réseau", "label": "Réseau :", "metrics": { - "download": "Duvet", - "upload": "Up" + "download": "Descendant", + "upload": "Montant" } }, "cpu": { diff --git a/public/locales/sl/authentication/login.json b/public/locales/sl/authentication/login.json index 82c4ecbe170..66feacbf69a 100644 --- a/public/locales/sl/authentication/login.json +++ b/public/locales/sl/authentication/login.json @@ -1,27 +1,27 @@ { - "title": "", - "text": "", + "title": "Dobrodošli nazaj!", + "text": "Prosimo vnesite geslo", "form": { "fields": { "password": { "label": "Geslo", - "placeholder": "" + "placeholder": "Vaše geslo" } }, "buttons": { - "submit": "" + "submit": "Prijava" } }, "notifications": { "checking": { - "title": "", - "message": "" + "title": "Preverjanje gesla", + "message": "Preverjamo vaše geslo..." }, "correct": { - "title": "" + "title": "Geslo je pravilno, preusmerjam..." }, "wrong": { - "title": "" + "title": "Geslo je napačno, poskusite znova." } } } diff --git a/public/locales/sv/authentication/login.json b/public/locales/sv/authentication/login.json index 81ad5191bb8..5f3102cff50 100644 --- a/public/locales/sv/authentication/login.json +++ b/public/locales/sv/authentication/login.json @@ -1,27 +1,27 @@ { - "title": "", - "text": "", + "title": "Välkommen tillbaka!", + "text": "Vänligen ange lösenordet", "form": { "fields": { "password": { "label": "Lösenord", - "placeholder": "" + "placeholder": "Ditt lösenord" } }, "buttons": { - "submit": "" + "submit": "Logga in" } }, "notifications": { "checking": { - "title": "", - "message": "" + "title": "Kontrollerar ditt lösenord", + "message": "Ditt lösenord kontrolleras..." }, "correct": { - "title": "" + "title": "Lösenord korrekt, omdirigerar dig..." }, "wrong": { - "title": "" + "title": "Lösenordet är fel, försök igen." } } } diff --git a/public/locales/zh/authentication/login.json b/public/locales/zh/authentication/login.json index 4eafedd1592..dfd8bae39ab 100644 --- a/public/locales/zh/authentication/login.json +++ b/public/locales/zh/authentication/login.json @@ -1,27 +1,27 @@ { - "title": "", - "text": "", + "title": "欢迎回来!", + "text": "请输入密码", "form": { "fields": { "password": { "label": "密码", - "placeholder": "" + "placeholder": "你的密码" } }, "buttons": { - "submit": "" + "submit": "登录" } }, "notifications": { "checking": { - "title": "", - "message": "" + "title": "检查你的密码", + "message": "正在检查你的密码..." }, "correct": { - "title": "" + "title": "密码正确,正在重定向..." }, "wrong": { - "title": "" + "title": "密码错误,请重试。" } } } diff --git a/public/locales/zh/layout/add-service-app-shelf.json b/public/locales/zh/layout/add-service-app-shelf.json index e6af8e8c7bc..595a2617bab 100644 --- a/public/locales/zh/layout/add-service-app-shelf.json +++ b/public/locales/zh/layout/add-service-app-shelf.json @@ -34,16 +34,16 @@ }, "category": { "label": "类型", - "placeholder": "选择一个类别或创建一个新类别", + "placeholder": "选择或创建一个新类别", "nothingFound": "没有找到", "createLabel": "+ 创建 {{query}}" }, "integrations": { "apiKey": { - "label": "API key", + "label": "API密钥", "placeholder": "你的API密钥", "validation": { - "noKey": "无效key" + "noKey": "无效秘钥" }, "tip": { "text": "获取你的API密钥", diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json index be1667b40d5..33771d34859 100644 --- a/public/locales/zh/modules/dashdot.json +++ b/public/locales/zh/modules/dashdot.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "潇洒。", - "description": "用于显示运行中的Dash.instance的图表的模块。", + "name": "Dash.", + "description": "一个显示运行中的仪表板实例的图表模块。", "settings": { "cpuMultiView": { "label": "CPU多核视图" @@ -16,27 +16,27 @@ "label": "图表" }, "url": { - "label": "Dash. URL" + "label": "Dash. 网址" } } }, "card": { - "title": "潇洒。", + "title": "Dash.", "errors": { - "noService": "没有找到Dash.服务。请在你的Homarr仪表板上添加一个,或者在模块选项中设置一个Dash.URL。URL在模块选项中", - "noInformation": "无法从仪表盘获取信息。- 你运行的是最新版本吗?" + "noService": "没有找到Dash.服务。请在你的Homarr仪表板上添加,或者设置一个仪表板网址。网址在应用选项中添加", + "noInformation": "无法从仪表板获取信息。- 你运行的是最新版本吗?" }, "graphs": { "storage": { - "title": "储存", - "label": "储存。" + "title": "存储", + "label": "存储:" }, "network": { "title": "网络", - "label": "网络。", + "label": "网络:", "metrics": { - "download": "下降", - "upload": "上" + "download": "下移", + "upload": "上移" } }, "cpu": { diff --git a/public/locales/zh/modules/date.json b/public/locales/zh/modules/date.json index d76db2a2d28..14d9991da1b 100644 --- a/public/locales/zh/modules/date.json +++ b/public/locales/zh/modules/date.json @@ -4,7 +4,7 @@ "description": "在卡片中显示当前时间和日期", "settings": { "display24HourFormat": { - "label": "显示全时(24小时)" + "label": "显示完整时间 (24小时)" } } } diff --git a/public/locales/zh/modules/docker.json b/public/locales/zh/modules/docker.json index e8b7faee89f..28fce1cc4e7 100644 --- a/public/locales/zh/modules/docker.json +++ b/public/locales/zh/modules/docker.json @@ -1,6 +1,6 @@ { "descriptor": { - "name": "码头", + "name": "Docker", "description": "允许你轻松地管理你的torrent文件" }, "search": { @@ -8,25 +8,25 @@ }, "table": { "header": { - "name": "命名", - "image": "图片", - "ports": "码头", - "state": "国家" + "name": "名称", + "image": "镜像", + "ports": "端口", + "state": "状态" }, "body": { "portCollapse": "{{ports}} 更多" }, "states": { - "running": "跑步", - "created": "创建", + "running": "运行中", + "created": "已创建", "stopped": "已停止", - "unknown": "不详" + "unknown": "未知" } }, "actionBar": { "addService": { "title": "添加应用", - "message": "为Homarr添加服务" + "message": "添加服务到 Homarr" }, "restart": { "title": "重新启动" @@ -49,8 +49,8 @@ }, "messages": { "successfullyExecuted": { - "title": "容器 {{containerName}} {{action}}ed", - "message": "您的容器已成功 {{action}}。" + "title": "容器 {{containerName}} {{action}}已完成", + "message": "你的容器已成功 {{action}}。" } }, "errors": { @@ -66,6 +66,6 @@ } }, "actionIcon": { - "tooltip": "码头" + "tooltip": "Docker" } } \ No newline at end of file diff --git a/public/locales/zh/modules/overseerr.json b/public/locales/zh/modules/overseerr.json index 29af2d96bac..07e2ab118e9 100644 --- a/public/locales/zh/modules/overseerr.json +++ b/public/locales/zh/modules/overseerr.json @@ -1,6 +1,6 @@ { "descriptor": { - "name": "监督员r", + "name": "Overseerr", "description": "允许你从Overseerr/Jellyseerr搜索和添加媒体" }, "popup": { @@ -18,11 +18,11 @@ } }, "seasonSelector": { - "caption": "勾选你想要下载的季节", + "caption": "勾选你想要下载的季数", "table": { "header": { - "season": "季节", - "numberOfEpisodes": "节目的数量" + "season": "季数", + "numberOfEpisodes": "剧集数" } } } diff --git a/public/locales/zh/modules/ping.json b/public/locales/zh/modules/ping.json index 2989ae14951..7eaf68d9250 100644 --- a/public/locales/zh/modules/ping.json +++ b/public/locales/zh/modules/ping.json @@ -1,6 +1,6 @@ { "descriptor": { - "name": "平", + "name": "Ping", "description": "允许你检查服务是否启动或返回一个特定的HTTP状态代码。" }, "states": { diff --git a/public/locales/zh/modules/torrents-status.json b/public/locales/zh/modules/torrents-status.json index 56bcd320332..c5a686a9061 100644 --- a/public/locales/zh/modules/torrents-status.json +++ b/public/locales/zh/modules/torrents-status.json @@ -1,38 +1,38 @@ { "descriptor": { - "name": "酷刑", + "name": "Torrent", "description": "显示支持的服务的当前下载速度", "settings": { "hideComplete": { - "label": "隐藏已完成的torrent" + "label": "隐藏已完成的种子" } } }, "card": { "table": { "header": { - "name": "命名", - "size": "尺寸", - "download": "下降", - "upload": "上", - "estimatedTimeOfArrival": "ETA", - "progress": "进展" + "name": "名称", + "size": "大小", + "download": "下移", + "upload": "上移", + "estimatedTimeOfArrival": "剩余时间", + "progress": "进度" }, "body": { - "nothingFound": "没有找到山洪资源" + "nothingFound": "没有找到种子" } }, "lineChart": { - "title": "当前的下载速度", - "download": "下载。 {{download}}", - "upload": "上传。 {{upload}}", + "title": "当前下载速度", + "download": "下载:{{download}}", + "upload": "上传: {{upload}}", "timeSpan": "{{seconds}} 秒前", - "totalDownload": "下载。 {{download}}/s", - "totalUpload": "上传。 {{upload}}/s" + "totalDownload": "下载: {{download}}/秒", + "totalUpload": "上传: {{upload}}/秒" }, "errors": { "noDownloadClients": { - "title": "没有找到支持的下载客户端!", + "title": "没有找到支持的下载客户端!", "text": "添加下载服务,查看你当前的下载量" } } diff --git a/public/locales/zh/modules/usenet.json b/public/locales/zh/modules/usenet.json index b560cf8ab51..901d18f9478 100644 --- a/public/locales/zh/modules/usenet.json +++ b/public/locales/zh/modules/usenet.json @@ -1,48 +1,48 @@ { "descriptor": { "name": "Sabnzbd", - "description": "允许您查看您的Sabnzbd队列和历史,暂停和恢复下载" + "description": "允许您查看您的Sabnzbd队列和历史,进行暂停和恢复下载操作" }, "card": { "errors": { "noDownloadClients": { - "title": "没有找到支持的下载客户端!", + "title": "没有找到支持的下载客户端!", "text": "添加下载服务,查看你当前的下载量" } } }, "tabs": { - "queue": "排队", + "queue": "队列", "history": "历史" }, "info": { - "sizeLeft": "左侧尺寸", + "sizeLeft": "左侧大小", "paused": "暂停使用" }, "queue": { "header": { - "name": "命名", - "size": "尺寸", - "eta": "ETA", - "progress": "进展" + "name": "名称", + "size": "大小", + "eta": "剩余时间", + "progress": "进度" }, "empty": "空的", "error": { - "title": "误差", - "message": "发生了一个错误" + "title": "错误", + "message": "出错了" }, "paused": "暂停使用" }, "history": { "header": { - "name": "命名", - "size": "尺寸", - "duration": "时间" + "name": "名称", + "size": "大小", + "duration": "持续时间" }, "empty": "空的", "error": { - "title": "误差", - "message": "错误加载历史记录" + "title": "错误", + "message": "加载历史记录时出错" }, "paused": "暂停使用" } diff --git a/public/locales/zh/modules/weather.json b/public/locales/zh/modules/weather.json index 6365f2f0c49..081245a3635 100644 --- a/public/locales/zh/modules/weather.json +++ b/public/locales/zh/modules/weather.json @@ -1,10 +1,10 @@ { "descriptor": { "name": "天气", - "description": "查询你所在地区的当前天气", + "description": "查看你所在地区的当前天气", "settings": { "displayInFahrenheit": { - "label": "显示单位:华氏" + "label": "显示为华氏度" }, "location": { "label": "天气位置" @@ -13,20 +13,20 @@ }, "card": { "weatherDescriptions": { - "clear": "清楚", - "mainlyClear": "主要是清楚", + "clear": "晴朗", + "mainlyClear": "晴朗为主", "fog": "雾", "drizzle": "细雨", - "freezingDrizzle": "冰冷的细雨", + "freezingDrizzle": "冷细雨", "rain": "雨", "freezingRain": "冻雨", "snowFall": "降雪", - "snowGrains": "雪粒", + "snowGrains": "米雪", "rainShowers": "阵雨", "snowShowers": "阵雪", "thunderstorm": "雷雨天气", - "thunderstormWithHail": "雷暴与冰雹", - "unknown": "不详" + "thunderstormWithHail": "雷暴夹冰雹", + "unknown": "未知" } } } \ No newline at end of file diff --git a/public/locales/zh/settings/common.json b/public/locales/zh/settings/common.json index 7fbe0eb4d18..859615d04fd 100644 --- a/public/locales/zh/settings/common.json +++ b/public/locales/zh/settings/common.json @@ -2,13 +2,13 @@ "title": "设置", "tooltip": "设置", "tabs": { - "common": "普通", - "customizations": "定制化" + "common": "常规", + "customizations": "个性化" }, "tips": { "configTip": "将你的配置文件拖放到页面上,就可以上传了!" }, "credits": { - "madeWithLove": "用❤️制作的@" + "madeWithLove": "用❤️创造,出品于" } } \ No newline at end of file diff --git a/public/locales/zh/settings/customization/page-appearance.json b/public/locales/zh/settings/customization/page-appearance.json index 3cfad87621e..c810c2bfe97 100644 --- a/public/locales/zh/settings/customization/page-appearance.json +++ b/public/locales/zh/settings/customization/page-appearance.json @@ -1,18 +1,18 @@ { "pageTitle": { "label": "页面标题", - "placeholder": "霍马尔 🦞" + "placeholder": "Homarr 🦞" }, "logo": { "label": "徽标", "placeholder": "/img/logo.png" }, "favicon": { - "label": "徽标(Favicon", + "label": "网站图标", "placeholder": "/favicon.png" }, "background": { - "label": "背景介绍", + "label": "背景", "placeholder": "/img/background.png" }, "customCSS": { diff --git a/public/locales/zh/settings/customization/shade-selector.json b/public/locales/zh/settings/customization/shade-selector.json index 0aa74462383..df5cf912d31 100644 --- a/public/locales/zh/settings/customization/shade-selector.json +++ b/public/locales/zh/settings/customization/shade-selector.json @@ -1,3 +1,3 @@ { - "label": "遮阳板" + "label": "阴影" } \ No newline at end of file diff --git a/public/locales/zh/settings/general/config-changer.json b/public/locales/zh/settings/general/config-changer.json index 9ff966a05c8..20adb5740db 100644 --- a/public/locales/zh/settings/general/config-changer.json +++ b/public/locales/zh/settings/general/config-changer.json @@ -13,7 +13,7 @@ }, "events": { "configSaved": { - "title": "保存的配置", + "title": "配置已保存", "message": "配置保存为 {{configName}}" } } @@ -24,8 +24,8 @@ "text": "删除配置", "notifications": { "deleted": { - "title": "配置删除", - "message": "配置删除" + "title": "配置已删除", + "message": "配置已删除" }, "deleteFailed": { "title": "配置删除失败", @@ -42,7 +42,7 @@ "message": "无法加载您的配置。无效的JSON格式。" }, "loadedSuccessfully": { - "title": "配置 {{configName}} ,成功加载。" + "title": "配置 {{configName}} 已成功加载。" } }, "accept": { diff --git a/public/locales/zh/settings/general/module-enabler.json b/public/locales/zh/settings/general/module-enabler.json index bcd45b7342a..10852fa266f 100644 --- a/public/locales/zh/settings/general/module-enabler.json +++ b/public/locales/zh/settings/general/module-enabler.json @@ -1,3 +1,3 @@ { - "title": "模块使能器" + "title": "启用模块" } \ No newline at end of file diff --git a/public/locales/zh/settings/general/search-engine.json b/public/locales/zh/settings/general/search-engine.json index 9f17572cb93..b29f05d676e 100644 --- a/public/locales/zh/settings/general/search-engine.json +++ b/public/locales/zh/settings/general/search-engine.json @@ -1,11 +1,11 @@ { "title": "搜索引擎", "tips": { - "generalTip": "在你的查询前使用前缀 !yt和 !t,分别在YouTube上搜索或搜索Torrent。", + "generalTip": "在查询前使用前缀 !yt和 !t,可以在YouTube或Torrent中搜索。", "placeholderTip": "%s 可以作为查询的占位符。" }, "customEngine": { "label": "查询网址", - "placeholder": "自定义查询URL" + "placeholder": "自定义查询网址" } } \ No newline at end of file diff --git a/src/components/AppShelf/AddAppShelfItem.tsx b/src/components/AppShelf/AddAppShelfItem.tsx index 3d63e5772c7..804e4f8266f 100644 --- a/src/components/AppShelf/AddAppShelfItem.tsx +++ b/src/components/AppShelf/AddAppShelfItem.tsx @@ -26,6 +26,7 @@ import { useEffect, useState } from 'react'; import { v4 as uuidv4 } from 'uuid'; import { useConfig } from '../../tools/state'; import { tryMatchPort, ServiceTypeList, StatusCodes, Config } from '../../tools/types'; +import apiKeyPaths from './apiKeyPaths.json'; import Tip from '../layout/Tip'; export function AddItemShelfButton(props: any) { @@ -307,7 +308,7 @@ export function AddAppShelfItemForm(props: AddAppShelfItemFormProps) { target="_blank" weight="bold" style={{ fontStyle: 'inherit', fontSize: 'inherit' }} - href={`${hostname}/settings/general`} + href={`${hostname}/${apiKeyPaths[form.values.type as keyof typeof apiKeyPaths]}`} > {t('modal.tabs.options.form.integrations.apiKey.tip.link')} diff --git a/src/components/AppShelf/apiKeyPaths.json b/src/components/AppShelf/apiKeyPaths.json new file mode 100644 index 00000000000..3ecd0f3389c --- /dev/null +++ b/src/components/AppShelf/apiKeyPaths.json @@ -0,0 +1,9 @@ +{ + "Jellyseerr": "settings", + "Overseerr": "settings", + "Sonarr": "settings/general", + "Radarr": "settings/general", + "Readarr": "settings/general", + "Lidarr": "settings/general", + "Sabnzbd": "sabnzbd/config/general" +} diff --git a/src/modules/dashdot/DashdotModule.tsx b/src/modules/dashdot/DashdotModule.tsx index c3a91ee633d..5ab7446f664 100644 --- a/src/modules/dashdot/DashdotModule.tsx +++ b/src/modules/dashdot/DashdotModule.tsx @@ -145,6 +145,7 @@ export function DashdotComponent() { const graphs = [ { + id: 'cpu', name: t('card.graphs.cpu.title'), enabled: cpuEnabled, params: { @@ -152,6 +153,7 @@ export function DashdotComponent() { }, }, { + id: 'storage', name: t('card.graphs.storage.title'), enabled: storageEnabled && !isCompact, params: { @@ -159,15 +161,18 @@ export function DashdotComponent() { }, }, { + id: 'ram', name: t('card.graphs.memory.title'), enabled: ramEnabled, }, { + id: 'network', name: t('card.graphs.network.title'), enabled: networkEnabled, spanTwo: true, }, { + id: 'gpu', name: t('card.graphs.gpu.title'), enabled: gpuEnabled, spanTwo: true, @@ -232,7 +237,7 @@ export function DashdotComponent() { className={classes.iframe} key={graph.name} title={graph.name} - src={`${dashdotUrl}?singleGraphMode=true&graph=${graph.name.toLowerCase()}&theme=${colorScheme}&surface=${(colorScheme === + src={`${dashdotUrl}?singleGraphMode=true&graph=${graph.id.toLowerCase()}&theme=${colorScheme}&surface=${(colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0]