diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index df7848383..53ba20b6e 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -2,7 +2,7 @@ github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username +open_collective: homarr ko_fi: ajnart tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml new file mode 100644 index 000000000..dc34eb4c8 --- /dev/null +++ b/.github/workflows/greetings.yml @@ -0,0 +1,16 @@ +name: Greetings + +on: [pull_request_target, issues] + +jobs: + greeting: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-message: "Hi 👋. Thank you for submitting your first issue to Homarr. Please ensure that you've provided all nessesary information. You can use the three dots > Edit button to update your post with additional images and information. Depending on the current volume of requests, the team should get in conact with you shortly." + pr-message: "Hi 👋. Thank you for making your first contribution to Homarr. Please ensure that you've completed all the points in the TODO checklist. We'll review your changes shortly." diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..7775c56a0 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,28 @@ +# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. +# +# You can adjust the behavior by modifying this file. +# For more information, see: +# https://github.com/actions/stale +name: Mark stale issues and pull requests + +on: + schedule: + - cron: '18 17 * * *' + +jobs: + stale: + + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + + steps: + - uses: actions/stale@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: "Hello 👋, this issue has been open for 60 without activity. Please close this issue if it's no longer relevant or has been resolved. Still relevant? Simply reply and I'll mark it as active." + stale-pr-message: 'Hello 👋, this PR has gone stale. Please reply to mark it as active.' + stale-issue-label: 'Stale' + stale-pr-label: 'Stale' + days-before-close: -1 diff --git a/.gitignore b/.gitignore index fc8e46928..d07f51c20 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /node_modules /.pnp .pnp.js +/cli/node_modules/ # testing /coverage @@ -49,6 +50,7 @@ data/configs !.yarn/releases !.yarn/sdks !.yarn/versions +/cli/.yarn/ #envfiles .env diff --git a/Dockerfile b/Dockerfile index 2579bcf85..2c479d3aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,7 @@ COPY ./drizzle ./drizzle COPY ./drizzle/migrate ./migrate COPY ./tsconfig.json ./migrate/tsconfig.json +COPY ./cli ./cli RUN mkdir /data @@ -43,6 +44,10 @@ RUN mv node_modules ./migrate/node_modules # Copy temp node_modules of app to app folder RUN mv _node_modules node_modules +RUN echo '#!/bin/bash\nnode /app/cli/cli.js "$@"' > /usr/bin/homarr +RUN chmod +x /usr/bin/homarr +RUN cd /app/cli && yarn --immutable + # Expose the default application port EXPOSE $PORT ENV PORT=${PORT} diff --git a/cli/cli.js b/cli/cli.js new file mode 100644 index 000000000..4c8f692da --- /dev/null +++ b/cli/cli.js @@ -0,0 +1,30 @@ +import yargs from 'yargs'; + +import { resetPasswordForOwner } from './commands/reset-owner-password.js'; +import { resetPasswordForUsername } from './commands/reset-password.js'; + +yargs(process.argv.slice(2)) + .scriptName('homarr') + .usage('$0 [args]') + .command('reset-owner-password', 'Resets the current owner password without UI access', async () => { + await resetPasswordForOwner(); + }) + .command( + 'reset-password', + 'Reset the password of a specific user without UI access', + (yargs) => { + yargs.option('username', { + type: 'string', + describe: 'Username of user', + demandOption: true + }); + }, + async (argv) => { + await resetPasswordForUsername(argv.username); + } + ) + .version(false) + .showHelpOnFail(true) + .alias('h', 'help') + .demandCommand() + .help().argv; \ No newline at end of file diff --git a/cli/commands/reset-owner-password.js b/cli/commands/reset-owner-password.js new file mode 100644 index 000000000..d7d1fdc6d --- /dev/null +++ b/cli/commands/reset-owner-password.js @@ -0,0 +1,55 @@ +import bcrypt from 'bcryptjs'; + +import Database from 'better-sqlite3'; + +import boxen from 'boxen'; + +import chalk from 'chalk'; + +import Consola from 'consola'; + +import crypto from 'crypto'; + +import { sql } from 'drizzle-orm'; +import { drizzle } from 'drizzle-orm/better-sqlite3'; + +export async function resetPasswordForOwner() { + if (!process.env.DATABASE_URL) { + Consola.error('Unable to connect to database due to missing database URL environment variable'); + return; + } + + Consola.info('Connecting to the database...'); + const sqlite = new Database(process.env.DATABASE_URL.replace('file:', '')); + const db = drizzle(sqlite); + + Consola.info('Connected to the database ' + chalk.green('✓')); + Consola.info('Generating new random password...'); + + const newPassword = crypto.randomUUID(); + const salt = bcrypt.genSaltSync(10); + const hashedPassword = bcrypt.hashSync(newPassword, salt); + + try { + await db.transaction((tx) => { + tx.run( + sql`DELETE FROM session WHERE userId = (SELECT id FROM user WHERE is_owner = 1 LIMIT 1)` + ); + tx.run(sql`UPDATE user SET password = ${hashedPassword} WHERE is_owner = 1 LIMIT 1;`); + }); + console.log( + boxen(`New owner password is '${chalk.red(newPassword)}'. You can now log in with this password.\nExising sessions have been destroyed and need to login again with the new passowrd.`, { + dimBorder: true, + borderStyle: 'round', + padding: { + left: 1, + right: 1 + } + }) + ); + } catch (err) { + Consola.error('Failed to update password', err); + } finally { + Consola.info('Command has completed'); + } +} diff --git a/cli/commands/reset-password.js b/cli/commands/reset-password.js new file mode 100644 index 000000000..c4e011faa --- /dev/null +++ b/cli/commands/reset-password.js @@ -0,0 +1,56 @@ +import bcrypt from 'bcryptjs'; + +import Database from 'better-sqlite3'; + +import Consola from 'consola'; + +import crypto from 'crypto'; + +import boxen from 'boxen'; + +import chalk from 'chalk'; + +import { sql } from 'drizzle-orm'; +import { drizzle } from 'drizzle-orm/better-sqlite3'; + +export async function resetPasswordForUsername(username) { + if (!process.env.DATABASE_URL) { + Consola.error('Unable to connect to database due to missing database URL environment variable'); + return; + } + + Consola.info('Connecting to the database...'); + const sqlite = new Database(process.env.DATABASE_URL.replace('file:', '')); + const db = drizzle(sqlite); + + Consola.info('Generating new random password...'); + + const newPassword = crypto.randomUUID(); + const salt = bcrypt.genSaltSync(10); + const hashedPassword = bcrypt.hashSync(newPassword, salt); + + Consola.info(`Updating password for user '${username}'`); + + try { + await db.transaction((tx) => { + tx.run( + sql`DELETE FROM session WHERE userId = (SELECT id FROM user WHERE name = ${username} LIMIT 1)` + ); + tx.run(sql`UPDATE user SET password = ${hashedPassword} WHERE id = (SELECT id FROM user WHERE name = ${username} LIMIT 1) LIMIT 1`); + }); + console.log( + boxen(`New password for '${username}' is '${chalk.red(newPassword)}'. You can now log in with this password.\nExising sessions have been destroyed and need to login again with the new passowrd.`, { + dimBorder: true, + borderStyle: 'round', + padding: { + left: 1, + right: 1 + } + }) + ); + } catch (err) { + Consola.error('Failed to update password', err); + } finally { + Consola.info('Command has completed'); + } +} diff --git a/cli/package.json b/cli/package.json new file mode 100644 index 000000000..f1ee09e18 --- /dev/null +++ b/cli/package.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "bcryptjs": "^2.4.3", + "better-sqlite3": "^8.6.0", + "boxen": "^7.1.1", + "chalk": "^5.3.0", + "consola": "^3.0.0", + "drizzle-orm": "^0.28.6", + "yargs": "^17.7.2" + }, + "type": "module" +} diff --git a/cli/yarn.lock b/cli/yarn.lock new file mode 100644 index 000000000..d99d60b33 --- /dev/null +++ b/cli/yarn.lock @@ -0,0 +1,1371 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.1 + checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ansi-align@npm:^3.0.1": + version: 3.0.1 + resolution: "ansi-align@npm:3.0.1" + dependencies: + string-width: ^4.1.0 + checksum: 6abfa08f2141d231c257162b15292467081fa49a208593e055c866aa0455b57f3a86b5a678c190c618faa79b4c59e254493099cb700dd9cf2293c6be2c8f5d8d + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bcryptjs@npm:^2.4.3": + version: 2.4.3 + resolution: "bcryptjs@npm:2.4.3" + checksum: 0e80ed852a41f5dfb1853f53ee14a7390b0ef263ce05dba6e2ef3cd919dfad025a7c21ebcfe5bc7fa04b100990edf90c7a877ff7fe623d3e479753253131b629 + languageName: node + linkType: hard + +"better-sqlite3@npm:^8.6.0": + version: 8.7.0 + resolution: "better-sqlite3@npm:8.7.0" + dependencies: + bindings: ^1.5.0 + node-gyp: latest + prebuild-install: ^7.1.1 + checksum: f1fa38a9a0e4fcd59ececb67c60371b9638d29c19ce9af034421e8a56c9a77e799bb1411b1c3cb08bb9678e15dfb8985553a9ef4098cf5558e7207a3e019f211 + languageName: node + linkType: hard + +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: 1.0.0 + checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 + languageName: node + linkType: hard + +"bl@npm:^4.0.3": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: ^5.5.0 + inherits: ^2.0.4 + readable-stream: ^3.4.0 + checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 + languageName: node + linkType: hard + +"boxen@npm:^7.1.1": + version: 7.1.1 + resolution: "boxen@npm:7.1.1" + dependencies: + ansi-align: ^3.0.1 + camelcase: ^7.0.1 + chalk: ^5.2.0 + cli-boxes: ^3.0.0 + string-width: ^5.1.2 + type-fest: ^2.13.0 + widest-line: ^4.0.1 + wrap-ansi: ^8.1.0 + checksum: ad8833d5f2845b0a728fdf8a0bc1505dff0c518edcb0fd56979a08774b1f26cf48b71e66532179ccdfb9ed95b64aa008689cca26f7776f93f002b8000a683d76 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.1 + resolution: "cacache@npm:18.0.1" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 5a0b3b2ea451a0379814dc1d3c81af48c7c6db15cd8f7d72e028501ae0036a599a99bbac9687bfec307afb2760808d1c7708e9477c8c70d2b166e7d80b162a23 + languageName: node + linkType: hard + +"camelcase@npm:^7.0.1": + version: 7.0.1 + resolution: "camelcase@npm:7.0.1" + checksum: 86ab8f3ebf08bcdbe605a211a242f00ed30d8bfb77dab4ebb744dd36efbc84432d1c4adb28975ba87a1b8be40a80fbd1e60e2f06565315918fa7350011a26d3d + languageName: node + linkType: hard + +"chalk@npm:^5.2.0, chalk@npm:^5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + +"chownr@npm:^1.1.1": + version: 1.1.4 + resolution: "chownr@npm:1.1.4" + checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-boxes@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-boxes@npm:3.0.0" + checksum: 637d84419d293a9eac40a1c8c96a2859e7d98b24a1a317788e13c8f441be052fc899480c6acab3acc82eaf1bccda6b7542d7cdcf5c9c3cc39227175dc098d5b2 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"consola@npm:^3.0.0": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 32ec70e177dd2385c42e38078958cc7397be91db21af90c6f9faa0b16168b49b1c61d689338604bbb2d64370b9347a35f42a9197663a913d3a405bb0ce728499 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: ^3.1.0 + checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d + languageName: node + linkType: hard + +"drizzle-orm@npm:^0.28.6": + version: 0.28.6 + resolution: "drizzle-orm@npm:0.28.6" + peerDependencies: + "@aws-sdk/client-rds-data": ">=3" + "@cloudflare/workers-types": ">=3" + "@libsql/client": "*" + "@neondatabase/serverless": ">=0.1" + "@opentelemetry/api": ^1.4.1 + "@planetscale/database": ">=1" + "@types/better-sqlite3": "*" + "@types/pg": "*" + "@types/sql.js": "*" + "@vercel/postgres": "*" + better-sqlite3: ">=7" + bun-types: "*" + knex: "*" + kysely: "*" + mysql2: ">=2" + pg: ">=8" + postgres: ">=3" + sql.js: ">=1" + sqlite3: ">=5" + peerDependenciesMeta: + "@aws-sdk/client-rds-data": + optional: true + "@cloudflare/workers-types": + optional: true + "@libsql/client": + optional: true + "@neondatabase/serverless": + optional: true + "@opentelemetry/api": + optional: true + "@planetscale/database": + optional: true + "@types/better-sqlite3": + optional: true + "@types/pg": + optional: true + "@types/sql.js": + optional: true + "@vercel/postgres": + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + checksum: 1e079be9e969c1e9d325d68164006d976f093f296f6e058222a921debd047aa2369703b2142de03366e38baba3d8ef322f2e094bc0509d16f0577509b1f9bad7 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"expand-template@npm:^2.0.3": + version: 2.0.3 + resolution: "expand-template@npm:2.0.3" + checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"github-from-package@npm:0.0.0": + version: 0.0.0 + resolution: "github-from-package@npm:0.0.0" + checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" + dependencies: + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 + is-lambda: ^1.0.1 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + ssri: ^10.0.0 + checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 25739fee32c17f433626bf19f016df9036b75b3d84a3046c7d156e72ec963dd29d7fc8a302f55a3d6c5a4ff24259676b15d915aad6480815a969ff2ec0836867 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.3": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": + version: 0.5.3 + resolution: "mkdirp-classic@npm:0.5.3" + checksum: 3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"napi-build-utils@npm:^1.0.1": + version: 1.0.2 + resolution: "napi-build-utils@npm:1.0.2" + checksum: 06c14271ee966e108d55ae109f340976a9556c8603e888037145d6522726aebe89dd0c861b4b83947feaf6d39e79e08817559e8693deedc2c94e82c5cbd090c7 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"node-abi@npm:^3.3.0": + version: 3.51.0 + resolution: "node-abi@npm:3.51.0" + dependencies: + semver: ^7.3.5 + checksum: 3fabc9d58f0478767157560249f79c4a9e95082b96700cd8cc470f517bd566dbab82a37c862db3f78d3187be9f19f5cd9822b6f1b7ac7a3254fa70c3e3b38a83 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 + languageName: node + linkType: hard + +"once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"prebuild-install@npm:^7.1.1": + version: 7.1.1 + resolution: "prebuild-install@npm:7.1.1" + dependencies: + detect-libc: ^2.0.0 + expand-template: ^2.0.3 + github-from-package: 0.0.0 + minimist: ^1.2.3 + mkdirp-classic: ^0.5.3 + napi-build-utils: ^1.0.1 + node-abi: ^3.3.0 + pump: ^3.0.0 + rc: ^1.2.7 + simple-get: ^4.0.0 + tar-fs: ^2.0.0 + tunnel-agent: ^0.6.0 + bin: + prebuild-install: bin.js + checksum: dbf96d0146b6b5827fc8f67f72074d2e19c69628b9a7a0a17d0fad1bf37e9f06922896972e074197fc00a52eae912993e6ef5a0d471652f561df5cb516f3f467 + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + +"rc@npm:^1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"root-workspace-0b6124@workspace:.": + version: 0.0.0-use.local + resolution: "root-workspace-0b6124@workspace:." + dependencies: + bcryptjs: ^2.4.3 + better-sqlite3: ^8.6.0 + boxen: ^7.1.1 + chalk: ^5.3.0 + consola: ^3.0.0 + drizzle-orm: ^0.28.6 + yargs: ^17.7.2 + languageName: unknown + linkType: soft + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a + languageName: node + linkType: hard + +"simple-get@npm:^4.0.0": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" + dependencies: + decompress-response: ^6.0.0 + once: ^1.3.1 + simple-concat: ^1.0.0 + checksum: e4132fd27cf7af230d853fa45c1b8ce900cb430dd0a3c6d3829649fe4f2b26574c803698076c4006450efb0fad2ba8c5455fbb5755d4b0a5ec42d4f12b31d27e + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" + dependencies: + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d + languageName: node + linkType: hard + +"socks@npm:^2.7.1": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + +"tar-fs@npm:^2.0.0": + version: 2.1.1 + resolution: "tar-fs@npm:2.1.1" + dependencies: + chownr: ^1.1.1 + mkdirp-classic: ^0.5.2 + pump: ^3.0.0 + tar-stream: ^2.1.4 + checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d + languageName: node + linkType: hard + +"tar-stream@npm:^2.1.4": + version: 2.2.0 + resolution: "tar-stream@npm:2.2.0" + dependencies: + bl: ^4.0.3 + end-of-stream: ^1.4.1 + fs-constants: ^1.0.0 + inherits: ^2.0.3 + readable-stream: ^3.1.1 + checksum: 699831a8b97666ef50021c767f84924cfee21c142c2eb0e79c63254e140e6408d6d55a065a2992548e72b06de39237ef2b802b99e3ece93ca3904a37622a66f3 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: ^5.0.1 + checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711 + languageName: node + linkType: hard + +"type-fest@npm:^2.13.0": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + +"widest-line@npm:^4.0.1": + version: 4.0.1 + resolution: "widest-line@npm:4.0.1" + dependencies: + string-width: ^5.0.1 + checksum: 64c48cf27171221be5f86fc54b94dd29879165bdff1a7aa92dde723d9a8c99fb108312768a5d62c8c2b80b701fa27bbd36a1ddc58367585cd45c0db7920a0cba + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard diff --git a/data/default.json b/data/default.json index 910d736f7..23e9769f3 100644 --- a/data/default.json +++ b/data/default.json @@ -1,5 +1,5 @@ { - "schemaVersion": 1, + "schemaVersion": 2, "configProperties": { "name": "default" }, diff --git a/package.json b/package.json index 7fbaf9707..1144a64a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "0.14.1", + "version": "0.14.3", "description": "Homarr - A homepage for your server.", "license": "MIT", "repository": { @@ -75,7 +75,6 @@ "axios": "^1.0.0", "bcryptjs": "^2.4.3", "better-sqlite3": "^8.6.0", - "browser-geo-tz": "^0.0.4", "consola": "^3.0.0", "cookies": "^0.8.0", "cookies-next": "^2.1.1", @@ -91,6 +90,10 @@ "html-entities": "^2.3.3", "i18next": "^22.5.1", "immer": "^10.0.2", + "js-file-download": "^0.4.12", + "mantine-react-table": "^1.3.4", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", "next": "13.4.12", "next-auth": "^4.23.0", "next-i18next": "^14.0.0", diff --git a/public/locales/cn/common.json b/public/locales/cn/common.json index 7115fbb72..13a736080 100644 --- a/public/locales/cn/common.json +++ b/public/locales/cn/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "宽度", "height": "高度" - } + }, + "public": "公开", + "restricted": "限制" } \ No newline at end of file diff --git a/public/locales/cn/layout/element-selector/selector.json b/public/locales/cn/layout/element-selector/selector.json index be4531c31..df4bd66fe 100644 --- a/public/locales/cn/layout/element-selector/selector.json +++ b/public/locales/cn/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "添加新磁贴", - "text": "磁贴是 Homarr 的主要组成元素。它们被用来显示你的应用程序和其他信息。您可以根据需要增加任意数量的磁贴。" - }, - "widgetDescription": "组件与您的应用交互,为您提供更多的应用程序控制。它们在使用前通常需要额外的配置。", - "goBack": "上一步", - "actionIcon": { - "tooltip": "添加磁贴" - }, - "apps": "应用", - "app": { - "defaultName": "您的应用" - }, - "widgets": "组件", - "categories": "分类", - "category": { - "newName": "新分类名称", - "defaultName": "新建分类", - "created": { - "title": "分类已创建", - "message": "已创建分类\"{{name}}\"" - } + "modal": { + "title": "添加新磁贴", + "text": "磁贴是 Homarr 的主要组成元素。它们被用来显示你的应用程序和其他信息。您可以根据需要增加任意数量的磁贴。" + }, + "widgetDescription": "组件与您的应用交互,为您提供更多的应用程序控制。它们在使用前通常需要额外的配置。", + "goBack": "上一步", + "actionIcon": { + "tooltip": "添加磁贴" + }, + "apps": "应用", + "app": { + "defaultName": "您的应用" + }, + "widgets": "组件", + "categories": "分类", + "category": { + "newName": "新分类名称", + "defaultName": "新建分类", + "created": { + "title": "分类已创建", + "message": "已创建分类\"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/cn/layout/header.json b/public/locales/cn/layout/header.json index 456a8a0aa..ca36fd850 100644 --- a/public/locales/cn/layout/header.json +++ b/public/locales/cn/layout/header.json @@ -11,9 +11,9 @@ "actions": { "avatar": { "switchTheme": "切换主题", - "preferences": "用户首选项", - "defaultBoard": "默认仪表盘", - "manage": "管理", + "preferences": "用户选项", + "defaultBoard": "默认面板", + "manage": "管理中心", "logout": "注销 {{username}}", "login": "登录" } diff --git a/public/locales/cn/layout/modals/about.json b/public/locales/cn/layout/modals/about.json index 7210ffadc..9e3c1673a 100644 --- a/public/locales/cn/layout/modals/about.json +++ b/public/locales/cn/layout/modals/about.json @@ -5,7 +5,7 @@ "key": "快捷键", "action": "操作", "keybinds": "热键绑定", - "translators": "翻译 ({{count}})", + "translators": "翻译者 ({{count}})", "translatorsDescription": "感谢这些人,Homarr 现已支持 {{languages}} 种语言!想要帮助将 Homarr 翻译成您的语言吗?请阅读此处了解如何执行此操作 。", "contributors": "贡献者 ({{count}})", "contributorsDescription": "这些人构建了让 homarr 工作的代码!想帮助建造 Homarr 吗?请阅读此处了解如何操作", diff --git a/public/locales/cn/manage/users.json b/public/locales/cn/manage/users.json index 75722cca3..b699c5d8a 100644 --- a/public/locales/cn/manage/users.json +++ b/public/locales/cn/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "用户", "pageTitle": "管理用户", - "text": "通过账号,您可以配置谁可以编辑您的面板。Homarr的未来版本将对权限和面板进行更精细地控制。", "buttons": { "create": "创建" }, + "filter": { + "roles": { + "all": "全部", + "normal": "普通", + "admin": "管理员", + "owner": "所有者" + } + }, "table": { "header": { - "user": "用户" + "user": "用户", + "email": "邮箱" } }, "tooltips": { diff --git a/public/locales/cn/manage/users/edit.json b/public/locales/cn/manage/users/edit.json new file mode 100644 index 000000000..a99c16272 --- /dev/null +++ b/public/locales/cn/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "用户 {{username}}", + "back": "返回用户管理", + "sections": { + "general": { + "title": "通用", + "inputs": { + "username": { + "label": "用户名" + }, + "eMail": { + "label": "邮箱" + } + } + }, + "security": { + "title": "安全", + "inputs": { + "password": { + "label": "新密码" + }, + "terminateExistingSessions": { + "label": "终止现有会话", + "description": "强制用户在其设备上重新登录" + }, + "confirm": { + "label": "确认", + "description": "密码将被更新。该操作不可撤销。" + } + } + }, + "roles": { + "title": "角色", + "currentRole": "当前角色: ", + "badges": { + "owner": "所有者", + "admin": "管理员", + "normal": "普通" + } + }, + "deletion": { + "title": "删除账号", + "inputs": { + "confirmUsername": { + "label": "确认用户名", + "description": "输入用户名以确认删除" + }, + "confirm": { + "label": "永久删除", + "description": "我知道此操作是永久性的,所有帐户数据都将丢失。" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/date.json b/public/locales/cn/modules/date.json index 361cd4127..dc533bbd3 100644 --- a/public/locales/cn/modules/date.json +++ b/public/locales/cn/modules/date.json @@ -4,6 +4,13 @@ "description": "显示当前的日期和时间。", "settings": { "title": "日期和时间组件设置", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "全时显示(24 小时)" }, @@ -13,18 +20,12 @@ "hide": "隐藏日期" } }, - "enableTimezone": { - "label": "显示自定义时区" - }, - "timezoneLocation": { - "label": "时区位置" - }, "titleState": { - "label": "城市名称", - "info": "如果激活时区选项,则可显示城市名称和时区代码。
您也可以只显示城市,甚至不显示。", + "label": "", + "info": "", "data": { - "both": "城市和时区", - "city": "仅城市", + "both": "", + "city": "", "none": "无" } } diff --git a/public/locales/cn/modules/smart-home/entity-state.json b/public/locales/cn/modules/smart-home/entity-state.json new file mode 100644 index 000000000..7ec5f18a0 --- /dev/null +++ b/public/locales/cn/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "未找到实体", + "descriptor": { + "name": "Home Assistant 实体", + "description": "Home Assistant 中实体的当前状态", + "settings": { + "title": "实体状态", + "entityId": { + "label": "实体 ID", + "info": "Home Assistant 中的唯一实体 ID。通过单击实体 > 单击齿轮图标 > 单击“实体 ID”处的复制按钮进行复制。某些自定义实体可能不受支持。" + }, + "displayName": { + "label": "显示名称" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/torrents-status.json b/public/locales/cn/modules/torrents-status.json index 21345f04c..9570a8696 100644 --- a/public/locales/cn/modules/torrents-status.json +++ b/public/locales/cn/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "正在下载", "name": "名称", + "dateAdded": "已添加到", "size": "大小", "download": "下载", "upload": "上传", "estimatedTimeOfArrival": "剩余时间", - "progress": "进度" + "progress": "进度", + "totalUploaded": "上传总量", + "totalDownloaded": "下载总量", + "ratio": "分享率", + "seeds": "种子数(已连接)", + "peers": "用户数(已连接)", + "label": "标签", + "state": "状态", + "stateMessage": "状态信息" }, "item": { "text": "由 {{appName}}, {{ratio}} 管理的比率" diff --git a/public/locales/cr/common.json b/public/locales/cr/common.json index eaab4b3d9..32b5e93db 100644 --- a/public/locales/cr/common.json +++ b/public/locales/cr/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "crwdns3910:0crwdne3910:0", "height": "crwdns3912:0crwdne3912:0" - } + }, + "public": "crwdns4034:0crwdne4034:0", + "restricted": "crwdns4036:0crwdne4036:0" } \ No newline at end of file diff --git a/public/locales/cr/layout/element-selector/selector.json b/public/locales/cr/layout/element-selector/selector.json index ca80fd9e1..19038f5f1 100644 --- a/public/locales/cr/layout/element-selector/selector.json +++ b/public/locales/cr/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "crwdns1989:0crwdne1989:0", - "text": "crwdns2293:0crwdne2293:0" - }, - "widgetDescription": "crwdns2295:0crwdne2295:0", - "goBack": "crwdns1995:0crwdne1995:0", - "actionIcon": { - "tooltip": "crwdns1997:0crwdne1997:0" - }, - "apps": "crwdns3231:0crwdne3231:0", - "app": { - "defaultName": "crwdns3233:0crwdne3233:0" - }, - "widgets": "crwdns3235:0crwdne3235:0", - "categories": "crwdns3237:0crwdne3237:0", - "category": { - "newName": "crwdns3239:0crwdne3239:0", - "defaultName": "crwdns3241:0crwdne3241:0", - "created": { - "title": "crwdns3243:0crwdne3243:0", - "message": "crwdns3245:0{{name}}crwdne3245:0" - } + "modal": { + "title": "crwdns1989:0crwdne1989:0", + "text": "crwdns2293:0crwdne2293:0" + }, + "widgetDescription": "crwdns2295:0crwdne2295:0", + "goBack": "crwdns1995:0crwdne1995:0", + "actionIcon": { + "tooltip": "crwdns1997:0crwdne1997:0" + }, + "apps": "crwdns3231:0crwdne3231:0", + "app": { + "defaultName": "crwdns3233:0crwdne3233:0" + }, + "widgets": "crwdns3235:0crwdne3235:0", + "categories": "crwdns3237:0crwdne3237:0", + "category": { + "newName": "crwdns3239:0crwdne3239:0", + "defaultName": "crwdns3241:0crwdne3241:0", + "created": { + "title": "crwdns3243:0crwdne3243:0", + "message": "crwdns3245:0{{name}}crwdne3245:0" } + }, + "importFromDocker": "crwdns4138:0crwdne4138:0" } diff --git a/public/locales/cr/manage/users.json b/public/locales/cr/manage/users.json index 2d7f1247b..7fd0a0bfa 100644 --- a/public/locales/cr/manage/users.json +++ b/public/locales/cr/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "crwdns3789:0crwdne3789:0", "pageTitle": "crwdns3791:0crwdne3791:0", - "text": "crwdns3793:0crwdne3793:0", "buttons": { "create": "crwdns3795:0crwdne3795:0" }, + "filter": { + "roles": { + "all": "crwdns4114:0crwdne4114:0", + "normal": "crwdns4116:0crwdne4116:0", + "admin": "crwdns4118:0crwdne4118:0", + "owner": "crwdns4120:0crwdne4120:0" + } + }, "table": { "header": { - "user": "crwdns3797:0crwdne3797:0" + "user": "crwdns3797:0crwdne3797:0", + "email": "crwdns4122:0crwdne4122:0" } }, "tooltips": { diff --git a/public/locales/cr/manage/users/edit.json b/public/locales/cr/manage/users/edit.json new file mode 100644 index 000000000..9c12e3ab2 --- /dev/null +++ b/public/locales/cr/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "crwdns4072:0{{username}}crwdne4072:0", + "back": "crwdns4074:0crwdne4074:0", + "sections": { + "general": { + "title": "crwdns4076:0crwdne4076:0", + "inputs": { + "username": { + "label": "crwdns4078:0crwdne4078:0" + }, + "eMail": { + "label": "crwdns4080:0crwdne4080:0" + } + } + }, + "security": { + "title": "crwdns4082:0crwdne4082:0", + "inputs": { + "password": { + "label": "crwdns4084:0crwdne4084:0" + }, + "terminateExistingSessions": { + "label": "crwdns4086:0crwdne4086:0", + "description": "crwdns4088:0crwdne4088:0" + }, + "confirm": { + "label": "crwdns4090:0crwdne4090:0", + "description": "crwdns4092:0crwdne4092:0" + } + } + }, + "roles": { + "title": "crwdns4094:0crwdne4094:0", + "currentRole": "crwdns4096:0crwdne4096:0", + "badges": { + "owner": "crwdns4098:0crwdne4098:0", + "admin": "crwdns4100:0crwdne4100:0", + "normal": "crwdns4102:0crwdne4102:0" + } + }, + "deletion": { + "title": "crwdns4104:0crwdne4104:0", + "inputs": { + "confirmUsername": { + "label": "crwdns4106:0crwdne4106:0", + "description": "crwdns4108:0crwdne4108:0" + }, + "confirm": { + "label": "crwdns4110:0crwdne4110:0", + "description": "crwdns4112:0crwdne4112:0" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/date.json b/public/locales/cr/modules/date.json index 164ecc1f4..5a31118b8 100644 --- a/public/locales/cr/modules/date.json +++ b/public/locales/cr/modules/date.json @@ -4,6 +4,13 @@ "description": "crwdns2341:0crwdne2341:0", "settings": { "title": "crwdns2343:0crwdne2343:0", + "timezone": { + "label": "crwdns4124:0crwdne4124:0", + "info": "crwdns4126:0crwdne4126:0" + }, + "customTitle": { + "label": "crwdns4128:0crwdne4128:0" + }, "display24HourFormat": { "label": "crwdns1430:0crwdne1430:0" }, @@ -13,18 +20,12 @@ "hide": "crwdns3057:0crwdne3057:0" } }, - "enableTimezone": { - "label": "crwdns3059:0crwdne3059:0" - }, - "timezoneLocation": { - "label": "crwdns3061:0crwdne3061:0" - }, "titleState": { - "label": "crwdns3063:0crwdne3063:0", - "info": "crwdns3065:0crwdne3065:0", + "label": "crwdns4130:0crwdne4130:0", + "info": "crwdns4132:0crwdne4132:0", "data": { - "both": "crwdns3067:0crwdne3067:0", - "city": "crwdns3069:0crwdne3069:0", + "both": "crwdns4134:0crwdne4134:0", + "city": "crwdns4136:0crwdne4136:0", "none": "crwdns3071:0crwdne3071:0" } } diff --git a/public/locales/cr/modules/smart-home/entity-state.json b/public/locales/cr/modules/smart-home/entity-state.json new file mode 100644 index 000000000..e0520f6db --- /dev/null +++ b/public/locales/cr/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "crwdns4038:0crwdne4038:0", + "descriptor": { + "name": "crwdns4040:0crwdne4040:0", + "description": "crwdns4042:0crwdne4042:0", + "settings": { + "title": "crwdns4044:0crwdne4044:0", + "entityId": { + "label": "crwdns4046:0crwdne4046:0", + "info": "crwdns4048:0crwdne4048:0" + }, + "displayName": { + "label": "crwdns4050:0crwdne4050:0" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/torrents-status.json b/public/locales/cr/modules/torrents-status.json index 12e166623..226de309c 100644 --- a/public/locales/cr/modules/torrents-status.json +++ b/public/locales/cr/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "crwdns4052:0crwdne4052:0", "name": "crwdns2225:0crwdne2225:0", + "dateAdded": "crwdns4054:0crwdne4054:0", "size": "crwdns2227:0crwdne2227:0", "download": "crwdns2229:0crwdne2229:0", "upload": "crwdns2231:0crwdne2231:0", "estimatedTimeOfArrival": "crwdns2233:0crwdne2233:0", - "progress": "crwdns2235:0crwdne2235:0" + "progress": "crwdns2235:0crwdne2235:0", + "totalUploaded": "crwdns4056:0crwdne4056:0", + "totalDownloaded": "crwdns4058:0crwdne4058:0", + "ratio": "crwdns4060:0crwdne4060:0", + "seeds": "crwdns4062:0crwdne4062:0", + "peers": "crwdns4064:0crwdne4064:0", + "label": "crwdns4066:0crwdne4066:0", + "state": "crwdns4068:0crwdne4068:0", + "stateMessage": "crwdns4070:0crwdne4070:0" }, "item": { "text": "crwdns2461:0{{appName}}crwdnd2461:0{{ratio}}crwdne2461:0" diff --git a/public/locales/cs/boards/common.json b/public/locales/cs/boards/common.json index a70db06bf..4246ae56d 100644 --- a/public/locales/cs/boards/common.json +++ b/public/locales/cs/boards/common.json @@ -1,5 +1,5 @@ { "header": { - "customize": "" + "customize": "Přizpůsobit plochu" } } \ No newline at end of file diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 065f41b13..30e248cb4 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -5,11 +5,11 @@ "about": "", "cancel": "", "close": "", - "back": "", + "back": "Zpět", "delete": "", "ok": "", "edit": "", - "next": "", + "next": "Další", "previous": "", "confirm": "", "enabled": "", @@ -44,12 +44,14 @@ }, "seeMore": "", "position": { - "left": "", + "left": "Vlevo", "center": "", - "right": "" + "right": "Vpravo" }, "attributes": { "width": "", "height": "" - } + }, + "public": "", + "restricted": "Omezené" } \ No newline at end of file diff --git a/public/locales/cs/layout/element-selector/selector.json b/public/locales/cs/layout/element-selector/selector.json index 6dd6ad716..3df5eeae2 100644 --- a/public/locales/cs/layout/element-selector/selector.json +++ b/public/locales/cs/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Přidat novou dlaždici", - "text": "Dlaždice jsou hlavním prvkem Homarru. Slouží k zobrazení Vašich aplikací a dalších informací. Můžete přidat libovolný počet dlaždic." - }, - "widgetDescription": "", - "goBack": "", - "actionIcon": { - "tooltip": "" - }, - "apps": "Aplikace", - "app": { - "defaultName": "" - }, - "widgets": "Widgety", - "categories": "Kategorie", - "category": { - "newName": "", - "defaultName": "", - "created": { - "title": "", - "message": "" - } + "modal": { + "title": "Přidat novou dlaždici", + "text": "Dlaždice jsou hlavním prvkem Homarru. Slouží k zobrazení Vašich aplikací a dalších informací. Můžete přidat libovolný počet dlaždic." + }, + "widgetDescription": "Widgety komunikují s vašimi aplikacemi, aby nad nimi poskytovaly větší kontrolu. Před použitím obvykle vyžadují další konfiguraci.", + "goBack": "Přejít zpět na předchozí stránku", + "actionIcon": { + "tooltip": "Přidat dlaždici" + }, + "apps": "Aplikace", + "app": { + "defaultName": "Vaše aplikace" + }, + "widgets": "Widgety", + "categories": "Kategorie", + "category": { + "newName": "Název nové kategorie", + "defaultName": "Nová kategorie", + "created": { + "title": "Kategorie vytvořena", + "message": "Kategorie \"{{name}}\" byla vytvořena" } + }, + "importFromDocker": "" } diff --git a/public/locales/cs/layout/manage.json b/public/locales/cs/layout/manage.json index 02262e724..f95356c1c 100644 --- a/public/locales/cs/layout/manage.json +++ b/public/locales/cs/layout/manage.json @@ -16,7 +16,7 @@ "help": { "title": "Nápověda", "items": { - "documentation": "", + "documentation": "Dokumentace", "report": "Nahlášení problému/chyby", "discord": "Komunitní Discord", "contribute": "Zapojte se" diff --git a/public/locales/cs/layout/modals/about.json b/public/locales/cs/layout/modals/about.json index 9a09c330d..835ce8ea8 100644 --- a/public/locales/cs/layout/modals/about.json +++ b/public/locales/cs/layout/modals/about.json @@ -1,6 +1,6 @@ { "description": "", - "addToDashboard": "", + "addToDashboard": "Přidat na plochu", "tip": "", "key": "", "action": "", diff --git a/public/locales/cs/layout/modals/add-app.json b/public/locales/cs/layout/modals/add-app.json index efadec3f7..807103a09 100644 --- a/public/locales/cs/layout/modals/add-app.json +++ b/public/locales/cs/layout/modals/add-app.json @@ -9,29 +9,29 @@ "general": { "appname": { "label": "Název aplikace", - "description": "" + "description": "Zobrazuje se s aplikací na ploše." }, "internalAddress": { - "label": "", - "description": "", + "label": "Interní adresa", + "description": "Interní IP adresa aplikace.", "troubleshoot": { "label": "Narazili jste na problém?", - "header": "", + "header": "Zde je seznam nejčastějších chyb a jejich řešení:", "lines": { - "nothingAfterPort": "", - "protocolCheck": "", - "preferIP": "", - "enablePings": "", - "wget": "", - "iframe": "", + "nothingAfterPort": "Ve většině případů, ne-li ve všech, byste za port neměli zadávat žádnou cestu. (Dokonce ani '/admin' pro pihole nebo '/web' pro plex)", + "protocolCheck": "Vždy se ujistěte, že na začátku URL je http nebo https a také se ujistěte, že používáte správnou předponu.", + "preferIP": "Doporučuje se používat přímo Ip adresu stroje nebo kontejneru, se kterým se snažíte komunikovat.", + "enablePings": "Zkontrolujte, zda je IP adresa správná, povolením pingů. Běžte do Přizpůsobení plochy -> Rozložení -> Povolit ping. Na dlaždicích aplikace se objeví malá červená nebo zelená bublina a po najetí na ni se zobrazí kód odpovědi (ve většině případů se očekává zelená bublina s kódem 200).", + "wget": "Chcete-li se ujistit, že homarr může komunikovat s ostatními aplikacemi, zkontrolujte, zda wget/curl/ping odpovídá IP adrese:portu aplikace.", + "iframe": "Pokud jde o iframe, ty by měly vždy používat stejný protokol (http/s) jako Homarr.", "clearCache": "" }, - "footer": "" + "footer": "Pro řešení dalších problémů se obraťte na náš {{discord}}." } }, "externalAddress": { - "label": "", - "description": "" + "label": "Veřejná adresa", + "description": "URL která bude otevřena po kliknutí na aplikaci." } }, "behaviour": { @@ -47,18 +47,18 @@ }, "network": { "statusChecker": { - "label": "", - "description": "" + "label": "Kontrola stavu", + "description": "Kontroluje, zda je aplikace online pomocí jednoduchého HTTP(S) požadavku." }, "statusCodes": { - "label": "", - "description": "" + "label": "Stavové kódy HTTP", + "description": "Stavové kódy HTTP, které jsou považovány jako online." } }, "appearance": { "icon": { - "label": "", - "description": "", + "label": "Ikona aplikace", + "description": "Začněte psát pro vyhledání ikony. Můžete také vložit adresu URL obrázku a použít vlastní ikonu.", "autocomplete": { "title": "", "text": "" @@ -69,38 +69,38 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Velikost písma názvu aplikace", + "description": "Nastavte velikost písma zobrazení názvu aplikace na dlaždici." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Stav názvu aplikace", + "description": "Zvolte, kde se má název zobrazit, pokud se vůbec má zobrazit.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Zobrazení názvu pouze na dlaždici", + "hover": "Zobrazení názvu pouze při najetí myší", + "hidden": "Nezobrazovat vůbec" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Pozice názvu aplikace", + "description": "Pozice názvu aplikace vzhledem k ikoně.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Nahoře", + "right": "Vpravo", + "bottom": "Dole", + "left": "Vlevo" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Řádky názvu aplikace", + "description": "Určuje, na kolik řádků se má maximálně vejít váš nadpis. Nastavte 0 pro neomezený počet." } }, "integration": { "type": { - "label": "", - "description": "", - "placeholder": "", + "label": "Nastavení propojení", + "description": "Konfigurace integrace, která bude použita pro připojení k vaší aplikaci.", + "placeholder": "Vyberte integraci", "defined": "", "undefined": "", "public": "", diff --git a/public/locales/cs/manage/boards.json b/public/locales/cs/manage/boards.json index d8910e1e0..0552c616b 100644 --- a/public/locales/cs/manage/boards.json +++ b/public/locales/cs/manage/boards.json @@ -8,22 +8,22 @@ "categories": "Kategorie" }, "buttons": { - "view": "" + "view": "Zobrazit plochu" }, "menu": { - "setAsDefault": "", + "setAsDefault": "Nastavit jako výchozí plochu", "delete": { - "label": "", - "disabled": "" + "label": "Trvale smazat", + "disabled": "Smazání je zakázáno, protože starší komponenty Homarru neumožňují smazání výchozí konfigurace. Smazání bude možné v budoucnu." } }, "badges": { - "fileSystem": "", - "default": "" + "fileSystem": "Souborový systém", + "default": "Výchozí" } }, "buttons": { - "create": "" + "create": "Vytvořit novou plochu" }, "modals": { "delete": { @@ -31,13 +31,13 @@ "text": "" }, "create": { - "title": "", - "text": "", + "title": "Vytvořit plochu", + "text": "Název nelze po vytvoření plochy změnit.", "form": { "name": { "label": "" }, - "submit": "" + "submit": "Vytvořit" } } } diff --git a/public/locales/cs/manage/users.json b/public/locales/cs/manage/users.json index d717de76c..a90eb3bba 100644 --- a/public/locales/cs/manage/users.json +++ b/public/locales/cs/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Uživatelé", "pageTitle": "Správa uživatelů", - "text": "", "buttons": { - "create": "" + "create": "Vytvořit" + }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } }, "table": { "header": { - "user": "Uživatel" + "user": "Uživatel", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/cs/manage/users/create.json b/public/locales/cs/manage/users/create.json index 846e81df7..ed6677683 100644 --- a/public/locales/cs/manage/users/create.json +++ b/public/locales/cs/manage/users/create.json @@ -1,25 +1,25 @@ { - "metaTitle": "", + "metaTitle": "Vytvořit uživatele", "steps": { "account": { - "title": "", + "title": "První krok", "text": "", "username": { "label": "" }, "email": { - "label": "" + "label": "E-mail" } }, "security": { - "title": "", + "title": "Druhý krok", "text": "", "password": { "label": "" } }, "finish": { - "title": "", + "title": "Potvrzení", "text": "", "card": { "title": "", @@ -30,7 +30,7 @@ "property": "", "value": "", "username": "", - "email": "", + "email": "E-mail", "password": "" }, "notSet": "", diff --git a/public/locales/cs/manage/users/edit.json b/public/locales/cs/manage/users/edit.json new file mode 100644 index 000000000..ec7c98fd3 --- /dev/null +++ b/public/locales/cs/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Obecné", + "inputs": { + "username": { + "label": "" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Trvale smazat", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/manage/users/invites.json b/public/locales/cs/manage/users/invites.json index ea4fc945a..11c354e8b 100644 --- a/public/locales/cs/manage/users/invites.json +++ b/public/locales/cs/manage/users/invites.json @@ -20,11 +20,11 @@ }, "modals": { "create": { - "title": "", - "description": "", + "title": "Vytvořit pozvánku", + "description": "Po vypršení platnosti pozvánka přestane být platná a příjemce pozvánky si nebude moci vytvořit účet.", "form": { - "expires": "", - "submit": "" + "expires": "Datum konce platnosti", + "submit": "Vytvořit" } }, "copy": { @@ -44,5 +44,5 @@ "description": "" } }, - "noInvites": "" + "noInvites": "Zatím zde nejsou žádné pozvánky." } \ No newline at end of file diff --git a/public/locales/cs/modules/bookmark.json b/public/locales/cs/modules/bookmark.json index 87bf684c7..c4691e3b2 100644 --- a/public/locales/cs/modules/bookmark.json +++ b/public/locales/cs/modules/bookmark.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Záložka", + "description": "Zobrazí statický seznam textů nebo odkazů", "settings": { "title": "", "name": { diff --git a/public/locales/cs/modules/calendar.json b/public/locales/cs/modules/calendar.json index 03c146c39..f91eed31e 100644 --- a/public/locales/cs/modules/calendar.json +++ b/public/locales/cs/modules/calendar.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Kalendář", + "description": "Zobrazí kalendář s nadcházejícími vydáními z podporovaných integrací.", "settings": { "title": "", "radarrReleaseType": { diff --git a/public/locales/cs/modules/dashdot.json b/public/locales/cs/modules/dashdot.json index 98f45c5c2..66228ced5 100644 --- a/public/locales/cs/modules/dashdot.json +++ b/public/locales/cs/modules/dashdot.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Dash.", + "description": "Zobrazuje grafy z externího Dash. Instance uvnitř Homarru.", "settings": { "title": "", "dashName": { @@ -82,7 +82,7 @@ } }, "card": { - "title": "", + "title": "Dash.", "errors": { "noService": "", "noInformation": "", diff --git a/public/locales/cs/modules/date.json b/public/locales/cs/modules/date.json index e8ca6f5e8..a6787c7af 100644 --- a/public/locales/cs/modules/date.json +++ b/public/locales/cs/modules/date.json @@ -1,9 +1,16 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Datum a čas", + "description": "Zobrazuje aktuální datum a čas.", "settings": { "title": "", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "" }, @@ -13,12 +20,6 @@ "hide": "" } }, - "enableTimezone": { - "label": "" - }, - "timezoneLocation": { - "label": "" - }, "titleState": { "label": "", "info": "", diff --git a/public/locales/cs/modules/dlspeed.json b/public/locales/cs/modules/dlspeed.json index 770488591..c034b3284 100644 --- a/public/locales/cs/modules/dlspeed.json +++ b/public/locales/cs/modules/dlspeed.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "" + "name": "Rychlost stahování", + "description": "Zobrazuje rychlost stahování a odesílání z podporovaných integrací." }, "card": { "table": { diff --git a/public/locales/cs/modules/dns-hole-controls.json b/public/locales/cs/modules/dns-hole-controls.json index 3bf25c924..deb82a48b 100644 --- a/public/locales/cs/modules/dns-hole-controls.json +++ b/public/locales/cs/modules/dns-hole-controls.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Ovládání DNS hole", + "description": "Ovládejte PiHole nebo AdGuard z plochy", "settings": { "title": "", "showToggleAllButtons": { diff --git a/public/locales/cs/modules/dns-hole-summary.json b/public/locales/cs/modules/dns-hole-summary.json index 50bc08c3c..86f2bfa63 100644 --- a/public/locales/cs/modules/dns-hole-summary.json +++ b/public/locales/cs/modules/dns-hole-summary.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Shrnutí DNS hole", + "description": "Zobrazuje důležitá data ze služby PiHole nebo AdGuard", "settings": { "title": "", "usePiHoleColors": { diff --git a/public/locales/cs/modules/iframe.json b/public/locales/cs/modules/iframe.json index cbd07acf7..93879b490 100644 --- a/public/locales/cs/modules/iframe.json +++ b/public/locales/cs/modules/iframe.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "iFrame", + "description": "Vložte jakýkoli obsah z internetu. Některé webové stránky mohou omezit přístup.", "settings": { "title": "", "embedUrl": { diff --git a/public/locales/cs/modules/media-requests-list.json b/public/locales/cs/modules/media-requests-list.json index bef8c144b..5904c0146 100644 --- a/public/locales/cs/modules/media-requests-list.json +++ b/public/locales/cs/modules/media-requests-list.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Žádosti o média", + "description": "Podívejte se na seznam všech požadavků na média z vaší instance Overseerr nebo Jellyseerr", "settings": { "title": "", "replaceLinksWithExternalHost": { diff --git a/public/locales/cs/modules/media-requests-stats.json b/public/locales/cs/modules/media-requests-stats.json index 8ad032e26..4ec55c171 100644 --- a/public/locales/cs/modules/media-requests-stats.json +++ b/public/locales/cs/modules/media-requests-stats.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Statistiky požadavků na média", + "description": "Statistiky vašich požadavků na média", "settings": { "title": "", "replaceLinksWithExternalHost": { diff --git a/public/locales/cs/modules/media-server.json b/public/locales/cs/modules/media-server.json index 16a686ef7..80a41cf27 100644 --- a/public/locales/cs/modules/media-server.json +++ b/public/locales/cs/modules/media-server.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Mediální server", - "description": "", + "description": "Interagujte se svým mediálním serverem Jellyfin nebo Plex", "settings": { "title": "" } diff --git a/public/locales/cs/modules/notebook.json b/public/locales/cs/modules/notebook.json index 69b88092c..4bd1c9a93 100644 --- a/public/locales/cs/modules/notebook.json +++ b/public/locales/cs/modules/notebook.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Zápisník", + "description": "Interaktivní widget založený na Markdownu, do kterého si můžete zapisovat poznámky!", "settings": { "title": "", "showToolbar": { diff --git a/public/locales/cs/modules/rss.json b/public/locales/cs/modules/rss.json index 32b2b7889..8755e2736 100644 --- a/public/locales/cs/modules/rss.json +++ b/public/locales/cs/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "RSS Widget", + "description": "RSS widget umožňuje zobrazit RSS kanály na vaší nástěnce.", "settings": { "title": "", "rssFeedUrl": { diff --git a/public/locales/cs/modules/smart-home/entity-state.json b/public/locales/cs/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/cs/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/torrents-status.json b/public/locales/cs/modules/torrents-status.json index 4d700fe75..0588402eb 100644 --- a/public/locales/cs/modules/torrents-status.json +++ b/public/locales/cs/modules/torrents-status.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Torrenty", + "description": "Zobrazuje seznam torrentů z podporovaných klientů Torrent.", "settings": { "title": "", "refreshInterval": { @@ -36,17 +36,27 @@ "footer": { "error": "", "lastUpdated": "Naposledy aktualizováno před {{time}}", - "ratioGlobal": "Globální poměr", + "ratioGlobal": "Obecný poměr", "ratioWithFilter": "Filtrovaný poměr" }, "table": { "header": { + "isCompleted": "", "name": "", + "dateAdded": "", "size": "", "download": "", "upload": "", "estimatedTimeOfArrival": "", - "progress": "" + "progress": "", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "", + "stateMessage": "" }, "item": { "text": "" diff --git a/public/locales/cs/modules/usenet.json b/public/locales/cs/modules/usenet.json index dfe4e1e86..b94cbc949 100644 --- a/public/locales/cs/modules/usenet.json +++ b/public/locales/cs/modules/usenet.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "" + "name": "Usenet", + "description": "Umožňuje zobrazit a spravovat instanci Usenetu." }, "card": { "errors": { diff --git a/public/locales/cs/modules/video-stream.json b/public/locales/cs/modules/video-stream.json index 539daa1c4..62e7c6631 100644 --- a/public/locales/cs/modules/video-stream.json +++ b/public/locales/cs/modules/video-stream.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Streamování videa", + "description": "Vložte video stream nebo video z kamery nebo webové stránky", "settings": { "title": "", "FeedUrl": { diff --git a/public/locales/cs/modules/weather.json b/public/locales/cs/modules/weather.json index 9e52e237f..af5c028ce 100644 --- a/public/locales/cs/modules/weather.json +++ b/public/locales/cs/modules/weather.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Počasí", + "description": "Zobrazuje aktuální informace o počasí na nastaveném místě.", "settings": { "title": "", "displayInFahrenheit": { diff --git a/public/locales/cs/tools/docker.json b/public/locales/cs/tools/docker.json index 54e726b73..722854510 100644 --- a/public/locales/cs/tools/docker.json +++ b/public/locales/cs/tools/docker.json @@ -2,18 +2,18 @@ "title": "", "alerts": { "notConfigured": { - "text": "" + "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." } }, "modals": { "selectBoard": { - "title": "", - "text": "", + "title": "Vyberte plochu", + "text": "Vyberte plochu, na kterou chcete přidat aplikace pro vybrané Docker kontejnery.", "form": { "board": { - "label": "" + "label": "Plocha" }, - "submit": "" + "submit": "Přidat aplikace" } } }, diff --git a/public/locales/cs/user/preferences.json b/public/locales/cs/user/preferences.json index 6c0e93d28..11fe31f96 100644 --- a/public/locales/cs/user/preferences.json +++ b/public/locales/cs/user/preferences.json @@ -1,48 +1,48 @@ { - "metaTitle": "", - "pageTitle": "", + "metaTitle": "Předvolby", + "pageTitle": "Vaše předvolby", "boards": { "defaultBoard": { - "label": "" + "label": "Výchozí plocha" } }, "accessibility": { "title": "", "disablePulse": { - "label": "", - "description": "" + "label": "Vypnout pulsování pingu", + "description": "Ve výchozím nastavení budou indikátory pingu v Homarru pulzovat. To může být dráždivé. Tento posuvník deaktivuje animaci" }, "replaceIconsWithDots": { - "label": "", - "description": "" + "label": "Nahraďte tečky pingu ikonami", + "description": "Pro barvoslepé uživatele mohou být body pingu nerozpoznatelné. Toto nahradí indikátory ikonami" } }, "localization": { "language": { - "label": "" + "label": "Jazyk" }, "firstDayOfWeek": { - "label": "", + "label": "První den v týdnu", "options": { - "monday": "", - "saturday": "", - "sunday": "" + "monday": "Pondělí", + "saturday": "Sobota", + "sunday": "Neděle" } } }, "searchEngine": { - "title": "", - "custom": "", + "title": "Vyhledávač", + "custom": "Vlastní", "newTab": { - "label": "" + "label": "Otevřít výsledky hledání v nové záložce" }, "autoFocus": { - "label": "", - "description": "" + "label": "Zaměřit na vyhledávací panel po načtení stránky.", + "description": "Při přechodu na stránky plochy se automaticky zaměří vyhledávací panel. Funguje pouze na stolních počítačích." }, "template": { - "label": "", - "description": "" + "label": "Adresa URL dotazu", + "description": "Použijte %s jako zástupný znak pro dotaz" } } } \ No newline at end of file diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 7cb274d47..af6f64a58 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Bredde", "height": "Højde" - } + }, + "public": "Offentlig", + "restricted": "Begrænset" } \ No newline at end of file diff --git a/public/locales/da/layout/element-selector/selector.json b/public/locales/da/layout/element-selector/selector.json index 42ea40ebd..d0e7476b8 100644 --- a/public/locales/da/layout/element-selector/selector.json +++ b/public/locales/da/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Tilføj et nyt felt", - "text": "Felter er det vigtigste element i Homarr. De bruges til at vise dine apps og andre oplysninger. Du kan tilføje så mange felter, som du ønsker." - }, - "widgetDescription": "Widgets interagerer med dine apps for at give dig mere kontrol over dine programmer. De kræver normalt nogle få konfigurationer, før de kan bruges.", - "goBack": "Gå tilbage til det forrige trin", - "actionIcon": { - "tooltip": "Tilføj et felt" - }, - "apps": "Apps", - "app": { - "defaultName": "Din app" - }, - "widgets": "Widgets", - "categories": "Kategorier", - "category": { - "newName": "Navn på ny kategori", - "defaultName": "Ny kategori", - "created": { - "title": "Kategorien er oprettet", - "message": "Kategorien \"{{name}}\" er blevet oprettet" - } + "modal": { + "title": "Tilføj et nyt felt", + "text": "Felter er det vigtigste element i Homarr. De bruges til at vise dine apps og andre oplysninger. Du kan tilføje så mange felter, som du ønsker." + }, + "widgetDescription": "Widgets interagerer med dine apps for at give dig mere kontrol over dine programmer. De kræver normalt nogle få konfigurationer, før de kan bruges.", + "goBack": "Gå tilbage til det forrige trin", + "actionIcon": { + "tooltip": "Tilføj et felt" + }, + "apps": "Apps", + "app": { + "defaultName": "Din app" + }, + "widgets": "Widgets", + "categories": "Kategorier", + "category": { + "newName": "Navn på ny kategori", + "defaultName": "Ny kategori", + "created": { + "title": "Kategorien er oprettet", + "message": "Kategorien \"{{name}}\" er blevet oprettet" } + }, + "importFromDocker": "Importer fra docker" } diff --git a/public/locales/da/manage/users.json b/public/locales/da/manage/users.json index 578b429ed..9f647d494 100644 --- a/public/locales/da/manage/users.json +++ b/public/locales/da/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Brugere", "pageTitle": "Administrér brugere", - "text": "Ved hjælp af brugere kan du konfigurere, hvem der kan redigere dine dashboards. Fremtidige versioner af Homarr vil have endnu mere detaljeret kontrol over tilladelser og tavler.", "buttons": { "create": "Opret" }, + "filter": { + "roles": { + "all": "Alle", + "normal": "Normal", + "admin": "Admin", + "owner": "Ejer" + } + }, "table": { "header": { - "user": "Bruger" + "user": "Bruger", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/da/manage/users/edit.json b/public/locales/da/manage/users/edit.json new file mode 100644 index 000000000..cadcfedc9 --- /dev/null +++ b/public/locales/da/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Bruger {{username}}", + "back": "Tilbage til brugeradministration", + "sections": { + "general": { + "title": "Generelt", + "inputs": { + "username": { + "label": "Brugernavn" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "Sikkerhed", + "inputs": { + "password": { + "label": "Nyt kodeord" + }, + "terminateExistingSessions": { + "label": "Afslut eksisterende sessioner", + "description": "Tvinger brugeren til at logge ind igen på deres enheder" + }, + "confirm": { + "label": "Bekræft", + "description": "Adgangskoden vil blive opdateret. Handlingen kan ikke fortrydes." + } + } + }, + "roles": { + "title": "Roller", + "currentRole": "Nuværende rolle: ", + "badges": { + "owner": "Ejer", + "admin": "Admin", + "normal": "Normal" + } + }, + "deletion": { + "title": "Sletning af konto", + "inputs": { + "confirmUsername": { + "label": "Bekræft brugernavn", + "description": "Indtast brugernavn for at bekræfte sletningen" + }, + "confirm": { + "label": "Slet permanent", + "description": "Jeg er klar over, at denne handling er permanent, og alle kontodata vil gå tabt." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/modules/date.json b/public/locales/da/modules/date.json index 0256a6efa..6ebc20653 100644 --- a/public/locales/da/modules/date.json +++ b/public/locales/da/modules/date.json @@ -4,6 +4,13 @@ "description": "Viser aktuel dag og klokkeslæt.", "settings": { "title": "Indstillinger for dato og tid widget", + "timezone": { + "label": "Tidszone", + "info": "Vælg navnet på din tidszone, find din her: " + }, + "customTitle": { + "label": "Bynavn eller tilpasset titel" + }, "display24HourFormat": { "label": "Vis fuld tid (24-timer)" }, @@ -13,18 +20,12 @@ "hide": "Skjul dato" } }, - "enableTimezone": { - "label": "Vis en brugerdefineret tidszone" - }, - "timezoneLocation": { - "label": "Tidszone Lokation" - }, "titleState": { - "label": "Byens titel", - "info": "Hvis du aktiverer indstillingen Tidszone, kan du få vist navnet på byen og tidszonekoden.
Du kan også vise byen alene eller slet ikke vise noget.", + "label": "Urets titel", + "info": "Den tilpassede titel og tidszonekoden kan vises på din widget.
Du kan også vise byen alene, vise ingen,
eller endda vise tidszonen alene, når begge er valgt, men ingen titel er angivet.", "data": { - "both": "By og tidszone", - "city": "Kun by", + "both": "Titel og tidszone", + "city": "Kun titel", "none": "Intet" } } diff --git a/public/locales/da/modules/smart-home/entity-state.json b/public/locales/da/modules/smart-home/entity-state.json new file mode 100644 index 000000000..b9d378b63 --- /dev/null +++ b/public/locales/da/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entitet blev ikke fundet", + "descriptor": { + "name": "Home Assistant entitet", + "description": "Aktuel tilstand for en entitet i Home Assistant", + "settings": { + "title": "Entitet tilstand", + "entityId": { + "label": "Entitet ID", + "info": "Unikt entitets-id i Home Assistant. Kopier ved at klikke på entitet > Klik på tandhjulsikon > Klik på kopieringsknappen ved 'Entitets-ID'. Nogle brugerdefinerede entiteter understøttes muligvis ikke." + }, + "displayName": { + "label": "Visningsnavn" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/modules/torrents-status.json b/public/locales/da/modules/torrents-status.json index 94d83f495..0e00e3bbd 100644 --- a/public/locales/da/modules/torrents-status.json +++ b/public/locales/da/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Downloader", "name": "Navn", + "dateAdded": "Tilføjet den", "size": "Størrelse", "download": "Down", "upload": "Up", "estimatedTimeOfArrival": "ETA", - "progress": "Fremskridt" + "progress": "Fremskridt", + "totalUploaded": "Samlet upload", + "totalDownloaded": "Samlet download", + "ratio": "Delingsforhold", + "seeds": "Seeds (forbundet)", + "peers": "Peers (forbundet)", + "label": "Etiket", + "state": "Tilstand", + "stateMessage": "Tilstandsbesked" }, "item": { "text": "Administreret af {{appName}}, {{ratio}} ratio" diff --git a/public/locales/de/common.json b/public/locales/de/common.json index a43767043..1d4f442ab 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Breite", "height": "Höhe" - } + }, + "public": "Öffentlich sichtbar", + "restricted": "Eingeschränkt" } \ No newline at end of file diff --git a/public/locales/de/layout/element-selector/selector.json b/public/locales/de/layout/element-selector/selector.json index 7659b48ee..38bf860d8 100644 --- a/public/locales/de/layout/element-selector/selector.json +++ b/public/locales/de/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Neue Kachel hinzufügen", - "text": "Kacheln sind das Hauptelement von Homarr. Sie werden verwendet, um Ihre Anwendungen und andere Informationen anzuzeigen. Sie können so viele Kacheln hinzufügen, wie Sie möchten." - }, - "widgetDescription": "Widgets interagieren mit Ihren Anwendungen, um Ihnen mehr Kontrolle über sie zu geben. Sie erfordern in der Regel eine zusätzliche Konfiguration vor der Verwendung.", - "goBack": "Zurück auf die vorherige Seite", - "actionIcon": { - "tooltip": "Kachel hinzufügen" - }, - "apps": "Apps", - "app": { - "defaultName": "Ihre Apps" - }, - "widgets": "Widgets", - "categories": "Kategorien", - "category": { - "newName": "Name der Kategorie", - "defaultName": "Neue Kategorie", - "created": { - "title": "Kategorie erstellt", - "message": "Die Kategorie \"{{name}}\" wurde erstellt" - } + "modal": { + "title": "Neue Kachel hinzufügen", + "text": "Kacheln sind das Hauptelement von Homarr. Sie werden verwendet, um Ihre Anwendungen und andere Informationen anzuzeigen. Sie können so viele Kacheln hinzufügen, wie Sie möchten." + }, + "widgetDescription": "Widgets interagieren mit Ihren Anwendungen, um Ihnen mehr Kontrolle über sie zu geben. Sie erfordern in der Regel eine zusätzliche Konfiguration vor der Verwendung.", + "goBack": "Zurück auf die vorherige Seite", + "actionIcon": { + "tooltip": "Kachel hinzufügen" + }, + "apps": "Apps", + "app": { + "defaultName": "Ihre Apps" + }, + "widgets": "Widgets", + "categories": "Kategorien", + "category": { + "newName": "Name der Kategorie", + "defaultName": "Neue Kategorie", + "created": { + "title": "Kategorie erstellt", + "message": "Die Kategorie \"{{name}}\" wurde erstellt" } + }, + "importFromDocker": "Aus Docker importieren" } diff --git a/public/locales/de/manage/users.json b/public/locales/de/manage/users.json index 8e104a643..460f6ab3d 100644 --- a/public/locales/de/manage/users.json +++ b/public/locales/de/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Benutzer", "pageTitle": "Verwaltung von Benutzern", - "text": "Mit Benutzern können Sie konfigurieren, wer Ihre Dashboards bearbeiten kann. Zukünftige Versionen von Homarr werden eine noch detailliertere Kontrolle über Berechtigungen und Boards haben.", "buttons": { "create": "Erstellen" }, + "filter": { + "roles": { + "all": "Alle", + "normal": "Normal", + "admin": "Admin", + "owner": "Eigentümer" + } + }, "table": { "header": { - "user": "Benutzer" + "user": "Benutzer", + "email": "E-Mail" } }, "tooltips": { diff --git a/public/locales/de/manage/users/edit.json b/public/locales/de/manage/users/edit.json new file mode 100644 index 000000000..392807ad0 --- /dev/null +++ b/public/locales/de/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Benutzer {{username}}", + "back": "Zurück zur Benutzerverwaltung", + "sections": { + "general": { + "title": "Allgemein", + "inputs": { + "username": { + "label": "Benutzername" + }, + "eMail": { + "label": "E-Mail" + } + } + }, + "security": { + "title": "Sicherheit", + "inputs": { + "password": { + "label": "Neues Passwort" + }, + "terminateExistingSessions": { + "label": "Beenden Sie bestehende Sitzungen", + "description": "Erzwingt die erneute Anmeldung des Benutzers auf seinen Geräten" + }, + "confirm": { + "label": "Bestätigen", + "description": "Das Passwort wird aktualisiert. Diese Aktion kann nicht rückgängig gemacht werden." + } + } + }, + "roles": { + "title": "Rollen", + "currentRole": "Aktuelle Rolle: ", + "badges": { + "owner": "Eigentümer", + "admin": "Admin", + "normal": "Normal" + } + }, + "deletion": { + "title": "Löschung des Kontos", + "inputs": { + "confirmUsername": { + "label": "Benutzername bestätigen", + "description": "Geben Sie den Benutzernamen ein, um die Löschung zu bestätigen" + }, + "confirm": { + "label": "Dauerhaft löschen", + "description": "Ich bin mir bewusst, dass diese Maßnahme dauerhaft ist und alle Kontodaten im Zuge dessen verloren gehen." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/date.json b/public/locales/de/modules/date.json index c87a9f808..690c7d404 100644 --- a/public/locales/de/modules/date.json +++ b/public/locales/de/modules/date.json @@ -4,6 +4,13 @@ "description": "Zeigt das aktuelle Datum und die Uhrzeit an.", "settings": { "title": "\"Datum und Uhrzeit\" Widget Einstellungen", + "timezone": { + "label": "Zeitzone", + "info": "Wählen Sie den Namen Ihrer Zeitzone, Ihre finden Sie hier: " + }, + "customTitle": { + "label": "Name der Stadt oder benutzerdefinierter Name" + }, "display24HourFormat": { "label": "24-Stunden Format" }, @@ -13,18 +20,12 @@ "hide": "Daten ausblenden" } }, - "enableTimezone": { - "label": "Benutzerdefinierte Zeitzone anzeigen" - }, - "timezoneLocation": { - "label": "Standort der Zeitzone" - }, "titleState": { - "label": "Stadt", - "info": "Wenn Sie die Zeitzonen Option aktivieren, können der Name der Stadt und die Zeitzone angezeigt werden.
Sie können auch nur die Stadt oder gar nichts davon anzeigen lassen.", + "label": "Titel der Uhr", + "info": "Der benutzerdefinierte Name und der Zeitzonencode können auf Ihrem Widget angezeigt werden.
Sie können auch nur die Stadt anzeigen, keine anzeigen,
oder sogar nur die Zeitzone anzeigen, wenn beide ausgewählt sind, aber kein Titel angegeben wird.", "data": { - "both": "Stadt und Zeitzone", - "city": "Nur Stadt", + "both": "Name und Zeitzone", + "city": "Nur Name", "none": "Keine" } } diff --git a/public/locales/de/modules/smart-home/entity-state.json b/public/locales/de/modules/smart-home/entity-state.json new file mode 100644 index 000000000..2cee8a126 --- /dev/null +++ b/public/locales/de/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Eintrag nicht gefunden", + "descriptor": { + "name": "Home Assistant Eintrag", + "description": "Aktueller Status eines Eintrags in Home Assistant", + "settings": { + "title": "Zustand des Eintrags", + "entityId": { + "label": "Eintrag-ID", + "info": "Eindeutige Eintrag-ID im Home Assistant. Kopieren durch Anklicken von Eintrag > Anklicken des Zahnradsymbols > Anklicken der Schaltfläche \"Kopieren\" bei \"Eintrag-ID\". Einige benutzerdefinierte Einträge werden möglicherweise nicht unterstützt." + }, + "displayName": { + "label": "Anzeigename" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/torrents-status.json b/public/locales/de/modules/torrents-status.json index fc8a201f0..9effe7066 100644 --- a/public/locales/de/modules/torrents-status.json +++ b/public/locales/de/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Herunterladen", "name": "Name", + "dateAdded": "Hinzugefügt am", "size": "Größe", "download": "Down", "upload": "Up", "estimatedTimeOfArrival": "Voraussichtlicher Abschluss", - "progress": "Fortschritt" + "progress": "Fortschritt", + "totalUploaded": "Upload gesamt", + "totalDownloaded": "Download gesamt", + "ratio": "Verhältnis", + "seeds": "Seeds (verbunden)", + "peers": "Peers (Verbunden)", + "label": "Kategorie", + "state": "Staat", + "stateMessage": "Statusmeldung" }, "item": { "text": "Verwaltet von {{appName}}, {{ratio}} ratio" diff --git a/public/locales/el/common.json b/public/locales/el/common.json index 3f3b132c9..e05f3c470 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Πλάτος", "height": "Ύψος" - } + }, + "public": "Δημόσιο", + "restricted": "Περιορισμένη πρόσβαση" } \ No newline at end of file diff --git a/public/locales/el/layout/element-selector/selector.json b/public/locales/el/layout/element-selector/selector.json index cc9a85737..9ac93dc2b 100644 --- a/public/locales/el/layout/element-selector/selector.json +++ b/public/locales/el/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Προσθήκη νέου πλακιδίου", - "text": "Τα πλακάκια είναι το κύριο στοιχείο του Homarr. Χρησιμοποιούνται για την εμφάνιση των εφαρμογών σας και άλλων πληροφοριών. Μπορείτε να προσθέσετε όσα πλακίδια θέλετε." - }, - "widgetDescription": "Τα widgets αλληλεπιδρούν με τις εφαρμογές σας, για να σας παρέχουν περισσότερο έλεγχο των εφαρμογών σας. Συνήθως απαιτούν πρόσθετες ρυθμίσεις πριν από τη χρήση.", - "goBack": "Επιστροφή στο προηγούμενο βήμα", - "actionIcon": { - "tooltip": "Προσθέστε ένα πλακίδιο" - }, - "apps": "Εφαρμογές", - "app": { - "defaultName": "Η Εφαρμογή Σας" - }, - "widgets": "Widgets", - "categories": "Κατηγορίες", - "category": { - "newName": "Όνομα νέας κατηγορίας", - "defaultName": "Νέα Κατηγορία", - "created": { - "title": "Η κατηγορία δημιουργήθηκε", - "message": "Η κατηγορία \"{{name}}\" έχει δημιουργηθεί" - } + "modal": { + "title": "Προσθήκη νέου πλακιδίου", + "text": "Τα πλακάκια είναι το κύριο στοιχείο του Homarr. Χρησιμοποιούνται για την εμφάνιση των εφαρμογών σας και άλλων πληροφοριών. Μπορείτε να προσθέσετε όσα πλακίδια θέλετε." + }, + "widgetDescription": "Τα widgets αλληλεπιδρούν με τις εφαρμογές σας, για να σας παρέχουν περισσότερο έλεγχο των εφαρμογών σας. Συνήθως απαιτούν πρόσθετες ρυθμίσεις πριν από τη χρήση.", + "goBack": "Επιστροφή στο προηγούμενο βήμα", + "actionIcon": { + "tooltip": "Προσθέστε ένα πλακίδιο" + }, + "apps": "Εφαρμογές", + "app": { + "defaultName": "Η Εφαρμογή Σας" + }, + "widgets": "Widgets", + "categories": "Κατηγορίες", + "category": { + "newName": "Όνομα νέας κατηγορίας", + "defaultName": "Νέα Κατηγορία", + "created": { + "title": "Η κατηγορία δημιουργήθηκε", + "message": "Η κατηγορία \"{{name}}\" έχει δημιουργηθεί" } + }, + "importFromDocker": "" } diff --git a/public/locales/el/manage/users.json b/public/locales/el/manage/users.json index 196ed572c..96f4a5722 100644 --- a/public/locales/el/manage/users.json +++ b/public/locales/el/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Χρήστες", "pageTitle": "Διαχείριση χρηστών", - "text": "Χρησιμοποιώντας τους χρήστες, μπορείτε να ρυθμίσετε ποιος μπορεί να επεξεργάζεται τους πίνακές σας. Οι μελλοντικές εκδόσεις του Homarr θα έχουν ακόμα πιο λεπτομερή έλεγχο των δικαιωμάτων και των πινάκων.", "buttons": { "create": "Δημιουργία" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Χρήστης" + "user": "Χρήστης", + "email": "E-Mail" } }, "tooltips": { diff --git a/public/locales/el/manage/users/edit.json b/public/locales/el/manage/users/edit.json new file mode 100644 index 000000000..ed92c187f --- /dev/null +++ b/public/locales/el/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Γενικά", + "inputs": { + "username": { + "label": "Όνομα Χρήστη" + }, + "eMail": { + "label": "E-Mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Επιβεβαίωση", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Οριστική διαγραφή", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/modules/date.json b/public/locales/el/modules/date.json index 6c9e71f2e..ee956fedd 100644 --- a/public/locales/el/modules/date.json +++ b/public/locales/el/modules/date.json @@ -4,6 +4,13 @@ "description": "Εμφανίζει την τρέχουσα ημερομηνία και ώρα.", "settings": { "title": "Ρυθμίσεις για το widget ημερομηνίας και ώρας", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Εμφάνιση πλήρης ώρας(24-ώρο)" }, @@ -13,18 +20,12 @@ "hide": "Απόκρυψη Ημερομηνίας" } }, - "enableTimezone": { - "label": "Εμφάνιση προσαρμοσμένης ζώνης ώρας" - }, - "timezoneLocation": { - "label": "Τοποθεσία Ζώνης Ώρας" - }, "titleState": { - "label": "Τίτλος πόλης", - "info": "Σε περίπτωση που ενεργοποιήσετε την επιλογή Ζώνη Ώρας, μπορεί να εμφανιστεί το όνομα της πόλης και ο κωδικός ζώνης ώρας.
Μπορείτε επίσης να δείξετε την πόλη μόνο ή ακόμη και να μη δείξετε τίποτα.", + "label": "", + "info": "", "data": { - "both": "Πόλη και ζώνη ώρας", - "city": "Πόλη μόνο", + "both": "", + "city": "", "none": "Κανένα" } } diff --git a/public/locales/el/modules/smart-home/entity-state.json b/public/locales/el/modules/smart-home/entity-state.json new file mode 100644 index 000000000..16ee484da --- /dev/null +++ b/public/locales/el/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Η οντότητα δε βρέθηκε", + "descriptor": { + "name": "Οντότητα Home Assistant", + "description": "Τρέχουσα κατάσταση μιας οντότητας στο Home Assistant", + "settings": { + "title": "Κατάσταση οντότητας", + "entityId": { + "label": "Αναγνωριστικό οντότητας", + "info": "Μοναδικό αναγνωριστικό οντότητας στο Home Assistant. Αντιγράψτε κάνοντας κλικ στην οντότητα > Κάντε κλικ στο εικονίδιο με το γρανάζι > Κάντε κλικ στο κουμπί αντιγραφής στο 'Αναγνωριστικό οντότητας'. Ορισμένες προσαρμοσμένες οντότητες ενδέχεται να μην υποστηρίζονται." + }, + "displayName": { + "label": "Εμφανιζόμενο όνομα" + } + } + } +} \ 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 f3828f9b1..2436f3a9a 100644 --- a/public/locales/el/modules/torrents-status.json +++ b/public/locales/el/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Λήψη", "name": "Όνομα", + "dateAdded": "Προστέθηκε στις", "size": "Μέγεθος", "download": "Κάτω", "upload": "Πάνω", "estimatedTimeOfArrival": "Εκτιμώμενος χρόνος αναμονής", - "progress": "Πρόοδος" + "progress": "Πρόοδος", + "totalUploaded": "Συνολική Μεταφόρτωση", + "totalDownloaded": "Συνολικές λήψεις", + "ratio": "Αναλογία", + "seeds": "Seeds (Συνδεδεμένοι)", + "peers": "Peers (Συνδεδεμένοι)", + "label": "Ετικέτα", + "state": "Κατάσταση", + "stateMessage": "Μήνυμα Κατάστασης" }, "item": { "text": "Διαχειρίζεται από {{appName}}, {{ratio}} αναλογία" diff --git a/public/locales/en/manage/users.json b/public/locales/en/manage/users.json index 576f072a6..5e016c946 100644 --- a/public/locales/en/manage/users.json +++ b/public/locales/en/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Users", "pageTitle": "Manage users", - "text": "Using users, you can configure who can edit your dashboards. Future versions of Homarr will have even more granular control over permissions and boards.", "buttons": { "create": "Create" }, + "filter": { + "roles": { + "all": "All", + "normal": "Normal", + "admin": "Admin", + "owner": "Owner" + } + }, "table": { "header": { - "user": "User" + "user": "User", + "email": "E-Mail" } }, "tooltips": { diff --git a/public/locales/en/manage/users/edit.json b/public/locales/en/manage/users/edit.json new file mode 100644 index 000000000..543853b5b --- /dev/null +++ b/public/locales/en/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "User {{username}}", + "back": "Back to user management", + "sections": { + "general": { + "title": "General", + "inputs": { + "username": { + "label": "Username" + }, + "eMail": { + "label": "E-Mail" + } + } + }, + "security": { + "title": "Security", + "inputs": { + "password": { + "label": "New password" + }, + "terminateExistingSessions": { + "label": "Terminate existing sessions", + "description": "Forces user to log in again on their devices" + }, + "confirm": { + "label": "Confirm", + "description": "Password will be updated. Action cannot be reverted." + } + } + }, + "roles": { + "title": "Roles", + "currentRole": "Current role: ", + "badges": { + "owner": "Owner", + "admin": "Admin", + "normal": "Normal" + } + }, + "deletion": { + "title": "Account deletion", + "inputs": { + "confirmUsername": { + "label": "Confirm username", + "description": "Type username to confirm deletion" + }, + "confirm": { + "label": "Delete permanently", + "description": "I am aware that this action is permanent and all account data will be lost." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/modules/date.json b/public/locales/en/modules/date.json index 1a9e36efc..5dc6c0572 100644 --- a/public/locales/en/modules/date.json +++ b/public/locales/en/modules/date.json @@ -4,6 +4,13 @@ "description": "Displays the current date and time.", "settings": { "title": "Settings for Date and Time widget", + "timezone":{ + "label":"Timezone", + "info":"Select the name of your timezone, find yours here: " + }, + "customTitle":{ + "label":"City name or custom title" + }, "display24HourFormat": { "label": "Display full time (24-hour)" }, @@ -13,18 +20,12 @@ "hide": "Hide Date" } }, - "enableTimezone": { - "label": "Display a custom Timezone" - }, - "timezoneLocation": { - "label": "Timezone Location" - }, "titleState": { - "label": "City title", - "info": "In case you activate the Timezone option, the name of the city and the timezone code can be shown.
You can also show the city alone or even show none.", + "label": "Clock title", + "info": "The custom title and the timezone code can be shown on your widget.
You can also show the city alone, show none,
or even show the timezone alone when both are selected but no title is provided.", "data": { - "both": "City and Timezone", - "city": "City only", + "both": "Title and Timezone", + "city": "Title only", "none": "None" } } diff --git a/public/locales/en/modules/smart-home/entity-state.json b/public/locales/en/modules/smart-home/entity-state.json new file mode 100644 index 000000000..e477757df --- /dev/null +++ b/public/locales/en/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entity not found", + "descriptor": { + "name": "Home Assistant entity", + "description": "Current state of an entity in Home Assistant", + "settings": { + "title": "Entity state", + "entityId": { + "label": "Entity ID", + "info": "Unique entity ID in Home Assistant. Copy by clicking on entity > Click on cog icon > Click on copy button at 'Entity ID'. Some custom entities may not be supported." + }, + "displayName": { + "label": "Display name" + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/modules/torrents-status.json b/public/locales/en/modules/torrents-status.json index c402c31c3..594b34e00 100644 --- a/public/locales/en/modules/torrents-status.json +++ b/public/locales/en/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Downloading", "name": "Name", + "dateAdded": "Added On", "size": "Size", "download": "Down", "upload": "Up", "estimatedTimeOfArrival": "ETA", - "progress": "Progress" + "progress": "Progress", + "totalUploaded": "Total Upload", + "totalDownloaded": "Total Download", + "ratio": "Ratio", + "seeds": "Seeds (Connected)", + "peers": "Peers (Connected)", + "label": "Label", + "state": "State", + "stateMessage": "State Message" }, "item": { "text": "Managed by {{appName}}, {{ratio}} ratio" diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 4dff3f768..6a2ffe27e 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Ancho", "height": "Alto" - } + }, + "public": "Pública", + "restricted": "Restringido" } \ No newline at end of file diff --git a/public/locales/es/layout/element-selector/selector.json b/public/locales/es/layout/element-selector/selector.json index 8dd608acf..2ec03021f 100644 --- a/public/locales/es/layout/element-selector/selector.json +++ b/public/locales/es/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Añadir un mosaico nuevo", - "text": "Los mosaicos son el elemento principal de Homarr. Se utilizan para mostrar tus aplicaciones y otra información. Puedes añadir tantos mosaicos como desees." - }, - "widgetDescription": "Los widgets interactúan con tus aplicaciones, para proporcionarte un mayor control sobre ellas. Por lo general, requieren de configuración adicional antes de poder usarlos.", - "goBack": "Volver al paso anterior", - "actionIcon": { - "tooltip": "Añadir mosaico" - }, - "apps": "Aplicaciones", - "app": { - "defaultName": "Tu aplicación" - }, - "widgets": "Widgets", - "categories": "Categorías", - "category": { - "newName": "Nombre de la nueva categoría", - "defaultName": "Nueva categoría", - "created": { - "title": "Categoría creada", - "message": "La categoría \"{{name}}\" ha sido creada" - } + "modal": { + "title": "Añadir un mosaico nuevo", + "text": "Los mosaicos son el elemento principal de Homarr. Se utilizan para mostrar tus aplicaciones y otra información. Puedes añadir tantos mosaicos como desees." + }, + "widgetDescription": "Los widgets interactúan con tus aplicaciones, para proporcionarte un mayor control sobre ellas. Por lo general, requieren de configuración adicional antes de poder usarlos.", + "goBack": "Volver al paso anterior", + "actionIcon": { + "tooltip": "Añadir mosaico" + }, + "apps": "Aplicaciones", + "app": { + "defaultName": "Tu aplicación" + }, + "widgets": "Widgets", + "categories": "Categorías", + "category": { + "newName": "Nombre de la nueva categoría", + "defaultName": "Nueva categoría", + "created": { + "title": "Categoría creada", + "message": "La categoría \"{{name}}\" ha sido creada" } + }, + "importFromDocker": "Importar desde docker" } diff --git a/public/locales/es/manage/users.json b/public/locales/es/manage/users.json index 415e3697c..951de964d 100644 --- a/public/locales/es/manage/users.json +++ b/public/locales/es/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Usuarios", "pageTitle": "Administrar usuarios", - "text": "Mediante los usuarios, puedes configurar quién puede editar tus paneles. Las versiones futuras de Homarr tendrán un control aún más granular sobre los permisos y los tableros.", "buttons": { "create": "Crear" }, + "filter": { + "roles": { + "all": "Todos", + "normal": "Normal", + "admin": "Administrador", + "owner": "Propietario" + } + }, "table": { "header": { - "user": "Usuario" + "user": "Usuario", + "email": "Correo electrónico" } }, "tooltips": { diff --git a/public/locales/es/manage/users/edit.json b/public/locales/es/manage/users/edit.json new file mode 100644 index 000000000..50d330921 --- /dev/null +++ b/public/locales/es/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Usuario {{username}}", + "back": "Volver a la administración de usuario", + "sections": { + "general": { + "title": "General", + "inputs": { + "username": { + "label": "Nombre de usuario" + }, + "eMail": { + "label": "Correo electrónico" + } + } + }, + "security": { + "title": "Seguridad", + "inputs": { + "password": { + "label": "Nueva contraseña" + }, + "terminateExistingSessions": { + "label": "Finalizar sesiones activas", + "description": "Fuerza al usuario a iniciar sesión nuevamente en sus dispositivos" + }, + "confirm": { + "label": "Confirmar", + "description": "La contraseña se actualizará. La acción no se puede revertir." + } + } + }, + "roles": { + "title": "Roles", + "currentRole": "Rol actual: ", + "badges": { + "owner": "Propietario", + "admin": "Administrador", + "normal": "Normal" + } + }, + "deletion": { + "title": "Eliminación de la cuenta", + "inputs": { + "confirmUsername": { + "label": "Confirmar nombre de usuario", + "description": "Escribe el nombre de usuario para confirmar la eliminación" + }, + "confirm": { + "label": "Eliminar permanentemente", + "description": "Soy consciente de que esta acción es permanente y se perderán todos los datos de la cuenta." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/date.json b/public/locales/es/modules/date.json index 8c5f1714e..00248dd2a 100644 --- a/public/locales/es/modules/date.json +++ b/public/locales/es/modules/date.json @@ -4,6 +4,13 @@ "description": "Muestra la fecha y hora actual.", "settings": { "title": "Ajustes del widget Fecha y Hora", + "timezone": { + "label": "Zona horaria", + "info": "Selecciona el nombre de tu zona horaria, encuentra la tuya aquí: " + }, + "customTitle": { + "label": "Nombre de ciudad o título personalizado" + }, "display24HourFormat": { "label": "Mostrar hora completa (24 horas)" }, @@ -13,18 +20,12 @@ "hide": "Ocultar Fecha" } }, - "enableTimezone": { - "label": "Mostrar una zona horaria personalizada" - }, - "timezoneLocation": { - "label": "Ubicación de la zona horaria" - }, "titleState": { - "label": "Título de la ciudad", - "info": "En caso de que se active la opción zona horaria, se puede mostrar el nombre de la ciudad y el código de la zona horaria.
También se puede mostrar la ciudad sola o incluso no mostrar nada.", + "label": "Título del reloj", + "info": "El título personalizado y el código de zona horaria se pueden mostrar en tu widget.
También puedes mostrar solo la ciudad, no mostrar ninguna
o incluso mostrar solo la zona horaria cuando ambas están seleccionadas y no se proporcione ningún título.", "data": { - "both": "Ciudad y zona horaria", - "city": "Solo ciudad", + "both": "Título y zona horaria", + "city": "Solo título", "none": "Nada" } } diff --git a/public/locales/es/modules/smart-home/entity-state.json b/public/locales/es/modules/smart-home/entity-state.json new file mode 100644 index 000000000..13482c779 --- /dev/null +++ b/public/locales/es/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entidad no encontrada", + "descriptor": { + "name": "Entidad de Home Assistant", + "description": "Estado actual de una entidad de Home Assistant", + "settings": { + "title": "Estado de la entidad", + "entityId": { + "label": "ID de la entidad", + "info": "ID de entidad única de Home Assistant. Copia haciendo clic en la entidad > Clic en el icono de engranaje > Clic en el botón copiar en 'ID de la entidad'. Algunas entidades personalizadas pueden no ser compatibles." + }, + "displayName": { + "label": "Nombre a mostrar" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/torrents-status.json b/public/locales/es/modules/torrents-status.json index 493c91153..7032f9178 100644 --- a/public/locales/es/modules/torrents-status.json +++ b/public/locales/es/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Descargando", "name": "Nombre", + "dateAdded": "Añadido el", "size": "Tamaño", "download": "Descarga", "upload": "Subida", "estimatedTimeOfArrival": "Tiempo restante", - "progress": "Completado %" + "progress": "Completado %", + "totalUploaded": "Subida Total", + "totalDownloaded": "Descarga Total", + "ratio": "Ratio", + "seeds": "Semillas (Conectadas)", + "peers": "Pares (Conectados)", + "label": "Etiqueta", + "state": "Estado", + "stateMessage": "Mensaje de estado" }, "item": { "text": "Gestionado por {{appName}}, proporción {{ratio}}" diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 2260ecdf9..868684af7 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Largeur", "height": "Hauteur" - } + }, + "public": "Public", + "restricted": "Restreint" } \ No newline at end of file diff --git a/public/locales/fr/layout/element-selector/selector.json b/public/locales/fr/layout/element-selector/selector.json index 33da03480..a25e0d01f 100644 --- a/public/locales/fr/layout/element-selector/selector.json +++ b/public/locales/fr/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Ajouter une tuile", - "text": "Les tuiles sont l'élément principal de Homarr. Elles sont utilisées pour afficher vos applications et autres informations. Vous pouvez ajouter autant de tuiles que vous le souhaitez." - }, - "widgetDescription": "Les widgets interagissent avec vos applications, pour vous permettre de mieux les contrôler. Ils nécessitent généralement quelques configurations supplémentaires avant d'être utilisés.", - "goBack": "Retourner à la page précédente", - "actionIcon": { - "tooltip": "Ajouter une tuile" - }, - "apps": "Applications", - "app": { - "defaultName": "Votre application" - }, - "widgets": "Widgets", - "categories": "Catégories", - "category": { - "newName": "Nom de la nouvelle catégorie", - "defaultName": "Nouvelle catégorie", - "created": { - "title": "Catégorie créée", - "message": "La catégorie « {{name}} » a été créée" - } + "modal": { + "title": "Ajouter une tuile", + "text": "Les tuiles sont l'élément principal de Homarr. Elles sont utilisées pour afficher vos applications et autres informations. Vous pouvez ajouter autant de tuiles que vous le souhaitez." + }, + "widgetDescription": "Les widgets interagissent avec vos applications, pour vous permettre de mieux les contrôler. Ils nécessitent généralement quelques configurations supplémentaires avant d'être utilisés.", + "goBack": "Retourner à la page précédente", + "actionIcon": { + "tooltip": "Ajouter une tuile" + }, + "apps": "Applications", + "app": { + "defaultName": "Votre application" + }, + "widgets": "Widgets", + "categories": "Catégories", + "category": { + "newName": "Nom de la nouvelle catégorie", + "defaultName": "Nouvelle catégorie", + "created": { + "title": "Catégorie créée", + "message": "La catégorie « {{name}} » a été créée" } + }, + "importFromDocker": "" } diff --git a/public/locales/fr/layout/errors/access-denied.json b/public/locales/fr/layout/errors/access-denied.json index 96713fc3f..9ebb0bbb6 100644 --- a/public/locales/fr/layout/errors/access-denied.json +++ b/public/locales/fr/layout/errors/access-denied.json @@ -1,5 +1,5 @@ { "title": "Accès refusé", - "text": "Vous n'avez pas les permissions suffissantes pour accéder à cette page. Si vous pouvez pensez qu'il s'agit d'une erreur, veuillez contacter votre administrateur.", + "text": "Vous n'avez pas les permissions suffisantes pour accéder à cette page. Si vous pensez qu'il s'agit d'une erreur, veuillez contacter votre administrateur.", "switchAccount": "Basculer sur un autre compte" } \ No newline at end of file diff --git a/public/locales/fr/manage/users.json b/public/locales/fr/manage/users.json index 2f95243f2..515d73b52 100644 --- a/public/locales/fr/manage/users.json +++ b/public/locales/fr/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Utilisateurs", "pageTitle": "Gérer les utilisateurs", - "text": "En utilisant des utilisateurs, vous pouvez configurer qui peut éditer vos tableaux de bord. Les prochaines versions de Homarr auront un contrôle plus fin quant aux permissions et les tableaux de bord.", "buttons": { "create": "Créer" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Utilisateur" + "user": "Utilisateur", + "email": "Courriel" } }, "tooltips": { diff --git a/public/locales/fr/manage/users/edit.json b/public/locales/fr/manage/users/edit.json new file mode 100644 index 000000000..456fd7c76 --- /dev/null +++ b/public/locales/fr/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Général", + "inputs": { + "username": { + "label": "Nom d'utilisateur" + }, + "eMail": { + "label": "Courriel" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Confirmer", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Supprimer définitivement", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/date.json b/public/locales/fr/modules/date.json index 81d11ab9d..96f3264d2 100644 --- a/public/locales/fr/modules/date.json +++ b/public/locales/fr/modules/date.json @@ -4,6 +4,13 @@ "description": "Affiche la date et l'heure courante.", "settings": { "title": "Paramètres du widget Date et heure", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Affichage 24 h" }, @@ -13,18 +20,12 @@ "hide": "Masquer la date" } }, - "enableTimezone": { - "label": "Afficher un fuseau horaire personnalisé" - }, - "timezoneLocation": { - "label": "Localisation du fuseau horaire" - }, "titleState": { - "label": "Nom de la ville", - "info": "Si vous avez choisi d'activer un fuseau horaire différent, le nom de la ville ainsi que le nom de son fuseau horaire peuvent être affichés.
Vous pouvez aussi n'afficher que la ville ou aucun des deux.", + "label": "", + "info": "", "data": { - "both": "Ville et fuseau horaire", - "city": "Ville uniquement", + "both": "", + "city": "", "none": "Aucun" } } diff --git a/public/locales/fr/modules/smart-home/entity-state.json b/public/locales/fr/modules/smart-home/entity-state.json new file mode 100644 index 000000000..5c36c0216 --- /dev/null +++ b/public/locales/fr/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entité non trouvée", + "descriptor": { + "name": "Entité Home Assistant", + "description": "État actuel d'une entité dans Home Assistant", + "settings": { + "title": "État de l'entité", + "entityId": { + "label": "ID de l’entité", + "info": "ID d’entité unique dans Home Assistant. Copiez en cliquant sur l'entité > Cliquez sur l'icône en forme de rouage > Cliquez sur le bouton Copier sous « ID d'entité ». Certaines entités personnalisées peuvent ne pas être prises en charge." + }, + "displayName": { + "label": "Nom d'affichage" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json index 7ef7a58b6..c9f35a3f5 100644 --- a/public/locales/fr/modules/torrents-status.json +++ b/public/locales/fr/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Téléchargement en cours", "name": "Nom", + "dateAdded": "", "size": "Taille", "download": "Descendant", "upload": "Montant", "estimatedTimeOfArrival": "ETA", - "progress": "Progrès" + "progress": "Progrès", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "État", + "stateMessage": "" }, "item": { "text": "Géré par {{appName}}, {{ratio}} ratio" diff --git a/public/locales/he/common.json b/public/locales/he/common.json index 735b7eead..81f1f1869 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "רוחב", "height": "גובה" - } + }, + "public": "ציבורי", + "restricted": "מוגבל" } \ No newline at end of file diff --git a/public/locales/he/layout/element-selector/selector.json b/public/locales/he/layout/element-selector/selector.json index 90f45bf53..8745f4840 100644 --- a/public/locales/he/layout/element-selector/selector.json +++ b/public/locales/he/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "הוספת אריח חדש", - "text": "אריחים הם המרכיב העיקרי של Homarr. הם משמשים להצגת אפליקציות ומידע נוסף. ניתן להוסיף אריחים ללא הגבלה." - }, - "widgetDescription": "ווידג'טים מקיימים אינטראקציה עם האפליקציות, כדי לספק שליטה רבה יותר על היישומים. בדרך כלל דורשים תצורה נוספת לפני השימוש.", - "goBack": "חזרה לשלב הקודם", - "actionIcon": { - "tooltip": "הוספת אריח" - }, - "apps": "אפליקציות", - "app": { - "defaultName": "האפליקציה שלך" - }, - "widgets": "ווידג'טים", - "categories": "קטגוריות", - "category": { - "newName": "שם הקטגוריה החדשה", - "defaultName": "קטגוריה חדשה", - "created": { - "title": "קטגוריה נוצרה", - "message": "הקטגוריה {{name}} נוצרה" - } + "modal": { + "title": "הוספת אריח חדש", + "text": "אריחים הם המרכיב העיקרי של Homarr. הם משמשים להצגת אפליקציות ומידע נוסף. ניתן להוסיף אריחים ללא הגבלה." + }, + "widgetDescription": "ווידג'טים מקיימים אינטראקציה עם האפליקציות, כדי לספק שליטה רבה יותר על היישומים. בדרך כלל דורשים תצורה נוספת לפני השימוש.", + "goBack": "חזרה לשלב הקודם", + "actionIcon": { + "tooltip": "הוספת אריח" + }, + "apps": "אפליקציות", + "app": { + "defaultName": "האפליקציה שלך" + }, + "widgets": "ווידג'טים", + "categories": "קטגוריות", + "category": { + "newName": "שם הקטגוריה החדשה", + "defaultName": "קטגוריה חדשה", + "created": { + "title": "קטגוריה נוצרה", + "message": "הקטגוריה {{name}} נוצרה" } + }, + "importFromDocker": "ייבוא מדוקר" } diff --git a/public/locales/he/manage/users.json b/public/locales/he/manage/users.json index 882562149..7faecaf64 100644 --- a/public/locales/he/manage/users.json +++ b/public/locales/he/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "משתמשים", "pageTitle": "ניהול משתמשים", - "text": "באמצעות משתמשים, באפשרותך להגדיר מי יוכל לערוך את לוח המחוונים שלך. גרסאות עתידיות של Homarr יהיו בעלות שליטה פרטנית עוד יותר על הרשאות ולוחות.", "buttons": { "create": "צור" }, + "filter": { + "roles": { + "all": "את כל", + "normal": "רגיל", + "admin": "מנהל מערכת", + "owner": "בעלים" + } + }, "table": { "header": { - "user": "משתמש" + "user": "משתמש", + "email": "אימייל" } }, "tooltips": { diff --git a/public/locales/he/manage/users/edit.json b/public/locales/he/manage/users/edit.json new file mode 100644 index 000000000..1c3ed9e9c --- /dev/null +++ b/public/locales/he/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "משתמש {{username}}", + "back": "חזרה לניהול משתמשים", + "sections": { + "general": { + "title": "כללי", + "inputs": { + "username": { + "label": "שם משתמש" + }, + "eMail": { + "label": "אימייל" + } + } + }, + "security": { + "title": "אבטחה", + "inputs": { + "password": { + "label": "סיסמה חדשה" + }, + "terminateExistingSessions": { + "label": "סיום הפעלות קיימות", + "description": "מאלץ את המשתמש להתחבר שוב במכשירים שלו" + }, + "confirm": { + "label": "לאשר", + "description": "הסיסמה תעודכן. לא ניתן לבטל פעולה." + } + } + }, + "roles": { + "title": "תפקידים", + "currentRole": "תפקיד נוכחי: ", + "badges": { + "owner": "בעלים", + "admin": "מנהל מערכת", + "normal": "רגיל" + } + }, + "deletion": { + "title": "מחיקת חשבון", + "inputs": { + "confirmUsername": { + "label": "אשר את שם המשתמש", + "description": "הקלד שם משתמש כדי לאשר את המחיקה" + }, + "confirm": { + "label": "מחיקה לצמיתות", + "description": "אני מודע לכך שהפעולה הזו היא קבועה וכל נתוני החשבון יאבדו." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/modules/date.json b/public/locales/he/modules/date.json index 1c8cf6c7f..48b147d41 100644 --- a/public/locales/he/modules/date.json +++ b/public/locales/he/modules/date.json @@ -4,6 +4,13 @@ "description": "מציג את התאריך והשעה הנוכחיים.", "settings": { "title": "הגדרות עבור ווידג'ט תאריך ושעה", + "timezone": { + "label": "אזור זמן", + "info": "בחר את השם של אזור הזמן שלך, מצא את שלך כאן: " + }, + "customTitle": { + "label": "שם עיר או כותרת מותאמת אישית" + }, "display24HourFormat": { "label": "הצגת זמן בפורמט 24 שעות" }, @@ -13,18 +20,12 @@ "hide": "הסתר תאריך" } }, - "enableTimezone": { - "label": "הצג אזור זמן מותאם אישית" - }, - "timezoneLocation": { - "label": "מיקום אזור זמן" - }, "titleState": { - "label": "כותרת עיר", - "info": "במקרה שתפעיל את אפשרות אזור הזמן, ניתן להציג את שם העיר ואת קוד אזור הזמן.
ניתן להציג רק את שם העיר או לא להציג דבר.", + "label": "כותרת השעון", + "info": "ניתן להציג את הכותרת המותאמת אישית ואת קוד אזור הזמן בווידג'ט שלך.
אתה יכול גם להציג את העיר לבדה, להציג אף אחד,
או אפילו להציג את אזור הזמן לבד כאשר שניהם נבחרים אך לא מסופקת כותרת.", "data": { - "both": "עיר ואזור זמן", - "city": "עיר בלבד", + "both": "כותרת ואזור זמן", + "city": "כותרת בלבד", "none": "ללא" } } diff --git a/public/locales/he/modules/smart-home/entity-state.json b/public/locales/he/modules/smart-home/entity-state.json new file mode 100644 index 000000000..06835304a --- /dev/null +++ b/public/locales/he/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "הישות לא נמצאה", + "descriptor": { + "name": "ישות Home Assistant", + "description": "מצב נוכחי של ישות ב-Home Assistant", + "settings": { + "title": "מצב ישות", + "entityId": { + "label": "מזהה ישות", + "info": "מזהה ישות ייחודי ב-Home Assistant. העתק על ידי לחיצה על ישות > לחץ על סמל גלגל שיניים > לחץ על כפתור העתק ב'זיהוי ישות'. ייתכן שחלק מהישויות המותאמות אישית אינן נתמכות." + }, + "displayName": { + "label": "הצג שם" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/modules/torrents-status.json b/public/locales/he/modules/torrents-status.json index 4db036186..90285ffc1 100644 --- a/public/locales/he/modules/torrents-status.json +++ b/public/locales/he/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "מוריד", "name": "שם", + "dateAdded": "נוסף על", "size": "גודל", "download": "הורדה", "upload": "העלאה", "estimatedTimeOfArrival": "זמן סיום משוער", - "progress": "התקדמות" + "progress": "התקדמות", + "totalUploaded": "סך העלאה", + "totalDownloaded": "הורדה כוללת", + "ratio": "יחס", + "seeds": "זרעים (מחוברים)", + "peers": "עמיתים (מחוברים)", + "label": "תווית", + "state": "מצב", + "stateMessage": "הודעת מצב" }, "item": { "text": "מנוהל על ידי {{appName}}, יחס {{ratio}}" diff --git a/public/locales/he/settings/customization/page-appearance.json b/public/locales/he/settings/customization/page-appearance.json index 70d34cfad..8a843849e 100644 --- a/public/locales/he/settings/customization/page-appearance.json +++ b/public/locales/he/settings/customization/page-appearance.json @@ -19,26 +19,26 @@ "label": "רקע" }, "backgroundImageAttachment": { - "label": "", + "label": "צירוף תמונת רקע", "options": { - "fixed": "", - "scroll": "" + "fixed": "קבוע - הרקע נשאר באותו מיקום (מומלץ)", + "scroll": "גלילה - גלילה ברקע עם העכבר" } }, "backgroundImageSize": { - "label": "", + "label": "גודל תמונת רקע", "options": { - "cover": "", - "contain": "" + "cover": "כיסוי - קנה מידה קטן ככל האפשר של התמונה כדי לכסות את כל החלון על ידי חיתוך שטח מוגזם. (מוּמלָץ)", + "contain": "מכיל - קנה מידה גדול ככל האפשר של התמונה בתוך המיכל שלה מבלי לחתוך או למתוח את התמונה." } }, "backgroundImageRepeat": { - "label": "", + "label": "צירוף תמונת רקע", "options": { - "repeat": "", - "no-repeat": "", - "repeat-x": "", - "repeat-y": "" + "repeat": "חזור - התמונה חוזרת על עצמה ככל שנדרש כדי לכסות את כל אזור ציור תמונת הרקע.", + "no-repeat": "ללא חזרה - התמונה אינה חוזרת על עצמה וייתכן שלא תמלא את כל החלל (מומלץ)", + "repeat-x": "חזור X - זהה ל'חזרה' אבל רק על הציר האופקי.", + "repeat-y": "חזור Y - זהה ל'חזרה' אבל רק על הציר האנכי." } }, "customCSS": { diff --git a/public/locales/he/tools/docker.json b/public/locales/he/tools/docker.json index 3affb1371..c2ef87e55 100644 --- a/public/locales/he/tools/docker.json +++ b/public/locales/he/tools/docker.json @@ -2,7 +2,7 @@ "title": "דוקר", "alerts": { "notConfigured": { - "text": "" + "text": "למופע ה-Homarr שלך לא הוגדר Docker או שהוא נכשל באחזור קונטיינרים. אנא עיין בתיעוד כיצד להגדיר את האינטגרציה." } }, "modals": { diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 83bca3a24..ae1523ab8 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Širina", "height": "Visina" - } + }, + "public": "Javno", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/hr/layout/element-selector/selector.json b/public/locales/hr/layout/element-selector/selector.json index 1bf85a2ae..d61dce3ef 100644 --- a/public/locales/hr/layout/element-selector/selector.json +++ b/public/locales/hr/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Dodaj novu ploču", - "text": "Ploče su glavni element Homarr-a. Koriste se za prikaz vaših aplikacija i drugih informacija. Možete dodati koliko god ploča želite." - }, - "widgetDescription": "Widgeti komuniciraju s vašim aplikacijama kako bi vam pružili veću kontrolu nad istima. Obično zahtijevaju dodatnu konfiguraciju prije upotrebe.", - "goBack": "Vrati se na prijašnji korak", - "actionIcon": { - "tooltip": "Dodaj ploču" - }, - "apps": "aplikacije", - "app": { - "defaultName": "Vaša aplikacija" - }, - "widgets": "Widgeti", - "categories": "Kategorije", - "category": { - "newName": "Naziv nove kategorije", - "defaultName": "Nova kategorija", - "created": { - "title": "Kategorija je stvorena", - "message": "Stvorena je kategorija \"{{name}}\"." - } + "modal": { + "title": "Dodaj novu ploču", + "text": "Ploče su glavni element Homarr-a. Koriste se za prikaz vaših aplikacija i drugih informacija. Možete dodati koliko god ploča želite." + }, + "widgetDescription": "Widgeti komuniciraju s vašim aplikacijama kako bi vam pružili veću kontrolu nad istima. Obično zahtijevaju dodatnu konfiguraciju prije upotrebe.", + "goBack": "Vrati se na prijašnji korak", + "actionIcon": { + "tooltip": "Dodaj ploču" + }, + "apps": "aplikacije", + "app": { + "defaultName": "Vaša aplikacija" + }, + "widgets": "Widgeti", + "categories": "Kategorije", + "category": { + "newName": "Naziv nove kategorije", + "defaultName": "Nova kategorija", + "created": { + "title": "Kategorija je stvorena", + "message": "Stvorena je kategorija \"{{name}}\"." } + }, + "importFromDocker": "" } diff --git a/public/locales/hr/manage/users.json b/public/locales/hr/manage/users.json index c97ed70f1..58f8c71fa 100644 --- a/public/locales/hr/manage/users.json +++ b/public/locales/hr/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Korisnici", "pageTitle": "Upravljanje korisnicima", - "text": "Pomoću korisnika možete konfigurirati tko može uređivati vaše nadzorne ploče. Buduće verzije Homarra imat će još detaljniju kontrolu nad dozvolama i pločama.", "buttons": { "create": "Stvoriti" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Korisnik" + "user": "Korisnik", + "email": "E-pošta" } }, "tooltips": { diff --git a/public/locales/hr/manage/users/edit.json b/public/locales/hr/manage/users/edit.json new file mode 100644 index 000000000..aebb4b335 --- /dev/null +++ b/public/locales/hr/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Općenito", + "inputs": { + "username": { + "label": "Korisničko ime" + }, + "eMail": { + "label": "E-pošta" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Potvrdi", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Izbriši trajno", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/modules/date.json b/public/locales/hr/modules/date.json index fe2b34f81..1b6401f91 100644 --- a/public/locales/hr/modules/date.json +++ b/public/locales/hr/modules/date.json @@ -4,6 +4,13 @@ "description": "Prikaži trenutni datum i vrijeme.", "settings": { "title": "Postavke za widget Datuma i Vremena", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Prikaži full-time oblik (24-satni)" }, @@ -13,18 +20,12 @@ "hide": "Sakrij datum" } }, - "enableTimezone": { - "label": "Prikaz prilagođene vremenske zone" - }, - "timezoneLocation": { - "label": "Lokacija vremenske zone" - }, "titleState": { - "label": "Naslov grada", - "info": "U slučaju da aktivirate opciju Vremenska zona, može se prikazati ime grada i šifra vremenske zone.
Također možete prikazati grad sam ili ga čak ne prikazati.", + "label": "", + "info": "", "data": { - "both": "Grad i vremenska zona", - "city": "Samo grad", + "both": "", + "city": "", "none": "Nijedan" } } diff --git a/public/locales/hr/modules/smart-home/entity-state.json b/public/locales/hr/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/hr/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/modules/torrents-status.json b/public/locales/hr/modules/torrents-status.json index 2abddf160..1d9bdf2bb 100644 --- a/public/locales/hr/modules/torrents-status.json +++ b/public/locales/hr/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Naziv", + "dateAdded": "", "size": "Veličina", "download": "Isključeno", "upload": "Uključeno", "estimatedTimeOfArrival": "ETA", - "progress": "Napredak" + "progress": "Napredak", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Stanje", + "stateMessage": "" }, "item": { "text": "Upravlja {{appName}}, omjer: {{ratio}}" diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 95f6d9eb4..8bb6ce7ed 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Szélesség", "height": "Magasság" - } + }, + "public": "Nyilvános", + "restricted": "Korlátozott" } \ No newline at end of file diff --git a/public/locales/hu/layout/element-selector/selector.json b/public/locales/hu/layout/element-selector/selector.json index 13acb905b..d8da644b6 100644 --- a/public/locales/hu/layout/element-selector/selector.json +++ b/public/locales/hu/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Új csempe hozzáadása", - "text": "A Homarr fő eleme a csempe. Alkalmazásai és egyéb információk megjelenítésére szolgálnak. Annyi csempét adhat hozzá, amennyit csak akar." - }, - "widgetDescription": "A widgetek együttműködnek az alkalmazásokkal, hogy nagyobb kontrollt biztosítsanak az alkalmazások felett. Használatuk előtt általában további konfigurációt igényelnek.", - "goBack": "Visszatérés az előző lépéshez", - "actionIcon": { - "tooltip": "Csempe hozzáadása" - }, - "apps": "Alkalmazások", - "app": { - "defaultName": "Az Ön alkalmazása" - }, - "widgets": "Widgetek", - "categories": "Kategóriák", - "category": { - "newName": "Az új kategória neve", - "defaultName": "Új kategória", - "created": { - "title": "Létrehozott kategória", - "message": "Létrejött a \"{{name}}\" kategória" - } + "modal": { + "title": "Új csempe hozzáadása", + "text": "A Homarr fő eleme a csempe. Alkalmazásai és egyéb információk megjelenítésére szolgálnak. Annyi csempét adhat hozzá, amennyit csak akar." + }, + "widgetDescription": "A widgetek együttműködnek az alkalmazásokkal, hogy nagyobb kontrollt biztosítsanak az alkalmazások felett. Használatuk előtt általában további konfigurációt igényelnek.", + "goBack": "Visszatérés az előző lépéshez", + "actionIcon": { + "tooltip": "Csempe hozzáadása" + }, + "apps": "Alkalmazások", + "app": { + "defaultName": "Az Ön alkalmazása" + }, + "widgets": "Widgetek", + "categories": "Kategóriák", + "category": { + "newName": "Az új kategória neve", + "defaultName": "Új kategória", + "created": { + "title": "Létrehozott kategória", + "message": "Létrejött a \"{{name}}\" kategória" } + }, + "importFromDocker": "" } diff --git a/public/locales/hu/manage/users.json b/public/locales/hu/manage/users.json index 90a5c6c20..5949ba1be 100644 --- a/public/locales/hu/manage/users.json +++ b/public/locales/hu/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Felhasználók", "pageTitle": "Felhasználók kezelése", - "text": "A felhasználók segítségével beállíthatja, hogy ki szerkesztheti a műszerfalait. A Homarr jövőbeli verziói még részletesebb szabályozást biztosítanak a jogosultságok és a táblák felett.", "buttons": { "create": "Létrehozás" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Felhasználó" + "user": "Felhasználó", + "email": "Email cím" } }, "tooltips": { diff --git a/public/locales/hu/manage/users/edit.json b/public/locales/hu/manage/users/edit.json new file mode 100644 index 000000000..8f3c9f455 --- /dev/null +++ b/public/locales/hu/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Általános", + "inputs": { + "username": { + "label": "Felhasználónév" + }, + "eMail": { + "label": "Email cím" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Megerősít", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Végleges törlés", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/modules/date.json b/public/locales/hu/modules/date.json index 5865f413f..7dd705b24 100644 --- a/public/locales/hu/modules/date.json +++ b/public/locales/hu/modules/date.json @@ -4,6 +4,13 @@ "description": "Megjeleníti az aktuális dátumot és időt.", "settings": { "title": "A Naptár widget beállításai", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "24 órás idő kijelzése" }, @@ -13,18 +20,12 @@ "hide": "Dátum elrejtése" } }, - "enableTimezone": { - "label": "Egyéni időzóna megjelenítése" - }, - "timezoneLocation": { - "label": "Időzóna Helyszín" - }, "titleState": { - "label": "Város címe", - "info": "Ha aktiválja az Időzóna opciót, akkor megjelenik a város neve és az időzóna kódja.
Megjelenítheti a várost önmagában, vagy akár nem is jelenítheti meg.", + "label": "", + "info": "", "data": { - "both": "Város és időzóna", - "city": "Csak a város", + "both": "", + "city": "", "none": "Semmi" } } diff --git a/public/locales/hu/modules/smart-home/entity-state.json b/public/locales/hu/modules/smart-home/entity-state.json new file mode 100644 index 000000000..96b150c05 --- /dev/null +++ b/public/locales/hu/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Elem nem található", + "descriptor": { + "name": "Otthoni asszisztens egység", + "description": "Egy egység aktuális állapota a Home Assistantban", + "settings": { + "title": "Egység állapota", + "entityId": { + "label": "Egység azonosító", + "info": "Egyedi egység ID a Home Assistantben. Másolás az egységre kattintva > Kattintson a fogaskerék ikonra > Kattintson a másolás gombra az „Egység ID”-nél. Előfordulhat, hogy egyes egyéni egységek nem támogatottak." + }, + "displayName": { + "label": "Megjelenített név" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/modules/torrents-status.json b/public/locales/hu/modules/torrents-status.json index 29b332c66..d4e0a877a 100644 --- a/public/locales/hu/modules/torrents-status.json +++ b/public/locales/hu/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Letöltés", "name": "Név", + "dateAdded": "Hozzáadva", "size": "Méret", "download": "Le", "upload": "Fel", "estimatedTimeOfArrival": "Hátralévő idő", - "progress": "Folyamat" + "progress": "Folyamat", + "totalUploaded": "Teljes feltöltés", + "totalDownloaded": "Összes letöltés", + "ratio": "Arány", + "seeds": "Teljes megosztó (csatlakozott)", + "peers": "Részleges megosztó (csatlakozott)", + "label": "Azonosító", + "state": "Állapot", + "stateMessage": "Statikus üzenet" }, "item": { "text": "Kezeli: {{appName}}, {{ratio}} arány" diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 409e5d444..1073a2306 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Larghezza", "height": "Altezza" - } + }, + "public": "Pubblico", + "restricted": "Limitato" } \ No newline at end of file diff --git a/public/locales/it/layout/element-selector/selector.json b/public/locales/it/layout/element-selector/selector.json index 3afb0c7c7..86755e37b 100644 --- a/public/locales/it/layout/element-selector/selector.json +++ b/public/locales/it/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Aggiungi nuovo riquadro", - "text": "I tile sono l'elemento principale di Homarr. Sono utilizzati per visualizzare le tue app e altre informazioni. Puoi aggiungere tutti i tile che vuoi." - }, - "widgetDescription": "I widget interagiscono con le applicazioni per fornire un maggior controllo. Normalmente richiedono configurazioni aggiuntive prima di essere utilizzati.", - "goBack": "Torna indietro allo step precedente", - "actionIcon": { - "tooltip": "Aggiungi riquadro" - }, - "apps": "Applicazioni", - "app": { - "defaultName": "La tua app" - }, - "widgets": "Widgets", - "categories": "Categorie", - "category": { - "newName": "Nome della nuova categoria", - "defaultName": "Nuova Categoria", - "created": { - "title": "Categoria creata", - "message": "La categoria \"{{name}}\" è stata creata" - } + "modal": { + "title": "Aggiungi nuovo riquadro", + "text": "I tile sono l'elemento principale di Homarr. Sono utilizzati per visualizzare le tue app e altre informazioni. Puoi aggiungere tutti i tile che vuoi." + }, + "widgetDescription": "I widget interagiscono con le applicazioni per fornire un maggior controllo. Normalmente richiedono configurazioni aggiuntive prima di essere utilizzati.", + "goBack": "Torna indietro allo step precedente", + "actionIcon": { + "tooltip": "Aggiungi riquadro" + }, + "apps": "Applicazioni", + "app": { + "defaultName": "La tua app" + }, + "widgets": "Widgets", + "categories": "Categorie", + "category": { + "newName": "Nome della nuova categoria", + "defaultName": "Nuova Categoria", + "created": { + "title": "Categoria creata", + "message": "La categoria \"{{name}}\" è stata creata" } + }, + "importFromDocker": "" } diff --git a/public/locales/it/manage/users.json b/public/locales/it/manage/users.json index 692dc753b..af006c305 100644 --- a/public/locales/it/manage/users.json +++ b/public/locales/it/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Utenti", "pageTitle": "Gestisci utenti", - "text": "Utilizzando gli utenti, è possibile configurare chi può modificare i dashboard. Le versioni future di Homarr offriranno un controllo ancora più granulare sulle autorizzazioni e sulle board.", "buttons": { "create": "Crea" }, + "filter": { + "roles": { + "all": "Tutto", + "normal": "Normale", + "admin": "Admin", + "owner": "Proprietario" + } + }, "table": { "header": { - "user": "Utente" + "user": "Utente", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/it/manage/users/edit.json b/public/locales/it/manage/users/edit.json new file mode 100644 index 000000000..f957ee1fa --- /dev/null +++ b/public/locales/it/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Utente {{username}}", + "back": "Torna alla gestione utenti", + "sections": { + "general": { + "title": "Generale", + "inputs": { + "username": { + "label": "Nome utente" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "Sicurezza", + "inputs": { + "password": { + "label": "Nuova password" + }, + "terminateExistingSessions": { + "label": "Termina le sessioni esistenti", + "description": "Forza l'utente ad accedere nuovamente sui propri dispositivi" + }, + "confirm": { + "label": "Conferma", + "description": "La password verrà aggiornata. L'azione non può essere annullata." + } + } + }, + "roles": { + "title": "Ruoli", + "currentRole": "Ruolo attuale: ", + "badges": { + "owner": "Proprietario", + "admin": "Admin", + "normal": "Normale" + } + }, + "deletion": { + "title": "Cancellazione dell'account", + "inputs": { + "confirmUsername": { + "label": "Conferma nome utente", + "description": "Digita il nome utente per confermare l'eliminazione" + }, + "confirm": { + "label": "Elimina definitivamente", + "description": "Sono consapevole che questa azione è permanente e che tutti i dati dell'account andranno persi." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/date.json b/public/locales/it/modules/date.json index 0ce386baa..8afa899e1 100644 --- a/public/locales/it/modules/date.json +++ b/public/locales/it/modules/date.json @@ -4,6 +4,13 @@ "description": "Visualizza la data e l'ora correnti.", "settings": { "title": "Impostazioni per il widget Data e Ora", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Visualizza formato 24 ore" }, @@ -13,18 +20,12 @@ "hide": "Nascondi data" } }, - "enableTimezone": { - "label": "Mostra un fuso orario personalizzato" - }, - "timezoneLocation": { - "label": "Posizione Fuso Orario" - }, "titleState": { - "label": "Titolo città", - "info": "Nel caso in cui si attivasse l'opzione fuso orario, sarà possibile visualizzare il nome della città e il codice del fuso orario.
Puoi anche mostrare la città da sola o anche non mostrarla.", + "label": "", + "info": "", "data": { - "both": "Città e fuso orario", - "city": "Solo città", + "both": "", + "city": "", "none": "Niente" } } diff --git a/public/locales/it/modules/smart-home/entity-state.json b/public/locales/it/modules/smart-home/entity-state.json new file mode 100644 index 000000000..c83858e5e --- /dev/null +++ b/public/locales/it/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entità non trovata", + "descriptor": { + "name": "Entità Home Assistant", + "description": "Stato attuale di un'entità in Home Assistant", + "settings": { + "title": "Stato entità", + "entityId": { + "label": "ID entità", + "info": "ID entità univoco in Home Assistant. Copia facendo clic sull'entità > clic sull'icona della rondella > clic sul pulsante copia in \"ID entità\". Alcune entità personalizzate potrebbero non essere supportate." + }, + "displayName": { + "label": "Visualizza nome" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/torrents-status.json b/public/locales/it/modules/torrents-status.json index 86b78fe33..2160905c6 100644 --- a/public/locales/it/modules/torrents-status.json +++ b/public/locales/it/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Download in corso", "name": "Nome", + "dateAdded": "Aggiunto il", "size": "Dimensione", "download": "Down", "upload": "Up", "estimatedTimeOfArrival": "ETA", - "progress": "Avanzamento" + "progress": "Avanzamento", + "totalUploaded": "Upload Totale", + "totalDownloaded": "Download totale", + "ratio": "Ratio", + "seeds": "Seeds (connessi)", + "peers": "Peers (Connessi)", + "label": "Etichetta", + "state": "Stato", + "stateMessage": "Messaggio di stato" }, "item": { "text": "Gestito da {{appName}}, {{ratio}} ratio" diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index ed31ad643..0f6284982 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "幅", "height": "高さ" - } + }, + "public": "公開", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/ja/layout/element-selector/selector.json b/public/locales/ja/layout/element-selector/selector.json index 7ba68fa26..a85b18b38 100644 --- a/public/locales/ja/layout/element-selector/selector.json +++ b/public/locales/ja/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "新しいタイルを追加する", - "text": "タイルはHomarrの主要な要素です。アプリやその他の情報を表示するために使用されます。タイルはいくつでも追加することができます。" - }, - "widgetDescription": "ウィジェットは、アプリケーションと相互作用し、アプリケーションをよりコントロールすることができます。通常、使用する前に追加の設定が必要です。", - "goBack": "前のステップに戻る", - "actionIcon": { - "tooltip": "タイルを追加する" - }, - "apps": "アプリ", - "app": { - "defaultName": "アプリ" - }, - "widgets": "ウィジェット", - "categories": "カテゴリー", - "category": { - "newName": "新しいカテゴリ名", - "defaultName": "新しいカテゴリー", - "created": { - "title": "カテゴリを作成しました", - "message": "カテゴリ \"{{name}}\" が作成されました" - } + "modal": { + "title": "新しいタイルを追加する", + "text": "タイルはHomarrの主要な要素です。アプリやその他の情報を表示するために使用されます。タイルはいくつでも追加することができます。" + }, + "widgetDescription": "ウィジェットは、アプリケーションと相互作用し、アプリケーションをよりコントロールすることができます。通常、使用する前に追加の設定が必要です。", + "goBack": "前のステップに戻る", + "actionIcon": { + "tooltip": "タイルを追加する" + }, + "apps": "アプリ", + "app": { + "defaultName": "アプリ" + }, + "widgets": "ウィジェット", + "categories": "カテゴリー", + "category": { + "newName": "新しいカテゴリ名", + "defaultName": "新しいカテゴリー", + "created": { + "title": "カテゴリを作成しました", + "message": "カテゴリ \"{{name}}\" が作成されました" } + }, + "importFromDocker": "" } diff --git a/public/locales/ja/manage/users.json b/public/locales/ja/manage/users.json index 4d84778da..5859c7d2d 100644 --- a/public/locales/ja/manage/users.json +++ b/public/locales/ja/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "ユーザー", "pageTitle": "ユーザー管理", - "text": "ユーザーを使用して、ダッシュボードを編集できるユーザーを設定できます。Homarrの将来のバージョンでは、権限とボードをさらに細かく制御できるようになります。", "buttons": { "create": "作成" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "ユーザー" + "user": "ユーザー", + "email": "Eメール" } }, "tooltips": { diff --git a/public/locales/ja/manage/users/edit.json b/public/locales/ja/manage/users/edit.json new file mode 100644 index 000000000..176d99790 --- /dev/null +++ b/public/locales/ja/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "一般", + "inputs": { + "username": { + "label": "ユーザー名" + }, + "eMail": { + "label": "Eメール" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "確認", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "永久削除", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/date.json b/public/locales/ja/modules/date.json index 249dc9137..43e533ff2 100644 --- a/public/locales/ja/modules/date.json +++ b/public/locales/ja/modules/date.json @@ -4,6 +4,13 @@ "description": "現在の日付と時刻を表示します。", "settings": { "title": "日付と時刻ウィジェットの設定", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "24時間表示" }, @@ -13,18 +20,12 @@ "hide": "日付を隠す" } }, - "enableTimezone": { - "label": "カスタムタイムゾーンを表示" - }, - "timezoneLocation": { - "label": "タイムゾーン" - }, "titleState": { - "label": "都市名", - "info": "タイムゾーンオプションを有効にすると、都市名とタイムゾーンコードが表示されます。
また、都市だけを表示することも、何も表示しないこともできます。", + "label": "", + "info": "", "data": { - "both": "都市とタイムゾーン", - "city": "都市のみ", + "both": "", + "city": "", "none": "なし" } } diff --git a/public/locales/ja/modules/smart-home/entity-state.json b/public/locales/ja/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/ja/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/torrents-status.json b/public/locales/ja/modules/torrents-status.json index b8e52d1c3..46032f5bf 100644 --- a/public/locales/ja/modules/torrents-status.json +++ b/public/locales/ja/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "名称", + "dateAdded": "", "size": "サイズ", "download": "ダウンロード", "upload": "アップロード", "estimatedTimeOfArrival": "ETA", - "progress": "進捗状況" + "progress": "進捗状況", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "状態", + "stateMessage": "" }, "item": { "text": "運営: {{appName}}, {{ratio}} 比率" diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index 387c33c16..3d4508036 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "너비", "height": "높이" - } + }, + "public": "공개", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/ko/layout/element-selector/selector.json b/public/locales/ko/layout/element-selector/selector.json index 5f5e685e0..f1e4d919b 100644 --- a/public/locales/ko/layout/element-selector/selector.json +++ b/public/locales/ko/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "새 타일 추가", - "text": "타일은 Homarr의 주요 요소입니다. 타일은 앱과 기타 정보를 표시하는 데 사용됩니다. 원하는 만큼 타일을 추가할 수 있습니다." - }, - "widgetDescription": "위젯은 앱과 상호 작용하여 애플리케이션을 더 잘 제어할 수 있도록 도와줍니다. 일반적으로 사용하기 전에 추가 구성이 필요합니다.", - "goBack": "이전 단계로 돌아가기", - "actionIcon": { - "tooltip": "타일 추가" - }, - "apps": "앱", - "app": { - "defaultName": "앱" - }, - "widgets": "위젯", - "categories": "카테고리", - "category": { - "newName": "새 카테고리 이름", - "defaultName": "새 카테고리", - "created": { - "title": "카테고리 생성", - "message": "\"{{name}}\" 카테고리가 생성되었습니다." - } + "modal": { + "title": "새 타일 추가", + "text": "타일은 Homarr의 주요 요소입니다. 타일은 앱과 기타 정보를 표시하는 데 사용됩니다. 원하는 만큼 타일을 추가할 수 있습니다." + }, + "widgetDescription": "위젯은 앱과 상호 작용하여 애플리케이션을 더 잘 제어할 수 있도록 도와줍니다. 일반적으로 사용하기 전에 추가 구성이 필요합니다.", + "goBack": "이전 단계로 돌아가기", + "actionIcon": { + "tooltip": "타일 추가" + }, + "apps": "앱", + "app": { + "defaultName": "앱" + }, + "widgets": "위젯", + "categories": "카테고리", + "category": { + "newName": "새 카테고리 이름", + "defaultName": "새 카테고리", + "created": { + "title": "카테고리 생성", + "message": "\"{{name}}\" 카테고리가 생성되었습니다." } + }, + "importFromDocker": "" } diff --git a/public/locales/ko/manage/users.json b/public/locales/ko/manage/users.json index 901a06214..1ff1e1baf 100644 --- a/public/locales/ko/manage/users.json +++ b/public/locales/ko/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "사용자", "pageTitle": "사용자 관리", - "text": "사용자를 사용하여 대시보드를 편집할 수 있는 사용자를 구성할 수 있습니다. 향후 Homarr 버전에서는 권한과 보드를 더욱 세밀하게 제어할 수 있습니다.", "buttons": { "create": "만들기" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "사용자" + "user": "사용자", + "email": "이메일" } }, "tooltips": { diff --git a/public/locales/ko/manage/users/edit.json b/public/locales/ko/manage/users/edit.json new file mode 100644 index 000000000..38b03d16a --- /dev/null +++ b/public/locales/ko/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "일반", + "inputs": { + "username": { + "label": "사용자 이름" + }, + "eMail": { + "label": "이메일" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "확인", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "영구 삭제", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/modules/date.json b/public/locales/ko/modules/date.json index 3b6c17696..469e30f1b 100644 --- a/public/locales/ko/modules/date.json +++ b/public/locales/ko/modules/date.json @@ -4,6 +4,13 @@ "description": "현재 날짜와 시간을 표시합니다.", "settings": { "title": "날짜 및 시간 위젯 설정", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "24시간제로 표시" }, @@ -13,18 +20,12 @@ "hide": "날짜 숨기기" } }, - "enableTimezone": { - "label": "사용자 지정 시간대 표시" - }, - "timezoneLocation": { - "label": "표준 시간대 위치" - }, "titleState": { - "label": "도시 제목", - "info": "시간대 옵션을 활성화하면 도시 이름과 시간대 코드가 표시될 수 있습니다.
도시만 표시하거나 도시를 표시하지 않을 수도 있습니다.", + "label": "", + "info": "", "data": { - "both": "도시 및 표준 시간대", - "city": "도시 전용", + "both": "", + "city": "", "none": "없음" } } diff --git a/public/locales/ko/modules/smart-home/entity-state.json b/public/locales/ko/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/ko/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/modules/torrents-status.json b/public/locales/ko/modules/torrents-status.json index 582f6515f..80b2d165b 100644 --- a/public/locales/ko/modules/torrents-status.json +++ b/public/locales/ko/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "이름", + "dateAdded": "", "size": "크기", "download": "다운로드", "upload": "업로드", "estimatedTimeOfArrival": "남은 시간", - "progress": "진행률" + "progress": "진행률", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "상태", + "stateMessage": "" }, "item": { "text": "관리: {{appName}}, {{ratio}} 비율" diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 3b7787e17..97911405f 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Platums", "height": "Augstums" - } + }, + "public": "Publisks", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/lv/layout/element-selector/selector.json b/public/locales/lv/layout/element-selector/selector.json index dab348688..88354cbf3 100644 --- a/public/locales/lv/layout/element-selector/selector.json +++ b/public/locales/lv/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Pievienot jaunu flīzi", - "text": "Galvenais Homarr elements ir flīzes. Tās tiek izmantotas, lai parādītu Jūsu programmas un citu informāciju. Varat pievienot tik daudz flīzes, cik vēlaties." - }, - "widgetDescription": "Logrīki mijiedarbojas ar Jūsu lietojumprogrammām, lai Jūs varētu labāk kontrolēt savas lietojumprogrammas. Pirms lietošanas tiem parasti nepieciešama papildu konfigurācija.", - "goBack": "Atgriezties uz iepriekšējo soli", - "actionIcon": { - "tooltip": "Pievienot flīzi" - }, - "apps": "Lietotnes", - "app": { - "defaultName": "Jūsu Lietotne" - }, - "widgets": "Logrīki", - "categories": "Kategorijas", - "category": { - "newName": "Kategorijas nosaukums", - "defaultName": "Jauna Kategorija", - "created": { - "title": "Kategorija izveidota", - "message": "Ir izveidota kategorija \"{{name}}\"" - } + "modal": { + "title": "Pievienot jaunu flīzi", + "text": "Galvenais Homarr elements ir flīzes. Tās tiek izmantotas, lai parādītu Jūsu programmas un citu informāciju. Varat pievienot tik daudz flīzes, cik vēlaties." + }, + "widgetDescription": "Logrīki mijiedarbojas ar Jūsu lietojumprogrammām, lai Jūs varētu labāk kontrolēt savas lietojumprogrammas. Pirms lietošanas tiem parasti nepieciešama papildu konfigurācija.", + "goBack": "Atgriezties uz iepriekšējo soli", + "actionIcon": { + "tooltip": "Pievienot flīzi" + }, + "apps": "Lietotnes", + "app": { + "defaultName": "Jūsu Lietotne" + }, + "widgets": "Logrīki", + "categories": "Kategorijas", + "category": { + "newName": "Kategorijas nosaukums", + "defaultName": "Jauna Kategorija", + "created": { + "title": "Kategorija izveidota", + "message": "Ir izveidota kategorija \"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/lv/manage/users.json b/public/locales/lv/manage/users.json index b513be1fe..1562ab6e6 100644 --- a/public/locales/lv/manage/users.json +++ b/public/locales/lv/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Lietotāji", "pageTitle": "Pārvaldīt lietotājus", - "text": "Izmantojot lietotājus, varat konfigurēt, kas var rediģēt paneļus. Nākamajās Homarr versijās būs pieejama vēl detalizētāka piekļuves tiesību un dēļu kontrole.", "buttons": { "create": "Izveidot" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Lietotājs" + "user": "Lietotājs", + "email": "E-pasts" } }, "tooltips": { diff --git a/public/locales/lv/manage/users/edit.json b/public/locales/lv/manage/users/edit.json new file mode 100644 index 000000000..a190593eb --- /dev/null +++ b/public/locales/lv/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Vispārīgi", + "inputs": { + "username": { + "label": "Lietotājvārds" + }, + "eMail": { + "label": "E-pasts" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Apstipriniet", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Neatgriezeniski dzēst", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/modules/date.json b/public/locales/lv/modules/date.json index c45a3eae3..6ece863de 100644 --- a/public/locales/lv/modules/date.json +++ b/public/locales/lv/modules/date.json @@ -4,6 +4,13 @@ "description": "Rāda pašreizējo datumu un laiku.", "settings": { "title": "Datuma un Laika logrīka iestatījumi", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Rādīt pilnu laiku (24 stundu)" }, @@ -13,18 +20,12 @@ "hide": "Paslēpt Datumu" } }, - "enableTimezone": { - "label": "Rādīt pielāgotu laika joslu" - }, - "timezoneLocation": { - "label": "Laika joslas Atrašanās vieta" - }, "titleState": { - "label": "Pilsētas nosaukums", - "info": "Aktivizējot opciju Laika josla, var parādīt pilsētas nosaukumu un laika joslas kodu.
Varat arī parādīt tikai pilsētu vai pat nerādīt nevienu.", + "label": "", + "info": "", "data": { - "both": "Pilsēta un Laika josla", - "city": "Tikai pilsēta", + "both": "", + "city": "", "none": "Nekas" } } diff --git a/public/locales/lv/modules/smart-home/entity-state.json b/public/locales/lv/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/lv/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/modules/torrents-status.json b/public/locales/lv/modules/torrents-status.json index 7aefcd158..84beeea59 100644 --- a/public/locales/lv/modules/torrents-status.json +++ b/public/locales/lv/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Nosaukums", + "dateAdded": "", "size": "Lielums", "download": "Lejupielāde", "upload": "Augšupielāde", "estimatedTimeOfArrival": "ETA", - "progress": "Progress" + "progress": "Progress", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Stāvoklis", + "stateMessage": "" }, "item": { "text": "Pārvalda {{appName}}, {{ratio}} attiecība" diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 28b0288a2..200c27260 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Breedte", "height": "Hoogte" - } + }, + "public": "Openbaar", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/nl/layout/element-selector/selector.json b/public/locales/nl/layout/element-selector/selector.json index 0e8e271c3..4a0332d57 100644 --- a/public/locales/nl/layout/element-selector/selector.json +++ b/public/locales/nl/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Nieuwe tegel toevoegen", - "text": "Tegels zijn het belangrijkste element van Homarr. Ze worden gebruikt om je apps en andere informatie weer te geven. Je kunt zoveel tegels toevoegen als je wilt." - }, - "widgetDescription": "Widgets werken samen met uw apps, om u meer controle over uw toepassingen te geven. Ze vereisen meestal extra configuratie voor gebruik.", - "goBack": "Ga terug naar de vorige stap", - "actionIcon": { - "tooltip": "Tegel toevoegen" - }, - "apps": "Apps", - "app": { - "defaultName": "Uw app" - }, - "widgets": "Widgets", - "categories": "Categorieën", - "category": { - "newName": "Naam van nieuwe categorie", - "defaultName": "Nieuwe categorie", - "created": { - "title": "Categorie gemaakt", - "message": "De categorie \"{{name}}\" is aangemaakt" - } + "modal": { + "title": "Nieuwe tegel toevoegen", + "text": "Tegels zijn het belangrijkste element van Homarr. Ze worden gebruikt om je apps en andere informatie weer te geven. Je kunt zoveel tegels toevoegen als je wilt." + }, + "widgetDescription": "Widgets werken samen met uw apps, om u meer controle over uw toepassingen te geven. Ze vereisen meestal extra configuratie voor gebruik.", + "goBack": "Ga terug naar de vorige stap", + "actionIcon": { + "tooltip": "Tegel toevoegen" + }, + "apps": "Apps", + "app": { + "defaultName": "Uw app" + }, + "widgets": "Widgets", + "categories": "Categorieën", + "category": { + "newName": "Naam van nieuwe categorie", + "defaultName": "Nieuwe categorie", + "created": { + "title": "Categorie gemaakt", + "message": "De categorie \"{{name}}\" is aangemaakt" } + }, + "importFromDocker": "" } diff --git a/public/locales/nl/manage/users.json b/public/locales/nl/manage/users.json index a60fc917d..176acda75 100644 --- a/public/locales/nl/manage/users.json +++ b/public/locales/nl/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Gebruikers", "pageTitle": "Gebruikers beheren", - "text": "Met behulp van gebruikers kun je instellen wie je dashboards mag bewerken. Toekomstige versies van Homarr zullen nog meer granulaire controle hebben over rechten en borden.", "buttons": { "create": "Maak" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Gebruiker" + "user": "Gebruiker", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/nl/manage/users/edit.json b/public/locales/nl/manage/users/edit.json new file mode 100644 index 000000000..270ab7277 --- /dev/null +++ b/public/locales/nl/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Algemeen", + "inputs": { + "username": { + "label": "Gebruikersnaam" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Bevestig", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Permanent verwijderen", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/date.json b/public/locales/nl/modules/date.json index 21c7e9597..5d4269b53 100644 --- a/public/locales/nl/modules/date.json +++ b/public/locales/nl/modules/date.json @@ -4,6 +4,13 @@ "description": "Toont de huidige datum en tijd.", "settings": { "title": "Instellingen voor datum en tijd widget", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Volledige tijd weergeven (24-uur)" }, @@ -13,18 +20,12 @@ "hide": "Datum verbergen" } }, - "enableTimezone": { - "label": "Een aangepaste tijdzone weergeven" - }, - "timezoneLocation": { - "label": "Tijdzone Locatie" - }, "titleState": { - "label": "Titel", - "info": "Als je de optie Tijdzone activeert, kun je de naam van de stad en de code van de tijdzone laten zien.
Je kunt ook alleen de stad of zelfs geen stad weergeven.", + "label": "", + "info": "", "data": { - "both": "Stad en tijdzone", - "city": "Alleen stad", + "both": "", + "city": "", "none": "Geen" } } diff --git a/public/locales/nl/modules/smart-home/entity-state.json b/public/locales/nl/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/nl/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/torrents-status.json b/public/locales/nl/modules/torrents-status.json index 32d2bd435..49083d16a 100644 --- a/public/locales/nl/modules/torrents-status.json +++ b/public/locales/nl/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Naam", + "dateAdded": "", "size": "Grootte", "download": "Down", "upload": "Up", "estimatedTimeOfArrival": "ETA", - "progress": "Voortgang" + "progress": "Voortgang", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Status", + "stateMessage": "" }, "item": { "text": "Beheerd door {{appName}}, {{ratio}} verhouding" diff --git a/public/locales/no/common.json b/public/locales/no/common.json index 1fc22fd99..bc62d1f6b 100644 --- a/public/locales/no/common.json +++ b/public/locales/no/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Bredde", "height": "Høyde" - } + }, + "public": "Offentlig", + "restricted": "Begrenset" } \ No newline at end of file diff --git a/public/locales/no/layout/element-selector/selector.json b/public/locales/no/layout/element-selector/selector.json index cc4ba91b2..49e9936cb 100644 --- a/public/locales/no/layout/element-selector/selector.json +++ b/public/locales/no/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Legg til en ny flis", - "text": "Fliser er det viktigste elementet i Homarr. De brukes til å vise appene og annen informasjon. Du kan legge til så mange fliser som du vil." - }, - "widgetDescription": "Widgets samhandler med appene dine for å gi deg mer kontroll over applikasjonene. De krever vanligvis ekstra konfigurasjon før bruk.", - "goBack": "Gå tilbake til forrige steg", - "actionIcon": { - "tooltip": "Legg til en flis" - }, - "apps": "Apper", - "app": { - "defaultName": "Din app" - }, - "widgets": "Widgetter", - "categories": "Kategorier", - "category": { - "newName": "Navn på ny kategori", - "defaultName": "Ny kategori", - "created": { - "title": "Kategori opprettet", - "message": "Kategorien \"{{name}}\" er opprettet" - } + "modal": { + "title": "Legg til en ny flis", + "text": "Fliser er det viktigste elementet i Homarr. De brukes til å vise appene og annen informasjon. Du kan legge til så mange fliser som du vil." + }, + "widgetDescription": "Widgets samhandler med appene dine for å gi deg mer kontroll over applikasjonene. De krever vanligvis ekstra konfigurasjon før bruk.", + "goBack": "Gå tilbake til forrige steg", + "actionIcon": { + "tooltip": "Legg til en flis" + }, + "apps": "Apper", + "app": { + "defaultName": "Din app" + }, + "widgets": "Widgetter", + "categories": "Kategorier", + "category": { + "newName": "Navn på ny kategori", + "defaultName": "Ny kategori", + "created": { + "title": "Kategori opprettet", + "message": "Kategorien \"{{name}}\" er opprettet" } + }, + "importFromDocker": "" } diff --git a/public/locales/no/manage/users.json b/public/locales/no/manage/users.json index 440b7bebb..012a3ade7 100644 --- a/public/locales/no/manage/users.json +++ b/public/locales/no/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Brukere", "pageTitle": "Administrer brukere", - "text": "Ved å bruke brukere kan du konfigurere hvem som kan redigere tavlene dine. Fremtidige versjoner av Homarr vil ha enda mer detaljert kontroll over tillatelser og tavler.", "buttons": { "create": "Opprett" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Bruker" + "user": "Bruker", + "email": "E-post" } }, "tooltips": { diff --git a/public/locales/no/manage/users/edit.json b/public/locales/no/manage/users/edit.json new file mode 100644 index 000000000..e42b28e15 --- /dev/null +++ b/public/locales/no/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Generelt", + "inputs": { + "username": { + "label": "Brukernavn" + }, + "eMail": { + "label": "E-post" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Bekreft", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Slett permanent", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/modules/date.json b/public/locales/no/modules/date.json index 314c06f1a..827331560 100644 --- a/public/locales/no/modules/date.json +++ b/public/locales/no/modules/date.json @@ -4,6 +4,13 @@ "description": "Viser gjeldende dato og klokkeslett.", "settings": { "title": "Innstillinger for dato og klokkeslett widget", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Vis 24 timers formatering" }, @@ -13,18 +20,12 @@ "hide": "Skjul dato" } }, - "enableTimezone": { - "label": "Vis en egendefinert tidssone" - }, - "timezoneLocation": { - "label": "Tidssone plassering" - }, "titleState": { - "label": "Bytittel", - "info": "Hvis du aktiverer Tidssone-alternativet, kan navnet på byen og tidssonekoden vises.
Du kan også vise byen alene eller ikke vise noen.", + "label": "", + "info": "", "data": { - "both": "By og tidssone", - "city": "Kun by", + "both": "", + "city": "", "none": "Ingen" } } diff --git a/public/locales/no/modules/smart-home/entity-state.json b/public/locales/no/modules/smart-home/entity-state.json new file mode 100644 index 000000000..e220f031b --- /dev/null +++ b/public/locales/no/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Enhet ikke funnet", + "descriptor": { + "name": "Home Assistant enhet", + "description": "Nåværende tilstand for en enhet i Home Assistant", + "settings": { + "title": "Enhetstilstand", + "entityId": { + "label": "Enhets-ID", + "info": "Unik enhets-ID i Home Assistant. Kopier ved å klikke på enhet > Klikk på tannhjulikonet > Klikk på kopieringsknappen ved Entitets-ID. Noen egendefinerte enheter støttes kanskje ikke." + }, + "displayName": { + "label": "Visningsnavn" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/modules/torrents-status.json b/public/locales/no/modules/torrents-status.json index 3bb3dc204..e8e00479a 100644 --- a/public/locales/no/modules/torrents-status.json +++ b/public/locales/no/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Laster ned", "name": "Navn", + "dateAdded": "Lagt til", "size": "Størrelse", "download": "Ned", "upload": "Opp", "estimatedTimeOfArrival": "Gjenstående tid (estimat)", - "progress": "Fremgang" + "progress": "Fremgang", + "totalUploaded": "Total opplasting", + "totalDownloaded": "Totalt nedlasting", + "ratio": "Forhold", + "seeds": "Seeds (tilkoblet)", + "peers": "Peers (tilkoblet)", + "label": "Etikett", + "state": "Status", + "stateMessage": "Tilstandsmelding" }, "item": { "text": "Styrt med {{appName}}, {{ratio}} forhold" diff --git a/public/locales/no/settings/customization/page-appearance.json b/public/locales/no/settings/customization/page-appearance.json index ab5c95018..ed470fe49 100644 --- a/public/locales/no/settings/customization/page-appearance.json +++ b/public/locales/no/settings/customization/page-appearance.json @@ -19,26 +19,26 @@ "label": "Bakgrunn" }, "backgroundImageAttachment": { - "label": "", + "label": "Bakgrunnsbildevedlegg", "options": { - "fixed": "", - "scroll": "" + "fixed": "Fast - Bakgrunn holder seg i samme posisjon (anbefales)", + "scroll": "Rull - Bakgrunnen ruller med musen" } }, "backgroundImageSize": { - "label": "", + "label": "Størrelse på bakgrunnsbilde", "options": { - "cover": "", - "contain": "" + "cover": "Dekk - Skalerer bildet så lite som mulig for å dekke hele vinduet ved å beskjære for mye plass. (anbefales)", + "contain": "Sperr inne - Skalerer bildet så stort som mulig i beholderen uten å beskjære eller strekke ut bildet." } }, "backgroundImageRepeat": { - "label": "", + "label": "Bakgrunnsbildevedlegg", "options": { - "repeat": "", - "no-repeat": "", - "repeat-x": "", - "repeat-y": "" + "repeat": "Gjenta - Bildet gjentas så mye som nødvendig for å dekke hele bakgrunnsbildet.", + "no-repeat": "Ingen repetisjon - Bildet gjentas ikke og fyller kanskje ikke hele plassen (anbefalt)", + "repeat-x": "Gjenta X - Samme som \"Gjenta\", men bare på horisontal akse.", + "repeat-y": "Gjenta Y - Samme som \"Gjenta\", men bare på vertikal akse." } }, "customCSS": { diff --git a/public/locales/no/tools/docker.json b/public/locales/no/tools/docker.json index d3895345b..c32d14e1f 100644 --- a/public/locales/no/tools/docker.json +++ b/public/locales/no/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "text": "Din Homarr-forekomst har ikke Docker konfigurert eller den har ikke klart å hente containere. Vennligst sjekk dokumentasjonen for hvordan du setter opp integrasjonen." } }, "modals": { diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index fe14bc03d..18e17c952 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -1,7 +1,7 @@ { "save": "Zapisz", "apply": "Zastosuj", - "insert": "", + "insert": "Wstaw", "about": "O programie", "cancel": "Anuluj", "close": "Zamknij", @@ -45,11 +45,13 @@ "seeMore": "Zobacz więcej...", "position": { "left": "Lewo", - "center": "", + "center": "Wyśrodkowany", "right": "Prawo" }, "attributes": { "width": "Szerokość", "height": "Wysokość" - } + }, + "public": "Publiczna", + "restricted": "Ograniczone" } \ No newline at end of file diff --git a/public/locales/pl/layout/element-selector/selector.json b/public/locales/pl/layout/element-selector/selector.json index 3592369bf..5e2746fed 100644 --- a/public/locales/pl/layout/element-selector/selector.json +++ b/public/locales/pl/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Dodaj nowy kafelek", - "text": "Kafelki są głównym elementem Homarr. Służą one do wyświetlania Twoich aplikacji i innych informacji. Możesz dodać tyle kafelków, ile chcesz." - }, - "widgetDescription": "Widżety wchodzą w interakcję z Twoimi aplikacjami, aby zapewnić Ci większą kontrolę nad Twoimi aplikacjami. Zazwyczaj wymagają one dodatkowej konfiguracji przed użyciem.", - "goBack": "Wróć do poprzedniego kroku", - "actionIcon": { - "tooltip": "Dodaj kafelek" - }, - "apps": "Aplikacje", - "app": { - "defaultName": "Twoja aplikacja" - }, - "widgets": "Widżety", - "categories": "Kategorie", - "category": { - "newName": "Nazwa nowej kategorii", - "defaultName": "Nowa kategoria", - "created": { - "title": "Utworzono nową kategorię", - "message": "Kategoria \"{{name}}\" została utworzona" - } + "modal": { + "title": "Dodaj nowy kafelek", + "text": "Kafelki są głównym elementem Homarr. Służą one do wyświetlania Twoich aplikacji i innych informacji. Możesz dodać tyle kafelków, ile chcesz." + }, + "widgetDescription": "Widżety wchodzą w interakcję z Twoimi aplikacjami, aby zapewnić Ci większą kontrolę nad Twoimi aplikacjami. Zazwyczaj wymagają one dodatkowej konfiguracji przed użyciem.", + "goBack": "Wróć do poprzedniego kroku", + "actionIcon": { + "tooltip": "Dodaj kafelek" + }, + "apps": "Aplikacje", + "app": { + "defaultName": "Twoja aplikacja" + }, + "widgets": "Widżety", + "categories": "Kategorie", + "category": { + "newName": "Nazwa nowej kategorii", + "defaultName": "Nowa kategoria", + "created": { + "title": "Utworzono nową kategorię", + "message": "Kategoria \"{{name}}\" została utworzona" } + }, + "importFromDocker": "" } diff --git a/public/locales/pl/layout/modals/add-app.json b/public/locales/pl/layout/modals/add-app.json index 841cb2881..79445aae3 100644 --- a/public/locales/pl/layout/modals/add-app.json +++ b/public/locales/pl/layout/modals/add-app.json @@ -20,11 +20,11 @@ "lines": { "nothingAfterPort": "W większości, jeśli nie we wszystkich przypadkach, nie należy wprowadzać żadnej ścieżki po porcie. (Nawet '/admin' dla pihole lub '/web' dla plex)", "protocolCheck": "Zawsze upewnij się, że adres URL jest poprzedzony przez http lub https, i upewnij się, że używasz odpowiedniego adresu.", - "preferIP": "", - "enablePings": "", - "wget": "", - "iframe": "", - "clearCache": "" + "preferIP": "Zalecane jest użycie bezpośredniego adresu IP maszyny lub kontenera, z którym próbujesz się komunikować.", + "enablePings": "Sprawdź, czy adres IP jest prawidłowy, włączając polecenia ping. Dostosuj tablicę -> Układ -> Włącz pingi. Na kafelkach aplikacji pojawi się mała czerwona lub zielona dymka, a najechanie na nią spowoduje wyświetlenie kodu odpowiedzi (w większości przypadków oczekiwana jest zielona dymka z kodem 200).", + "wget": "Aby mieć pewność, że homarr będzie mógł komunikować się z innymi aplikacjami, wykonaj wget/curl/ping IP:port aplikacji.", + "iframe": "Jeśli chodzi o ramki iframe, powinny one zawsze używać tego samego protokołu (http/s), co Homarr.", + "clearCache": "Niektóre informacje są rejestrowane w pamięci podręcznej, więc integracja może nie działać, jeśli nie wyczyścisz pamięci podręcznej w ogólnych opcjach Homarr." }, "footer": "Aby uzyskać więcej informacji na temat rozwiązywania problemów, skontaktuj się z nami na naszym {{discord}}." } diff --git a/public/locales/pl/manage/users.json b/public/locales/pl/manage/users.json index 248d4b9c6..b28b572c9 100644 --- a/public/locales/pl/manage/users.json +++ b/public/locales/pl/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Użytkownicy", "pageTitle": "Zarządzaj użytkownikami", - "text": "Używając użytkowników, możesz skonfigurować, kto może edytować twoje panele. Przyszłe wersje Homarr będą miały jeszcze większą kontrolę nad uprawnieniami i działami.", "buttons": { "create": "Utwórz" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Użytkownik" + "user": "Użytkownik", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/pl/manage/users/edit.json b/public/locales/pl/manage/users/edit.json new file mode 100644 index 000000000..f8d00574c --- /dev/null +++ b/public/locales/pl/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Ogólne", + "inputs": { + "username": { + "label": "Nazwa użytkownika" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Potwierdź", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Usuń trwale", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/calendar.json b/public/locales/pl/modules/calendar.json index e3ba8e24a..7cbf4cf41 100644 --- a/public/locales/pl/modules/calendar.json +++ b/public/locales/pl/modules/calendar.json @@ -3,7 +3,7 @@ "name": "Kalendarz", "description": "Wyświetla kalendarz z nadchodzącymi wydaniami, z obsługiwanych integracji.", "settings": { - "title": "Ustawienia dla widżetu Kalendarz", + "title": "Ustawienia dla widżetu Kalendarza", "radarrReleaseType": { "label": "Rodzaj premiery w Radarr", "data": { diff --git a/public/locales/pl/modules/dashdot.json b/public/locales/pl/modules/dashdot.json index 3deca86e3..93f560112 100644 --- a/public/locales/pl/modules/dashdot.json +++ b/public/locales/pl/modules/dashdot.json @@ -1,6 +1,6 @@ { "descriptor": { - "name": "Dash.", + "name": "Dach.", "description": "Wyświetla wykresy zewnętrznego Dash. Instancja wewnątrz Homarr.", "settings": { "title": "Ustawienia dla widgetu Dash.", @@ -82,7 +82,7 @@ } }, "card": { - "title": "Dash.", + "title": "Dach.", "errors": { "noService": "Nie znaleziono usługi Dash. Proszę dodać ją do pulpitu Homarra lub ustawić adres URL usługi Dash. w opcjach modułu", "noInformation": "Nie można uzyskać informacji z dash. - używasz najnowszej wersji?", diff --git a/public/locales/pl/modules/date.json b/public/locales/pl/modules/date.json index 1a7100fed..1c5e5320c 100644 --- a/public/locales/pl/modules/date.json +++ b/public/locales/pl/modules/date.json @@ -4,6 +4,13 @@ "description": "Wyświetla bieżącą datę i godzinę.", "settings": { "title": "Ustawienia dla widżetu Data i Czas", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Wyświetlaj pełną godzinę (format 24-godzinny)" }, @@ -13,18 +20,12 @@ "hide": "Ukryj datę" } }, - "enableTimezone": { - "label": "Wyświetl niestandardową strefę czasową" - }, - "timezoneLocation": { - "label": "Lokalizacja strefy czasowej" - }, "titleState": { - "label": "Nazwa miasta", - "info": "W przypadku aktywowania opcji Strefa czasowa, wyświetlana może być nazwa miasta i kod strefy czasowej.
Możesz także wyświetlić samo miasto lub nie wyświetlać żadnego.", + "label": "", + "info": "", "data": { - "both": "Miasto i strefa czasowa", - "city": "Tylko miasto", + "both": "", + "city": "", "none": "Żaden" } } diff --git a/public/locales/pl/modules/notebook.json b/public/locales/pl/modules/notebook.json index 84b043ebb..e800018db 100644 --- a/public/locales/pl/modules/notebook.json +++ b/public/locales/pl/modules/notebook.json @@ -8,7 +8,7 @@ "label": "Pokaż pasek narzędzi ułatwiający pisanie w markdown" }, "allowReadOnlyCheck": { - "label": "" + "label": "Zezwalaj na sprawdzanie w trybie tylko do odczytu" }, "content": { "label": "Zawartość notatnika" @@ -39,7 +39,7 @@ "image": "Osadź obraz", "addTable": "Dodaj tabelę", "deleteTable": "Usuń tabelę", - "colorCell": "", + "colorCell": "Kolor Komórki", "mergeCell": "Przełączanie scalania komórek", "addColumnLeft": "Dodaj kolumnę przed", "addColumnRight": "Dodaj kolumnę po", diff --git a/public/locales/pl/modules/smart-home/entity-state.json b/public/locales/pl/modules/smart-home/entity-state.json new file mode 100644 index 000000000..7a20ee12d --- /dev/null +++ b/public/locales/pl/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Nie znaleziono obiektu", + "descriptor": { + "name": "Obiekt asystenta domu", + "description": "Aktualny stan obiektu w Asystencie Domu", + "settings": { + "title": "Stan obiektu", + "entityId": { + "label": "ID obiektu", + "info": "Unikalne ID obiektu w Asystencie Domu. Kopiuj klikając na obiekt > Kliknij ikonę koła zębatego > Kliknij na przycisk kopiuj na 'ID obiektu'. Niektóre niestandardowe obiekty mogą nie być obsługiwane." + }, + "displayName": { + "label": "Nazwa wyświetlana" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/torrents-status.json b/public/locales/pl/modules/torrents-status.json index e21bbb299..312785e3e 100644 --- a/public/locales/pl/modules/torrents-status.json +++ b/public/locales/pl/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Wyświetlanie ukończonych torrentów" }, "displayActiveTorrents": { - "label": "" + "label": "Wyświetl aktywne torrenty" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Prędkość wysyłania pozwalająca uznać torrent za aktywny (kB/s)" }, "displayStaleTorrents": { "label": "Wyświetlanie nieaktualnych torrentów" @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Nazwa", + "dateAdded": "", "size": "Rozmiar", "download": "Pobieranie", "upload": "Udostępnianie", "estimatedTimeOfArrival": "ETA", - "progress": "Postęp" + "progress": "Postęp", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Status", + "stateMessage": "" }, "item": { "text": "Zarządzany przez {{appName}}, {{ratio}} stosunek" diff --git a/public/locales/pl/settings/customization/page-appearance.json b/public/locales/pl/settings/customization/page-appearance.json index 4cdb44fa8..eb91bd053 100644 --- a/public/locales/pl/settings/customization/page-appearance.json +++ b/public/locales/pl/settings/customization/page-appearance.json @@ -19,26 +19,26 @@ "label": "Tło" }, "backgroundImageAttachment": { - "label": "", + "label": "Ustawienie obrazu tła", "options": { - "fixed": "", - "scroll": "" + "fixed": "Fixed – Tło pozostaje w tej samej pozycji (zalecane)", + "scroll": "Scroll - Tło przewija się za pomocą myszy" } }, "backgroundImageSize": { - "label": "", + "label": "Rozmiar obrazu tła", "options": { - "cover": "", - "contain": "" + "cover": "Cover — skaluje obraz do najmniejszego możliwego rozmiaru, aby pokryć całe okno poprzez przycięcie nadmiernej przestrzeni. (Zalecana)", + "contain": "Contain — skaluje obraz do największego możliwego rozmiaru w jego kontenerze, bez przycinania i rozciągania obrazu." } }, "backgroundImageRepeat": { - "label": "", + "label": "Ustawienie obrazu tła", "options": { - "repeat": "", - "no-repeat": "", - "repeat-x": "", - "repeat-y": "" + "repeat": "Repeat — obraz jest powtarzany tak często, jak to konieczne, aby pokryć cały obszar obrazu tła.", + "no-repeat": "No repeat — obraz nie jest powtarzany i może nie wypełniać całej przestrzeni (zalecane)", + "repeat-x": "Repeat X — to samo co „Powtórz”, ale tylko na osi poziomej.", + "repeat-y": "Repeat Y — to samo co „Powtórz”, ale tylko w osi pionowej." } }, "customCSS": { diff --git a/public/locales/pl/tools/docker.json b/public/locales/pl/tools/docker.json index 5eccbe96a..af1ad0e11 100644 --- a/public/locales/pl/tools/docker.json +++ b/public/locales/pl/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "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ę." } }, "modals": { diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 8ca0efcd8..da2117089 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -1,7 +1,7 @@ { "save": "Salvar", - "apply": "", - "insert": "", + "apply": "Aplicar", + "insert": "Inserir", "about": "Sobre", "cancel": "Cancelar", "close": "Fechar", @@ -45,11 +45,13 @@ "seeMore": "Veja mais...", "position": { "left": "Esquerda", - "center": "", + "center": "Centralizado", "right": "Certo" }, "attributes": { "width": "Largura", "height": "Altura" - } + }, + "public": "Público", + "restricted": "Restrito" } \ No newline at end of file diff --git a/public/locales/pt/layout/element-selector/selector.json b/public/locales/pt/layout/element-selector/selector.json index e1c151b53..8a60ba385 100644 --- a/public/locales/pt/layout/element-selector/selector.json +++ b/public/locales/pt/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Acrescentar um novo azulejo", - "text": "Os azulejos são o principal elemento do Homarr. São utilizados para exibir as suas aplicações e outras informações. Pode adicionar tantos azulejos quantos desejar." - }, - "widgetDescription": "Os widgets interagem com as suas aplicações, para lhe proporcionar mais controlo sobre as suas aplicações. Normalmente requerem configuração adicional antes da sua utilização.", - "goBack": "Voltar ao passo anterior", - "actionIcon": { - "tooltip": "Acrescentar um azulejo" - }, - "apps": "Aplicativos", - "app": { - "defaultName": "Seu aplicativo" - }, - "widgets": "Widgets", - "categories": "Categorias", - "category": { - "newName": "Nome da nova categoria", - "defaultName": "Nova categoria", - "created": { - "title": "Categoria criada", - "message": "A categoria \"{{name}}\" foi criada" - } + "modal": { + "title": "Acrescentar um novo azulejo", + "text": "Os azulejos são o principal elemento do Homarr. São utilizados para exibir as suas aplicações e outras informações. Pode adicionar tantos azulejos quantos desejar." + }, + "widgetDescription": "Os widgets interagem com as suas aplicações, para lhe proporcionar mais controlo sobre as suas aplicações. Normalmente requerem configuração adicional antes da sua utilização.", + "goBack": "Voltar ao passo anterior", + "actionIcon": { + "tooltip": "Acrescentar um azulejo" + }, + "apps": "Aplicativos", + "app": { + "defaultName": "Seu aplicativo" + }, + "widgets": "Widgets", + "categories": "Categorias", + "category": { + "newName": "Nome da nova categoria", + "defaultName": "Nova categoria", + "created": { + "title": "Categoria criada", + "message": "A categoria \"{{name}}\" foi criada" } + }, + "importFromDocker": "" } diff --git a/public/locales/pt/layout/modals/about.json b/public/locales/pt/layout/modals/about.json index 471f0a8d0..ade865ce1 100644 --- a/public/locales/pt/layout/modals/about.json +++ b/public/locales/pt/layout/modals/about.json @@ -5,10 +5,10 @@ "key": "Tecla de atalho", "action": "Ação", "keybinds": "Ligações de teclas", - "translators": "", - "translatorsDescription": "", - "contributors": "", - "contributorsDescription": "", + "translators": "Tradutores ({{count}})", + "translatorsDescription": "Graças a essas pessoas, o Homarr está disponível em {{languages}} idiomas! Quer ajudar a traduzir o Homarr para seu idioma? Veja como fazer isso aqui.", + "contributors": "Colaboradores ({{count}})", + "contributorsDescription": "Essas pessoas criaram o código que faz o homarr funcionar! Quer ajudar a construir o Homarr? Veja como fazer isso aqui", "actions": { "toggleTheme": "Alternar o modo claro/escuro", "focusSearchBar": "Foco na barra de pesquisa", diff --git a/public/locales/pt/manage/users.json b/public/locales/pt/manage/users.json index d28922337..fc94a8803 100644 --- a/public/locales/pt/manage/users.json +++ b/public/locales/pt/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Usuários", "pageTitle": "Gerenciar usuários", - "text": "Usando usuários, você pode configurar quem pode editar seus painéis. As versões futuras do Homarr terão um controle ainda mais granular sobre as permissões e os painéis.", "buttons": { "create": "Criar" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Usuário" + "user": "Usuário", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/pt/manage/users/edit.json b/public/locales/pt/manage/users/edit.json new file mode 100644 index 000000000..f34018664 --- /dev/null +++ b/public/locales/pt/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Geral", + "inputs": { + "username": { + "label": "Usuário" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Confirme", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Excluir permanentemente", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/modules/date.json b/public/locales/pt/modules/date.json index c2ff02e18..67008b0db 100644 --- a/public/locales/pt/modules/date.json +++ b/public/locales/pt/modules/date.json @@ -4,6 +4,13 @@ "description": "Apresenta a data e hora actuais.", "settings": { "title": "Definições para o widget de Data e Hora", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Mostrar tempo (24 horas)" }, @@ -13,18 +20,12 @@ "hide": "Ocultar data" } }, - "enableTimezone": { - "label": "Exibir um fuso horário personalizado" - }, - "timezoneLocation": { - "label": "Localização do fuso horário" - }, "titleState": { - "label": "Título da cidade", - "info": "Se você ativar a opção Fuso horário, o nome da cidade e o código do fuso horário poderão ser exibidos.
Você também pode mostrar somente a cidade ou até mesmo não mostrar nenhuma.", + "label": "", + "info": "", "data": { - "both": "Cidade e fuso horário", - "city": "Somente na cidade", + "both": "", + "city": "", "none": "Nenhum" } } diff --git a/public/locales/pt/modules/dns-hole-summary.json b/public/locales/pt/modules/dns-hole-summary.json index b6fde0d77..075ce5239 100644 --- a/public/locales/pt/modules/dns-hole-summary.json +++ b/public/locales/pt/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domínios em adlists", "queriesToday": "Consultas hoje", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "queriesBlockedTodayPercentage": "Bloqueado hoje", + "queriesBlockedToday": "Bloqueado hoje" } } } diff --git a/public/locales/pt/modules/notebook.json b/public/locales/pt/modules/notebook.json index a48a95c33..41de25796 100644 --- a/public/locales/pt/modules/notebook.json +++ b/public/locales/pt/modules/notebook.json @@ -8,7 +8,7 @@ "label": "Mostrar a barra de ferramentas para ajudá-lo a escrever markdown" }, "allowReadOnlyCheck": { - "label": "" + "label": "Permitir a verificação no modo de leitura" }, "content": { "label": "O conteúdo do notebook" @@ -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": "Negrito", + "italic": "Itálico", + "strikethrough": "Riscar", + "underline": "Sublinhar", + "colorText": "Cor do texto", + "colorHighlight": "Texto colorido em destaque", + "code": "Código", + "clear": "Limpar formatação", + "heading": "Cabeçalho {{level}}", + "align": "Alinhar texto: {{position}}", + "blockquote": "Bloco de Citação", + "horizontalLine": "Linha horizontal", + "bulletList": "Lista de marcadores", + "orderedList": "Lista ordenada", + "checkList": "Lista de verificação", + "increaseIndent": "Aumentar recuo", + "decreaseIndent": "Diminuir recuo", + "link": "Link", + "unlink": "Remover link", + "image": "Incorporar imagem", + "addTable": "Adicionar tabela", + "deleteTable": "Excluir tabela", + "colorCell": "Cor da Célula", + "mergeCell": "Ativar/desativar mesclagem de células", + "addColumnLeft": "Adicionar coluna antes", + "addColumnRight": "Adicionar coluna depois", + "deleteColumn": "Excluir coluna", + "addRowTop": "Adicionar linha antes", + "addRowBelow": "Adicionar linha depois", + "deleteRow": "Excluir linha" }, "modals": { - "clearColor": "", - "source": "", - "widthPlaceholder": "", - "columns": "", - "rows": "" + "clearColor": "Limpar cor", + "source": "Fonte", + "widthPlaceholder": "Valor em % ou pixels", + "columns": "Colunas", + "rows": "Linhas" } } } \ No newline at end of file diff --git a/public/locales/pt/modules/smart-home/entity-state.json b/public/locales/pt/modules/smart-home/entity-state.json new file mode 100644 index 000000000..7f0bd673d --- /dev/null +++ b/public/locales/pt/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Entidade não encontrada", + "descriptor": { + "name": "Entidade Home Assistant", + "description": "Estado atual de uma entidade do Home Assistant", + "settings": { + "title": "Estado da entidade", + "entityId": { + "label": "ID da entidade", + "info": "ID de entidade exclusiva do Home Assistant. Copie clicando na entidade > Clique no ícone de engrenagem > Clique no botão copiar em 'ID da entidade'. Algumas entidades personalizadas podem não ser suportadas." + }, + "displayName": { + "label": "Nome de exibição" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/modules/torrents-status.json b/public/locales/pt/modules/torrents-status.json index 8089d44ba..cd004536c 100644 --- a/public/locales/pt/modules/torrents-status.json +++ b/public/locales/pt/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Mostrar torrentes completas" }, "displayActiveTorrents": { - "label": "" + "label": "Exibir torrents ativos" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Velocidade de upload para considerar um torrent como ativo (kB/s)" }, "displayStaleTorrents": { "label": "Exibição de torrentes envelhecidas" @@ -27,8 +27,8 @@ "description": "Quando a opção \"is whitelist\" estiver marcada, ela funcionará como uma lista de permissões. Se não estiver marcada, será uma lista negra. Não fará nada quando estiver vazia" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Exibir proporção da lista de torrents filtrados", + "info": "Se estiver desativado, somente a proporção global será exibida. A proporção global ainda usará os rótulos se estiver definida" } } }, @@ -36,17 +36,27 @@ "footer": { "error": "Erro", "lastUpdated": "Última actualização {{time}} atrás", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Proporção global", + "ratioWithFilter": "Proporção com filtro" }, "table": { "header": { + "isCompleted": "", "name": "Nome", + "dateAdded": "", "size": "Tamanho", "download": "Para baixo", "upload": "Para cima", "estimatedTimeOfArrival": "TED", - "progress": "Progresso" + "progress": "Progresso", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Estado", + "stateMessage": "" }, "item": { "text": "Gerido por {{appName}}, {{ratio}} ratio" diff --git a/public/locales/pt/settings/customization/general.json b/public/locales/pt/settings/customization/general.json index 80053d146..f2a5ab396 100644 --- a/public/locales/pt/settings/customization/general.json +++ b/public/locales/pt/settings/customization/general.json @@ -22,7 +22,7 @@ "description": "Configure o Homarr para usuários com deficiência ou incapacitados" }, "access": { - "name": "", + "name": "Acesso", "description": "Configure quem tem acesso ao seu quadro" } } diff --git a/public/locales/pt/settings/customization/page-appearance.json b/public/locales/pt/settings/customization/page-appearance.json index 8f8a32ec9..66581d72c 100644 --- a/public/locales/pt/settings/customization/page-appearance.json +++ b/public/locales/pt/settings/customization/page-appearance.json @@ -19,26 +19,26 @@ "label": "Antecedentes" }, "backgroundImageAttachment": { - "label": "", + "label": "Anexo de imagem de fundo", "options": { - "fixed": "", - "scroll": "" + "fixed": "Fixado - O plano de fundo permanece na mesma posição (recomendado)", + "scroll": "Rolagem - O plano de fundo rola com seu mouse" } }, "backgroundImageSize": { - "label": "", + "label": "Tamanho da imagem de fundo", "options": { - "cover": "", - "contain": "" + "cover": "Capa - Dimensiona a imagem o menor possível para cobrir toda a janela cortando o espaço excessivo. (recomendado)", + "contain": "Conter - Dimensiona a imagem o máximo possível dentro de seu contêiner, sem cortar ou esticar a imagem." } }, "backgroundImageRepeat": { - "label": "", + "label": "Anexo de imagem de fundo", "options": { - "repeat": "", - "no-repeat": "", - "repeat-x": "", - "repeat-y": "" + "repeat": "Repetir - A imagem é repetida o quanto for necessário para cobrir toda a área de pintura da imagem de fundo.", + "no-repeat": "Sem repetição - A imagem não se repete e pode não preencher todo o espaço (recomendado)", + "repeat-x": "Repetir X - O mesmo que 'Repetir', mas apenas no eixo horizontal.", + "repeat-y": "Repetir Y - O mesmo que 'Repetir', mas apenas no eixo vertical." } }, "customCSS": { diff --git a/public/locales/pt/tools/docker.json b/public/locales/pt/tools/docker.json index b81fe732e..7e080aceb 100644 --- a/public/locales/pt/tools/docker.json +++ b/public/locales/pt/tools/docker.json @@ -2,16 +2,16 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "text": "Sua instância do Homarr não possui o Docker configurado ou falhou em buscar contêineres. Por favor, verifique a documentação sobre como configurar a integração." } }, "modals": { "selectBoard": { - "title": "Escolha uma placa", + "title": "Escolha um quadro", "text": "Escolha o quadro em que deseja adicionar os aplicativos para os contêineres do Docker selecionados.", "form": { "board": { - "label": "Diretoria" + "label": "Quadro" }, "submit": "Adicionar aplicativos" } diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 182197bbd..2bdeb1d73 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Ширина", "height": "Высота" - } + }, + "public": "Публичный", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/ru/layout/element-selector/selector.json b/public/locales/ru/layout/element-selector/selector.json index a57639896..4968fd827 100644 --- a/public/locales/ru/layout/element-selector/selector.json +++ b/public/locales/ru/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Добавить новую плитку", - "text": "Плитки - это основной элемент в Homarr. Они используются для отображения ваших приложений и другой информации. Вы можете добавить столько плиток, сколько захотите." - }, - "widgetDescription": "Виджеты взаимодействуют с вашими приложениями, предоставляя вам больше контроля над ними. Обычно они требуют дополнительной настройки перед использованием.", - "goBack": "Вернуться к предыдущему шагу", - "actionIcon": { - "tooltip": "Добавить плитку" - }, - "apps": "Приложения", - "app": { - "defaultName": "Ваше приложение" - }, - "widgets": "Виджеты", - "categories": "Категории", - "category": { - "newName": "Название новой категории", - "defaultName": "Новая категория", - "created": { - "title": "Категория создана", - "message": "Создана категория \"{{name}}\"" - } + "modal": { + "title": "Добавить новую плитку", + "text": "Плитки - это основной элемент в Homarr. Они используются для отображения ваших приложений и другой информации. Вы можете добавить столько плиток, сколько захотите." + }, + "widgetDescription": "Виджеты взаимодействуют с вашими приложениями, предоставляя вам больше контроля над ними. Обычно они требуют дополнительной настройки перед использованием.", + "goBack": "Вернуться к предыдущему шагу", + "actionIcon": { + "tooltip": "Добавить плитку" + }, + "apps": "Приложения", + "app": { + "defaultName": "Ваше приложение" + }, + "widgets": "Виджеты", + "categories": "Категории", + "category": { + "newName": "Название новой категории", + "defaultName": "Новая категория", + "created": { + "title": "Категория создана", + "message": "Создана категория \"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/ru/layout/modals/about.json b/public/locales/ru/layout/modals/about.json index 733b951de..e18621e77 100644 --- a/public/locales/ru/layout/modals/about.json +++ b/public/locales/ru/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/ru/manage/users.json b/public/locales/ru/manage/users.json index e41f34e3f..84585161f 100644 --- a/public/locales/ru/manage/users.json +++ b/public/locales/ru/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Пользователи", "pageTitle": "Управлять пользователями", - "text": "Используя пользователей, вы можете настроить, кто может редактировать ваши панели. В будущих версиях Homarr у вас будет еще более детальный контроль над правами доступа и панелями.", "buttons": { "create": "Создать" }, + "filter": { + "roles": { + "all": "Все", + "normal": "Обычный", + "admin": "Администратор", + "owner": "Владелец" + } + }, "table": { "header": { - "user": "Пользователь" + "user": "Пользователь", + "email": "E-Mail" } }, "tooltips": { diff --git a/public/locales/ru/manage/users/edit.json b/public/locales/ru/manage/users/edit.json new file mode 100644 index 000000000..464539cf6 --- /dev/null +++ b/public/locales/ru/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Пользователь {{username}}", + "back": "Вернуться к управлению пользователями", + "sections": { + "general": { + "title": "Общие", + "inputs": { + "username": { + "label": "Имя пользователя" + }, + "eMail": { + "label": "E-Mail" + } + } + }, + "security": { + "title": "Безопасность", + "inputs": { + "password": { + "label": "Новый пароль" + }, + "terminateExistingSessions": { + "label": "Закрыть текущие сессии", + "description": "Заставить пользователя снова войти на своих устройствах" + }, + "confirm": { + "label": "Подтвердить", + "description": "Пароль будет обновлен. Действие не может быть отменено." + } + } + }, + "roles": { + "title": "Роли", + "currentRole": "Текущая роль: ", + "badges": { + "owner": "Владелец", + "admin": "Администратор", + "normal": "Обычный" + } + }, + "deletion": { + "title": "Удаление аккаунта", + "inputs": { + "confirmUsername": { + "label": "Подтвердить имя пользователя", + "description": "Введите имя пользователя, чтобы подтвердить удаление" + }, + "confirm": { + "label": "Удалить навсегда", + "description": "Я знаю, что это действие является необратимым и все данные учетной записи будут потеряны." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/date.json b/public/locales/ru/modules/date.json index 377638ea3..d9f04962a 100644 --- a/public/locales/ru/modules/date.json +++ b/public/locales/ru/modules/date.json @@ -4,6 +4,13 @@ "description": "Отображает текущую дату и время.", "settings": { "title": "Настройки для виджета даты и времени", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Отображать в 24-часовом формате" }, @@ -13,18 +20,12 @@ "hide": "Скрыть дату" } }, - "enableTimezone": { - "label": "Отображать пользовательский часовой пояс" - }, - "timezoneLocation": { - "label": "Местоположение часового пояса" - }, "titleState": { - "label": "Название города", - "info": "При активации опции Часовой пояс, можно отображать название города и код часового пояса.
Также можно отображать только город или совсем ничего.", + "label": "", + "info": "", "data": { - "both": "Город и часовой пояс", - "city": "Только город", + "both": "", + "city": "", "none": "Нет" } } diff --git a/public/locales/ru/modules/smart-home/entity-state.json b/public/locales/ru/modules/smart-home/entity-state.json new file mode 100644 index 000000000..37bd91a38 --- /dev/null +++ b/public/locales/ru/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Объект не найден", + "descriptor": { + "name": "Объект Home Assistant", + "description": "Текущее состояние объекта в Home Assistant", + "settings": { + "title": "Состояние объекта", + "entityId": { + "label": "ID объекта", + "info": "Уникальный идентификатор объекта в Home Assistant. Скопируйте, нажав на объект > Щелкните значок шестеренки > Нажмите кнопку копирования в разделе «Идентификатор объекта». Некоторые пользовательские объекты могут не поддерживаться." + }, + "displayName": { + "label": "Отображаемое имя" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/torrents-status.json b/public/locales/ru/modules/torrents-status.json index 37c56b96a..64bcbd61d 100644 --- a/public/locales/ru/modules/torrents-status.json +++ b/public/locales/ru/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Отображение завершенных торрентов" }, "displayActiveTorrents": { - "label": "" + "label": "Отображать активные торренты" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Скорость загрузки, при которой торрент считается активным (кБ/с)" }, "displayStaleTorrents": { "label": "Отображение устаревших торрентов" @@ -27,7 +27,7 @@ "description": "Когда отмечено 'белый список', применится как белый список. Если не отмечено, применится как чёрный список. Не будет ничего делать, если пусто" }, "displayRatioWithFilter": { - "label": "", + "label": "Отображение соотношения списка отфильтрованных торрентов", "info": "" } } @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Имя", + "dateAdded": "", "size": "Размер", "download": "Загрузка", "upload": "Отдача", "estimatedTimeOfArrival": "Осталось", - "progress": "Прогресс" + "progress": "Прогресс", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Состояние", + "stateMessage": "" }, "item": { "text": "Под управлением {{appName}}, {{ratio}} рейтинг" diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index 86fc75c7a..751de2984 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Šírka", "height": "Výška" - } + }, + "public": "Verejné", + "restricted": "Obmedzené" } \ No newline at end of file diff --git a/public/locales/sk/layout/element-selector/selector.json b/public/locales/sk/layout/element-selector/selector.json index 387db530e..9591c59ee 100644 --- a/public/locales/sk/layout/element-selector/selector.json +++ b/public/locales/sk/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Pridajte novú dlaždicu", - "text": "Dlaždice sú hlavným prvkom Homarr. Používajú sa na zobrazenie vašich aplikácií a ďalších informácií. Môžete pridať toľko dlaždíc, koľko chcete." - }, - "widgetDescription": "Mini aplikácie spolupracujú s vašimi aplikáciami, aby vám poskytli väčšiu kontrolu nad vašimi aplikáciami. Pred použitím zvyčajne vyžadujú dodatočnú konfiguráciu.", - "goBack": "Vráťte sa na predchádzajúci krok", - "actionIcon": { - "tooltip": "Pridajte dlaždicu" - }, - "apps": "Aplikácie", - "app": { - "defaultName": "Vaša aplikácia" - }, - "widgets": "Miniaplikácie", - "categories": "Kategórie", - "category": { - "newName": "Názov novej kategórie", - "defaultName": "Nová Kategória", - "created": { - "title": "Kategória vytvorená", - "message": "Bola vytvorená kategória \"{{name}}\"" - } + "modal": { + "title": "Pridajte novú dlaždicu", + "text": "Dlaždice sú hlavným prvkom Homarr. Používajú sa na zobrazenie vašich aplikácií a ďalších informácií. Môžete pridať toľko dlaždíc, koľko chcete." + }, + "widgetDescription": "Mini aplikácie spolupracujú s vašimi aplikáciami, aby vám poskytli väčšiu kontrolu nad vašimi aplikáciami. Pred použitím zvyčajne vyžadujú dodatočnú konfiguráciu.", + "goBack": "Vráťte sa na predchádzajúci krok", + "actionIcon": { + "tooltip": "Pridajte dlaždicu" + }, + "apps": "Aplikácie", + "app": { + "defaultName": "Vaša aplikácia" + }, + "widgets": "Miniaplikácie", + "categories": "Kategórie", + "category": { + "newName": "Názov novej kategórie", + "defaultName": "Nová Kategória", + "created": { + "title": "Kategória vytvorená", + "message": "Bola vytvorená kategória \"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/sk/manage/users.json b/public/locales/sk/manage/users.json index 4b44e0d57..e6b5a4ed3 100644 --- a/public/locales/sk/manage/users.json +++ b/public/locales/sk/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Používatelia", "pageTitle": "Spravovať používateľov", - "text": "Pomocou používateľov môžete nakonfigurovať, kto môže upravovať informačné panely. Budúce verzie aplikácie Homarr budú mať ešte podrobnejšie ovládanie oprávnení a tabuliek.", "buttons": { "create": "Vytvoriť" }, + "filter": { + "roles": { + "all": "Všetko", + "normal": "Normálna", + "admin": "Správca", + "owner": "Vlastník" + } + }, "table": { "header": { - "user": "Používateľ" + "user": "Používateľ", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/sk/manage/users/edit.json b/public/locales/sk/manage/users/edit.json new file mode 100644 index 000000000..5faf7e806 --- /dev/null +++ b/public/locales/sk/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Používateľ {{username}}", + "back": "Späť na správu používateľov", + "sections": { + "general": { + "title": "Všeobecné", + "inputs": { + "username": { + "label": "Používateľské meno" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "Bezpečnosť", + "inputs": { + "password": { + "label": "Nové heslo" + }, + "terminateExistingSessions": { + "label": "Ukončite existujúce relácie", + "description": "Núti používateľa, aby sa znova prihlásil na svojich zariadeniach" + }, + "confirm": { + "label": "Potvrďte", + "description": "Heslo bude aktualizované. Akciu nie je možné vrátiť späť." + } + } + }, + "roles": { + "title": "Kontá", + "currentRole": "Súčasná úloha: ", + "badges": { + "owner": "Vlastník", + "admin": "Správca", + "normal": "Normálna" + } + }, + "deletion": { + "title": "Vymazanie účtu", + "inputs": { + "confirmUsername": { + "label": "Potvrďte používateľské meno", + "description": "Zadaním používateľského mena potvrďte vymazanie" + }, + "confirm": { + "label": "Odstrániť natrvalo", + "description": "Uvedomujem si, že táto akcia je trvalá a všetky údaje účtu sa stratia." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/date.json b/public/locales/sk/modules/date.json index 3d41bfb2b..030d30acf 100644 --- a/public/locales/sk/modules/date.json +++ b/public/locales/sk/modules/date.json @@ -4,6 +4,13 @@ "description": "Zobrazuje aktuálny dátum a čas.", "settings": { "title": "Nastavenia miniaplikácie Dátum a čas", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Zobraziť celý čas (24 hodín)" }, @@ -13,18 +20,12 @@ "hide": "Skryť dátum" } }, - "enableTimezone": { - "label": "Zobrazenie vlastného časového pásma" - }, - "timezoneLocation": { - "label": "Lokalita Časového pásma" - }, "titleState": { - "label": "Názov mesta", - "info": "Ak aktivujete možnosť Časové pásmo, môže sa zobraziť názov mesta a kód časového pásma.
Môžete zobraziť aj samotné mesto alebo dokonca nezobraziť žiadne.", + "label": "", + "info": "", "data": { - "both": "Mesto a časové pásmo", - "city": "Iba mesto", + "both": "", + "city": "", "none": "Žiadne" } } diff --git a/public/locales/sk/modules/smart-home/entity-state.json b/public/locales/sk/modules/smart-home/entity-state.json new file mode 100644 index 000000000..b8c374851 --- /dev/null +++ b/public/locales/sk/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Identita nebola nájdená", + "descriptor": { + "name": "Subjekt Home Assistant", + "description": "Aktuálny stav entity v aplikácii Home Assistant", + "settings": { + "title": "Stav subjektu", + "entityId": { + "label": "ID subjektu", + "info": "Jedinečné ID subjektu v aplikácii Home Assistant. Kopírujte kliknutím na entitu > kliknite na ikonu ozubeného kolieska > kliknite na tlačidlo Kopírovať pri \"ID entity\". Niektoré vlastné entity nemusia byť podporované." + }, + "displayName": { + "label": "Zobrazenie názvu" + } + } + } +} \ 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 9a67b43a8..251957716 100644 --- a/public/locales/sk/modules/torrents-status.json +++ b/public/locales/sk/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "Sťahovanie", "name": "Názov", + "dateAdded": "Pridané Dňa", "size": "Veľkosť", "download": "Dole", "upload": "Hore", "estimatedTimeOfArrival": "Odhad", - "progress": "Stav" + "progress": "Stav", + "totalUploaded": "Celkové odoslanie", + "totalDownloaded": "Celkovo stiahnuté", + "ratio": "Pomer", + "seeds": "Semená (pripojené)", + "peers": "Semená (pripojené)", + "label": "Štítok", + "state": "Stav", + "stateMessage": "Správa" }, "item": { "text": "Spravuje {{appName}}, {{ratio}} pomer" diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index 453f0a86d..a7955df42 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Širina", "height": "Višina" - } + }, + "public": "Javna stran", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/sl/layout/element-selector/selector.json b/public/locales/sl/layout/element-selector/selector.json index b1388b165..3b4852afe 100644 --- a/public/locales/sl/layout/element-selector/selector.json +++ b/public/locales/sl/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Dodajanje nove ploščice", - "text": "Ploščice so glavni element sistema Homarr. Uporabljajo se za prikaz aplikacij in drugih informacij. Dodate lahko poljubno število ploščic." - }, - "widgetDescription": "Pripomočki sodelujejo z vašimi aplikacijami in vam omogočajo boljši nadzor nad aplikacijami. Pred uporabo običajno zahtevajo dodatno konfiguracijo.", - "goBack": "Vrnite se na prejšnji korak", - "actionIcon": { - "tooltip": "Dodajanje ploščice" - }, - "apps": "", - "app": { - "defaultName": "" - }, - "widgets": "", - "categories": "", - "category": { - "newName": "", - "defaultName": "", - "created": { - "title": "", - "message": "" - } + "modal": { + "title": "Dodajanje nove ploščice", + "text": "Ploščice so glavni element sistema Homarr. Uporabljajo se za prikaz aplikacij in drugih informacij. Dodate lahko poljubno število ploščic." + }, + "widgetDescription": "Pripomočki sodelujejo z vašimi aplikacijami in vam omogočajo boljši nadzor nad aplikacijami. Pred uporabo običajno zahtevajo dodatno konfiguracijo.", + "goBack": "Vrnite se na prejšnji korak", + "actionIcon": { + "tooltip": "Dodajanje ploščice" + }, + "apps": "", + "app": { + "defaultName": "" + }, + "widgets": "", + "categories": "", + "category": { + "newName": "", + "defaultName": "", + "created": { + "title": "", + "message": "" } + }, + "importFromDocker": "" } diff --git a/public/locales/sl/manage/users.json b/public/locales/sl/manage/users.json index 700a5d503..c2c769454 100644 --- a/public/locales/sl/manage/users.json +++ b/public/locales/sl/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "", "pageTitle": "", - "text": "", "buttons": { "create": "" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Uporabnik" + "user": "Uporabnik", + "email": "" } }, "tooltips": { diff --git a/public/locales/sl/manage/users/edit.json b/public/locales/sl/manage/users/edit.json new file mode 100644 index 000000000..9be480801 --- /dev/null +++ b/public/locales/sl/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Splošno", + "inputs": { + "username": { + "label": "Uporabniško ime" + }, + "eMail": { + "label": "" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Potrdi", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/date.json b/public/locales/sl/modules/date.json index 13f82d191..bb6c1a6ef 100644 --- a/public/locales/sl/modules/date.json +++ b/public/locales/sl/modules/date.json @@ -4,6 +4,13 @@ "description": "Prikaže trenutni datum in čas.", "settings": { "title": "Nastavitve za gradnik Datum in čas", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Prikaz polnega časa (24-urni)" }, @@ -13,18 +20,12 @@ "hide": "Skrij datum" } }, - "enableTimezone": { - "label": "Prikaz časovnega območja po meri" - }, - "timezoneLocation": { - "label": "Časovni pas Lokacija" - }, "titleState": { - "label": "Naziv mesta", - "info": "Če aktivirate možnost Časovni pas, lahko prikažete ime mesta in kodo časovnega pasu.
Prikažete lahko tudi samo mesto ali pa ne prikažete ničesar.", + "label": "", + "info": "", "data": { - "both": "Mesto in časovno območje", - "city": "Samo mesto", + "both": "", + "city": "", "none": "Ni" } } diff --git a/public/locales/sl/modules/smart-home/entity-state.json b/public/locales/sl/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/sl/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/torrents-status.json b/public/locales/sl/modules/torrents-status.json index 94f0a255f..6dee0d33c 100644 --- a/public/locales/sl/modules/torrents-status.json +++ b/public/locales/sl/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Ime", + "dateAdded": "", "size": "Velikost", "download": "Dol", "upload": "Gor", "estimatedTimeOfArrival": "ETA", - "progress": "Napredek" + "progress": "Napredek", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Stanje", + "stateMessage": "" }, "item": { "text": "Upravlja {{appName}}, {{ratio}} razmerje" diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 1abe2496b..7f1ac4da8 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Bredd", "height": "Höjd" - } + }, + "public": "Publik", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/sv/layout/element-selector/selector.json b/public/locales/sv/layout/element-selector/selector.json index 002e34ca8..54f347b67 100644 --- a/public/locales/sv/layout/element-selector/selector.json +++ b/public/locales/sv/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Lägg till en ny ruta", - "text": "Rutor är det viktigaste elementet i Homarr. De används för att visa dina appar och annan information. Du kan lägga till så många rutor som du vill." - }, - "widgetDescription": "Widgetar interagerar med dina appar, för att ge dig mer kontroll över dina applikationer. De kräver vanligtvis ytterligare konfiguration innan användning.", - "goBack": "Gå tillbaka till föregående steg", - "actionIcon": { - "tooltip": "Lägg till en ruta" - }, - "apps": "Appar", - "app": { - "defaultName": "Din app" - }, - "widgets": "Widgets", - "categories": "Kategorier", - "category": { - "newName": "Namn på ny kategori", - "defaultName": "Ny kategori", - "created": { - "title": "Kategori skapad", - "message": "Kategorin \"{{name}}\" har skapats" - } + "modal": { + "title": "Lägg till en ny ruta", + "text": "Rutor är det viktigaste elementet i Homarr. De används för att visa dina appar och annan information. Du kan lägga till så många rutor som du vill." + }, + "widgetDescription": "Widgetar interagerar med dina appar, för att ge dig mer kontroll över dina applikationer. De kräver vanligtvis ytterligare konfiguration innan användning.", + "goBack": "Gå tillbaka till föregående steg", + "actionIcon": { + "tooltip": "Lägg till en ruta" + }, + "apps": "Appar", + "app": { + "defaultName": "Din app" + }, + "widgets": "Widgets", + "categories": "Kategorier", + "category": { + "newName": "Namn på ny kategori", + "defaultName": "Ny kategori", + "created": { + "title": "Kategori skapad", + "message": "Kategorin \"{{name}}\" har skapats" } + }, + "importFromDocker": "" } diff --git a/public/locales/sv/manage/users.json b/public/locales/sv/manage/users.json index b44e93285..e937c9a04 100644 --- a/public/locales/sv/manage/users.json +++ b/public/locales/sv/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "", "pageTitle": "", - "text": "", "buttons": { "create": "" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Användare" + "user": "Användare", + "email": "" } }, "tooltips": { diff --git a/public/locales/sv/manage/users/edit.json b/public/locales/sv/manage/users/edit.json new file mode 100644 index 000000000..eb6d81e37 --- /dev/null +++ b/public/locales/sv/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Allmänt", + "inputs": { + "username": { + "label": "Användarnamn" + }, + "eMail": { + "label": "" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Bekräfta", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/date.json b/public/locales/sv/modules/date.json index 4a5bb42cf..7566474b6 100644 --- a/public/locales/sv/modules/date.json +++ b/public/locales/sv/modules/date.json @@ -4,6 +4,13 @@ "description": "Visar aktuellt datum och tid.", "settings": { "title": "Inställningar för datum och tid widget", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Visa heltid (24-timmars)" }, @@ -13,18 +20,12 @@ "hide": "Dölj datum" } }, - "enableTimezone": { - "label": "Visa en anpassad tidszon" - }, - "timezoneLocation": { - "label": "Plats för tidszon" - }, "titleState": { - "label": "Stadens namn", - "info": "Om du aktiverar alternativet Tidszon kan stadens namn och tidszonskoden visas.
Du kan också visa enbart staden eller ingen stad alls.", + "label": "", + "info": "", "data": { - "both": "Stad och tidszon", - "city": "Endast stad", + "both": "", + "city": "", "none": "Ingen" } } diff --git a/public/locales/sv/modules/smart-home/entity-state.json b/public/locales/sv/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/sv/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/torrents-status.json b/public/locales/sv/modules/torrents-status.json index 1f92ebed1..b1b22b366 100644 --- a/public/locales/sv/modules/torrents-status.json +++ b/public/locales/sv/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Namn", + "dateAdded": "", "size": "Storlek", "download": "Ned", "upload": "Upp", "estimatedTimeOfArrival": "Beräknad sluttid", - "progress": "Förlopp" + "progress": "Förlopp", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Läge", + "stateMessage": "" }, "item": { "text": "Hanteras av {{appName}}, {{ratio}} förhållande" diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index b5a11df3b..f6637c055 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Genişlik", "height": "Yükseklik" - } + }, + "public": "Herkese açık", + "restricted": "Sınırlı" } \ No newline at end of file diff --git a/public/locales/tr/layout/element-selector/selector.json b/public/locales/tr/layout/element-selector/selector.json index 145059b18..095752e64 100644 --- a/public/locales/tr/layout/element-selector/selector.json +++ b/public/locales/tr/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Yeni araç ekle", - "text": "Araçlar, Homarr'ın ana öğesidir. Uygulamalarınızı ve diğer bilgileri görüntülemek için kullanılırlar. İstediğiniz kadar araç ekleyebilirsiniz." - }, - "widgetDescription": "Widget'lar, uygulamalarınız üzerinde daha fazla kontrol sağlamak için uygulamalarınızla etkileşime girer. Genellikle kullanımdan önce ek yapılandırma gerektirirler.", - "goBack": "Önceki adıma geri dön", - "actionIcon": { - "tooltip": "Araç Ekle" - }, - "apps": "Uygulamalar", - "app": { - "defaultName": "Uygulama Adınız" - }, - "widgets": "Widget'lar", - "categories": "Kategoriler", - "category": { - "newName": "Yeni Kategori adı", - "defaultName": "Yeni Kategori", - "created": { - "title": "Kategori oluşturuldu", - "message": "\"{{name}}\" kategorisi oluşturuldu" - } + "modal": { + "title": "Yeni araç ekle", + "text": "Araçlar, Homarr'ın ana öğesidir. Uygulamalarınızı ve diğer bilgileri görüntülemek için kullanılırlar. İstediğiniz kadar araç ekleyebilirsiniz." + }, + "widgetDescription": "Widget'lar, uygulamalarınız üzerinde daha fazla kontrol sağlamak için uygulamalarınızla etkileşime girer. Genellikle kullanımdan önce ek yapılandırma gerektirirler.", + "goBack": "Önceki adıma geri dön", + "actionIcon": { + "tooltip": "Araç Ekle" + }, + "apps": "Uygulamalar", + "app": { + "defaultName": "Uygulama Adınız" + }, + "widgets": "Widget'lar", + "categories": "Kategoriler", + "category": { + "newName": "Yeni Kategori adı", + "defaultName": "Yeni Kategori", + "created": { + "title": "Kategori oluşturuldu", + "message": "\"{{name}}\" kategorisi oluşturuldu" } + }, + "importFromDocker": "Docker'dan içe aktar" } diff --git a/public/locales/tr/manage/users.json b/public/locales/tr/manage/users.json index f91a0ffb9..1d45ddccc 100644 --- a/public/locales/tr/manage/users.json +++ b/public/locales/tr/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Kullanıcılar", "pageTitle": "Kullanıcıları yönet", - "text": "Kullanıcıları kullanarak panelşnizi kimlerin düzenleyebileceğini yapılandırabilirsiniz. Homarr'ın gelecekteki sürümleri, izinler ve panolar üzerinde daha da ayrıntılı kontrole sahip olacak.", "buttons": { "create": "Oluştur" }, + "filter": { + "roles": { + "all": "Tümü", + "normal": "Normal", + "admin": "Yönetici", + "owner": "Sahip" + } + }, "table": { "header": { - "user": "Kullanıcı" + "user": "Kullanıcı", + "email": "E-Posta" } }, "tooltips": { diff --git a/public/locales/tr/manage/users/edit.json b/public/locales/tr/manage/users/edit.json new file mode 100644 index 000000000..caf833cb1 --- /dev/null +++ b/public/locales/tr/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "Kullanıcı {{username}}", + "back": "Kullanıcı Yönetimine dön", + "sections": { + "general": { + "title": "Genel", + "inputs": { + "username": { + "label": "Kullanıcı adı" + }, + "eMail": { + "label": "E-Posta" + } + } + }, + "security": { + "title": "Güvenlik", + "inputs": { + "password": { + "label": "Yeni parola" + }, + "terminateExistingSessions": { + "label": "Mevcut oturumları sonlandır", + "description": "Kullanıcıyı cihazlarında tekrar oturum açmaya zorlar" + }, + "confirm": { + "label": "Onayla", + "description": "Parola güncellenecektir. İşlem geri alınamaz." + } + } + }, + "roles": { + "title": "Roller", + "currentRole": "Mevcut rol: ", + "badges": { + "owner": "Sahip", + "admin": "Yönetici", + "normal": "Normal" + } + }, + "deletion": { + "title": "Hesap silme", + "inputs": { + "confirmUsername": { + "label": "Kullanıcı adını onaylayın", + "description": "Silme işlemini onaylamak için kullanıcı adını yazın" + }, + "confirm": { + "label": "Kalıcı olarak sil", + "description": "Bu işlemin kalıcı olduğunun ve tüm hesap verilerinin kaybolacağının farkındayım." + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/modules/date.json b/public/locales/tr/modules/date.json index 064fc75fd..41cbc66f2 100644 --- a/public/locales/tr/modules/date.json +++ b/public/locales/tr/modules/date.json @@ -4,6 +4,13 @@ "description": "Geçerli tarih ve saati görüntüler.", "settings": { "title": "Tarih ve Saat widget'ı için ayarlar", + "timezone": { + "label": "Saat dilimi", + "info": "Saat diliminizin adını seçin, sizinkini burada bulabilirsiniz: " + }, + "customTitle": { + "label": "Şehir adı yada özel başlık" + }, "display24HourFormat": { "label": "Tam zamanı göster (24 saat)" }, @@ -13,18 +20,12 @@ "hide": "Tarihi Gizle" } }, - "enableTimezone": { - "label": "Özel bir saat dilimi görüntüleme" - }, - "timezoneLocation": { - "label": "Saat Dilimi Konumu" - }, "titleState": { - "label": "Şehir adı", - "info": "Saat Dilimi seçeneğini etkinleştirmeniz durumunda, şehrin adı ve saat dilimi kodu gösterilir.
Ayrıca şehir adını tek başına gösterebilir veya hiç göstermeyebilirsiniz.", + "label": "Saat başlığı", + "info": "Özel başlık ve saat dilimi kodu widget'ınızda gösterilebilir.
Ayrıca şehri tek başına gösterebilir, hiçbirini göstermeyebilir,
veya her ikisi de seçildiğinde ancak başlık sağlanmadığında saat dilimini tek başına gösterebilirsiniz.", "data": { - "both": "Şehir ve Saat Dilimi", - "city": "Yanlız şehir", + "both": "Başlık ve Saat Dilimi", + "city": "Sadece başlık", "none": "Hiçbiri" } } diff --git a/public/locales/tr/modules/dlspeed.json b/public/locales/tr/modules/dlspeed.json index 4d7610c17..37754bc43 100644 --- a/public/locales/tr/modules/dlspeed.json +++ b/public/locales/tr/modules/dlspeed.json @@ -21,7 +21,7 @@ "title": "Şu anki indirme hızı", "download": "İndirme: {{download}}", "upload": "Yükleme: {{upload}}", - "timeSpan": "{{seconds}} saniye önce", + "timeSpan": "{{seconds}} saniye önce ", "totalDownload": "İndirme: {{download}}/s", "totalUpload": "Yükleme: {{upload}}/s" }, diff --git a/public/locales/tr/modules/smart-home/entity-state.json b/public/locales/tr/modules/smart-home/entity-state.json new file mode 100644 index 000000000..c6dac7cb8 --- /dev/null +++ b/public/locales/tr/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Varlık bulunamadı", + "descriptor": { + "name": "Home Assistant varlığı", + "description": "Home Assistant'nda bir varlığın mevcut durumu", + "settings": { + "title": "Varlık Durumu", + "entityId": { + "label": "Varlık Kimliği", + "info": "Home Assistant'ta benzersiz varlık kimliği. Varlığa tıklayın > Çark simgesine tıklayın > 'Varlık Kimliği'ndeki kopyala butonuna tıklayın. Bazı özel varlıklar desteklenmeyebilir." + }, + "displayName": { + "label": "Ekran adı" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/modules/torrents-status.json b/public/locales/tr/modules/torrents-status.json index 0c44adc94..6e61b7c34 100644 --- a/public/locales/tr/modules/torrents-status.json +++ b/public/locales/tr/modules/torrents-status.json @@ -35,18 +35,28 @@ "card": { "footer": { "error": "Hata", - "lastUpdated": "Son Güncelleme {{time}} önce", + "lastUpdated": "Son Güncelleme {{time}} önce ", "ratioGlobal": "Genel Ratio", "ratioWithFilter": "Filtrelenen ratio" }, "table": { "header": { + "isCompleted": "İndiriliyor", "name": "İsim", + "dateAdded": "Eklendi", "size": "Boyut", "download": "İndirme", "upload": "Yükleme", "estimatedTimeOfArrival": "ETA (Kalan Süre)", - "progress": "İlerleme" + "progress": "İlerleme", + "totalUploaded": "Toplam Yüklenen", + "totalDownloaded": "Toplam İndirilen", + "ratio": "Ratio", + "seeds": "Tohumlar (Bağlı)", + "peers": "Eşler (Bağlı)", + "label": "Etiket", + "state": "Durum", + "stateMessage": "Durum Mesajı" }, "item": { "text": "{{appName}} tarafından yönetilen, {{ratio}} oranı" @@ -60,7 +70,7 @@ "title": "Şu anki indirme hızı", "download": "İndirme: {{download}}", "upload": "Yükleme: {{upload}}", - "timeSpan": "{{seconds}} saniye önce", + "timeSpan": "{{seconds}} saniye önce ", "totalDownload": "İndirme: {{download}}/s", "totalUpload": "Yükleme: {{upload}}/s" }, diff --git a/public/locales/tr/settings/customization/page-appearance.json b/public/locales/tr/settings/customization/page-appearance.json index 768963087..da824cb33 100644 --- a/public/locales/tr/settings/customization/page-appearance.json +++ b/public/locales/tr/settings/customization/page-appearance.json @@ -21,7 +21,7 @@ "backgroundImageAttachment": { "label": "Arkaplan resim ekle", "options": { - "fixed": "Düzeltildi - Arka plan aynı konumda kalıyor (tavsiye edilen)", + "fixed": "Sabit - Arka plan aynı konumda kalır (önerilir)", "scroll": "Kaydırma - Arka plan farenizle kaydırılır" } }, @@ -36,7 +36,7 @@ "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": "", + "no-repeat": "Tekrarsız - Resim tekrarlanmaz ve tüm alanı doldurmayabilir (önerilir)", "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." } diff --git a/public/locales/tr/settings/customization/shade-selector.json b/public/locales/tr/settings/customization/shade-selector.json index 97c5e820b..f983c3e62 100644 --- a/public/locales/tr/settings/customization/shade-selector.json +++ b/public/locales/tr/settings/customization/shade-selector.json @@ -1,3 +1,3 @@ { - "label": "Gölge" + "label": "Gölge " } \ No newline at end of file diff --git a/public/locales/tw/common.json b/public/locales/tw/common.json index c9c722329..9c5236d49 100644 --- a/public/locales/tw/common.json +++ b/public/locales/tw/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "寬度", "height": "高度" - } + }, + "public": "公開", + "restricted": "受到限制" } \ No newline at end of file diff --git a/public/locales/tw/layout/element-selector/selector.json b/public/locales/tw/layout/element-selector/selector.json index 53b55b7b0..a08d54361 100644 --- a/public/locales/tw/layout/element-selector/selector.json +++ b/public/locales/tw/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "新增磁貼", - "text": "磁貼是 Homarr 主要組成元素,磁貼被用來顯示您的應用程式和其他訊息,您可以根據需要增加任意數量的磁貼" - }, - "widgetDescription": "組件與您的應用交互,為您提供更多應用控制,且在使用前通常需要額外的配置", - "goBack": "上一步", - "actionIcon": { - "tooltip": "新增磁貼" - }, - "apps": "應用", - "app": { - "defaultName": "您的應用" - }, - "widgets": "組件", - "categories": "類別", - "category": { - "newName": "新類別名稱", - "defaultName": "新增類別", - "created": { - "title": "類別已新增", - "message": "已新增類別\"{{name}}\"" - } + "modal": { + "title": "新增磁貼", + "text": "磁貼是 Homarr 主要組成元素,磁貼被用來顯示您的應用程式和其他訊息,您可以根據需要增加任意數量的磁貼" + }, + "widgetDescription": "組件與您的應用交互,為您提供更多應用控制,且在使用前通常需要額外的配置", + "goBack": "上一步", + "actionIcon": { + "tooltip": "新增磁貼" + }, + "apps": "應用", + "app": { + "defaultName": "您的應用" + }, + "widgets": "組件", + "categories": "類別", + "category": { + "newName": "新類別名稱", + "defaultName": "新增類別", + "created": { + "title": "類別已新增", + "message": "已新增類別\"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/tw/manage/users.json b/public/locales/tw/manage/users.json index 5797c8686..d908c6f0c 100644 --- a/public/locales/tw/manage/users.json +++ b/public/locales/tw/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "使用者", "pageTitle": "管理使用者", - "text": "通過使用者,您可以設定誰可以編輯您的面板,Homarr 的未來版本將對權限和面板進行更精細的控制", "buttons": { "create": "創建" }, + "filter": { + "roles": { + "all": "全部", + "normal": "普通", + "admin": "管理員", + "owner": "所有者" + } + }, "table": { "header": { - "user": "使用者" + "user": "使用者", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/tw/manage/users/edit.json b/public/locales/tw/manage/users/edit.json new file mode 100644 index 000000000..be19d987d --- /dev/null +++ b/public/locales/tw/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "使用者 {{username}}", + "back": "返回使用者管理", + "sections": { + "general": { + "title": "一般", + "inputs": { + "username": { + "label": "使用者" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "安全", + "inputs": { + "password": { + "label": "新密碼" + }, + "terminateExistingSessions": { + "label": "停止現有會話", + "description": "強制使用者在其設備上重新登錄" + }, + "confirm": { + "label": "確認", + "description": "密碼將被更新,此操作不可取消" + } + } + }, + "roles": { + "title": "腳色", + "currentRole": "當前腳色: ", + "badges": { + "owner": "所有者", + "admin": "管理員", + "normal": "普通" + } + }, + "deletion": { + "title": "刪除帳號", + "inputs": { + "confirmUsername": { + "label": "確認使用者名", + "description": "輸入使用者名以確認刪除" + }, + "confirm": { + "label": "永久刪除", + "description": "我明白此操作不可逆,所有帳號數據都會消失" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/date.json b/public/locales/tw/modules/date.json index 8c846f6dc..b0dedd711 100644 --- a/public/locales/tw/modules/date.json +++ b/public/locales/tw/modules/date.json @@ -4,6 +4,13 @@ "description": "顯示目前的日期與時間", "settings": { "title": "設定日期與時間組件", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "顯示 24 小時制" }, @@ -13,18 +20,12 @@ "hide": "隱藏日期" } }, - "enableTimezone": { - "label": "顯示自定義時區" - }, - "timezoneLocation": { - "label": "時區位置" - }, "titleState": { - "label": "城市名稱", - "info": "如果啟用時區選項,則可顯示城市名稱的時區代碼,
您也可以只顯示城市名稱,甚至都不顯示", + "label": "", + "info": "", "data": { - "both": "城市與時區", - "city": "僅城市名稱", + "both": "", + "city": "", "none": "無" } } diff --git a/public/locales/tw/modules/smart-home/entity-state.json b/public/locales/tw/modules/smart-home/entity-state.json new file mode 100644 index 000000000..0425fdab0 --- /dev/null +++ b/public/locales/tw/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "未找到實體", + "descriptor": { + "name": "Home Assistant 實體", + "description": "Home Assistant 中實體的目前狀態", + "settings": { + "title": "實體狀態", + "entityId": { + "label": "實體 ID", + "info": "Home Assistant 中的唯一實體ID,通過點擊實體 > 點擊齒輪圖示 > 點擊實體 ID 觸地的複製按鈕進行複製,某些自定義實體可能不支持" + }, + "displayName": { + "label": "顯示名稱" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/torrents-status.json b/public/locales/tw/modules/torrents-status.json index 30684478c..c44a9aa5c 100644 --- a/public/locales/tw/modules/torrents-status.json +++ b/public/locales/tw/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "正在下載", "name": "名稱", + "dateAdded": "已新增", "size": "大小", "download": "下載", "upload": "上傳", "estimatedTimeOfArrival": "剩餘時間", - "progress": "進度" + "progress": "進度", + "totalUploaded": "總上傳", + "totalDownloaded": "總下載", + "ratio": "分享率", + "seeds": "種子數(已連接)", + "peers": "用戶數(已連接)", + "label": "標籤", + "state": "狀態", + "stateMessage": "狀態訊息" }, "item": { "text": "由 {{appName}},{{ratio}} 管理的比率" diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 3b0e1e56f..e4143d0fc 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -51,5 +51,7 @@ "attributes": { "width": "Ширина", "height": "Висота" - } + }, + "public": "Публічний", + "restricted": "" } \ No newline at end of file diff --git a/public/locales/uk/layout/element-selector/selector.json b/public/locales/uk/layout/element-selector/selector.json index 752990d92..bac518ba3 100644 --- a/public/locales/uk/layout/element-selector/selector.json +++ b/public/locales/uk/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Додати плитку", - "text": "Плитки є основним елементом Homarr. Вони використовуються для зображення ваших додатків та іншої інформації. Ви можете додати стільки плиток, скільки захочете." - }, - "widgetDescription": "Віджети взаємодіють з програмами, надаючи вам більше контролю над ними. Зазвичай вони вимагають декількох налаштувань перед використанням.", - "goBack": "Повернутися на попередню сторінку", - "actionIcon": { - "tooltip": "Додати плитку" - }, - "apps": "Додатки", - "app": { - "defaultName": "Ваші додатки" - }, - "widgets": "Віджети", - "categories": "Категорії", - "category": { - "newName": "Назва категорії", - "defaultName": "Нова категорія", - "created": { - "title": "Категорію створено", - "message": "Створено категорію \"{{name}}\"" - } + "modal": { + "title": "Додати плитку", + "text": "Плитки є основним елементом Homarr. Вони використовуються для зображення ваших додатків та іншої інформації. Ви можете додати стільки плиток, скільки захочете." + }, + "widgetDescription": "Віджети взаємодіють з програмами, надаючи вам більше контролю над ними. Зазвичай вони вимагають декількох налаштувань перед використанням.", + "goBack": "Повернутися на попередню сторінку", + "actionIcon": { + "tooltip": "Додати плитку" + }, + "apps": "Додатки", + "app": { + "defaultName": "Ваші додатки" + }, + "widgets": "Віджети", + "categories": "Категорії", + "category": { + "newName": "Назва категорії", + "defaultName": "Нова категорія", + "created": { + "title": "Категорію створено", + "message": "Створено категорію \"{{name}}\"" } + }, + "importFromDocker": "" } diff --git a/public/locales/uk/manage/users.json b/public/locales/uk/manage/users.json index 0101c26c2..0715f7d93 100644 --- a/public/locales/uk/manage/users.json +++ b/public/locales/uk/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Користувачі", "pageTitle": "Керування користувачами", - "text": "За допомогою користувачів ви можете налаштувати, хто може редагувати ваші дашборди. Майбутні версії Homarr матимуть ще більш детальний контроль над дозволами та дошками.", "buttons": { "create": "Створити" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Користувач" + "user": "Користувач", + "email": "Електронна пошта" } }, "tooltips": { diff --git a/public/locales/uk/manage/users/edit.json b/public/locales/uk/manage/users/edit.json new file mode 100644 index 000000000..6716f1492 --- /dev/null +++ b/public/locales/uk/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Загальне", + "inputs": { + "username": { + "label": "Логін" + }, + "eMail": { + "label": "Електронна пошта" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Підтвердити", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Видалити назавжди", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/modules/date.json b/public/locales/uk/modules/date.json index 8677fa7cb..d83f78a95 100644 --- a/public/locales/uk/modules/date.json +++ b/public/locales/uk/modules/date.json @@ -4,6 +4,13 @@ "description": "Відображає поточну дату і час.", "settings": { "title": "Налаштування віджету дати й часу", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Показувати повний час (24 години)" }, @@ -13,18 +20,12 @@ "hide": "Сховати дату" } }, - "enableTimezone": { - "label": "Відображати ваш часовий пояс" - }, - "timezoneLocation": { - "label": "Місцезнаходження часовий поясу" - }, "titleState": { - "label": "Назва міста", - "info": "Якщо ви активуєте опцію Часовий пояс, можна показати назву міста та код часового поясу.
Ви також можете показати лише місто або взагалі не показувати жодного.", + "label": "", + "info": "", "data": { - "both": "Місто та часовий пояс", - "city": "Лише місто", + "both": "", + "city": "", "none": "Нема" } } diff --git a/public/locales/uk/modules/smart-home/entity-state.json b/public/locales/uk/modules/smart-home/entity-state.json new file mode 100644 index 000000000..415cc293d --- /dev/null +++ b/public/locales/uk/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "", + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "entityId": { + "label": "", + "info": "" + }, + "displayName": { + "label": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/modules/torrents-status.json b/public/locales/uk/modules/torrents-status.json index 83986d2f9..1af6bd391 100644 --- a/public/locales/uk/modules/torrents-status.json +++ b/public/locales/uk/modules/torrents-status.json @@ -41,12 +41,22 @@ }, "table": { "header": { + "isCompleted": "", "name": "Ім’я", + "dateAdded": "", "size": "Розмір", "download": "Завантаження", "upload": "Віддача", "estimatedTimeOfArrival": "Залишилося", - "progress": "Прогрес" + "progress": "Прогрес", + "totalUploaded": "", + "totalDownloaded": "", + "ratio": "", + "seeds": "", + "peers": "", + "label": "", + "state": "Стан", + "stateMessage": "" }, "item": { "text": "Управляється {{appName}}, {{ratio}} співвідношення" diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index c37ea6b9d..42e47d811 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -1,11 +1,11 @@ { "save": "Lưu", - "apply": "", - "insert": "", + "apply": "Áp dụng", + "insert": "Thêm", "about": "Về chúng tôi", "cancel": "Hủy", "close": "Đóng", - "back": "Mặt sau", + "back": "Quay lại", "delete": "Xóa", "ok": "OK", "edit": "Sửa", @@ -45,11 +45,13 @@ "seeMore": "Xem thêm...", "position": { "left": "Bên trái", - "center": "", + "center": "Giữa", "right": "Phải" }, "attributes": { "width": "Chiều rộng", "height": "Chiều cao" - } + }, + "public": "Công khai", + "restricted": "Bị hạn chế" } \ No newline at end of file diff --git a/public/locales/vi/layout/element-selector/selector.json b/public/locales/vi/layout/element-selector/selector.json index 8c3edd1cc..11606a28c 100644 --- a/public/locales/vi/layout/element-selector/selector.json +++ b/public/locales/vi/layout/element-selector/selector.json @@ -1,25 +1,26 @@ { - "modal": { - "title": "Thêm ô mới", - "text": "Ô là thành phần chính của Homarr. Chúng được dùng để hiện thị các ứng dụng và thông tin khác. Bạn có thể thêm bất kỳ số lượng ô tuỳ thích." - }, - "widgetDescription": "Tiện ích tương tác với ứng dụng của bạn, giúp bạn nắm thêm quyền điều khiển chúng. Các tiện ích thường cần được thiết lập đôi chút trước khi sử dụng.", - "goBack": "Quay lại bước trước", - "actionIcon": { - "tooltip": "Thêm ô" - }, - "apps": "Ứng dụng", - "app": { - "defaultName": "Ứng dụng của bạn" - }, - "widgets": "Tiện ích", - "categories": "Danh mục", - "category": { - "newName": "Tên danh mục mới", - "defaultName": "Danh mục mới", - "created": { - "title": "Danh mục đã được tạo", - "message": "Danh mục \"{{name}}\" đã được tạo" - } + "modal": { + "title": "Thêm ô mới", + "text": "Ô là thành phần chính của Homarr. Chúng được dùng để hiện thị các ứng dụng và thông tin khác. Bạn có thể thêm bất kỳ số lượng ô tuỳ thích." + }, + "widgetDescription": "Tiện ích tương tác với ứng dụng của bạn, giúp bạn nắm thêm quyền điều khiển chúng. Các tiện ích thường cần được thiết lập đôi chút trước khi sử dụng.", + "goBack": "Quay lại bước trước", + "actionIcon": { + "tooltip": "Thêm ô" + }, + "apps": "Ứng dụng", + "app": { + "defaultName": "Ứng dụng của bạn" + }, + "widgets": "Tiện ích", + "categories": "Danh mục", + "category": { + "newName": "Tên danh mục mới", + "defaultName": "Danh mục mới", + "created": { + "title": "Danh mục đã được tạo", + "message": "Danh mục \"{{name}}\" đã được tạo" } + }, + "importFromDocker": "" } diff --git a/public/locales/vi/layout/header.json b/public/locales/vi/layout/header.json index 2111a48ee..da9bf830f 100644 --- a/public/locales/vi/layout/header.json +++ b/public/locales/vi/layout/header.json @@ -4,7 +4,7 @@ "engines": { "web": "Tìm kiếm {{query}} trên mạng", "youtube": "Tìm kiếm {{query}} trên YouTube", - "torrent": "Tìm kiếm {{query}} torrent", + "torrent": "Tìm kiếm torrent {{query}}", "movie": "Tìm kiếm {{query}} trên {{app}}" } }, diff --git a/public/locales/vi/layout/manage.json b/public/locales/vi/layout/manage.json index d5d0c2bd3..34e860704 100644 --- a/public/locales/vi/layout/manage.json +++ b/public/locales/vi/layout/manage.json @@ -4,7 +4,7 @@ "title": "Trang chủ" }, "boards": { - "title": "bảng" + "title": "Bảng" }, "users": { "title": "Người dùng", @@ -18,7 +18,7 @@ "items": { "documentation": "Tài liệu", "report": "Báo cáo sự cố/lỗi", - "discord": "Bất hòa cộng đồng", + "discord": "Discord", "contribute": "Đóng góp" } }, diff --git a/public/locales/vi/manage/boards.json b/public/locales/vi/manage/boards.json index 8fdecea94..40ace04f3 100644 --- a/public/locales/vi/manage/boards.json +++ b/public/locales/vi/manage/boards.json @@ -1,6 +1,6 @@ { - "metaTitle": "bảng", - "pageTitle": "bảng", + "metaTitle": "Bảng", + "pageTitle": "Bảng", "cards": { "statistics": { "apps": "Ứng dụng", diff --git a/public/locales/vi/manage/users.json b/public/locales/vi/manage/users.json index 251a2cae8..3c41ca76c 100644 --- a/public/locales/vi/manage/users.json +++ b/public/locales/vi/manage/users.json @@ -1,13 +1,21 @@ { "metaTitle": "Người dùng", "pageTitle": "Quản lý người dùng", - "text": "Bằng cách sử dụng người dùng, bạn có thể định cấu hình ai có thể chỉnh sửa trang tổng quan của mình. Các phiên bản tương lai của Homarr sẽ có quyền kiểm soát chi tiết hơn đối với các quyền và bảng.", "buttons": { "create": "Tạo nên" }, + "filter": { + "roles": { + "all": "", + "normal": "", + "admin": "", + "owner": "" + } + }, "table": { "header": { - "user": "Người dùng" + "user": "Người dùng", + "email": "E-mail" } }, "tooltips": { diff --git a/public/locales/vi/manage/users/edit.json b/public/locales/vi/manage/users/edit.json new file mode 100644 index 000000000..26d7333ed --- /dev/null +++ b/public/locales/vi/manage/users/edit.json @@ -0,0 +1,55 @@ +{ + "metaTitle": "", + "back": "", + "sections": { + "general": { + "title": "Chung", + "inputs": { + "username": { + "label": "Tên người dùng" + }, + "eMail": { + "label": "E-mail" + } + } + }, + "security": { + "title": "", + "inputs": { + "password": { + "label": "" + }, + "terminateExistingSessions": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Xác nhận", + "description": "" + } + } + }, + "roles": { + "title": "", + "currentRole": "", + "badges": { + "owner": "", + "admin": "", + "normal": "" + } + }, + "deletion": { + "title": "", + "inputs": { + "confirmUsername": { + "label": "", + "description": "" + }, + "confirm": { + "label": "Xóa vĩnh viễn", + "description": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/date.json b/public/locales/vi/modules/date.json index 717993dff..9da3511cf 100644 --- a/public/locales/vi/modules/date.json +++ b/public/locales/vi/modules/date.json @@ -4,6 +4,13 @@ "description": "Hiện thị ngày giờ hiện tại.", "settings": { "title": "Cài đặt cho tiện ích ngày giờ", + "timezone": { + "label": "", + "info": "" + }, + "customTitle": { + "label": "" + }, "display24HourFormat": { "label": "Dùng thời gian 24 giờ" }, @@ -13,18 +20,12 @@ "hide": "Ẩn ngày" } }, - "enableTimezone": { - "label": "Hiển thị múi giờ tùy chỉnh" - }, - "timezoneLocation": { - "label": "Vị trí múi giờ" - }, "titleState": { - "label": "Tiêu đề thành phố", - "info": "Trong trường hợp bạn kích hoạt tùy chọn Múi giờ, tên thành phố và mã múi giờ có thể được hiển thị.
Bạn cũng có thể chỉ hiển thị thành phố hoặc thậm chí không hiển thị thành phố nào.", + "label": "", + "info": "", "data": { - "both": "Thành phố và múi giờ", - "city": "Chỉ thành phố", + "both": "", + "city": "", "none": "Không có" } } diff --git a/public/locales/vi/modules/dns-hole-summary.json b/public/locales/vi/modules/dns-hole-summary.json index d90896743..08dca5edc 100644 --- a/public/locales/vi/modules/dns-hole-summary.json +++ b/public/locales/vi/modules/dns-hole-summary.json @@ -19,7 +19,7 @@ }, "card": { "metrics": { - "domainsOnAdlist": "Tên miền trên danh sách quảng cáo", + "domainsOnAdlist": "Tên miền trên d.sách q.cáo", "queriesToday": "Truy vấn hôm nay", "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 e9efa7765..63a442dff 100644 --- a/public/locales/vi/modules/notebook.json +++ b/public/locales/vi/modules/notebook.json @@ -8,7 +8,7 @@ "label": "Hiển thị thanh công cụ giúp bạn viết markdown" }, "allowReadOnlyCheck": { - "label": "" + "label": "Cho phép tích dấu kiểm tra ở chế độ chỉ đọc" }, "content": { "label": "Nội dung của ghi chú" @@ -17,40 +17,40 @@ }, "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": "Đậm", + "italic": "Nghiêng", + "strikethrough": "Gạch ngang", + "underline": "Gạch dưới", + "colorText": "Màu chữ", + "colorHighlight": "Màu đánh dấu", + "code": "Mã", + "clear": "Xóa định dạng", + "heading": "Tiêu đề {{level}}", + "align": "Căn chỉnh: {{position}}", + "blockquote": "Trích dẫn", + "horizontalLine": "Kẻ ngang", + "bulletList": "Danh sách kiểu ký hiệu", + "orderedList": "Danh sách đánh số", + "checkList": "Danh sách kiểm tra", + "increaseIndent": "Tăng thụt lề", + "decreaseIndent": "Giảm thụt lề", + "link": "Liên kết", + "unlink": "Gỡ bỏ liên kết", + "image": "Nhúng hình ảnh", + "addTable": "Thêm bảng", + "deleteTable": "Xóa bảng", + "colorCell": "Màu ô", + "mergeCell": "Bật/tắt hợp nhất ô", + "addColumnLeft": "Thêm cột trước", + "addColumnRight": "Thêm cột sau", + "deleteColumn": "Xóa cột", + "addRowTop": "Thêm dòng bên trên", + "addRowBelow": "Thêm dòng bên dưới", + "deleteRow": "Xóa dòng" }, "modals": { - "clearColor": "", - "source": "", + "clearColor": "Xóa màu", + "source": "Nguồn", "widthPlaceholder": "Giá trị tính bằng % hoặc pixel", "columns": "Cột", "rows": "Dòng" diff --git a/public/locales/vi/modules/smart-home/entity-state.json b/public/locales/vi/modules/smart-home/entity-state.json new file mode 100644 index 000000000..fa28a04a5 --- /dev/null +++ b/public/locales/vi/modules/smart-home/entity-state.json @@ -0,0 +1,17 @@ +{ + "entityNotFound": "Không tìm thấy thực thể", + "descriptor": { + "name": "Thực thể Home Assistant", + "description": "Trạng thái hiện tại của một thực thể trong Home Assistant", + "settings": { + "title": "Trạng thái thực thể", + "entityId": { + "label": "ID thực thể", + "info": "ID thực thể độc nhất trong Home Assistant. Sao chép bằng cách nhấp vào thực thể > Nhấp vào biểu tượng răng cưa > Nhấp vào nút sao chép tại 'ID thực thể'. Một số thực thể tùy chỉnh có thể không được hỗ trợ." + }, + "displayName": { + "label": "Tên hiển thị" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/torrents-status.json b/public/locales/vi/modules/torrents-status.json index 099fb8ce1..89c48877b 100644 --- a/public/locales/vi/modules/torrents-status.json +++ b/public/locales/vi/modules/torrents-status.json @@ -11,10 +11,10 @@ "label": "Hiển thị torrent hoàn thành" }, "displayActiveTorrents": { - "label": "" + "label": "Hiển thị torrent đang hoạt động" }, "speedLimitOfActiveTorrents": { - "label": "" + "label": "Tốc độ tải lên để coi torrent là đang hoạt động (kB/s)" }, "displayStaleTorrents": { "label": "Hiển thị torrent hết hạn" @@ -27,8 +27,8 @@ "description": "Nếu chọn \"Danh sách trắng\", các nhãn sẽ được dùng như một danh sách trắng. Nếu không được chọn, đây sẽ là danh sách đen. Sẽ không có gì xảy ra nếu trống không" }, "displayRatioWithFilter": { - "label": "", - "info": "" + "label": "Hiển thị tỷ lệ danh sách torrent sau lọc", + "info": "Nếu tắt, chỉ tỉ lệ chung sẽ được hiển thị. Tỉ lệ chung sẽ vẫn sử dụng nhãn nếu được đặt" } } }, @@ -36,24 +36,34 @@ "footer": { "error": "Lỗi", "lastUpdated": "Cập nhật cuối cách đây {{time}}", - "ratioGlobal": "", - "ratioWithFilter": "" + "ratioGlobal": "Tỉ lệ chung", + "ratioWithFilter": "Tỉ lệ sau lọc" }, "table": { "header": { + "isCompleted": "Đang tải", "name": "Tên", + "dateAdded": "Được thêm vào", "size": "Kích cỡ", "download": "Tải xuống", "upload": "Tải lên", "estimatedTimeOfArrival": "Thời gian dự kiến", - "progress": "Tiến độ" + "progress": "Tiến độ", + "totalUploaded": "Tổng tải lên", + "totalDownloaded": "Tổng tải xuống", + "ratio": "Tỉ lệ", + "seeds": "Chia sẻ (Đã kết nối)", + "peers": "Ngang hàng (Đã kết nối)", + "label": "Nhãn", + "state": "Trạng thái", + "stateMessage": "Thông tin trạng thái" }, "item": { "text": "Quản lý bởi {{appName}}, tỷ lệ {{ratio}}" }, "body": { "nothingFound": "Không tìm thấy torrent nào", - "filterHidingItems": "Đã ẩn {{count}} dòng bởi bộ lọc của bạn" + "filterHidingItems": "{{count}} dòng đã ẩn bởi bộ lọc của bạn" } }, "lineChart": { diff --git a/public/locales/vi/settings/customization/general.json b/public/locales/vi/settings/customization/general.json index 406d742f7..3ae750f82 100644 --- a/public/locales/vi/settings/customization/general.json +++ b/public/locales/vi/settings/customization/general.json @@ -22,7 +22,7 @@ "description": "Thiết lập Homarr cho người dùng khuyết tật" }, "access": { - "name": "", + "name": "Truy cập", "description": "Định cấu hình ai có quyền truy cập vào bảng của bạn" } } diff --git a/public/locales/vi/settings/customization/page-appearance.json b/public/locales/vi/settings/customization/page-appearance.json index ef0e7f90f..af79ed125 100644 --- a/public/locales/vi/settings/customization/page-appearance.json +++ b/public/locales/vi/settings/customization/page-appearance.json @@ -19,26 +19,26 @@ "label": "Hình nền" }, "backgroundImageAttachment": { - "label": "", + "label": "Vị trí ảnh nền", "options": { - "fixed": "", - "scroll": "" + "fixed": "Cố định - Nền vẫn giữ nguyên vị trí (được khuyến nghị)", + "scroll": "Cuộn - Ảnh nền bám theo cuộn chuột" } }, "backgroundImageSize": { - "label": "", + "label": "Kích cỡ ảnh nền", "options": { - "cover": "", - "contain": "" + "cover": "Che - Chia tỷ lệ hình ảnh càng nhỏ càng tốt để che toàn bộ cửa sổ bằng cách cắt bớt khoảng trống quá mức. (được khuyến nghị)", + "contain": "Chứa - Dùng tỷ lệ hình ảnh lớn nhất có thể trong khung chứa của nó mà không cắt xén hay kéo giãn." } }, "backgroundImageRepeat": { - "label": "", + "label": "Vị trí ảnh nền", "options": { - "repeat": "", - "no-repeat": "", - "repeat-x": "", - "repeat-y": "" + "repeat": "Lặp lại - Hình ảnh được lặp lại nhiều nhất có thể để bao phủ toàn bộ khu vực vẽ hình nền.", + "no-repeat": "Không lặp lại - Hình ảnh không được lặp lại và có thể không lấp đầy toàn bộ không gian (được khuyến nghị)", + "repeat-x": "Lặp lại trục X - Tương tự như 'Lặp lại' nhưng chỉ trên trục ngang.", + "repeat-y": "Lặp lại trục Y - Tương tự như 'Lặp lại' nhưng chỉ trên trục tung." } }, "customCSS": { diff --git a/public/locales/vi/tools/docker.json b/public/locales/vi/tools/docker.json index 5f57baf16..74777762b 100644 --- a/public/locales/vi/tools/docker.json +++ b/public/locales/vi/tools/docker.json @@ -2,7 +2,7 @@ "title": "Docker", "alerts": { "notConfigured": { - "text": "" + "text": "Homarr của bạn chưa được thiết lập Docker hoặc không tìm thấy các vùng chứa. Hãy tham khảo cách thiết lập bên trong tài liệu." } }, "modals": { diff --git a/public/locales/vi/user/preferences.json b/public/locales/vi/user/preferences.json index fb0c8429d..3c77254b8 100644 --- a/public/locales/vi/user/preferences.json +++ b/public/locales/vi/user/preferences.json @@ -1,6 +1,6 @@ { "metaTitle": "Sở thích", - "pageTitle": "sở thích của bạn", + "pageTitle": "Cá nhân hoá", "boards": { "defaultBoard": { "label": "Bảng mặc định" @@ -37,7 +37,7 @@ "label": "Mở kết quả tìm kiếm trong tab mới" }, "autoFocus": { - "label": "Thanh tìm kiếm tập trung vào tải trang.", + "label": "Tự tập trung vào thanh tìm kiếm khi tải trang.", "description": "Điều này sẽ tự động tập trung vào thanh tìm kiếm khi bạn điều hướng đến các trang bảng. Nó sẽ chỉ hoạt động trên các thiết bị máy tính để bàn." }, "template": { diff --git a/public/site.webmanifest b/public/site.webmanifest index 96dae66d5..cb12a1e1b 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -1,4 +1,6 @@ { + "name": "Homarr", + "start_url": "/", "display": "standalone", "icons": [ { diff --git a/scripts/run.sh b/scripts/run.sh index ba017d05e..4623c6078 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -1,7 +1,7 @@ #!/bin/sh echo "Exporting hostname..." -export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:7575" +export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:${PORT:-7575}" echo "Migrating database..." cd ./migrate; yarn db:migrate & PID=$! diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx index 632a2cefa..eb021a94c 100644 --- a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx +++ b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx @@ -183,4 +183,9 @@ export const availableIntegrations = [ image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/adguard-home.png', label: 'AdGuard Home', }, + { + value: 'homeAssistant', + image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/home-assistant.png', + label: 'Home Assistant' + } ] as const satisfies Readonly; diff --git a/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx b/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx index 738473177..750231281 100644 --- a/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx +++ b/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx @@ -207,6 +207,7 @@ const WidgetOptionTypeSwitch: FC<{ {info && }