diff --git a/Dockerfile b/Dockerfile index 621472736ef..2579bcf8524 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.5-slim +FROM node:20.2.0-slim WORKDIR /app # Define node.js environment variables @@ -18,17 +18,29 @@ COPY .next/standalone ./ COPY .next/static ./.next/static COPY ./scripts/run.sh ./scripts/run.sh COPY ./drizzle ./drizzle + +COPY ./drizzle/migrate ./migrate +COPY ./tsconfig.json ./migrate/tsconfig.json + RUN mkdir /data -COPY ./src/migrate.ts ./src/migrate.ts # Install dependencies -RUN apt-get update -y && apt-get install -y openssl wget +RUN apt update && apt install -y openssl wget -# Required for migration +# Move node_modules to temp location to avoid overwriting RUN mv node_modules _node_modules RUN rm package.json -RUN yarn add typescript ts-node dotenv drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3 -RUN mv node_modules node_modules_migrate + +# Install dependencies for migration +RUN cp ./migrate/package.json ./package.json +RUN yarn + +# Copy better_sqlite3 build for current platform +RUN cp /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/_node_modules/better-sqlite3/build/Release/better_sqlite3.node + +# Copy node_modules for migration to migrate folder for migration script +RUN mv node_modules ./migrate/node_modules +# Copy temp node_modules of app to app folder RUN mv _node_modules node_modules # Expose the default application port @@ -36,11 +48,13 @@ EXPOSE $PORT ENV PORT=${PORT} ENV DATABASE_URL "file:/data/db.sqlite" -ENV NEXTAUTH_URL "http://localhost:3000" +ENV NEXTAUTH_URL "http://localhost:7575" ENV PORT 7575 ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:${PORT} || exit 1 -CMD ["sh", "./scripts/run.sh"] +VOLUME [ "/app/data/configs" ] +VOLUME [ "/data" ] +ENTRYPOINT ["sh", "./scripts/run.sh"] diff --git a/data/crowdin-report.json b/data/crowdin-report.json index d1a889f0314..dc43a0c171e 100644 --- a/data/crowdin-report.json +++ b/data/crowdin-report.json @@ -1,6 +1,6 @@ { "name": "homarr Top Members Report", - "url": "https://crowdin.com/project/homarr", + "url": "https://translate.homarr.dev/project/homarr", "unit": "words", "dateRange": { "from": "2022-08-25", @@ -8,6 +8,28 @@ }, "language": "All", "data": [ + { + "user": { + "id": "15491798", + "username": "lupineDK", + "fullName": "Anders Ecklon (lupineDK)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png", + "joined": "2022-10-15 01:14:33" + }, + "languages": [ + { + "id": "da", + "name": "Danish" + } + ], + "translated": 5893, + "target": 5686, + "approved": 5911, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 5893 + }, { "user": { "id": "15492732", @@ -22,35 +44,35 @@ "name": "Hebrew" } ], - "translated": 5404, - "target": 4717, - "approved": 5437, + "translated": 5815, + "target": 5068, + "approved": 5848, "voted": 0, "positiveVotes": 12, "negativeVotes": 0, - "winning": 5395 + "winning": 5806 }, { "user": { - "id": "15491798", - "username": "lupineDK", - "fullName": "Anders Ecklon (lupineDK)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png", - "joined": "2022-10-15 01:14:33" + "id": "15554645", + "username": "crendasien", + "fullName": "Nicole (crendasien)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg", + "joined": "2022-11-28 14:18:44" }, "languages": [ { - "id": "da", - "name": "Danish" + "id": "it", + "name": "Italian" } ], - "translated": 5353, - "target": 5159, - "approved": 5371, + "translated": 5288, + "target": 5378, + "approved": 5613, "voted": 0, - "positiveVotes": 0, + "positiveVotes": 11, "negativeVotes": 0, - "winning": 5353 + "winning": 5285 }, { "user": { @@ -90,28 +112,6 @@ "negativeVotes": 1, "winning": 5074 }, - { - "user": { - "id": "15554645", - "username": "crendasien", - "fullName": "Nicole (crendasien)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg", - "joined": "2022-11-28 14:18:44" - }, - "languages": [ - { - "id": "it", - "name": "Italian" - } - ], - "translated": 4910, - "target": 5000, - "approved": 5235, - "voted": 0, - "positiveVotes": 11, - "negativeVotes": 0, - "winning": 4907 - }, { "user": { "id": "12701640", @@ -130,35 +130,13 @@ "name": "Spanish" } ], - "translated": 4446, - "target": 4685, + "translated": 4822, + "target": 5078, "approved": 0, "voted": 166, - "positiveVotes": 24, - "negativeVotes": 0, - "winning": 963 - }, - { - "user": { - "id": "15674593", - "username": "Marty88", - "fullName": "Marty (Marty88)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg", - "joined": "2023-02-08 16:28:53" - }, - "languages": [ - { - "id": "sk", - "name": "Slovak" - } - ], - "translated": 4302, - "target": 3955, - "approved": 3732, - "voted": 0, - "positiveVotes": 0, + "positiveVotes": 30, "negativeVotes": 0, - "winning": 3726 + "winning": 1017 }, { "user": { @@ -174,13 +152,13 @@ "name": "German" } ], - "translated": 4245, - "target": 4326, - "approved": 3964, + "translated": 4652, + "target": 4751, + "approved": 4371, "voted": 0, "positiveVotes": 25, "negativeVotes": 0, - "winning": 3685 + "winning": 4092 }, { "user": { @@ -196,8 +174,8 @@ "name": "Swedish" } ], - "translated": 4142, - "target": 3889, + "translated": 4557, + "target": 4273, "approved": 0, "voted": 0, "positiveVotes": 0, @@ -218,8 +196,74 @@ "name": "Turkish" } ], - "translated": 3845, - "target": 3244, + "translated": 4384, + "target": 3701, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15674593", + "username": "Marty88", + "fullName": "Marty (Marty88)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg", + "joined": "2023-02-08 16:28:53" + }, + "languages": [ + { + "id": "sk", + "name": "Slovak" + } + ], + "translated": 4347, + "target": 3995, + "approved": 3777, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 3771 + }, + { + "user": { + "id": "15709853", + "username": "RJSkudra", + "fullName": "RJS (RJSkudra)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png", + "joined": "2023-04-08 13:07:46" + }, + "languages": [ + { + "id": "lv", + "name": "Latvian" + } + ], + "translated": 4280, + "target": 3758, + "approved": 4195, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 4184 + }, + { + "user": { + "id": "16077170", + "username": "Topbcy", + "fullName": "Turbo (Topbcy)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg", + "joined": "2023-10-29 07:14:20" + }, + "languages": [ + { + "id": "zh-TW", + "name": "Chinese Traditional" + } + ], + "translated": 4171, + "target": 6555, "approved": 0, "voted": 0, "positiveVotes": 0, @@ -240,14 +284,36 @@ "name": "Hungarian" } ], - "translated": 3734, - "target": 3409, + "translated": 4135, + "target": 3788, "approved": 0, "voted": 0, "positiveVotes": 0, "negativeVotes": 0, "winning": 0 }, + { + "user": { + "id": "15617065", + "username": "somerlev", + "fullName": "somerlev", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg", + "joined": "2023-01-01 15:03:01" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 3866, + "target": 3432, + "approved": 4640, + "voted": 160, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 3655 + }, { "user": { "id": "15644717", @@ -262,35 +328,35 @@ "name": "Chinese Simplified" } ], - "translated": 3296, - "target": 5128, - "approved": 3666, + "translated": 3836, + "target": 5983, + "approved": 4206, "voted": 1, "positiveVotes": 1, "negativeVotes": 2, - "winning": 2873 + "winning": 3413 }, { "user": { - "id": "15709853", - "username": "RJSkudra", - "fullName": "RJS (RJSkudra)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png", - "joined": "2023-04-08 13:07:46" + "id": "15677023", + "username": "Spillebulle", + "fullName": "Spillebulle", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15677023/medium/096cf68fccf4b666954a0a57a974af64_default.png", + "joined": "2023-02-08 02:51:18" }, "languages": [ { - "id": "lv", - "name": "Latvian" + "id": "no", + "name": "Norwegian" } ], - "translated": 3074, - "target": 2734, - "approved": 2987, + "translated": 3234, + "target": 3063, + "approved": 4451, "voted": 0, "positiveVotes": 0, "negativeVotes": 0, - "winning": 2980 + "winning": 3225 }, { "user": { @@ -306,36 +372,14 @@ "name": "Vietnamese" } ], - "translated": 2929, - "target": 4087, - "approved": 4, + "translated": 3001, + "target": 4174, + "approved": 23, "voted": 0, "positiveVotes": 0, "negativeVotes": 0, "winning": 4 }, - { - "user": { - "id": "15428592", - "username": "flar.anton", - "fullName": "Anton Chernyshev (flar.anton)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg", - "joined": "2022-08-31 11:31:25" - }, - "languages": [ - { - "id": "uk", - "name": "Ukrainian" - } - ], - "translated": 2883, - "target": 2551, - "approved": 2748, - "voted": 0, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 2681 - }, { "user": { "id": "15875457", @@ -354,35 +398,35 @@ "name": "Spanish" } ], - "translated": 2740, - "target": 3061, - "approved": 3553, + "translated": 2924, + "target": 3268, + "approved": 3791, "voted": 5, "positiveVotes": 0, "negativeVotes": 0, - "winning": 2717 + "winning": 2901 }, { "user": { - "id": "15617065", - "username": "somerlev", - "fullName": "somerlev", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg", - "joined": "2023-01-01 15:03:01" + "id": "15428592", + "username": "flar.anton", + "fullName": "Anton Chernyshev (flar.anton)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg", + "joined": "2022-08-31 11:31:25" }, "languages": [ { - "id": "ru", - "name": "Russian" + "id": "uk", + "name": "Ukrainian" } ], - "translated": 2688, - "target": 2379, - "approved": 2987, - "voted": 160, + "translated": 2883, + "target": 2551, + "approved": 2748, + "voted": 0, "positiveVotes": 0, "negativeVotes": 0, - "winning": 2557 + "winning": 2681 }, { "user": { @@ -402,8 +446,8 @@ "name": "German" } ], - "translated": 2474, - "target": 2463, + "translated": 2607, + "target": 2595, "approved": 0, "voted": 27, "positiveVotes": 0, @@ -412,25 +456,25 @@ }, { "user": { - "id": "15677023", - "username": "Spillebulle", - "fullName": "Spillebulle", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15677023/medium/096cf68fccf4b666954a0a57a974af64_default.png", - "joined": "2023-02-08 02:51:18" + "id": "15865139", + "username": "Beardy", + "fullName": "Beardy", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png", + "joined": "2023-06-07 06:24:20" }, "languages": [ { - "id": "no", - "name": "Norwegian" + "id": "el", + "name": "Greek" } ], - "translated": 2342, - "target": 2195, - "approved": 2342, - "voted": 0, + "translated": 2386, + "target": 2567, + "approved": 0, + "voted": 3, "positiveVotes": 0, "negativeVotes": 0, - "winning": 2338 + "winning": 0 }, { "user": { @@ -498,28 +542,6 @@ "negativeVotes": 0, "winning": 0 }, - { - "user": { - "id": "15865139", - "username": "Beardy", - "fullName": "Beardy", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png", - "joined": "2023-06-07 06:24:20" - }, - "languages": [ - { - "id": "el", - "name": "Greek" - } - ], - "translated": 1975, - "target": 2118, - "approved": 0, - "voted": 3, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 0 - }, { "user": { "id": "15149958", @@ -534,11 +556,11 @@ "name": "French" } ], - "translated": 1720, - "target": 1943, + "translated": 1753, + "target": 1978, "approved": 1103, "voted": 20, - "positiveVotes": 8, + "positiveVotes": 16, "negativeVotes": 0, "winning": 774 }, @@ -659,6 +681,10 @@ "id": "ru", "name": "Russian" }, + { + "id": "sk", + "name": "Slovak" + }, { "id": "sl", "name": "Slovenian" @@ -671,6 +697,10 @@ "id": "sv-SE", "name": "Swedish" }, + { + "id": "tr", + "name": "Turkish" + }, { "id": "uk", "name": "Ukrainian" @@ -680,12 +710,12 @@ "name": "Vietnamese" } ], - "translated": 1461, - "target": 1547, + "translated": 1576, + "target": 1691, "approved": 1463, "voted": 0, "positiveVotes": 189, - "negativeVotes": 20, + "negativeVotes": 21, "winning": 1215 }, { @@ -708,7 +738,7 @@ "voted": 0, "positiveVotes": 0, "negativeVotes": 0, - "winning": 0 + "winning": 351 }, { "user": { @@ -832,6 +862,32 @@ "negativeVotes": 1, "winning": 0 }, + { + "user": { + "id": "15977271", + "username": "tagaishi", + "fullName": "tagaishi", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png", + "joined": "2023-08-22 07:09:16" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + }, + { + "id": "fr", + "name": "French" + } + ], + "translated": 588, + "target": 693, + "approved": 0, + "voted": 2, + "positiveVotes": 2, + "negativeVotes": 0, + "winning": 95 + }, { "user": { "id": "15925879", @@ -850,7 +906,7 @@ "target": 711, "approved": 0, "voted": 1, - "positiveVotes": 12, + "positiveVotes": 16, "negativeVotes": 0, "winning": 153 }, @@ -940,7 +996,7 @@ "voted": 0, "positiveVotes": 0, "negativeVotes": 0, - "winning": 198 + "winning": 250 }, { "user": { @@ -986,6 +1042,28 @@ "negativeVotes": 0, "winning": 0 }, + { + "user": { + "id": "15454038", + "username": "sebekmartin", + "fullName": "Martin Sebek (sebekmartin)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg", + "joined": "2023-10-08 09:26:03" + }, + "languages": [ + { + "id": "cs", + "name": "Czech" + } + ], + "translated": 393, + "target": 355, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, { "user": { "id": "13330448", @@ -1030,32 +1108,6 @@ "negativeVotes": 3, "winning": 119 }, - { - "user": { - "id": "15977271", - "username": "tagaishi", - "fullName": "tagaishi", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png", - "joined": "2023-08-22 07:09:16" - }, - "languages": [ - { - "id": "zh-CN", - "name": "Chinese Simplified" - }, - { - "id": "fr", - "name": "French" - } - ], - "translated": 328, - "target": 395, - "approved": 0, - "voted": 2, - "positiveVotes": 2, - "negativeVotes": 0, - "winning": 95 - }, { "user": { "id": "15685239", @@ -1124,22 +1176,22 @@ }, { "user": { - "id": "14949159", - "username": "f1refa11", - "fullName": "FireFall (f1refa11)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png", - "joined": "2023-09-06 14:55:13" + "id": "7795", + "username": "zielmann", + "fullName": "Luke (zielmann)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png", + "joined": "2023-10-12 09:50:59" }, "languages": [ { - "id": "ru", - "name": "Russian" + "id": "pl", + "name": "Polish" } ], - "translated": 228, - "target": 203, + "translated": 266, + "target": 258, "approved": 0, - "voted": 0, + "voted": 7, "positiveVotes": 0, "negativeVotes": 0, "winning": 0 @@ -1158,14 +1210,58 @@ "name": "Chinese Simplified" } ], - "translated": 210, - "target": 339, + "translated": 264, + "target": 429, "approved": 0, "voted": 0, "positiveVotes": 4, "negativeVotes": 0, "winning": 126 }, + { + "user": { + "id": "16084674", + "username": "ai5d02sb", + "fullName": "ai5d02sb", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png", + "joined": "2023-11-02 15:47:09" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 264, + "target": 275, + "approved": 0, + "voted": 12, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "14949159", + "username": "f1refa11", + "fullName": "FireFall (f1refa11)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png", + "joined": "2023-09-06 14:55:13" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 228, + "target": 203, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 134 + }, { "user": { "id": "13641407", @@ -1208,7 +1304,7 @@ "voted": 0, "positiveVotes": 54, "negativeVotes": 3, - "winning": 20 + "winning": 17 }, { "user": { @@ -1232,6 +1328,28 @@ "negativeVotes": 3, "winning": 75 }, + { + "user": { + "id": "14934947", + "username": "djismgaming", + "fullName": "Ismael (djismgaming)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg", + "joined": "2023-11-12 08:36:15" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 164, + "target": 181, + "approved": 0, + "voted": 6, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, { "user": { "id": "12580457", @@ -1922,28 +2040,6 @@ "negativeVotes": 0, "winning": 0 }, - { - "user": { - "id": "7795", - "username": "zielmann", - "fullName": "Luke (zielmann)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png", - "joined": "2023-10-12 09:50:59" - }, - "languages": [ - { - "id": "pl", - "name": "Polish" - } - ], - "translated": 4, - "target": 4, - "approved": 0, - "voted": 6, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 0 - }, { "user": { "id": "15643771", @@ -2672,23 +2768,6 @@ "negativeVotes": 0, "winning": 0 }, - { - "user": { - "id": "15454038", - "username": "sebekmartin", - "fullName": "Martin Sebek (sebekmartin)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg", - "joined": "2023-10-08 09:26:03" - }, - "languages": [], - "translated": 0, - "target": 0, - "approved": 0, - "voted": 0, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 0 - }, { "user": { "id": "16051620", @@ -2727,6 +2806,23 @@ "positiveVotes": 0, "negativeVotes": 0, "winning": 0 + }, + { + "user": { + "id": "16097722", + "username": "explosiveparrot", + "fullName": "explosiveparrot", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png", + "joined": "2023-11-10 21:23:11" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 } ] } \ No newline at end of file diff --git a/data/default.json b/data/default.json new file mode 100644 index 00000000000..910d736f7b6 --- /dev/null +++ b/data/default.json @@ -0,0 +1,513 @@ +{ + "schemaVersion": 1, + "configProperties": { + "name": "default" + }, + "categories": [], + "wrappers": [ + { + "id": "default", + "position": 0 + } + ], + "apps": [ + { + "id": "5df743d9-5cb1-457c-85d2-64ff86855652", + "name": "Documentation", + "url": "https://homarr.dev", + "behaviour": { + "onClickUrl": "https://homarr.dev", + "externalUrl": "https://homarr.dev", + "isOpeningNewTab": true + }, + "network": { + "enabledStatusChecker": false, + "statusCodes": [ + "200" + ] + }, + "appearance": { + "iconUrl": "/imgs/logo/logo.png", + "appNameStatus": "normal", + "positionAppName": "column", + "lineClampAppName": 1 + }, + "integration": { + "type": null, + "properties": [] + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "md": { + "location": { + "x": 5, + "y": 1 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "sm": { + "location": { + "x": 0, + "y": 1 + }, + "size": { + "width": 1, + "height": 2 + } + }, + "lg": { + "location": { + "x": 6, + "y": 1 + }, + "size": { + "width": 2, + "height": 2 + } + } + } + }, + { + "id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a337", + "name": "Discord", + "url": "https://discord.com/invite/aCsmEV5RgA", + "behaviour": { + "onClickUrl": "https://discord.com/invite/aCsmEV5RgA", + "isOpeningNewTab": true, + "externalUrl": "https://discord.com/invite/aCsmEV5RgA", + "tooltipDescription": "Join our Discord server! We're waiting for your ideas and feedback. " + }, + "network": { + "enabledStatusChecker": false, + "statusCodes": [ + "200" + ] + }, + "appearance": { + "iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/discord.png", + "appNameStatus": "normal", + "positionAppName": "row-reverse", + "lineClampAppName": 1 + }, + "integration": { + "type": null, + "properties": [] + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "md": { + "location": { + "x": 3, + "y": 1 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "sm": { + "location": { + "x": 1, + "y": 4 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "lg": { + "location": { + "x": 4, + "y": 0 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + }, + { + "id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a330", + "name": "Contribute", + "url": "https://github.com/ajnart/homarr", + "behaviour": { + "onClickUrl": "https://github.com/ajnart/homarr", + "externalUrl": "https://github.com/ajnart/homarr", + "isOpeningNewTab": true, + "tooltipDescription": "" + }, + "network": { + "enabledStatusChecker": false, + "statusCodes": [] + }, + "appearance": { + "iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/github.png", + "appNameStatus": "normal", + "positionAppName": "row-reverse", + "lineClampAppName": 2 + }, + "integration": { + "type": null, + "properties": [] + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "md": { + "location": { + "x": 3, + "y": 2 + }, + "size": { + "width": 2, + "height": 1 + } + }, + "sm": { + "location": { + "x": 1, + "y": 3 + }, + "size": { + "width": 2, + "height": 1 + } + }, + "lg": { + "location": { + "x": 2, + "y": 0 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + }, + { + "id": "47af36c0-47c1-4e5b-bfc7-ad645ee6a990", + "name": "Donate", + "url": "https://ko-fi.com/ajnart", + "behaviour": { + "onClickUrl": "https://ko-fi.com/ajnart", + "externalUrl": "https://ko-fi.com/ajnart", + "isOpeningNewTab": true, + "tooltipDescription": "Please consider making a donation" + }, + "network": { + "enabledStatusChecker": false, + "statusCodes": [ + "200" + ] + }, + "appearance": { + "iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/ko-fi.png", + "appNameStatus": "normal", + "positionAppName": "row-reverse", + "lineClampAppName": 1 + }, + "integration": { + "type": null, + "properties": [] + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "md": { + "location": { + "x": 4, + "y": 1 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "sm": { + "location": { + "x": 2, + "y": 4 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "lg": { + "location": { + "x": 6, + "y": 0 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + } + ], + "widgets": [ + { + "id": "e3004052-6b83-480e-b458-56e8ccdca5f0", + "type": "weather", + "properties": { + "displayInFahrenheit": false, + "location": { + "name": "Paris", + "latitude": 48.85341, + "longitude": 2.3488 + }, + "displayCityName": true + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "md": { + "location": { + "x": 5, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "sm": { + "location": { + "x": 2, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "lg": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + }, + { + "id": "971aa859-8570-49a1-8d34-dd5c7b3638d1", + "type": "date", + "properties": { + "display24HourFormat": true, + "dateFormat": "hide", + "enableTimezone": false, + "timezoneLocation": { + "name": "Paris", + "latitude": 48.85341, + "longitude": 2.3488 + }, + "titleState": "city" + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "sm": { + "location": { + "x": 1, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "md": { + "location": { + "x": 4, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "lg": { + "location": { + "x": 8, + "y": 0 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + }, + { + "id": "f252768d-9e69-491b-b6b4-8cad04fa30e8", + "type": "date", + "properties": { + "display24HourFormat": true, + "dateFormat": "hide", + "enableTimezone": true, + "timezoneLocation": { + "name": "Tokyo", + "latitude": 35.6895, + "longitude": 139.69171 + }, + "titleState": "city" + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "sm": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "md": { + "location": { + "x": 3, + "y": 0 + }, + "size": { + "width": 1, + "height": 1 + } + }, + "lg": { + "location": { + "x": 8, + "y": 1 + }, + "size": { + "width": 2, + "height": 1 + } + } + } + }, + { + "id": "86b1921f-efa7-410f-92dd-79553bf3264d", + "type": "notebook", + "properties": { + "showToolbar": true, + "content": "

