From a234fc844e5edcef9935efb0725b6ccceadfe69d Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 17:14:34 +0000 Subject: [PATCH 01/15] fix(deps): update dependency zod-form-data to ^2.0.5 (#1822) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/old-import/package.json | 2 +- packages/validation/package.json | 2 +- pnpm-lock.yaml | 21 +++++++-------------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/packages/old-import/package.json b/packages/old-import/package.json index a5b31b9f6..ec29f8684 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -44,7 +44,7 @@ "react": "^19.0.0", "superjson": "2.2.2", "zod": "^3.24.1", - "zod-form-data": "^2.0.4" + "zod-form-data": "^2.0.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/validation/package.json b/packages/validation/package.json index 61c15f817..13b77aeca 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -26,7 +26,7 @@ "@homarr/definitions": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "zod": "^3.24.1", - "zod-form-data": "^2.0.4" + "zod-form-data": "^2.0.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15f21b980..b661409c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1301,8 +1301,8 @@ importers: specifier: ^3.24.1 version: 3.24.1 zod-form-data: - specifier: ^2.0.4 - version: 2.0.4(@rvf/set-get@7.0.0)(zod@3.24.1) + specifier: ^2.0.5 + version: 2.0.5(zod@3.24.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1667,8 +1667,8 @@ importers: specifier: ^3.24.1 version: 3.24.1 zod-form-data: - specifier: ^2.0.4 - version: 2.0.4(@rvf/set-get@7.0.0)(zod@3.24.1) + specifier: ^2.0.5 + version: 2.0.5(zod@3.24.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -3462,9 +3462,6 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rvf/set-get@7.0.0': - resolution: {integrity: sha512-mseFkwanF/heWzO2Eey741P4m+Fovl9GWwa7Bfgw4YW2E7dcA6d7KAYl012rTGdW4L9KP5GOSA48CkEA1mC2eg==} - '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} @@ -9516,10 +9513,9 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod-form-data@2.0.4: - resolution: {integrity: sha512-9OrcgjNN51kf4r+zgTXyTi7lS5OkqO6Wo0CLWpin9pgfGzpBBTIV0E+tyQDbNUvn2yrqNx3OXca+CDwb4kZDbg==} + zod-form-data@2.0.5: + resolution: {integrity: sha512-T7dV6lTBCwkd8PyvJVCnjXKpgXomU8gEm/TcvEZY7qNdRhIo9T17HrdlHIK68PzTAYaV2HxR9rgwpTSWv0L+QQ==} peerDependencies: - '@rvf/set-get': '>= 6.0.3 < 8.0.0' zod: '>= 3.11.0' zod-openapi@2.19.0: @@ -10859,8 +10855,6 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rvf/set-get@7.0.0': {} - '@scarf/scarf@1.4.0': {} '@sec-ant/readable-stream@0.4.1': {} @@ -18042,9 +18036,8 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-form-data@2.0.4(@rvf/set-get@7.0.0)(zod@3.24.1): + zod-form-data@2.0.5(zod@3.24.1): dependencies: - '@rvf/set-get': 7.0.0 zod: 3.24.1 zod-openapi@2.19.0(zod@3.24.1): From 1fcf9d01462d9cdb3f474a1875983894b7a71385 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 00:48:53 +0000 Subject: [PATCH 02/15] chore(lang): updated translations from crowdin Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/cn.json | 831 ++++++++++++++------------ packages/translation/src/lang/cs.json | 47 ++ packages/translation/src/lang/da.json | 47 ++ packages/translation/src/lang/de.json | 47 ++ packages/translation/src/lang/el.json | 47 ++ packages/translation/src/lang/es.json | 61 +- packages/translation/src/lang/et.json | 47 ++ packages/translation/src/lang/fr.json | 47 ++ packages/translation/src/lang/he.json | 47 ++ packages/translation/src/lang/hr.json | 47 ++ packages/translation/src/lang/hu.json | 47 ++ packages/translation/src/lang/it.json | 47 ++ packages/translation/src/lang/ja.json | 47 ++ packages/translation/src/lang/ko.json | 47 ++ packages/translation/src/lang/lt.json | 47 ++ packages/translation/src/lang/lv.json | 49 +- packages/translation/src/lang/nl.json | 47 ++ packages/translation/src/lang/no.json | 47 ++ packages/translation/src/lang/pl.json | 47 ++ packages/translation/src/lang/pt.json | 47 ++ packages/translation/src/lang/ro.json | 47 ++ packages/translation/src/lang/ru.json | 47 ++ packages/translation/src/lang/sk.json | 47 ++ packages/translation/src/lang/sl.json | 47 ++ packages/translation/src/lang/sv.json | 47 ++ packages/translation/src/lang/tr.json | 55 +- packages/translation/src/lang/uk.json | 361 ++++++----- packages/translation/src/lang/vi.json | 47 ++ packages/translation/src/lang/zh.json | 47 ++ 29 files changed, 1924 insertions(+), 561 deletions(-) diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index 453fa6021..f139ef930 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -6,7 +6,7 @@ "subtitle": "让我们开始设置您的 Homarr 实例。", "description": "首先,请选择您想要如何设置您的 Homarr 实例。", "action": { - "scratch": "从头开始", + "scratch": "从零开始", "importOldmarr": "从 1.0 之前的 Homarr 导入" } }, @@ -43,7 +43,7 @@ "entities": { "apps": "应用", "boards": "面板", - "integrations": "组件", + "integrations": "集成", "credentialUsers": "用户凭证" } }, @@ -65,7 +65,7 @@ }, "user": { "title": "管理员用户", - "subtitle": "指定您的管理员用户的凭据。", + "subtitle": "指定您的管理员用户的凭证。", "notification": { "success": { "title": "创建用户", @@ -77,11 +77,11 @@ } }, "group": { - "title": "外部组", - "subtitle": "指定应该用于外部用户的组。", + "title": "外部用户组", + "subtitle": "指定应该用于外部用户的用户组。", "form": { "name": { - "label": "组名称", + "label": "用户组名称", "description": "名称必须与外部提供商的管理组匹配" } } @@ -284,9 +284,9 @@ } }, "group": { - "title": "群组", - "name": "群组", - "search": "查找群组", + "title": "用户组", + "name": "组", + "search": "查找用户组", "field": { "name": "名称", "members": "成员" @@ -310,7 +310,7 @@ }, "use-all": { "label": "使用全部应用", - "description": "允许成员将任何应用添加到他们的面板" + "description": "允许成员将任意应用添加到他们的面板" }, "modify-all": { "label": "修改所有应用", @@ -352,15 +352,15 @@ }, "use-all": { "label": "使用全部集成", - "description": "允许成员将任何组件添加到他们的面板" + "description": "允许成员将任意集成添加到他们的面板" }, "interact-all": { "label": "与任意集成进行互动", - "description": "允许成员与任意组件进行交互" + "description": "允许成员与任意集成进行交互" }, "full-all": { - "label": "完整的组件访问权限", - "description": "允许成员管理、使用并与任意组件交互" + "label": "完整的集成访问权限", + "description": "允许成员管理、使用并与任意集成交互" } } }, @@ -377,7 +377,7 @@ }, "full-all": { "label": "完全的媒体访问权限", - "description": "允许成员管理和删除任何媒体" + "description": "允许成员管理和删除任意媒体" } } }, @@ -560,13 +560,13 @@ "page": { "list": { "title": "集成", - "search": "搜索组件", + "search": "搜索集成", "noResults": { - "title": "尚无组件" + "title": "尚无集成" } }, "create": { - "title": "新的组件 {name}", + "title": "新的集成 {name}", "notification": { "success": { "title": "创建成功", @@ -579,29 +579,29 @@ } }, "edit": { - "title": "编辑组件 {name}", + "title": "编辑集成 {name}", "notification": { "success": { "title": "成功应用更改", - "message": "组件已成功保存" + "message": "集成已成功保存" }, "error": { "title": "无法应用更改", - "message": "无法保存此组件" + "message": "无法保存此集成" } } }, "delete": { - "title": "删除组件", - "message": "确认删除组件 {name} 吗?", + "title": "删除集成", + "message": "确认删除集成 {name} 吗?", "notification": { "success": { "title": "删除成功", - "message": "组件已成功删除" + "message": "集成已成功删除" }, "error": { "title": "删除失败", - "message": "无法删除组件" + "message": "无法删除集成" } } } @@ -612,10 +612,14 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { - "create": "新建组件" + "create": "新建集成" }, "testConnection": { "action": { @@ -884,7 +888,7 @@ "invalidFileType": "", "fileTooLarge": "", "invalidConfiguration": "", - "groupNameTaken": "" + "groupNameTaken": "用户组名称已存在" } } } @@ -924,12 +928,12 @@ "message": "" }, "edit": { - "title": "", - "submit": "" + "title": "重命名分类", + "submit": "重命名分类" }, "menu": { "label": { - "create": "", + "create": "新建分类", "changePosition": "换位" } } @@ -978,7 +982,7 @@ }, "field": { "integrations": { - "label": "组件" + "label": "集成" }, "customCssClasses": { "label": "" @@ -1151,8 +1155,27 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { - "name": "笔记本", + "name": "笔记", "description": "", "option": { "showToolbar": { @@ -1162,7 +1185,7 @@ "label": "允许在只读模式中检查" }, "content": { - "label": "笔记本的内容" + "label": "笔记的内容" } }, "controls": { @@ -1269,7 +1292,7 @@ }, "smartHome-executeAutomation": { "name": "", - "description": "", + "description": "一键触发自动化操作", "option": { "displayName": { "label": "显示名称" @@ -1284,21 +1307,21 @@ }, "calendar": { "name": "日历", - "description": "", + "description": "在日历视图中显示某个相对时间段内的集成事件", "option": { "releaseType": { - "label": "Radarr发布类型", + "label": "Radarr 发布类型", "options": { - "inCinemas": "", - "digitalRelease": "", - "physicalRelease": "" + "inCinemas": "院线放映中", + "digitalRelease": "数字发行", + "physicalRelease": "物理发布" } }, "filterPastMonths": { - "label": "" + "label": "开始于" }, "filterFutureMonths": { - "label": "" + "label": "结束于" } } }, @@ -1307,7 +1330,7 @@ "description": "显示指定位置的当前天气信息。", "option": { "isFormatFahrenheit": { - "label": "" + "label": "华氏温度" }, "location": { "label": "天气位置" @@ -1316,10 +1339,10 @@ "label": "显示城市" }, "hasForecast": { - "label": "" + "label": "显示预报" }, "forecastDayCount": { - "label": "", + "label": "预报天数", "description": "当小部件不够宽时,显示的天数减少" }, "dateFormat": { @@ -1349,13 +1372,13 @@ "description": "索引器状态", "option": { "openIndexerSiteInNewTab": { - "label": "" + "label": "在新标签中打开索引器站点" } }, "title": "索引器管理", "testAll": "测试全部", "error": { - "internalServerError": "" + "internalServerError": "获取索引器状态失败" } }, "healthMonitoring": { @@ -1366,7 +1389,7 @@ "label": "CPU 温度(华氏度)" }, "cpu": { - "label": "显示CPU信息" + "label": "显示 CPU 信息" }, "memory": { "label": "显示内存信息" @@ -1376,41 +1399,41 @@ } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", - "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", + "information": "信息", + "processor": "处理器:{cpuModelName}", + "memory": "内存:{memory} GiB", + "memoryAvailable": "可用:{memoryAvailable}GiB ({percent}%)", + "version": "版本:{version}", + "uptime": "运行时间:{months} 月,{days} 天,{hours} 时,{minutes} 分", + "loadAverage": "平均负载:", + "minute": "1 分钟", + "minutes": "{count} 分钟", + "used": "已使用", "available": "可用", - "lastSeen": "" + "lastSeen": "最近状态更新:{lastSeen}" }, "memory": {}, "error": { - "internalServerError": "" + "internalServerError": "获取健康状态失败" } }, "common": { "location": { "query": "城市/邮编", - "latitude": "", - "longitude": "", + "latitude": "纬度", + "longitude": "经度", "disabledTooltip": "请输入城市或邮编", - "unknownLocation": "", + "unknownLocation": "未知位置", "search": "搜索", "table": { "header": { "city": "城市", "country": "国家", - "coordinates": "", - "population": "" + "coordinates": "坐标", + "population": "人口" }, "action": { - "select": "" + "select": "选择 {city},{countryCode}" }, "population": { "fallback": "未知" @@ -1418,16 +1441,16 @@ } }, "integration": { - "noData": "", - "description": "" + "noData": "没有找到集成", + "description": "点击 创建一个新的集成" }, "app": { - "noData": "", - "description": "" + "noData": "未找到应用", + "description": "点击 创建一个新的应用" }, "error": { - "noIntegration": "", - "noData": "" + "noIntegration": "未选择集成", + "noData": "没有可用的集成数据" }, "option": {} }, @@ -1440,13 +1463,13 @@ }, "hasAutoPlay": { "label": "自动播放", - "description": "" + "description": "自动播放仅在因浏览器限制而被静音时生效" }, "isMuted": { - "label": "" + "label": "静音" }, "hasControls": { - "label": "" + "label": "显示控件" } }, "error": { @@ -1455,114 +1478,114 @@ } }, "mediaServer": { - "name": "", - "description": "", + "name": "当前媒体服务流", + "description": "显示媒体服务器上的当前流", "option": {}, "items": { - "user": "", - "name": "", - "id": "" + "user": "用户", + "name": "名称", + "id": "ID" } }, "downloads": { "name": "下载客户端", - "description": "", + "description": "允许您查看和管理来自Torrent 和 Usenet 客户端的下载。", "option": { "columns": { - "label": "" + "label": "显示的列" }, "enableRowSorting": { - "label": "" + "label": "启用项目排序" }, "defaultSort": { - "label": "" + "label": "默认排序列" }, "descendingDefaultSort": { - "label": "" + "label": "倒序" }, "showCompletedUsenet": { - "label": "" + "label": "显示标记为已完成的 usenet 条目" }, "showCompletedTorrent": { - "label": "" + "label": "显示标记为已完成的 Torrent 条目" }, "activeTorrentThreshold": { - "label": "" + "label": "隐藏在此阈值下已完成的 Torrent (kiB/s)" }, "categoryFilter": { - "label": "" + "label": "要过滤的分类/标签" }, "filterIsWhitelist": { - "label": "" + "label": "以白名单过滤" }, "applyFilterToRatio": { - "label": "" + "label": "使用过滤器来计算比率" } }, "errors": { - "noColumns": "", - "noCommunications": "" + "noColumns": "在项目中选择列", + "noCommunications": "无法从集成中加载数据" }, "items": { "actions": { - "columnTitle": "" + "columnTitle": "控制" }, "added": { - "columnTitle": "", + "columnTitle": "已添加", "detailsTitle": "日期已添加" }, "category": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "扩展的", + "detailsTitle": "分类(额外信息)" }, "downSpeed": { "columnTitle": "下载", "detailsTitle": "下载速度" }, "index": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "#", + "detailsTitle": "客户端中的当前索引" }, "id": { - "columnTitle": "" + "columnTitle": "ID" }, "integration": { "columnTitle": "集成" }, "name": { - "columnTitle": "" + "columnTitle": "作业名称" }, "progress": { "columnTitle": "进度", - "detailsTitle": "" + "detailsTitle": "下载进度" }, "ratio": { "columnTitle": "分享率", - "detailsTitle": "" + "detailsTitle": "Torrent 比率(接收/发送)" }, "received": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "总下载", + "detailsTitle": "总下载量" }, "sent": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "总上传", + "detailsTitle": "总上传量" }, "size": { "columnTitle": "文件大小", - "detailsTitle": "" + "detailsTitle": "选择/文件的总大小" }, "state": { "columnTitle": "状态", - "detailsTitle": "" + "detailsTitle": "作业状态" }, "time": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "完成时间", + "detailsTitle": "结束/结束时间" }, "type": { "columnTitle": "类型", - "detailsTitle": "" + "detailsTitle": "下载客户端类型" }, "upSpeed": { "columnTitle": "上传", @@ -1574,38 +1597,38 @@ "queued": "排队中", "paused": "已暂停", "completed": "已完成", - "failed": "", - "processing": "", - "leeching": "", - "stalled": "", + "failed": "已失败", + "processing": "处理中", + "leeching": "吸血", + "stalled": "已暂停", "unknown": "未知", - "seeding": "" + "seeding": "做种中" }, "actions": { "clients": { - "modalTitle": "", - "pause": "", - "resume": "" + "modalTitle": "下载客户列表", + "pause": "暂停所有客户端/项目", + "resume": "恢复所有客户端/项目" }, "client": { - "pause": "", - "resume": "" + "pause": "暂停客户端", + "resume": "恢复客户端" }, "item": { - "pause": "", - "resume": "", + "pause": "暂停项目", + "resume": "恢复项目", "delete": { - "title": "", - "modalTitle": "", - "entry": "", - "entryAndFiles": "" + "title": "删除项目", + "modalTitle": "确定要删除此作业?", + "entry": "删除条目", + "entryAndFiles": "删除条目和文件(s)" } } }, - "globalRatio": "" + "globalRatio": "全局比率" }, "mediaRequests-requestList": { - "name": "", + "name": "媒体请求列表", "description": "查看 Overr 或 Jellyseerr 实例中的所有媒体请求列表", "option": { "linksTargetNewTab": { @@ -1613,18 +1636,18 @@ } }, "pending": { - "approve": "", - "approving": "", - "decline": "" + "approve": "批准请求", + "approving": "正在批准请求...", + "decline": "拒绝请求" }, "availability": { "unknown": "未知", - "pending": "", - "processing": "", + "pending": "等待处理", + "processing": "处理中", "partiallyAvailable": "部分", "available": "可用" }, - "toBeDetermined": "" + "toBeDetermined": "待定" }, "mediaRequests-requestStats": { "name": "媒体请求状态", @@ -1635,16 +1658,16 @@ "main": "媒体统计", "approved": "已经批准", "pending": "等待批准", - "processing": "", - "declined": "", - "available": "", + "processing": "处理中", + "declined": "已拒绝", + "available": "已可用", "tv": "电视请求", "movie": "电影请求", "total": "请求总计" }, "users": { "main": "用户排行", - "requests": "" + "requests": "请求" } } }, @@ -1656,17 +1679,17 @@ "label": "默认视图" }, "queuePageSize": { - "label": "" + "label": "队列页面大小" } }, "tab": { - "workers": "工作种", + "workers": "工作中", "queue": "队列", "statistics": "统计" }, - "currentIndex": "", + "currentIndex": "{total} 的 {start}-{end}", "healthCheck": { - "title": "", + "title": "健康检查", "queued": "排队中", "status": { "healthy": "健康", @@ -1677,11 +1700,11 @@ "statistics": { "empty": "空", "transcodes": "转码", - "transcodesCount": "", - "healthChecksCount": "", - "filesCount": "", - "savedSpace": "", - "healthChecks": "", + "transcodesCount": "转码:{value}", + "healthChecksCount": "健康检查:{value}", + "filesCount": "文件数:{value}", + "savedSpace": "节省空间:{value}", + "healthChecks": "健康检查", "videoCodecs": "编码", "videoContainers": "容器", "videoResolutions": "分辨率" @@ -1693,7 +1716,7 @@ "eta": "剩余时间", "progress": "进度", "transcode": "转码", - "healthCheck": "" + "healthCheck": "健康检查" } }, "queue": { @@ -1702,26 +1725,26 @@ "file": "文件", "size": "大小", "transcode": "转码", - "healthCheck": "" + "healthCheck": "健康检查" } } } }, "rssFeed": { - "name": "", - "description": "", + "name": "RSS 订阅", + "description": "监视和显示一个或多个通用 RSS、ATOM 或 JSON 源", "option": { "feedUrls": { - "label": "" + "label": "订阅网址" }, "enableRtl": { "label": "启用 RTL" }, "textLinesClamp": { - "label": "" + "label": "描述线条" }, "maximumAmountPosts": { - "label": "" + "label": "帖子数量限制" } } } @@ -1732,7 +1755,7 @@ "disabled": "禁用编辑模式" }, "dimensions": { - "title": "" + "title": "更改尺寸" } }, "board": { @@ -1741,40 +1764,40 @@ "notification": { "success": { "title": "成功应用更改", - "message": "" + "message": "面板保存成功" }, "error": { "title": "无法应用更改", - "message": "" + "message": "面板无法保存" } }, "confirmLeave": { - "title": "", - "message": "" + "title": "未保存更改", + "message": "您有尚未保存的更改。您确定要离开吗?" } }, "oldImport": { - "label": "", + "label": "从 1.0.0 之前的 Homarr 导入", "notification": { "success": { - "title": "", - "message": "" + "title": "导入成功", + "message": "面板导入成功" }, "error": { - "title": "", + "title": "导入失败", "message": "无法导入面板,请检查日志以获取更多详情" } }, "form": { "file": { - "label": "", - "invalidError": "" + "label": "选择 JSON 文件", + "invalidError": "无效的配置文件" }, "apps": { "label": "应用", "avoidDuplicates": { - "label": "", - "description": "" + "label": "避免重复", + "description": "忽略已经存在具有相同链接的应用" }, "onlyImportApps": { "label": "仅导入应用", @@ -1782,7 +1805,7 @@ } }, "name": { - "label": "" + "label": "面板名称" }, "screenSize": { "label": "屏幕大小", @@ -1815,48 +1838,48 @@ "label": "页面标题" }, "metaTitle": { - "label": "" + "label": "Meta标题" }, "logoImageUrl": { - "label": "" + "label": "Logo 图像 URL" }, "faviconImageUrl": { - "label": "" + "label": "Favicon 图像 URL" }, "backgroundImageUrl": { - "label": "" + "label": "背景图片 URL" }, "backgroundImageAttachment": { "label": "背景图片附件", "option": { "fixed": { - "label": "", - "description": "" + "label": "已修复", + "description": "背景保持不变。" }, "scroll": { - "label": "", - "description": "" + "label": "滚动", + "description": "用鼠标滚动背景。" } } }, "backgroundImageRepeat": { - "label": "", + "label": "背景图片重复", "option": { "repeat": { - "label": "", - "description": "" + "label": "重复", + "description": "为了覆盖整个背景图像绘画区域,所需的图像会被重复使用。" }, "no-repeat": { - "label": "", - "description": "" + "label": "不重复", + "description": "图像不重复,无法填充整个空间。" }, "repeat-x": { - "label": "", - "description": "" + "label": "水平重复", + "description": "与“重复”相同,但仅在水平轴上。" }, "repeat-y": { - "label": "", - "description": "" + "label": "垂直重复", + "description": "与“重复”相同,但仅在垂直轴上。" } } }, @@ -1864,12 +1887,12 @@ "label": "背景图像大小", "option": { "cover": { - "label": "", - "description": "" + "label": "封面", + "description": "通过裁剪过多的空间,将图像缩放得尽可能小以覆盖整个窗口。" }, "contain": { - "label": "", - "description": "" + "label": "包含", + "description": "将图像缩放在容器内,但不裁剪或拉伸图像。" } } }, @@ -1880,36 +1903,36 @@ "label": "辅助色" }, "opacity": { - "label": "" + "label": "不透明度" }, "customCss": { - "label": "", + "label": "自定义此面板的 css", "description": "只推荐有经验的用户使用 CSS 自定义面板", "customClassesAlert": { - "title": "", - "description": "" + "title": "自定义类别", + "description": "您可以在每个项目的高级选项中添加自定义类别到您的面板项目并在上面的自定义 CSS 中使用它们。" } }, "columnCount": { - "label": "" + "label": "列数" }, "name": { "label": "名称" }, "isPublic": { "label": "公开", - "description": "" + "description": "每个人都可以访问公共面板,即使没有账户。" } }, "content": { - "metaTitle": "" + "metaTitle": "{boardName} 面板" }, "setting": { "title": "{boardName} 面板设置", "section": { "general": { "title": "通用", - "unrecognizedLink": "" + "unrecognizedLink": "提供的链接未被识别,无法预览,但它可能仍然有效。" }, "layout": { "title": "显示布局" @@ -1918,23 +1941,23 @@ "title": "背景" }, "color": { - "title": "" + "title": "配色" }, "customCss": { - "title": "" + "title": "自定义 css" }, "access": { - "title": "", + "title": "访问控制", "permission": { "item": { "view": { "label": "查看面板" }, "modify": { - "label": "" + "label": "修改面板" }, "full": { - "label": "" + "label": "完全访问" } } } @@ -1943,41 +1966,41 @@ "title": "危险", "action": { "rename": { - "label": "", - "description": "", - "button": "", + "label": "重命名面板", + "description": "更改名称将会破坏到此面板的任何链接。", + "button": "更改名字", "modal": { - "title": "" + "title": "重命名面板" } }, "visibility": { - "label": "", + "label": "更改面板可见性", "description": { - "public": "", - "private": "" + "public": "此面板目前是公开的。", + "private": "此面板目前是私有的。" }, "button": { - "public": "", - "private": "" + "public": "设为私有", + "private": "设为公开" }, "confirm": { "public": { - "title": "", - "description": "" + "title": "设为私有面板", + "description": "您确定要将此面板设置为私有吗?这将隐藏在公众面前的面板。方可的链接将会断开。" }, "private": { - "title": "", - "description": "" + "title": "设为公开面板", + "description": "您确定要公开这个面板吗?这将使所有人都可以访问面板。" } } }, "delete": { - "label": "", - "description": "", - "button": "", + "label": "删除面板", + "description": "面板一旦删除就无法恢复. 请谨慎操作.", + "button": "删除面板", "confirm": { "title": "删除面板", - "description": "" + "description": "您确定要删除此面板吗?这将永久删除面板及其所有内容。" } } } @@ -1987,15 +2010,15 @@ "error": { "noBoard": { "title": "欢迎使用 Homarr", - "description": "", + "description": "一个时尚、现代的仪表盘,让你的所有应用和服务触手可及。", "link": "创建您的第一个面板", "notice": "要使这个页面消失,请创建一个面板并将其设置为主面板" }, "notFound": { - "title": "", - "description": "", + "title": "找不到面板", + "description": "未找到指定的面板,或者您没有访问权限。", "link": "查看全部面板", - "notice": "" + "notice": "如果您认为链接应该可以访问,请检查链接或联系管理员" }, "homeBoard": { "title": "没有主面板", @@ -2018,23 +2041,23 @@ } }, "management": { - "metaTitle": "", + "metaTitle": "管理中心", "title": { - "morning": "", - "afternoon": "", - "evening": "" + "morning": "{username},早上好呀 !", + "afternoon": "{username},下午好呀 !", + "evening": "{username},晚上好呀 !" }, "notFound": { - "title": "", - "text": "" + "title": "未找到", + "text": "找不到请求的资源" }, "navbar": { "items": { "home": "首页", "boards": "面板", "apps": "应用", - "integrations": "组件", - "searchEngies": "", + "integrations": "集成", + "searchEngies": "搜索引擎", "medias": "媒体", "users": { "label": "用户", @@ -2047,7 +2070,7 @@ "tools": { "label": "工具", "items": { - "docker": "", + "docker": "Docker", "logs": "日志", "api": "API", "tasks": "任务" @@ -2058,9 +2081,9 @@ "label": "帮助", "items": { "documentation": "文档", - "submitIssue": "", + "submitIssue": "提交问题", "discord": "Discord 社区", - "sourceCode": "" + "sourceCode": "源码" } }, "about": "关于" @@ -2072,25 +2095,25 @@ "board": "面板", "user": "用户", "invite": "邀请", - "integration": "组件", + "integration": "集成", "app": "应用", "group": "群组" }, "statisticLabel": { "boards": "面板", - "resources": "", - "authentication": "", - "authorization": "" + "resources": "资源", + "authentication": "认证", + "authorization": "认证" } }, "board": { "title": "您的面板", "action": { "new": { - "label": "" + "label": "新建面板" }, "open": { - "label": "" + "label": "打开面板" }, "settings": { "label": "设置" @@ -2106,13 +2129,13 @@ "label": "永久删除", "confirm": { "title": "删除面板", - "description": "" + "description": "确认删除面板 {name} 吗?" } } }, "visibility": { - "public": "", - "private": "" + "public": "此面板是公开的", + "private": "此面板是私有的" }, "modal": { "createBoard": { @@ -2125,11 +2148,11 @@ } }, "media": { - "includeFromAllUsers": "" + "includeFromAllUsers": "包含来自所有用户的媒体" }, "user": { - "back": "", - "fieldsDisabledExternalProvider": "", + "back": "返回用户", + "fieldsDisabledExternalProvider": "某些字段被禁用,因为它们是由外部认证提供者管理的。", "setting": { "general": { "title": "通用", @@ -2152,25 +2175,25 @@ "title": "用户" }, "edit": { - "metaTitle": "" + "metaTitle": "编辑用户 {username}" }, "create": { "metaTitle": "创建用户", - "title": "", + "title": "创建新用户", "step": { "personalInformation": { - "label": "" + "label": "个人资料" }, "security": { "label": "安全" }, "groups": { "label": "群组", - "title": "", - "description": "" + "title": "选择用户应该属于的用户组", + "description": "{everyoneGroup} 用户组被分配给所有用户,不能被删除。" }, "review": { - "label": "" + "label": "预览" }, "completed": { "title": "创建用户" @@ -2180,22 +2203,22 @@ } }, "action": { - "createAnother": "", - "back": "" + "createAnother": "创建另一个用户", + "back": "返回用户列表" } }, "invite": { "title": "管理用户邀请", "action": { "new": { - "title": "", + "title": "新建邀请", "description": "过期后,邀请会失效,被邀请的收件人将无法创建账号。" }, "copy": { - "title": "", - "description": "", + "title": "复制邀请", + "description": "您的邀请已生成。在此模式关闭后,您将无法再复制此链接。如果你不想再邀请这个人,你可以随时删除这个邀请。", "link": "邀请链接", - "button": "" + "button": "复制并关闭" }, "delete": { "title": "删除邀请", @@ -2204,7 +2227,7 @@ }, "field": { "id": { - "label": "" + "label": "ID" }, "creator": { "label": "创建者" @@ -2213,29 +2236,29 @@ "label": "过期时间" }, "token": { - "label": "" + "label": "秘钥" } } } }, "group": { - "back": "", + "back": "返回用户组", "setting": { "general": { "title": "通用", "owner": "所有者", - "ownerOfGroup": "", - "ownerOfGroupDeleted": "" + "ownerOfGroup": "该组的所有者", + "ownerOfGroupDeleted": "此用户组的所有者已被删除。它目前没有所有者。" }, "members": { "title": "成员", - "search": "", - "notFound": "" + "search": "查找成员", + "notFound": "没有找到成员" }, "permissions": { - "title": "", + "title": "权限", "form": { - "unsavedChanges": "" + "unsavedChanges": "你有未保存的更改 !" } } } @@ -2324,6 +2347,9 @@ "error": "错误" }, "job": { + "minecraftServerStatus": { + "label": "Minecraft 服务状态" + }, "iconsUpdater": { "label": "图标更新" }, @@ -2404,20 +2430,20 @@ } }, "about": { - "version": "", - "text": "", + "version": "版本 {version}", + "text": "Homarr 是个由社区推动的开源项目,是志愿者们在维护。多亏了这些人,从 2021 年起,Homarr 这个项目一直在发展壮大。我们的团队来自许多不同的国家,完全远程工作,在空闲时间无偿搞 Homarr 这个项目。", "accordion": { "contributors": { - "title": "", - "subtitle": "" + "title": "贡献人员", + "subtitle": "{count} 维护代码和 Homarr" }, "translators": { - "title": "", + "title": "翻译人员", "subtitle": "{count}翻译了许多语言" }, "libraries": { - "title": "", - "subtitle": "" + "title": "资源库", + "subtitle": "{count} 在 Homarr 代码中使用" } } } @@ -2426,9 +2452,9 @@ "docker": { "title": "容器", "table": { - "updated": "", - "search": "", - "selected": "" + "updated": "已更新 {when}", + "search": "搜索 {count} 容器", + "selected": "{totalCount} 容器的 {selectCount}" }, "field": { "name": { @@ -2441,9 +2467,9 @@ "running": "运行中", "paused": "已暂停", "restarting": "正在重启", - "exited": "", + "exited": "已退出", "removing": "删除中", - "dead": "" + "dead": "废弃" } }, "containerImage": { @@ -2458,12 +2484,12 @@ "label": "开始", "notification": { "success": { - "title": "", - "message": "" + "title": "容器已启动", + "message": "容器已成功启动" }, "error": { - "title": "", - "message": "" + "title": "容器未启动", + "message": "容器无法启动" } } }, @@ -2471,12 +2497,12 @@ "label": "停止", "notification": { "success": { - "title": "", - "message": "" + "title": "容器已停止", + "message": "容器已成功停止" }, "error": { - "title": "", - "message": "" + "title": "容器未停止", + "message": "容器无法停止" } } }, @@ -2484,12 +2510,12 @@ "label": "重启", "notification": { "success": { - "title": "", - "message": "" + "title": "容器已重启", + "message": "容器已成功重启" }, "error": { - "title": "", - "message": "" + "title": "容器未重启", + "message": "容器无法重启" } } }, @@ -2497,25 +2523,25 @@ "label": "删除", "notification": { "success": { - "title": "", - "message": "" + "title": "容器已删除", + "message": "容器已成功删除" }, "error": { - "title": "", - "message": "" + "title": "容器未删除", + "message": "容器无法删除" } } }, "refresh": { - "label": "", + "label": "刷新", "notification": { "success": { - "title": "", - "message": "" + "title": "容器已刷新", + "message": "您正在查看最新数据" }, "error": { - "title": "", - "message": "" + "title": "容器未刷新", + "message": "刷新容器时出现错误" } } } @@ -2525,17 +2551,17 @@ } }, "permission": { - "title": "", + "title": "权限", "userSelect": { - "title": "" + "title": "添加用户权限" }, "groupSelect": { - "title": "" + "title": "添加用户组权限" }, "tab": { "user": "用户", "group": "群组", - "inherited": "" + "inherited": "继承的用户组" }, "field": { "user": { @@ -2545,12 +2571,12 @@ "label": "群组" }, "permission": { - "label": "" + "label": "权限" } }, "action": { - "saveUser": "", - "saveGroup": "" + "saveUser": "保存用户权限", + "saveGroup": "保存用户组权限" } }, "navigationStructure": { @@ -2560,18 +2586,18 @@ "label": "面板" }, "integrations": { - "label": "组件", + "label": "集成", "edit": { "label": "编辑" }, "new": { - "label": "" + "label": "新建" } }, "search-engines": { "label": "搜索引擎", "new": { - "label": "" + "label": "新建" }, "edit": { "label": "编辑" @@ -2583,7 +2609,7 @@ "apps": { "label": "应用", "new": { - "label": "" + "label": "新建" }, "edit": { "label": "编辑" @@ -2607,7 +2633,7 @@ "tools": { "label": "工具", "docker": { - "label": "" + "label": "Docker" }, "logs": { "label": "日志" @@ -2623,27 +2649,27 @@ }, "search": { "placeholder": "搜索任意内容", - "nothingFound": "", + "nothingFound": "没有找到", "error": { - "fetch": "" + "fetch": "获取数据时发生错误。" }, "mode": { "appIntegrationBoard": { - "help": "", + "help": "搜索应用、集成或面板", "group": { "app": { "title": "应用", "children": { "action": { "open": { - "label": "" + "label": "打开应用网址" }, "edit": { "label": "编辑应用" } }, "detail": { - "title": "" + "title": "为应用选择一个动作" } } }, @@ -2652,7 +2678,7 @@ "children": { "action": { "open": { - "label": "" + "label": "打开面板" }, "homeBoard": { "label": "设置为主面板" @@ -2662,23 +2688,23 @@ } }, "detail": { - "title": "" + "title": "为面板选择一个动作" } } }, "integration": { - "title": "组件" + "title": "集成" } } }, "command": { - "help": "", + "help": "启用命令模式", "group": { "localCommand": { - "title": "" + "title": "本地命令" }, "globalCommand": { - "title": "", + "title": "全局命令", "option": { "colorScheme": { "light": "切换到日间模式", @@ -2693,73 +2719,78 @@ } }, "newBoard": { - "label": "" + "label": "创建面板" }, "importBoard": { - "label": "" + "label": "导入面板" }, "newApp": { - "label": "" + "label": "创建应用" }, "newIntegration": { - "label": "", + "label": "创建集成", "children": { "detail": { - "title": "" + "title": "选择您想要创建的集成类型" } } }, "newUser": { - "label": "" + "label": "创建新用户" }, "newInvite": { - "label": "" + "label": "创建新邀请" }, "newGroup": { - "label": "" + "label": "创建新用户组" } } } } }, + "media": { + "requestMovie": "请求电影", + "requestSeries": "请求电视节目", + "openIn": "在 {kind} 中打开" + }, "external": { - "help": "", + "help": "使用外部搜索引擎", "group": { "searchEngine": { - "title": "", + "title": "搜索引擎", "children": { "action": { "search": { - "label": "" + "label": "使用“{name}”搜索" } }, "detail": { - "title": "" + "title": "为搜索引起选择一个动作" }, "searchResults": { - "title": "" + "title": "选择搜索结果进行操作" } }, "option": { "google": { - "name": "", - "description": "" + "name": "谷歌", + "description": "使用 Google 搜索网络" }, "bing": { - "name": "", - "description": "" + "name": "Bing", + "description": "使用 Bing 搜索网络" }, "duckduckgo": { - "name": "", - "description": "" + "name": "DuckDuckGo", + "description": "用 DuckDuckGo 搜索网络" }, "torrent": { - "name": "", - "description": "" + "name": "种子", + "description": "在 Torrentdownloads.pro 上搜索种子。" }, "youTube": { - "name": "", - "description": "" + "name": "YouTube", + "description": "在 YouTube 上搜索视频" } } } @@ -2768,7 +2799,7 @@ "help": { "group": { "mode": { - "title": "" + "title": "模式" }, "help": { "title": "帮助", @@ -2777,7 +2808,7 @@ "label": "文档" }, "submitIssue": { - "label": "" + "label": "提交问题" }, "discord": { "label": "Discord 社区" @@ -2789,45 +2820,45 @@ "home": { "group": { "local": { - "title": "" + "title": "本地结果" } } }, "page": { - "help": "", + "help": "搜索页面", "group": { "page": { - "title": "", + "title": "页", "option": { "manageHome": { - "label": "" + "label": "管理首页" }, "manageBoard": { - "label": "" + "label": "管理面板" }, "manageApp": { - "label": "" + "label": "管理应用" }, "manageIntegration": { - "label": "" + "label": "管理集成" }, "manageSearchEngine": { - "label": "" + "label": "管理搜索引擎" }, "manageMedia": { - "label": "" + "label": "管理媒体" }, "manageUser": { "label": "管理用户" }, "manageInvite": { - "label": "" + "label": "管理邀请" }, "manageGroup": { - "label": "" + "label": "管理用户组" }, "manageDocker": { - "label": "" + "label": "管理 docker" }, "manageApi": { "label": "Swagger API" @@ -2855,18 +2886,18 @@ } }, "userGroup": { - "help": "", + "help": "搜索用户或用户组", "group": { "user": { "title": "用户", "children": { "action": { "detail": { - "label": "" + "label": "显示用户详情" } }, "detail": { - "title": "" + "title": "为用户选择一个动作" } } }, @@ -2875,17 +2906,17 @@ "children": { "action": { "detail": { - "label": "" + "label": "显示用户组详情" }, "manageMember": { - "label": "" + "label": "管理成员" }, "managePermission": { - "label": "" + "label": "管理权限" } }, "detail": { - "title": "" + "title": "为用户组选择一个动作" } } } @@ -2893,16 +2924,16 @@ } }, "engine": { - "search": "", + "search": "查找搜索引擎", "field": { "name": { "label": "名称" }, "short": { - "label": "" + "label": "不足" }, "urlTemplate": { - "label": "" + "label": "URL搜索模板" }, "description": { "label": "描述" @@ -2910,55 +2941,71 @@ }, "page": { "list": { - "title": "", + "title": "搜索引擎", "noResults": { - "title": "", - "action": "" + "title": "还没有搜索引擎", + "action": "创建您的第一个搜索引擎" }, - "interactive": "" + "interactive": "交互,使用集成" }, "create": { - "title": "", + "title": "创建搜索引擎", "notification": { "success": { - "title": "", - "message": "" + "title": "搜索引擎已创建", + "message": "搜索引擎已成功创建" }, "error": { - "title": "", - "message": "" + "title": "没有创建搜索引擎", + "message": "这个搜索引擎不能被创建" } } }, "edit": { - "title": "", + "title": "编辑搜索引擎", "notification": { "success": { "title": "成功应用更改", - "message": "" + "message": "搜索引擎已成功保存" }, "error": { "title": "无法应用更改", - "message": "" + "message": "无法保存搜索引擎" } }, - "configControl": "", + "configControl": "配置", "searchEngineType": { - "generic": "", - "fromIntegration": "" + "generic": "通用", + "fromIntegration": "来自集成" } }, "delete": { - "title": "", - "message": "", + "title": "删除搜索引擎", + "message": "确认删除搜索引擎 {name} 吗'?", "notification": { "success": { - "title": "", - "message": "" + "title": "搜索引擎已删除", + "message": "搜索引擎已成功删除" }, "error": { - "title": "", - "message": "" + "title": "搜索引擎没有删除", + "message": "这个搜索引擎不能被删除" + } + } + } + }, + "media": { + "request": { + "modal": { + "title": "请求 “{name}”", + "table": { + "header": { + "season": "季", + "episodes": "集" + } + }, + "button": { + "send": "发送请求" } } } diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index 03757122d..a3af99104 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -612,6 +612,10 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Zápisník", "description": "", @@ -2324,6 +2347,9 @@ "error": "Chyba" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index 03b0b25bd..0fc4c9a9a 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Notesbog", "description": "", @@ -2324,6 +2347,9 @@ "error": "Fejl" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index 3cb3449f6..e9a188f18 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -612,6 +612,10 @@ }, "url": { "label": "URL" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Notizbuch", "description": "Ein einfaches Notizbuch Widget, das Markdown unterstützt", @@ -2324,6 +2347,9 @@ "error": "Fehler" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index 5f0727cb0..cce979434 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Σημειωματάριο", "description": "", @@ -2324,6 +2347,9 @@ "error": "Σφάλμα" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 239d12d6d..d6a1419aa 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -2,20 +2,20 @@ "init": { "step": { "start": { - "title": "", + "title": "Bienvenido a Homarr", "subtitle": "", "description": "", "action": { - "scratch": "", - "importOldmarr": "" + "scratch": "Empezar de cero", + "importOldmarr": "Importar de Homarr antes de 1.0" } }, "import": { - "title": "", + "title": "Importar datos", "subtitle": "", "dropzone": { - "title": "", - "description": "" + "title": "Arrastre el archivo zip aquí o haga clic para navegar", + "description": "El zip subido será procesado y podrás seleccionar lo que quieres importar" }, "fileInfo": { "action": { @@ -23,7 +23,7 @@ } }, "importSettings": { - "title": "", + "title": "Importar ajustes", "description": "" }, "boardSelection": { @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Bloc de notas", "description": "", @@ -2324,6 +2347,9 @@ "error": "" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index 4f72a2dba..fcd6e1d09 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "", "description": "", @@ -2324,6 +2347,9 @@ "error": "" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index 61d7b9767..c0b186944 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -612,6 +612,10 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Bloc-notes", "description": "", @@ -2324,6 +2347,9 @@ "error": "Erreur" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 9583a92bf..d31e6b2f2 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -612,6 +612,10 @@ }, "url": { "label": "כתובת אתר" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "פנקס רשימות", "description": "ווידג'ט פשוט של מחברת התומך ב-markdown", @@ -2324,6 +2347,9 @@ "error": "שגיאה" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 1f1e7fafb..f78c4fce4 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Bilježnica", "description": "", @@ -2324,6 +2347,9 @@ "error": "Pogreška" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index 93e9b2e78..d1d74ed35 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Jegyzettömb", "description": "Egy egyszerű notebook widget, amely támogatja a leértékelést", @@ -2324,6 +2347,9 @@ "error": "Hiba" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index f287d2f73..0eaf3a837 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -612,6 +612,10 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Blocco note", "description": "", @@ -2324,6 +2347,9 @@ "error": "Errore" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index 74c44a010..ac57e8a0d 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "メモ帳", "description": "", @@ -2324,6 +2347,9 @@ "error": "エラー" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index 2696d9acc..279e9da68 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "노트북", "description": "", @@ -2324,6 +2347,9 @@ "error": "오류" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index 3465f1815..d7ca7ec58 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Užrašai", "description": "", @@ -2324,6 +2347,9 @@ "error": "" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index b2e568ba5..6ecae92c3 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -11,7 +11,7 @@ } }, "import": { - "title": "", + "title": "Importēt datus", "subtitle": "", "dropzone": { "title": "", @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Piezīmes", "description": "", @@ -2324,6 +2347,9 @@ "error": "Kļūda" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index 41bb61bb5..f089b5943 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -612,6 +612,10 @@ }, "url": { "label": "URL" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Notitieboek", "description": "Een eenvoudige notitie widget die markdown ondersteunt", @@ -2324,6 +2347,9 @@ "error": "Fout" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "Icoon updater" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "Gebruik een externe zoekmachine", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index 58ab1bcb5..6a92b3006 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Notisbok", "description": "", @@ -2324,6 +2347,9 @@ "error": "Feil" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index f59cee154..197ec08ae 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Notatnik", "description": "", @@ -2324,6 +2347,9 @@ "error": "Błąd" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index 314552f75..0bc16005b 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Caderno de anotações", "description": "", @@ -2324,6 +2347,9 @@ "error": "Erro" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index c9d12cd85..0b9244d47 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Agendă", "description": "", @@ -2324,6 +2347,9 @@ "error": "Eroare" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index 160e884a1..51110f68e 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -612,6 +612,10 @@ }, "url": { "label": "URL-адрес" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Заметки", "description": "Простой виджет заметок с поддержкой markdown", @@ -2324,6 +2347,9 @@ "error": "Ошибка" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "Обновление иконок" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "Использовать внешнюю поисковую систему", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index bbd0b1a71..1f7447e38 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -612,6 +612,10 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "Vytvorte vyhľadávače", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "Minecraft Server Stav", + "description": "", + "option": { + "title": { + "label": "Názov" + }, + "domain": { + "label": "Adresa servera" + }, + "isBedrockServer": { + "label": "Bedrock server" + } + }, + "status": { + "online": "Online", + "offline": "Odpojené" + } + }, "notebook": { "name": "Poznámkový blok", "description": "Jednoduchý widget poznámkového bloku, ktorý podporuje markdown", @@ -2324,6 +2347,9 @@ "error": "Chyba" }, "job": { + "minecraftServerStatus": { + "label": "Minecraft Server Stav" + }, "iconsUpdater": { "label": "Aktualizátor ikon" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "Používanie externého vyhľadávača", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index c0da63e30..f7ec5401b 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Beležnica", "description": "", @@ -2324,6 +2347,9 @@ "error": "Napaka" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index 5263131b8..b7ec6e965 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Anteckningsbok", "description": "", @@ -2324,6 +2347,9 @@ "error": "Fel" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 7cb8e2f1a..33b4fe074 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -612,6 +612,10 @@ }, "url": { "label": "Url" + }, + "attemptSearchEngineCreation": { + "label": "Arama Motoru Oluştur", + "description": "\"{kind}\" entegrasyonu arama motorlarıyla kullanılabilir. Arama motorunu otomatik olarak yapılandırmak için bunu işaretleyin." } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "Minecraft Sunucu Durumu", + "description": "Minecraft sunucusunuzun durumunu görüntüler", + "option": { + "title": { + "label": "Başlık" + }, + "domain": { + "label": "Sunucu adresi" + }, + "isBedrockServer": { + "label": "Bedrock sunucusu" + } + }, + "status": { + "online": "Çevrimiçi", + "offline": "Çevrimdışı" + } + }, "notebook": { "name": "Not Defteri", "description": "Markdown'ı destekleyen basit bir not defteri bileşeni", @@ -2324,6 +2347,9 @@ "error": "Hata" }, "job": { + "minecraftServerStatus": { + "label": "Minecraft sunucu durumu" + }, "iconsUpdater": { "label": "Simge Güncelleme" }, @@ -2424,10 +2450,10 @@ } }, "docker": { - "title": "Konteyner", + "title": "Konteynerler", "table": { - "updated": "Güncellendi {when}", - "search": "{count} konteyner ara", + "updated": "{when} Güncellendi", + "search": "{count} konteyner içinde ara", "selected": "{selectCount} / {totalCount} konteyner seçildi" }, "field": { @@ -2441,7 +2467,7 @@ "running": "Çalışıyor", "paused": "Duraklatıldı", "restarting": "Yeniden Başlatılıyor", - "exited": "Çıkıldı", + "exited": "Durduruldu", "removing": "Kaldırılıyor", "dead": "Ölü" } @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "Filmi Talep Et", + "requestSeries": "Diziyi Talep Et", + "openIn": "{kind} üzerinde göster" + }, "external": { "help": "Harici bir arama motoru kullanın", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "Talep Et \"{name}\"", + "table": { + "header": { + "season": "Sezon", + "episodes": "Bölüm" + } + }, + "button": { + "send": "Talep Gönder" + } + } + } } } } diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index 91219a9d7..70f32201f 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -2,130 +2,130 @@ "init": { "step": { "start": { - "title": "", - "subtitle": "", - "description": "", + "title": "Ласкаво просимо до Homarr", + "subtitle": "Почнемо з налаштування вашого Homarr.", + "description": "Щоб почати, будь ласка, виберіть спосіб налаштування Вашого Homarr.", "action": { - "scratch": "", - "importOldmarr": "" + "scratch": "Почати з нуля", + "importOldmarr": "Імпорт з Homarr пре-1.0" } }, "import": { - "title": "", - "subtitle": "", + "title": "Імпорт даних", + "subtitle": "Ви можете імпортувати дані з наявного екземпляра Homarr.", "dropzone": { - "title": "", - "description": "" + "title": "Перетягніть zip-файл сюди або клікніть для пошуку", + "description": "Завантажений zip буде оброблений і ви зможете вибрати що ви хочете імпортувати" }, "fileInfo": { "action": { - "change": "" + "change": "Змінити файл" } }, "importSettings": { - "title": "", - "description": "" + "title": "Імпортувати налаштування", + "description": "Конфігурація імпорту" }, "boardSelection": { - "title": "", - "description": "", + "title": "Знайдено {count} дощок", + "description": "Оберіть всі дошки з розміром які ви хочете імпортувати", "action": { - "selectAll": "", - "unselectAll": "" + "selectAll": "Вибрати все", + "unselectAll": "Прибрати всі" } }, "summary": { - "title": "", - "description": "", + "title": "Підсумок імпорту", + "description": "У наведеному нижче розділі ви можете побачити, що буде імпортовано", "action": { - "import": "" + "import": "Підтвердить імпорт та продовжуйте" }, "entities": { "apps": "Додатки", "boards": "Дошки", - "integrations": "", - "credentialUsers": "" + "integrations": "Інтеграції", + "credentialUsers": "Облікові записи" } }, "tokenModal": { - "title": "", + "title": "Введіть токен імпорту", "field": { "token": { "label": "Токен.", - "description": "" + "description": "Введіть показаний токен імпорту з вашого попереднього екземпляра homarr" } }, "notification": { "error": { - "title": "", - "message": "" + "title": "Невірний токен", + "message": "Введений вами токен невірний" } } } }, "user": { - "title": "", - "subtitle": "", + "title": "Адміністратор", + "subtitle": "Вкажіть облікові дані для вашого адміністратора.", "notification": { "success": { - "title": "", - "message": "" + "title": "Користувача створено", + "message": "Користувача успішно створено" }, "error": { - "title": "" + "title": "Не вдалося створити користувача" } } }, "group": { - "title": "", - "subtitle": "", + "title": "Зовнішня група", + "subtitle": "Вкажіть групу, яку слід використовувати для зовнішніх користувачів.", "form": { "name": { - "label": "", - "description": "" + "label": "Назва групи", + "description": "Ім'я має відповідати групі адміністраторів зовнішнього провайдера" } } }, "settings": { "title": "Налаштування", - "subtitle": "" + "subtitle": "Налаштування сервера." }, "finish": { - "title": "", - "subtitle": "", - "description": "", + "title": "Завершити налаштування", + "subtitle": "Все готово!", + "description": "Ви завершили процес налаштування. Тепер ви можете почати використовувати Homarr. Виберіть наступну дію:", "action": { - "goToBoard": "", - "createBoard": "", - "inviteUser": "", - "docs": "" + "goToBoard": "Перейти на {name} дошку", + "createBoard": "Створіть свою першу дошку", + "inviteUser": "Запросити інших користувачів", + "docs": "Ознайомитися з документацією" } } }, - "backToStart": "" + "backToStart": "На початок" }, "user": { "title": "Користувачі", "name": "Користувач", "page": { "login": { - "title": "", - "subtitle": "" + "title": "Увійти до облікового запису", + "subtitle": "З поверненням! Будь ласка, введіть свої облікові дані" }, "invite": { - "title": "", - "subtitle": "", - "description": "" + "title": "Приєднатися до Homarr", + "subtitle": "Ласкаво просимо до Homarr! Створіть обліковий запис", + "description": "Вас запросив {username}" }, "init": { - "title": "", - "subtitle": "" + "title": "Нова інсталяція Homarr", + "subtitle": "Будь ласка, створіть користувача-адміністратора" } }, "field": { "email": { "label": "Електронна пошта", - "verified": "" + "verified": "Підтверджено" }, "username": { "label": "Логін" @@ -133,46 +133,46 @@ "password": { "label": "Пароль", "requirement": { - "length": "", + "length": "Включає принаймні 8 символів", "lowercase": "Включає малу літеру", "uppercase": "Включає велику літеру", "number": "Включає кількість", - "special": "" + "special": "Включає спеціальні символи" } }, "passwordConfirm": { "label": "Підтвердити пароль" }, "previousPassword": { - "label": "" + "label": "Старий пароль" }, "homeBoard": { - "label": "" + "label": "Домашня дошка" }, "pingIconsEnabled": { - "label": "" + "label": "Використовувати значки для ping" } }, "error": { - "usernameTaken": "" + "usernameTaken": "Це ім'я користувача вже зайнято" }, "action": { "login": { "label": "Логін", - "labelWith": "", + "labelWith": "Увійти через {provider}", "notification": { "success": { - "title": "", - "message": "" + "title": "Вхід успішний", + "message": "Ви ввійшли в систему" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося увійти", + "message": "Помилка входу" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "Забули пароль?", + "description": "Адміністратор може використовувати наступну команду для відновлення пароля:" } }, "register": { @@ -180,81 +180,81 @@ "notification": { "success": { "title": "Обліковий запис створено", - "message": "" + "message": "Увійдіть, щоб продовжити" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося створити обліковий запис", + "message": "Не вдалося створити ваш обліковий запис" } } }, "create": "Створити користувача", "changePassword": { - "label": "", + "label": "Змінити пароль", "notification": { "success": { - "message": "" + "message": "Пароль змінено" }, "error": { - "message": "" + "message": "Не вдалося змінити пароль" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "Домашню дошку змінено" }, "error": { - "message": "" + "message": "Не вдалося змінити домашню дошку" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "Початок тижня успішно змінено" }, "error": { - "message": "" + "message": "Не вдається змінити перший день тижня" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Іконки ping перемкнуто успішно" }, "error": { - "message": "" + "message": "Не вдалося перемикнути ping-значки" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Змінити зображення", "notification": { "success": { - "message": "" + "message": "Зображення змінено" }, "error": { - "message": "" + "message": "Не вдалося змінити зображення" }, "toLarge": { - "title": "", - "message": "" + "title": "Зображення занадто велике", + "message": "Максимальний розмір зображення {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "Видалити зображення", + "confirm": "Ви впевнені, що хочете видалити зображення?", "notification": { "success": { - "message": "" + "message": "Зображення видалено" }, "error": { - "message": "" + "message": "Не вдалося видалити зображення" } } } @@ -262,42 +262,42 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "Профіль оновлено" }, "error": { - "message": "" + "message": "Не вдалося оновити профіль" } } }, "delete": { - "label": "", - "description": "", - "confirm": "" + "label": "Видалити користувача назавжди", + "description": "Видаляє цього користувача, включаючи його налаштування. Не буде видалено жодної дошки. Користувач не буде сповіщений.", + "confirm": "Ви впевнені, що хочете видалити користувача {username} разом з налаштуваннями?" }, "select": { - "label": "", - "notFound": "" + "label": "Вибрати користувача", + "notFound": "Користувача не знайдено" }, "transfer": { - "label": "" + "label": "Виберіть нового власника" } } }, "group": { - "title": "", - "name": "", - "search": "", + "title": "Групи", + "name": "Група", + "search": "Знайти групу", "field": { "name": "Ім’я", - "members": "" + "members": "Учасники" }, "permission": { "admin": { "title": "Адміністратор", "item": { "admin": { - "label": "", - "description": "" + "label": "Адміністратор", + "description": "Учасники з цим дозволом мають повний доступ до всіх функцій і налаштувань" } } }, @@ -305,7 +305,7 @@ "title": "Додатки", "item": { "create": { - "label": "", + "label": "Створення додатків", "description": "" }, "use-all": { @@ -433,58 +433,58 @@ "confirm": "", "notification": { "success": { - "message": "" + "message": "Група {group} перенесена до {user}" }, "error": { - "message": "" + "message": "Не вдалося передати право власності" } } }, "addMember": { - "label": "" + "label": "Додати учасника" }, "removeMember": { - "label": "", - "confirm": "" + "label": "Видалити учасника", + "confirm": "Ви впевнені, що хочете видалити {user} з цієї групи?" }, "delete": { - "label": "", - "description": "", - "confirm": "", + "label": "Видалити групу", + "description": "Як тільки ви видалите групу, то вже не зможете її відновити. Впевніться у своєму рішенні.", + "confirm": "Ви дійсно бажаєте видалити групу {name}?", "notification": { "success": { - "message": "" + "message": "Групу {name} видалено" }, "error": { - "message": "" + "message": "Не вдалося видалити групу {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "Дозволи збережено", + "message": "Дозволи збережено" }, "error": { - "title": "", - "message": "" + "title": "Дозволи не збережено", + "message": "Дозволи не збережено" } } }, "update": { "notification": { "success": { - "message": "" + "message": "Групу {name} збережено" }, "error": { - "message": "" + "message": "Не вдалося зберегти групу {name}" } } }, "select": { - "label": "", - "notFound": "" + "label": "Виберіть групу", + "notFound": "Груп не знайдено" } } }, @@ -493,47 +493,47 @@ "list": { "title": "Додатки", "noResults": { - "title": "", - "action": "" + "title": "Поки що немає додатків", + "action": "Створити свій перший додаток" } }, "create": { - "title": "", + "title": "Новий додаток", "notification": { "success": { - "title": "", - "message": "" + "title": "Успішно", + "message": "Додаток створено" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося створити", + "message": "Не вдалося створити додаток" } } }, "edit": { - "title": "", + "title": "Редагувати додаток", "notification": { "success": { - "title": "", - "message": "" + "title": "Зміни застосовано", + "message": "Додаток збережено" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося застосувати зміни", + "message": "Не вдалося зберегти додаток" } } }, "delete": { - "title": "", - "message": "", + "title": "Видалити додаток", + "message": "Ви дійсно бажаєте видалити додаток {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "Успішно видалено", + "message": "Додаток видалено" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося видалити", + "message": "Неможливо видалити додаток" } } } @@ -543,46 +543,46 @@ "label": "Ім’я" }, "description": { - "label": "" + "label": "Опис" }, "url": { - "label": "" + "label": "URL-адреса" } }, "action": { "select": { - "label": "", - "notFound": "" + "label": "Оберіть додаток", + "notFound": "Додатків не знайдено" } } }, "integration": { "page": { "list": { - "title": "", - "search": "", + "title": "Інтеграції", + "search": "Пошук інтеграцій", "noResults": { - "title": "" + "title": "Тут ще немає інтеграції" } }, "create": { - "title": "", + "title": "Нова інтеграція з {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "Успішно створено", + "message": "Інтеграцію створено" }, "error": { - "title": "", - "message": "" + "title": "Не вдалося створити", + "message": "Не вдалося створити інтеграцію" } } }, "edit": { - "title": "", + "title": "Редагування інтеграцію {name}", "notification": { "success": { - "title": "", + "title": "Зміни застосовано", "message": "" }, "error": { @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -695,21 +699,21 @@ "lastUpdated": "", "notSet": { "label": "", - "tooltip": "" + "tooltip": "Обов’язковий ключ ще не був встановлений" }, - "secureNotice": "", + "secureNotice": "Цей секрет неможливо буде побачити після створення", "reset": { - "title": "", - "message": "" + "title": "Скинути секрет", + "message": "Ви впевнені, що хочете скинути цей секрет?" }, "noSecretsRequired": { - "segmentTitle": "", - "text": "" + "segmentTitle": "Немає секретів", + "text": "Для цієї інтеграції не потрібні секрети" }, "kind": { "username": { "label": "Логін", - "newLabel": "" + "newLabel": "Нове ім'я користувача" }, "apiKey": { "label": "", @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Блокнот", "description": "", @@ -2324,6 +2347,9 @@ "error": "Помилка" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index a1a55468f..ca5198343 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "Ghi chú", "description": "", @@ -2324,6 +2347,9 @@ "error": "Lỗi" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index cc660f4cd..aea4140da 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -612,6 +612,10 @@ }, "url": { "label": "" + }, + "attemptSearchEngineCreation": { + "label": "", + "description": "" } }, "action": { @@ -1151,6 +1155,25 @@ } } }, + "minecraftServerStatus": { + "name": "", + "description": "", + "option": { + "title": { + "label": "" + }, + "domain": { + "label": "" + }, + "isBedrockServer": { + "label": "" + } + }, + "status": { + "online": "", + "offline": "" + } + }, "notebook": { "name": "", "description": "", @@ -2324,6 +2347,9 @@ "error": "" }, "job": { + "minecraftServerStatus": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -2722,6 +2748,11 @@ } } }, + "media": { + "requestMovie": "", + "requestSeries": "", + "openIn": "" + }, "external": { "help": "", "group": { @@ -2962,6 +2993,22 @@ } } } + }, + "media": { + "request": { + "modal": { + "title": "", + "table": { + "header": { + "season": "", + "episodes": "" + } + }, + "button": { + "send": "" + } + } + } } } } From 99c409cbb79645f4d3278cfea9fab454c1816157 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 02:26:11 +0000 Subject: [PATCH 03/15] chore(deps): update dependency @types/node to ^22.10.3 (#1824) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++++++++++++-------------------- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index d9c654358..6fb2bad9c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -82,7 +82,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "2.4.5", - "@types/node": "^22.10.2", + "@types/node": "^22.10.3", "@types/prismjs": "^1.26.5", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 4cada6b7e..0cf790d96 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -44,7 +44,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.10.2", + "@types/node": "^22.10.3", "dotenv-cli": "^8.0.0", "eslint": "^9.17.0", "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b661409c1..b0d5decae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,10 +36,10 @@ importers: version: 14.0.2(semantic-release@24.2.0(typescript@5.7.2)) '@turbo/gen': specifier: ^2.3.3 - version: 2.3.3(@types/node@22.10.2)(typescript@5.7.2) + version: 2.3.3(@types/node@22.10.3)(typescript@5.7.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.4(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.8 version: 2.1.8(vitest@2.1.8) @@ -72,10 +72,10 @@ importers: version: 5.7.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -276,8 +276,8 @@ importers: specifier: 2.4.5 version: 2.4.5 '@types/node': - specifier: ^22.10.2 - version: 22.10.2 + specifier: ^22.10.3 + version: 22.10.3 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 @@ -376,8 +376,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.10.2 - version: 22.10.2 + specifier: ^22.10.3 + version: 22.10.3 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 @@ -4067,8 +4067,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.10.3': + resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -11617,7 +11617,7 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.3.3(@types/node@22.10.2)(typescript@5.7.2)': + '@turbo/gen@2.3.3(@types/node@22.10.3)(typescript@5.7.2)': dependencies: '@turbo/workspaces': 2.3.3 commander: 10.0.1 @@ -11627,7 +11627,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.4.0 - ts-node: 10.9.2(@types/node@22.10.2)(typescript@5.7.2) + ts-node: 10.9.2(@types/node@22.10.3)(typescript@5.7.2) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -11653,11 +11653,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/aws-lambda@8.10.146': {} @@ -11684,22 +11684,22 @@ snapshots: '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/better-sqlite3@7.6.12': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/chroma-js@2.4.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/cookie@0.4.1': {} @@ -11710,11 +11710,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/cors@2.8.17': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/css-font-loading-module@0.0.7': {} @@ -11722,13 +11722,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.32': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/ssh2': 1.15.1 '@types/estree@1.0.5': {} @@ -11737,7 +11737,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11752,7 +11752,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/hast@2.3.10': dependencies: @@ -11790,7 +11790,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.10.2': + '@types/node@22.10.3': dependencies: undici-types: 6.20.0 @@ -11828,21 +11828,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -11855,7 +11855,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/tinycolor2@1.4.6': {} @@ -11871,11 +11871,11 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: @@ -11984,14 +11984,14 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12009,7 +12009,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12020,13 +12020,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -12056,7 +12056,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.8': dependencies: @@ -13242,7 +13242,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.10.2 + '@types/node': 22.10.3 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -14755,7 +14755,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17236,14 +17236,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@22.10.2)(typescript@5.7.2): + ts-node@10.9.2(@types/node@22.10.3)(typescript@5.7.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.3 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17663,13 +17663,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.8(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@2.1.8(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -17681,33 +17681,33 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.7.2) optionalDependencies: - vite: 5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.21.3 optionalDependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 fsevents: 2.3.3 sass: 1.83.0 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -17723,11 +17723,11 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.5(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 2.1.8(@types/node@22.10.2)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.8(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 '@vitest/ui': 2.1.8(vitest@2.1.8) jsdom: 25.0.1 transitivePeerDependencies: From cc7d53e84ec8c2dd3698a178ca6f35099194b5d7 Mon Sep 17 00:00:00 2001 From: Yossi Hillali Date: Wed, 1 Jan 2025 12:24:53 +0200 Subject: [PATCH 04/15] fix: login page in light mode is always black (#1821) --- apps/nextjs/src/app/[locale]/auth/invite/[id]/page.tsx | 2 +- apps/nextjs/src/app/[locale]/auth/login/page.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/nextjs/src/app/[locale]/auth/invite/[id]/page.tsx b/apps/nextjs/src/app/[locale]/auth/invite/[id]/page.tsx index 39e8fa623..5edeabcd0 100644 --- a/apps/nextjs/src/app/[locale]/auth/invite/[id]/page.tsx +++ b/apps/nextjs/src/app/[locale]/auth/invite/[id]/page.tsx @@ -57,7 +57,7 @@ export default async function InviteUsagePage({ params, searchParams }: InviteUs {t("subtitle")} - + diff --git a/apps/nextjs/src/app/[locale]/auth/login/page.tsx b/apps/nextjs/src/app/[locale]/auth/login/page.tsx index fb8472bd4..b20d3fce1 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/page.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/page.tsx @@ -35,7 +35,7 @@ export default async function Login({ searchParams }: LoginProps) { {t("subtitle")} - + Date: Thu, 2 Jan 2025 00:43:54 +0000 Subject: [PATCH 05/15] chore(lang): updated translations from crowdin Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/cn.json | 194 ++++++++++++------------- packages/translation/src/lang/cs.json | 152 ++++++++++---------- packages/translation/src/lang/da.json | 196 +++++++++++++------------- packages/translation/src/lang/tr.json | 8 +- 4 files changed, 275 insertions(+), 275 deletions(-) diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index f139ef930..6bfa200b6 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -614,8 +614,8 @@ "label": "Url" }, "attemptSearchEngineCreation": { - "label": "", - "description": "" + "label": "创建搜索引擎", + "description": "集成“{kind}”可以与搜索引擎一起使用。勾选此项可自动配置搜索引擎。" } }, "action": { @@ -630,7 +630,7 @@ "notification": { "success": { "title": "连接成功", - "message": "" + "message": "已成功建立连接" }, "invalidUrl": { "title": "无效链接", @@ -642,7 +642,7 @@ }, "invalidCredentials": { "title": "凭证无效", - "message": "" + "message": "凭证无效" }, "commonError": { "title": "连接失败", @@ -654,35 +654,35 @@ }, "unauthorized": { "title": "未授权", - "message": "" + "message": "可能错误的凭证" }, "forbidden": { - "title": "", + "title": "禁止", "message": "可能缺少权限" }, "notFound": { "title": "未找到", - "message": "" + "message": "可能错误的 URL 或路径" }, "internalServerError": { - "title": "", - "message": "" + "title": "服务器内部错误", + "message": "服务器遇到一个错误" }, "serviceUnavailable": { - "title": "", - "message": "" + "title": "服务暂时不可用", + "message": "服务器当前不可用" }, "connectionAborted": { - "title": "", - "message": "" + "title": "连接被中止", + "message": "连接被终止" }, "domainNotFound": { - "title": "", - "message": "" + "title": "找不到域", + "message": "找不到该域" }, "connectionRefused": { - "title": "", - "message": "" + "title": "连接被拒绝", + "message": "连接被拒绝" }, "invalidJson": { "title": "无效的 JSON", @@ -695,16 +695,16 @@ } }, "secrets": { - "title": "", - "lastUpdated": "", + "title": "秘钥", + "lastUpdated": "最后更新于 {date}", "notSet": { "label": "未设置值", "tooltip": "尚未设置此必填的密钥" }, - "secureNotice": "", + "secureNotice": "创建后无法再次获取此密钥", "reset": { - "title": "", - "message": "" + "title": "重置密钥", + "message": "您确定要重置此秘钥吗?" }, "noSecretsRequired": { "segmentTitle": "没有密钥", @@ -726,8 +726,8 @@ } }, "permission": { - "use": "", - "interact": "", + "use": "选择项目中的集成", + "interact": "与集成进行互动", "full": "完整的组件访问权限" } }, @@ -745,10 +745,10 @@ "file": "选择文件", "notification": { "success": { - "message": "" + "message": "上传媒体成功" }, "error": { - "message": "" + "message": "无法上传媒体" } } }, @@ -785,12 +785,12 @@ "saveChanges": "保存更改", "cancel": "取消", "delete": "删除", - "discard": "", + "discard": "Discard", "confirm": "确认", "continue": "继续", "previous": "上一步", "next": "下一步", - "checkoutDocs": "", + "checkoutDocs": "查阅文档", "checkLogs": "检查日志获取更多详情", "tryAgain": "重试", "loading": "正在加载" @@ -798,7 +798,7 @@ "here": "这里", "iconPicker": { "label": "图标 URL", - "header": "" + "header": "输入名称或对象来筛选图标… Homarr 将为您搜索 {countIcons} 图标。" }, "colorScheme": { "options": { @@ -827,8 +827,8 @@ "error": "无法应用更改" }, "transfer": { - "success": "", - "error": "" + "success": "传输成功", + "error": "传输失败" } }, "multiSelect": { @@ -836,12 +836,12 @@ }, "multiText": { "placeholder": "添加更多值", - "addLabel": "" + "addLabel": "添加 {value}" }, "select": { "placeholder": "选择值", "badge": { - "recommended": "" + "recommended": "推荐" } }, "userAvatar": { @@ -853,8 +853,8 @@ "logout": "退出登录", "login": "登录", "homeBoard": "您的首页", - "loggedOut": "", - "updateAvailable": "" + "loggedOut": "已注销", + "updateAvailable": "{countUpdates} 可用更新:{tag}" } }, "dangerZone": "危险", @@ -871,7 +871,7 @@ "startsWith": "该字段必须以 {startsWith} 开头", "endsWith": "该字段必须以 {endsWith} 结尾", "includes": "该字段必须包含 {includes}", - "invalidEmail": "" + "invalidEmail": "此字段必须是一个有效的电子邮件" }, "tooSmall": { "string": "该字段长度必须至少为 {minimum} 个字符", @@ -884,10 +884,10 @@ "custom": { "passwordsDoNotMatch": "两次输入的密码不一致", "passwordRequirements": "密码不符合要求", - "boardAlreadyExists": "", - "invalidFileType": "", - "fileTooLarge": "", - "invalidConfiguration": "", + "boardAlreadyExists": "具有此名称的面板已存在", + "invalidFileType": "无效的文件类型,例如 {expected}", + "fileTooLarge": "文件太大,最大大小为 {maxSize}", + "invalidConfiguration": "无效配置", "groupNameTaken": "用户组名称已存在" } } @@ -896,12 +896,12 @@ "section": { "dynamic": { "action": { - "create": "", - "remove": "" + "create": "新建动态部分", + "remove": "删除动态部分" }, "remove": { - "title": "", - "message": "" + "title": "删除动态部分", + "message": "您确定要删除这个动态部分吗?项目将在父部分的同一位置移动。" } }, "category": { @@ -916,16 +916,16 @@ "remove": "删除分类", "moveUp": "上移", "moveDown": "下移", - "createAbove": "", - "createBelow": "" + "createAbove": "新分类之上", + "createBelow": "新分类之下" }, "create": { - "title": "", - "submit": "" + "title": "新建分类", + "submit": "添加分类" }, "remove": { - "title": "", - "message": "" + "title": "删除分类", + "message": "您确定要删除分类 {name} 吗?" }, "edit": { "title": "重命名分类", @@ -944,8 +944,8 @@ "create": "新建项目", "import": "导入项目", "edit": "编辑项目", - "moveResize": "", - "duplicate": "", + "moveResize": "移动/调整项目大小", + "duplicate": "复制项目", "remove": "删除项目" }, "menu": { @@ -954,11 +954,11 @@ } }, "create": { - "title": "", + "title": "选择要添加的项目", "addToBoard": "添加到面板" }, "moveResize": { - "title": "", + "title": "移动/调整项目大小", "field": { "width": { "label": "宽度" @@ -978,14 +978,14 @@ "title": "编辑项目", "advancedOptions": { "label": "高级选项", - "title": "" + "title": "高级项目选项" }, "field": { "integrations": { "label": "集成" }, "customCssClasses": { - "label": "" + "label": "自定义 CSS 类" } } }, @@ -997,7 +997,7 @@ "widget": { "app": { "name": "应用", - "description": "", + "description": "将应用嵌入到面板中。", "option": { "appId": { "label": "选择应用" @@ -1018,7 +1018,7 @@ "error": { "notFound": { "label": "没有应用", - "tooltip": "" + "tooltip": "您没有选择有效的应用" } } }, @@ -1039,19 +1039,19 @@ "label": "垂直" }, "grid": { - "label": "" + "label": "网格" } } }, "items": { - "label": "", - "add": "" + "label": "书签", + "add": "添加书签" } } }, "dnsHoleSummary": { - "name": "", - "description": "", + "name": "DNS Hole 摘要", + "description": "显示 DNS Hole 的摘要", "option": { "layout": { "label": "显示布局", @@ -1063,7 +1063,7 @@ "label": "垂直" }, "grid": { - "label": "" + "label": "网格" } } }, @@ -1096,7 +1096,7 @@ "label": "垂直" }, "grid": { - "label": "" + "label": "网格" } } }, @@ -1110,73 +1110,73 @@ "controls": { "enableAll": "全部启用", "disableAll": "全部禁用", - "setTimer": "", + "setTimer": "设置计时", "set": "设置", "enabled": "已启用", "disabled": "已禁用", - "processing": "", - "disconnected": "", + "processing": "处理中", + "disconnected": "网络连线中断", "hours": "时", "minutes": "分", - "unlimited": "" + "unlimited": "留空表示无限制" } }, "clock": { - "name": "", + "name": "日期和时间", "description": "显示当前的日期和时间。", "option": { "customTitleToggle": { - "label": "", - "description": "" + "label": "自定义标题/城市显示", + "description": "在时钟上显示自定义的标题或城市/国家的名称。" }, "customTitle": { - "label": "" + "label": "标题" }, "is24HourFormat": { - "label": "", - "description": "" + "label": "24 小时制", + "description": "使用24小时格式代替12小时格式" }, "showSeconds": { - "label": "" + "label": "显示秒数" }, "useCustomTimezone": { - "label": "" + "label": "使用固定时区" }, "timezone": { "label": "时区", - "description": "" + "description": "选择遵循 IANA 标准的时区" }, "showDate": { - "label": "" + "label": "显示日期" }, "dateFormat": { - "label": "", - "description": "" + "label": "日期格式", + "description": "日期应该是什么样的" } } }, "minecraftServerStatus": { - "name": "", - "description": "", + "name": "Minecraft 服务状态", + "description": "显示 Minecraft 服务器状态", "option": { "title": { - "label": "" + "label": "标题" }, "domain": { - "label": "" + "label": "服务器地址" }, "isBedrockServer": { - "label": "" + "label": "Bedrock 服务器" } }, "status": { - "online": "", - "offline": "" + "online": "在线", + "offline": "离线" } }, "notebook": { "name": "笔记", - "description": "", + "description": "支持 Markdown 的简单笔记本小部件", "option": { "showToolbar": { "label": "显示帮助您写下 Markdown 的工具栏" @@ -1236,7 +1236,7 @@ } }, "iframe": { - "name": "", + "name": "iFrame", "description": "嵌入互联网上的任何内容。某些网站可能限制访问。", "option": { "embedUrl": { @@ -1268,30 +1268,30 @@ } }, "error": { - "noUrl": "", + "noUrl": "没有提供 iFrame 网址", "noBrowerSupport": "您的浏览器不支持 iframe。请更新您的浏览器。" } }, "smartHome-entityState": { - "name": "", - "description": "", + "name": "实体状态", + "description": "显示实体状态并可选切换", "option": { "entityId": { "label": "实体 ID" }, "displayName": { - "label": "" + "label": "显示名称" }, "entityUnit": { - "label": "" + "label": "实体单位" }, "clickable": { - "label": "" + "label": "可单击" } } }, "smartHome-executeAutomation": { - "name": "", + "name": "执行自动化", "description": "一键触发自动化操作", "option": { "displayName": { diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index a3af99104..a3c7712fd 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -172,7 +172,7 @@ }, "forgotPassword": { "label": "Zapomněli jste Vaše heslo?", - "description": "" + "description": "Administrátor může použít následující příkaz k obnovení Vašeho hesla:" } }, "register": { @@ -216,33 +216,33 @@ "message": "První den v týdnu byl úspěšně změněn" }, "error": { - "message": "" + "message": "Nelze změnit první den v týdnu" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Ikony pingu byly úspěšně přepnuty" }, "error": { - "message": "" + "message": "Nelze přepnout ikony pingu" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Změnit obrázek", "notification": { "success": { - "message": "" + "message": "Obrázek byl úspěšně změněn" }, "error": { - "message": "" + "message": "Nepodařilo se změnit obrázek" }, "toLarge": { - "title": "", - "message": "" + "title": "Obrázek je příliš velký", + "message": "Maximální velikost obrázku je {size}" } } }, @@ -338,8 +338,8 @@ "description": "Umožňuje členům upravovat všechny plochy (nezahrnuje kontrolu přístupu a nebezpečnou zónu)" }, "full-all": { - "label": "", - "description": "" + "label": "Úplný přístup k plochám", + "description": "Umožňuje členům zobrazit, upravit a odstranit všechny plochy (včetně kontroly přístupu a nebezpečné zóny)" } } }, @@ -377,7 +377,7 @@ }, "full-all": { "label": "Úplný přístup k médiím", - "description": "" + "description": "Umožňuje členům spravovat a mazat všechny mediální soubory" } } }, @@ -423,20 +423,20 @@ "message": "Skupina byla úspěšně vytvořena" }, "error": { - "message": "" + "message": "Skupinu se nepodařilo vytvořit" } } }, "transfer": { "label": "", "description": "", - "confirm": "", + "confirm": "Jste si jisti, že chcete převést vlastnictví skupiny {name} na {username}?", "notification": { "success": { "message": "" }, "error": { - "message": "" + "message": "Nelze převést vlastnictví" } } }, @@ -445,18 +445,18 @@ }, "removeMember": { "label": "", - "confirm": "" + "confirm": "Jste si jisti, že chcete odstranit {user} z této skupiny?" }, "delete": { "label": "", "description": "", - "confirm": "", + "confirm": "Jste si jisti, že chcete odstranit skupinu {name}?", "notification": { "success": { "message": "" }, "error": { - "message": "" + "message": "Nelze odstranit skupinu {name}" } } }, @@ -478,7 +478,7 @@ "message": "" }, "error": { - "message": "" + "message": "Nelze uložit skupinu {name}" } } }, @@ -678,7 +678,7 @@ }, "domainNotFound": { "title": "", - "message": "" + "message": "Doména nebyla nalezena" }, "connectionRefused": { "title": "", @@ -695,29 +695,29 @@ } }, "secrets": { - "title": "", - "lastUpdated": "", + "title": "Tajné klíče", + "lastUpdated": "Naposledy aktualizováno {date}", "notSet": { - "label": "", - "tooltip": "" + "label": "Žádná hodnota není nenastavena", + "tooltip": "Tento požadovaný tajný klíč ještě nebyl nastaven" }, - "secureNotice": "", + "secureNotice": "Tento tajný klíč nelze získat po vytvoření", "reset": { - "title": "", - "message": "" + "title": "Resetovat tajný klíč", + "message": "Jste si jisti, že chcete resetovat tento tajný klíč?" }, "noSecretsRequired": { - "segmentTitle": "", - "text": "" + "segmentTitle": "Žádné tajné klíče", + "text": "Pro tuto integraci nejsou vyžadovány žádné tajné klíče" }, "kind": { "username": { "label": "Uživatelské jméno", - "newLabel": "" + "newLabel": "Nové uživatelské jméno" }, "apiKey": { - "label": "", - "newLabel": "" + "label": "API klíč", + "newLabel": "Nový API klíč" }, "password": { "label": "Heslo", @@ -732,8 +732,8 @@ } }, "media": { - "plural": "", - "search": "", + "plural": "Média", + "search": "Najít mediální soubor", "field": { "name": "Název", "size": "Velikost", @@ -741,31 +741,31 @@ }, "action": { "upload": { - "label": "", - "file": "", + "label": "Nahrát mediální soubor", + "file": "Vybrat soubor", "notification": { "success": { - "message": "" + "message": "Mediální soubor byl úspěšně nahrán" }, "error": { - "message": "" + "message": "Nepodařilo se nahrát mediální soubor" } } }, "delete": { - "label": "", - "description": "", + "label": "Vymazat mediální soubor", + "description": "Jste si jisti, že chcete vymazat mediální soubor ?", "notification": { "success": { - "message": "" + "message": "Mediální soubor byl úspěšně odstraněn" }, "error": { - "message": "" + "message": "Nepodařilo se vymazat mediální soubor" } } }, "copy": { - "label": "" + "label": "Zkopírovat URL" } } }, @@ -901,7 +901,7 @@ }, "remove": { "title": "Odstranit dynamickou sekci", - "message": "" + "message": "Jste si jisti, že chcete odstranit tuto dynamickou sekci? Položky budou přesunuty na stejné místo v nadřazené sekci." } }, "category": { @@ -925,7 +925,7 @@ }, "remove": { "title": "", - "message": "" + "message": "Jste si jisti, že chcete odstranit kategorii {name}?" }, "edit": { "title": "", @@ -991,7 +991,7 @@ }, "remove": { "title": "", - "message": "" + "message": "Jste si jisti, že chcete tuto položku odstranit?" } }, "widget": { @@ -1619,7 +1619,7 @@ "resume": "", "delete": { "title": "", - "modalTitle": "", + "modalTitle": "Jsou si jisti, že chcete smazat tento úkol?", "entry": "", "entryAndFiles": "" } @@ -1767,13 +1767,13 @@ "message": "" }, "error": { - "title": "", - "message": "" + "title": "Nelze uložit změny", + "message": "Plochu se nepodařilo uložit" } }, "confirmLeave": { "title": "", - "message": "" + "message": "Máte neuložené změny, jste si jistí, že chcete odejít?" } }, "oldImport": { @@ -1785,7 +1785,7 @@ }, "error": { "title": "", - "message": "" + "message": "Plochu se nepodařilo importovat, zkontrolujte logy pro více informací" } }, "form": { @@ -1986,11 +1986,11 @@ "confirm": { "public": { "title": "", - "description": "" + "description": "Jste si jisti, že chcete tuto plochu učinit soukromou? Toto skryje tuto plochu před veřejností. Odkazy pro hosty přestanou fungovat." }, "private": { "title": "", - "description": "" + "description": "Jste si jisti, že chcete tuto plochu učinit veřejnou? Toto plochu zpřístupní všem." } } }, @@ -2000,7 +2000,7 @@ "button": "", "confirm": { "title": "Odstranit plochu", - "description": "" + "description": "Jste si jisti, že chcete odstranit tuto plochu? Toto trvale odstraní plochu a veškerý její obsah." } } } @@ -2049,7 +2049,7 @@ }, "notFound": { "title": "", - "text": "" + "text": "Nepodařilo se nalézt požadovaný zdroj" }, "navbar": { "items": { @@ -2129,7 +2129,7 @@ "label": "Trvale smazat", "confirm": { "title": "Odstranit plochu", - "description": "" + "description": "Jste si jisti, že chcete vymazat plochu {name}?" } } }, @@ -2157,7 +2157,7 @@ "general": { "title": "Obecné", "item": { - "language": "", + "language": "Jazyk & oblast", "board": "", "firstDayOfWeek": "První den v týdnu", "accessibility": "Přístupnost" @@ -2222,12 +2222,12 @@ }, "delete": { "title": "Odstranit pozvánku", - "description": "Jste si jisti, že chcete tuto pozvánku smazat? Uživatelé s tímto odkazem již nebudou moci pomocí tohoto odkazu vytvořit účet." + "description": "Jste si jisti, že chcete tuto pozvánku smazat? Uživatelé s tímto odkazem si již nebudou moci pomocí tohoto odkazu vytvořit účet." } }, "field": { "id": { - "label": "" + "label": "ID" }, "creator": { "label": "Vytvořil/a" @@ -2333,7 +2333,7 @@ "culture": { "title": "", "defaultLocale": { - "label": "" + "label": "Výchozí jazyk" } } } @@ -2431,15 +2431,15 @@ }, "about": { "version": "", - "text": "", + "text": "Homarr je komunitou řízený open source projekt, který je udržován dobrovolníky. Díky těmto lidem je Homarr od roku 2021 neustále rostoucím projektem. Náš tým na Homarru pracuje zcela na dálku z mnoha různých zemí ve svém volném čase bez jakékoli kompenzace.", "accordion": { "contributors": { - "title": "", - "subtitle": "" + "title": "Přispěvatelé", + "subtitle": "{count} udržuje kód & Homarr" }, "translators": { - "title": "", - "subtitle": "" + "title": "Překladatelé", + "subtitle": "{count} přispívá překladem do mnoha jazyků" }, "libraries": { "title": "", @@ -2489,7 +2489,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se spustit kontejnery" } } }, @@ -2502,7 +2502,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se zastavit kontejnery" } } }, @@ -2515,7 +2515,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se restartovat kontejnery" } } }, @@ -2528,7 +2528,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se odstranit kontejnery" } } }, @@ -2711,10 +2711,10 @@ "dark": "" }, "language": { - "label": "", + "label": "Změnit jazyk", "children": { "detail": { - "title": "" + "title": "Vyberte si preferovaný jazyk" } } }, @@ -2957,7 +2957,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se vytvořit vyhledávač" } } }, @@ -2969,8 +2969,8 @@ "message": "" }, "error": { - "title": "", - "message": "" + "title": "Nelze uložit změny", + "message": "Nepodařilo se uložit vyhledávač" } }, "configControl": "", @@ -2981,7 +2981,7 @@ }, "delete": { "title": "", - "message": "", + "message": "Jste si jisti, že chcete odstranit vyhledávač '{name}'?", "notification": { "success": { "title": "", @@ -2989,7 +2989,7 @@ }, "error": { "title": "", - "message": "" + "message": "Nepodařilo se odstranit vyhledávač" } } } diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index 0fc4c9a9a..20e1491d1 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -2,130 +2,130 @@ "init": { "step": { "start": { - "title": "", - "subtitle": "", - "description": "", + "title": "Velkommen til Homarr", + "subtitle": "Lad os komme i gang med at konfigurere din Homarr instans.", + "description": "For at komme i gang, skal du vælge, hvordan du vil konfigurere din Homarr instans.", "action": { - "scratch": "", - "importOldmarr": "" + "scratch": "Start fra bunden", + "importOldmarr": "Importer fra Homarr før 1.0" } }, "import": { - "title": "", - "subtitle": "", + "title": "Importer data", + "subtitle": "Du kan importere data fra en eksisterende Homarr instans.", "dropzone": { - "title": "", - "description": "" + "title": "Træk zip-filen her eller klik for at gennemse", + "description": "Den uploadede zip vil blive behandlet, og du vil kunne vælge, hvad du vil importere" }, "fileInfo": { "action": { - "change": "" + "change": "Ændre fil" } }, "importSettings": { - "title": "", - "description": "" + "title": "Importer indstillinger", + "description": "Konfigurer importadfærden" }, "boardSelection": { - "title": "", - "description": "", + "title": "Fundet {count} tavler", + "description": "Vælg alle tavler med deres størrelser du vil importere", "action": { - "selectAll": "", - "unselectAll": "" + "selectAll": "Vælg alle", + "unselectAll": "Fravælg alle" } }, "summary": { - "title": "", - "description": "", + "title": "Importér sammendrag", + "description": "I nedenstående oversigt kan du se hvad der vil blive importeret", "action": { - "import": "" + "import": "Bekræft import og fortsæt" }, "entities": { - "apps": "", - "boards": "", - "integrations": "", - "credentialUsers": "" + "apps": "Apps", + "boards": "Tavler", + "integrations": "Integrationer", + "credentialUsers": "Brugere, der er legitimerede" } }, "tokenModal": { - "title": "", + "title": "Angiv import token", "field": { "token": { - "label": "", - "description": "" + "label": "Token", + "description": "Indtast den viste import token fra din tidligere homarr instans" } }, "notification": { "error": { - "title": "", - "message": "" + "title": "Ugyldig token", + "message": "Den indtastede token er ugyldig" } } } }, "user": { - "title": "", - "subtitle": "", + "title": "Admin bruger", + "subtitle": "Angiv legitimationsoplysninger for din administrator bruger.", "notification": { "success": { - "title": "", - "message": "" + "title": "Bruger oprettet", + "message": "Brugeren blev oprettet" }, "error": { - "title": "" + "title": "Brugeroprettelse mislykkedes" } } }, "group": { - "title": "", - "subtitle": "", + "title": "Ekstern gruppe", + "subtitle": "Angiv den gruppe, der skal bruges til eksterne brugere.", "form": { "name": { - "label": "", - "description": "" + "label": "Gruppenavn", + "description": "Navn skal matche admin gruppe fra ekstern udbyder" } } }, "settings": { "title": "Indstillinger", - "subtitle": "" + "subtitle": "Konfigurer serverindstillinger." }, "finish": { - "title": "", - "subtitle": "", - "description": "", + "title": "Afslut opsætningen", + "subtitle": "Du er klar!", + "description": "Du har fuldført opsætningsprocessen. Du kan nu begynde at bruge Homarr. Vælg din næste handling:", "action": { - "goToBoard": "", - "createBoard": "", - "inviteUser": "", - "docs": "" + "goToBoard": "Gå til {name} tavle", + "createBoard": "Opret din første tavle", + "inviteUser": "Inviter andre brugere", + "docs": "Læs dokumentationen" } } }, - "backToStart": "" + "backToStart": "Tilbage til start" }, "user": { "title": "Brugere", "name": "Bruger", "page": { "login": { - "title": "", - "subtitle": "" + "title": "Log ind på din konto", + "subtitle": "Velkommen tilbage! Indtast venligst dine legitimationsoplysninger" }, "invite": { - "title": "", - "subtitle": "", - "description": "" + "title": "Tilmeld Homarr", + "subtitle": "Velkommen til Homarr! Opret venligst din konto", + "description": "Du blev inviteret af {username}" }, "init": { - "title": "", - "subtitle": "" + "title": "Ny Homarr installation", + "subtitle": "Opret venligst den første administrator bruger" } }, "field": { "email": { "label": "E-mail", - "verified": "" + "verified": "Verificeret" }, "username": { "label": "Brugernavn" @@ -133,46 +133,46 @@ "password": { "label": "Adgangskode", "requirement": { - "length": "", + "length": "Inkluderer mindst 8 tegn", "lowercase": "Inkluderer små bogstaver", "uppercase": "Inkluderer store bogstaver", "number": "Inkluderer nummer", - "special": "" + "special": "Inkluderer specielt symbol" } }, "passwordConfirm": { "label": "Bekræft kodeord" }, "previousPassword": { - "label": "" + "label": "Tidligere adgangskode" }, "homeBoard": { - "label": "" + "label": "Hjemme tavle" }, "pingIconsEnabled": { - "label": "" + "label": "Brug ikoner til pings" } }, "error": { - "usernameTaken": "" + "usernameTaken": "Brugernavn allerede taget" }, "action": { "login": { "label": "Log ind", - "labelWith": "", + "labelWith": "Log ind med {provider}", "notification": { "success": { - "title": "", - "message": "" + "title": "Login lykkedes", + "message": "Du er nu logget ind" }, "error": { - "title": "", - "message": "" + "title": "Login mislykkedes", + "message": "Dit login mislykkedes" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "Glemt din adgangskode?", + "description": "En administrator kan bruge følgende kommando til at nulstille din adgangskode:" } }, "register": { @@ -180,81 +180,81 @@ "notification": { "success": { "title": "Konto oprettet", - "message": "" + "message": "Log venligst på for at fortsætte" }, "error": { - "title": "", - "message": "" + "title": "Oprettelse af konto mislykkedes", + "message": "Din konto kunne ikke oprettes" } } }, "create": "Opret bruger", "changePassword": { - "label": "", + "label": "Skift adgangskode", "notification": { "success": { - "message": "" + "message": "Adgangskoden er blevet ændret" }, "error": { - "message": "" + "message": "Adgangskoden kunne ikke ændres" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "Hjemmetavle blev ændret" }, "error": { - "message": "" + "message": "Kan ikke ændre hjemmetavle" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "Første ugedag ændret med succes" }, "error": { - "message": "" + "message": "Kan ikke ændre den første ugedag" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Ping ikoner skiftet" }, "error": { - "message": "" + "message": "Kan ikke skifte ping-ikoner" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Skift billede", "notification": { "success": { - "message": "" + "message": "Billedet blev ændret" }, "error": { - "message": "" + "message": "Kan ikke ændre billede" }, "toLarge": { - "title": "", - "message": "" + "title": "Billedet er for stort", + "message": "Maks billedstørrelse er {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "Fjern billede", + "confirm": "Er du sikker på du vil fjerne billedet?", "notification": { "success": { - "message": "" + "message": "Billedet blev fjernet" }, "error": { - "message": "" + "message": "Kan ikke fjerne billede" } } } @@ -262,15 +262,15 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "Profilen blev opdateret" }, "error": { - "message": "" + "message": "Ikke i stand til at opdatere profil" } } }, "delete": { - "label": "", + "label": "Slet brugeren permanent", "description": "", "confirm": "" }, @@ -293,23 +293,23 @@ }, "permission": { "admin": { - "title": "", + "title": "Admin", "item": { "admin": { - "label": "", - "description": "" + "label": "Administrator", + "description": "Medlemmer med denne tilladelse har fuld adgang til alle funktioner og indstillinger" } } }, "app": { - "title": "", + "title": "Apps", "item": { "create": { - "label": "", - "description": "" + "label": "Opret apps", + "description": "Tillad medlemmer at oprette apps" }, "use-all": { - "label": "", + "label": "Brug alle apps", "description": "" }, "modify-all": { diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 33b4fe074..3cae5879f 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -147,7 +147,7 @@ "label": "Eski Şifre" }, "homeBoard": { - "label": "Öntanımlı panel" + "label": "Ana panel" }, "pingIconsEnabled": { "label": "Pingler İçin Simgeler Kullanın" @@ -1208,7 +1208,7 @@ "decreaseIndent": "Girintiyi Azalt", "link": "Bağlantı", "unlink": "Bağlantıyı kaldır", - "image": "Görsel Göm", + "image": "Görsel Yerleştir", "addTable": "Tablo ekle", "deleteTable": "Tablo Sil", "colorCell": "Renk Hücresi", @@ -1676,7 +1676,7 @@ "description": "Medya kod dönüştürmenizin istatistikleri, geçerli kuyruğu ve çalışan durumu", "option": { "defaultView": { - "label": "Öntanımlı görünüm" + "label": "Varsayılan Görünüm" }, "queuePageSize": { "label": "Kuyruk Sayfa Boyutu" @@ -2768,7 +2768,7 @@ "title": "Arama yapmak istediğiniz terimleri girin" }, "searchResults": { - "title": "Eylemler için bir arama sonucu seçin" + "title": "Etkileşime geçmek için bir sonuç seçin" } }, "option": { From 6e21863d04f7d0598e7e7ca3fb707f9beb09d7ef Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Thu, 2 Jan 2025 14:52:38 +0100 Subject: [PATCH 06/15] fix(icons): picker does not allow multiple words (#1827) --- packages/api/src/router/icons.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/api/src/router/icons.ts b/packages/api/src/router/icons.ts index 2128e25ad..9a273336d 100644 --- a/packages/api/src/router/icons.ts +++ b/packages/api/src/router/icons.ts @@ -1,4 +1,4 @@ -import { count, like } from "@homarr/db"; +import { and, count, like } from "@homarr/db"; import { icons } from "@homarr/db/schema"; import { validation } from "@homarr/validation"; @@ -15,7 +15,11 @@ export const iconsRouter = createTRPCRouter({ name: true, url: true, }, - where: (input.searchText?.length ?? 0) > 0 ? like(icons.name, `%${input.searchText}%`) : undefined, + where: + (input.searchText?.length ?? 0) > 0 + ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + and(...input.searchText!.split(" ").map((keyword) => like(icons.name, `%${keyword}%`))) + : undefined, limit: input.limitPerGroup, }, }, From ee8831affe34a33b80a0993aa538c2b16c035f11 Mon Sep 17 00:00:00 2001 From: Yossi Hillali Date: Thu, 2 Jan 2025 20:53:27 +0200 Subject: [PATCH 07/15] fix: prowlarr integration indexers status changed from id to indexerId (#1837) --- packages/integrations/src/prowlarr/prowlarr-integration.ts | 2 +- packages/integrations/src/prowlarr/prowlarr-types.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/integrations/src/prowlarr/prowlarr-integration.ts b/packages/integrations/src/prowlarr/prowlarr-integration.ts index ee76a8ed1..97839f0ff 100644 --- a/packages/integrations/src/prowlarr/prowlarr-integration.ts +++ b/packages/integrations/src/prowlarr/prowlarr-integration.ts @@ -45,7 +45,7 @@ export class ProwlarrIntegration extends Integration { ); } - const inactiveIndexerIds = new Set(statusResult.data.map((status: { id: number }) => status.id)); + const inactiveIndexerIds = new Set(statusResult.data.map((status: { indexerId: number }) => status.indexerId)); const indexers: Indexer[] = indexersResult.data.map((indexer) => ({ id: indexer.id, diff --git a/packages/integrations/src/prowlarr/prowlarr-types.ts b/packages/integrations/src/prowlarr/prowlarr-types.ts index 9b61f74f0..4f3288196 100644 --- a/packages/integrations/src/prowlarr/prowlarr-types.ts +++ b/packages/integrations/src/prowlarr/prowlarr-types.ts @@ -9,6 +9,6 @@ export const indexerResponseSchema = z.object({ export const statusResponseSchema = z.array( z.object({ - id: z.number(), + indexerId: z.number(), }), ); From b6c96f73a53b83ff138e018f6c02aff466dd208b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:55:31 +0000 Subject: [PATCH 08/15] chore(deps): update dependency @types/node to ^22.10.4 (#1838) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++++++++++++-------------------- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 6fb2bad9c..ae16b5458 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -82,7 +82,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "2.4.5", - "@types/node": "^22.10.3", + "@types/node": "^22.10.4", "@types/prismjs": "^1.26.5", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 0cf790d96..7166e761e 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -44,7 +44,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.10.3", + "@types/node": "^22.10.4", "dotenv-cli": "^8.0.0", "eslint": "^9.17.0", "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0d5decae..e10ec6858 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,10 +36,10 @@ importers: version: 14.0.2(semantic-release@24.2.0(typescript@5.7.2)) '@turbo/gen': specifier: ^2.3.3 - version: 2.3.3(@types/node@22.10.3)(typescript@5.7.2) + version: 2.3.3(@types/node@22.10.4)(typescript@5.7.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.4(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.8 version: 2.1.8(vitest@2.1.8) @@ -72,10 +72,10 @@ importers: version: 5.7.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -276,8 +276,8 @@ importers: specifier: 2.4.5 version: 2.4.5 '@types/node': - specifier: ^22.10.3 - version: 22.10.3 + specifier: ^22.10.4 + version: 22.10.4 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 @@ -376,8 +376,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.10.3 - version: 22.10.3 + specifier: ^22.10.4 + version: 22.10.4 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 @@ -4067,8 +4067,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.10.3': - resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==} + '@types/node@22.10.4': + resolution: {integrity: sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -11617,7 +11617,7 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.3.3(@types/node@22.10.3)(typescript@5.7.2)': + '@turbo/gen@2.3.3(@types/node@22.10.4)(typescript@5.7.2)': dependencies: '@turbo/workspaces': 2.3.3 commander: 10.0.1 @@ -11627,7 +11627,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.4.0 - ts-node: 10.9.2(@types/node@22.10.3)(typescript@5.7.2) + ts-node: 10.9.2(@types/node@22.10.4)(typescript@5.7.2) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -11653,11 +11653,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/aws-lambda@8.10.146': {} @@ -11684,22 +11684,22 @@ snapshots: '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/better-sqlite3@7.6.12': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/chroma-js@2.4.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/cookie@0.4.1': {} @@ -11710,11 +11710,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/cors@2.8.17': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/css-font-loading-module@0.0.7': {} @@ -11722,13 +11722,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.32': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/ssh2': 1.15.1 '@types/estree@1.0.5': {} @@ -11737,7 +11737,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11752,7 +11752,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/hast@2.3.10': dependencies: @@ -11790,7 +11790,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.10.3': + '@types/node@22.10.4': dependencies: undici-types: 6.20.0 @@ -11828,21 +11828,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -11855,7 +11855,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/tinycolor2@1.4.6': {} @@ -11871,11 +11871,11 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: @@ -11984,14 +11984,14 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12009,7 +12009,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12020,13 +12020,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -12056,7 +12056,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.8': dependencies: @@ -13242,7 +13242,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.10.3 + '@types/node': 22.10.4 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -14755,7 +14755,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17236,14 +17236,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@22.10.3)(typescript@5.7.2): + ts-node@10.9.2(@types/node@22.10.4)(typescript@5.7.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.3 + '@types/node': 22.10.4 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17663,13 +17663,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.8(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@2.1.8(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -17681,33 +17681,33 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.7.2) optionalDependencies: - vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.21.3 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 fsevents: 2.3.3 sass: 1.83.0 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.8(@types/node@22.10.3)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -17723,11 +17723,11 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.5(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 2.1.8(@types/node@22.10.3)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.8(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 '@vitest/ui': 2.1.8(vitest@2.1.8) jsdom: 25.0.1 transitivePeerDependencies: From d43557e16500c09fb33c319c76ceee939b5e0415 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 21:39:38 +0000 Subject: [PATCH 09/15] chore(deps): update dependency @types/dockerode to ^3.3.33 (#1839) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/api/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/api/package.json b/packages/api/package.json index 1593a6df6..7e7e4e959 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -51,7 +51,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/dockerode": "^3.3.32", + "@types/dockerode": "^3.3.33", "eslint": "^9.17.0", "prettier": "^3.4.2", "typescript": "^5.7.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e10ec6858..f0e3ea225 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -577,8 +577,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/dockerode': - specifier: ^3.3.32 - version: 3.3.32 + specifier: ^3.3.33 + version: 3.3.33 eslint: specifier: ^9.17.0 version: 9.17.0 @@ -4010,8 +4010,8 @@ packages: '@types/docker-modem@3.0.6': resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} - '@types/dockerode@3.3.32': - resolution: {integrity: sha512-xxcG0g5AWKtNyh7I7wswLdFvym4Mlqks5ZlKzxEUrGHS0r0PUOfxm2T0mspwu10mHQqu3Ck3MI3V2HqvLWE1fg==} + '@types/dockerode@3.3.33': + resolution: {integrity: sha512-7av8lVOhkW7Xd11aZTSq5zhdpyNraldXwQR0pxUCiSNTvIzsP86KrFrmrZgxtrXD2Zrtzwt4H6OYLbATONWzWg==} '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -11725,7 +11725,7 @@ snapshots: '@types/node': 22.10.4 '@types/ssh2': 1.15.1 - '@types/dockerode@3.3.32': + '@types/dockerode@3.3.33': dependencies: '@types/docker-modem': 3.0.6 '@types/node': 22.10.4 @@ -17088,7 +17088,7 @@ snapshots: testcontainers@10.16.0: dependencies: '@balena/dockerignore': 1.0.2 - '@types/dockerode': 3.3.32 + '@types/dockerode': 3.3.33 archiver: 7.0.1 async-lock: 1.4.1 byline: 5.0.0 From bc5e25e9cd3269a3d8cc8ef521ae75aff50088be Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:16:35 +0000 Subject: [PATCH 10/15] fix(deps): update tanstack-query monorepo to ^5.62.12 (#1843) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 6 ++-- pnpm-lock.yaml | 62 ++++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index ae16b5458..0adcc49c2 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -47,9 +47,9 @@ "@million/lint": "1.0.14", "@t3-oss/env-nextjs": "^0.11.1", "@tabler/icons-react": "^3.26.0", - "@tanstack/react-query": "^5.62.11", - "@tanstack/react-query-devtools": "^5.62.11", - "@tanstack/react-query-next-experimental": "5.62.11", + "@tanstack/react-query": "^5.62.12", + "@tanstack/react-query-devtools": "^5.62.12", + "@tanstack/react-query-next-experimental": "5.62.12", "@trpc/client": "next", "@trpc/next": "next", "@trpc/react-query": "next", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0e3ea225..df710916c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -176,23 +176,23 @@ importers: specifier: ^3.26.0 version: 3.26.0(react@19.0.0) '@tanstack/react-query': - specifier: ^5.62.11 - version: 5.62.11(react@19.0.0) + specifier: ^5.62.12 + version: 5.62.12(react@19.0.0) '@tanstack/react-query-devtools': - specifier: ^5.62.11 - version: 5.62.11(@tanstack/react-query@5.62.11(react@19.0.0))(react@19.0.0) + specifier: ^5.62.12 + version: 5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(react@19.0.0) '@tanstack/react-query-next-experimental': - specifier: 5.62.11 - version: 5.62.11(@tanstack/react-query@5.62.11(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) + specifier: 5.62.12 + version: 5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) '@trpc/client': specifier: next version: 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/next': specifier: next - version: 11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/react-query': specifier: next - version: 11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/server': specifier: next version: 11.0.0-rc.682(typescript@5.7.2) @@ -544,7 +544,7 @@ importers: version: 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/react-query': specifier: next - version: 11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/server': specifier: next version: 11.0.0-rc.682(typescript@5.7.2) @@ -3647,27 +3647,27 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.62.9': - resolution: {integrity: sha512-lwePd8hNYhyQ4nM/iRQ+Wz2cDtspGeZZHFZmCzHJ7mfKXt+9S301fULiY2IR2byJYY6Z03T427E5PoVfMexHjw==} + '@tanstack/query-core@5.62.12': + resolution: {integrity: sha512-6igFeBgymHkCxVgaEk+yiLwkMf9haui/EQLmI3o9CatOyDThEoFKe8toLWvWliZC/Jf+h7NwHi/zjfyLArr1ow==} '@tanstack/query-devtools@5.62.9': resolution: {integrity: sha512-b1NZzDLVf6laJsB1Cfm3ieuYzM+WqoO8qpm9v+3Etwd+Ph4zkhUMiT+wcWj5AhEPsXiRodKYiiW048VDNdBxNg==} - '@tanstack/react-query-devtools@5.62.11': - resolution: {integrity: sha512-i0vKgdM4ORRzqduz7UeUF52UhLrvRp4sNY/DnLsd5NqNyiKct3a0bLQMWE2fqjF5tEExQ0d0xY60ILXW/T62xA==} + '@tanstack/react-query-devtools@5.62.12': + resolution: {integrity: sha512-UvkqYOplVRn6D5wMC14XHu1MCJC0ssi3FJuiQW1iSYA4cxh4GD/cy8ScMCEOtcY7j2JCFw2d3grSWxT4c66cdg==} peerDependencies: - '@tanstack/react-query': ^5.62.11 + '@tanstack/react-query': ^5.62.12 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.62.11': - resolution: {integrity: sha512-8mSweAv3Vzs/FW2O7xFDvanoRz/MF7WhBxwZ79Qv0lxPTTYsoFQxdFm6mH7j5u1q2Wf2Y+09S75hJvpJDuu6VQ==} + '@tanstack/react-query-next-experimental@5.62.12': + resolution: {integrity: sha512-6otw/+R4pm6OBnf6mO6Icw37ViNS4Sc7RuzHWIr8z7J9tBwt3xZKD2HPDXs3AbzJCY9s4bJAOsCzhUPwQO1SiA==} peerDependencies: - '@tanstack/react-query': ^5.62.11 + '@tanstack/react-query': ^5.62.12 next: ^13 || ^14 || ^15 react: ^18 || ^19 - '@tanstack/react-query@5.62.11': - resolution: {integrity: sha512-Xb1nw0cYMdtFmwkvH9+y5yYFhXvLRCnXoqlzSw7UkqtCVFq3cG8q+rHZ2Yz1XrC+/ysUaTqbLKJqk95mCgC1oQ==} + '@tanstack/react-query@5.62.12': + resolution: {integrity: sha512-yt8p7l5MlHA3QCt6xF1Cu9dw1Anf93yTK+DMDJQ64h/mshAymVAtcwj8TpsyyBrZNWAAZvza/m76bnTSR79ZtQ==} peerDependencies: react: ^18 || ^19 @@ -11325,25 +11325,25 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.62.9': {} + '@tanstack/query-core@5.62.12': {} '@tanstack/query-devtools@5.62.9': {} - '@tanstack/react-query-devtools@5.62.11(@tanstack/react-query@5.62.11(react@19.0.0))(react@19.0.0)': + '@tanstack/react-query-devtools@5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/query-devtools': 5.62.9 - '@tanstack/react-query': 5.62.11(react@19.0.0) + '@tanstack/react-query': 5.62.12(react@19.0.0) react: 19.0.0 - '@tanstack/react-query-next-experimental@5.62.11(@tanstack/react-query@5.62.11(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': + '@tanstack/react-query-next-experimental@5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': dependencies: - '@tanstack/react-query': 5.62.11(react@19.0.0) + '@tanstack/react-query': 5.62.12(react@19.0.0) next: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 - '@tanstack/react-query@5.62.11(react@19.0.0)': + '@tanstack/react-query@5.62.12(react@19.0.0)': dependencies: - '@tanstack/query-core': 5.62.9 + '@tanstack/query-core': 5.62.12 react: 19.0.0 '@tanstack/react-table@8.20.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': @@ -11582,7 +11582,7 @@ snapshots: '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) typescript: 5.7.2 - '@trpc/next@11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': + '@trpc/next@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': dependencies: '@trpc/client': 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) @@ -11591,12 +11591,12 @@ snapshots: react-dom: 19.0.0(react@19.0.0) typescript: 5.7.2 optionalDependencies: - '@tanstack/react-query': 5.62.11(react@19.0.0) - '@trpc/react-query': 11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + '@tanstack/react-query': 5.62.12(react@19.0.0) + '@trpc/react-query': 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) - '@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.11(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': + '@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': dependencies: - '@tanstack/react-query': 5.62.11(react@19.0.0) + '@tanstack/react-query': 5.62.12(react@19.0.0) '@trpc/client': 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) react: 19.0.0 From cc70175125e45252bd44232a8eaeefce487ea8f9 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:28:36 +0000 Subject: [PATCH 11/15] chore(deps): update semantic-release monorepo (#1841) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 6 ++-- pnpm-lock.yaml | 86 +++++++++++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 7d727a8c4..e0d519a17 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^13.0.0", + "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^11.0.1", "@semantic-release/npm": "^12.0.1", - "@semantic-release/release-notes-generator": "^14.0.2", + "@semantic-release/release-notes-generator": "^14.0.3", "@turbo/gen": "^2.3.3", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^2.1.8", @@ -45,7 +45,7 @@ "cross-env": "^7.0.3", "jsdom": "^25.0.1", "prettier": "^3.4.2", - "semantic-release": "^24.2.0", + "semantic-release": "^24.2.1", "testcontainers": "^10.16.0", "turbo": "^2.3.3", "typescript": "^5.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df710916c..b95ee8c16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,22 +18,22 @@ importers: version: link:tooling/prettier '@semantic-release/changelog': specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.2.0(typescript@5.7.2)) + version: 6.0.3(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/commit-analyzer': - specifier: ^13.0.0 - version: 13.0.0(semantic-release@24.2.0(typescript@5.7.2)) + specifier: ^13.0.1 + version: 13.0.1(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/git': specifier: ^10.0.1 - version: 10.0.1(semantic-release@24.2.0(typescript@5.7.2)) + version: 10.0.1(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/github': specifier: ^11.0.1 - version: 11.0.1(semantic-release@24.2.0(typescript@5.7.2)) + version: 11.0.1(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@24.2.0(typescript@5.7.2)) + version: 12.0.1(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/release-notes-generator': - specifier: ^14.0.2 - version: 14.0.2(semantic-release@24.2.0(typescript@5.7.2)) + specifier: ^14.0.3 + version: 14.0.3(semantic-release@24.2.1(typescript@5.7.2)) '@turbo/gen': specifier: ^2.3.3 version: 2.3.3(@types/node@22.10.4)(typescript@5.7.2) @@ -59,8 +59,8 @@ importers: specifier: ^3.4.2 version: 3.4.2 semantic-release: - specifier: ^24.2.0 - version: 24.2.0(typescript@5.7.2) + specifier: ^24.2.1 + version: 24.2.1(typescript@5.7.2) testcontainers: specifier: ^10.16.0 version: 10.16.0 @@ -3474,8 +3474,8 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/commit-analyzer@13.0.0': - resolution: {integrity: sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==} + '@semantic-release/commit-analyzer@13.0.1': + resolution: {integrity: sha512-wdnBPHKkr9HhNhXOhZD5a2LNl91+hs8CC2vsAVYxtZH3y0dV3wKn+uZSN61rdJQZ8EGxzWB3inWocBHV9+u/CQ==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -3506,8 +3506,8 @@ packages: peerDependencies: semantic-release: '>=20.1.0' - '@semantic-release/release-notes-generator@14.0.2': - resolution: {integrity: sha512-ur2l2tVLBfX3fSEO2rCy2X6Kzg5S7BHGqdwTHvJrpWp4mOEN7W4K/2kWAjvfAlwMenEKjMnDIhBbxxjnP0S9hw==} + '@semantic-release/release-notes-generator@14.0.3': + resolution: {integrity: sha512-XxAZRPWGwO5JwJtS83bRdoIhCiYIx8Vhr+u231pQAsdFIAbm19rSVJLdnBN+Avvk7CKvNQE/nJ4y7uqKH6WTiw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -6204,9 +6204,9 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-from-esm@1.3.4: - resolution: {integrity: sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==} - engines: {node: '>=16.20'} + import-from-esm@2.0.0: + resolution: {integrity: sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==} + engines: {node: '>=18.20'} import-lazy@2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} @@ -8195,8 +8195,8 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - semantic-release@24.2.0: - resolution: {integrity: sha512-fQfn6e/aYToRtVJYKqneFM1Rg3KP2gh3wSWtpYsLlz6uaPKlISrTzvYAFn+mYWo07F0X1Cz5ucU89AVE8X1mbg==} + semantic-release@24.2.1: + resolution: {integrity: sha512-z0/3cutKNkLQ4Oy0HTi3lubnjTsdjjgOqmxdPjeYWe6lhFqUPfwslZxRHv3HDZlN4MhnZitb9SLihDkZNxOXfQ==} engines: {node: '>=20.8.1'} hasBin: true @@ -10859,25 +10859,25 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/changelog@6.0.3(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/changelog@6.0.3(semantic-release@24.2.1(typescript@5.7.2))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) - '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/commit-analyzer@13.0.1(semantic-release@24.2.1(typescript@5.7.2))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.7 - import-from-esm: 1.3.4 + debug: 4.4.0 + import-from-esm: 2.0.0 lodash-es: 4.17.21 micromatch: 4.0.8 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) transitivePeerDependencies: - supports-color @@ -10885,7 +10885,7 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/git@10.0.1(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/git@10.0.1(semantic-release@24.2.1(typescript@5.7.2))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 @@ -10895,11 +10895,11 @@ snapshots: lodash: 4.17.21 micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) transitivePeerDependencies: - supports-color - '@semantic-release/github@11.0.1(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/github@11.0.1(semantic-release@24.2.1(typescript@5.7.2))': dependencies: '@octokit/core': 6.1.2 '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2) @@ -10916,12 +10916,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.1(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/npm@12.0.1(semantic-release@24.2.1(typescript@5.7.2))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -10934,23 +10934,23 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) semver: 7.6.3 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.0.2(semantic-release@24.2.0(typescript@5.7.2))': + '@semantic-release/release-notes-generator@14.0.3(semantic-release@24.2.1(typescript@5.7.2))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.7 + debug: 4.4.0 get-stream: 7.0.1 - import-from-esm: 1.3.4 + import-from-esm: 2.0.0 into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.1(typescript@5.7.2) transitivePeerDependencies: - supports-color @@ -14342,7 +14342,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-from-esm@1.3.4: + import-from-esm@2.0.0: dependencies: debug: 4.4.0 import-meta-resolve: 4.1.0 @@ -16459,16 +16459,16 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - semantic-release@24.2.0(typescript@5.7.2): + semantic-release@24.2.1(typescript@5.7.2): dependencies: - '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.2.0(typescript@5.7.2)) + '@semantic-release/commit-analyzer': 13.0.1(semantic-release@24.2.1(typescript@5.7.2)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 11.0.1(semantic-release@24.2.0(typescript@5.7.2)) - '@semantic-release/npm': 12.0.1(semantic-release@24.2.0(typescript@5.7.2)) - '@semantic-release/release-notes-generator': 14.0.2(semantic-release@24.2.0(typescript@5.7.2)) + '@semantic-release/github': 11.0.1(semantic-release@24.2.1(typescript@5.7.2)) + '@semantic-release/npm': 12.0.1(semantic-release@24.2.1(typescript@5.7.2)) + '@semantic-release/release-notes-generator': 14.0.3(semantic-release@24.2.1(typescript@5.7.2)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.7.2) - debug: 4.3.7 + debug: 4.4.0 env-ci: 11.1.0 execa: 9.5.2 figures: 6.1.0 @@ -16477,7 +16477,7 @@ snapshots: git-log-parser: 1.2.1 hook-std: 3.0.0 hosted-git-info: 8.0.2 - import-from-esm: 1.3.4 + import-from-esm: 2.0.0 lodash-es: 4.17.21 marked: 12.0.2 marked-terminal: 7.2.1(marked@12.0.2) From aa15a705d71deaaf70ef1f2243d97b116da6dc8b Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:33:38 +0000 Subject: [PATCH 12/15] chore(lang): updated translations from crowdin Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/nl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index f089b5943..20a8f8b91 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -1404,7 +1404,7 @@ "memory": "Geheugen: {memory}GiB", "memoryAvailable": "Beschikbaar: {memoryAvailable}GiB ({percent}%)", "version": "Versie: {version}", - "uptime": "Uptime: {days} Dagen, {hours} Uren, {minutes} Minuten", + "uptime": "Uptime: {months} maanden, {days} dagen, {hours} uren, {minutes} minuten", "loadAverage": "Gemiddelde belasting:", "minute": "1 minuut", "minutes": "{count} minuten", From 0780080681fec86089af09a2ffe7d680db4057d2 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:33:47 +0000 Subject: [PATCH 13/15] chore(deps): update dependency @types/node to ^22.10.5 (#1842) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++++++++++++-------------------- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 0adcc49c2..9c4864f44 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -82,7 +82,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "2.4.5", - "@types/node": "^22.10.4", + "@types/node": "^22.10.5", "@types/prismjs": "^1.26.5", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 7166e761e..01b5f9e15 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -44,7 +44,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.10.4", + "@types/node": "^22.10.5", "dotenv-cli": "^8.0.0", "eslint": "^9.17.0", "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b95ee8c16..d8619d666 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,10 +36,10 @@ importers: version: 14.0.3(semantic-release@24.2.1(typescript@5.7.2)) '@turbo/gen': specifier: ^2.3.3 - version: 2.3.3(@types/node@22.10.4)(typescript@5.7.2) + version: 2.3.3(@types/node@22.10.5)(typescript@5.7.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.4(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.8 version: 2.1.8(vitest@2.1.8) @@ -72,10 +72,10 @@ importers: version: 5.7.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 2.1.8(@types/node@22.10.5)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -276,8 +276,8 @@ importers: specifier: 2.4.5 version: 2.4.5 '@types/node': - specifier: ^22.10.4 - version: 22.10.4 + specifier: ^22.10.5 + version: 22.10.5 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 @@ -376,8 +376,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.10.4 - version: 22.10.4 + specifier: ^22.10.5 + version: 22.10.5 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 @@ -4067,8 +4067,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.10.4': - resolution: {integrity: sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -11617,7 +11617,7 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.3.3(@types/node@22.10.4)(typescript@5.7.2)': + '@turbo/gen@2.3.3(@types/node@22.10.5)(typescript@5.7.2)': dependencies: '@turbo/workspaces': 2.3.3 commander: 10.0.1 @@ -11627,7 +11627,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.4.0 - ts-node: 10.9.2(@types/node@22.10.4)(typescript@5.7.2) + ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.7.2) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -11653,11 +11653,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/aws-lambda@8.10.146': {} @@ -11684,22 +11684,22 @@ snapshots: '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/better-sqlite3@7.6.12': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/chroma-js@2.4.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/cookie@0.4.1': {} @@ -11710,11 +11710,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/cors@2.8.17': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/css-font-loading-module@0.0.7': {} @@ -11722,13 +11722,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.33': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/ssh2': 1.15.1 '@types/estree@1.0.5': {} @@ -11737,7 +11737,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11752,7 +11752,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/hast@2.3.10': dependencies: @@ -11790,7 +11790,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.10.4': + '@types/node@22.10.5': dependencies: undici-types: 6.20.0 @@ -11828,21 +11828,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -11855,7 +11855,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/tinycolor2@1.4.6': {} @@ -11871,11 +11871,11 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: @@ -11984,14 +11984,14 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12009,7 +12009,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.5)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12020,13 +12020,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@2.1.8(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -12056,7 +12056,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.8(@types/node@22.10.5)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.8': dependencies: @@ -13242,7 +13242,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.10.4 + '@types/node': 22.10.5 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -14755,7 +14755,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17236,14 +17236,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@22.10.4)(typescript@5.7.2): + ts-node@10.9.2(@types/node@22.10.5)(typescript@5.7.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.4 + '@types/node': 22.10.5 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17663,13 +17663,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.8(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@2.1.8(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -17681,33 +17681,33 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.7.2) optionalDependencies: - vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.21.3 optionalDependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 fsevents: 2.3.3 sass: 1.83.0 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.8(@types/node@22.10.4)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@2.1.8(@types/node@22.10.5)(@vitest/ui@2.1.8)(jsdom@25.0.1)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 2.1.8(vite@5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -17723,11 +17723,11 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.5(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 2.1.8(@types/node@22.10.4)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.8(@types/node@22.10.5)(sass@1.83.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.4 + '@types/node': 22.10.5 '@vitest/ui': 2.1.8(vitest@2.1.8) jsdom: 25.0.1 transitivePeerDependencies: From 6305c74f90d943722c915ffbf54b5fd7e68a7dca Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 3 Jan 2025 16:35:43 +0100 Subject: [PATCH 14/15] feat: remove import beta badge (#1829) --- .../manage/boards/_components/create-board-button.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx index 0aa295481..849db72e7 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx @@ -1,12 +1,11 @@ "use client"; -import { Affix, Button, Group, Menu } from "@mantine/core"; +import { Affix, Button, Menu } from "@mantine/core"; import { IconCategoryPlus, IconChevronDown, IconFileImport } from "@tabler/icons-react"; import { useModalAction } from "@homarr/modals"; import { AddBoardModal, ImportBoardModal } from "@homarr/modals-collection"; import { useI18n } from "@homarr/translation/client"; -import { BetaBadge } from "@homarr/ui"; export const CreateBoardButton = () => { const t = useI18n(); @@ -26,10 +25,7 @@ export const CreateBoardButton = () => { }> - - {t("board.action.oldImport.label")} - - + {t("board.action.oldImport.label")} From 4ead238462828934483a684ef56c46d7908968f5 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 3 Jan 2025 16:49:30 +0100 Subject: [PATCH 15/15] test(e2e): add for onboarding and lldap authorization (#1834) * test(e2e): add for onboarding and lldap authorization * ci: add playwright chrome installation to e2e test * fix(e2e): timeout between lldap login redirect to short * test(e2e): add oidc azure test * fix(e2e): lldap test fails * wip: add temporary error log for failed ldap server connection * fix(e2e): github actions don't support host.docker.internal * chore: address pull request feedback * refactor(e2e): move onboarding steps to onboarding actions and assertions * fix(e2e): increase timeout for navigating back from azure login * fix: wait for url network changed error * fix: revert to wait for url * fix(e2e): remove oidc test * refactor(e2e): remove env validation * ci: remove azure oidc env variables --- .dockerignore | 3 +- .github/workflows/code-quality.yml | 2 + .gitignore | 2 + e2e/lldap.spec.ts | 92 +++++++++++++++++++ e2e/onboarding.spec.ts | 85 +++++++++++++++++ e2e/shared/actions/onboarding-actions.ts | 53 +++++++++++ .../assertions/onboarding-assertions.ts | 62 +++++++++++++ e2e/shared/create-homarr-container.ts | 43 +++++++-- e2e/shared/e2e-db.ts | 32 +++++++ .../src/docs/homarr-docs-sitemap.ts | 4 + pnpm-lock.yaml | 77 +++++++++++----- 11 files changed, 422 insertions(+), 33 deletions(-) create mode 100644 e2e/lldap.spec.ts create mode 100644 e2e/onboarding.spec.ts create mode 100644 e2e/shared/actions/onboarding-actions.ts create mode 100644 e2e/shared/assertions/onboarding-assertions.ts create mode 100644 e2e/shared/e2e-db.ts diff --git a/.dockerignore b/.dockerignore index 7f15c4204..9269854cc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,4 +6,5 @@ README.md .next .git dev -.build \ No newline at end of file +.build +e2e \ No newline at end of file diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index a93cfe2f2..92efa0d03 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -91,6 +91,8 @@ jobs: network: host env: SKIP_ENV_VALIDATION: true + - name: Install playwright browsers + run: pnpm exec playwright install chromium - name: Run E2E Tests shell: bash run: pnpm test:e2e diff --git a/.gitignore b/.gitignore index bdc55c860..7e1d14c68 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,8 @@ apps/websocket/wssServer.cjs apps/nextjs/.million/ packages/cli/cli.cjs +# e2e mounts +e2e/shared/tmp #personal backgrounds apps/nextjs/public/images/background.png \ No newline at end of file diff --git a/e2e/lldap.spec.ts b/e2e/lldap.spec.ts new file mode 100644 index 000000000..f9015af55 --- /dev/null +++ b/e2e/lldap.spec.ts @@ -0,0 +1,92 @@ +import { chromium } from "playwright"; +import { GenericContainer } from "testcontainers"; +import { describe, expect, test } from "vitest"; + +import { OnboardingActions } from "./shared/actions/onboarding-actions"; +import { createHomarrContainer, withLogs } from "./shared/create-homarr-container"; +import { createSqliteDbFileAsync } from "./shared/e2e-db"; + +const defaultCredentials = { + username: "admin", + password: "password", + email: "admin@homarr.dev", + group: "lldap_admin", +}; + +const ldapBase = "dc=example,dc=com"; + +describe("LLDAP authorization", () => { + test("Authorize with LLDAP successfully", async () => { + // Arrange + const lldapContainer = await createLldapContainer().start(); + const { db, localMountPath } = await createSqliteDbFileAsync(); + const homarrContainer = await createHomarrContainer({ + environment: { + AUTH_PROVIDERS: "ldap", + AUTH_LDAP_URI: `ldap://host.docker.internal:${lldapContainer.getMappedPort(3890)}`, + AUTH_LDAP_BASE: ldapBase, + AUTH_LDAP_BIND_DN: `uid=${defaultCredentials.username},ou=People,${ldapBase}`, + AUTH_LDAP_BIND_PASSWORD: defaultCredentials.password, + }, + mounts: { + "/appdata": localMountPath, + }, + }).start(); + + const browser = await chromium.launch(); + const context = await browser.newContext(); + const page = await context.newPage(); + + const onboardingActions = new OnboardingActions(page, db); + await onboardingActions.skipOnboardingAsync({ + group: defaultCredentials.group, + }); + + // Act + await page.goto(`http://${homarrContainer.getHost()}:${homarrContainer.getMappedPort(7575)}/auth/login`); + await page.getByLabel("Username").fill(defaultCredentials.username); + await page.getByLabel("Password").fill(defaultCredentials.password); + await page.locator("css=button[type='submit']").click(); + + // Assert + await page.waitForURL(`http://${homarrContainer.getHost()}:${homarrContainer.getMappedPort(7575)}`); + const users = await db.query.users.findMany({ + with: { + groups: { + with: { + group: true, + }, + }, + }, + }); + expect(users).toHaveLength(1); + const user = users[0]!; + expect(user).toEqual( + expect.objectContaining({ + name: defaultCredentials.username, + email: defaultCredentials.email, + provider: "ldap", + }), + ); + + const groups = user.groups.map((g) => g.group.name); + expect(groups).toContain(defaultCredentials.group); + + // Cleanup + await browser.close(); + await homarrContainer.stop(); + await lldapContainer.stop(); + }, 120_000); +}); + +const createLldapContainer = () => { + return withLogs( + new GenericContainer("lldap/lldap:stable").withExposedPorts(3890).withEnvironment({ + LLDAP_JWT_SECRET: "REPLACE_WITH_RANDOM", + LLDAP_KEY_SEED: "REPLACE_WITH_RANDOM", + LLDAP_LDAP_BASE_DN: ldapBase, + LLDAP_LDAP_USER_PASS: defaultCredentials.password, + LLDAP_LDAP_USER_EMAIL: defaultCredentials.email, + }), + ); +}; diff --git a/e2e/onboarding.spec.ts b/e2e/onboarding.spec.ts new file mode 100644 index 000000000..061f5e6d8 --- /dev/null +++ b/e2e/onboarding.spec.ts @@ -0,0 +1,85 @@ +import { chromium } from "playwright"; +import { describe, test } from "vitest"; + +import { OnboardingActions } from "./shared/actions/onboarding-actions"; +import { OnboardingAssertions } from "./shared/assertions/onboarding-assertions"; +import { createHomarrContainer } from "./shared/create-homarr-container"; +import { createSqliteDbFileAsync } from "./shared/e2e-db"; + +describe("Onboarding", () => { + test("Credentials onboarding should be successful", async () => { + // Arrange + const { db, localMountPath } = await createSqliteDbFileAsync(); + const homarrContainer = await createHomarrContainer({ + mounts: { + "/appdata": localMountPath, + }, + }).start(); + + const browser = await chromium.launch(); + const context = await browser.newContext(); + const page = await context.newPage(); + const actions = new OnboardingActions(page, db); + const assertions = new OnboardingAssertions(page, db); + + // Act + await page.goto(`http://${homarrContainer.getHost()}:${homarrContainer.getMappedPort(7575)}`); + await actions.startOnboardingAsync("scratch"); + await actions.processUserStepAsync({ + username: "admin", + password: "Comp(exP4sswOrd", + confirmPassword: "Comp(exP4sswOrd", + }); + await actions.processSettingsStepAsync(); + + // Assert + await assertions.assertFinishStepVisibleAsync(); + await assertions.assertUserAndAdminGroupInsertedAsync("admin"); + await assertions.assertDbOnboardingStepAsync("finish"); + + // Cleanup + await browser.close(); + await homarrContainer.stop(); + }, 60_000); + + test("External provider onboarding setup should be successful", async () => { + // Arrange + const { db, localMountPath } = await createSqliteDbFileAsync(); + const homarrContainer = await createHomarrContainer({ + environment: { + AUTH_PROVIDERS: "ldap", + AUTH_LDAP_URI: "ldap://host.docker.internal:3890", + AUTH_LDAP_BASE: "", + AUTH_LDAP_BIND_DN: "", + AUTH_LDAP_BIND_PASSWORD: "", + }, + mounts: { + "/appdata": localMountPath, + }, + }).start(); + const externalGroupName = "oidc-admins"; + + const browser = await chromium.launch(); + const context = await browser.newContext(); + const page = await context.newPage(); + const actions = new OnboardingActions(page, db); + const assertions = new OnboardingAssertions(page, db); + + // Act + await page.goto(`http://${homarrContainer.getHost()}:${homarrContainer.getMappedPort(7575)}`); + await actions.startOnboardingAsync("scratch"); + await actions.processExternalGroupStepAsync({ + name: externalGroupName, + }); + await actions.processSettingsStepAsync(); + + // Assert + await assertions.assertFinishStepVisibleAsync(); + await assertions.assertExternalGroupInsertedAsync(externalGroupName); + await assertions.assertDbOnboardingStepAsync("finish"); + + // Cleanup + await browser.close(); + await homarrContainer.stop(); + }, 60_000); +}); diff --git a/e2e/shared/actions/onboarding-actions.ts b/e2e/shared/actions/onboarding-actions.ts new file mode 100644 index 000000000..8362a46a5 --- /dev/null +++ b/e2e/shared/actions/onboarding-actions.ts @@ -0,0 +1,53 @@ +import { createId } from "@paralleldrive/cuid2"; +import type { Page } from "playwright"; + +import * as sqliteSchema from "../../../packages/db/schema/sqlite"; +import type { SqliteDatabase } from "../e2e-db"; + +export class OnboardingActions { + private readonly page: Page; + private readonly db: SqliteDatabase; + + constructor(page: Page, db: SqliteDatabase) { + this.page = page; + this.db = db; + } + + public async skipOnboardingAsync(input?: { group?: string }) { + await this.db.update(sqliteSchema.onboarding).set({ + step: "finish", + }); + + if (input?.group) { + await this.db.insert(sqliteSchema.groups).values({ + id: createId(), + name: input.group, + }); + } + } + + public async startOnboardingAsync(type: "scratch" | "before 1.0") { + await this.page.locator("button", { hasText: type }).click(); + } + + public async processUserStepAsync(input: { username: string; password: string; confirmPassword: string }) { + await this.page.waitForSelector("text=administrator user"); + + await this.page.getByLabel("Username").fill(input.username); + await this.page.getByLabel("Password", { exact: true }).fill(input.password); + await this.page.getByLabel("Confirm password").fill(input.confirmPassword); + + await this.page.locator("css=button[type='submit']").click(); + } + + public async processExternalGroupStepAsync(input: { name: string }) { + await this.page.waitForSelector("text=external provider"); + await this.page.locator("input").fill(input.name); + await this.page.locator("css=button[type='submit']").click(); + } + + public async processSettingsStepAsync() { + await this.page.waitForSelector("text=Analytics"); + await this.page.locator("css=button[type='submit']").click(); + } +} diff --git a/e2e/shared/assertions/onboarding-assertions.ts b/e2e/shared/assertions/onboarding-assertions.ts new file mode 100644 index 000000000..a2f9ccb2f --- /dev/null +++ b/e2e/shared/assertions/onboarding-assertions.ts @@ -0,0 +1,62 @@ +import { eq } from "drizzle-orm"; +import type { Page } from "playwright"; +import { expect } from "vitest"; + +import * as sqliteSchema from "../../../packages/db/schema/sqlite"; +import { OnboardingStep } from "../../../packages/definitions/src"; +import { credentialsAdminGroup } from "../../../packages/definitions/src/group"; +import type { SqliteDatabase } from "../e2e-db"; + +export class OnboardingAssertions { + private readonly page: Page; + private readonly db: SqliteDatabase; + + constructor(page: Page, db: SqliteDatabase) { + this.page = page; + this.db = db; + } + + public async assertDbOnboardingStepAsync(expectedStep: OnboardingStep) { + const onboarding = await this.db.query.onboarding.findFirst(); + expect(onboarding?.step).toEqual(expectedStep); + } + + public async assertUserAndAdminGroupInsertedAsync(expectedUsername: string) { + const users = await this.db.query.users.findMany({ + with: { + groups: { + with: { + group: { + with: { + permissions: true, + }, + }, + }, + }, + }, + }); + + const user = users.find((u) => u.name === expectedUsername); + expect(user).toBeDefined(); + + const adminGroup = user!.groups.find((g) => g.group.name === credentialsAdminGroup); + expect(adminGroup).toBeDefined(); + expect(adminGroup!.group.permissions).toEqual([expect.objectContaining({ permission: "admin" })]); + } + + public async assertExternalGroupInsertedAsync(expectedGroupName: string) { + const group = await this.db.query.groups.findFirst({ + where: eq(sqliteSchema.groups.name, expectedGroupName), + with: { + permissions: true, + }, + }); + + expect(group).toBeDefined(); + expect(group!.permissions).toEqual([expect.objectContaining({ permission: "admin" })]); + } + + public async assertFinishStepVisibleAsync() { + await this.page.waitForSelector("text=completed the setup", { timeout: 5000 }); + } +} diff --git a/e2e/shared/create-homarr-container.ts b/e2e/shared/create-homarr-container.ts index 3183e66ca..7e5bcd5c4 100644 --- a/e2e/shared/create-homarr-container.ts +++ b/e2e/shared/create-homarr-container.ts @@ -1,18 +1,43 @@ import { GenericContainer, Wait } from "testcontainers"; +import { Environment } from "testcontainers/build/types"; -export const createHomarrContainer = () => { +export const createHomarrContainer = ( + options: { + environment?: Environment; + mounts?: { + "/appdata"?: string; + "/var/run/docker.sock"?: string; + }; + } = {}, +) => { if (!process.env.CI) { throw new Error("This test should only be run in CI or with a homarr image named 'homarr-e2e'"); } - return withLogs( - new GenericContainer("homarr-e2e") - .withExposedPorts(7575) - .withEnvironment({ - SECRET_ENCRYPTION_KEY: "0".repeat(64), - }) - .withWaitStrategy(Wait.forHttp("/api/health/ready", 7575)), - ); + const container = new GenericContainer("homarr-e2e") + .withExposedPorts(7575) + .withEnvironment({ + ...options.environment, + SECRET_ENCRYPTION_KEY: "0".repeat(64), + }) + .withBindMounts( + Object.entries(options.mounts ?? {}) + .filter((item) => item?.[0] !== undefined) + .map(([container, local]) => ({ + source: local, + target: container, + })), + ) + .withWaitStrategy(Wait.forHttp("/api/health/ready", 7575)) + .withExtraHosts([ + { + // This enabled the usage of host.docker.internal as hostname in the container + host: "host.docker.internal", + ipAddress: "host-gateway", + }, + ]); + + return withLogs(container); }; export const withLogs = (container: GenericContainer) => { diff --git a/e2e/shared/e2e-db.ts b/e2e/shared/e2e-db.ts new file mode 100644 index 000000000..0abc87823 --- /dev/null +++ b/e2e/shared/e2e-db.ts @@ -0,0 +1,32 @@ +import { mkdir } from "fs/promises"; +import path from "path"; +import { createId } from "@paralleldrive/cuid2"; +import Database from "better-sqlite3"; +import { BetterSQLite3Database, drizzle } from "drizzle-orm/better-sqlite3"; +import { migrate } from "drizzle-orm/better-sqlite3/migrator"; + +import * as sqliteSchema from "../../packages/db/schema/sqlite"; + +export const createSqliteDbFileAsync = async () => { + const localMountPath = path.join(__dirname, "tmp", createId()); + await mkdir(path.join(localMountPath, "db"), { recursive: true }); + + const localDbUrl = path.join(localMountPath, "db", "db.sqlite"); + + const connection = new Database(localDbUrl); + const db = drizzle(connection, { + schema: sqliteSchema, + casing: "snake_case", + }); + + await migrate(db, { + migrationsFolder: path.join(__dirname, "..", "..", "packages", "db", "migrations", "sqlite"), + }); + + return { + db, + localMountPath, + }; +}; + +export type SqliteDatabase = BetterSQLite3Database; diff --git a/packages/definitions/src/docs/homarr-docs-sitemap.ts b/packages/definitions/src/docs/homarr-docs-sitemap.ts index 1ef500ee0..b733a9b67 100644 --- a/packages/definitions/src/docs/homarr-docs-sitemap.ts +++ b/packages/definitions/src/docs/homarr-docs-sitemap.ts @@ -9,6 +9,7 @@ export type HomarrDocumentationPath = | "/blog/2023/12/22/updated-documentation" | "/blog/2024/09/23/version-1.0" | "/blog/2024/12/17/open-beta-1.0" + | "/blog/2024/12/31/migrate-secret-enryption-key" | "/blog/archive" | "/blog/authors" | "/blog/authors/ajnart" @@ -100,11 +101,13 @@ export type HomarrDocumentationPath = | "/docs/tags/open-media-vault" | "/docs/tags/overseerr" | "/docs/tags/permissions" + | "/docs/tags/pgid" | "/docs/tags/pi-hole" | "/docs/tags/ping" | "/docs/tags/programming" | "/docs/tags/proxmox" | "/docs/tags/proxy" + | "/docs/tags/puid" | "/docs/tags/roles" | "/docs/tags/rss" | "/docs/tags/search" @@ -135,6 +138,7 @@ export type HomarrDocumentationPath = | "/docs/advanced/icons" | "/docs/advanced/keyboard-shortcuts" | "/docs/advanced/proxy" + | "/docs/advanced/running-as-different-user" | "/docs/advanced/single-sign-on" | "/docs/category/advanced" | "/docs/category/community" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d8619d666..05bd7e0fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -183,13 +183,13 @@ importers: version: 5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(react@19.0.0) '@tanstack/react-query-next-experimental': specifier: 5.62.12 - version: 5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) + version: 5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) '@trpc/client': specifier: next version: 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/next': specifier: next - version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/react-query': specifier: next version: 11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) @@ -231,7 +231,7 @@ importers: version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) postcss-preset-mantine: specifier: ^1.17.0 version: 1.17.0(postcss@8.4.47) @@ -556,7 +556,7 @@ importers: version: 4.5.0 next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -626,10 +626,10 @@ importers: version: 7.3.0 next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) + version: 5.0.0-beta.25(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -706,7 +706,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1195,7 +1195,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1290,7 +1290,7 @@ importers: version: 0.5.16 next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1530,7 +1530,7 @@ importers: version: 2.11.0(@types/react@18.3.13)(react@19.0.0) next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1573,10 +1573,10 @@ importers: version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) next-intl: specifier: 3.26.3 - version: 3.26.3(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) + version: 3.26.3(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1631,7 +1631,7 @@ importers: version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1804,7 +1804,7 @@ importers: version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.22 - version: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + version: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -3341,6 +3341,11 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} + engines: {node: '>=18'} + hasBin: true + '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -7577,11 +7582,21 @@ packages: engines: {node: '>=18'} hasBin: true + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} + engines: {node: '>=18'} + hasBin: true + playwright@1.49.0: resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} engines: {node: '>=18'} hasBin: true + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} + engines: {node: '>=18'} + hasBin: true + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -10772,6 +10787,11 @@ snapshots: '@pkgr/core@0.1.1': {} + '@playwright/test@1.49.1': + dependencies: + playwright: 1.49.1 + optional: true + '@pnpm/config.env-replace@1.1.0': {} '@pnpm/network.ca-file@1.0.2': @@ -11335,10 +11355,10 @@ snapshots: '@tanstack/react-query': 5.62.12(react@19.0.0) react: 19.0.0 - '@tanstack/react-query-next-experimental@5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': + '@tanstack/react-query-next-experimental@5.62.12(@tanstack/react-query@5.62.12(react@19.0.0))(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': dependencies: '@tanstack/react-query': 5.62.12(react@19.0.0) - next: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + next: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 '@tanstack/react-query@5.62.12(react@19.0.0)': @@ -11582,11 +11602,11 @@ snapshots: '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) typescript: 5.7.2 - '@trpc/next@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': + '@trpc/next@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.682(@tanstack/react-query@5.62.12(react@19.0.0))(@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': dependencies: '@trpc/client': 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) - next: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + next: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) typescript: 5.7.2 @@ -15219,21 +15239,21 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.25(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0): + next-auth@5.0.0-beta.25(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0): dependencies: '@auth/core': 0.37.2 - next: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + next: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 - next-intl@3.26.3(next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0): + next-intl@3.26.3(next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0): dependencies: '@formatjs/intl-localematcher': 0.5.5 negotiator: 1.0.0 - next: 14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) + next: 14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 use-intl: 3.26.3(react@19.0.0) - next@14.2.22(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0): + next@14.2.22(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0): dependencies: '@next/env': 14.2.22 '@swc/helpers': 0.5.5 @@ -15254,6 +15274,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.22 '@next/swc-win32-ia32-msvc': 14.2.22 '@next/swc-win32-x64-msvc': 14.2.22 + '@playwright/test': 1.49.1 sass: 1.83.0 transitivePeerDependencies: - '@babel/core' @@ -15687,12 +15708,22 @@ snapshots: playwright-core@1.49.0: {} + playwright-core@1.49.1: + optional: true + playwright@1.49.0: dependencies: playwright-core: 1.49.0 optionalDependencies: fsevents: 2.3.2 + playwright@1.49.1: + dependencies: + playwright-core: 1.49.1 + optionalDependencies: + fsevents: 2.3.2 + optional: true + possible-typed-array-names@1.0.0: {} postcss-js@4.0.1(postcss@8.4.47):