diff --git a/Dockerfile b/Dockerfile index 621472736..2579bcf85 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 d1a889f03..dc43a0c17 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,28 +8,6 @@ }, "language": "All", "data": [ - { - "user": { - "id": "15492732", - "username": "hillaliy", - "fullName": "Yossi Hillali (hillaliy)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg", - "joined": "2022-10-15 15:18:50" - }, - "languages": [ - { - "id": "he", - "name": "Hebrew" - } - ], - "translated": 5404, - "target": 4717, - "approved": 5437, - "voted": 0, - "positiveVotes": 12, - "negativeVotes": 0, - "winning": 5395 - }, { "user": { "id": "15491798", @@ -44,13 +22,57 @@ "name": "Danish" } ], - "translated": 5353, - "target": 5159, - "approved": 5371, + "translated": 5893, + "target": 5686, + "approved": 5911, "voted": 0, "positiveVotes": 0, "negativeVotes": 0, - "winning": 5353 + "winning": 5893 + }, + { + "user": { + "id": "15492732", + "username": "hillaliy", + "fullName": "Yossi Hillali (hillaliy)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg", + "joined": "2022-10-15 15:18:50" + }, + "languages": [ + { + "id": "he", + "name": "Hebrew" + } + ], + "translated": 5815, + "target": 5068, + "approved": 5848, + "voted": 0, + "positiveVotes": 12, + "negativeVotes": 0, + "winning": 5806 + }, + { + "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": 5288, + "target": 5378, + "approved": 5613, + "voted": 0, + "positiveVotes": 11, + "negativeVotes": 0, + "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, + "positiveVotes": 30, "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, - "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,14 +372,40 @@ "name": "Vietnamese" } ], - "translated": 2929, - "target": 4087, - "approved": 4, + "translated": 3001, + "target": 4174, + "approved": 23, "voted": 0, "positiveVotes": 0, "negativeVotes": 0, "winning": 4 }, + { + "user": { + "id": "15875457", + "username": "raelyan", + "fullName": "Raelyan (raelyan)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg", + "joined": "2023-06-14 12:51:04" + }, + "languages": [ + { + "id": "gl", + "name": "Galician" + }, + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 2924, + "target": 3268, + "approved": 3791, + "voted": 5, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2901 + }, { "user": { "id": "15428592", @@ -336,54 +428,6 @@ "negativeVotes": 0, "winning": 2681 }, - { - "user": { - "id": "15875457", - "username": "raelyan", - "fullName": "Raelyan (raelyan)", - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg", - "joined": "2023-06-14 12:51:04" - }, - "languages": [ - { - "id": "gl", - "name": "Galician" - }, - { - "id": "es-ES", - "name": "Spanish" - } - ], - "translated": 2740, - "target": 3061, - "approved": 3553, - "voted": 5, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 2717 - }, - { - "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": 2688, - "target": 2379, - "approved": 2987, - "voted": 160, - "positiveVotes": 0, - "negativeVotes": 0, - "winning": 2557 - }, { "user": { "id": "15419914", @@ -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 000000000..910d736f7 --- /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 5c4abeb88..cacf32fe8 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 000000000..35772f216 --- /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 9a480b3da..3724f70c2 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 4c5215ae1..456a8a0aa 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 928245782..dc18d7a4b 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 d0cfa45a6..5aa1313a1 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 a06ab514b..3895e5389 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 998b0210e..ff103e2a1 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 67fbe9da0..11da29d04 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 69e78f046..065f41b13 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 6957b4712..0b40bc882 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 f5a7aa4ea..efadec3f7 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 3cbdfa706..d717de76c 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 6fedba2d9..87bf684c7 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 1dfd395d3..770488591 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 05e700def..bef8c144b 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 f152af280..8ad032e26 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 3e8852626..16a686ef7 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 910e00935..4d700fe75 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 75854abae..ed76ad44d 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 2ca246303..7f98a8ed0 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 8d403475c..54e726b73 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 3d63ce720..c20d632bb 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 6df6a8617..7f567f72f 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 4ff6d913a..eabaff878 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 2e00f717a..2450f8f86 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 b67918dac..c35ff49ce 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 622947e1f..5f6ed9797 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 44d0cc3b1..3f3b132c9 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 d762e5e35..9d73a3a30 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 ba1d01c47..29672758f 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 101b11381..199c15fa4 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 242341a42..549cdbd3e 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 35e850f63..f3828f9b1 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 0856af510..0bbfc3be8 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 7be2dfb8f..4f8e0ed7a 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 7df956ae9..3a28ee8f0 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 31f4af7b1..18cc8e650 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 36d24c33c..9e2afedb9 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 95c67f0d8..c9ea3b635 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 5b5d2daba..6cd12acd0 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 b74557ce9..b9e408509 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 4bf4cbf35..b9cf184dd 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 0518b7844..493c91153 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 b20a02e23..9035148af 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 0f89db477..18db9e146 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 d5cfe667d..ebe522a12 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 973583e3a..5f8506523 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 adea26bb8..7ef7a58b6 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 f7ac74c4c..dd0df8fc2 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 0ffe2a29a..586fe02aa 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 e653b0b8e..d4abe6db0 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 9645a1356..70d34cfad 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 c2ef87e55..3affb1371 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 3ff54b12e..771849ccb 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 3163b9698..0e04c9cd1 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 b642a53bd..592a71420 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 5a2a81efe..b638a46f1 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 50bb74371..258a04053 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 f2406909f..8111cde62 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 315f990e7..a1f2a9222 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 40f924aa9..86b78fe33 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 47ff7bc3e..941a814c2 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 01224f634..2c94f2cc8 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 c61693067..3c7f56f61 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 2aa379d71..21b96a1ca 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 5eccda418..333309a77 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 8ab9a02ea..c98bccd4b 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 f063f840b..379e81c1c 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 eb8a67519..7505af396 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 733c577ab..cfbb998c9 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 8d85a5b11..453131d1e 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 d36e46b2d..26a2fbcc9 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 2cb430867..fd600c677 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 edb195413..a85983df6 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 db5cc4b87..2c6643ee6 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 480a24074..ab5c95018 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 70f359ea1..d3895345b 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 1a8ac94ca..7d97ce220 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 38a94be16..4cdb44fa8 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 af1ad0e11..5eccbe96a 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 208e64431..6cee768e8 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 23432dd2f..8f8a32ec9 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 cb36d10c5..b81fe732e 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 228a558ea..c87e17662 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 59b33ee80..12a05f72c 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 f39f5582c..a2c8e69a0 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 f77d5f23d..86fc75c7a 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 4bbffdb64..b353fbc11 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 c3decebc7..cc4879bf9 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 02727a12f..2a88fe64e 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 15f725a34..332215067 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 58247faa1..9a67b43a8 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 3e0bbb6bc..942e7baf5 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 d290a9d25..e9bb84291 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 cd43ad67c..12421a8e5 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 6702f6723..de935c1a5 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 ce11e3bf2..0a8f24770 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 01dc814bc..81aecb90b 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 85ba192fa..48c9f5273 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 a2b32588a..768963087 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 7c0e3e97d..bceffabd0 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 076c98a7d..f3c2c658a 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 65fb4d33e..4aa50d4d4 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 57f79d877..fd70d287f 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 997a7e38d..158a9cd83 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 3c5adce8f..f4ca83a4d 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 e75f23653..d553bf758 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 b0de249ad..2111a48ee 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 faa72a606..a22c0b274 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 ca0ee3754..d90896743 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 b174e558c..e9efa7765 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 ff16304c0..ef0e7f90f 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 7542e70c1..5f57baf16 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 3f1651783..ba017d05e 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 248f4e855..4f1411124 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')} + /> + +