Welcome to Homarr 🚀👋

We're glad that you're here! Homarr is a modern and easy to use dashboard that helps you to organize and manage your home network from one place. Control is at your fingertips.

We recommend you to read the getting started guide first. To edit this board you must enter the edit mode - only administrators can do this. Adding an app is the first step you should take. You can do this by clicking the Add tile button at the top right and select App. After you provided an internal URL, external URL and selected an icon you can drag it around when holding down the left mouse button. Make it bigger or smaller using the drag icon at the bottom right. When you're happy with it's position, you must exit edit mode to save your board. Adding widgets works the same way but may require additional configuration - read the documentation for more information.

To remove this widget, you must log in to your administrator account and click on the menu to delete it.

Your TODO list:

" + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "sm": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 3, + "height": 2 + } + }, + "md": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 3, + "height": 4 + } + }, + "lg": { + "location": { + "x": 0, + "y": 1 + }, + "size": { + "width": 6, + "height": 3 + } + } + } + } + ], + "settings": { + "common": { + "searchEngine": { + "type": "google", + "properties": {} + } + }, + "customization": { + "layout": { + "enabledLeftSidebar": false, + "enabledRightSidebar": false, + "enabledDocker": false, + "enabledPing": false, + "enabledSearchbar": true + }, + "pageTitle": "Homarr ⭐️", + "logoImageUrl": "/imgs/logo/logo.png", + "faviconUrl": "/imgs/favicon/favicon-squared.png", + "backgroundImageUrl": "", + "customCss": "", + "colors": { + "primary": "red", + "secondary": "yellow", + "shade": 7 + }, + "appOpacity": 100, + "gridstack": { + "columnCountSmall": 3, + "columnCountMedium": 6, + "columnCountLarge": 10 + } + }, + "access": { + "allowGuests": false + } + } +} \ No newline at end of file diff --git a/src/migrate.ts b/drizzle/migrate/migrate.ts similarity index 83% rename from src/migrate.ts rename to drizzle/migrate/migrate.ts index 5c4abeb88f4..cacf32fe82c 100644 --- a/src/migrate.ts +++ b/drizzle/migrate/migrate.ts @@ -5,6 +5,8 @@ import dotenv from 'dotenv'; import { drizzle } from 'drizzle-orm/better-sqlite3'; import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; +const migrationsFolder = process.argv[2] ?? '../drizzle'; + dotenv.config({ path: __dirname + '/../.env' }); const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', '')); @@ -12,7 +14,7 @@ const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', '')); const db = drizzle(sqlite); const migrateDatabase = async () => { - await migrate(db, { migrationsFolder: './drizzle' }); + await migrate(db, { migrationsFolder }); }; migrateDatabase(); diff --git a/drizzle/migrate/package.json b/drizzle/migrate/package.json new file mode 100644 index 00000000000..35772f2169e --- /dev/null +++ b/drizzle/migrate/package.json @@ -0,0 +1,14 @@ +{ + "description": "This package.json is used for the migration script the dependencies are only installed within the Dockerfile.", + "scripts": { + "db:migrate": "ts-node ./migrate.ts" + }, + "dependencies": { + "@types/better-sqlite3": "^7.6.7", + "better-sqlite3": "8.6.0", + "drizzle-orm": "^0.28.6", + "dotenv": "^16.3.1", + "ts-node": "^10.9.1", + "typescript": "^5.2.2" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 9a480b3dad5..3724f70c2ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "0.14.0", + "version": "0.14.1", "description": "Homarr - A homepage for your server.", "license": "MIT", "repository": { @@ -24,7 +24,7 @@ "test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage", "docker:build": "turbo build && docker build . -t homarr:local-dev", "docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev", - "db:migrate": "ts-node src/migrate.ts" + "db:migrate": "dotenv ts-node drizzle/migrate/migrate.ts ./drizzle" }, "dependencies": { "@auth/drizzle-adapter": "^0.3.2", @@ -127,6 +127,7 @@ "@vitest/coverage-c8": "^0.33.0", "@vitest/coverage-v8": "^0.34.5", "@vitest/ui": "^0.34.4", + "dotenv-cli": "^7.3.0", "eslint": "^8.0.1", "eslint-config-next": "^13.4.5", "eslint-plugin-promise": "^6.0.0", @@ -232,4 +233,4 @@ ] } } -} +} \ No newline at end of file diff --git a/public/locales/cn/layout/header.json b/public/locales/cn/layout/header.json index 4c5215ae1c8..456a8a0aa8e 100644 --- a/public/locales/cn/layout/header.json +++ b/public/locales/cn/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "这是 Homarr 的一项实验性功能。请在 GitHubDiscord上报告任何问题。" - }, "search": { "label": "搜索", "engines": { diff --git a/public/locales/cn/settings/customization/page-appearance.json b/public/locales/cn/settings/customization/page-appearance.json index 928245782a7..dc18d7a4b36 100644 --- a/public/locales/cn/settings/customization/page-appearance.json +++ b/public/locales/cn/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "背景" }, + "backgroundImageAttachment": { + "label": "背景图片附件", + "options": { + "fixed": "固定 - 背景保持在同一位置(推荐)", + "scroll": "滚动 - 背景随鼠标滚动" + } + }, + "backgroundImageSize": { + "label": "背景图像大小", + "options": { + "cover": "覆盖 - 通过裁剪多余的空间,将图像缩放得尽可能小以覆盖整个窗口。 (推荐使用)", + "contain": "包含 - 在不裁剪或拉伸图像的情况下,在容器内尽可能大地缩放图像。" + } + }, + "backgroundImageRepeat": { + "label": "背景图片附件", + "options": { + "repeat": "重复 - 根据需要重复图像,以覆盖整个背景图像绘制区域。", + "no-repeat": "无重复 - 图像不重复且可能不会填满整个空间(推荐)", + "repeat-x": "重复 X - 与 \"重复 \"相同,但只在水平轴上重复。", + "repeat-y": "重复 Y - 与 \"重复 \"相同,但只在垂直轴上重复。" + } + }, "customCSS": { "label": "自定义 CSS", "description": "只推荐有经验的用户使用 CSS 自定义面板", "placeholder": "自定义 CSS 将在最后应用", "applying": "应用CSS中..." } -} \ No newline at end of file +} diff --git a/public/locales/cr/layout/header.json b/public/locales/cr/layout/header.json index d0cfa45a694..5aa1313a156 100644 --- a/public/locales/cr/layout/header.json +++ b/public/locales/cr/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "crwdns3445:0crwdne3445:0" - }, "search": { "label": "crwdns3447:0crwdne3447:0", "engines": { diff --git a/public/locales/cr/settings/customization/page-appearance.json b/public/locales/cr/settings/customization/page-appearance.json index a06ab514b36..3895e53899e 100644 --- a/public/locales/cr/settings/customization/page-appearance.json +++ b/public/locales/cr/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "crwdns1628:0crwdne1628:0" }, + "backgroundImageAttachment": { + "label": "crwdns4010:0crwdne4010:0", + "options": { + "fixed": "crwdns4012:0crwdne4012:0", + "scroll": "crwdns4014:0crwdne4014:0" + } + }, + "backgroundImageSize": { + "label": "crwdns4016:0crwdne4016:0", + "options": { + "cover": "crwdns4018:0crwdne4018:0", + "contain": "crwdns4020:0crwdne4020:0" + } + }, + "backgroundImageRepeat": { + "label": "crwdns4022:0crwdne4022:0", + "options": { + "repeat": "crwdns4024:0crwdne4024:0", + "no-repeat": "crwdns4032:0crwdne4032:0", + "repeat-x": "crwdns4028:0crwdne4028:0", + "repeat-y": "crwdns4030:0crwdne4030:0" + } + }, "customCSS": { "label": "crwdns1702:0crwdne1702:0", "description": "crwdns2723:0crwdne2723:0", "placeholder": "crwdns2389:0crwdne2389:0", "applying": "crwdns2561:0crwdne2561:0" } -} \ No newline at end of file +} diff --git a/public/locales/cr/tools/docker.json b/public/locales/cr/tools/docker.json index 998b0210e4f..ff103e2a1dc 100644 --- a/public/locales/cr/tools/docker.json +++ b/public/locales/cr/tools/docker.json @@ -2,7 +2,7 @@ "title": "crwdns3821:0crwdne3821:0", "alerts": { "notConfigured": { - "text": "crwdns3823:0crwdne3823:0" + "text": "crwdns4008:0crwdne4008:0" } }, "modals": { diff --git a/public/locales/cs/boards/customize.json b/public/locales/cs/boards/customize.json index 67fbe9da0e4..11da29d04ae 100644 --- a/public/locales/cs/boards/customize.json +++ b/public/locales/cs/boards/customize.json @@ -1,5 +1,5 @@ { - "metaTitle": "", + "metaTitle": "Přizpůsobení {{name}} plochy", "pageTitle": "Přizpůsobení {{name}} plochy", "backToBoard": "Zpět na plochu", "settings": { diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 69e78f046aa..065f41b13ac 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -1,5 +1,5 @@ { - "save": "", + "save": "Uložit", "apply": "", "insert": "", "about": "", @@ -17,13 +17,13 @@ "enableAll": "", "disableAll": "", "version": "", - "changePosition": "", + "changePosition": "Změnit pozici", "remove": "", "removeConfirm": "", "createItem": "", "sections": { "settings": "", - "dangerZone": "" + "dangerZone": "Nebezpečná zóna" }, "secrets": { "apiKey": "", diff --git a/public/locales/cs/layout/header.json b/public/locales/cs/layout/header.json index 6957b47125b..0b40bc882b9 100644 --- a/public/locales/cs/layout/header.json +++ b/public/locales/cs/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "" - }, "search": { "label": "Vyhledat", "engines": { @@ -17,7 +14,7 @@ "preferences": "Uživatelská nastavení", "defaultBoard": "Výchozí plocha", "manage": "Spravovat", - "logout": "Odhlásit z {{username}}", + "logout": "Odhlásit {{username}}", "login": "" } }, diff --git a/public/locales/cs/layout/modals/add-app.json b/public/locales/cs/layout/modals/add-app.json index f5a7aa4eaf8..efadec3f787 100644 --- a/public/locales/cs/layout/modals/add-app.json +++ b/public/locales/cs/layout/modals/add-app.json @@ -1,21 +1,21 @@ { "tabs": { - "general": "", - "behaviour": "", + "general": "Obecné", + "behaviour": "Chování", "network": "", - "appearance": "", - "integration": "" + "appearance": "Vzhled", + "integration": "Integrace" }, "general": { "appname": { - "label": "", + "label": "Název aplikace", "description": "" }, "internalAddress": { "label": "", "description": "", "troubleshoot": { - "label": "", + "label": "Narazili jste na problém?", "header": "", "lines": { "nothingAfterPort": "", @@ -36,11 +36,11 @@ }, "behaviour": { "isOpeningNewTab": { - "label": "", - "description": "" + "label": "Otevřít na nové kartě", + "description": "Otevřete aplikaci na nové kartě místo aktuální." }, "tooltipDescription": { - "label": "", + "label": "Popis aplikace", "description": "" }, "customProtocolWarning": "" diff --git a/public/locales/cs/manage/users.json b/public/locales/cs/manage/users.json index 3cbdfa7068b..d717de76ccd 100644 --- a/public/locales/cs/manage/users.json +++ b/public/locales/cs/manage/users.json @@ -7,7 +7,7 @@ }, "table": { "header": { - "user": "" + "user": "Uživatel" } }, "tooltips": { diff --git a/public/locales/cs/modules/bookmark.json b/public/locales/cs/modules/bookmark.json index 6fedba2d90a..87bf684c74e 100644 --- a/public/locales/cs/modules/bookmark.json +++ b/public/locales/cs/modules/bookmark.json @@ -35,7 +35,7 @@ }, "name": "", "url": "", - "newTab": "", + "newTab": "Otevřít na nové kartě", "hideHostname": "", "hideIcon": "", "delete": "" diff --git a/public/locales/cs/modules/dlspeed.json b/public/locales/cs/modules/dlspeed.json index 1dfd395d36a..7704885917f 100644 --- a/public/locales/cs/modules/dlspeed.json +++ b/public/locales/cs/modules/dlspeed.json @@ -18,7 +18,7 @@ } }, "lineChart": { - "title": "", + "title": "Aktuální rychlost stahování", "download": "", "upload": "", "timeSpan": "", diff --git a/public/locales/cs/modules/media-requests-list.json b/public/locales/cs/modules/media-requests-list.json index 05e700def08..bef8c144b49 100644 --- a/public/locales/cs/modules/media-requests-list.json +++ b/public/locales/cs/modules/media-requests-list.json @@ -14,7 +14,7 @@ }, "noRequests": "", "state": { - "approved": "", + "approved": "Schváleno", "pendingApproval": "", "declined": "" }, diff --git a/public/locales/cs/modules/media-requests-stats.json b/public/locales/cs/modules/media-requests-stats.json index f152af280f4..8ad032e2645 100644 --- a/public/locales/cs/modules/media-requests-stats.json +++ b/public/locales/cs/modules/media-requests-stats.json @@ -13,15 +13,15 @@ } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Statistiky médií", + "pending": "Čeká na schválení", + "tvRequests": "Požadavky seriálů", + "movieRequests": "Požadavky filmů", + "approved": "Již schváleno", + "totalRequests": "Celkem" }, "userStats": { - "title": "", - "requests": "" + "title": "Top uživatelé", + "requests": "Požadavků: {{number}}" } } diff --git a/public/locales/cs/modules/media-server.json b/public/locales/cs/modules/media-server.json index 3e8852626d9..16a686ef70e 100644 --- a/public/locales/cs/modules/media-server.json +++ b/public/locales/cs/modules/media-server.json @@ -1,18 +1,18 @@ { "descriptor": { - "name": "", + "name": "Mediální server", "description": "", "settings": { "title": "" } }, - "loading": "", + "loading": "Načítání streamů", "card": { "table": { "header": { - "session": "", - "user": "", - "currentlyPlaying": "" + "session": "Relace", + "user": "Uživatel", + "currentlyPlaying": "Právě přehráváno" } }, "errors": { diff --git a/public/locales/cs/modules/torrents-status.json b/public/locales/cs/modules/torrents-status.json index 910e0093545..4d700fe7591 100644 --- a/public/locales/cs/modules/torrents-status.json +++ b/public/locales/cs/modules/torrents-status.json @@ -35,9 +35,9 @@ "card": { "footer": { "error": "", - "lastUpdated": "", - "ratioGlobal": "", - "ratioWithFilter": "" + "lastUpdated": "Naposledy aktualizováno před {{time}}", + "ratioGlobal": "Globální poměr", + "ratioWithFilter": "Filtrovaný poměr" }, "table": { "header": { @@ -57,7 +57,7 @@ } }, "lineChart": { - "title": "", + "title": "Aktuální rychlost stahování", "download": "", "upload": "", "timeSpan": "", @@ -75,8 +75,8 @@ } }, "loading": { - "title": "", - "description": "" + "title": "Načítání", + "description": "Navazování spojení" }, "popover": { "introductionPrefix": "", diff --git a/public/locales/cs/settings/customization/general.json b/public/locales/cs/settings/customization/general.json index 75854abaed2..ed76ad44d50 100644 --- a/public/locales/cs/settings/customization/general.json +++ b/public/locales/cs/settings/customization/general.json @@ -14,7 +14,7 @@ "description": "Upravte názvy, logo a PWA" }, "appereance": { - "name": "", + "name": "Vzhled", "description": "Přizpůsobte pozadí, barvy a zobrazení aplikací" }, "accessibility": { @@ -22,7 +22,7 @@ "description": "" }, "access": { - "name": "", + "name": "Oprávnění", "description": "Nastavte, kdo má přístup k Vaší ploše" } } diff --git a/public/locales/cs/settings/customization/page-appearance.json b/public/locales/cs/settings/customization/page-appearance.json index 2ca24630342..7f98a8ed094 100644 --- a/public/locales/cs/settings/customization/page-appearance.json +++ b/public/locales/cs/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Pozadí" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Vlastní CSS", "description": "Dále si můžete přizpůsobit ovládací panel pomocí CSS, doporučujeme pouze zkušeným uživatelům", "placeholder": "", "applying": "" } -} \ No newline at end of file +} diff --git a/public/locales/cs/tools/docker.json b/public/locales/cs/tools/docker.json index 8d403475c6a..54e726b7336 100644 --- a/public/locales/cs/tools/docker.json +++ b/public/locales/cs/tools/docker.json @@ -2,7 +2,7 @@ "title": "", "alerts": { "notConfigured": { - "text": "Vaše instance Homarr nemá nakonfigurovaný Docker nebo se nepodařilo načíst kontejnery. Podívejte se prosím do dokumentace, jak integraci nastavit." + "text": "" } }, "modals": { diff --git a/public/locales/da/layout/header.json b/public/locales/da/layout/header.json index 3d63ce72053..c20d632bb6c 100644 --- a/public/locales/da/layout/header.json +++ b/public/locales/da/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Dette er en eksperimentel funktion i Homarr. Rapporter venligst eventuelle problemer på GitHub eller Discord." - }, "search": { "label": "Søg", "engines": { diff --git a/public/locales/da/settings/customization/page-appearance.json b/public/locales/da/settings/customization/page-appearance.json index 6df6a8617c7..7f567f72fcb 100644 --- a/public/locales/da/settings/customization/page-appearance.json +++ b/public/locales/da/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Baggrund" }, + "backgroundImageAttachment": { + "label": "Vedhæftning af baggrundsbillede", + "options": { + "fixed": "Fast - Baggrunden forbliver i samme position (anbefales)", + "scroll": "Scroll - Baggrunden scroller med musen" + } + }, + "backgroundImageSize": { + "label": "Baggrundsbilledets størrelse", + "options": { + "cover": "Cover - Skalerer billedet så lille som muligt for at dække hele vinduet ved at beskære for overskydende materiale. (anbefalede)", + "contain": "Indehold - Skalerer billedet så stort som muligt i dets ramme uden at beskære eller strække billedet." + } + }, + "backgroundImageRepeat": { + "label": "Vedhæftning af baggrundsbillede", + "options": { + "repeat": "Gentag - Billedet gentages så meget som nødvendigt for at dække hele baggrundsbilledets maleområde.", + "no-repeat": "Ingen gentagelse - Billedet gentages ikke og fylder muligvis ikke hele rummet (anbefales)", + "repeat-x": "Gentag X - Samme som 'Gentag' men kun på vandret akse.", + "repeat-y": "Gentag Y - Samme som 'Gentag' men kun på lodret akse." + } + }, "customCSS": { "label": "Tilpasset CSS", "description": "Yderligere, tilpasse dit dashboard ved hjælp af CSS, anbefales kun til erfarne brugere", "placeholder": "Brugerdefineret CSS vil blive anvendt sidst", "applying": "Anvender CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/da/tools/docker.json b/public/locales/da/tools/docker.json index 4ff6d913a34..eabaff8785a 100644 --- a/public/locales/da/tools/docker.json +++ b/public/locales/da/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Din Homarr-instans har ikke Docker konfigureret, eller den har fejlet i at hente containere. Se i dokumentationen, hvordan du sætter integrationen op." + "text": "Din Homarr-instans har ikke Docker konfigureret, eller den har ikke kunne hente containere. Se venligst dokumentationen for, hvordan du opsætter integrationen." } }, "modals": { diff --git a/public/locales/de/layout/header.json b/public/locales/de/layout/header.json index 2e00f717acf..2450f8f8673 100644 --- a/public/locales/de/layout/header.json +++ b/public/locales/de/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Dies ist eine experimentelle Funktion von Homarr. Bitte melde Probleme auf GitHub oder Discord." - }, "search": { "label": "Suchen", "engines": { diff --git a/public/locales/de/settings/customization/page-appearance.json b/public/locales/de/settings/customization/page-appearance.json index b67918dacc8..c35ff49ce8b 100644 --- a/public/locales/de/settings/customization/page-appearance.json +++ b/public/locales/de/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Hintergrund" }, + "backgroundImageAttachment": { + "label": "Anhang des Hintergrundbildes", + "options": { + "fixed": "Fixiert - Hintergrund bleibt in der gleichen Position (empfohlen)", + "scroll": "Scrollen – Scrollt mit der Maus im Hintergrund" + } + }, + "backgroundImageSize": { + "label": "Hintergrundbild-Größe", + "options": { + "cover": "Abdecken - Skaliert das Bild so klein wie möglich, um das gesamte Fenster abzudecken, indem überschüssiger Platz abgeschnitten wird. (empfohlen)", + "contain": "Einschließen – Skaliert das Bild innerhalb seines Containers so groß wie möglich, ohne das Bild zu beschneiden oder zu strecken." + } + }, + "backgroundImageRepeat": { + "label": "Anhang des Hintergrundbildes", + "options": { + "repeat": "Wiederholen - Das Bild wird so oft wiederholt, bis es den gesamten Bereich des Hintergrundbildes abdeckt.", + "no-repeat": "Keine Wiederholung – Das Bild wird nicht wiederholt und füllt möglicherweise nicht den gesamten Raum aus (empfohlen)", + "repeat-x": "Wiederholen X – Wie „Wiederholen“, jedoch nur auf der horizontalen Achse.", + "repeat-y": "Wiederholen Y – Wie „Wiederholen“, jedoch nur auf der vertikalen Achse." + } + }, "customCSS": { "label": "Benutzerdefiniertes CSS", "description": "Außerdem können Sie Ihr Dashboard mittels CSS anpassen, dies wird nur für erfahrene Benutzer empfohlen", "placeholder": "Benutzerdefiniertes CSS wird zuletzt angewendet", "applying": "CSS wird übernommen..." } -} \ No newline at end of file +} diff --git a/public/locales/de/tools/docker.json b/public/locales/de/tools/docker.json index 622947e1ff5..5f6ed9797fe 100644 --- a/public/locales/de/tools/docker.json +++ b/public/locales/de/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Auf Ihrer Homarr-Instanz ist Docker nicht konfiguriert oder es ist nicht möglich, Container zu erkennen. Bitte lesen Sie in der Dokumentation nach, wie Sie diese Integration einrichten können." + "text": "Auf Ihrer Homarr-Instanz ist Docker nicht konfiguriert oder es war nicht möglich, Container abzurufen. Bitte lesen Sie in der Dokumentation nach, wie Sie diese Integration einrichten können." } }, "modals": { diff --git a/public/locales/el/common.json b/public/locales/el/common.json index 44d0cc3b1a9..3f3b132c9a1 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -1,7 +1,7 @@ { "save": "Αποθήκευση", - "apply": "", - "insert": "", + "apply": "Εφαρμογή", + "insert": "Εισαγωγή", "about": "Σχετικά", "cancel": "Ακύρωση", "close": "Κλείσιμο", @@ -45,7 +45,7 @@ "seeMore": "Δείτε περισσότερα...", "position": { "left": "Αριστερά", - "center": "", + "center": "Κέντρο", "right": "Δεξιά" }, "attributes": { diff --git a/public/locales/el/layout/header.json b/public/locales/el/layout/header.json index d762e5e3587..9d73a3a3095 100644 --- a/public/locales/el/layout/header.json +++ b/public/locales/el/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Αυτή είναι μια πειραματική λειτουργία του Homarr. Αναφέρετε τυχόν προβλήματα στο GitHub ή στο Discord." - }, "search": { "label": "Αναζήτηση", "engines": { diff --git a/public/locales/el/layout/modals/about.json b/public/locales/el/layout/modals/about.json index ba1d01c4730..29672758f4a 100644 --- a/public/locales/el/layout/modals/about.json +++ b/public/locales/el/layout/modals/about.json @@ -5,10 +5,10 @@ "key": "Πλήκτρο συντόμευσης", "action": "Ενέργεια", "keybinds": "Δεσμοί πλήκτρων", - "translators": "", - "translatorsDescription": "", - "contributors": "", - "contributorsDescription": "", + "translators": "Μεταφραστές ({{count}})", + "translatorsDescription": "Χάρη σε αυτούς τους ανθρώπους, το Homarr είναι διαθέσιμο σε {{languages}} γλώσσες! Θέλετε να βοηθήσετε στη μετάφραση του Homarr στη γλώσσα σας; Διαβάστε πώς να το κάνετε εδώ.", + "contributors": "Συνεισφέροντες ({{count}})", + "contributorsDescription": "Αυτοί οι άνθρωποι έχουν δημιουργήσει τον κώδικα που κάνει το homarr να λειτουργεί! Θέλετε να βοηθήσετε στην κατασκευή του Homarr; Διαβάστε πώς να το κάνετε εδώ", "actions": { "toggleTheme": "Αλλαγή φωτεινού / σκοτεινού θέματος", "focusSearchBar": "Εστίαση στο πλαίσιο αναζήτησης", diff --git a/public/locales/el/modules/dns-hole-summary.json b/public/locales/el/modules/dns-hole-summary.json index 101b1138195..199c15fa495 100644 --- a/public/locales/el/modules/dns-hole-summary.json +++ b/public/locales/el/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domains σε λίστες διαφημίσεων", "queriesToday": "Σημερινά queries", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "queriesBlockedTodayPercentage": "Σημερινοί αποκλεισμοί", + "queriesBlockedToday": "Σημερινοί αποκλεισμοί" } } } diff --git a/public/locales/el/modules/notebook.json b/public/locales/el/modules/notebook.json index 242341a423c..549cdbd3ea6 100644 --- a/public/locales/el/modules/notebook.json +++ b/public/locales/el/modules/notebook.json @@ -8,7 +8,7 @@ "label": "Εμφάνιση γραμμής εργαλείων για να σας βοηθήσει να γράψετε σημάνσεις" }, "allowReadOnlyCheck": { - "label": "" + "label": "Να επιτρέπεται η επιλογή σε λειτουργία μόνο ανάγνωσης" }, "content": { "label": "Το περιεχόμενο του σημειωματάριου" @@ -17,43 +17,43 @@ }, "card": { "controls": { - "bold": "", - "italic": "", - "strikethrough": "", - "underline": "", - "colorText": "", - "colorHighlight": "", - "code": "", - "clear": "", - "heading": "", - "align": "", - "blockquote": "", - "horizontalLine": "", - "bulletList": "", - "orderedList": "", - "checkList": "", - "increaseIndent": "", - "decreaseIndent": "", - "link": "", - "unlink": "", - "image": "", - "addTable": "", - "deleteTable": "", - "colorCell": "", - "mergeCell": "", - "addColumnLeft": "", - "addColumnRight": "", - "deleteColumn": "", - "addRowTop": "", - "addRowBelow": "", - "deleteRow": "" + "bold": "Έντονη γραφή", + "italic": "Πλάγια γραφή", + "strikethrough": "Διαγραμμισμένο Κείμενο", + "underline": "Υπογραμμισμένο Κείμενο", + "colorText": "Έγχρωμο κείμενο", + "colorHighlight": "Έγχρωμο κείμενο επισήμανσης", + "code": "Κωδικός", + "clear": "Εκκαθάριση μορφοποίησης", + "heading": "Επικεφαλίδα {{level}}", + "align": "Στοίχιση κειμένου: {{position}}", + "blockquote": "Μπλοκ κειμένου παράθεσης", + "horizontalLine": "Οριζόντια γραμμή", + "bulletList": "Λίστα με κουκκίδες", + "orderedList": "Ταξινομημένη λίστα", + "checkList": "Λίστα ελέγχου", + "increaseIndent": "Αύξηση εσοχής", + "decreaseIndent": "Μείωση εσοχής", + "link": "Σύνδεσμος", + "unlink": "Αφαίρεση συνδέσμου", + "image": "Ενσωμάτωση εικόνας", + "addTable": "Προσθήκη πίνακα", + "deleteTable": "Διαγραφή πίνακα", + "colorCell": "Χρώμα κελιού", + "mergeCell": "Εναλλαγή συγχώνευσης κελιού", + "addColumnLeft": "Προσθήκη στήλης πριν", + "addColumnRight": "Προσθήκη στήλης μετά", + "deleteColumn": "Διαγραφή στήλης", + "addRowTop": "Προσθήκη γραμμής πριν", + "addRowBelow": "Προσθήκη γραμμής μετά", + "deleteRow": "Διαγραφή γραμμής" }, "modals": { - "clearColor": "", - "source": "", - "widthPlaceholder": "", - "columns": "", - "rows": "" + "clearColor": "Καθαρισμός χρώματος", + "source": "Πηγή", + "widthPlaceholder": "Τιμή σε % ή εικονοστοιχεία", + "columns": "Στήλες", + "rows": "Γραμμές" } } } \ No newline at end of file diff --git a/public/locales/el/modules/torrents-status.json b/public/locales/el/modules/torrents-status.json index 35e850f6385..f3828f9b1b9 100644 --- a/public/locales/el/modules/torrents-status.json +++ b/public/locales/el/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Εμφάνιση ολοκληρωμένων torrents" }, "displayActiveTorrents": { - "label": "" + "label": "Εμφάνιση ενεργών torrents" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Ταχύτητα μεταφόρτωσης για να θεωρηθεί ένα torrent ενεργό (kB/s)" }, "displayStaleTorrents": { "label": "Εμφάνιση stale torrents" @@ -27,8 +27,8 @@ "description": "Όταν είναι επιλεγμένο το 'is whitelist', τότε θα συμπεριφερθεί σαν επιτρεπόμενη λίστα. Εάν δεν είναι επιλεγμένο, τότε είναι αποκλεισμένη λίστα. Εάν είναι άδειο δε θα κάνει τίποτα" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Εμφάνιση φιλτραρισμένης αναλογίας λίστας torrents", + "info": "Εάν απενεργοποιηθεί, θα εμφανιστεί μόνο η συνολική αναλογία. Η συνολική αναλογία θα εξακολουθεί να χρησιμοποιεί τις ετικέτες αν έχει οριστεί" } } }, @@ -36,8 +36,8 @@ "footer": { "error": "Σφάλμα", "lastUpdated": "Τελευταία ενημέρωση {{time}} πριν", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Συνολική αναλογία", + "ratioWithFilter": "Αναλογία με φίλτρο" }, "table": { "header": { diff --git a/public/locales/el/settings/customization/general.json b/public/locales/el/settings/customization/general.json index 0856af5101a..0bbfc3be811 100644 --- a/public/locales/el/settings/customization/general.json +++ b/public/locales/el/settings/customization/general.json @@ -22,7 +22,7 @@ "description": "Διαμόρφωση του Homarr για χρήστες με αναπηρία και άτομα με ειδικές ανάγκες" }, "access": { - "name": "", + "name": "Πρόσβαση", "description": "Ρυθμίστε ποιος έχει πρόσβαση στο ταμπλό σας" } } diff --git a/public/locales/el/settings/customization/page-appearance.json b/public/locales/el/settings/customization/page-appearance.json index 7be2dfb8fed..4f8e0ed7a85 100644 --- a/public/locales/el/settings/customization/page-appearance.json +++ b/public/locales/el/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Φόντο" }, + "backgroundImageAttachment": { + "label": "Συνημμένη εικόνα φόντου", + "options": { + "fixed": "Σταθερό - Το φόντο παραμένει στην ίδια θέση (συνιστάται)", + "scroll": "Κύλιση - Κύλιση φόντου με το ποντίκι σας" + } + }, + "backgroundImageSize": { + "label": "Μέγεθος εικόνας φόντου", + "options": { + "cover": "Κάλυψη - Κλιμακώνει την εικόνα όσο το δυνατόν μικρότερα για να καλύψει ολόκληρο το παράθυρο, περικόπτοντας τον υπερβολικό χώρο. (συνιστάται)", + "contain": "Περιέχει - Κλιμακώνει την εικόνα όσο το δυνατόν περισσότερο μέσα στο χώρο περιέλευσής της, χωρίς περικοπή ή τέντωμα της εικόνας." + } + }, + "backgroundImageRepeat": { + "label": "Συνημμένη εικόνα φόντου", + "options": { + "repeat": "Επανάληψη - Η εικόνα επαναλαμβάνεται όσο χρειάζεται για να καλύψει ολόκληρη την περιοχή ζωγραφικής της εικόνας φόντου.", + "no-repeat": "Χωρίς επανάληψη - Η εικόνα δεν επαναλαμβάνεται και δεν μπορεί να γεμίσει ολόκληρο το χώρο (συνιστάται)", + "repeat-x": "Επανάληψη X - Ίδιο με το 'Επανάληψη' αλλά μόνο στον οριζόντιο άξονα.", + "repeat-y": "Επανάληψη Y - Ίδιο με το 'Επανάληψη' αλλά μόνο στον κατακόρυφο άξονα." + } + }, "customCSS": { "label": "Προσαρμοσμένη CSS", "description": "Περαιτέρω, προσαρμόστε τον πίνακα ελέγχου σας χρησιμοποιώντας CSS, συνιστάται μόνο για έμπειρους χρήστες", "placeholder": "Το προσαρμοσμένο CSS θα εφαρμοστεί τελευταίο", "applying": "Εφαρμογή CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/el/tools/docker.json b/public/locales/el/tools/docker.json index 7df956ae92e..3a28ee8f053 100644 --- a/public/locales/el/tools/docker.json +++ b/public/locales/el/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Η Homarr εγκατάσταση σας δεν έχει το Docker εγκατεστημένο ή απέτυχε να ανακτήσει τα containers. Ελέγξτε την τεκμηρίωση για το πώς να ρυθμίσετε την ενσωμάτωση." + "text": "Η Homarr εγκατάσταση σας δεν έχει το Docker εγκατεστημένο ή απέτυχε να ανακτήσει containers. Ελέγξτε την τεκμηρίωση για το πώς να ρυθμίσετε την ενσωμάτωση." } }, "modals": { diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 31f4af7b109..18cc8e65060 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -44,12 +44,14 @@ }, "seeMore": "See more...", "position": { - "left": "Left", - "center": "Center", - "right": "Right" + "left": "Left", + "center": "Center", + "right": "Right" }, "attributes": { "width": "Width", "height": "Height" - } + }, + "public": "Public", + "restricted": "Restricted" } \ No newline at end of file diff --git a/public/locales/en/settings/customization/page-appearance.json b/public/locales/en/settings/customization/page-appearance.json index 36d24c33ce9..9e2afedb99e 100644 --- a/public/locales/en/settings/customization/page-appearance.json +++ b/public/locales/en/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Background" }, + "backgroundImageAttachment": { + "label": "Background image attachment", + "options": { + "fixed": "Fixed - Background stays in the same position (recommended)", + "scroll": "Scroll - Background scrolls with your mouse" + } + }, + "backgroundImageSize": { + "label": "Background image size", + "options": { + "cover": "Cover - Scales the image as small as possible to cover the entire window by cropping excessive space. (recommended)", + "contain": "Contain - Scales the image as large as possible within its container without cropping or stretching the image." + } + }, + "backgroundImageRepeat": { + "label": "Background image attachment", + "options": { + "repeat": "Repeat - The image is repeated as much as needed to cover the whole background image painting area.", + "no-repeat": "No repeat - The image is not repeated and may not fill the entire space (recommended)", + "repeat-x": "Repeat X - Same as 'Repeat' but only on horizontal axis.", + "repeat-y": "Repeat Y - Same as 'Repeat' but only on vertical axis." + } + }, "customCSS": { "label": "Custom CSS", "description": "Further, customize your dashboard using CSS, only recommended for experienced users", "placeholder": "Custom CSS will be applied last", "applying": "Applying CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/en/tools/docker.json b/public/locales/en/tools/docker.json index 95c67f0d831..c9ea3b63509 100644 --- a/public/locales/en/tools/docker.json +++ b/public/locales/en/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Your Homarr instance does not have Docker configured or it has falied to fetch containers. Please check the documentation on how to set up the integration." + "text": "Your Homarr instance does not have Docker configured or it has failed to fetch containers. Please check the documentation on how to set up the integration." } }, "modals": { diff --git a/public/locales/es/layout/header.json b/public/locales/es/layout/header.json index 5b5d2daba9b..6cd12acd026 100644 --- a/public/locales/es/layout/header.json +++ b/public/locales/es/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Esta es una característica experimental de Homarr. Por favor, reporta cualquier problema en GitHub o Discord." - }, "search": { "label": "Buscar", "engines": { diff --git a/public/locales/es/layout/modals/about.json b/public/locales/es/layout/modals/about.json index b74557ce9ce..b9e4085099a 100644 --- a/public/locales/es/layout/modals/about.json +++ b/public/locales/es/layout/modals/about.json @@ -7,7 +7,7 @@ "keybinds": "Combinaciones de teclas", "translators": "Traductores ({{count}})", "translatorsDescription": "Gracias a estas personas, ¡Homarr está disponible en {{languages}} idiomas! ¿Quieres ayudar a traducir Homarr en tu idioma? Lee cómo hacerlo aquí.", - "contributors": "Contribuidores ({{count}})", + "contributors": "Colaboradores ({{count}})", "contributorsDescription": "¡Estas personas han creado el código que hace que Homarr funcione! ¿Quieres ayudar a construir Homarr? Lee cómo hacerlo aquí", "actions": { "toggleTheme": "Alternar modo claro/oscuro", diff --git a/public/locales/es/modules/notebook.json b/public/locales/es/modules/notebook.json index 4bf4cbf3510..b9cf184dd64 100644 --- a/public/locales/es/modules/notebook.json +++ b/public/locales/es/modules/notebook.json @@ -20,7 +20,7 @@ "bold": "Negrita", "italic": "Cursiva", "strikethrough": "Tachado", - "underline": "Subrayar", + "underline": "Subrayado", "colorText": "Color de texto", "colorHighlight": "Texto resaltado en color", "code": "Código", @@ -29,23 +29,23 @@ "align": "Alinear texto: {{position}}", "blockquote": "Cita", "horizontalLine": "Línea horizontal", - "bulletList": "Lista de viñetas", + "bulletList": "Lista sin ordenar", "orderedList": "Lista ordenada", - "checkList": "", - "increaseIndent": "Aumentar Sangría", - "decreaseIndent": "Disminuir Sangría", + "checkList": "Lista de control", + "increaseIndent": "Aumentar sangría", + "decreaseIndent": "Disminuir sangría", "link": "Enlace", "unlink": "Eliminar enlace", - "image": "Adjuntar Imagen", + "image": "Insertar imagen", "addTable": "Añadir tabla", - "deleteTable": "Eliminar Tabla", + "deleteTable": "Eliminar tabla", "colorCell": "Color de celda", "mergeCell": "Alternar combinación de celdas", - "addColumnLeft": "Añadir columna antes de", - "addColumnRight": "Añadir columna después de", + "addColumnLeft": "Añadir columna a la izquierda", + "addColumnRight": "Añadir columna a la derecha", "deleteColumn": "Eliminar columna", - "addRowTop": "Añadir fila antes de", - "addRowBelow": "Añador fila después de", + "addRowTop": "Añadir fila encima", + "addRowBelow": "Añadir fila debajo", "deleteRow": "Eliminar fila" }, "modals": { diff --git a/public/locales/es/modules/torrents-status.json b/public/locales/es/modules/torrents-status.json index 0518b784421..493c911534c 100644 --- a/public/locales/es/modules/torrents-status.json +++ b/public/locales/es/modules/torrents-status.json @@ -27,8 +27,8 @@ "description": "Cuando se marca 'está en la lista blanca', actuará como una lista blanca. Si no se marca, esta es una lista negra. No hará nada cuando esté vacío" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Mostrar la relación de la lista de torrents filtrados", + "info": "Si está deshabilitado, solo se mostrará la relación global. La relación global seguirá usando las etiquetas si están configuradas" } } }, @@ -36,8 +36,8 @@ "footer": { "error": "Error", "lastUpdated": "Última actualización hace {{time}}", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Relación global", + "ratioWithFilter": "Relación con filtro" }, "table": { "header": { diff --git a/public/locales/es/settings/customization/page-appearance.json b/public/locales/es/settings/customization/page-appearance.json index b20a02e232d..9035148aff4 100644 --- a/public/locales/es/settings/customization/page-appearance.json +++ b/public/locales/es/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Fondo" }, + "backgroundImageAttachment": { + "label": "Adjuntar imagen de fondo", + "options": { + "fixed": "Fijo - El fondo permanece en la misma posición (recomendado)", + "scroll": "Desplazar - El fondo se desplaza con el ratón" + } + }, + "backgroundImageSize": { + "label": "Tamaño de la imagen de fondo", + "options": { + "cover": "Cubrir - Escala la imagen lo mínimo posible para cubrir toda la ventana recortando el espacio excesivo (recomendado)", + "contain": "Contener - Escala la imagen lo más grande posible dentro de su contenedor sin recortarla ni estirarla" + } + }, + "backgroundImageRepeat": { + "label": "Adjuntar imagen de fondo", + "options": { + "repeat": "Repetir - La imagen se repite tanto como sea necesario para cubrir toda el área de pintura de la imagen de fondo", + "no-repeat": "Sin repetir - La imagen no se repite y puede no ocupar todo el espacio (recomendado)", + "repeat-x": "Repetir X - Igual que 'Repetir' pero sólo en el eje horizontal", + "repeat-y": "Repetir Y: igual que 'Repetir' pero solo en el eje vertical" + } + }, "customCSS": { "label": "CSS Personalizado", "description": "Además, personaliza tu panel usando CSS, solo recomendado para usuarios avanzados", "placeholder": "El CSS personalizado se aplicará en último lugar", "applying": "Aplicando CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/es/tools/docker.json b/public/locales/es/tools/docker.json index 0f89db477d6..18db9e146e9 100644 --- a/public/locales/es/tools/docker.json +++ b/public/locales/es/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Tu instancia de Homarr no tiene Docker configurado o no pudo recuperar contenedores. Por favor, consulta la documentación sobre cómo configurar la integración." + "text": "Tu instancia de Homarr no tiene Docker configurado o ha fallado al obtener los contenedores. Consulta la documentación sobre cómo configurar la integración." } }, "modals": { diff --git a/public/locales/fr/layout/header.json b/public/locales/fr/layout/header.json index d5cfe667d4c..ebe522a12ed 100644 --- a/public/locales/fr/layout/header.json +++ b/public/locales/fr/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Ceci est une fonctionnalité expérimentale de Homarr. Veuilez signaler tout problème sur GitHub ou sur Discord." - }, "search": { "label": "Rechercher", "engines": { diff --git a/public/locales/fr/layout/modals/about.json b/public/locales/fr/layout/modals/about.json index 973583e3a2e..5f8506523cd 100644 --- a/public/locales/fr/layout/modals/about.json +++ b/public/locales/fr/layout/modals/about.json @@ -5,10 +5,10 @@ "key": "Raccourci clavier", "action": "Action", "keybinds": "Affectation des touches", - "translators": "", - "translatorsDescription": "", - "contributors": "", - "contributorsDescription": "", + "translators": "Traducteurs ({{count}})", + "translatorsDescription": "Grâce à ces personnes, Homarr est disponible dans {{languages}} langues ! Vous voulez aider à traduire Homarr dans votre langue ? Lisez comment le faire ici.", + "contributors": "Contributeurs ({{count}})", + "contributorsDescription": "Ces personnes ont développé le code qui fait fonctionner homarr ! Vous voulez aider à développer Homarr ? Lisez comment procéder ici", "actions": { "toggleTheme": "Basculer entre mode clair/sombre", "focusSearchBar": "Focus sur la barre de recherche", diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json index adea26bb886..7ef7a58b641 100644 --- a/public/locales/fr/modules/torrents-status.json +++ b/public/locales/fr/modules/torrents-status.json @@ -27,8 +27,8 @@ "description": "Si la case \"La liste des libellés est une liste blanche\" est cochée, elle sera appliquée comme une liste blanche. Si la case n'est pas cochée, elle s'appliquera comme une liste noire. Rien ne se passera si elle est vide" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Afficher le ratio de la liste des torrents filtrés", + "info": "Si désactivé, seul le ratio global sera affiché. Le ratio global utilisera toujours les labels si définis" } } }, @@ -36,8 +36,8 @@ "footer": { "error": "Erreur", "lastUpdated": "Dernière mise à jour : {{time}}", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Ratio global", + "ratioWithFilter": "Ratio avec filtre" }, "table": { "header": { diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json index f7ac74c4c66..dd0df8fc217 100644 --- a/public/locales/fr/settings/customization/page-appearance.json +++ b/public/locales/fr/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Fond" }, + "backgroundImageAttachment": { + "label": "Pièce jointe de l'image d'arrière-plan", + "options": { + "fixed": "Fixe - L'arrière-plan reste dans la même position (recommandé)", + "scroll": "Défilement - L'arrière-plan défile avec la souris" + } + }, + "backgroundImageSize": { + "label": "Taille de l'image d'arrière-plan", + "options": { + "cover": "Couverture - Mise à l'échelle de l'image aussi petite que possible pour couvrir la fenêtre entière en recadrant l'espace excessif. (recommandé)", + "contain": "Contient - Mise à l'échelle de l'image aussi grande que possible dans son conteneur sans recadrer ou étirer l'image." + } + }, + "backgroundImageRepeat": { + "label": "Pièce jointe de l'image d'arrière-plan", + "options": { + "repeat": "Répéter - L'image est répétée autant que nécessaire pour couvrir toute la surface d'arrière-plan.", + "no-repeat": "Pas de répétition - L'image n'est pas répétée et peut ne pas remplir tout l'espace (recommandé)", + "repeat-x": "Répéter X - Identique à 'Répéter' mais uniquement sur l'axe horizontal.", + "repeat-y": "Répéter Y - Identique à 'Répéter' mais uniquement sur l'axe vertical." + } + }, "customCSS": { "label": "CSS personnalisé", "description": "En outre, vous pouvez personnaliser votre tableau de bord à l'aide de CSS. Réservé aux utilisateurs expérimentés.", "placeholder": "Le CSS personnalisé sera appliqué en dernier", "applying": "Application du code CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/fr/tools/docker.json b/public/locales/fr/tools/docker.json index 0ffe2a29ab7..586fe02aadb 100644 --- a/public/locales/fr/tools/docker.json +++ b/public/locales/fr/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Docker n'est pas configuré sur votre instance Homarr ou a échoué à trouver les conteneurs. Veuillez vérifier la documentation pour savoir comment configurer cette intégration." + "text": "Votre instance Homarr n'a pas configuré Docker ou n'a pas réussi à récupérer les conteneurs. Veuillez consulter la documentation pour savoir comment configurer l'intégration." } }, "modals": { diff --git a/public/locales/he/layout/header.json b/public/locales/he/layout/header.json index e653b0b8e74..d4abe6db023 100644 --- a/public/locales/he/layout/header.json +++ b/public/locales/he/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "זוהי תכונה ניסיונית של Homarr. אנא דווח על בעיות ב-GitHub או Discord." - }, "search": { "label": "חיפוש", "engines": { diff --git a/public/locales/he/settings/customization/page-appearance.json b/public/locales/he/settings/customization/page-appearance.json index 9645a135633..70d34cfad15 100644 --- a/public/locales/he/settings/customization/page-appearance.json +++ b/public/locales/he/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "רקע" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "CSS מותאם אישית", "description": "יתר על כן, התאם את לוח המחוונים שלך באמצעות CSS, מומלץ רק למשתמשים מנוסים", "placeholder": "CSS מותאם אישית יוחל אחרון", "applying": "מחיל CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/he/tools/docker.json b/public/locales/he/tools/docker.json index c2ef87e55fd..3affb1371bf 100644 --- a/public/locales/he/tools/docker.json +++ b/public/locales/he/tools/docker.json @@ -2,7 +2,7 @@ "title": "דוקר", "alerts": { "notConfigured": { - "text": "למופע ה-Homarr שלך לא הוגדר Docker או שהוא נכשל באחזור קונטיינרים. אנא עיין בתיעוד כיצד להגדיר את האינטגרציה." + "text": "" } }, "modals": { diff --git a/public/locales/hr/layout/header.json b/public/locales/hr/layout/header.json index 3ff54b12ee9..771849ccb8c 100644 --- a/public/locales/hr/layout/header.json +++ b/public/locales/hr/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Ovo je eksperimentalna značajka Homarra. Prijavite sve probleme na GitHub ili Discord." - }, "search": { "label": "traži", "engines": { diff --git a/public/locales/hr/settings/customization/page-appearance.json b/public/locales/hr/settings/customization/page-appearance.json index 3163b9698f8..0e04c9cd1fe 100644 --- a/public/locales/hr/settings/customization/page-appearance.json +++ b/public/locales/hr/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Pozadina" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Prilagođeni CSS", "description": "Dodatno, prilagodite svoju nadzornu ploču koristeći CSS, što se preporučuje samo iskusnim korisnicima", "placeholder": "Prilagođeni CSS će se primijeniti posljednji", "applying": "Primjena CSS-a..." } -} \ No newline at end of file +} diff --git a/public/locales/hr/tools/docker.json b/public/locales/hr/tools/docker.json index b642a53bdb0..592a7142080 100644 --- a/public/locales/hr/tools/docker.json +++ b/public/locales/hr/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Vaša Homarr instanca nema konfiguriran Docker ili nije uspjela dohvatiti spremnike. Provjerite dokumentaciju o tome kako postaviti integraciju." + "text": "" } }, "modals": { diff --git a/public/locales/hu/layout/header.json b/public/locales/hu/layout/header.json index 5a2a81efeee..b638a46f1dd 100644 --- a/public/locales/hu/layout/header.json +++ b/public/locales/hu/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Ez a Homarr kísérleti funkciója. Kérjük, jelezz bármilyen problémát a GitHubon vagy a Discordon." - }, "search": { "label": "Keresés", "engines": { diff --git a/public/locales/hu/settings/customization/page-appearance.json b/public/locales/hu/settings/customization/page-appearance.json index 50bb74371e0..258a0405399 100644 --- a/public/locales/hu/settings/customization/page-appearance.json +++ b/public/locales/hu/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Háttér" }, + "backgroundImageAttachment": { + "label": "Háttérkép csatolása", + "options": { + "fixed": "Rögzített – a háttér ugyanabban a helyzetben marad (ajánlott)", + "scroll": "Görgetés - A háttér gördül az egérrel" + } + }, + "backgroundImageSize": { + "label": "Háttér kép mérete", + "options": { + "cover": "Cover - A képet a lehető legkisebbre méretezi, hogy a felesleges terület levágásával a teljes ablakot lefedje. (ajánlott)", + "contain": "Tartalom - A képet a lehető legnagyobb méretre méretezi a tárolón belül anélkül, hogy a képet levágná vagy megnyújtaná." + } + }, + "backgroundImageRepeat": { + "label": "Háttérkép csatolása", + "options": { + "repeat": "Ismétlés – A kép annyiszor ismétlődik, amennyire szükséges, hogy a teljes háttérkép festési területet lefedje.", + "no-repeat": "Nincs ismétlés - A kép nem ismétlődik, és nem tölti ki a teljes helyet (ajánlott)", + "repeat-x": "Ismétlés X - Ugyanaz, mint az 'Ismétlés', de csak a vízszintes tengelyen.", + "repeat-y": "Ismétlés Y - Ugyanaz, mint az 'Ismétlés', de csak a függőleges tengelyen." + } + }, "customCSS": { "label": "Egyéni CSS", "description": "Továbbá, testreszabhatja műszerfalát CSS segítségével, csak tapasztalt felhasználóknak ajánlott", "placeholder": "Az egyéni CSS utoljára kerül alkalmazásra", "applying": "CSS alkalmazása..." } -} \ No newline at end of file +} diff --git a/public/locales/hu/tools/docker.json b/public/locales/hu/tools/docker.json index f2406909f9e..8111cde62c0 100644 --- a/public/locales/hu/tools/docker.json +++ b/public/locales/hu/tools/docker.json @@ -7,7 +7,7 @@ }, "modals": { "selectBoard": { - "title": "Válasszon egy táblát", + "title": "Válasszon vezérlőt", "text": "Válassza ki azt a táblát, ahová a kiválasztott Docker-konténerekhez tartozó alkalmazásokat szeretné hozzáadni.", "form": { "board": { diff --git a/public/locales/it/layout/header.json b/public/locales/it/layout/header.json index 315f990e74a..a1f2a9222e8 100644 --- a/public/locales/it/layout/header.json +++ b/public/locales/it/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Questa è una caratteristica sperimentale di Homarr. Si prega di segnalare qualsiasi problema su GitHub o Discord." - }, "search": { "label": "Cerca", "engines": { diff --git a/public/locales/it/modules/torrents-status.json b/public/locales/it/modules/torrents-status.json index 40f924aa93d..86b78fe33ed 100644 --- a/public/locales/it/modules/torrents-status.json +++ b/public/locales/it/modules/torrents-status.json @@ -27,8 +27,8 @@ "description": "Quando 'è whitelist' è selezionato, agirà come una whitelist. Se non selezionato, è una blacklist. Non farà nulla quando vuoto" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Visualizza il ratio dell'elenco dei torrent filtrati", + "info": "Se disabilitato, verrà visualizzato solo il ratio globale. Il ratio globale utilizzerà comunque i label, se impostati" } } }, @@ -36,8 +36,8 @@ "footer": { "error": "Errore", "lastUpdated": "Ultimo aggiornamento {{time}} fa", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Ratio globale", + "ratioWithFilter": "Ratio con filtro" }, "table": { "header": { diff --git a/public/locales/it/settings/customization/page-appearance.json b/public/locales/it/settings/customization/page-appearance.json index 47ff7bc3e14..941a814c259 100644 --- a/public/locales/it/settings/customization/page-appearance.json +++ b/public/locales/it/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Sfondo" }, + "backgroundImageAttachment": { + "label": "Allegato immagine di sfondo", + "options": { + "fixed": "Fisso - Lo sfondo rimane nella stessa posizione (consigliato)", + "scroll": "Scorrimento - Lo sfondo scorre con il mouse" + } + }, + "backgroundImageSize": { + "label": "Dimensioni dell'immagine di sfondo", + "options": { + "cover": "Copertura - Ridimensiona l'immagine il più possibile per coprire l'intera finestra ritagliando lo spazio eccessivo. (consigliato)", + "contain": "Contieni - ridimensiona l'immagine il più grande possibile all'interno del suo container senza ritagliare o allungare l'immagine." + } + }, + "backgroundImageRepeat": { + "label": "Allegato immagine di sfondo", + "options": { + "repeat": "Ripeti - l'immagine viene ripetuta quanto necessario per coprire l'intera area di disegno dell'immagine di sfondo.", + "no-repeat": "Nessuna ripetizione - l'immagine non viene ripetuta e potrebbe non riempire l'intero spazio (consigliato)", + "repeat-x": "Ripeti X - Come 'Ripeti' ma solo sull'asse orizzontale.", + "repeat-y": "Ripeti Y - Come 'Ripeti' ma solo sull'asse verticale." + } + }, "customCSS": { "label": "CSS personalizzato", "description": "Inoltre, personalizza la dashboard utilizzando i CSS, consigliato solo agli utenti esperti", "placeholder": "I CSS personalizzati saranno applicati per ultimi", "applying": "Applicazione CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/ja/layout/header.json b/public/locales/ja/layout/header.json index 01224f634c1..2c94f2cc8ba 100644 --- a/public/locales/ja/layout/header.json +++ b/public/locales/ja/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "これはHomarrの実験的な機能です。問題があれば GitHub または Discordに報告してください。" - }, "search": { "label": "検索", "engines": { diff --git a/public/locales/ja/settings/customization/page-appearance.json b/public/locales/ja/settings/customization/page-appearance.json index c616930674d..3c7f56f6107 100644 --- a/public/locales/ja/settings/customization/page-appearance.json +++ b/public/locales/ja/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "背景" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "カスタムCSS", "description": "さらに、CSS を使用してダッシュボードをカスタマイズします。経験豊富なユーザーにのみお勧めします。", "placeholder": "カスタムCSSは最後に適用されます", "applying": "CSSを適用中..." } -} \ No newline at end of file +} diff --git a/public/locales/ja/tools/docker.json b/public/locales/ja/tools/docker.json index 2aa379d7165..21b96a1cade 100644 --- a/public/locales/ja/tools/docker.json +++ b/public/locales/ja/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "HomarrインスタンスにDockerが設定されていないか、コンテナの取得に失敗しています。統合の設定方法についてはドキュメントを確認してください。" + "text": "" } }, "modals": { diff --git a/public/locales/ko/layout/header.json b/public/locales/ko/layout/header.json index 5eccda41885..333309a779c 100644 --- a/public/locales/ko/layout/header.json +++ b/public/locales/ko/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "이 기능은 Homarr의 실험적인 기능입니다. 문제가 있으면 GitHub 또는 Discord으로 신고해 주세요." - }, "search": { "label": "검색", "engines": { diff --git a/public/locales/ko/settings/customization/page-appearance.json b/public/locales/ko/settings/customization/page-appearance.json index 8ab9a02eadb..c98bccd4b39 100644 --- a/public/locales/ko/settings/customization/page-appearance.json +++ b/public/locales/ko/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "배경" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "커스텀 CSS", "description": "또한 숙련된 사용자에게만 권장되는 CSS를 사용하여 대시보드를 사용자 지정할 수 있습니다.", "placeholder": "사용자 정의 CSS는 마지막에 적용됩니다.", "applying": "CSS 적용하기..." } -} \ No newline at end of file +} diff --git a/public/locales/ko/tools/docker.json b/public/locales/ko/tools/docker.json index f063f840be1..379e81c1cf5 100644 --- a/public/locales/ko/tools/docker.json +++ b/public/locales/ko/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Homarr 인스턴스에 Docker가 구성되어 있지 않거나 컨테이너 가져오기에 실패했습니다. 연동 설정 방법에 대한 설명서를 확인하세요." + "text": "" } }, "modals": { diff --git a/public/locales/lv/layout/header.json b/public/locales/lv/layout/header.json index eb8a67519a9..7505af39674 100644 --- a/public/locales/lv/layout/header.json +++ b/public/locales/lv/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Šī ir eksperimentāla Homarr funkcija. Lūdzu, ziņojiet par jebkādām problēmām GitHub vai Discord." - }, "search": { "label": "Meklēt", "engines": { diff --git a/public/locales/lv/settings/customization/page-appearance.json b/public/locales/lv/settings/customization/page-appearance.json index 733c577ab9d..cfbb998c90e 100644 --- a/public/locales/lv/settings/customization/page-appearance.json +++ b/public/locales/lv/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Fons" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Pielāgotais CSS", "description": "Turklāt pielāgojiet paneli, izmantojot CSS, ieteicams tikai pieredzējušiem lietotājiem", "placeholder": "Pielāgotais CSS tiks piemērots pēdējais", "applying": "CSS piemērošana..." } -} \ No newline at end of file +} diff --git a/public/locales/lv/tools/docker.json b/public/locales/lv/tools/docker.json index 8d85a5b11ba..453131d1e64 100644 --- a/public/locales/lv/tools/docker.json +++ b/public/locales/lv/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Jūsu Homarr instancē nav konfigurēts Docker vai arī tai nav izdevies iegūtu konteinerus. Lūdzu, pārbaudiet dokumentāciju par to, kā iestatīt integrāciju." + "text": "" } }, "modals": { diff --git a/public/locales/nl/layout/header.json b/public/locales/nl/layout/header.json index d36e46b2d9d..26a2fbcc95a 100644 --- a/public/locales/nl/layout/header.json +++ b/public/locales/nl/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Dit is een experimentele functie van Homarr. Meld problemen alsjeblieft op GitHub of Discord." - }, "search": { "label": "Zoek op", "engines": { diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json index 2cb43086715..fd600c6774a 100644 --- a/public/locales/nl/settings/customization/page-appearance.json +++ b/public/locales/nl/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Achtergrond" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Eigen CSS", "description": "Pas uw dashboard verder aan met behulp van CSS, alleen aanbevolen voor ervaren gebruikers", "placeholder": "Eigen CSS wordt als laatste toegepast", "applying": "CSS toepassen..." } -} \ No newline at end of file +} diff --git a/public/locales/nl/tools/docker.json b/public/locales/nl/tools/docker.json index edb19541383..a85983df609 100644 --- a/public/locales/nl/tools/docker.json +++ b/public/locales/nl/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Docker is niet geconfigureerd in je Homarr instance of het is mislukt om containers op te halen. Raadpleeg de documentatie over het opzetten van de integratie." + "text": "" } }, "modals": { diff --git a/public/locales/no/layout/header.json b/public/locales/no/layout/header.json index db5cc4b8761..2c6643ee6a7 100644 --- a/public/locales/no/layout/header.json +++ b/public/locales/no/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Dette er et eksperimentelt funksjon i Homarr. Vennligst rapporter eventuelle problemer på GitHub eller Discord." - }, "search": { "label": "Søk", "engines": { diff --git a/public/locales/no/settings/customization/page-appearance.json b/public/locales/no/settings/customization/page-appearance.json index 480a2407445..ab5c95018dc 100644 --- a/public/locales/no/settings/customization/page-appearance.json +++ b/public/locales/no/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Bakgrunn" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Egendefinert CSS", "description": "Videre kan du tilpasse dashbordet ved hjelp av CSS, dette er bare anbefalt for erfarne brukere", "placeholder": "Egendefinert CSS vil bli brukt sist", "applying": "Tar i bruk CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/no/tools/docker.json b/public/locales/no/tools/docker.json index 70f359ea124..d3895345b58 100644 --- a/public/locales/no/tools/docker.json +++ b/public/locales/no/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Din Homarr-forekomst har ikke Docker konfigurert eller den har mislyktes i å hente containere. Vennligst sjekk dokumentasjonen for hvordan du setter opp integrasjonen." + "text": "" } }, "modals": { diff --git a/public/locales/pl/layout/header.json b/public/locales/pl/layout/header.json index 1a8ac94ca0c..7d97ce2201e 100644 --- a/public/locales/pl/layout/header.json +++ b/public/locales/pl/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "To jest eksperymentalna funkcja Homarr. Zgłoś wszelkie problemy na GitHub lub Discord." - }, "search": { "label": "Szukaj", "engines": { diff --git a/public/locales/pl/settings/customization/page-appearance.json b/public/locales/pl/settings/customization/page-appearance.json index 38a94be1640..4cdb44fa86b 100644 --- a/public/locales/pl/settings/customization/page-appearance.json +++ b/public/locales/pl/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Tło" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Niestandardowy CSS", "description": "Jeszcze bardziej dostosuj swój pulpit za pomocą CSS, zalecane tylko dla doświadczonych użytkowników", "placeholder": "Custom CSS zostanie zastosowany jako ostatni", "applying": "Zastosowanie CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/pl/tools/docker.json b/public/locales/pl/tools/docker.json index af1ad0e110f..5eccbe96adb 100644 --- a/public/locales/pl/tools/docker.json +++ b/public/locales/pl/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Twoja instancja Homarr nie ma skonfigurowanego Dockera lub nie była w stanie pobrać listę kontenerów. Sprawdź dokumentację, aby dowiedzieć się, jak skonfigurować integrację." + "text": "" } }, "modals": { diff --git a/public/locales/pt/layout/header.json b/public/locales/pt/layout/header.json index 208e6443161..6cee768e8ee 100644 --- a/public/locales/pt/layout/header.json +++ b/public/locales/pt/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Este é um recurso experimental do Homarr. Informe qualquer problema em GitHub ou Discord." - }, "search": { "label": "Pesquisa", "engines": { diff --git a/public/locales/pt/settings/customization/page-appearance.json b/public/locales/pt/settings/customization/page-appearance.json index 23432dd2f52..8f8a32ec957 100644 --- a/public/locales/pt/settings/customization/page-appearance.json +++ b/public/locales/pt/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Antecedentes" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "CSS Personalizado", "description": "Além disso, personalize seu painel usando CSS, recomendado apenas para usuários experientes", "placeholder": "O CSS personalizado será aplicado por último", "applying": "Aplicando CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/pt/tools/docker.json b/public/locales/pt/tools/docker.json index cb36d10c54b..b81fe732ed0 100644 --- a/public/locales/pt/tools/docker.json +++ b/public/locales/pt/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Sua instância Homarr não tem o Docker configurado ou falhou ao buscar contêineres. Consulte a documentação para saber como configurar a integração." + "text": "" } }, "modals": { diff --git a/public/locales/ru/layout/header.json b/public/locales/ru/layout/header.json index 228a558ea15..c87e17662d2 100644 --- a/public/locales/ru/layout/header.json +++ b/public/locales/ru/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Это экспериментальная функция Homarr. Пожалуйста, сообщайте о любых проблемах на GitHub или Discord." - }, "search": { "label": "Поиск", "engines": { diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json index 59b33ee801b..12a05f72c28 100644 --- a/public/locales/ru/settings/customization/page-appearance.json +++ b/public/locales/ru/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Фон" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Пользовательский CSS", "description": "Дополнительная настройка вашей панели с использованием CSS, рекомендуется только опытным пользователям", "placeholder": "Пользовательский CSS будет применяться в последнюю очередь", "applying": "Применение CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/ru/tools/docker.json b/public/locales/ru/tools/docker.json index f39f5582c94..a2c8e69a0c8 100644 --- a/public/locales/ru/tools/docker.json +++ b/public/locales/ru/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "В вашем экземпляре Homarr не настроен Docker или произошла ошибка при получении контейнеров. Пожалуйста, ознакомьтесь с документацией по настройке интеграции." + "text": "" } }, "modals": { diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index f77d5f23d24..86fc75c7a49 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -1,7 +1,7 @@ { "save": "Uložiť", - "apply": "", - "insert": "", + "apply": "Použiť", + "insert": "Vložiť", "about": "O aplikácii", "cancel": "Zrušiť", "close": "Zavrieť", @@ -45,7 +45,7 @@ "seeMore": "Viac informácií...", "position": { "left": "Vľavo", - "center": "", + "center": "Na stred", "right": "Vpravo" }, "attributes": { diff --git a/public/locales/sk/layout/header.json b/public/locales/sk/layout/header.json index 4bbffdb64aa..b353fbc110d 100644 --- a/public/locales/sk/layout/header.json +++ b/public/locales/sk/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Ide o experimentálnu funkciu systému Homarr. Akékoľvek problémy nahláste na GitHub alebo Discord." - }, "search": { "label": "Hladať", "engines": { diff --git a/public/locales/sk/layout/modals/about.json b/public/locales/sk/layout/modals/about.json index c3decebc7f0..cc4879bf99e 100644 --- a/public/locales/sk/layout/modals/about.json +++ b/public/locales/sk/layout/modals/about.json @@ -5,10 +5,10 @@ "key": "Klávesová skratka", "action": "Akcia", "keybinds": "Kľúčové väzby", - "translators": "", - "translatorsDescription": "", - "contributors": "", - "contributorsDescription": "", + "translators": "Prekladatelia ({{count}})", + "translatorsDescription": "Vďaka týmto ľuďom je Homarr dostupný v {{languages}} jazykoch! Chcete pomôcť preložiť Homarr do vášho jazyka? Prečítajte si ako na to tu.", + "contributors": "Prispievatelia ({{count}})", + "contributorsDescription": "Títo ľudia vytvorili kód, vďaka ktorému funguje homarr! Chcete pomôcť vybudovať Homarr? Prečítajte si, ako to urobiť tu", "actions": { "toggleTheme": "Prepínanie režimu svetlo/tma", "focusSearchBar": "Zameranie na vyhľadávací panel", diff --git a/public/locales/sk/modules/dns-hole-summary.json b/public/locales/sk/modules/dns-hole-summary.json index 02727a12f4a..2a88fe64efd 100644 --- a/public/locales/sk/modules/dns-hole-summary.json +++ b/public/locales/sk/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domény na adlistoch", "queriesToday": "Poziadavky dnes", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "queriesBlockedTodayPercentage": "Zablokované dnes", + "queriesBlockedToday": "Zablokované dnes" } } } diff --git a/public/locales/sk/modules/notebook.json b/public/locales/sk/modules/notebook.json index 15f725a3465..332215067a5 100644 --- a/public/locales/sk/modules/notebook.json +++ b/public/locales/sk/modules/notebook.json @@ -8,7 +8,7 @@ "label": "Zobrazenie panela nástrojov na pomoc pri písaní poznámok" }, "allowReadOnlyCheck": { - "label": "" + "label": "Povolenie kontroly v režime len na čítanie" }, "content": { "label": "Obsah zápisníka" @@ -17,43 +17,43 @@ }, "card": { "controls": { - "bold": "", - "italic": "", - "strikethrough": "", - "underline": "", - "colorText": "", - "colorHighlight": "", - "code": "", - "clear": "", - "heading": "", - "align": "", - "blockquote": "", - "horizontalLine": "", - "bulletList": "", - "orderedList": "", - "checkList": "", - "increaseIndent": "", - "decreaseIndent": "", - "link": "", - "unlink": "", - "image": "", - "addTable": "", - "deleteTable": "", - "colorCell": "", - "mergeCell": "", - "addColumnLeft": "", - "addColumnRight": "", - "deleteColumn": "", - "addRowTop": "", - "addRowBelow": "", - "deleteRow": "" + "bold": "Tučné", + "italic": "Kurzíva", + "strikethrough": "Prečiarknuté", + "underline": "Podčiarknuté", + "colorText": "Farebný text", + "colorHighlight": "Farebné zvýraznenie textu", + "code": "Kód", + "clear": "Vyčistiť formátovanie", + "heading": "Nadpis {{level}}", + "align": "Zarovnanie textu: {{position}}", + "blockquote": "Citát", + "horizontalLine": "Horizontálna čiara", + "bulletList": "Zoznam odrážok", + "orderedList": "Objednaný zoznam", + "checkList": "Kontrolný zoznam", + "increaseIndent": "Zväčšenie odstupu", + "decreaseIndent": "Zníženie odstupu", + "link": "Odkaz", + "unlink": "Odstrániť odkaz", + "image": "Vložiť obrázok", + "addTable": "Pridať tabuľku", + "deleteTable": "Odstrániť tabuľku", + "colorCell": "Farebná bunka", + "mergeCell": "Prepnúť zlúčenie buniek", + "addColumnLeft": "Pridať stĺpec pred", + "addColumnRight": "Pridať stĺpec po", + "deleteColumn": "Vymazať stĺpec", + "addRowTop": "Pridať riadok pred", + "addRowBelow": "Pridať riadok po", + "deleteRow": "Vymazať riadok" }, "modals": { - "clearColor": "", - "source": "", - "widthPlaceholder": "", - "columns": "", - "rows": "" + "clearColor": "Vymazať farbu", + "source": "Zdroj", + "widthPlaceholder": "Hodnota v % alebo pixeloch", + "columns": "Stĺpce", + "rows": "Riadky" } } } \ No newline at end of file diff --git a/public/locales/sk/modules/torrents-status.json b/public/locales/sk/modules/torrents-status.json index 58247faa10f..9a67b43a813 100644 --- a/public/locales/sk/modules/torrents-status.json +++ b/public/locales/sk/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Zobraz dokončené torrenty" }, "displayActiveTorrents": { - "label": "" + "label": "Zobraziť aktívne torrenty" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Rýchlosť odosielania, aby sa torrent považoval za aktívny (kB/s)" }, "displayStaleTorrents": { "label": "Zobraz zastarané torrenty" @@ -27,8 +27,8 @@ "description": "Ak je začiarknuté políčko 'is whitelist', bude sa toto políčko správať ako biela listina. Ak nie je začiarknuté, ide o čiernu listinu. Ak je prázdny, nerobí nič" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Zobraziť pomer zoznamu filtrovaných torrentov", + "info": "Ak je vypnutý, zobrazí sa iba globálny pomer. Globálny pomer bude stále používať štítky, ak je nastavený" } } }, @@ -36,8 +36,8 @@ "footer": { "error": "Chyba", "lastUpdated": "Naposledy aktualizované pred {{time}}", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Globálny pomer", + "ratioWithFilter": "Pomer s filtrom" }, "table": { "header": { diff --git a/public/locales/sk/settings/customization/general.json b/public/locales/sk/settings/customization/general.json index 3e0bbb6bc1d..942e7baf55b 100644 --- a/public/locales/sk/settings/customization/general.json +++ b/public/locales/sk/settings/customization/general.json @@ -22,7 +22,7 @@ "description": "Konfigurácia aplikácie Homarr pre zdravotne postihnutých a hendikepovaných používateľov" }, "access": { - "name": "", + "name": "Prístup", "description": "Konfigurácia osôb, ktoré majú prístup k vašej nástenke" } } diff --git a/public/locales/sk/settings/customization/page-appearance.json b/public/locales/sk/settings/customization/page-appearance.json index d290a9d2571..e9bb8429186 100644 --- a/public/locales/sk/settings/customization/page-appearance.json +++ b/public/locales/sk/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Pozadie" }, + "backgroundImageAttachment": { + "label": "Pripojenie obrázku na pozadí", + "options": { + "fixed": "Pevné - pozadie zostáva v rovnakej polohe (odporúčané)", + "scroll": "Posúvanie - Pozadie sa posúva myšou" + } + }, + "backgroundImageSize": { + "label": "Veľkosť obrázka na pozadí", + "options": { + "cover": "Cover (Zakryť) - zmenší obrázok na čo najmenšiu veľkosť, aby zakryl celé okno orezaním nadmerného priestoru. (odporúčané)", + "contain": "Obsahovať - zmenší obrázok na čo najväčšiu veľkosť v rámci kontajnera bez orezania alebo roztiahnutia obrázka." + } + }, + "backgroundImageRepeat": { + "label": "Pripojenie obrázku na pozadí", + "options": { + "repeat": "Opakovať - Obrázok sa opakuje toľkokrát, koľko je potrebné na pokrytie celej oblasti maľovania obrázka na pozadí.", + "no-repeat": "Žiadne opakovanie - obrázok sa neopakuje a nemusí vyplniť celý priestor (odporúčané)", + "repeat-x": "Opakovať X - Rovnaké ako \"Opakovať\", ale len na horizontálnej osi.", + "repeat-y": "Opakovať Y - Rovnaké ako \"Opakovať\", ale len na zvislej osi." + } + }, "customCSS": { "label": "Vlastné CSS", "description": "Ďalej si prispôsobte ovládací panel pomocou CSS, odporúča sa len pre skúsených používateľov", "placeholder": "Vlastné CSS sa použije ako posledné", "applying": "Aplikuje sa CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/sl/layout/header.json b/public/locales/sl/layout/header.json index cd43ad67ca9..12421a8e50f 100644 --- a/public/locales/sl/layout/header.json +++ b/public/locales/sl/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "" - }, "search": { "label": "", "engines": { diff --git a/public/locales/sl/settings/customization/page-appearance.json b/public/locales/sl/settings/customization/page-appearance.json index 6702f672310..de935c1a5c3 100644 --- a/public/locales/sl/settings/customization/page-appearance.json +++ b/public/locales/sl/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Ozadje" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Po meri CSS", "description": "Dadatno prilagodite pogled s CSS. Priporočljivo le za izkušene uporabnike", "placeholder": "Prilagojeni CSS bo uporabljen kot zadnji", "applying": "Uporaba CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/sv/layout/header.json b/public/locales/sv/layout/header.json index ce11e3bf25b..0a8f2477079 100644 --- a/public/locales/sv/layout/header.json +++ b/public/locales/sv/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Detta är en experimentell funktion i Homarr. Vänligen rapportera eventuella problem på GitHub eller Discord." - }, "search": { "label": "Sök", "engines": { diff --git a/public/locales/sv/settings/customization/page-appearance.json b/public/locales/sv/settings/customization/page-appearance.json index 01dc814bcf6..81aecb90b48 100644 --- a/public/locales/sv/settings/customization/page-appearance.json +++ b/public/locales/sv/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Bakgrund" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Anpassad CSS", "description": "Vidare kan du anpassa din instrumentpanel med CSS, vilket endast rekommenderas för erfarna användare", "placeholder": "Anpassad CSS tillämpas sist", "applying": "Tillämpar CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/tr/layout/header.json b/public/locales/tr/layout/header.json index 85ba192fafb..48c9f527306 100644 --- a/public/locales/tr/layout/header.json +++ b/public/locales/tr/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Bu Homarr'ın deneysel bir özelliğidir. Lütfen herhangi bir sorunu GitHub veya Discordadresinden bildirin." - }, "search": { "label": "Ara", "engines": { diff --git a/public/locales/tr/settings/customization/page-appearance.json b/public/locales/tr/settings/customization/page-appearance.json index a2b32588acd..7689630872f 100644 --- a/public/locales/tr/settings/customization/page-appearance.json +++ b/public/locales/tr/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Arkaplan" }, + "backgroundImageAttachment": { + "label": "Arkaplan resim ekle", + "options": { + "fixed": "Düzeltildi - Arka plan aynı konumda kalıyor (tavsiye edilen)", + "scroll": "Kaydırma - Arka plan farenizle kaydırılır" + } + }, + "backgroundImageSize": { + "label": "Arkaplan resim boyutu", + "options": { + "cover": "Kapak - Fazla alanı kırparak tüm pencereyi kaplamak için görüntüyü mümkün olduğunca küçük ölçeklendirir. (tavsiye edilen)", + "contain": "Kapsam - Görüntüyü kırpmadan veya genişletmeden, kapsayıcısı içinde mümkün olduğu kadar büyük ölçeklendirir." + } + }, + "backgroundImageRepeat": { + "label": "Arkaplan resim ekle", + "options": { + "repeat": "Tekrarla - Resim, arka plan görüntü alanının tamamını kapsayacak şekilde gerektiği kadar tekrarlanır.", + "no-repeat": "", + "repeat-x": "Tekrarla X - 'Tekrarla' ile aynıdır ancak yalnızca yatay eksende.", + "repeat-y": "Tekrar Y - 'Tekrarla' ile aynıdır, ancak yalnızca dikey eksende." + } + }, "customCSS": { "label": "Özel CSS", "description": "Ayrıca, yalnızca deneyimli kullanıcılar için önerilen CSS kullanarak kontrol panelinizi özelleştirin", "placeholder": "Özel CSS en son uygulanacaktır", "applying": "CSS uygulanıyor..." } -} \ No newline at end of file +} diff --git a/public/locales/tr/tools/docker.json b/public/locales/tr/tools/docker.json index 7c0e3e97d8d..bceffabd061 100644 --- a/public/locales/tr/tools/docker.json +++ b/public/locales/tr/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Homarr örneğinizde Docker yapılandırılmış değil veya konteynırları getirmede başarısız oldu. Lütfen entegrasyonun nasıl kurulacağına ilişkin belgeleri kontrol edin." + "text": "Homarr yapılandırmanızda, Docker yapılandırılmamış veya konteynırları getirmede başarısız oldu. Lütfen entegrasyonun nasıl yapılacağına ilişkin belgeleri kontrol edin." } }, "modals": { diff --git a/public/locales/tw/layout/header.json b/public/locales/tw/layout/header.json index 076c98a7d28..f3c2c658a22 100644 --- a/public/locales/tw/layout/header.json +++ b/public/locales/tw/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "這是 Homarr 的一項實現性功能。請在 GithubDiscord上回報任何問題" - }, "search": { "label": "搜尋", "engines": { diff --git a/public/locales/tw/settings/customization/page-appearance.json b/public/locales/tw/settings/customization/page-appearance.json index 65fb4d33e23..4aa50d4d468 100644 --- a/public/locales/tw/settings/customization/page-appearance.json +++ b/public/locales/tw/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "背景" }, + "backgroundImageAttachment": { + "label": "背景圖片附件", + "options": { + "fixed": "固定 - 背景保持在同一位置 (推薦)", + "scroll": "滾動 - 背景隨滑鼠滾動" + } + }, + "backgroundImageSize": { + "label": "背景圖像大小", + "options": { + "cover": "覆蓋 - 通過剪裁多餘的區域,將圖像縮放到盡可能小的方式來覆蓋整個窗口 (推薦)", + "contain": "包含 - 在不剪裁或拉伸圖像的方式下,在容器中盡可能大的方式來縮放圖像" + } + }, + "backgroundImageRepeat": { + "label": "背景圖片附件", + "options": { + "repeat": "重複 - 根據需要重複圖像,以覆蓋整個背景圖像繪製區域", + "no-repeat": "不重複 - 圖像不重複且不填滿整個區域 (推薦)", + "repeat-x": "重複 X 軸 - 與\"重複\"相同,但只在水平軸上重複", + "repeat-y": "重複 Y 軸 - 與\"重複\"相同,但只在垂直上重複" + } + }, "customCSS": { "label": "自定義 CSS", "description": "此外,只推薦有經驗的使用者使用 CSS 自定義面板", "placeholder": "自定義 CSS 將最後應用", "applying": "應用 CSS 中..." } -} \ No newline at end of file +} diff --git a/public/locales/tw/tools/docker.json b/public/locales/tw/tools/docker.json index 57f79d87751..fd70d287f4c 100644 --- a/public/locales/tw/tools/docker.json +++ b/public/locales/tw/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "您的 Homarr 實例未設定 Docker,或無法獲取容器,請查看文檔了解如設定集成" + "text": "您的 Homarr 實例未配置 Docker,或無法獲取容器。請查說明,了解如何設定集成" } }, "modals": { diff --git a/public/locales/uk/layout/header.json b/public/locales/uk/layout/header.json index 997a7e38d84..158a9cd8389 100644 --- a/public/locales/uk/layout/header.json +++ b/public/locales/uk/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Це експериментальна функція Homarr. Будь ласка, повідомляйте про будь-які проблеми на GitHub або Discord." - }, "search": { "label": "Пошук", "engines": { diff --git a/public/locales/uk/settings/customization/page-appearance.json b/public/locales/uk/settings/customization/page-appearance.json index 3c5adce8f38..f4ca83a4df6 100644 --- a/public/locales/uk/settings/customization/page-appearance.json +++ b/public/locales/uk/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Фон" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "Власний CSS", "description": "Крім того, налаштуйте дашборд за допомогою CSS, що рекомендується лише досвідченим користувачам", "placeholder": "Власний CSS буде оброблятися в останню чергу", "applying": "Застосувати CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/uk/tools/docker.json b/public/locales/uk/tools/docker.json index e75f23653fe..d553bf75882 100644 --- a/public/locales/uk/tools/docker.json +++ b/public/locales/uk/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "У вашому екземплярі Homarr не налаштовано Docker або він помилково завантажив контейнери. Будь ласка, зверніться до документації про те, як налаштувати інтеграцію." + "text": "" } }, "modals": { diff --git a/public/locales/vi/layout/header.json b/public/locales/vi/layout/header.json index b0de249ad37..2111a48eec7 100644 --- a/public/locales/vi/layout/header.json +++ b/public/locales/vi/layout/header.json @@ -1,7 +1,4 @@ { - "experimentalNote": { - "label": "Đây là một tính năng thử nghiệm của Homarr. Vui lòng báo cáo mọi vấn đề trên GitHub hoặc Discord." - }, "search": { "label": "Tìm kiếm", "engines": { diff --git a/public/locales/vi/layout/modals/about.json b/public/locales/vi/layout/modals/about.json index faa72a6065a..a22c0b2744e 100644 --- a/public/locales/vi/layout/modals/about.json +++ b/public/locales/vi/layout/modals/about.json @@ -5,10 +5,10 @@ "key": "Phím tắt", "action": "Hành động", "keybinds": "Phím tắt", - "translators": "", - "translatorsDescription": "", - "contributors": "", - "contributorsDescription": "", + "translators": "Phiên dịch viên ({{count}})", + "translatorsDescription": "Nhờ những người này, Homarr hiện có sẵn {{languages}} ngôn ngữ khác nhau! Bạn muốn giúp dịch Homarr sang ngôn ngữ của bạn? Đọc cách thực hiện tại đây.", + "contributors": "Người đóng góp ({{count}})", + "contributorsDescription": "Những người này đã lập trình nên Homarr! Bạn muốn giúp xây dựng Homarr? Đọc cách thực hiện tại đây", "actions": { "toggleTheme": "Đổi chế độ sáng/tối", "focusSearchBar": "Tập trung vào thanh tìm kiếm", diff --git a/public/locales/vi/modules/dns-hole-summary.json b/public/locales/vi/modules/dns-hole-summary.json index ca0ee3754aa..d90896743e8 100644 --- a/public/locales/vi/modules/dns-hole-summary.json +++ b/public/locales/vi/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Tên miền trên danh sách quảng cáo", "queriesToday": "Truy vấn hôm nay", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "queriesBlockedTodayPercentage": "Đã chặn hôm nay", + "queriesBlockedToday": "Đã chặn hôm nay" } } } diff --git a/public/locales/vi/modules/notebook.json b/public/locales/vi/modules/notebook.json index b174e558c47..e9efa7765a8 100644 --- a/public/locales/vi/modules/notebook.json +++ b/public/locales/vi/modules/notebook.json @@ -1,9 +1,9 @@ { "descriptor": { - "name": "Sổ tay", + "name": "Ghi chú", "description": "Tiện ích tương tác dựa trên đánh dấu để bạn viết ra ghi chú của mình!", "settings": { - "title": "Cài đặt cho tiện ích sổ ghi chép", + "title": "Cài đặt cho tiện ích ghi chú", "showToolbar": { "label": "Hiển thị thanh công cụ giúp bạn viết markdown" }, @@ -11,7 +11,7 @@ "label": "" }, "content": { - "label": "Nội dung của sổ ghi chép" + "label": "Nội dung của ghi chú" } } }, @@ -51,9 +51,9 @@ "modals": { "clearColor": "", "source": "", - "widthPlaceholder": "", - "columns": "", - "rows": "" + "widthPlaceholder": "Giá trị tính bằng % hoặc pixel", + "columns": "Cột", + "rows": "Dòng" } } } \ No newline at end of file diff --git a/public/locales/vi/settings/customization/page-appearance.json b/public/locales/vi/settings/customization/page-appearance.json index ff16304c09d..ef0e7f90fb7 100644 --- a/public/locales/vi/settings/customization/page-appearance.json +++ b/public/locales/vi/settings/customization/page-appearance.json @@ -18,10 +18,33 @@ "background": { "label": "Hình nền" }, + "backgroundImageAttachment": { + "label": "", + "options": { + "fixed": "", + "scroll": "" + } + }, + "backgroundImageSize": { + "label": "", + "options": { + "cover": "", + "contain": "" + } + }, + "backgroundImageRepeat": { + "label": "", + "options": { + "repeat": "", + "no-repeat": "", + "repeat-x": "", + "repeat-y": "" + } + }, "customCSS": { "label": "CSS tuỳ chỉnh", "description": "Ngoài ra có thể tùy chỉnh bảng điều khiển của bạn bằng CSS, chỉ được đề xuất cho người dùng có kinh nghiệm", "placeholder": "CSS tùy chỉnh sẽ được áp dụng sau cùng", "applying": "Đang áp dụng CSS..." } -} \ No newline at end of file +} diff --git a/public/locales/vi/tools/docker.json b/public/locales/vi/tools/docker.json index 7542e70c151..5f57baf16c6 100644 --- a/public/locales/vi/tools/docker.json +++ b/public/locales/vi/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "Phiên bản Homarr của bạn không được định cấu hình Docker hoặc không thể tìm nạp vùng chứa. Vui lòng kiểm tra tài liệu về cách thiết lập tích hợp." + "text": "" } }, "modals": { diff --git a/scripts/run.sh b/scripts/run.sh index 3f1651783f3..ba017d05e6f 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -2,22 +2,16 @@ echo "Exporting hostname..." export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:7575" -mv node_modules _node_modules -mv node_modules_migrate node_modules + echo "Migrating database..." -yarn ts-node src/migrate.ts & PID=$! +cd ./migrate; yarn db:migrate & PID=$! # Wait for migration to finish wait $PID -echo "Reverting to production node_modules..." -# Copy specific sqlite3 binary to node_modules -cp /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/_node_modules/better-sqlite3/build/Release/better_sqlite3.node - -# Remove node_modules and copy cached node_modules -mv node_modules node_modules_migrate -mv _node_modules node_modules -cp ./temp_package.json package.json -cp ./temp_yarn.lock yarn.lock +## If 'default.json' does not exist in '/app/data/configs', we copy it from '/app/data/default.json' +cp -n /app/data/default.json /app/data/configs/default.json echo "Starting production server..." -node /app/server.js \ No newline at end of file +node /app/server.js & PID=$! + +wait $PID \ No newline at end of file diff --git a/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx index 248f4e8551e..4f1411124e8 100644 --- a/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx +++ b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx @@ -4,9 +4,9 @@ import { Group, Input, MantineTheme, + Select, Slider, Stack, - Text, TextInput, createStyles, rem, @@ -16,6 +16,7 @@ import { useTranslation } from 'next-i18next'; import { highlight, languages } from 'prismjs'; import Editor from 'react-simple-code-editor'; import { useColorTheme } from '~/tools/color'; +import { BackgroundImageAttachment, BackgroundImageRepeat, BackgroundImageSize } from '~/types/settings'; import { useBoardCustomizationFormContext } from '../form'; @@ -30,6 +31,32 @@ export const AppearanceCustomization = () => { placeholder="/imgs/backgrounds/background.png" {...form.getInputProps('appearance.backgroundSrc')} /> + ({ + value: size, + label: t(`backgroundImageSize.options.${size}`) as string, + }))} + {...form.getInputProps('appearance.backgroundImageSize')} + /> + +