diff --git a/.dockerignore b/.dockerignore index 13609ca43..5c26793e4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,3 +7,7 @@ npm-debug.log .github LICENSE docs/ +*.sqlite +*.env +.env +.next/standalone/.env \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..2de2526be --- /dev/null +++ b/.env.example @@ -0,0 +1,14 @@ +DATABASE_URL="file:./database/db.sqlite" + +# Next Auth +# You can generate a new secret on the command line with: +# openssl rand -base64 32 +# https://next-auth.js.org/configuration/options#secret +NEXTAUTH_URL="http://localhost:3000" + +NEXTAUTH_SECRET="anything" + +# Disable analytics +NEXT_PUBLIC_DISABLE_ANALYTICS="true" + +DEFAULT_COLOR_SCHEME="light" \ No newline at end of file diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 000000000..876aa8f96 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ], + "commitMessagePrefix": "⬆️", + "dependencyDashboard": true, + "prCreation": "approval", + "lockFileMaintenance": { + "automerge": false + }, + "minor": { + "automerge": false + }, + "patch": { + "automerge": false + }, + "pin": { + "automerge": false + } +} \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c51306dff..a29f53062 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -63,9 +63,9 @@ jobs: restore-keys: | ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}- - - run: yarn install --immutable + - run: yarn install - - run: yarn build + - run: yarn turbo build - name: Docker meta id: meta @@ -83,6 +83,9 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + with: + driver: docker + buildkitd-flags: --debug - name: Login to GHCR uses: docker/login-action@v2 @@ -101,3 +104,4 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max + network: host diff --git a/.github/workflows/docker_dev.yml b/.github/workflows/docker_dev.yml index ca8b16563..b515dbcbd 100644 --- a/.github/workflows/docker_dev.yml +++ b/.github/workflows/docker_dev.yml @@ -41,6 +41,7 @@ jobs: permissions: packages: write contents: read + pull-requests: write steps: - name: Setup @@ -70,11 +71,15 @@ jobs: path: .next/cache key: ${{ runner.os }}-build-${{ env.cache-name }} - - run: yarn install --immutable + - run: yarn install - run: yarn turbo build - - run: yarn test:run + - run: yarn test:coverage + + - name: Report coverage + if: always() + uses: davelosert/vitest-coverage-report-action@v2 - name: Docker meta if: github.event_name != 'pull_request' @@ -114,3 +119,4 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max + network: host diff --git a/.gitignore b/.gitignore index a7129a95d..fc8e46928 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,12 @@ data/configs #Languages other than 'en' public/locales/* -!public/locales/en \ No newline at end of file +!public/locales/en + +#database +sqlite.db +database/*.sqlite +WILL_BE_OVERWRITTEN.sqlite + +# IDE +.idea/* \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..9a066dae0 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,21 @@ +{ + "i18n-ally.localesPaths": "public/locales", + "i18n-ally.enabledFrameworks": [ + "react-i18next" + ], + "i18n-ally.namespace": true, + "i18n-ally.pathMatcher": "{locale}/{namespaces}.json", + "i18n-ally.keystyle": "nested", + "i18n-ally.keysInUse": [ + "modules.**", + "layout.manage.navigation.**", + ], + "editor.codeActionsOnSave": { + "source.organizeImports": true + }, + "typescript.tsdk": "node_modules/typescript/lib", + "explorer.fileNesting.patterns": { + "package.json": "pnpm-lock.yaml, yarn.lock, package-lock.json", + "*.tsx": "${capture}.module.css" + }, +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d6b154294..621472736 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,46 @@ -FROM node:20-alpine +FROM node:20.5-slim WORKDIR /app +# Define node.js environment variables +ARG PORT=7575 + ENV NEXT_TELEMETRY_DISABLED 1 ENV NODE_ENV production ENV NODE_OPTIONS '--no-experimental-fetch' COPY next.config.js ./ COPY public ./public -COPY package.json ./package.json - +COPY package.json ./temp_package.json +COPY yarn.lock ./temp_yarn.lock # Automatically leverage output traces to reduce image size # https://nextjs.org/docs/advanced-features/output-file-tracing COPY .next/standalone ./ COPY .next/static ./.next/static +COPY ./scripts/run.sh ./scripts/run.sh +COPY ./drizzle ./drizzle +RUN mkdir /data +COPY ./src/migrate.ts ./src/migrate.ts -EXPOSE 7575 +# Install dependencies +RUN apt-get update -y && apt-get install -y openssl wget +# Required for migration +RUN mv node_modules _node_modules +RUN rm package.json +RUN yarn add typescript ts-node dotenv drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3 +RUN mv node_modules node_modules_migrate +RUN mv _node_modules node_modules + +# Expose the default application port +EXPOSE $PORT +ENV PORT=${PORT} + +ENV DATABASE_URL "file:/data/db.sqlite" +ENV NEXTAUTH_URL "http://localhost:3000" ENV PORT 7575 +ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED -CMD ["node", "server.js"] +HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \ + CMD wget --no-verbose --tries=1 --spider http://localhost:${PORT} || exit 1 + +CMD ["sh", "./scripts/run.sh"] diff --git a/README.md b/README.md index dfc2ca244..2f3949902 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@   CI Status - + @@ -28,7 +28,7 @@ Install 💻 • - + Translations 🈺 diff --git a/crowdin.yml b/crowdin.yml index 4b00c6c40..c55eb4eff 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,5 @@ +project_id: "534422" +api_token_env: "CROWDIN_PERSONAL_TOKEN" files: - source: /public/locales/en/**/*.json translation: /public/locales/%two_letters_code%/**/%original_file_name% diff --git a/data/configs/default.json b/data/configs/default.json index 84954d73e..910d736f7 100644 --- a/data/configs/default.json +++ b/data/configs/default.json @@ -270,52 +270,6 @@ } ], "widgets": [ - { - "id": "86b1921f-efa7-410f-92dd-79553bf3264d", - "type": "notebook", - "properties": { - "showToolbar": true, - "content": "

Homarr's notebook

Use it as your Todo list, ideas to think about, as a \"getting-started\" guide for your users or even as your secret journal to confess your crushes, it stays private our your Homarr instance.

The notebook widget focuses on usability and is designed to be as simple as possible to bring a familiar editing experience to regular users. It is based on Tiptap.dev and supports all of its features:

" - }, - "area": { - "type": "wrapper", - "properties": { - "id": "default" - } - }, - "shape": { - "sm": { - "location": { - "x": 0, - "y": 0 - }, - "size": { - "width": 3, - "height": 2 - } - }, - "md": { - "location": { - "x": 0, - "y": 0 - }, - "size": { - "width": 3, - "height": 4 - } - }, - "lg": { - "location": { - "x": 0, - "y": 1 - }, - "size": { - "width": 6, - "height": 3 - } - } - } - }, { "id": "e3004052-6b83-480e-b458-56e8ccdca5f0", "type": "weather", @@ -472,6 +426,52 @@ } } } + }, + { + "id": "86b1921f-efa7-410f-92dd-79553bf3264d", + "type": "notebook", + "properties": { + "showToolbar": true, + "content": "

Welcome to Homarr 🚀👋

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

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

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

Your TODO list:

" + }, + "area": { + "type": "wrapper", + "properties": { + "id": "default" + } + }, + "shape": { + "sm": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 3, + "height": 2 + } + }, + "md": { + "location": { + "x": 0, + "y": 0 + }, + "size": { + "width": 3, + "height": 4 + } + }, + "lg": { + "location": { + "x": 0, + "y": 1 + }, + "size": { + "width": 6, + "height": 3 + } + } + } } ], "settings": { @@ -505,6 +505,9 @@ "columnCountMedium": 6, "columnCountLarge": 10 } + }, + "access": { + "allowGuests": false } } } \ No newline at end of file diff --git a/data/constants.ts b/data/constants.ts index b10f63d7e..6c43f365d 100644 --- a/data/constants.ts +++ b/data/constants.ts @@ -1,2 +1,4 @@ export const REPO_URL = 'ajnart/homarr'; export const ICON_PICKER_SLICE_LIMIT = 36; +export const COOKIE_LOCALE_KEY = 'config-locale'; +export const COOKIE_COLOR_SCHEME_KEY = 'color-scheme'; diff --git a/data/crowdin-report.json b/data/crowdin-report.json new file mode 100644 index 000000000..d1a889f03 --- /dev/null +++ b/data/crowdin-report.json @@ -0,0 +1,2732 @@ +{ + "name": "homarr Top Members Report", + "url": "https://crowdin.com/project/homarr", + "unit": "words", + "dateRange": { + "from": "2022-08-25", + "to": "2024-01-01" + }, + "language": "All", + "data": [ + { + "user": { + "id": "15492732", + "username": "hillaliy", + "fullName": "Yossi Hillali (hillaliy)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg", + "joined": "2022-10-15 15:18:50" + }, + "languages": [ + { + "id": "he", + "name": "Hebrew" + } + ], + "translated": 5404, + "target": 4717, + "approved": 5437, + "voted": 0, + "positiveVotes": 12, + "negativeVotes": 0, + "winning": 5395 + }, + { + "user": { + "id": "15491798", + "username": "lupineDK", + "fullName": "Anders Ecklon (lupineDK)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png", + "joined": "2022-10-15 01:14:33" + }, + "languages": [ + { + "id": "da", + "name": "Danish" + } + ], + "translated": 5353, + "target": 5159, + "approved": 5371, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 5353 + }, + { + "user": { + "id": "15202182", + "username": "Walkx", + "fullName": "Walkx", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png", + "joined": "2022-08-25 07:28:51" + }, + "languages": [ + { + "id": "nl", + "name": "Dutch" + }, + { + "id": "en", + "name": "English" + }, + { + "id": "de", + "name": "German" + }, + { + "id": "lol", + "name": "LOLCAT" + }, + { + "id": "en-PT", + "name": "Pirate English" + } + ], + "translated": 5065, + "target": 5027, + "approved": 5618, + "voted": 0, + "positiveVotes": 2, + "negativeVotes": 1, + "winning": 5074 + }, + { + "user": { + "id": "15554645", + "username": "crendasien", + "fullName": "Nicole (crendasien)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg", + "joined": "2022-11-28 14:18:44" + }, + "languages": [ + { + "id": "it", + "name": "Italian" + } + ], + "translated": 4910, + "target": 5000, + "approved": 5235, + "voted": 0, + "positiveVotes": 11, + "negativeVotes": 0, + "winning": 4907 + }, + { + "user": { + "id": "12701640", + "username": "SmartPhoneLover", + "fullName": "Sergio (SmartPhoneLover)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg", + "joined": "2022-09-04 10:29:30" + }, + "languages": [ + { + "id": "en", + "name": "English" + }, + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 4446, + "target": 4685, + "approved": 0, + "voted": 166, + "positiveVotes": 24, + "negativeVotes": 0, + "winning": 963 + }, + { + "user": { + "id": "15674593", + "username": "Marty88", + "fullName": "Marty (Marty88)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg", + "joined": "2023-02-08 16:28:53" + }, + "languages": [ + { + "id": "sk", + "name": "Slovak" + } + ], + "translated": 4302, + "target": 3955, + "approved": 3732, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 3726 + }, + { + "user": { + "id": "15445560", + "username": "Bims0n", + "fullName": "Bims0n", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg", + "joined": "2022-09-13 05:55:32" + }, + "languages": [ + { + "id": "de", + "name": "German" + } + ], + "translated": 4245, + "target": 4326, + "approved": 3964, + "voted": 0, + "positiveVotes": 25, + "negativeVotes": 0, + "winning": 3685 + }, + { + "user": { + "id": "15428516", + "username": "Steken", + "fullName": "Steken", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png", + "joined": "2022-08-31 10:52:11" + }, + "languages": [ + { + "id": "sv-SE", + "name": "Swedish" + } + ], + "translated": 4142, + "target": 3889, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15722911", + "username": "GkhnG", + "fullName": "GkhnG", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png", + "joined": "2023-04-28 22:50:37" + }, + "languages": [ + { + "id": "tr", + "name": "Turkish" + } + ], + "translated": 3845, + "target": 3244, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15951759", + "username": "Sandor-dev", + "fullName": "Sandor-dev", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png", + "joined": "2023-08-05 03:35:17" + }, + "languages": [ + { + "id": "hu", + "name": "Hungarian" + } + ], + "translated": 3734, + "target": 3409, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15644717", + "username": "suming", + "fullName": "宿命 (suming)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png", + "joined": "2023-01-19 12:37:25" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 3296, + "target": 5128, + "approved": 3666, + "voted": 1, + "positiveVotes": 1, + "negativeVotes": 2, + "winning": 2873 + }, + { + "user": { + "id": "15709853", + "username": "RJSkudra", + "fullName": "RJS (RJSkudra)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png", + "joined": "2023-04-08 13:07:46" + }, + "languages": [ + { + "id": "lv", + "name": "Latvian" + } + ], + "translated": 3074, + "target": 2734, + "approved": 2987, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2980 + }, + { + "user": { + "id": "14799754", + "username": "cretzen", + "fullName": "Cretzen (cretzen)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14799754/medium/038eeb7de2d7869a17e402864bfeab24.png", + "joined": "2022-10-18 23:39:24" + }, + "languages": [ + { + "id": "vi", + "name": "Vietnamese" + } + ], + "translated": 2929, + "target": 4087, + "approved": 4, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 4 + }, + { + "user": { + "id": "15428592", + "username": "flar.anton", + "fullName": "Anton Chernyshev (flar.anton)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg", + "joined": "2022-08-31 11:31:25" + }, + "languages": [ + { + "id": "uk", + "name": "Ukrainian" + } + ], + "translated": 2883, + "target": 2551, + "approved": 2748, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2681 + }, + { + "user": { + "id": "15875457", + "username": "raelyan", + "fullName": "Raelyan (raelyan)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg", + "joined": "2023-06-14 12:51:04" + }, + "languages": [ + { + "id": "gl", + "name": "Galician" + }, + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 2740, + "target": 3061, + "approved": 3553, + "voted": 5, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2717 + }, + { + "user": { + "id": "15617065", + "username": "somerlev", + "fullName": "somerlev", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg", + "joined": "2023-01-01 15:03:01" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 2688, + "target": 2379, + "approved": 2987, + "voted": 160, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2557 + }, + { + "user": { + "id": "15419914", + "username": "benniblot", + "fullName": "Benjamin Engler (benniblot)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15419914/medium/7d0ba7a7c4b62dab3e5f570d858759d4.png", + "joined": "2022-08-25 07:49:07" + }, + "languages": [ + { + "id": "en", + "name": "English" + }, + { + "id": "de", + "name": "German" + } + ], + "translated": 2474, + "target": 2463, + "approved": 0, + "voted": 27, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2101 + }, + { + "user": { + "id": "15677023", + "username": "Spillebulle", + "fullName": "Spillebulle", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15677023/medium/096cf68fccf4b666954a0a57a974af64_default.png", + "joined": "2023-02-08 02:51:18" + }, + "languages": [ + { + "id": "no", + "name": "Norwegian" + } + ], + "translated": 2342, + "target": 2195, + "approved": 2342, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2338 + }, + { + "user": { + "id": "15118857", + "username": "tomislav.kraljevic", + "fullName": "Tomislav Kraljević (tomislav.kraljevic)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png", + "joined": "2023-07-04 11:04:04" + }, + "languages": [ + { + "id": "hr", + "name": "Croatian" + } + ], + "translated": 2109, + "target": 2031, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15647517", + "username": "nick.gher", + "fullName": "nick.gher", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png", + "joined": "2023-01-22 09:16:52" + }, + "languages": [ + { + "id": "el", + "name": "Greek" + } + ], + "translated": 2064, + "target": 2219, + "approved": 2064, + "voted": 0, + "positiveVotes": 3, + "negativeVotes": 0, + "winning": 2055 + }, + { + "user": { + "id": "16045554", + "username": "rpieja", + "fullName": "rpieja", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png", + "joined": "2023-10-09 07:56:18" + }, + "languages": [ + { + "id": "pl", + "name": "Polish" + } + ], + "translated": 1987, + "target": 1808, + "approved": 0, + "voted": 0, + "positiveVotes": 5, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15865139", + "username": "Beardy", + "fullName": "Beardy", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png", + "joined": "2023-06-07 06:24:20" + }, + "languages": [ + { + "id": "el", + "name": "Greek" + } + ], + "translated": 1975, + "target": 2118, + "approved": 0, + "voted": 3, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15149958", + "username": "DimitriDR", + "fullName": "Dimitri (DimitriDR)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15149958/medium/a7b4224bce318334510b708a5ccda604.png", + "joined": "2023-01-06 18:49:19" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 1720, + "target": 1943, + "approved": 1103, + "voted": 20, + "positiveVotes": 8, + "negativeVotes": 0, + "winning": 774 + }, + { + "user": { + "id": "12572682", + "username": "THJ", + "fullName": "Andrej Kralj (THJ)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12572682/medium/57fda59b7c2b9d100064e6c02953ebbe_default.png", + "joined": "2022-08-25 07:50:35" + }, + "languages": [ + { + "id": "sl", + "name": "Slovenian" + } + ], + "translated": 1707, + "target": 1602, + "approved": 2614, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 1610 + }, + { + "user": { + "id": "15981895", + "username": "azurite928", + "fullName": "Azurite (azurite928)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png", + "joined": "2023-08-25 08:00:31" + }, + "languages": [ + { + "id": "ja", + "name": "Japanese" + } + ], + "translated": 1685, + "target": 4598, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15270132", + "username": "ajnart", + "fullName": "Thomas Camlong (ajnart)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg", + "joined": "2022-08-25 06:01:00" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + }, + { + "id": "hr", + "name": "Croatian" + }, + { + "id": "da", + "name": "Danish" + }, + { + "id": "nl", + "name": "Dutch" + }, + { + "id": "en", + "name": "English" + }, + { + "id": "fr", + "name": "French" + }, + { + "id": "de", + "name": "German" + }, + { + "id": "it", + "name": "Italian" + }, + { + "id": "ja", + "name": "Japanese" + }, + { + "id": "ko", + "name": "Korean" + }, + { + "id": "lol", + "name": "LOLCAT" + }, + { + "id": "lv", + "name": "Latvian" + }, + { + "id": "no", + "name": "Norwegian" + }, + { + "id": "pl", + "name": "Polish" + }, + { + "id": "pt-BR", + "name": "Portuguese, Brazilian" + }, + { + "id": "ru", + "name": "Russian" + }, + { + "id": "sl", + "name": "Slovenian" + }, + { + "id": "es-ES", + "name": "Spanish" + }, + { + "id": "sv-SE", + "name": "Swedish" + }, + { + "id": "uk", + "name": "Ukrainian" + }, + { + "id": "vi", + "name": "Vietnamese" + } + ], + "translated": 1461, + "target": 1547, + "approved": 1463, + "voted": 0, + "positiveVotes": 189, + "negativeVotes": 20, + "winning": 1215 + }, + { + "user": { + "id": "16021342", + "username": "Ronner231", + "fullName": "Ronner (Ronner231)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg", + "joined": "2023-09-24 16:06:42" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 901, + "target": 807, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15420178", + "username": "Manicraft1001", + "fullName": "Manicraft1001", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg", + "joined": "2022-08-25 11:13:34" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + }, + { + "id": "en", + "name": "English" + }, + { + "id": "fr", + "name": "French" + }, + { + "id": "de", + "name": "German" + } + ], + "translated": 830, + "target": 838, + "approved": 3075, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 753 + }, + { + "user": { + "id": "15818233", + "username": "MoeToo", + "fullName": "MoeToo", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png", + "joined": "2023-07-27 03:50:11" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 676, + "target": 1029, + "approved": 0, + "voted": 26, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 224 + }, + { + "user": { + "id": "15419916", + "username": "pacjo", + "fullName": "pacjo", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png", + "joined": "2022-08-25 07:49:08" + }, + "languages": [ + { + "id": "pl", + "name": "Polish" + } + ], + "translated": 651, + "target": 603, + "approved": 0, + "voted": 0, + "positiveVotes": 2, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15434162", + "username": "bfkadan", + "fullName": "이병주 (bfkadan)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png", + "joined": "2022-09-05 01:53:23" + }, + "languages": [ + { + "id": "ko", + "name": "Korean" + } + ], + "translated": 627, + "target": 527, + "approved": 0, + "voted": 0, + "positiveVotes": 7, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "13185230", + "username": "BeersTeddy", + "fullName": "BeersTeddy", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png", + "joined": "2023-03-09 09:40:50" + }, + "languages": [ + { + "id": "pl", + "name": "Polish" + } + ], + "translated": 624, + "target": 570, + "approved": 0, + "voted": 12, + "positiveVotes": 0, + "negativeVotes": 1, + "winning": 0 + }, + { + "user": { + "id": "15925879", + "username": "kennit", + "fullName": "kennit", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png", + "joined": "2023-07-19 04:46:11" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 577, + "target": 711, + "approved": 0, + "voted": 1, + "positiveVotes": 12, + "negativeVotes": 0, + "winning": 153 + }, + { + "user": { + "id": "15426890", + "username": "JokeOfDead", + "fullName": "Alejandro Grande (JokeOfDead)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg", + "joined": "2022-08-30 09:37:25" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 552, + "target": 649, + "approved": 658, + "voted": 19, + "positiveVotes": 87, + "negativeVotes": 0, + "winning": 355 + }, + { + "user": { + "id": "15057621", + "username": "jeffersonraimon", + "fullName": "Jefferson J. Raimon (jeffersonraimon)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15057621/medium/4fbff4945fa3b7c2ab219a726b23778b.jpeg", + "joined": "2023-02-21 13:25:50" + }, + "languages": [ + { + "id": "pt-BR", + "name": "Portuguese, Brazilian" + } + ], + "translated": 544, + "target": 606, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "14722148", + "username": "antoine2tt", + "fullName": "antoine2tt", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png", + "joined": "2023-01-17 10:18:16" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 507, + "target": 594, + "approved": 0, + "voted": 2, + "positiveVotes": 1, + "negativeVotes": 0, + "winning": 480 + }, + { + "user": { + "id": "15690777", + "username": "y.gybson", + "fullName": "Константин Золотарев (y.gybson)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg", + "joined": "2023-02-15 07:43:18" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 435, + "target": 382, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 198 + }, + { + "user": { + "id": "15713937", + "username": "binge203", + "fullName": "Binge Noah (binge203)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif", + "joined": "2023-02-27 15:57:17" + }, + "languages": [ + { + "id": "uk", + "name": "Ukrainian" + } + ], + "translated": 411, + "target": 368, + "approved": 0, + "voted": 0, + "positiveVotes": 2, + "negativeVotes": 0, + "winning": 44 + }, + { + "user": { + "id": "15425808", + "username": "fabricionaweb", + "fullName": "Fabricio Silva (fabricionaweb)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png", + "joined": "2022-08-29 14:45:47" + }, + "languages": [ + { + "id": "pt-BR", + "name": "Portuguese, Brazilian" + } + ], + "translated": 408, + "target": 444, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "13330448", + "username": "vannCN", + "fullName": "vannCN", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg", + "joined": "2023-01-16 01:38:13" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 365, + "target": 566, + "approved": 0, + "voted": 5, + "positiveVotes": 6, + "negativeVotes": 0, + "winning": 79 + }, + { + "user": { + "id": "15405614", + "username": "irithys", + "fullName": "irithys", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png", + "joined": "2022-09-18 21:10:51" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 344, + "target": 599, + "approved": 0, + "voted": 3, + "positiveVotes": 15, + "negativeVotes": 3, + "winning": 119 + }, + { + "user": { + "id": "15977271", + "username": "tagaishi", + "fullName": "tagaishi", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png", + "joined": "2023-08-22 07:09:16" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + }, + { + "id": "fr", + "name": "French" + } + ], + "translated": 328, + "target": 395, + "approved": 0, + "voted": 2, + "positiveVotes": 2, + "negativeVotes": 0, + "winning": 95 + }, + { + "user": { + "id": "15685239", + "username": "petitmewen", + "fullName": "mobby45 (petitmewen)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg", + "joined": "2023-08-21 13:42:29" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 320, + "target": 379, + "approved": 0, + "voted": 5, + "positiveVotes": 0, + "negativeVotes": 1, + "winning": 106 + }, + { + "user": { + "id": "15427174", + "username": "hkz", + "fullName": "hkz", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png", + "joined": "2022-08-30 13:15:07" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 318, + "target": 355, + "approved": 964, + "voted": 2, + "positiveVotes": 1, + "negativeVotes": 0, + "winning": 316 + }, + { + "user": { + "id": "15687709", + "username": "NoProsNoNoobs", + "fullName": "NoProsNoNoobs", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png", + "joined": "2023-02-13 14:58:17" + }, + "languages": [ + { + "id": "nl", + "name": "Dutch" + } + ], + "translated": 267, + "target": 259, + "approved": 0, + "voted": 8, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 63 + }, + { + "user": { + "id": "14949159", + "username": "f1refa11", + "fullName": "FireFall (f1refa11)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png", + "joined": "2023-09-06 14:55:13" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 228, + "target": 203, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "6697", + "username": "carlchina", + "fullName": "carl wong (carlchina)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png", + "joined": "2023-06-30 11:23:45" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 210, + "target": 339, + "approved": 0, + "voted": 0, + "positiveVotes": 4, + "negativeVotes": 0, + "winning": 126 + }, + { + "user": { + "id": "13641407", + "username": "wolong98", + "fullName": "QI wolong (wolong98)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg", + "joined": "2023-02-17 22:03:21" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 185, + "target": 289, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 43 + }, + { + "user": { + "id": "15420118", + "username": "WowMurdock", + "fullName": "Liok haah (WowMurdock)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png", + "joined": "2022-08-25 10:34:26" + }, + "languages": [ + { + "id": "ru", + "name": "Russian" + } + ], + "translated": 183, + "target": 161, + "approved": 0, + "voted": 0, + "positiveVotes": 54, + "negativeVotes": 3, + "winning": 20 + }, + { + "user": { + "id": "15304568", + "username": "Bulgus", + "fullName": "Pour Les Tests (Bulgus)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg", + "joined": "2023-02-05 11:48:40" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 168, + "target": 209, + "approved": 0, + "voted": 0, + "positiveVotes": 18, + "negativeVotes": 3, + "winning": 75 + }, + { + "user": { + "id": "12580457", + "username": "almontegil", + "fullName": "Gil Almonte (almontegil)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png", + "joined": "2022-08-28 20:04:49" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 162, + "target": 179, + "approved": 0, + "voted": 0, + "positiveVotes": 99, + "negativeVotes": 1, + "winning": 142 + }, + { + "user": { + "id": "15057987", + "username": "giop98", + "fullName": "Giovanni Pollo (giop98)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg", + "joined": "2022-09-07 15:54:27" + }, + "languages": [ + { + "id": "it", + "name": "Italian" + } + ], + "translated": 134, + "target": 141, + "approved": 0, + "voted": 0, + "positiveVotes": 3, + "negativeVotes": 0, + "winning": 86 + }, + { + "user": { + "id": "15419912", + "username": "JannesV", + "fullName": "Jannes Vandepitte (JannesV)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png", + "joined": "2022-08-25 07:47:26" + }, + "languages": [ + { + "id": "nl", + "name": "Dutch" + } + ], + "translated": 133, + "target": 130, + "approved": 0, + "voted": 2, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 114 + }, + { + "user": { + "id": "15547289", + "username": "_vytdv", + "fullName": "_vytdv", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png", + "joined": "2022-11-23 06:10:51" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 96, + "target": 123, + "approved": 0, + "voted": 1, + "positiveVotes": 4, + "negativeVotes": 2, + "winning": 85 + }, + { + "user": { + "id": "15573823", + "username": "edxo", + "fullName": "phui-chen (edxo)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png", + "joined": "2023-04-17 10:47:03" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 96, + "target": 172, + "approved": 0, + "voted": 0, + "positiveVotes": 7, + "negativeVotes": 0, + "winning": 28 + }, + { + "user": { + "id": "15792897", + "username": "HooinKyoma", + "fullName": "Hooin Kyoma (HooinKyoma)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg", + "joined": "2023-04-19 06:15:34" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 93, + "target": 135, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 14 + }, + { + "user": { + "id": "15422606", + "username": "R4cc", + "fullName": "R4cc", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg", + "joined": "2022-08-27 08:48:59" + }, + "languages": [ + { + "id": "de", + "name": "German" + } + ], + "translated": 92, + "target": 87, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 69 + }, + { + "user": { + "id": "15674577", + "username": "tee_noodle", + "fullName": "tee_noodle", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png", + "joined": "2023-02-06 15:57:25" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 91, + "target": 111, + "approved": 0, + "voted": 33, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 9 + }, + { + "user": { + "id": "13343482", + "username": "binswm", + "fullName": "binswm", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png", + "joined": "2023-03-06 03:58:56" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 85, + "target": 136, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15836233", + "username": "itodouble", + "fullName": "还有一天就放假了 (itodouble)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png", + "joined": "2023-05-18 04:20:01" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 79, + "target": 127, + "approved": 0, + "voted": 19, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 31 + }, + { + "user": { + "id": "14444264", + "username": "droidenko", + "fullName": "Сергій Богданов (droidenko)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg", + "joined": "2023-04-13 16:17:25" + }, + "languages": [ + { + "id": "uk", + "name": "Ukrainian" + } + ], + "translated": 67, + "target": 64, + "approved": 0, + "voted": 2, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15436168", + "username": "HRKings", + "fullName": "Helton Reis (HRKings)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png", + "joined": "2022-09-06 08:46:32" + }, + "languages": [ + { + "id": "pt-BR", + "name": "Portuguese, Brazilian" + } + ], + "translated": 59, + "target": 64, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15620663", + "username": "realitymolder", + "fullName": "Daniel Toubul (realitymolder)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15620663/medium/567349e86d1b57a006a347142f7e11ee.jpeg", + "joined": "2023-01-18 07:20:56" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + }, + { + "id": "he", + "name": "Hebrew" + } + ], + "translated": 51, + "target": 51, + "approved": 0, + "voted": 12, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 33 + }, + { + "user": { + "id": "15440860", + "username": "qaz0911", + "fullName": "qaz0911", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png", + "joined": "2022-09-09 16:01:15" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 44, + "target": 83, + "approved": 0, + "voted": 26, + "positiveVotes": 5, + "negativeVotes": 0, + "winning": 7 + }, + { + "user": { + "id": "15518710", + "username": "HeroSizy", + "fullName": "SiZY (HeroSizy)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png", + "joined": "2022-11-03 03:34:17" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 39, + "target": 63, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 13 + }, + { + "user": { + "id": "15470768", + "username": "DooYoo", + "fullName": "DooYoo", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png", + "joined": "2022-09-30 06:15:13" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 31, + "target": 31, + "approved": 0, + "voted": 12, + "positiveVotes": 1, + "negativeVotes": 0, + "winning": 5 + }, + { + "user": { + "id": "14670666", + "username": "gm.cinalli", + "fullName": "Gian Marco Cinalli (gm.cinalli)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg", + "joined": "2022-11-08 12:01:21" + }, + "languages": [ + { + "id": "it", + "name": "Italian" + } + ], + "translated": 31, + "target": 40, + "approved": 0, + "voted": 11, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 23 + }, + { + "user": { + "id": "13547726", + "username": "raphcatarino", + "fullName": "Zareix (raphcatarino)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg", + "joined": "2022-09-09 03:30:43" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 26, + "target": 39, + "approved": 0, + "voted": 2, + "positiveVotes": 7, + "negativeVotes": 0, + "winning": 26 + }, + { + "user": { + "id": "15459882", + "username": "RagnarGraves", + "fullName": "NONE NAME (RagnarGraves)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png", + "joined": "2023-03-15 09:57:36" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 24, + "target": 23, + "approved": 0, + "voted": 3, + "positiveVotes": 1, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15419934", + "username": "Payou6994", + "fullName": "Payou (Payou6994)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png", + "joined": "2022-08-25 10:30:56" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 22, + "target": 24, + "approved": 0, + "voted": 7, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 17 + }, + { + "user": { + "id": "15588979", + "username": "Chengnan", + "fullName": "Chengnan", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15588979/medium/a3c6f4db39ae6c966190e1a2b3aea3d7.png", + "joined": "2023-06-27 01:48:52" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 21, + "target": 49, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 12 + }, + { + "user": { + "id": "15439078", + "username": "wiston81", + "fullName": "Riky Bahia (wiston81)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg", + "joined": "2022-09-08 10:28:34" + }, + "languages": [ + { + "id": "it", + "name": "Italian" + } + ], + "translated": 16, + "target": 14, + "approved": 0, + "voted": 4, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 3 + }, + { + "user": { + "id": "15486922", + "username": "frisco82", + "fullName": "Ramiro Aparicio (frisco82)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg", + "joined": "2022-10-11 13:43:27" + }, + "languages": [ + { + "id": "en", + "name": "English" + }, + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 14, + "target": 14, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 7 + }, + { + "user": { + "id": "15501072", + "username": "MarcOrfilaCarreras", + "fullName": "Marc Orfila Carreras (MarcOrfilaCarreras)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png", + "joined": "2022-10-21 03:59:58" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 14, + "target": 19, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 6 + }, + { + "user": { + "id": "15520022", + "username": "dwt136", + "fullName": "dwt136", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png", + "joined": "2022-11-04 01:35:50" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 14, + "target": 18, + "approved": 0, + "voted": 5, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 6 + }, + { + "user": { + "id": "14012333", + "username": "spair0039", + "fullName": "spair0039", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png", + "joined": "2022-10-14 03:19:17" + }, + "languages": [ + { + "id": "ko", + "name": "Korean" + } + ], + "translated": 13, + "target": 14, + "approved": 0, + "voted": 7, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15953187", + "username": "Meierschlumpf", + "fullName": "Meier Lukas (Meierschlumpf)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg", + "joined": "2023-08-06 04:07:46" + }, + "languages": [ + { + "id": "de", + "name": "German" + } + ], + "translated": 9, + "target": 10, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 9 + }, + { + "user": { + "id": "12664938", + "username": "andibing", + "fullName": "Andi Chandler (andibing)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg", + "joined": "2023-08-18 18:10:00" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 7, + "target": 7, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15507822", + "username": "robertbridda", + "fullName": "Robert Bridda (robertbridda)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png", + "joined": "2022-10-26 04:38:00" + }, + "languages": [ + { + "id": "it", + "name": "Italian" + } + ], + "translated": 6, + "target": 8, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15434662", + "username": "BunnySweety", + "fullName": "BunnySweety", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png", + "joined": "2022-09-05 07:51:46" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 5, + "target": 6, + "approved": 0, + "voted": 1, + "positiveVotes": 1, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15462414", + "username": "PrtmPhlp", + "fullName": "PrtmPhlp", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png", + "joined": "2022-09-24 09:01:16" + }, + "languages": [ + { + "id": "de", + "name": "German" + } + ], + "translated": 4, + "target": 4, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "7795", + "username": "zielmann", + "fullName": "Luke (zielmann)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png", + "joined": "2023-10-12 09:50:59" + }, + "languages": [ + { + "id": "pl", + "name": "Polish" + } + ], + "translated": 4, + "target": 4, + "approved": 0, + "voted": 6, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15643771", + "username": "kid1412621", + "fullName": "kid1412621", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png", + "joined": "2023-08-08 11:09:51" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 3, + "target": 7, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 3 + }, + { + "user": { + "id": "15545537", + "username": "eiloogs", + "fullName": "沐川 (eiloogs)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif", + "joined": "2022-11-22 01:52:53" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 2, + "target": 6, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15650315", + "username": "DataCat", + "fullName": "DataCat", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png", + "joined": "2023-01-23 06:55:50" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 2, + "target": 5, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15658375", + "username": "dizo89", + "fullName": "jbr1989 (dizo89)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg", + "joined": "2023-01-28 06:54:20" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 2, + "target": 3, + "approved": 0, + "voted": 3, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15847901", + "username": "loslocitos", + "fullName": "Daren Austin (loslocitos)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg", + "joined": "2023-05-26 02:06:40" + }, + "languages": [ + { + "id": "es-ES", + "name": "Spanish" + } + ], + "translated": 2, + "target": 2, + "approved": 0, + "voted": 28, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 2 + }, + { + "user": { + "id": "15950309", + "username": "kuunpire", + "fullName": "kuunpi re (kuunpire)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg", + "joined": "2023-08-04 13:43:57" + }, + "languages": [ + { + "id": "uk", + "name": "Ukrainian" + } + ], + "translated": 2, + "target": 2, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15677311", + "username": "REMOVED_USER", + "fullName": "REMOVED_USER", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15677311/medium/8ffed0dd4eb21b71ee0be60fa7c80720_default.png", + "joined": "2023-02-20 07:28:13" + }, + "languages": [ + { + "id": "no", + "name": "Norwegian" + } + ], + "translated": 1, + "target": 1, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15419976", + "username": "fzibi21", + "fullName": "Fred Zibulski (fzibi21)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png", + "joined": "2022-08-25 08:37:20" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15420120", + "username": "hbooo", + "fullName": "hbo (hbooo)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg", + "joined": "2022-08-25 10:34:01" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15420354", + "username": "Void123", + "fullName": "Void123", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png", + "joined": "2022-08-25 13:50:08" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "13496556", + "username": "SkewRam", + "fullName": "Noan (SkewRam)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg", + "joined": "2022-08-26 19:12:25" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15246318", + "username": "andrea.rosso", + "fullName": "Andrea Rosso (andrea.rosso)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png", + "joined": "2022-08-31 08:29:06" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15429052", + "username": "BerkeleyBlue", + "fullName": "BerkeleyBlue", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15429052/medium/734cacdf45b7cedf4d56072cb0bce210_default.png", + "joined": "2022-08-31 19:48:48" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15433542", + "username": "Bon", + "fullName": "Bon", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg", + "joined": "2022-09-04 11:30:12" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "13245578", + "username": "jamesmcmahon0", + "fullName": "James McMahon (jamesmcmahon0)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg", + "joined": "2022-09-06 17:40:30" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 8, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15441462", + "username": "qqyule", + "fullName": "qqyule", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png", + "joined": "2022-09-10 04:34:50" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 6, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15446228", + "username": "TariqDaCoder", + "fullName": "TariqDaCoder", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png", + "joined": "2022-09-13 13:28:16" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15449644", + "username": "Anarchon", + "fullName": "Chri S. (Anarchon) (Anarchon)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg", + "joined": "2022-09-15 11:23:00" + }, + "languages": [ + { + "id": "de", + "name": "German" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15453020", + "username": "Ashun", + "fullName": "Ashun", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png", + "joined": "2022-09-17 21:03:53" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "14118689", + "username": "Soochaehwa", + "fullName": "Soochaehwa", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png", + "joined": "2022-09-22 09:30:24" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15486092", + "username": "espentruls", + "fullName": "Espen Skarsten (espentruls)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg", + "joined": "2022-10-11 02:43:38" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15518090", + "username": "MKoniuszko", + "fullName": "Przemek (MKoniuszko)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg", + "joined": "2022-11-02 14:48:04" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15526719", + "username": "asifthewebguy", + "fullName": "asifthewebguy", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png", + "joined": "2022-11-08 17:35:53" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15662563", + "username": "bowlr-support", + "fullName": "bowlr-support", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15662563/medium/6d242a9fc7dcf98fd4f528fbad02e767_default.png", + "joined": "2023-02-01 20:05:36" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15704947", + "username": "inside90", + "fullName": "inside90", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png", + "joined": "2023-02-23 05:18:04" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15719805", + "username": "tim-wiegers", + "fullName": "tim-wiegers", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png", + "joined": "2023-03-02 15:53:50" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15359236", + "username": "jonathan.berglin.work", + "fullName": "Jonathan Berglin (jonathan.berglin.work)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png", + "joined": "2023-03-22 14:28:48" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15714337", + "username": "Mailootje", + "fullName": "Mailootje", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg", + "joined": "2023-04-24 03:34:25" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15292058", + "username": "guineuu", + "fullName": "guineu (guineuu)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg", + "joined": "2023-04-27 13:51:15" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15849065", + "username": "Oversleep", + "fullName": "Oversleep", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png", + "joined": "2023-05-26 16:51:56" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15315986", + "username": "BySempron", + "fullName": "Sergio (BySempron)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png", + "joined": "2023-05-27 11:09:06" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15250690", + "username": "M1n-4d316e", + "fullName": "David (M1n-4d316e)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15250690/medium/f719940f4843d092ae8370cb014e4a04.png", + "joined": "2023-06-29 09:53:46" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15913763", + "username": "dolphin738", + "fullName": "行素 (dolphin738)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png", + "joined": "2023-07-11 08:18:20" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15916719", + "username": "brunotco", + "fullName": "brunotco", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png", + "joined": "2023-07-13 02:34:44" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "14817246", + "username": "ktKongTong", + "fullName": "ktKongTong", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg", + "joined": "2023-07-13 21:49:21" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "14861042", + "username": "marinkaberg", + "fullName": "marinkaberg", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg", + "joined": "2023-07-28 00:44:23" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15970733", + "username": "harmlesscat", + "fullName": "harmlesscat", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png", + "joined": "2023-08-17 11:14:25" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 2, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15976121", + "username": "OrzWTF", + "fullName": "__Gio__ (OrzWTF)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg", + "joined": "2023-08-21 12:05:12" + }, + "languages": [ + { + "id": "zh-CN", + "name": "Chinese Simplified" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 1, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "16034148", + "username": "ugyes", + "fullName": "ugyes", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png", + "joined": "2023-10-01 13:41:09" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15454038", + "username": "sebekmartin", + "fullName": "Martin Sebek (sebekmartin)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg", + "joined": "2023-10-08 09:26:03" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "16051620", + "username": "flambyisyou", + "fullName": "Flamby Isyou (flambyisyou)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png", + "joined": "2023-10-13 05:07:02" + }, + "languages": [ + { + "id": "fr", + "name": "French" + } + ], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 18, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + }, + { + "user": { + "id": "15760967", + "username": "Zoen-Millo", + "fullName": "Zoen Millo (Zoen-Millo)", + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg", + "joined": "2023-10-16 23:29:05" + }, + "languages": [], + "translated": 0, + "target": 0, + "approved": 0, + "voted": 0, + "positiveVotes": 0, + "negativeVotes": 0, + "winning": 0 + } + ] +} \ No newline at end of file diff --git a/database/.gitkeep b/database/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 000000000..e6aa45846 --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,11 @@ +import 'dotenv'; +import { type Config } from 'drizzle-kit'; + +export default { + schema: './src/server/db/schema.ts', + driver: 'better-sqlite', + out: './drizzle', + dbCredentials: { + url: process.env.DATABASE_URL!, + }, +} satisfies Config; diff --git a/drizzle/0000_supreme_the_captain.sql b/drizzle/0000_supreme_the_captain.sql new file mode 100644 index 000000000..d814bc5ed --- /dev/null +++ b/drizzle/0000_supreme_the_captain.sql @@ -0,0 +1,69 @@ +CREATE TABLE `account` ( + `userId` text NOT NULL, + `type` text NOT NULL, + `provider` text NOT NULL, + `providerAccountId` text NOT NULL, + `refresh_token` text, + `access_token` text, + `expires_at` integer, + `token_type` text, + `scope` text, + `id_token` text, + `session_state` text, + PRIMARY KEY(`provider`, `providerAccountId`), + FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `invite` ( + `id` text PRIMARY KEY NOT NULL, + `token` text NOT NULL, + `expires` integer NOT NULL, + `created_by_id` text NOT NULL, + FOREIGN KEY (`created_by_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `session` ( + `sessionToken` text PRIMARY KEY NOT NULL, + `userId` text NOT NULL, + `expires` integer NOT NULL, + FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `user_setting` ( + `id` text PRIMARY KEY NOT NULL, + `user_id` text NOT NULL, + `color_scheme` text DEFAULT 'environment' NOT NULL, + `language` text DEFAULT 'en' NOT NULL, + `default_board` text DEFAULT 'default' NOT NULL, + `first_day_of_week` text DEFAULT 'monday' NOT NULL, + `search_template` text DEFAULT 'https://google.com/search?q=%s' NOT NULL, + `open_search_in_new_tab` integer DEFAULT true NOT NULL, + `disable_ping_pulse` integer DEFAULT false NOT NULL, + `replace_ping_with_icons` integer DEFAULT false NOT NULL, + `use_debug_language` integer DEFAULT false NOT NULL, + `auto_focus_search` integer DEFAULT false NOT NULL, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE TABLE `user` ( + `id` text PRIMARY KEY NOT NULL, + `name` text, + `email` text, + `emailVerified` integer, + `image` text, + `password` text, + `salt` text, + `is_admin` integer DEFAULT false NOT NULL, + `is_owner` integer DEFAULT false NOT NULL +); +--> statement-breakpoint +CREATE TABLE `verificationToken` ( + `identifier` text NOT NULL, + `token` text NOT NULL, + `expires` integer NOT NULL, + PRIMARY KEY(`identifier`, `token`) +); +--> statement-breakpoint +CREATE INDEX `userId_idx` ON `account` (`userId`);--> statement-breakpoint +CREATE UNIQUE INDEX `invite_token_unique` ON `invite` (`token`);--> statement-breakpoint +CREATE INDEX `user_id_idx` ON `session` (`userId`); \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json new file mode 100644 index 000000000..87169d793 --- /dev/null +++ b/drizzle/meta/0000_snapshot.json @@ -0,0 +1,468 @@ +{ + "version": "5", + "dialect": "sqlite", + "id": "32c1bc91-e69f-4e1d-b53c-9c43f2e6c9d3", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "account": { + "name": "account", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "providerAccountId": { + "name": "providerAccountId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": [ + "userId" + ], + "isUnique": false + } + }, + "foreignKeys": { + "account_userId_user_id_fk": { + "name": "account_userId_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_providerAccountId_pk": { + "columns": [ + "provider", + "providerAccountId" + ] + } + }, + "uniqueConstraints": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": { + "invite_created_by_id_user_id_fk": { + "name": "invite_created_by_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "session": { + "name": "session", + "columns": { + "sessionToken": { + "name": "sessionToken", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": [ + "userId" + ], + "isUnique": false + } + }, + "foreignKeys": { + "session_userId_user_id_fk": { + "name": "session_userId_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "user_setting": { + "name": "user_setting", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'environment'" + }, + "language": { + "name": "language", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'en'" + }, + "default_board": { + "name": "default_board", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'monday'" + }, + "search_template": { + "name": "search_template", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'https://google.com/search?q=%s'" + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "disable_ping_pulse": { + "name": "disable_ping_pulse", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "replace_ping_with_icons": { + "name": "replace_ping_with_icons", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "use_debug_language": { + "name": "use_debug_language", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "auto_focus_search": { + "name": "auto_focus_search", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_setting_user_id_user_id_fk": { + "name": "user_setting_user_id_user_id_fk", + "tableFrom": "user_setting", + "tableTo": "user", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "emailVerified": { + "name": "emailVerified", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "salt": { + "name": "salt", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_admin": { + "name": "is_admin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_owner": { + "name": "is_owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "columns": [ + "identifier", + "token" + ] + } + }, + "uniqueConstraints": {} + } + }, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json new file mode 100644 index 000000000..6af8ab350 --- /dev/null +++ b/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "5", + "dialect": "sqlite", + "entries": [ + { + "idx": 0, + "version": "5", + "when": 1695874816934, + "tag": "0000_supreme_the_captain", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/next-env.d.ts b/next-env.d.ts index fd36f9494..4f11a03dc 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/next-i18next.config.js b/next-i18next.config.js index f6f772e9d..0fab2457f 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -5,35 +5,37 @@ module.exports = { i18n: { defaultLocale: 'en', locales: [ - 'en', + 'cn', + 'cr', + 'cs', 'da', - 'he', 'de', + 'el', + 'en', 'es', 'fr', + 'he', + 'hr', + 'hu', 'it', 'ja', 'ko', - 'lol', + 'lv', 'nl', + 'no', 'pl', 'pt', 'ru', + 'sk', 'sl', 'sv', - 'vi', - 'uk', - 'zh', - 'el', - 'sk', - 'no', 'tr', - 'lv', - 'hu', - 'hr' + 'tw', + 'uk', + 'vi', ], - localeDetection: true, + localeDetection: false, }, returnEmptyString: false, appendNamespaceToCIMode: true, diff --git a/next.config.js b/next.config.js index cd8c563ea..c87a8ebb2 100644 --- a/next.config.js +++ b/next.config.js @@ -1,3 +1,4 @@ +require('./src/env'); const { i18n } = require('./next-i18next.config'); const withBundleAnalyzer = require('@next/bundle-analyzer')({ @@ -12,4 +13,14 @@ module.exports = withBundleAnalyzer({ output: 'standalone', i18n, transpilePackages: ['@jellyfin/sdk'], + redirects: async () => [ + { + source: '/', + destination: '/board', + permanent: false, + }, + ], + env: { + NEXTAUTH_URL_INTERNAL: process.env.NEXTAUTH_URL_INTERNAL || process.env.HOSTNAME || 'http://localhost:3000' + }, }); diff --git a/package.json b/package.json index 9ecce0d64..9a480b3da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "0.13.4", + "version": "0.14.0", "description": "Homarr - A homepage for your server.", "license": "MIT", "repository": { @@ -9,23 +9,25 @@ }, "scripts": { "dev": "next dev", - "build": "next build", + "build": "NEXTAUTH_SECRET=WILL_BE_OVERWRITTEN next build", "analyze": "ANALYZE=true next build", - "turbo": "turbo run build", + "turbo": "DATABASE_URL=file:WILL_BE_OVERWRITTEN.sqlite NEXTAUTH_URL=http://WILL_BE_OVERWRITTEN turbo build", "start": "next start", "typecheck": "tsc --noEmit", "export": "next build && next export", "lint": "next lint", "prettier:check": "prettier --check \"**/*.{ts,tsx}\"", "prettier:write": "prettier --write \"**/*.{ts,tsx}\"", - "test": "vitest", - "test:ui": "vitest --ui", - "test:run": "vitest run", - "test:coverage": "vitest run --coverage", - "docker:build": "turbo build && docker build . -t homarr:dev", - "docker:start": "docker run --env-file ./.env -p 7575:7575 homarr:dev " + "test": "SKIP_ENV_VALIDATION=1 vitest", + "test:ui": "SKIP_ENV_VALIDATION=1 vitest --ui", + "test:run": "SKIP_ENV_VALIDATION=1 vitest run", + "test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage", + "docker:build": "turbo build && docker build . -t homarr:local-dev", + "docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev", + "db:migrate": "ts-node src/migrate.ts" }, "dependencies": { + "@auth/drizzle-adapter": "^0.3.2", "@ctrl/deluge": "^4.1.0", "@ctrl/qbittorrent": "^6.0.0", "@ctrl/shared-torrent": "^4.1.1", @@ -35,45 +37,63 @@ "@jellyfin/sdk": "^0.8.0", "@mantine/core": "^6.0.0", "@mantine/dates": "^6.0.0", - "@mantine/dropzone": "^6.0.0", "@mantine/form": "^6.0.0", "@mantine/hooks": "^6.0.0", "@mantine/modals": "^6.0.0", "@mantine/next": "^6.0.0", "@mantine/notifications": "^6.0.0", + "@mantine/prism": "^6.0.19", "@mantine/tiptap": "^6.0.17", "@nivo/core": "^0.83.0", "@nivo/line": "^0.83.0", - "@react-native-async-storage/async-storage": "^1.18.1", + "@t3-oss/env-nextjs": "^0.7.1", "@tabler/icons-react": "^2.20.0", - "@tanstack/query-async-storage-persister": "^4.27.1", - "@tanstack/query-sync-storage-persister": "^4.27.1", "@tanstack/react-query": "^4.2.1", "@tanstack/react-query-devtools": "^4.24.4", - "@tanstack/react-query-persist-client": "^4.28.0", - "@tiptap/extension-link": "^2.0.4", - "@tiptap/pm": "^2.0.4", - "@tiptap/react": "^2.0.4", - "@tiptap/starter-kit": "^2.0.4", - "@trpc/client": "^10.29.1", - "@trpc/next": "^10.29.1", - "@trpc/react-query": "^10.29.1", - "@trpc/server": "^10.29.1", + "@tiptap/extension-color": "^2.1.12", + "@tiptap/extension-highlight": "^2.1.12", + "@tiptap/extension-image": "^2.1.12", + "@tiptap/extension-link": "^2.1.12", + "@tiptap/extension-table": "^2.1.12", + "@tiptap/extension-table-cell": "^2.1.12", + "@tiptap/extension-table-header": "^2.1.12", + "@tiptap/extension-table-row": "^2.1.12", + "@tiptap/extension-task-item": "^2.1.12", + "@tiptap/extension-task-list": "^2.1.12", + "@tiptap/extension-text-align": "^2.1.12", + "@tiptap/extension-text-style": "^2.1.12", + "@tiptap/extension-underline": "^2.1.12", + "@tiptap/pm": "^2.1.12", + "@tiptap/react": "^2.1.12", + "@tiptap/starter-kit": "^2.1.12", + "@trpc/client": "^10.37.1", + "@trpc/next": "^10.37.1", + "@trpc/react-query": "^10.37.1", + "@trpc/server": "^10.37.1", + "@types/bcryptjs": "^2.4.2", "@vitejs/plugin-react": "^4.0.0", "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", "dayjs": "^1.11.7", "dockerode": "^3.3.2", + "dotenv": "^16.3.1", + "drizzle-kit": "^0.19.13", + "drizzle-orm": "^0.28.6", "fily-publish-gridstack": "^0.0.13", + "flag-icons": "^6.9.2", "framer-motion": "^10.0.0", + "generate-password": "^1.7.0", "html-entities": "^2.3.3", "i18next": "^22.5.1", "immer": "^10.0.2", - "js-file-download": "^0.4.12", "next": "13.4.12", - "next-i18next": "^13.0.0", + "next-auth": "^4.23.0", + "next-i18next": "^14.0.0", "nzbget-api": "^0.0.3", "prismjs": "^1.29.0", "react": "^18.2.0", @@ -91,19 +111,22 @@ "devDependencies": { "@next/bundle-analyzer": "^13.0.0", "@next/eslint-plugin-next": "^13.4.5", - "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@types/better-sqlite3": "^7.6.5", + "@types/cookies": "^0.7.7", "@types/dockerode": "^3.3.9", "@types/node": "18.17.8", "@types/prismjs": "^1.26.0", "@types/react": "^18.2.11", + "@types/umami": "^0.1.4", "@types/uuid": "^9.0.0", "@types/video.js": "^7.3.51", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitest/coverage-c8": "^0.33.0", - "@vitest/ui": "^0.33.0", + "@vitest/coverage-v8": "^0.34.5", + "@vitest/ui": "^0.34.4", "eslint": "^8.0.1", "eslint-config-next": "^13.4.5", "eslint-plugin-promise": "^6.0.0", @@ -117,8 +140,8 @@ "prettier": "^3.0.0", "sass": "^1.56.1", "ts-node": "latest", - "turbo": "latest", - "typescript": "^5.1.0", + "turbo": "^1.10.12", + "typescript": "5.1.6", "video.js": "^8.0.3", "vite-tsconfig-paths": "^4.2.0", "vitest": "^0.33.0", @@ -130,25 +153,6 @@ "minimumChangeThreshold": 0, "showDetails": true }, - "renovate": { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ], - "commitMessagePrefix": "⬆️", - "lockFileMaintenance": { - "automerge": true - }, - "minor": { - "automerge": true - }, - "patch": { - "automerge": true - }, - "pin": { - "automerge": true - } - }, "prettier": { "printWidth": 100, "tabWidth": 2, diff --git a/public/imgs/app-icons/truenas.svg b/public/imgs/app-icons/truenas.svg new file mode 100644 index 000000000..c3d96ff70 --- /dev/null +++ b/public/imgs/app-icons/truenas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/imgs/app-icons/unraid-alt.svg b/public/imgs/app-icons/unraid-alt.svg new file mode 100644 index 000000000..7d695dadc --- /dev/null +++ b/public/imgs/app-icons/unraid-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/locales/cn/authentication/invite.json b/public/locales/cn/authentication/invite.json new file mode 100644 index 000000000..6e1d47b60 --- /dev/null +++ b/public/locales/cn/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "创建账号", + "title": "创建账号", + "text": "请在下面定义您的凭据", + "form": { + "fields": { + "username": { + "label": "用户名" + }, + "password": { + "label": "密码" + }, + "passwordConfirmation": { + "label": "确认密码" + } + }, + "buttons": { + "submit": "创建账号" + } + }, + "notifications": { + "loading": { + "title": "正在创建账号...", + "text": "请稍等" + }, + "success": { + "title": "账号已创建", + "text": "您的账号创建成功" + }, + "error": { + "title": "错误", + "text": "出错了,出现以下错误: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/authentication/login.json b/public/locales/cn/authentication/login.json new file mode 100644 index 000000000..e509c07c7 --- /dev/null +++ b/public/locales/cn/authentication/login.json @@ -0,0 +1,20 @@ +{ + "metaTitle": "登录", + "title": "欢迎回来!", + "text": "请确认您的凭证", + "form": { + "fields": { + "username": { + "label": "用户名" + }, + "password": { + "label": "密码" + } + }, + "buttons": { + "submit": "登录" + }, + "afterLoginRedirection": "登录后,您将被重定向到 {{url}}" + }, + "alert": "您的凭据不正确或此账户不存在。请重试。" +} \ No newline at end of file diff --git a/public/locales/cn/boards/common.json b/public/locales/cn/boards/common.json new file mode 100644 index 000000000..1d37e1183 --- /dev/null +++ b/public/locales/cn/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "自定义面板" + } +} \ No newline at end of file diff --git a/public/locales/cn/boards/customize.json b/public/locales/cn/boards/customize.json new file mode 100644 index 000000000..52b156c2e --- /dev/null +++ b/public/locales/cn/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "自定义 {{name}} 面板", + "pageTitle": "自定义 {{name}} 面板", + "backToBoard": "返回面板", + "settings": { + "appearance": { + "primaryColor": "主体色", + "secondaryColor": "辅助色" + } + }, + "save": { + "button": "保存更改", + "note": "小心,您有未保存的更改!" + }, + "notifications": { + "pending": { + "title": "自定义保存中", + "message": "请稍候,我们正在保存您的自定义" + }, + "success": { + "title": "已保存自定义", + "message": "您的自定义已成功保存" + }, + "error": { + "title": "错误", + "message": "无法保存更改" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/common.json b/public/locales/cn/common.json new file mode 100644 index 000000000..7115fbb72 --- /dev/null +++ b/public/locales/cn/common.json @@ -0,0 +1,55 @@ +{ + "save": "保存", + "apply": "应用", + "insert": "插入", + "about": "关于", + "cancel": "取消", + "close": "关闭", + "back": "返回", + "delete": "删除", + "ok": "确定", + "edit": "编辑", + "next": "下一步", + "previous": "上一步", + "confirm": "确认", + "enabled": "已启用", + "disabled": "已禁用", + "enableAll": "全部启用", + "disableAll": "全部禁用", + "version": "版本", + "changePosition": "换位", + "remove": "删除", + "removeConfirm": "你确定要删除 {{item}} 吗?", + "createItem": "创建{{item}}", + "sections": { + "settings": "设置", + "dangerZone": "危险" + }, + "secrets": { + "apiKey": "API密钥", + "username": "用户名", + "password": "密码" + }, + "tip": "提示: ", + "time": { + "seconds": "秒", + "minutes": "分钟", + "hours": "小时" + }, + "loading": "正在加载...", + "breakPoints": { + "small": "小", + "medium": "中", + "large": "大" + }, + "seeMore": "查看更多...", + "position": { + "left": "左边", + "center": "居中", + "right": "右边" + }, + "attributes": { + "width": "宽度", + "height": "高度" + } +} \ No newline at end of file diff --git a/public/locales/cn/layout/common.json b/public/locales/cn/layout/common.json new file mode 100644 index 000000000..45772a386 --- /dev/null +++ b/public/locales/cn/layout/common.json @@ -0,0 +1,25 @@ +{ + "modals": { + "blockedPopups": { + "title": "阻止弹出窗口", + "text": "您的浏览器阻止了 Homarr 访问其 API。最常见的原因是广告拦截器或权限被拒绝。Homarr 无法自动请求权限。", + "list": { + "browserPermission": "点击链接旁的图标并检查权限,允许弹出窗口", + "adBlockers": "禁用浏览器中的广告拦截器和安全工具", + "otherBrowser": "尝试使用其它的浏览器" + } + } + }, + "actions": { + "category": { + "openAllInNewTab": "在新标签页中打开全部内容" + } + }, + "menu": { + "moveUp": "上移", + "moveDown": "下移", + "addCategory": "{{location}}添加分类", + "addAbove": "在上方", + "addBelow": "在下方" + } +} \ 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 new file mode 100644 index 000000000..be4531c31 --- /dev/null +++ b/public/locales/cn/layout/element-selector/selector.json @@ -0,0 +1,25 @@ +{ + "modal": { + "title": "添加新磁贴", + "text": "磁贴是 Homarr 的主要组成元素。它们被用来显示你的应用程序和其他信息。您可以根据需要增加任意数量的磁贴。" + }, + "widgetDescription": "组件与您的应用交互,为您提供更多的应用程序控制。它们在使用前通常需要额外的配置。", + "goBack": "上一步", + "actionIcon": { + "tooltip": "添加磁贴" + }, + "apps": "应用", + "app": { + "defaultName": "您的应用" + }, + "widgets": "组件", + "categories": "分类", + "category": { + "newName": "新分类名称", + "defaultName": "新建分类", + "created": { + "title": "分类已创建", + "message": "已创建分类\"{{name}}\"" + } + } +} diff --git a/public/locales/cn/layout/errors/access-denied.json b/public/locales/cn/layout/errors/access-denied.json new file mode 100644 index 000000000..5611ca32a --- /dev/null +++ b/public/locales/cn/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "拒绝访问", + "text": "您没有足够的权限访问此页面。如果你相信, 这不是有意的, 请联系您的系统管理员。", + "switchAccount": "切换到其他账户" +} \ No newline at end of file diff --git a/public/locales/cn/layout/errors/not-found.json b/public/locales/cn/layout/errors/not-found.json new file mode 100644 index 000000000..1109c78c8 --- /dev/null +++ b/public/locales/cn/layout/errors/not-found.json @@ -0,0 +1,5 @@ +{ + "title": "无法找到页面", + "text": "找不到该页面。该页面的 URL 可能已过期、URL 无效或您现在没有访问该资源所需的权限。", + "button": "返回首页" +} \ No newline at end of file diff --git a/public/locales/cn/layout/header.json b/public/locales/cn/layout/header.json new file mode 100644 index 000000000..4c5215ae1 --- /dev/null +++ b/public/locales/cn/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "这是 Homarr 的一项实验性功能。请在 GitHubDiscord上报告任何问题。" + }, + "search": { + "label": "搜索", + "engines": { + "web": "在网上搜索 {{query}}", + "youtube": "在 YouTube 上搜索 {{query}}", + "torrent": "搜索 {{query}} Torrents", + "movie": "在 {{app}} 上搜索 {{query}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "切换主题", + "preferences": "用户首选项", + "defaultBoard": "默认仪表盘", + "manage": "管理", + "logout": "注销 {{username}}", + "login": "登录" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "最高 {{count}} 结果为 {{search}}。" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/layout/header/actions/toggle-edit-mode.json b/public/locales/cn/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..1f2d06a7e --- /dev/null +++ b/public/locales/cn/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,12 @@ +{ + "description": "在编辑模式下,您可以调整磁贴和配置应用。在退出编辑模式之前不会保存更改。", + "button": { + "disabled": "进入编辑模式", + "enabled": "退出并保存" + }, + "popover": { + "title": "启用 <1>{{size}} 尺寸编辑模式", + "text": "现在您可以调整和配置您的应用了,在退出编辑模式之前不会保存更改 。" + }, + "unloadEvent": "退出编辑模式以保存更改" +} diff --git a/public/locales/cn/layout/manage.json b/public/locales/cn/layout/manage.json new file mode 100644 index 000000000..bc386ccba --- /dev/null +++ b/public/locales/cn/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "首页" + }, + "boards": { + "title": "面板" + }, + "users": { + "title": "用户", + "items": { + "manage": "管理", + "invites": "邀请" + } + }, + "help": { + "title": "帮助", + "items": { + "documentation": "文档", + "report": "报告问题 / bug", + "discord": "Discord 社区", + "contribute": "贡献" + } + }, + "tools": { + "title": "工具", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "关于" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/layout/mobile/drawer.json b/public/locales/cn/layout/mobile/drawer.json new file mode 100644 index 000000000..d06d8c4a9 --- /dev/null +++ b/public/locales/cn/layout/mobile/drawer.json @@ -0,0 +1,3 @@ +{ + "title": "{{position}} 侧边栏" +} diff --git a/public/locales/cn/layout/modals/about.json b/public/locales/cn/layout/modals/about.json new file mode 100644 index 000000000..7210ffadc --- /dev/null +++ b/public/locales/cn/layout/modals/about.json @@ -0,0 +1,30 @@ +{ + "description": "Homarr是一个 顺滑 现代化 的面板,它能将您所有的应用和服务汇于指尖。有了 Homarr,您可以在一个页面中访问和控制一切。Homarr 与您添加的应用无缝交互,为您提供有价值的信息并由您完全控制。安装 Homarr 轻松简单,并且 Homarr 支持多种部署方式。", + "addToDashboard": "添加至面板", + "tip": "Mod 指的是您的修饰键,它是 Ctrl 或 Command/Super/Windows 键", + "key": "快捷键", + "action": "操作", + "keybinds": "热键绑定", + "translators": "翻译 ({{count}})", + "translatorsDescription": "感谢这些人,Homarr 现已支持 {{languages}} 种语言!想要帮助将 Homarr 翻译成您的语言吗?请阅读此处了解如何执行此操作 。", + "contributors": "贡献者 ({{count}})", + "contributorsDescription": "这些人构建了让 homarr 工作的代码!想帮助建造 Homarr 吗?请阅读此处了解如何操作", + "actions": { + "toggleTheme": "切换 白天/夜晚 模式", + "focusSearchBar": "前往搜索栏", + "openDocker": "打开 docker 组件", + "toggleEdit": "切换编辑模式" + }, + "metrics": { + "configurationSchemaVersion": "配置模式版本", + "version": "版本", + "nodeEnvironment": "节点环境", + "i18n": "I18n 翻译空间已加载", + "locales": "I18n 本地语言已配置", + "experimental_disableEditMode": "实验性: 关闭编辑模式" + }, + "version": { + "new": "新: {{newVersion}}", + "dropdown": "版本 {{newVersion}} 可用!当前版本为 {{currentVersion}}" + } +} \ No newline at end of file diff --git a/public/locales/cn/layout/modals/add-app.json b/public/locales/cn/layout/modals/add-app.json new file mode 100644 index 000000000..0c5a68798 --- /dev/null +++ b/public/locales/cn/layout/modals/add-app.json @@ -0,0 +1,128 @@ +{ + "tabs": { + "general": "通用", + "behaviour": "行为", + "network": "网络", + "appearance": "外观", + "integration": "集成" + }, + "general": { + "appname": { + "label": "应用名称", + "description": "用于在面板上显示。" + }, + "internalAddress": { + "label": "内部地址", + "description": "应用的内部IP地址。", + "troubleshoot": { + "label": "遇到问题了?", + "header": "下面是一些常见的错误和解决方法:", + "lines": { + "nothingAfterPort": "在大多数情况下(不是所有情况),您不应该在端口之后输入任何路径。(即使是 pihole 的 '/admin' 或 plex 的 '/web')", + "protocolCheck": "一定要确保URL前面是http或https,并确保你使用的是正确的URL。", + "preferIP": "建议使用要与之通信的机器或容器的直接 Ip 地址。", + "enablePings": "通过开启ping检查IP是否正确。 自定义面板 -> 布局 -> 启用 ping。应用磁贴上会出现一个红色或绿色的小泡泡,鼠标悬停在此就会显示相应代码(在大多数的情况下,绿色泡泡的代码为200)。", + "wget": "为了确保homarr可以与其他应用程序通信,请使用wget/curl/ping应用程序的IP:port。", + "iframe": "在使用 iframe 时,应始终使用与 Homarr 相同的协议 (http/s)。", + "clearCache": "有些信息是在缓存中注册的,因此除非您在Homarr的一般选项中清除缓存,否则集成可能无法工作。" + }, + "footer": "更多故障排除,请联系我们的{{discord}}。" + } + }, + "externalAddress": { + "label": "外部地址", + "description": "点击应用时打开的网址。" + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "在新标签页中打开", + "description": "在新标签页中打开应用,而不是当前标签页。" + }, + "tooltipDescription": { + "label": "应用描述", + "description": "将鼠标悬停在应用上时,将显示您输入的文本。\n它可以为用户提供更多关于应用的详细信息,留空以隐藏。" + }, + "customProtocolWarning": "使用非标准协议。这可能需要预先安装应用程序,并可能带来安全风险。确保您的地址安全可靠。" + }, + "network": { + "statusChecker": { + "label": "状态检测", + "description": "使用简单的HTTP(S) 请求检查您的应用是否在线。" + }, + "statusCodes": { + "label": "HTTP状态码", + "description": "被视为在线的 HTTP 状态码。" + } + }, + "appearance": { + "icon": { + "label": "应用图标", + "description": "输入以搜索图标,也可以粘贴自定义图标的网址。", + "autocomplete": { + "title": "未找到结果", + "text": "尝试使用一个更具体的搜索词。如果您找不到您想要的图标,可以在上方粘贴图片的网址,以获得一个自定义图标。" + }, + "noItems": { + "title": "正在加载外部图标", + "text": "这可能需要几秒钟" + } + }, + "appNameFontSize": { + "label": "应用名称大小", + "description": "设置应用名称在磁贴上显示时的字体大小。" + }, + "appNameStatus": { + "label": "应用名称状态", + "description": "如果您想要显示标题,请选择显示的位置。", + "dropdown": { + "normal": "仅在磁贴上显示标题", + "hover": "仅在悬停时显示标题", + "hidden": "完全不显示" + } + }, + "positionAppName": { + "label": "应用名称位置", + "description": "应用名称相对于图标的位置。", + "dropdown": { + "top": "上边", + "right": "右边", + "bottom": "下边", + "left": "左边" + } + }, + "lineClampAppName": { + "label": "应用名称行数", + "description": "定义标题最多能容纳多少行。设置为 0 表示无限制。" + } + }, + "integration": { + "type": { + "label": "集成配置", + "description": "集成配置将用于连接到您的应用。", + "placeholder": "选择一个集成", + "defined": "已定义", + "undefined": "未定义", + "public": "公开", + "private": "私有", + "explanationPrivate": "私有密钥仅会被发送到服务器一次。一旦您的浏览器刷新了页面,它将永远不会再次发送。", + "explanationPublic": "公开的密钥将始终发送给客户端,并且可以通过API访问。它不应该包含任何机密值,如用户名、密码、令牌、证书等!" + }, + "secrets": { + "description": "输入值并点击保存以更新密钥。使用清除按钮以删除密钥。", + "warning": "您的凭据作为集成的访问权限,您应该永远不与任何人共享它们。Homarr 团队永远不会索要证书。确保安全地存储和管理您的秘钥。", + "clear": "清除密钥", + "save": "保存密钥", + "update": "更新密钥" + } + }, + "validation": { + "popover": "您的表单包含无效数据,因此它不能被保存。请解决所有问题,并再次点击此按钮以保存您的更改。", + "name": "名称为必填项", + "noUrl": "地址为必填项", + "invalidUrl": "不是有效的地址", + "noIconUrl": "此字段为必填", + "noExternalUri": "外部地址为必填项", + "invalidExternalUri": "无效的外部地址" + } +} diff --git a/public/locales/cn/layout/modals/change-position.json b/public/locales/cn/layout/modals/change-position.json new file mode 100644 index 000000000..a9e6ffc57 --- /dev/null +++ b/public/locales/cn/layout/modals/change-position.json @@ -0,0 +1,8 @@ +{ + "xPosition": "X轴位置", + "width": "宽度", + "height": "高度", + "yPosition": "Y轴位置", + "zeroOrHigher": "0 或更高", + "betweenXandY": "在 {{min}} 和 {{max}} 之间" +} \ No newline at end of file diff --git a/public/locales/cn/manage/boards.json b/public/locales/cn/manage/boards.json new file mode 100644 index 000000000..4cbd84d29 --- /dev/null +++ b/public/locales/cn/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "面板", + "pageTitle": "面板", + "cards": { + "statistics": { + "apps": "应用", + "widgets": "组件", + "categories": "分类" + }, + "buttons": { + "view": "查看面板" + }, + "menu": { + "setAsDefault": "设置为默认", + "delete": { + "label": "永久删除", + "disabled": "删除功能被禁用,因为较旧的 Homarr 组件不允许删除默认配置。将来可能会删除。" + } + }, + "badges": { + "fileSystem": "文件系统", + "default": "默认" + } + }, + "buttons": { + "create": "创建新面板" + }, + "modals": { + "delete": { + "title": "删除面板", + "text": "你确定要删除这个面板吗? 此操作无法撤消,您的数据将永久丢失。" + }, + "create": { + "title": "创建面板", + "text": "面板创建成功后,不能修改名称。", + "form": { + "name": { + "label": "名称" + }, + "submit": "创建" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/manage/index.json b/public/locales/cn/manage/index.json new file mode 100644 index 000000000..20bbf04fe --- /dev/null +++ b/public/locales/cn/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "管理", + "hero": { + "title": "欢迎回来,{{username}}!", + "fallbackUsername": "匿名", + "subtitle": "欢迎来到您的应用程序中心。组织、优化和征服!" + }, + "quickActions": { + "title": "快捷操作", + "boards": { + "title": "您的面板", + "subtitle": "创建和管理您的面板" + }, + "inviteUsers": { + "title": "邀请新用户", + "subtitle": "创建并发送注册邀请" + }, + "manageUsers": { + "title": "管理用户", + "subtitle": "删除和管理您的用户" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/manage/users.json b/public/locales/cn/manage/users.json new file mode 100644 index 000000000..75722cca3 --- /dev/null +++ b/public/locales/cn/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "用户", + "pageTitle": "管理用户", + "text": "通过账号,您可以配置谁可以编辑您的面板。Homarr的未来版本将对权限和面板进行更精细地控制。", + "buttons": { + "create": "创建" + }, + "table": { + "header": { + "user": "用户" + } + }, + "tooltips": { + "deleteUser": "删除用户", + "demoteAdmin": "撤销管理员", + "promoteToAdmin": "提升为管理员" + }, + "modals": { + "delete": { + "title": "删除用户 {{name}}", + "text": "您确定要删除用户 {{name}} 吗?这将删除与该账户相关的数据,但不会删除该用户创建的任何仪表盘。" + }, + "change-role": { + "promote": { + "title": "将用户 {{name}} 提升为管理员", + "text": "您确定要将用户{{name}} 提升为管理员吗? 这将允许用户访问Homarr实例上的所有资源。" + }, + "demote": { + "title": "将用户 {{name}} 降级为用户", + "text": "您确定要将用户{{name}} 降级为用户吗? 这将删除用户对Homarr实例上所有资源的访问权限。" + }, + "confirm": "确认" + } + }, + "searchDoesntMatch": "您的搜索与任何条目都不匹配。请调整您的过滤器。" +} \ No newline at end of file diff --git a/public/locales/cn/manage/users/create.json b/public/locales/cn/manage/users/create.json new file mode 100644 index 000000000..46d98e097 --- /dev/null +++ b/public/locales/cn/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "创建用户", + "steps": { + "account": { + "title": "第一步", + "text": "创建账号", + "username": { + "label": "用户名" + }, + "email": { + "label": "邮箱" + } + }, + "security": { + "title": "第二步", + "text": "密码", + "password": { + "label": "密码" + } + }, + "finish": { + "title": "确认", + "text": "保存到数据库", + "card": { + "title": "检查您的输入", + "text": "将数据提交到数据库后,用户就可以登录了。您确定要将该用户存储在数据库中并激活登录吗?" + }, + "table": { + "header": { + "property": "属性", + "value": "参数值", + "username": "用户名", + "email": "邮箱", + "password": "密码" + }, + "notSet": "未设置", + "valid": "有效" + }, + "failed": "用户创建失败: {{error}}" + }, + "completed": { + "alert": { + "title": "用户已创建", + "text": "用户已在数据库中创建。他现在可以登录了。" + } + } + }, + "buttons": { + "generateRandomPassword": "随机生成", + "createAnother": "创建另一个" + } +} \ No newline at end of file diff --git a/public/locales/cn/manage/users/invites.json b/public/locales/cn/manage/users/invites.json new file mode 100644 index 000000000..410f2bee5 --- /dev/null +++ b/public/locales/cn/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "用户邀请", + "pageTitle": "管理用户邀请", + "description": "使用邀请功能,可以邀请用户访问 Homarr 实例。邀请只在一定的时间范围内有效,并且只能使用一次。过期时间必须在创建后5分钟到12个月之间。", + "button": { + "createInvite": "创建邀请", + "deleteInvite": "删除邀请" + }, + "table": { + "header": { + "id": "ID", + "creator": "创建者", + "expires": "有效期", + "action": "操作" + }, + "data": { + "expiresAt": "过期 {{at}}", + "expiresIn": "{{in}}" + } + }, + "modals": { + "create": { + "title": "创建邀请", + "description": "过期后,邀请会失效,被邀请的收件人将无法创建账号。", + "form": { + "expires": "过期时间", + "submit": "创建" + } + }, + "copy": { + "title": "复制邀请信息", + "description": "您的邀请已生成。在此模式关闭后,您将无法再复制此链接。如果你不想再邀请这个人,你可以随时删除这个邀请。", + "invitationLink": "邀请链接", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "复制并关闭" + } + }, + "delete": { + "title": "删除邀请", + "description": "你确定要删除这个邀请吗? 使用此链接的用户将不能再使用该链接创建账号。" + } + }, + "noInvites": "还没有邀请。" +} \ No newline at end of file diff --git a/public/locales/cn/modules/bookmark.json b/public/locales/cn/modules/bookmark.json new file mode 100644 index 000000000..dcadff41a --- /dev/null +++ b/public/locales/cn/modules/bookmark.json @@ -0,0 +1,43 @@ +{ + "descriptor": { + "name": "书签", + "description": "显示字符或链接的静态列表", + "settings": { + "title": "书签设置", + "name": { + "label": "组件标题", + "info": "留空以隐藏标题。" + }, + "items": { + "label": "项目" + }, + "layout": { + "label": "显示布局", + "data": { + "autoGrid": "自动网格", + "horizontal": "横向", + "vertical": "垂直" + } + } + } + }, + "card": { + "noneFound": { + "title": "书签列表为空", + "text": "在编辑模式下为该列表添加新项目" + } + }, + "item": { + "validation": { + "length": "长度必须在 {{shortest}} 和 {{longest}} 之间", + "invalidLink": "无效链接", + "errorMsg": "由于存在验证错误,未保存。请调整您的输入" + }, + "name": "名称", + "url": "网址", + "newTab": "在新标签页中打开", + "hideHostname": "隐藏域名", + "hideIcon": "隐藏图标", + "delete": "删除" + } +} diff --git a/public/locales/cn/modules/calendar.json b/public/locales/cn/modules/calendar.json new file mode 100644 index 000000000..0aaba243c --- /dev/null +++ b/public/locales/cn/modules/calendar.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "日历", + "description": "在日历中显示来自支持集成中的即将发布的版本。", + "settings": { + "title": "日历组件设置", + "radarrReleaseType": { + "label": "Radarr发布类型", + "data": { + "inCinemas": "影院放映", + "physicalRelease": "实体", + "digitalRelease": "数字" + } + }, + "hideWeekDays": { + "label": "隐藏星期" + }, + "showUnmonitored": { + "label": "显示未监视项目" + }, + "fontSize": { + "label": "字体大小", + "data": { + "xs": "超小号", + "sm": "小号", + "md": "中号", + "lg": "大号", + "xl": "超大号" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/common-media-cards.json b/public/locales/cn/modules/common-media-cards.json new file mode 100644 index 000000000..7b9c8eeb2 --- /dev/null +++ b/public/locales/cn/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "开始", + "request": "请求" + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/common.json b/public/locales/cn/modules/common.json new file mode 100644 index 000000000..d95286e50 --- /dev/null +++ b/public/locales/cn/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "设置" + }, + "errors": { + "unmappedOptions": { + "text": "" + } + } +} diff --git a/public/locales/cn/modules/dashdot.json b/public/locales/cn/modules/dashdot.json new file mode 100644 index 000000000..ec827e382 --- /dev/null +++ b/public/locales/cn/modules/dashdot.json @@ -0,0 +1,118 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "在 Homarr 中显示一个外部 Dash. 的图表。", + "settings": { + "title": "Dash. 组件设置", + "dashName": { + "label": "Dash. 名称" + }, + "url": { + "label": "Dash. 网址" + }, + "usePercentages": { + "label": "显示百分比" + }, + "columns": { + "label": "显示的列" + }, + "graphHeight": { + "label": "图表高度" + }, + "graphsOrder": { + "label": "图表(顺序)", + "storage": { + "label": "存储", + "enabled": { + "label": "在组件中显示" + }, + "span": { + "label": "列宽度" + }, + "compactView": { + "label": "显示为文本(紧凑型)" + }, + "multiView": { + "label": "显示为多驱动视图" + } + }, + "network": { + "label": "网络", + "enabled": { + "label": "在组件中显示" + }, + "span": { + "label": "列宽度" + }, + "compactView": { + "label": "显示为文本(紧凑型)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "在组件中显示" + }, + "span": { + "label": "列宽度" + }, + "multiView": { + "label": "显示为多核心视图" + } + }, + "ram": { + "label": "内存", + "enabled": { + "label": "在组件中显示" + }, + "span": { + "label": "列宽度" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "在组件中显示" + }, + "span": { + "label": "列宽度" + } + } + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "未找到 Dash. 服务。请在集成中将其添加到您的 Homarr 面板或在模块选项中设置 Dash. 网址", + "noInformation": "无法从 Dash. 获取信息。- 你运行的是最新版本吗?", + "protocolDowngrade": { + "title": "检测到协议降级", + "text": "与 Dash. 实例的连接使用的是HTTP。这是一个安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保 Dash. 使用的是HTTPS,或者将Homarr降级为HTTP(不推荐)。" + } + }, + "graphs": { + "storage": { + "title": "存储", + "label": "存储:" + }, + "network": { + "title": "网络", + "label": "网络:", + "metrics": { + "download": "下载", + "upload": "上传" + } + }, + "cpu": { + "title": "CPU" + }, + "ram": { + "title": "内存" + }, + "gpu": { + "title": "GPU" + } + } + } +} diff --git a/public/locales/cn/modules/date.json b/public/locales/cn/modules/date.json new file mode 100644 index 000000000..361cd4127 --- /dev/null +++ b/public/locales/cn/modules/date.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "日期和时间", + "description": "显示当前的日期和时间。", + "settings": { + "title": "日期和时间组件设置", + "display24HourFormat": { + "label": "全时显示(24 小时)" + }, + "dateFormat": { + "label": "日期格式", + "data": { + "hide": "隐藏日期" + } + }, + "enableTimezone": { + "label": "显示自定义时区" + }, + "timezoneLocation": { + "label": "时区位置" + }, + "titleState": { + "label": "城市名称", + "info": "如果激活时区选项,则可显示城市名称和时区代码。
您也可以只显示城市,甚至不显示。", + "data": { + "both": "城市和时区", + "city": "仅城市", + "none": "无" + } + } + } + } +} diff --git a/public/locales/cn/modules/dlspeed.json b/public/locales/cn/modules/dlspeed.json new file mode 100644 index 000000000..4e354c5a0 --- /dev/null +++ b/public/locales/cn/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "下载速度", + "description": "显示集成中支持的下载和上传速度。" + }, + "card": { + "table": { + "header": { + "name": "名称", + "size": "大小", + "download": "下载", + "upload": "上传", + "estimatedTimeOfArrival": "剩余时间", + "progress": "进度" + }, + "body": { + "nothingFound": "没有找到种子" + } + }, + "lineChart": { + "title": "当前下载速度", + "download": "下载:{{download}}", + "upload": "上传: {{upload}}", + "timeSpan": "{{seconds}} 秒前", + "totalDownload": "下载: {{download}}/秒", + "totalUpload": "上传: {{upload}}/秒" + }, + "errors": { + "noDownloadClients": { + "title": "没有找到支持的下载客户端!", + "text": "添加下载服务以查看您当前的下载情况" + } + } + } +} diff --git a/public/locales/cn/modules/dns-hole-controls.json b/public/locales/cn/modules/dns-hole-controls.json new file mode 100644 index 000000000..7828a632f --- /dev/null +++ b/public/locales/cn/modules/dns-hole-controls.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "DNS漏洞控制", + "description": "从您的面板控制 PiHole 或 AdGuard", + "settings": { + "title": "DNS 漏洞控制设置", + "showToggleAllButtons": { + "label": "显示 \"启用/禁用全部 \"按钮" + } + }, + "errors": { + "general": { + "title": "无法找到 DNS 漏洞", + "text": "到DNS漏洞的连接有问题。请验证您的配置/集成设置。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/dns-hole-summary.json b/public/locales/cn/modules/dns-hole-summary.json new file mode 100644 index 000000000..7de2c6f2d --- /dev/null +++ b/public/locales/cn/modules/dns-hole-summary.json @@ -0,0 +1,28 @@ +{ + "descriptor": { + "name": "DNS漏洞统计", + "description": "显示来自 PiHole 或 AdGuard 的重要数据", + "settings": { + "title": "DNS漏洞统计设置", + "usePiHoleColors": { + "label": "使用 PiHole 的颜色" + }, + "layout": { + "label": "显示布局", + "data": { + "grid": "2 x 2", + "row": "横向", + "column": "垂直" + } + } + } + }, + "card": { + "metrics": { + "domainsOnAdlist": "广告列表中的域名", + "queriesToday": "今日查询", + "queriesBlockedTodayPercentage": "今日屏蔽", + "queriesBlockedToday": "今日屏蔽" + } + } +} diff --git a/public/locales/cn/modules/docker.json b/public/locales/cn/modules/docker.json new file mode 100644 index 000000000..9c374f3e8 --- /dev/null +++ b/public/locales/cn/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "Docker", + "description": "允许您轻松查看和管理所有的Docker容器。" + }, + "search": { + "placeholder": "按容器或镜像名称搜索" + }, + "table": { + "header": { + "name": "名称", + "image": "镜像", + "ports": "端口", + "state": "状态" + }, + "body": { + "portCollapse": "{{ports}} 更多" + }, + "states": { + "running": "运行中", + "created": "已创建", + "stopped": "已停止", + "unknown": "未知" + } + }, + "actionBar": { + "addService": { + "title": "添加应用", + "message": "添加应用到 Homarr" + }, + "restart": { + "title": "重启" + }, + "stop": { + "title": "停止" + }, + "start": { + "title": "开始" + }, + "refreshData": { + "title": "刷新" + }, + "remove": { + "title": "删除" + }, + "addToHomarr": { + "title": "添加到 Homarr" + } + }, + "actions": { + "start": { + "start": "正在启动...", + "end": "已启动" + }, + "stop": { + "start": "正在停止", + "end": "已停止" + }, + "restart": { + "start": "正在重启", + "end": "已重启" + }, + "remove": { + "start": "删除中", + "end": "已删除" + } + }, + "errors": { + "integrationFailed": { + "title": "Docker 集成失败", + "message": "你是不是忘了挂载docker socket?" + }, + "unknownError": { + "title": "出现了一个错误" + }, + "oneServiceAtATime": { + "title": "请每次只添加一个应用程序或服务!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} diff --git a/public/locales/cn/modules/iframe.json b/public/locales/cn/modules/iframe.json new file mode 100644 index 000000000..c759a5f87 --- /dev/null +++ b/public/locales/cn/modules/iframe.json @@ -0,0 +1,45 @@ +{ + "descriptor": { + "name": "iFrame", + "description": "嵌入互联网上的任何内容。某些网站可能限制访问。", + "settings": { + "title": "iFrame设置", + "embedUrl": { + "label": "嵌入地址" + }, + "allowFullScreen": { + "label": "允许全屏" + }, + "allowTransparency": { + "label": "允许透明" + }, + "allowScrolling": { + "label": "允许滚动" + }, + "allowPayment": { + "label": "允许支付" + }, + "allowAutoPlay": { + "label": "允许自动播放" + }, + "allowMicrophone": { + "label": "允许麦克风" + }, + "allowCamera": { + "label": "允许摄像头" + }, + "allowGeolocation": { + "label": "允许地理位置" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "无效链接", + "text": "确保您在组件配置中输入了一个有效的地址" + }, + "browserSupport": "您的浏览器不支持 iframe。请更新您的浏览器。" + } + } +} diff --git a/public/locales/cn/modules/media-requests-list.json b/public/locales/cn/modules/media-requests-list.json new file mode 100644 index 000000000..67ec63874 --- /dev/null +++ b/public/locales/cn/modules/media-requests-list.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "媒体请求", + "description": "查看 Overr 或 Jellyseerr 实例中的所有媒体请求列表", + "settings": { + "title": "媒体请求列表", + "replaceLinksWithExternalHost": { + "label": "使用外部地址替换链接" + }, + "openInNewTab": { + "label": "在新标签页中打开链接" + } + } + }, + "noRequests": "未找到请求。请确保您已正确配置您的应用。", + "state": { + "approved": "已批准", + "pendingApproval": "待批准", + "declined": "已拒绝" + }, + "tooltips": { + "approve": "批准请求", + "decline": "拒绝请求", + "approving": "正在批准请求..." + }, + "mutation": { + "approving": "正在批准", + "declining": "拒绝中", + "request": "请求...", + "approved": "请求被批准!", + "declined": "请求被拒绝!" + } +} diff --git a/public/locales/cn/modules/media-requests-stats.json b/public/locales/cn/modules/media-requests-stats.json new file mode 100644 index 000000000..4014c08ee --- /dev/null +++ b/public/locales/cn/modules/media-requests-stats.json @@ -0,0 +1,27 @@ +{ + "descriptor": { + "name": "媒体请求状态", + "description": "您的媒体请求统计", + "settings": { + "title": "媒体请求状态", + "replaceLinksWithExternalHost": { + "label": "使用外部地址替换链接" + }, + "openInNewTab": { + "label": "在新标签页中打开链接" + } + } + }, + "mediaStats": { + "title": "媒体统计", + "pending": "等待批准", + "tvRequests": "电视请求", + "movieRequests": "电影请求", + "approved": "已经批准", + "totalRequests": "请求总计" + }, + "userStats": { + "title": "用户排行", + "requests": "请求: {{number}}" + } +} diff --git a/public/locales/cn/modules/media-server.json b/public/locales/cn/modules/media-server.json new file mode 100644 index 000000000..ab65c99fd --- /dev/null +++ b/public/locales/cn/modules/media-server.json @@ -0,0 +1,25 @@ +{ + "descriptor": { + "name": "媒体服务", + "description": "与您的 Jellyfin 或 Plex 媒体服务交互", + "settings": { + "title": "媒体服务组件设置" + } + }, + "loading": "正在载入流", + "card": { + "table": { + "header": { + "session": "会话", + "user": "用户", + "currentlyPlaying": "正在播放" + } + }, + "errors": { + "general": { + "title": "无法加载内容", + "text": "无法从服务器检索信息。请检查日志获取更多详细信息" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/notebook.json b/public/locales/cn/modules/notebook.json new file mode 100644 index 000000000..18cafdc4f --- /dev/null +++ b/public/locales/cn/modules/notebook.json @@ -0,0 +1,59 @@ +{ + "descriptor": { + "name": "笔记本", + "description": "一个基于 Markdown 的交互式组件,供您写下笔记!", + "settings": { + "title": "笔记本组件设置", + "showToolbar": { + "label": "显示帮助您写下 Markdown 的工具栏" + }, + "allowReadOnlyCheck": { + "label": "允许在只读模式中检查" + }, + "content": { + "label": "笔记本的内容" + } + } + }, + "card": { + "controls": { + "bold": "粗体", + "italic": "斜体", + "strikethrough": "删除线", + "underline": "下划线", + "colorText": "文字颜色", + "colorHighlight": "彩色高亮文本", + "code": "代码", + "clear": "清除格式", + "heading": "标题 {{level}}", + "align": "对齐文本: {{position}}", + "blockquote": "引用", + "horizontalLine": "横线", + "bulletList": "符号列表", + "orderedList": "顺序列表", + "checkList": "检查列表", + "increaseIndent": "增加缩进", + "decreaseIndent": "减小缩进", + "link": "链接", + "unlink": "删除链接", + "image": "嵌入图片", + "addTable": "添加表格", + "deleteTable": "删除表格", + "colorCell": "单元格颜色", + "mergeCell": "切换单元格合并", + "addColumnLeft": "在前面添加列", + "addColumnRight": "在后面添加列", + "deleteColumn": "删除整列", + "addRowTop": "在前面添加行", + "addRowBelow": "在后面添加行", + "deleteRow": "删除整行" + }, + "modals": { + "clearColor": "清除颜色", + "source": "来源", + "widthPlaceholder": "百分比或像素值", + "columns": "列数", + "rows": "行数" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/overseerr.json b/public/locales/cn/modules/overseerr.json new file mode 100644 index 000000000..45de4a863 --- /dev/null +++ b/public/locales/cn/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "允许您从Overseerr 或 Jellyseerr 搜索和添加媒体。" + }, + "popup": { + "item": { + "buttons": { + "askFor": "请求 {{title}}", + "cancel": "取消", + "request": "请求" + }, + "alerts": { + "automaticApproval": { + "title": "使用 API key", + "text": "此请求将被自动批准" + } + } + }, + "seasonSelector": { + "caption": "勾选您想要下载的季", + "table": { + "header": { + "season": "季", + "numberOfEpisodes": "集数" + } + } + } + } +} diff --git a/public/locales/cn/modules/ping.json b/public/locales/cn/modules/ping.json new file mode 100644 index 000000000..c6e07ddec --- /dev/null +++ b/public/locales/cn/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "根据设定的URL的HTTP响应代码,显示一个状态指示器。" + }, + "states": { + "online": "在线 {{response}}", + "offline": "离线 {{response}}", + "loading": "正在加载..." + } +} diff --git a/public/locales/cn/modules/rss.json b/public/locales/cn/modules/rss.json new file mode 100644 index 000000000..6d17967ae --- /dev/null +++ b/public/locales/cn/modules/rss.json @@ -0,0 +1,31 @@ +{ + "descriptor": { + "name": "RSS 组件", + "description": "RSS 组件允许您在面板上显示 RSS 源。", + "settings": { + "title": "RSS 组件设置", + "rssFeedUrl": { + "label": "RSS 订阅地址", + "description": "您想要显示的 RSS 订阅的地址。" + }, + "refreshInterval": { + "label": "刷新间隔(分钟)" + }, + "dangerousAllowSanitizedItemContent": { + "label": "允许 HTML 格式化(危险)", + "info": "允许从外部进行HTML格式化可能是危险的。
请确保订阅来自信任的来源。" + }, + "textLinesClamp": { + "label": "文字线条" + } + }, + "card": { + "errors": { + "general": { + "title": "无法获取 RSS 订阅", + "text": "在获取 RSS 订阅时出现了问题。确保使用有效的 URL 正确配置了 RSS 订阅。URL 应与官方规范匹配。更新 RSS 订阅后,您可能需要刷新面板。" + } + } + } + } +} diff --git a/public/locales/cn/modules/search.json b/public/locales/cn/modules/search.json new file mode 100644 index 000000000..2865491dc --- /dev/null +++ b/public/locales/cn/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "搜索栏", + "description": "一个搜索栏,允许你搜索你的自定义搜索引擎、YouTube和支持的集成。" + }, + "input": { + "placeholder": "在网上搜索..." + }, + "switched-to": "切换到", + "searchEngines": { + "search": { + "name": "网页", + "description": "搜索..." + }, + "youtube": { + "name": "Youtube", + "description": "在 Youtube 上搜索" + }, + "torrents": { + "name": "Torrents", + "description": "搜索 Torrents" + }, + "overseerr": { + "name": "Overseerr", + "description": "在 Overseer 上搜索电影和电视剧。" + } + }, + "tip": "您可以使用以下快捷键选择搜索栏 ", + "switchedSearchEngine": "改用 {{searchEngine}} 进行搜索" +} diff --git a/public/locales/cn/modules/torrents-status.json b/public/locales/cn/modules/torrents-status.json new file mode 100644 index 000000000..21345f04c --- /dev/null +++ b/public/locales/cn/modules/torrents-status.json @@ -0,0 +1,93 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "显示支持的 Torrent 客户端的 Torrent 列表。", + "settings": { + "title": "Torrent 组件设置", + "refreshInterval": { + "label": "刷新间隔(秒)" + }, + "displayCompletedTorrents": { + "label": "显示已完成的种子" + }, + "displayActiveTorrents": { + "label": "显示正活跃的种子" + }, + "speedLimitOfActiveTorrents": { + "label": "将torrent视为活动的上传速度(kB/s)" + }, + "displayStaleTorrents": { + "label": "显示已过期的种子" + }, + "labelFilterIsWhitelist": { + "label": "标签列表是白名单 (而不是黑名单)" + }, + "labelFilter": { + "label": "标签列表", + "description": "当选中 “白名单” 时,这将成为白名单。如果不选中,则是黑名单。为空时不会做任何事情。" + }, + "displayRatioWithFilter": { + "label": "显示过滤后的 torrents 列表比例", + "info": "如果禁用,则只显示全局比率。如果设置为 \"禁用\",全局比率仍将使用标签。" + } + } + }, + "card": { + "footer": { + "error": "错误", + "lastUpdated": "最后更新于 {{time}} 前", + "ratioGlobal": "全局比率", + "ratioWithFilter": "含过滤后的比率" + }, + "table": { + "header": { + "name": "名称", + "size": "大小", + "download": "下载", + "upload": "上传", + "estimatedTimeOfArrival": "剩余时间", + "progress": "进度" + }, + "item": { + "text": "由 {{appName}}, {{ratio}} 管理的比率" + }, + "body": { + "nothingFound": "没有找到种子", + "filterHidingItems": "您的过滤器隐藏了 {{count}} 条记录" + } + }, + "lineChart": { + "title": "当前下载速度", + "download": "下载:{{download}}", + "upload": "上传: {{upload}}", + "timeSpan": "{{seconds}} 秒前", + "totalDownload": "下载: {{download}}/秒", + "totalUpload": "上传: {{upload}}/秒" + }, + "errors": { + "noDownloadClients": { + "title": "没有找到支持的Torrent客户端!", + "text": "添加一个支持的 Torrent 客户端来查看您当前的下载情况" + }, + "generic": { + "title": "发生了一个意外的错误", + "text": "无法与您的 Torrent 客户端通信。请检查您的配置" + } + }, + "loading": { + "title": "加载中", + "description": "建立连接中" + }, + "popover": { + "introductionPrefix": "管理方:", + "metrics": { + "queuePosition": "队列位置 - {{position}}", + "progress": "进度 - {{progress}}%", + "totalSelectedSize": "共计 - {{totalSize}}", + "state": "状态 - {{state}}", + "ratio": "比率 -", + "completed": "已完成" + } + } + } +} diff --git a/public/locales/cn/modules/usenet.json b/public/locales/cn/modules/usenet.json new file mode 100644 index 000000000..3dc42ca99 --- /dev/null +++ b/public/locales/cn/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "Usenet", + "description": "允许您查看和管理您的 Usenet 实例。" + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "没有找到支持的下载客户端!", + "text": "添加支持的 Usenet 下载客户端来查看当前下载情况" + } + } + }, + "tabs": { + "queue": "队列", + "history": "历史" + }, + "info": { + "sizeLeft": "左侧大小", + "paused": "已暂停" + }, + "queue": { + "header": { + "name": "名称", + "size": "大小", + "eta": "剩余时间", + "progress": "进度" + }, + "empty": "空", + "error": { + "title": "错误", + "message": "出错了" + }, + "paused": "已暂停" + }, + "history": { + "header": { + "name": "名称", + "size": "大小", + "duration": "持续时间" + }, + "empty": "空", + "error": { + "title": "错误", + "message": "加载历史记录时出错" + }, + "paused": "已暂停" + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/video-stream.json b/public/locales/cn/modules/video-stream.json new file mode 100644 index 000000000..1873b618a --- /dev/null +++ b/public/locales/cn/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "视频流", + "description": "嵌入来自相机或网站的视频流或视频", + "settings": { + "title": "视频流组件设置", + "FeedUrl": { + "label": "订阅网址" + }, + "autoPlay": { + "label": "自动播放" + }, + "muted": { + "label": "静音" + }, + "controls": { + "label": "视频播放控件" + } + } + }, + "errors": { + "invalidStream": "无效数据流" + } +} \ No newline at end of file diff --git a/public/locales/cn/modules/weather.json b/public/locales/cn/modules/weather.json new file mode 100644 index 000000000..5e373fe40 --- /dev/null +++ b/public/locales/cn/modules/weather.json @@ -0,0 +1,37 @@ +{ + "descriptor": { + "name": "天气", + "description": "显示指定位置的当前天气信息。", + "settings": { + "title": "天气组件设置", + "displayInFahrenheit": { + "label": "显示为华氏度" + }, + "displayCityName": { + "label": "显示城市名称" + }, + "location": { + "label": "天气位置" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "晴朗", + "mainlyClear": "晴朗为主", + "fog": "雾", + "drizzle": "细雨", + "freezingDrizzle": "冻毛毛雨", + "rain": "雨", + "freezingRain": "冻雨", + "snowFall": "降雪", + "snowGrains": "霰", + "rainShowers": "阵雨", + "snowShowers": "阵雪", + "thunderstorm": "雷暴", + "thunderstormWithHail": "雷暴夹冰雹", + "unknown": "未知" + } + }, + "error": "出现了一个错误" +} diff --git a/public/locales/cn/password-requirements.json b/public/locales/cn/password-requirements.json new file mode 100644 index 000000000..4ddc2ff10 --- /dev/null +++ b/public/locales/cn/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "包含数字", + "lowercase": "包括小写字母", + "uppercase": "包含大写字母", + "special": "包含特殊符号", + "length": "至少包含 {{count}} 个字符" +} \ No newline at end of file diff --git a/public/locales/cn/settings/common.json b/public/locales/cn/settings/common.json new file mode 100644 index 000000000..8869401b8 --- /dev/null +++ b/public/locales/cn/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "设置", + "tooltip": "设置", + "tabs": { + "common": "常规", + "customizations": "个性化" + }, + "tips": { + "configTip": "将配置文件拖放到页面上即可上传!" + }, + "credits": { + "madeWithLove": "用❤️创造 来自", + "thirdPartyContent": "查看第三方内容", + "thirdPartyContentTable": { + "dependencyName": "依赖", + "dependencyVersion": "版本" + } + }, + "grow": "放大网格 (占用所有空间)", + "layout": { + "preview": { + "title": "预览", + "subtitle": "更改会自动保存" + }, + "divider": "布局选项", + "main": "主要", + "sidebar": "侧边栏", + "cannotturnoff": "无法关闭", + "dashboardlayout": "面板布局", + "enablersidebar": "启用右侧栏", + "enablelsidebar": "启用左侧栏", + "enablesearchbar": "启用搜索栏", + "enabledocker": "启用 docker 集成", + "enableping": "启用 Ping 功能", + "enablelsidebardesc": "可选项。只能用于应用和集成使用", + "enablersidebardesc": "可选项。只能用于应用和集成使用" + } +} diff --git a/public/locales/cn/settings/customization/access.json b/public/locales/cn/settings/customization/access.json new file mode 100644 index 000000000..959b7e267 --- /dev/null +++ b/public/locales/cn/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "允许匿名用户", + "description": "允许未登录的用户查看您的面板" + } +} \ No newline at end of file diff --git a/public/locales/cn/settings/customization/general.json b/public/locales/cn/settings/customization/general.json new file mode 100644 index 000000000..4899e8198 --- /dev/null +++ b/public/locales/cn/settings/customization/general.json @@ -0,0 +1,29 @@ +{ + "text": "个性化设置允许您根据自己的喜好配置和调整 Homarr 的使用体验。", + "accordeon": { + "layout": { + "name": "显示布局", + "description": "启用或禁用标题和面板上的元素" + }, + "gridstack": { + "name": "网格堆栈", + "description": "自定义您的面板区域的行为和栏目" + }, + "pageMetadata": { + "name": "页面元数据", + "description": "调整标题、Logo 和 PWA" + }, + "appereance": { + "name": "外观", + "description": "自定义背景、颜色和应用的外观" + }, + "accessibility": { + "name": "无障碍服务", + "description": "为残疾和残障人士配置 Homarr" + }, + "access": { + "name": "访问权限", + "description": "配置谁有权访问您的面板" + } + } +} diff --git a/public/locales/cn/settings/customization/gridstack.json b/public/locales/cn/settings/customization/gridstack.json new file mode 100644 index 000000000..dd0c3e31d --- /dev/null +++ b/public/locales/cn/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "列的大小为{{size}}", + "descriptionPreset": "屏幕宽度小于 {{pixels}} 像素时的列数", + "descriptionExceedsPreset": "屏幕宽度超过 {{pixels}} 像素时的列数" + }, + "unsavedChanges": "您有未保存的更改。单击下面的 \"应用更改 \"按钮应用并保存。", + "applyChanges": "应用更改", + "defaultValues": "默认值" +} \ No newline at end of file diff --git a/public/locales/cn/settings/customization/opacity-selector.json b/public/locales/cn/settings/customization/opacity-selector.json new file mode 100644 index 000000000..d12cecdf7 --- /dev/null +++ b/public/locales/cn/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "应用的不透明度" +} \ No newline at end of file diff --git a/public/locales/cn/settings/customization/page-appearance.json b/public/locales/cn/settings/customization/page-appearance.json new file mode 100644 index 000000000..928245782 --- /dev/null +++ b/public/locales/cn/settings/customization/page-appearance.json @@ -0,0 +1,27 @@ +{ + "pageTitle": { + "label": "页面标题", + "description": "面板中左上角的标题" + }, + "metaTitle": { + "label": "元标题", + "description": "在您的浏览器标签页中显示的标题" + }, + "logo": { + "label": "Logo", + "description": "显示在左上方的 Logo" + }, + "favicon": { + "label": "图标", + "description": "在您的浏览器标签页中显示的图标" + }, + "background": { + "label": "背景" + }, + "customCSS": { + "label": "自定义 CSS", + "description": "只推荐有经验的用户使用 CSS 自定义面板", + "placeholder": "自定义 CSS 将在最后应用", + "applying": "应用CSS中..." + } +} \ No newline at end of file diff --git a/public/locales/cn/settings/customization/shade-selector.json b/public/locales/cn/settings/customization/shade-selector.json new file mode 100644 index 000000000..df5cf912d --- /dev/null +++ b/public/locales/cn/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "阴影" +} \ No newline at end of file diff --git a/public/locales/cn/settings/general/cache-buttons.json b/public/locales/cn/settings/general/cache-buttons.json new file mode 100644 index 000000000..3518ea39f --- /dev/null +++ b/public/locales/cn/settings/general/cache-buttons.json @@ -0,0 +1,24 @@ +{ + "title": "清除缓存", + "selector": { + "label": "选择要清除的缓存", + "data": { + "ping": "Ping 查询", + "repositoryIcons": "远程/本地图标", + "calendar&medias": "日历中的媒体", + "weather": "天气数据" + } + }, + "buttons": { + "notificationTitle": "已清除缓存", + "clearAll": { + "text": "清除所有缓存", + "notificationMessage": "已清除所有缓存" + }, + "clearSelect": { + "text": "清除所选缓存", + "notificationMessageSingle": "{{value}} 的缓存已清除", + "notificationMessageMulti": "{{values}} 的缓存已清除" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/settings/general/config-changer.json b/public/locales/cn/settings/general/config-changer.json new file mode 100644 index 000000000..c6ff60440 --- /dev/null +++ b/public/locales/cn/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "配置更改", + "description": "{{configCount}} 个可用的配置", + "loadingNew": "正在加载您的配置...", + "pleaseWait": "请等待您的新配置加载完成!" + }, + "modal": { + "copy": { + "title": "选择新配置的名称", + "form": { + "configName": { + "label": "配置名称", + "validation": { + "required": "配置名称是必填项", + "notUnique": "配置名称已被使用" + }, + "placeholder": "您的新配置名称" + }, + "submitButton": "确认" + }, + "events": { + "configSaved": { + "title": "配置已保存", + "message": "配置保存为 {{configName}}" + }, + "configCopied": { + "title": "配置已复制", + "message": "配置复制为 {{configName}}" + }, + "configNotCopied": { + "title": "无法复制配置", + "message": "您的配置没有被复制为 {{configName}}" + } + } + }, + "confirmDeletion": { + "title": "确认删除您的配置", + "warningText": "您即将删除 '{{configName}}'", + "text": "请注意:删除是不可逆的,您的数据将永久丢失。点击此按钮后,该文件将从你的磁盘中永久删除。请确保已为你的配置创建了一个合适的备份。", + "buttons": { + "confirm": "是的,删除 '{{configName}}' 。" + } + } + }, + "buttons": { + "download": "下载配置", + "delete": { + "text": "删除配置", + "notifications": { + "deleted": { + "title": "配置已删除", + "message": "配置已删除" + }, + "deleteFailed": { + "title": "配置删除失败", + "message": "配置删除失败" + }, + "deleteFailedDefaultConfig": { + "title": "默认配置不能被删除", + "message": "配置没有从文件系统中删除" + } + } + }, + "saveCopy": "保存副本" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "无法加载配置", + "message": "无法加载您的配置。无效的 JSON 格式。" + }, + "loadedSuccessfully": { + "title": "配置 {{configName}} 已成功加载。" + } + }, + "accept": { + "title": "上传配置", + "text": "将文件拖动到这里上传配置。仅支持 JSON 文件。" + }, + "reject": { + "title": "拖放上传被拒绝", + "text": "此文件格式不受支持。请只上传 JSON 文件。" + } + } +} diff --git a/public/locales/cn/settings/general/edit-mode-toggle.json b/public/locales/cn/settings/general/edit-mode-toggle.json new file mode 100644 index 000000000..d38f03752 --- /dev/null +++ b/public/locales/cn/settings/general/edit-mode-toggle.json @@ -0,0 +1,22 @@ +{ + "menu": { + "toggle": "切换编辑模式", + "enable": "启用编辑模式", + "disable": "关闭编辑模式" + }, + "form": { + "label": "编辑密码", + "message": "要切换编辑模式,需要在名为 EDIT_MODE_PASSWORD 的环境变量中输入密码。如果未设置,则无法切换编辑模式。", + "submit": "提交" + }, + "notification": { + "success": { + "title": "成功", + "message": "成功切换编辑模式,重新加载页面..." + }, + "error": { + "title": "错误", + "message": "切换编辑模式失败,请重试。" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/settings/general/internationalization.json b/public/locales/cn/settings/general/internationalization.json new file mode 100644 index 000000000..970392a64 --- /dev/null +++ b/public/locales/cn/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "语言" +} \ No newline at end of file diff --git a/public/locales/cn/settings/general/search-engine.json b/public/locales/cn/settings/general/search-engine.json new file mode 100644 index 000000000..5e409d607 --- /dev/null +++ b/public/locales/cn/settings/general/search-engine.json @@ -0,0 +1,20 @@ +{ + "title": "搜索引擎", + "configurationName": "搜索引擎设置", + "custom": "自定义", + "tips": { + "generalTip": "您可以使用多种前缀!将这些添加到您的查询前将过滤结果。:!s (网页), !t (Torrents), !y (YouTube), 和 !m (媒体)。", + "placeholderTip": "%s 可以作为查询的占位符。" + }, + "customEngine": { + "title": "自定义搜索引擎", + "label": "查询网址", + "placeholder": "自定义查询网址" + }, + "searchNewTab": { + "label": "在新选项卡中打开搜索结果页" + }, + "searchEnabled": { + "label": "启用搜索" + } +} diff --git a/public/locales/cn/settings/general/widget-positions.json b/public/locales/cn/settings/general/widget-positions.json new file mode 100644 index 000000000..f6325ab4b --- /dev/null +++ b/public/locales/cn/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "将组件放在左边" +} diff --git a/public/locales/cn/tools/docker.json b/public/locales/cn/tools/docker.json new file mode 100644 index 000000000..52ecf5a6d --- /dev/null +++ b/public/locales/cn/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "您的 Homarr 实例未配置 Docker,或无法获取容器。请查看文档,了解如何设置集成。" + } + }, + "modals": { + "selectBoard": { + "title": "选择一个面板", + "text": "选择您想要为选定的 Docker 容器添加应用的面板。", + "form": { + "board": { + "label": "面板" + }, + "submit": "添加应用" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "添加应用到面板", + "message": "选定的 Docker 容器的应用已添加到面板中。" + }, + "error": { + "title": "添加应用到面板失败", + "message": "所选Docker容器的应用无法添加到面板中。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cn/user/preferences.json b/public/locales/cn/user/preferences.json new file mode 100644 index 000000000..b17f288d8 --- /dev/null +++ b/public/locales/cn/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "首选项", + "pageTitle": "您的首选项", + "boards": { + "defaultBoard": { + "label": "默认面板" + } + }, + "accessibility": { + "title": "无障碍服务", + "disablePulse": { + "label": "禁用 Ping", + "description": "默认情况下,Homarr 中的 Ping 指示器会一直工作。这可能会让人感到恼火。这个滑块将停用该动画。" + }, + "replaceIconsWithDots": { + "label": "用图标替换 Ping 点", + "description": "对于色盲用户来说,Ping 点可能无法识别。 这将用图标替换指示器" + } + }, + "localization": { + "language": { + "label": "语言" + }, + "firstDayOfWeek": { + "label": "一周的第一天", + "options": { + "monday": "周一", + "saturday": "周六", + "sunday": "周日" + } + } + }, + "searchEngine": { + "title": "搜索引擎", + "custom": "自定义", + "newTab": { + "label": "在新选项卡中打开搜索结果页" + }, + "autoFocus": { + "label": "页面加载时聚焦搜索栏。", + "description": "当您导航到面板页面时,搜索栏会自动聚焦。该功能仅适用于桌面设备。" + }, + "template": { + "label": "查询网址", + "description": "使用 %s 作为查询的占位符" + } + } +} \ No newline at end of file diff --git a/public/locales/cn/widgets/draggable-list.json b/public/locales/cn/widgets/draggable-list.json new file mode 100644 index 000000000..8f8a2a6da --- /dev/null +++ b/public/locales/cn/widgets/draggable-list.json @@ -0,0 +1,7 @@ +{ + "noEntries": { + "title": "没有条目", + "text": "使用下方按钮添加更多条目" + }, + "buttonAdd": "添加" +} diff --git a/public/locales/cn/widgets/error-boundary.json b/public/locales/cn/widgets/error-boundary.json new file mode 100644 index 000000000..a25ae0c83 --- /dev/null +++ b/public/locales/cn/widgets/error-boundary.json @@ -0,0 +1,14 @@ +{ + "card": { + "title": "哎呀,出错了!", + "buttons": { + "details": "详情", + "tryAgain": "请再试一次" + } + }, + "modal": { + "text": "", + "label": "您的错误", + "reportButton": "报告该错误" + } +} diff --git a/public/locales/cn/zod.json b/public/locales/cn/zod.json new file mode 100644 index 000000000..8e2e503c8 --- /dev/null +++ b/public/locales/cn/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "该字段无效", + "required": "此字段为必填", + "string": { + "startsWith": "该字段必须以 {{startsWith}} 开头", + "endsWith": "该字段必须以 {{endsWith}} 结尾", + "includes": "该字段必须包含 {{includes}}" + }, + "tooSmall": { + "string": "该字段的长度必须至少为 {{minimum}} 个字符", + "number": "该字段必须大于或等于 {{minimum}}" + }, + "tooBig": { + "string": "该字段的长度不得超过 {{maximum}} 个字符", + "number": "该字段必须小于或等于 {{maximum}}" + }, + "custom": { + "passwordMatch": "两次输入的密码必须一致" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/authentication/invite.json b/public/locales/cr/authentication/invite.json new file mode 100644 index 000000000..00dc6a107 --- /dev/null +++ b/public/locales/cr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "crwdns3635:0crwdne3635:0", + "title": "crwdns3637:0crwdne3637:0", + "text": "crwdns3639:0crwdne3639:0", + "form": { + "fields": { + "username": { + "label": "crwdns3641:0crwdne3641:0" + }, + "password": { + "label": "crwdns3643:0crwdne3643:0" + }, + "passwordConfirmation": { + "label": "crwdns3645:0crwdne3645:0" + } + }, + "buttons": { + "submit": "crwdns3647:0crwdne3647:0" + } + }, + "notifications": { + "loading": { + "title": "crwdns3649:0crwdne3649:0", + "text": "crwdns3651:0crwdne3651:0" + }, + "success": { + "title": "crwdns3653:0crwdne3653:0", + "text": "crwdns3655:0crwdne3655:0" + }, + "error": { + "title": "crwdns3657:0crwdne3657:0", + "text": "crwdns3659:0{{error}}crwdne3659:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/authentication/login.json b/public/locales/cr/authentication/login.json new file mode 100644 index 000000000..a836f9bbc --- /dev/null +++ b/public/locales/cr/authentication/login.json @@ -0,0 +1,20 @@ +{ + "metaTitle": "crwdns3341:0crwdne3341:0", + "title": "crwdns1868:0crwdne1868:0", + "text": "crwdns3343:0crwdne3343:0", + "form": { + "fields": { + "username": { + "label": "crwdns3345:0crwdne3345:0" + }, + "password": { + "label": "crwdns1872:0crwdne1872:0" + } + }, + "buttons": { + "submit": "crwdns1876:0crwdne1876:0" + }, + "afterLoginRedirection": "crwdns3347:0{{url}}crwdne3347:0" + }, + "alert": "crwdns3349:0crwdne3349:0" +} \ No newline at end of file diff --git a/public/locales/cr/boards/common.json b/public/locales/cr/boards/common.json new file mode 100644 index 000000000..f46091226 --- /dev/null +++ b/public/locales/cr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "crwdns3477:0crwdne3477:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/boards/customize.json b/public/locales/cr/boards/customize.json new file mode 100644 index 000000000..76a5d3bcf --- /dev/null +++ b/public/locales/cr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "crwdns3479:0{{name}}crwdne3479:0", + "pageTitle": "crwdns3481:0{{name}}crwdne3481:0", + "backToBoard": "crwdns3483:0crwdne3483:0", + "settings": { + "appearance": { + "primaryColor": "crwdns3485:0crwdne3485:0", + "secondaryColor": "crwdns3487:0crwdne3487:0" + } + }, + "save": { + "button": "crwdns3489:0crwdne3489:0", + "note": "crwdns3491:0crwdne3491:0" + }, + "notifications": { + "pending": { + "title": "crwdns3493:0crwdne3493:0", + "message": "crwdns3495:0crwdne3495:0" + }, + "success": { + "title": "crwdns3497:0crwdne3497:0", + "message": "crwdns3499:0crwdne3499:0" + }, + "error": { + "title": "crwdns3501:0crwdne3501:0", + "message": "crwdns3503:0crwdne3503:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/common.json b/public/locales/cr/common.json new file mode 100644 index 000000000..eaab4b3d9 --- /dev/null +++ b/public/locales/cr/common.json @@ -0,0 +1,55 @@ +{ + "save": "crwdns2009:0crwdne2009:0", + "apply": "crwdns3900:0crwdne3900:0", + "insert": "crwdns3902:0crwdne3902:0", + "about": "crwdns2011:0crwdne2011:0", + "cancel": "crwdns2013:0crwdne2013:0", + "close": "crwdns2015:0crwdne2015:0", + "back": "crwdns3371:0crwdne3371:0", + "delete": "crwdns2017:0crwdne2017:0", + "ok": "crwdns2019:0crwdne2019:0", + "edit": "crwdns2021:0crwdne2021:0", + "next": "crwdns3373:0crwdne3373:0", + "previous": "crwdns3375:0crwdne3375:0", + "confirm": "crwdns3377:0crwdne3377:0", + "enabled": "crwdns2883:0crwdne2883:0", + "disabled": "crwdns2885:0crwdne2885:0", + "enableAll": "crwdns2887:0crwdne2887:0", + "disableAll": "crwdns2889:0crwdne2889:0", + "version": "crwdns2023:0crwdne2023:0", + "changePosition": "crwdns2025:0crwdne2025:0", + "remove": "crwdns2027:0crwdne2027:0", + "removeConfirm": "crwdns2683:0{{item}}crwdne2683:0", + "createItem": "crwdns2793:0{{item}}crwdne2793:0", + "sections": { + "settings": "crwdns2029:0crwdne2029:0", + "dangerZone": "crwdns2031:0crwdne2031:0" + }, + "secrets": { + "apiKey": "crwdns2685:0crwdne2685:0", + "username": "crwdns2035:0crwdne2035:0", + "password": "crwdns2037:0crwdne2037:0" + }, + "tip": "crwdns1260:0crwdne1260:0", + "time": { + "seconds": "crwdns1860:0crwdne1860:0", + "minutes": "crwdns1862:0crwdne1862:0", + "hours": "crwdns1864:0crwdne1864:0" + }, + "loading": "crwdns2523:0crwdne2523:0", + "breakPoints": { + "small": "crwdns2525:0crwdne2525:0", + "medium": "crwdns2527:0crwdne2527:0", + "large": "crwdns2529:0crwdne2529:0" + }, + "seeMore": "crwdns3019:0crwdne3019:0", + "position": { + "left": "crwdns3904:0crwdne3904:0", + "center": "crwdns3906:0crwdne3906:0", + "right": "crwdns3908:0crwdne3908:0" + }, + "attributes": { + "width": "crwdns3910:0crwdne3910:0", + "height": "crwdns3912:0crwdne3912:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/layout/common.json b/public/locales/cr/layout/common.json new file mode 100644 index 000000000..e8bf21205 --- /dev/null +++ b/public/locales/cr/layout/common.json @@ -0,0 +1,25 @@ +{ + "modals": { + "blockedPopups": { + "title": "crwdns2997:0crwdne2997:0", + "text": "crwdns2999:0crwdne2999:0", + "list": { + "browserPermission": "crwdns3001:0crwdne3001:0", + "adBlockers": "crwdns3003:0crwdne3003:0", + "otherBrowser": "crwdns3005:0crwdne3005:0" + } + } + }, + "actions": { + "category": { + "openAllInNewTab": "crwdns3007:0crwdne3007:0" + } + }, + "menu": { + "moveUp": "crwdns3213:0crwdne3213:0", + "moveDown": "crwdns3215:0crwdne3215:0", + "addCategory": "crwdns3251:0{{location}}crwdne3251:0", + "addAbove": "crwdns3219:0crwdne3219:0", + "addBelow": "crwdns3221:0crwdne3221: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 new file mode 100644 index 000000000..ca80fd9e1 --- /dev/null +++ b/public/locales/cr/layout/element-selector/selector.json @@ -0,0 +1,25 @@ +{ + "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" + } + } +} diff --git a/public/locales/cr/layout/errors/access-denied.json b/public/locales/cr/layout/errors/access-denied.json new file mode 100644 index 000000000..2b5b8cbdd --- /dev/null +++ b/public/locales/cr/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "crwdns3866:0crwdne3866:0", + "text": "crwdns3868:0crwdne3868:0", + "switchAccount": "crwdns3870:0crwdne3870:0" +} \ No newline at end of file diff --git a/public/locales/cr/layout/errors/not-found.json b/public/locales/cr/layout/errors/not-found.json new file mode 100644 index 000000000..451c815e9 --- /dev/null +++ b/public/locales/cr/layout/errors/not-found.json @@ -0,0 +1,5 @@ +{ + "title": "crwdns3049:0crwdne3049:0", + "text": "crwdns3051:0crwdne3051:0", + "button": "crwdns3053:0crwdne3053:0" +} \ No newline at end of file diff --git a/public/locales/cr/layout/header.json b/public/locales/cr/layout/header.json new file mode 100644 index 000000000..d0cfa45a6 --- /dev/null +++ b/public/locales/cr/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "crwdns3445:0crwdne3445:0" + }, + "search": { + "label": "crwdns3447:0crwdne3447:0", + "engines": { + "web": "crwdns3449:0{{query}}crwdne3449:0", + "youtube": "crwdns3451:0{{query}}crwdne3451:0", + "torrent": "crwdns3453:0{{query}}crwdne3453:0", + "movie": "crwdns3455:0{{query}}crwdnd3455:0{{app}}crwdne3455:0" + } + }, + "actions": { + "avatar": { + "switchTheme": "crwdns3457:0crwdne3457:0", + "preferences": "crwdns3459:0crwdne3459:0", + "defaultBoard": "crwdns3461:0crwdne3461:0", + "manage": "crwdns3463:0crwdne3463:0", + "logout": "crwdns3469:0{{username}}crwdne3469:0", + "login": "crwdns3471:0crwdne3471:0" + } + }, + "modals": { + "movie": { + "title": "crwdns3473:0crwdne3473:0", + "topResults": "crwdns3475:0{{count}}crwdnd3475:0{{search}}crwdne3475:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/layout/header/actions/toggle-edit-mode.json b/public/locales/cr/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..ef2571c8e --- /dev/null +++ b/public/locales/cr/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,12 @@ +{ + "description": "crwdns2297:0crwdne2297:0", + "button": { + "disabled": "crwdns2001:0crwdne2001:0", + "enabled": "crwdns2003:0crwdne2003:0" + }, + "popover": { + "title": "crwdns2403:0{{size}}crwdne2403:0", + "text": "crwdns2405:0crwdne2405:0" + }, + "unloadEvent": "crwdns3275:0crwdne3275:0" +} diff --git a/public/locales/cr/layout/manage.json b/public/locales/cr/layout/manage.json new file mode 100644 index 000000000..1aac192c3 --- /dev/null +++ b/public/locales/cr/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "crwdns3505:0crwdne3505:0" + }, + "boards": { + "title": "crwdns3507:0crwdne3507:0" + }, + "users": { + "title": "crwdns3509:0crwdne3509:0", + "items": { + "manage": "crwdns3511:0crwdne3511:0", + "invites": "crwdns3513:0crwdne3513:0" + } + }, + "help": { + "title": "crwdns3515:0crwdne3515:0", + "items": { + "documentation": "crwdns3517:0crwdne3517:0", + "report": "crwdns3519:0crwdne3519:0", + "discord": "crwdns3521:0crwdne3521:0", + "contribute": "crwdns3523:0crwdne3523:0" + } + }, + "tools": { + "title": "crwdns3525:0crwdne3525:0", + "items": { + "docker": "crwdns3527:0crwdne3527:0" + } + }, + "about": { + "title": "crwdns3990:0crwdne3990:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/layout/mobile/drawer.json b/public/locales/cr/layout/mobile/drawer.json new file mode 100644 index 000000000..7f17d3c04 --- /dev/null +++ b/public/locales/cr/layout/mobile/drawer.json @@ -0,0 +1,3 @@ +{ + "title": "crwdns2211:0{{position}}crwdne2211:0" +} diff --git a/public/locales/cr/layout/modals/about.json b/public/locales/cr/layout/modals/about.json new file mode 100644 index 000000000..265f7f546 --- /dev/null +++ b/public/locales/cr/layout/modals/about.json @@ -0,0 +1,30 @@ +{ + "description": "crwdns2303:0crwdne2303:0", + "addToDashboard": "crwdns2147:0crwdne2147:0", + "tip": "crwdns2745:0crwdne2745:0", + "key": "crwdns2747:0crwdne2747:0", + "action": "crwdns2749:0crwdne2749:0", + "keybinds": "crwdns2751:0crwdne2751:0", + "translators": "crwdns3992:0{{count}}crwdne3992:0", + "translatorsDescription": "crwdns3994:0{{languages}}crwdne3994:0", + "contributors": "crwdns3996:0{{count}}crwdne3996:0", + "contributorsDescription": "crwdns3998:0crwdne3998:0", + "actions": { + "toggleTheme": "crwdns3223:0crwdne3223:0", + "focusSearchBar": "crwdns3225:0crwdne3225:0", + "openDocker": "crwdns3227:0crwdne3227:0", + "toggleEdit": "crwdns3229:0crwdne3229:0" + }, + "metrics": { + "configurationSchemaVersion": "crwdns2531:0crwdne2531:0", + "version": "crwdns2535:0crwdne2535:0", + "nodeEnvironment": "crwdns2537:0crwdne2537:0", + "i18n": "crwdns2539:0crwdne2539:0", + "locales": "crwdns2541:0crwdne2541:0", + "experimental_disableEditMode": "crwdns2681:0crwdne2681:0" + }, + "version": { + "new": "crwdns3279:0{{newVersion}}crwdne3279:0", + "dropdown": "crwdns3281:0{{newVersion}}crwdnd3281:0{{currentVersion}}crwdne3281:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/layout/modals/add-app.json b/public/locales/cr/layout/modals/add-app.json new file mode 100644 index 000000000..d801870f8 --- /dev/null +++ b/public/locales/cr/layout/modals/add-app.json @@ -0,0 +1,128 @@ +{ + "tabs": { + "general": "crwdns2049:0crwdne2049:0", + "behaviour": "crwdns2687:0crwdne2687:0", + "network": "crwdns2053:0crwdne2053:0", + "appearance": "crwdns2055:0crwdne2055:0", + "integration": "crwdns2057:0crwdne2057:0" + }, + "general": { + "appname": { + "label": "crwdns2059:0crwdne2059:0", + "description": "crwdns2305:0crwdne2305:0" + }, + "internalAddress": { + "label": "crwdns2063:0crwdne2063:0", + "description": "crwdns2307:0crwdne2307:0", + "troubleshoot": { + "label": "crwdns3874:0crwdne3874:0", + "header": "crwdns3876:0crwdne3876:0", + "lines": { + "nothingAfterPort": "crwdns3878:0crwdne3878:0", + "protocolCheck": "crwdns3880:0crwdne3880:0", + "preferIP": "crwdns3882:0crwdne3882:0", + "enablePings": "crwdns3884:0crwdne3884:0", + "wget": "crwdns3886:0crwdne3886:0", + "iframe": "crwdns3888:0crwdne3888:0", + "clearCache": "crwdns3890:0crwdne3890:0" + }, + "footer": "crwdns3892:0{{discord}}crwdne3892:0" + } + }, + "externalAddress": { + "label": "crwdns2067:0crwdne2067:0", + "description": "crwdns2309:0crwdne2309:0" + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "crwdns2071:0crwdne2071:0", + "description": "crwdns2311:0crwdne2311:0" + }, + "tooltipDescription": { + "label": "crwdns3021:0crwdne3021:0", + "description": "crwdns3023:0crwdne3023:0" + }, + "customProtocolWarning": "crwdns3009:0crwdne3009:0" + }, + "network": { + "statusChecker": { + "label": "crwdns2075:0crwdne2075:0", + "description": "crwdns2313:0crwdne2313:0" + }, + "statusCodes": { + "label": "crwdns2079:0crwdne2079:0", + "description": "crwdns2315:0crwdne2315:0" + } + }, + "appearance": { + "icon": { + "label": "crwdns2083:0crwdne2083:0", + "description": "crwdns2891:0crwdne2891:0", + "autocomplete": { + "title": "crwdns2673:0crwdne2673:0", + "text": "crwdns2675:0crwdne2675:0" + }, + "noItems": { + "title": "crwdns2677:0crwdne2677:0", + "text": "crwdns2679:0crwdne2679:0" + } + }, + "appNameFontSize": { + "label": "crwdns3309:0crwdne3309:0", + "description": "crwdns3311:0crwdne3311:0" + }, + "appNameStatus": { + "label": "crwdns3025:0crwdne3025:0", + "description": "crwdns3027:0crwdne3027:0", + "dropdown": { + "normal": "crwdns3029:0crwdne3029:0", + "hover": "crwdns3031:0crwdne3031:0", + "hidden": "crwdns3033:0crwdne3033:0" + } + }, + "positionAppName": { + "label": "crwdns3035:0crwdne3035:0", + "description": "crwdns3037:0crwdne3037:0", + "dropdown": { + "top": "crwdns3039:0crwdne3039:0", + "right": "crwdns3041:0crwdne3041:0", + "bottom": "crwdns3043:0crwdne3043:0", + "left": "crwdns3045:0crwdne3045:0" + } + }, + "lineClampAppName": { + "label": "crwdns3073:0crwdne3073:0", + "description": "crwdns3075:0crwdne3075:0" + } + }, + "integration": { + "type": { + "label": "crwdns2087:0crwdne2087:0", + "description": "crwdns2319:0crwdne2319:0", + "placeholder": "crwdns2091:0crwdne2091:0", + "defined": "crwdns2093:0crwdne2093:0", + "undefined": "crwdns2095:0crwdne2095:0", + "public": "crwdns2097:0crwdne2097:0", + "private": "crwdns2099:0crwdne2099:0", + "explanationPrivate": "crwdns2321:0crwdne2321:0", + "explanationPublic": "crwdns2323:0crwdne2323:0" + }, + "secrets": { + "description": "crwdns2105:0crwdne2105:0", + "warning": "crwdns2325:0crwdne2325:0", + "clear": "crwdns2109:0crwdne2109:0", + "save": "crwdns2111:0crwdne2111:0", + "update": "crwdns2113:0crwdne2113:0" + } + }, + "validation": { + "popover": "crwdns2267:0crwdne2267:0", + "name": "crwdns3201:0crwdne3201:0", + "noUrl": "crwdns3203:0crwdne3203:0", + "invalidUrl": "crwdns3205:0crwdne3205:0", + "noIconUrl": "crwdns3207:0crwdne3207:0", + "noExternalUri": "crwdns3209:0crwdne3209:0", + "invalidExternalUri": "crwdns3211:0crwdne3211:0" + } +} diff --git a/public/locales/cr/layout/modals/change-position.json b/public/locales/cr/layout/modals/change-position.json new file mode 100644 index 000000000..60a38446c --- /dev/null +++ b/public/locales/cr/layout/modals/change-position.json @@ -0,0 +1,8 @@ +{ + "xPosition": "crwdns2689:0crwdne2689:0", + "width": "crwdns2201:0crwdne2201:0", + "height": "crwdns2203:0crwdne2203:0", + "yPosition": "crwdns2691:0crwdne2691:0", + "zeroOrHigher": "crwdns2207:0crwdne2207:0", + "betweenXandY": "crwdns2209:0{{min}}crwdnd2209:0{{max}}crwdne2209:0" +} \ No newline at end of file diff --git a/public/locales/cr/manage/boards.json b/public/locales/cr/manage/boards.json new file mode 100644 index 000000000..76fda8100 --- /dev/null +++ b/public/locales/cr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "crwdns3529:0crwdne3529:0", + "pageTitle": "crwdns3531:0crwdne3531:0", + "cards": { + "statistics": { + "apps": "crwdns3533:0crwdne3533:0", + "widgets": "crwdns3535:0crwdne3535:0", + "categories": "crwdns3537:0crwdne3537:0" + }, + "buttons": { + "view": "crwdns3539:0crwdne3539:0" + }, + "menu": { + "setAsDefault": "crwdns3541:0crwdne3541:0", + "delete": { + "label": "crwdns3543:0crwdne3543:0", + "disabled": "crwdns3545:0crwdne3545:0" + } + }, + "badges": { + "fileSystem": "crwdns3547:0crwdne3547:0", + "default": "crwdns3549:0crwdne3549:0" + } + }, + "buttons": { + "create": "crwdns3551:0crwdne3551:0" + }, + "modals": { + "delete": { + "title": "crwdns3553:0crwdne3553:0", + "text": "crwdns3555:0crwdne3555:0" + }, + "create": { + "title": "crwdns3557:0crwdne3557:0", + "text": "crwdns3559:0crwdne3559:0", + "form": { + "name": { + "label": "crwdns3561:0crwdne3561:0" + }, + "submit": "crwdns3563:0crwdne3563:0" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/manage/index.json b/public/locales/cr/manage/index.json new file mode 100644 index 000000000..d185b5c45 --- /dev/null +++ b/public/locales/cr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "crwdns3565:0crwdne3565:0", + "hero": { + "title": "crwdns3567:0{{username}}crwdne3567:0", + "fallbackUsername": "crwdns3569:0crwdne3569:0", + "subtitle": "crwdns3571:0crwdne3571:0" + }, + "quickActions": { + "title": "crwdns3573:0crwdne3573:0", + "boards": { + "title": "crwdns3575:0crwdne3575:0", + "subtitle": "crwdns3577:0crwdne3577:0" + }, + "inviteUsers": { + "title": "crwdns3579:0crwdne3579:0", + "subtitle": "crwdns3581:0crwdne3581:0" + }, + "manageUsers": { + "title": "crwdns3583:0crwdne3583:0", + "subtitle": "crwdns3585:0crwdne3585:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/manage/users.json b/public/locales/cr/manage/users.json new file mode 100644 index 000000000..2d7f1247b --- /dev/null +++ b/public/locales/cr/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "crwdns3789:0crwdne3789:0", + "pageTitle": "crwdns3791:0crwdne3791:0", + "text": "crwdns3793:0crwdne3793:0", + "buttons": { + "create": "crwdns3795:0crwdne3795:0" + }, + "table": { + "header": { + "user": "crwdns3797:0crwdne3797:0" + } + }, + "tooltips": { + "deleteUser": "crwdns3799:0crwdne3799:0", + "demoteAdmin": "crwdns3801:0crwdne3801:0", + "promoteToAdmin": "crwdns3803:0crwdne3803:0" + }, + "modals": { + "delete": { + "title": "crwdns3805:0{{name}}crwdne3805:0", + "text": "crwdns3807:0{{name}}crwdne3807:0" + }, + "change-role": { + "promote": { + "title": "crwdns3809:0{{name}}crwdne3809:0", + "text": "crwdns3811:0{{name}}crwdne3811:0" + }, + "demote": { + "title": "crwdns3813:0{{name}}crwdne3813:0", + "text": "crwdns3815:0{{name}}crwdne3815:0" + }, + "confirm": "crwdns3817:0crwdne3817:0" + } + }, + "searchDoesntMatch": "crwdns3819:0crwdne3819:0" +} \ No newline at end of file diff --git a/public/locales/cr/manage/users/create.json b/public/locales/cr/manage/users/create.json new file mode 100644 index 000000000..dff275bab --- /dev/null +++ b/public/locales/cr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "crwdns3741:0crwdne3741:0", + "steps": { + "account": { + "title": "crwdns3743:0crwdne3743:0", + "text": "crwdns3745:0crwdne3745:0", + "username": { + "label": "crwdns3747:0crwdne3747:0" + }, + "email": { + "label": "crwdns3749:0crwdne3749:0" + } + }, + "security": { + "title": "crwdns3751:0crwdne3751:0", + "text": "crwdns3753:0crwdne3753:0", + "password": { + "label": "crwdns3755:0crwdne3755:0" + } + }, + "finish": { + "title": "crwdns3757:0crwdne3757:0", + "text": "crwdns3759:0crwdne3759:0", + "card": { + "title": "crwdns3761:0crwdne3761:0", + "text": "crwdns3763:0crwdne3763:0" + }, + "table": { + "header": { + "property": "crwdns3765:0crwdne3765:0", + "value": "crwdns3767:0crwdne3767:0", + "username": "crwdns3769:0crwdne3769:0", + "email": "crwdns3771:0crwdne3771:0", + "password": "crwdns3773:0crwdne3773:0" + }, + "notSet": "crwdns3775:0crwdne3775:0", + "valid": "crwdns3777:0crwdne3777:0" + }, + "failed": "crwdns3779:0{{error}}crwdne3779:0" + }, + "completed": { + "alert": { + "title": "crwdns3781:0crwdne3781:0", + "text": "crwdns3783:0crwdne3783:0" + } + } + }, + "buttons": { + "generateRandomPassword": "crwdns3785:0crwdne3785:0", + "createAnother": "crwdns3787:0crwdne3787:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/manage/users/invites.json b/public/locales/cr/manage/users/invites.json new file mode 100644 index 000000000..86fd2f6ec --- /dev/null +++ b/public/locales/cr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "crwdns3587:0crwdne3587:0", + "pageTitle": "crwdns3589:0crwdne3589:0", + "description": "crwdns3591:0crwdne3591:0", + "button": { + "createInvite": "crwdns3593:0crwdne3593:0", + "deleteInvite": "crwdns3595:0crwdne3595:0" + }, + "table": { + "header": { + "id": "crwdns3597:0crwdne3597:0", + "creator": "crwdns3599:0crwdne3599:0", + "expires": "crwdns3601:0crwdne3601:0", + "action": "crwdns3603:0crwdne3603:0" + }, + "data": { + "expiresAt": "crwdns3605:0{{at}}crwdne3605:0", + "expiresIn": "crwdns3607:0{{in}}crwdne3607:0" + } + }, + "modals": { + "create": { + "title": "crwdns3609:0crwdne3609:0", + "description": "crwdns3611:0crwdne3611:0", + "form": { + "expires": "crwdns3613:0crwdne3613:0", + "submit": "crwdns3615:0crwdne3615:0" + } + }, + "copy": { + "title": "crwdns3617:0crwdne3617:0", + "description": "crwdns3619:0crwdne3619:0", + "invitationLink": "crwdns3621:0crwdne3621:0", + "details": { + "id": "crwdns3623:0crwdne3623:0", + "token": "crwdns3625:0crwdne3625:0" + }, + "button": { + "close": "crwdns3627:0crwdne3627:0" + } + }, + "delete": { + "title": "crwdns3629:0crwdne3629:0", + "description": "crwdns3631:0crwdne3631:0" + } + }, + "noInvites": "crwdns3633:0crwdne3633:0" +} \ No newline at end of file diff --git a/public/locales/cr/modules/bookmark.json b/public/locales/cr/modules/bookmark.json new file mode 100644 index 000000000..c8315d7ff --- /dev/null +++ b/public/locales/cr/modules/bookmark.json @@ -0,0 +1,43 @@ +{ + "descriptor": { + "name": "crwdns2863:0crwdne2863:0", + "description": "crwdns2865:0crwdne2865:0", + "settings": { + "title": "crwdns2867:0crwdne2867:0", + "name": { + "label": "crwdns3011:0crwdne3011:0", + "info": "crwdns3017:0crwdne3017:0" + }, + "items": { + "label": "crwdns2869:0crwdne2869:0" + }, + "layout": { + "label": "crwdns2871:0crwdne2871:0", + "data": { + "autoGrid": "crwdns3095:0crwdne3095:0", + "horizontal": "crwdns3097:0crwdne3097:0", + "vertical": "crwdns3099:0crwdne3099:0" + } + } + } + }, + "card": { + "noneFound": { + "title": "crwdns2873:0crwdne2873:0", + "text": "crwdns2875:0crwdne2875:0" + } + }, + "item": { + "validation": { + "length": "crwdns3253:0{{shortest}}crwdnd3253:0{{longest}}crwdne3253:0", + "invalidLink": "crwdns3107:0crwdne3107:0", + "errorMsg": "crwdns3109:0crwdne3109:0" + }, + "name": "crwdns3111:0crwdne3111:0", + "url": "crwdns3113:0crwdne3113:0", + "newTab": "crwdns3115:0crwdne3115:0", + "hideHostname": "crwdns3117:0crwdne3117:0", + "hideIcon": "crwdns3119:0crwdne3119:0", + "delete": "crwdns3121:0crwdne3121:0" + } +} diff --git a/public/locales/cr/modules/calendar.json b/public/locales/cr/modules/calendar.json new file mode 100644 index 000000000..ae9dcf7b3 --- /dev/null +++ b/public/locales/cr/modules/calendar.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "crwdns1366:0crwdne1366:0", + "description": "crwdns2331:0crwdne2331:0", + "settings": { + "title": "crwdns2333:0crwdne2333:0", + "radarrReleaseType": { + "label": "crwdns2269:0crwdne2269:0", + "data": { + "inCinemas": "crwdns3123:0crwdne3123:0", + "physicalRelease": "crwdns3125:0crwdne3125:0", + "digitalRelease": "crwdns3127:0crwdne3127:0" + } + }, + "hideWeekDays": { + "label": "crwdns2993:0crwdne2993:0" + }, + "showUnmonitored": { + "label": "crwdns3335:0crwdne3335:0" + }, + "fontSize": { + "label": "crwdns2995:0crwdne2995:0", + "data": { + "xs": "crwdns3129:0crwdne3129:0", + "sm": "crwdns3131:0crwdne3131:0", + "md": "crwdns3133:0crwdne3133:0", + "lg": "crwdns3135:0crwdne3135:0", + "xl": "crwdns3137:0crwdne3137:0" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/common-media-cards.json b/public/locales/cr/modules/common-media-cards.json new file mode 100644 index 000000000..24f64d82b --- /dev/null +++ b/public/locales/cr/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "crwdns1372:0crwdne1372:0", + "request": "crwdns1374:0crwdne1374:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/common.json b/public/locales/cr/modules/common.json new file mode 100644 index 000000000..1c558dcd9 --- /dev/null +++ b/public/locales/cr/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "crwdns1376:0crwdne1376:0" + }, + "errors": { + "unmappedOptions": { + "text": "crwdns2807:0crwdne2807:0" + } + } +} diff --git a/public/locales/cr/modules/dashdot.json b/public/locales/cr/modules/dashdot.json new file mode 100644 index 000000000..0fbfc2831 --- /dev/null +++ b/public/locales/cr/modules/dashdot.json @@ -0,0 +1,118 @@ +{ + "descriptor": { + "name": "crwdns1378:0crwdne1378:0", + "description": "crwdns2695:0crwdne2695:0", + "settings": { + "title": "crwdns2039:0crwdne2039:0", + "dashName": { + "label": "crwdns2823:0crwdne2823:0" + }, + "url": { + "label": "crwdns1400:0crwdne1400:0" + }, + "usePercentages": { + "label": "crwdns2483:0crwdne2483:0" + }, + "columns": { + "label": "crwdns2625:0crwdne2625:0" + }, + "graphHeight": { + "label": "crwdns2627:0crwdne2627:0" + }, + "graphsOrder": { + "label": "crwdns2629:0crwdne2629:0", + "storage": { + "label": "crwdns2631:0crwdne2631:0", + "enabled": { + "label": "crwdns2633:0crwdne2633:0" + }, + "span": { + "label": "crwdns2635:0crwdne2635:0" + }, + "compactView": { + "label": "crwdns2637:0crwdne2637:0" + }, + "multiView": { + "label": "crwdns2639:0crwdne2639:0" + } + }, + "network": { + "label": "crwdns2641:0crwdne2641:0", + "enabled": { + "label": "crwdns2643:0crwdne2643:0" + }, + "span": { + "label": "crwdns2645:0crwdne2645:0" + }, + "compactView": { + "label": "crwdns2647:0crwdne2647:0" + } + }, + "cpu": { + "label": "crwdns2649:0crwdne2649:0", + "enabled": { + "label": "crwdns2651:0crwdne2651:0" + }, + "span": { + "label": "crwdns2653:0crwdne2653:0" + }, + "multiView": { + "label": "crwdns2655:0crwdne2655:0" + } + }, + "ram": { + "label": "crwdns2657:0crwdne2657:0", + "enabled": { + "label": "crwdns2659:0crwdne2659:0" + }, + "span": { + "label": "crwdns2661:0crwdne2661:0" + } + }, + "gpu": { + "label": "crwdns2663:0crwdne2663:0", + "enabled": { + "label": "crwdns2665:0crwdne2665:0" + }, + "span": { + "label": "crwdns2667:0crwdne2667:0" + } + } + } + } + }, + "card": { + "title": "crwdns1402:0crwdne1402:0", + "errors": { + "noService": "crwdns1694:0crwdne1694:0", + "noInformation": "crwdns1406:0crwdne1406:0", + "protocolDowngrade": { + "title": "crwdns2563:0crwdne2563:0", + "text": "crwdns2697:0crwdne2697:0" + } + }, + "graphs": { + "storage": { + "title": "crwdns1408:0crwdne1408:0", + "label": "crwdns1410:0crwdne1410:0" + }, + "network": { + "title": "crwdns1412:0crwdne1412:0", + "label": "crwdns1414:0crwdne1414:0", + "metrics": { + "download": "crwdns1416:0crwdne1416:0", + "upload": "crwdns1418:0crwdne1418:0" + } + }, + "cpu": { + "title": "crwdns1420:0crwdne1420:0" + }, + "ram": { + "title": "crwdns2669:0crwdne2669:0" + }, + "gpu": { + "title": "crwdns1424:0crwdne1424:0" + } + } + } +} diff --git a/public/locales/cr/modules/date.json b/public/locales/cr/modules/date.json new file mode 100644 index 000000000..164ecc1f4 --- /dev/null +++ b/public/locales/cr/modules/date.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "crwdns2339:0crwdne2339:0", + "description": "crwdns2341:0crwdne2341:0", + "settings": { + "title": "crwdns2343:0crwdne2343:0", + "display24HourFormat": { + "label": "crwdns1430:0crwdne1430:0" + }, + "dateFormat": { + "label": "crwdns3055:0crwdne3055:0", + "data": { + "hide": "crwdns3057:0crwdne3057:0" + } + }, + "enableTimezone": { + "label": "crwdns3059:0crwdne3059:0" + }, + "timezoneLocation": { + "label": "crwdns3061:0crwdne3061:0" + }, + "titleState": { + "label": "crwdns3063:0crwdne3063:0", + "info": "crwdns3065:0crwdne3065:0", + "data": { + "both": "crwdns3067:0crwdne3067:0", + "city": "crwdns3069:0crwdne3069:0", + "none": "crwdns3071:0crwdne3071:0" + } + } + } + } +} diff --git a/public/locales/cr/modules/dlspeed.json b/public/locales/cr/modules/dlspeed.json new file mode 100644 index 000000000..ef686036a --- /dev/null +++ b/public/locales/cr/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "crwdns1432:0crwdne1432:0", + "description": "crwdns2345:0crwdne2345:0" + }, + "card": { + "table": { + "header": { + "name": "crwdns1804:0crwdne1804:0", + "size": "crwdns1806:0crwdne1806:0", + "download": "crwdns1808:0crwdne1808:0", + "upload": "crwdns1810:0crwdne1810:0", + "estimatedTimeOfArrival": "crwdns1812:0crwdne1812:0", + "progress": "crwdns1814:0crwdne1814:0" + }, + "body": { + "nothingFound": "crwdns1816:0crwdne1816:0" + } + }, + "lineChart": { + "title": "crwdns1818:0crwdne1818:0", + "download": "crwdns1820:0{{download}}crwdne1820:0", + "upload": "crwdns1822:0{{upload}}crwdne1822:0", + "timeSpan": "crwdns1824:0{{seconds}}crwdne1824:0", + "totalDownload": "crwdns1826:0{{download}}crwdne1826:0", + "totalUpload": "crwdns1828:0{{upload}}crwdne1828:0" + }, + "errors": { + "noDownloadClients": { + "title": "crwdns1830:0crwdne1830:0", + "text": "crwdns1832:0crwdne1832:0" + } + } + } +} diff --git a/public/locales/cr/modules/dns-hole-controls.json b/public/locales/cr/modules/dns-hole-controls.json new file mode 100644 index 000000000..785317f45 --- /dev/null +++ b/public/locales/cr/modules/dns-hole-controls.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "crwdns2833:0crwdne2833:0", + "description": "crwdns2835:0crwdne2835:0", + "settings": { + "title": "crwdns3337:0crwdne3337:0", + "showToggleAllButtons": { + "label": "crwdns3339:0crwdne3339:0" + } + }, + "errors": { + "general": { + "title": "crwdns3860:0crwdne3860:0", + "text": "crwdns3862:0crwdne3862:0" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/dns-hole-summary.json b/public/locales/cr/modules/dns-hole-summary.json new file mode 100644 index 000000000..33e26a8b3 --- /dev/null +++ b/public/locales/cr/modules/dns-hole-summary.json @@ -0,0 +1,28 @@ +{ + "descriptor": { + "name": "crwdns2845:0crwdne2845:0", + "description": "crwdns2847:0crwdne2847:0", + "settings": { + "title": "crwdns2849:0crwdne2849:0", + "usePiHoleColors": { + "label": "crwdns2851:0crwdne2851:0" + }, + "layout": { + "label": "crwdns3077:0crwdne3077:0", + "data": { + "grid": "crwdns3079:0crwdne3079:0", + "row": "crwdns3081:0crwdne3081:0", + "column": "crwdns3083:0crwdne3083:0" + } + } + } + }, + "card": { + "metrics": { + "domainsOnAdlist": "crwdns2853:0crwdne2853:0", + "queriesToday": "crwdns2855:0crwdne2855:0", + "queriesBlockedTodayPercentage": "crwdns3894:0crwdne3894:0", + "queriesBlockedToday": "crwdns3896:0crwdne3896:0" + } + } +} diff --git a/public/locales/cr/modules/docker.json b/public/locales/cr/modules/docker.json new file mode 100644 index 000000000..9197a8d23 --- /dev/null +++ b/public/locales/cr/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "crwdns1436:0crwdne1436:0", + "description": "crwdns2347:0crwdne2347:0" + }, + "search": { + "placeholder": "crwdns1440:0crwdne1440:0" + }, + "table": { + "header": { + "name": "crwdns1442:0crwdne1442:0", + "image": "crwdns1444:0crwdne1444:0", + "ports": "crwdns1446:0crwdne1446:0", + "state": "crwdns1448:0crwdne1448:0" + }, + "body": { + "portCollapse": "crwdns1450:0{{ports}}crwdne1450:0" + }, + "states": { + "running": "crwdns1452:0crwdne1452:0", + "created": "crwdns1454:0crwdne1454:0", + "stopped": "crwdns1456:0crwdne1456:0", + "unknown": "crwdns1458:0crwdne1458:0" + } + }, + "actionBar": { + "addService": { + "title": "crwdns2349:0crwdne2349:0", + "message": "crwdns2451:0crwdne2451:0" + }, + "restart": { + "title": "crwdns1464:0crwdne1464:0" + }, + "stop": { + "title": "crwdns1466:0crwdne1466:0" + }, + "start": { + "title": "crwdns1468:0crwdne1468:0" + }, + "refreshData": { + "title": "crwdns1866:0crwdne1866:0" + }, + "remove": { + "title": "crwdns1474:0crwdne1474:0" + }, + "addToHomarr": { + "title": "crwdns1472:0crwdne1472:0" + } + }, + "actions": { + "start": { + "start": "crwdns1886:0crwdne1886:0", + "end": "crwdns1888:0crwdne1888:0" + }, + "stop": { + "start": "crwdns1890:0crwdne1890:0", + "end": "crwdns1892:0crwdne1892:0" + }, + "restart": { + "start": "crwdns1894:0crwdne1894:0", + "end": "crwdns1896:0crwdne1896:0" + }, + "remove": { + "start": "crwdns1898:0crwdne1898:0", + "end": "crwdns1900:0crwdne1900:0" + } + }, + "errors": { + "integrationFailed": { + "title": "crwdns1480:0crwdne1480:0", + "message": "crwdns2453:0crwdne2453:0" + }, + "unknownError": { + "title": "crwdns1484:0crwdne1484:0" + }, + "oneServiceAtATime": { + "title": "crwdns2355:0crwdne2355:0" + } + }, + "actionIcon": { + "tooltip": "crwdns1488:0crwdne1488:0" + } +} diff --git a/public/locales/cr/modules/iframe.json b/public/locales/cr/modules/iframe.json new file mode 100644 index 000000000..3d0479e47 --- /dev/null +++ b/public/locales/cr/modules/iframe.json @@ -0,0 +1,45 @@ +{ + "descriptor": { + "name": "crwdns2699:0crwdne2699:0", + "description": "crwdns2613:0crwdne2613:0", + "settings": { + "title": "crwdns2701:0crwdne2701:0", + "embedUrl": { + "label": "crwdns2617:0crwdne2617:0" + }, + "allowFullScreen": { + "label": "crwdns2619:0crwdne2619:0" + }, + "allowTransparency": { + "label": "crwdns2917:0crwdne2917:0" + }, + "allowScrolling": { + "label": "crwdns2919:0crwdne2919:0" + }, + "allowPayment": { + "label": "crwdns2921:0crwdne2921:0" + }, + "allowAutoPlay": { + "label": "crwdns2923:0crwdne2923:0" + }, + "allowMicrophone": { + "label": "crwdns2925:0crwdne2925:0" + }, + "allowCamera": { + "label": "crwdns2927:0crwdne2927:0" + }, + "allowGeolocation": { + "label": "crwdns2929:0crwdne2929:0" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "crwdns2931:0crwdne2931:0", + "text": "crwdns2623:0crwdne2623:0" + }, + "browserSupport": "crwdns3139:0crwdne3139:0" + } + } +} diff --git a/public/locales/cr/modules/media-requests-list.json b/public/locales/cr/modules/media-requests-list.json new file mode 100644 index 000000000..c3a945740 --- /dev/null +++ b/public/locales/cr/modules/media-requests-list.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "crwdns2753:0crwdne2753:0", + "description": "crwdns2755:0crwdne2755:0", + "settings": { + "title": "crwdns2757:0crwdne2757:0", + "replaceLinksWithExternalHost": { + "label": "crwdns2897:0crwdne2897:0" + }, + "openInNewTab": { + "label": "crwdns3313:0crwdne3313:0" + } + } + }, + "noRequests": "crwdns2759:0crwdne2759:0", + "state": { + "approved": "crwdns2765:0crwdne2765:0", + "pendingApproval": "crwdns2767:0crwdne2767:0", + "declined": "crwdns2769:0crwdne2769:0" + }, + "tooltips": { + "approve": "crwdns2893:0crwdne2893:0", + "decline": "crwdns2895:0crwdne2895:0", + "approving": "crwdns3141:0crwdne3141:0" + }, + "mutation": { + "approving": "crwdns3143:0crwdne3143:0", + "declining": "crwdns3145:0crwdne3145:0", + "request": "crwdns3147:0crwdne3147:0", + "approved": "crwdns3149:0crwdne3149:0", + "declined": "crwdns3151:0crwdne3151:0" + } +} diff --git a/public/locales/cr/modules/media-requests-stats.json b/public/locales/cr/modules/media-requests-stats.json new file mode 100644 index 000000000..5be3931ce --- /dev/null +++ b/public/locales/cr/modules/media-requests-stats.json @@ -0,0 +1,27 @@ +{ + "descriptor": { + "name": "crwdns2771:0crwdne2771:0", + "description": "crwdns2773:0crwdne2773:0", + "settings": { + "title": "crwdns2775:0crwdne2775:0", + "replaceLinksWithExternalHost": { + "label": "crwdns3315:0crwdne3315:0" + }, + "openInNewTab": { + "label": "crwdns3317:0crwdne3317:0" + } + } + }, + "mediaStats": { + "title": "crwdns3319:0crwdne3319:0", + "pending": "crwdns3321:0crwdne3321:0", + "tvRequests": "crwdns3323:0crwdne3323:0", + "movieRequests": "crwdns3325:0crwdne3325:0", + "approved": "crwdns3327:0crwdne3327:0", + "totalRequests": "crwdns3329:0crwdne3329:0" + }, + "userStats": { + "title": "crwdns3331:0crwdne3331:0", + "requests": "crwdns3333:0{{number}}crwdne3333:0" + } +} diff --git a/public/locales/cr/modules/media-server.json b/public/locales/cr/modules/media-server.json new file mode 100644 index 000000000..6d099cd6a --- /dev/null +++ b/public/locales/cr/modules/media-server.json @@ -0,0 +1,25 @@ +{ + "descriptor": { + "name": "crwdns2595:0crwdne2595:0", + "description": "crwdns2597:0crwdne2597:0", + "settings": { + "title": "crwdns2599:0crwdne2599:0" + } + }, + "loading": "crwdns3187:0crwdne3187:0", + "card": { + "table": { + "header": { + "session": "crwdns2601:0crwdne2601:0", + "user": "crwdns2603:0crwdne2603:0", + "currentlyPlaying": "crwdns2605:0crwdne2605:0" + } + }, + "errors": { + "general": { + "title": "crwdns2607:0crwdne2607:0", + "text": "crwdns2609:0crwdne2609:0" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/notebook.json b/public/locales/cr/modules/notebook.json new file mode 100644 index 000000000..c05e3a096 --- /dev/null +++ b/public/locales/cr/modules/notebook.json @@ -0,0 +1,59 @@ +{ + "descriptor": { + "name": "crwdns3085:0crwdne3085:0", + "description": "crwdns3087:0crwdne3087:0", + "settings": { + "title": "crwdns3089:0crwdne3089:0", + "showToolbar": { + "label": "crwdns3091:0crwdne3091:0" + }, + "allowReadOnlyCheck": { + "label": "crwdns3914:0crwdne3914:0" + }, + "content": { + "label": "crwdns3093:0crwdne3093:0" + } + } + }, + "card": { + "controls": { + "bold": "crwdns3916:0crwdne3916:0", + "italic": "crwdns3918:0crwdne3918:0", + "strikethrough": "crwdns3920:0crwdne3920:0", + "underline": "crwdns3922:0crwdne3922:0", + "colorText": "crwdns3924:0crwdne3924:0", + "colorHighlight": "crwdns3926:0crwdne3926:0", + "code": "crwdns3928:0crwdne3928:0", + "clear": "crwdns3930:0crwdne3930:0", + "heading": "crwdns3932:0{{level}}crwdne3932:0", + "align": "crwdns3934:0{{position}}crwdne3934:0", + "blockquote": "crwdns3936:0crwdne3936:0", + "horizontalLine": "crwdns3938:0crwdne3938:0", + "bulletList": "crwdns3940:0crwdne3940:0", + "orderedList": "crwdns3942:0crwdne3942:0", + "checkList": "crwdns3944:0crwdne3944:0", + "increaseIndent": "crwdns3946:0crwdne3946:0", + "decreaseIndent": "crwdns3948:0crwdne3948:0", + "link": "crwdns3950:0crwdne3950:0", + "unlink": "crwdns3952:0crwdne3952:0", + "image": "crwdns3954:0crwdne3954:0", + "addTable": "crwdns3956:0crwdne3956:0", + "deleteTable": "crwdns3958:0crwdne3958:0", + "colorCell": "crwdns3960:0crwdne3960:0", + "mergeCell": "crwdns3962:0crwdne3962:0", + "addColumnLeft": "crwdns3964:0crwdne3964:0", + "addColumnRight": "crwdns3966:0crwdne3966:0", + "deleteColumn": "crwdns3968:0crwdne3968:0", + "addRowTop": "crwdns3970:0crwdne3970:0", + "addRowBelow": "crwdns3972:0crwdne3972:0", + "deleteRow": "crwdns3974:0crwdne3974:0" + }, + "modals": { + "clearColor": "crwdns3976:0crwdne3976:0", + "source": "crwdns3978:0crwdne3978:0", + "widthPlaceholder": "crwdns3980:0crwdne3980:0", + "columns": "crwdns3982:0crwdne3982:0", + "rows": "crwdns3984:0crwdne3984:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/overseerr.json b/public/locales/cr/modules/overseerr.json new file mode 100644 index 000000000..7fa676371 --- /dev/null +++ b/public/locales/cr/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "crwdns1490:0crwdne1490:0", + "description": "crwdns2357:0crwdne2357:0" + }, + "popup": { + "item": { + "buttons": { + "askFor": "crwdns1494:0{{title}}crwdne1494:0", + "cancel": "crwdns1496:0crwdne1496:0", + "request": "crwdns1498:0crwdne1498:0" + }, + "alerts": { + "automaticApproval": { + "title": "crwdns1500:0crwdne1500:0", + "text": "crwdns1502:0crwdne1502:0" + } + } + }, + "seasonSelector": { + "caption": "crwdns2359:0crwdne2359:0", + "table": { + "header": { + "season": "crwdns1506:0crwdne1506:0", + "numberOfEpisodes": "crwdns1508:0crwdne1508:0" + } + } + } + } +} diff --git a/public/locales/cr/modules/ping.json b/public/locales/cr/modules/ping.json new file mode 100644 index 000000000..df2ea8d0a --- /dev/null +++ b/public/locales/cr/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "crwdns1510:0crwdne1510:0", + "description": "crwdns2703:0crwdne2703:0" + }, + "states": { + "online": "crwdns1514:0{{response}}crwdne1514:0", + "offline": "crwdns1516:0{{response}}crwdne1516:0", + "loading": "crwdns1518:0crwdne1518:0" + } +} diff --git a/public/locales/cr/modules/rss.json b/public/locales/cr/modules/rss.json new file mode 100644 index 000000000..b9ef20079 --- /dev/null +++ b/public/locales/cr/modules/rss.json @@ -0,0 +1,31 @@ +{ + "descriptor": { + "name": "crwdns2583:0crwdne2583:0", + "description": "crwdns3872:0crwdne3872:0", + "settings": { + "title": "crwdns2587:0crwdne2587:0", + "rssFeedUrl": { + "label": "crwdns2819:0crwdne2819:0", + "description": "crwdns2821:0crwdne2821:0" + }, + "refreshInterval": { + "label": "crwdns2787:0crwdne2787:0" + }, + "dangerousAllowSanitizedItemContent": { + "label": "crwdns3189:0crwdne3189:0", + "info": "crwdns3191:0crwdne3191:0" + }, + "textLinesClamp": { + "label": "crwdns2933:0crwdne2933:0" + } + }, + "card": { + "errors": { + "general": { + "title": "crwdns2789:0crwdne2789:0", + "text": "crwdns2791:0crwdne2791:0" + } + } + } + } +} diff --git a/public/locales/cr/modules/search.json b/public/locales/cr/modules/search.json new file mode 100644 index 000000000..cd6fab732 --- /dev/null +++ b/public/locales/cr/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "crwdns1520:0crwdne1520:0", + "description": "crwdns2363:0crwdne2363:0" + }, + "input": { + "placeholder": "crwdns1524:0crwdne1524:0" + }, + "switched-to": "crwdns1927:0crwdne1927:0", + "searchEngines": { + "search": { + "name": "crwdns1929:0crwdne1929:0", + "description": "crwdns2365:0crwdne2365:0" + }, + "youtube": { + "name": "crwdns1933:0crwdne1933:0", + "description": "crwdns1935:0crwdne1935:0" + }, + "torrents": { + "name": "crwdns1937:0crwdne1937:0", + "description": "crwdns1939:0crwdne1939:0" + }, + "overseerr": { + "name": "crwdns1941:0crwdne1941:0", + "description": "crwdns2367:0crwdne2367:0" + } + }, + "tip": "crwdns1945:0crwdne1945:0", + "switchedSearchEngine": "crwdns1947:0{{searchEngine}}crwdne1947:0" +} diff --git a/public/locales/cr/modules/torrents-status.json b/public/locales/cr/modules/torrents-status.json new file mode 100644 index 000000000..12e166623 --- /dev/null +++ b/public/locales/cr/modules/torrents-status.json @@ -0,0 +1,93 @@ +{ + "descriptor": { + "name": "crwdns2283:0crwdne2283:0", + "description": "crwdns2369:0crwdne2369:0", + "settings": { + "title": "crwdns2371:0crwdne2371:0", + "refreshInterval": { + "label": "crwdns2219:0crwdne2219:0" + }, + "displayCompletedTorrents": { + "label": "crwdns2221:0crwdne2221:0" + }, + "displayActiveTorrents": { + "label": "crwdns3986:0crwdne3986:0" + }, + "speedLimitOfActiveTorrents": { + "label": "crwdns3988:0crwdne3988:0" + }, + "displayStaleTorrents": { + "label": "crwdns2223:0crwdne2223:0" + }, + "labelFilterIsWhitelist": { + "label": "crwdns2825:0crwdne2825:0" + }, + "labelFilter": { + "label": "crwdns2827:0crwdne2827:0", + "description": "crwdns2829:0crwdne2829:0" + }, + "displayRatioWithFilter": { + "label": "crwdns4000:0crwdne4000:0", + "info": "crwdns4002:0crwdne4002:0" + } + } + }, + "card": { + "footer": { + "error": "crwdns2457:0crwdne2457:0", + "lastUpdated": "crwdns2459:0{{time}}crwdne2459:0", + "ratioGlobal": "crwdns4004:0crwdne4004:0", + "ratioWithFilter": "crwdns4006:0crwdne4006:0" + }, + "table": { + "header": { + "name": "crwdns2225:0crwdne2225:0", + "size": "crwdns2227:0crwdne2227:0", + "download": "crwdns2229:0crwdne2229:0", + "upload": "crwdns2231:0crwdne2231:0", + "estimatedTimeOfArrival": "crwdns2233:0crwdne2233:0", + "progress": "crwdns2235:0crwdne2235:0" + }, + "item": { + "text": "crwdns2461:0{{appName}}crwdnd2461:0{{ratio}}crwdne2461:0" + }, + "body": { + "nothingFound": "crwdns2237:0crwdne2237:0", + "filterHidingItems": "crwdns2831:0{{count}}crwdne2831:0" + } + }, + "lineChart": { + "title": "crwdns2239:0crwdne2239:0", + "download": "crwdns2241:0{{download}}crwdne2241:0", + "upload": "crwdns2243:0{{upload}}crwdne2243:0", + "timeSpan": "crwdns2245:0{{seconds}}crwdne2245:0", + "totalDownload": "crwdns2247:0{{download}}crwdne2247:0", + "totalUpload": "crwdns2249:0{{upload}}crwdne2249:0" + }, + "errors": { + "noDownloadClients": { + "title": "crwdns2373:0crwdne2373:0", + "text": "crwdns2375:0crwdne2375:0" + }, + "generic": { + "title": "crwdns2707:0crwdne2707:0", + "text": "crwdns3193:0crwdne3193:0" + } + }, + "loading": { + "title": "crwdns3195:0crwdne3195:0", + "description": "crwdns3197:0crwdne3197:0" + }, + "popover": { + "introductionPrefix": "crwdns2463:0crwdne2463:0", + "metrics": { + "queuePosition": "crwdns2465:0{{position}}crwdne2465:0", + "progress": "crwdns2467:0{{progress}}crwdne2467:0", + "totalSelectedSize": "crwdns2469:0{{totalSize}}crwdne2469:0", + "state": "crwdns2471:0{{state}}crwdne2471:0", + "ratio": "crwdns2473:0crwdne2473:0", + "completed": "crwdns2475:0crwdne2475:0" + } + } + } +} diff --git a/public/locales/cr/modules/usenet.json b/public/locales/cr/modules/usenet.json new file mode 100644 index 000000000..9946c14f2 --- /dev/null +++ b/public/locales/cr/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "crwdns1923:0crwdne1923:0", + "description": "crwdns2379:0crwdne2379:0" + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "crwdns1710:0crwdne1710:0", + "text": "crwdns2381:0crwdne2381:0" + } + } + }, + "tabs": { + "queue": "crwdns1834:0crwdne1834:0", + "history": "crwdns1836:0crwdne1836:0" + }, + "info": { + "sizeLeft": "crwdns1838:0crwdne1838:0", + "paused": "crwdns1840:0crwdne1840:0" + }, + "queue": { + "header": { + "name": "crwdns1722:0crwdne1722:0", + "size": "crwdns1724:0crwdne1724:0", + "eta": "crwdns1726:0crwdne1726:0", + "progress": "crwdns1728:0crwdne1728:0" + }, + "empty": "crwdns1842:0crwdne1842:0", + "error": { + "title": "crwdns1844:0crwdne1844:0", + "message": "crwdns1846:0crwdne1846:0" + }, + "paused": "crwdns1848:0crwdne1848:0" + }, + "history": { + "header": { + "name": "crwdns1738:0crwdne1738:0", + "size": "crwdns1740:0crwdne1740:0", + "duration": "crwdns1850:0crwdne1850:0" + }, + "empty": "crwdns1852:0crwdne1852:0", + "error": { + "title": "crwdns1854:0crwdne1854:0", + "message": "crwdns1856:0crwdne1856:0" + }, + "paused": "crwdns1858:0crwdne1858:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/video-stream.json b/public/locales/cr/modules/video-stream.json new file mode 100644 index 000000000..28dafc9a0 --- /dev/null +++ b/public/locales/cr/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "crwdns2567:0crwdne2567:0", + "description": "crwdns2569:0crwdne2569:0", + "settings": { + "title": "crwdns2571:0crwdne2571:0", + "FeedUrl": { + "label": "crwdns2709:0crwdne2709:0" + }, + "autoPlay": { + "label": "crwdns2711:0crwdne2711:0" + }, + "muted": { + "label": "crwdns2577:0crwdne2577:0" + }, + "controls": { + "label": "crwdns2579:0crwdne2579:0" + } + } + }, + "errors": { + "invalidStream": "crwdns2581:0crwdne2581:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/modules/weather.json b/public/locales/cr/modules/weather.json new file mode 100644 index 000000000..3ccc5117e --- /dev/null +++ b/public/locales/cr/modules/weather.json @@ -0,0 +1,37 @@ +{ + "descriptor": { + "name": "crwdns1562:0crwdne1562:0", + "description": "crwdns2383:0crwdne2383:0", + "settings": { + "title": "crwdns2385:0crwdne2385:0", + "displayInFahrenheit": { + "label": "crwdns1566:0crwdne1566:0" + }, + "displayCityName": { + "label": "crwdns3047:0crwdne3047:0" + }, + "location": { + "label": "crwdns1568:0crwdne1568:0" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "crwdns1570:0crwdne1570:0", + "mainlyClear": "crwdns1572:0crwdne1572:0", + "fog": "crwdns1574:0crwdne1574:0", + "drizzle": "crwdns1576:0crwdne1576:0", + "freezingDrizzle": "crwdns1578:0crwdne1578:0", + "rain": "crwdns1580:0crwdne1580:0", + "freezingRain": "crwdns1582:0crwdne1582:0", + "snowFall": "crwdns1584:0crwdne1584:0", + "snowGrains": "crwdns1586:0crwdne1586:0", + "rainShowers": "crwdns1588:0crwdne1588:0", + "snowShowers": "crwdns1590:0crwdne1590:0", + "thunderstorm": "crwdns1592:0crwdne1592:0", + "thunderstormWithHail": "crwdns1594:0crwdne1594:0", + "unknown": "crwdns1596:0crwdne1596:0" + } + }, + "error": "crwdns3858:0crwdne3858:0" +} diff --git a/public/locales/cr/password-requirements.json b/public/locales/cr/password-requirements.json new file mode 100644 index 000000000..55440a00b --- /dev/null +++ b/public/locales/cr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "crwdns3841:0crwdne3841:0", + "lowercase": "crwdns3843:0crwdne3843:0", + "uppercase": "crwdns3845:0crwdne3845:0", + "special": "crwdns3847:0crwdne3847:0", + "length": "crwdns3849:0{{count}}crwdne3849:0" +} \ No newline at end of file diff --git a/public/locales/cr/settings/common.json b/public/locales/cr/settings/common.json new file mode 100644 index 000000000..19f8af6df --- /dev/null +++ b/public/locales/cr/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "crwdns1598:0crwdne1598:0", + "tooltip": "crwdns1600:0crwdne1600:0", + "tabs": { + "common": "crwdns1602:0crwdne1602:0", + "customizations": "crwdns1604:0crwdne1604:0" + }, + "tips": { + "configTip": "crwdns2387:0crwdne2387:0" + }, + "credits": { + "madeWithLove": "crwdns1608:0crwdne1608:0", + "thirdPartyContent": "crwdns2485:0crwdne2485:0", + "thirdPartyContentTable": { + "dependencyName": "crwdns2487:0crwdne2487:0", + "dependencyVersion": "crwdns2489:0crwdne2489:0" + } + }, + "grow": "crwdns1949:0crwdne1949:0", + "layout": { + "preview": { + "title": "crwdns2543:0crwdne2543:0", + "subtitle": "crwdns2545:0crwdne2545:0" + }, + "divider": "crwdns2547:0crwdne2547:0", + "main": "crwdns2117:0crwdne2117:0", + "sidebar": "crwdns2119:0crwdne2119:0", + "cannotturnoff": "crwdns2121:0crwdne2121:0", + "dashboardlayout": "crwdns2123:0crwdne2123:0", + "enablersidebar": "crwdns2125:0crwdne2125:0", + "enablelsidebar": "crwdns2127:0crwdne2127:0", + "enablesearchbar": "crwdns2129:0crwdne2129:0", + "enabledocker": "crwdns2131:0crwdne2131:0", + "enableping": "crwdns2133:0crwdne2133:0", + "enablelsidebardesc": "crwdns2135:0crwdne2135:0", + "enablersidebardesc": "crwdns2137:0crwdne2137:0" + } +} diff --git a/public/locales/cr/settings/customization/access.json b/public/locales/cr/settings/customization/access.json new file mode 100644 index 000000000..4bbcbcbc4 --- /dev/null +++ b/public/locales/cr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "crwdns3851:0crwdne3851:0", + "description": "crwdns3853:0crwdne3853:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/settings/customization/general.json b/public/locales/cr/settings/customization/general.json new file mode 100644 index 000000000..9d73fe9c2 --- /dev/null +++ b/public/locales/cr/settings/customization/general.json @@ -0,0 +1,29 @@ +{ + "text": "crwdns2493:0crwdne2493:0", + "accordeon": { + "layout": { + "name": "crwdns2495:0crwdne2495:0", + "description": "crwdns2497:0crwdne2497:0" + }, + "gridstack": { + "name": "crwdns2499:0crwdne2499:0", + "description": "crwdns2501:0crwdne2501:0" + }, + "pageMetadata": { + "name": "crwdns2503:0crwdne2503:0", + "description": "crwdns2505:0crwdne2505:0" + }, + "appereance": { + "name": "crwdns2713:0crwdne2713:0", + "description": "crwdns2715:0crwdne2715:0" + }, + "accessibility": { + "name": "crwdns2989:0crwdne2989:0", + "description": "crwdns2991:0crwdne2991:0" + }, + "access": { + "name": "crwdns3898:0crwdne3898:0", + "description": "crwdns3857:0crwdne3857:0" + } + } +} diff --git a/public/locales/cr/settings/customization/gridstack.json b/public/locales/cr/settings/customization/gridstack.json new file mode 100644 index 000000000..19a6aab35 --- /dev/null +++ b/public/locales/cr/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "crwdns2511:0{{size}}crwdne2511:0", + "descriptionPreset": "crwdns2513:0{{pixels}}crwdne2513:0", + "descriptionExceedsPreset": "crwdns2515:0{{pixels}}crwdne2515:0" + }, + "unsavedChanges": "crwdns2517:0crwdne2517:0", + "applyChanges": "crwdns2519:0crwdne2519:0", + "defaultValues": "crwdns2521:0crwdne2521:0" +} \ No newline at end of file diff --git a/public/locales/cr/settings/customization/opacity-selector.json b/public/locales/cr/settings/customization/opacity-selector.json new file mode 100644 index 000000000..f2ee5c960 --- /dev/null +++ b/public/locales/cr/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "crwdns1614:0crwdne1614:0" +} \ No newline at end of file diff --git a/public/locales/cr/settings/customization/page-appearance.json b/public/locales/cr/settings/customization/page-appearance.json new file mode 100644 index 000000000..a06ab514b --- /dev/null +++ b/public/locales/cr/settings/customization/page-appearance.json @@ -0,0 +1,27 @@ +{ + "pageTitle": { + "label": "crwdns1616:0crwdne1616:0", + "description": "crwdns2551:0crwdne2551:0" + }, + "metaTitle": { + "label": "crwdns1953:0crwdne1953:0", + "description": "crwdns2717:0crwdne2717:0" + }, + "logo": { + "label": "crwdns1620:0crwdne1620:0", + "description": "crwdns2719:0crwdne2719:0" + }, + "favicon": { + "label": "crwdns1624:0crwdne1624:0", + "description": "crwdns2721:0crwdne2721:0" + }, + "background": { + "label": "crwdns1628:0crwdne1628:0" + }, + "customCSS": { + "label": "crwdns1702:0crwdne1702:0", + "description": "crwdns2723:0crwdne2723:0", + "placeholder": "crwdns2389:0crwdne2389:0", + "applying": "crwdns2561:0crwdne2561:0" + } +} \ No newline at end of file diff --git a/public/locales/cr/settings/customization/shade-selector.json b/public/locales/cr/settings/customization/shade-selector.json new file mode 100644 index 000000000..42229596a --- /dev/null +++ b/public/locales/cr/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "crwdns1634:0crwdne1634:0" +} \ No newline at end of file diff --git a/public/locales/cr/settings/general/cache-buttons.json b/public/locales/cr/settings/general/cache-buttons.json new file mode 100644 index 000000000..3a0a1a656 --- /dev/null +++ b/public/locales/cr/settings/general/cache-buttons.json @@ -0,0 +1,24 @@ +{ + "title": "crwdns3283:0crwdne3283:0", + "selector": { + "label": "crwdns3285:0crwdne3285:0", + "data": { + "ping": "crwdns3287:0crwdne3287:0", + "repositoryIcons": "crwdns3289:0crwdne3289:0", + "calendar&medias": "crwdns3291:0crwdne3291:0", + "weather": "crwdns3293:0crwdne3293:0" + } + }, + "buttons": { + "notificationTitle": "crwdns3295:0crwdne3295:0", + "clearAll": { + "text": "crwdns3297:0crwdne3297:0", + "notificationMessage": "crwdns3299:0crwdne3299:0" + }, + "clearSelect": { + "text": "crwdns3301:0crwdne3301:0", + "notificationMessageSingle": "crwdns3303:0{{value}}crwdne3303:0", + "notificationMessageMulti": "crwdns3305:0{{values}}crwdne3305:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/settings/general/config-changer.json b/public/locales/cr/settings/general/config-changer.json new file mode 100644 index 000000000..5d5c3fc9b --- /dev/null +++ b/public/locales/cr/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "crwdns2391:0crwdne2391:0", + "description": "crwdns2417:0{{configCount}}crwdne2417:0", + "loadingNew": "crwdns1957:0crwdne1957:0", + "pleaseWait": "crwdns2393:0crwdne2393:0" + }, + "modal": { + "copy": { + "title": "crwdns2419:0crwdne2419:0", + "form": { + "configName": { + "label": "crwdns2421:0crwdne2421:0", + "validation": { + "required": "crwdns2423:0crwdne2423:0", + "notUnique": "crwdns2449:0crwdne2449:0" + }, + "placeholder": "crwdns2425:0crwdne2425:0" + }, + "submitButton": "crwdns2427:0crwdne2427:0" + }, + "events": { + "configSaved": { + "title": "crwdns2429:0crwdne2429:0", + "message": "crwdns2431:0{{configName}}crwdne2431:0" + }, + "configCopied": { + "title": "crwdns2433:0crwdne2433:0", + "message": "crwdns2435:0{{configName}}crwdne2435:0" + }, + "configNotCopied": { + "title": "crwdns2437:0crwdne2437:0", + "message": "crwdns2439:0{{configName}}crwdne2439:0" + } + } + }, + "confirmDeletion": { + "title": "crwdns2441:0crwdne2441:0", + "warningText": "crwdns2725:0{{configName}}crwdne2725:0", + "text": "crwdns2727:0crwdne2727:0", + "buttons": { + "confirm": "crwdns2447:0{{configName}}crwdne2447:0" + } + } + }, + "buttons": { + "download": "crwdns1652:0crwdne1652:0", + "delete": { + "text": "crwdns1654:0crwdne1654:0", + "notifications": { + "deleted": { + "title": "crwdns1656:0crwdne1656:0", + "message": "crwdns1658:0crwdne1658:0" + }, + "deleteFailed": { + "title": "crwdns1660:0crwdne1660:0", + "message": "crwdns1662:0crwdne1662:0" + }, + "deleteFailedDefaultConfig": { + "title": "crwdns2729:0crwdne2729:0", + "message": "crwdns2415:0crwdne2415:0" + } + } + }, + "saveCopy": "crwdns1664:0crwdne1664:0" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "crwdns1666:0crwdne1666:0", + "message": "crwdns1668:0crwdne1668:0" + }, + "loadedSuccessfully": { + "title": "crwdns1670:0{{configName}}crwdne1670:0" + } + }, + "accept": { + "title": "crwdns1971:0crwdne1971:0", + "text": "crwdns2395:0crwdne2395:0" + }, + "reject": { + "title": "crwdns1973:0crwdne1973:0", + "text": "crwdns2397:0crwdne2397:0" + } + } +} diff --git a/public/locales/cr/settings/general/edit-mode-toggle.json b/public/locales/cr/settings/general/edit-mode-toggle.json new file mode 100644 index 000000000..a7f6af1bf --- /dev/null +++ b/public/locales/cr/settings/general/edit-mode-toggle.json @@ -0,0 +1,22 @@ +{ + "menu": { + "toggle": "crwdns3255:0crwdne3255:0", + "enable": "crwdns3257:0crwdne3257:0", + "disable": "crwdns3259:0crwdne3259:0" + }, + "form": { + "label": "crwdns3261:0crwdne3261:0", + "message": "crwdns3263:0crwdne3263:0", + "submit": "crwdns3265:0crwdne3265:0" + }, + "notification": { + "success": { + "title": "crwdns3267:0crwdne3267:0", + "message": "crwdns3269:0crwdne3269:0" + }, + "error": { + "title": "crwdns3271:0crwdne3271:0", + "message": "crwdns3273:0crwdne3273:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/settings/general/internationalization.json b/public/locales/cr/settings/general/internationalization.json new file mode 100644 index 000000000..715f20270 --- /dev/null +++ b/public/locales/cr/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "crwdns1676:0crwdne1676:0" +} \ No newline at end of file diff --git a/public/locales/cr/settings/general/search-engine.json b/public/locales/cr/settings/general/search-engine.json new file mode 100644 index 000000000..2867f9c95 --- /dev/null +++ b/public/locales/cr/settings/general/search-engine.json @@ -0,0 +1,20 @@ +{ + "title": "crwdns1680:0crwdne1680:0", + "configurationName": "crwdns2265:0crwdne2265:0", + "custom": "crwdns3307:0crwdne3307:0", + "tips": { + "generalTip": "crwdns2731:0crwdne2731:0", + "placeholderTip": "crwdns1684:0%scrwdne1684:0" + }, + "customEngine": { + "title": "crwdns1977:0crwdne1977:0", + "label": "crwdns1686:0crwdne1686:0", + "placeholder": "crwdns1688:0crwdne1688:0" + }, + "searchNewTab": { + "label": "crwdns1908:0crwdne1908:0" + }, + "searchEnabled": { + "label": "crwdns1979:0crwdne1979:0" + } +} diff --git a/public/locales/cr/settings/general/widget-positions.json b/public/locales/cr/settings/general/widget-positions.json new file mode 100644 index 000000000..e34115a39 --- /dev/null +++ b/public/locales/cr/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "crwdns2401:0crwdne2401:0" +} diff --git a/public/locales/cr/tools/docker.json b/public/locales/cr/tools/docker.json new file mode 100644 index 000000000..998b0210e --- /dev/null +++ b/public/locales/cr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "crwdns3821:0crwdne3821:0", + "alerts": { + "notConfigured": { + "text": "crwdns3823:0crwdne3823:0" + } + }, + "modals": { + "selectBoard": { + "title": "crwdns3825:0crwdne3825:0", + "text": "crwdns3827:0crwdne3827:0", + "form": { + "board": { + "label": "crwdns3829:0crwdne3829:0" + }, + "submit": "crwdns3831:0crwdne3831:0" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "crwdns3833:0crwdne3833:0", + "message": "crwdns3835:0crwdne3835:0" + }, + "error": { + "title": "crwdns3837:0crwdne3837:0", + "message": "crwdns3839:0crwdne3839:0" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cr/user/preferences.json b/public/locales/cr/user/preferences.json new file mode 100644 index 000000000..489ff35ce --- /dev/null +++ b/public/locales/cr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "crwdns3379:0crwdne3379:0", + "pageTitle": "crwdns3381:0crwdne3381:0", + "boards": { + "defaultBoard": { + "label": "crwdns3383:0crwdne3383:0" + } + }, + "accessibility": { + "title": "crwdns3385:0crwdne3385:0", + "disablePulse": { + "label": "crwdns3387:0crwdne3387:0", + "description": "crwdns3389:0crwdne3389:0" + }, + "replaceIconsWithDots": { + "label": "crwdns3391:0crwdne3391:0", + "description": "crwdns3393:0crwdne3393:0" + } + }, + "localization": { + "language": { + "label": "crwdns3395:0crwdne3395:0" + }, + "firstDayOfWeek": { + "label": "crwdns3397:0crwdne3397:0", + "options": { + "monday": "crwdns3399:0crwdne3399:0", + "saturday": "crwdns3401:0crwdne3401:0", + "sunday": "crwdns3403:0crwdne3403:0" + } + } + }, + "searchEngine": { + "title": "crwdns3405:0crwdne3405:0", + "custom": "crwdns3407:0crwdne3407:0", + "newTab": { + "label": "crwdns3409:0crwdne3409:0" + }, + "autoFocus": { + "label": "crwdns3411:0crwdne3411:0", + "description": "crwdns3413:0crwdne3413:0" + }, + "template": { + "label": "crwdns3415:0crwdne3415:0", + "description": "crwdns3417:0%scrwdne3417:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cr/widgets/draggable-list.json b/public/locales/cr/widgets/draggable-list.json new file mode 100644 index 000000000..fc68ff7e9 --- /dev/null +++ b/public/locales/cr/widgets/draggable-list.json @@ -0,0 +1,7 @@ +{ + "noEntries": { + "title": "crwdns2877:0crwdne2877:0", + "text": "crwdns2879:0crwdne2879:0" + }, + "buttonAdd": "crwdns2881:0crwdne2881:0" +} diff --git a/public/locales/cr/widgets/error-boundary.json b/public/locales/cr/widgets/error-boundary.json new file mode 100644 index 000000000..b0ee0b023 --- /dev/null +++ b/public/locales/cr/widgets/error-boundary.json @@ -0,0 +1,14 @@ +{ + "card": { + "title": "crwdns2733:0crwdne2733:0", + "buttons": { + "details": "crwdns2735:0crwdne2735:0", + "tryAgain": "crwdns2737:0crwdne2737:0" + } + }, + "modal": { + "text": "crwdns2949:0crwdne2949:0", + "label": "crwdns2741:0crwdne2741:0", + "reportButton": "crwdns2743:0crwdne2743:0" + } +} diff --git a/public/locales/cr/zod.json b/public/locales/cr/zod.json new file mode 100644 index 000000000..ec6f2d529 --- /dev/null +++ b/public/locales/cr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "crwdns3351:0crwdne3351:0", + "required": "crwdns3353:0crwdne3353:0", + "string": { + "startsWith": "crwdns3355:0{{startsWith}}crwdne3355:0", + "endsWith": "crwdns3357:0{{endsWith}}crwdne3357:0", + "includes": "crwdns3359:0{{includes}}crwdne3359:0" + }, + "tooSmall": { + "string": "crwdns3361:0{{minimum}}crwdne3361:0", + "number": "crwdns3363:0{{minimum}}crwdne3363:0" + }, + "tooBig": { + "string": "crwdns3365:0{{maximum}}crwdne3365:0", + "number": "crwdns3367:0{{maximum}}crwdne3367:0" + }, + "custom": { + "passwordMatch": "crwdns3369:0crwdne3369:0" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/authentication/invite.json b/public/locales/cs/authentication/invite.json new file mode 100644 index 000000000..2d73966c2 --- /dev/null +++ b/public/locales/cs/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "" + }, + "password": { + "label": "" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/authentication/login.json b/public/locales/cs/authentication/login.json new file mode 100644 index 000000000..e719a0981 --- /dev/null +++ b/public/locales/cs/authentication/login.json @@ -0,0 +1,20 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "" + }, + "password": { + "label": "" + } + }, + "buttons": { + "submit": "" + }, + "afterLoginRedirection": "" + }, + "alert": "" +} \ No newline at end of file diff --git a/public/locales/cs/boards/common.json b/public/locales/cs/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/cs/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/boards/customize.json b/public/locales/cs/boards/customize.json new file mode 100644 index 000000000..67fbe9da0 --- /dev/null +++ b/public/locales/cs/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "Přizpůsobení {{name}} plochy", + "backToBoard": "Zpět na plochu", + "settings": { + "appearance": { + "primaryColor": "Primární barva", + "secondaryColor": "Doplňková barva" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json new file mode 100644 index 000000000..69e78f046 --- /dev/null +++ b/public/locales/cs/common.json @@ -0,0 +1,55 @@ +{ + "save": "", + "apply": "", + "insert": "", + "about": "", + "cancel": "", + "close": "", + "back": "", + "delete": "", + "ok": "", + "edit": "", + "next": "", + "previous": "", + "confirm": "", + "enabled": "", + "disabled": "", + "enableAll": "", + "disableAll": "", + "version": "", + "changePosition": "", + "remove": "", + "removeConfirm": "", + "createItem": "", + "sections": { + "settings": "", + "dangerZone": "" + }, + "secrets": { + "apiKey": "", + "username": "", + "password": "" + }, + "tip": "", + "time": { + "seconds": "", + "minutes": "", + "hours": "" + }, + "loading": "", + "breakPoints": { + "small": "malý", + "medium": "střední", + "large": "velký" + }, + "seeMore": "", + "position": { + "left": "", + "center": "", + "right": "" + }, + "attributes": { + "width": "", + "height": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/layout/common.json b/public/locales/cs/layout/common.json new file mode 100644 index 000000000..4f4c4e6b4 --- /dev/null +++ b/public/locales/cs/layout/common.json @@ -0,0 +1,25 @@ +{ + "modals": { + "blockedPopups": { + "title": "", + "text": "", + "list": { + "browserPermission": "", + "adBlockers": "", + "otherBrowser": "" + } + } + }, + "actions": { + "category": { + "openAllInNewTab": "" + } + }, + "menu": { + "moveUp": "", + "moveDown": "", + "addCategory": "", + "addAbove": "", + "addBelow": "" + } +} \ 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 new file mode 100644 index 000000000..6dd6ad716 --- /dev/null +++ b/public/locales/cs/layout/element-selector/selector.json @@ -0,0 +1,25 @@ +{ + "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": "" + } + } +} diff --git a/public/locales/cs/layout/errors/access-denied.json b/public/locales/cs/layout/errors/access-denied.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/layout/errors/access-denied.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/layout/errors/not-found.json b/public/locales/cs/layout/errors/not-found.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/layout/errors/not-found.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/layout/header.json b/public/locales/cs/layout/header.json new file mode 100644 index 000000000..6957b4712 --- /dev/null +++ b/public/locales/cs/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "Vyhledat", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "Změnit motiv", + "preferences": "Uživatelská nastavení", + "defaultBoard": "Výchozí plocha", + "manage": "Spravovat", + "logout": "Odhlásit z {{username}}", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/layout/header/actions/toggle-edit-mode.json b/public/locales/cs/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..ecc0d239a --- /dev/null +++ b/public/locales/cs/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,12 @@ +{ + "description": "", + "button": { + "disabled": "", + "enabled": "" + }, + "popover": { + "title": "Režim úprav je povolen pro velikost <1>{{size}}", + "text": "Nyní můžete upravovat a configurovat Vaše aplikace. Změny nejsou uloženy dokud neopustíte režim úprav" + }, + "unloadEvent": "" +} diff --git a/public/locales/cs/layout/manage.json b/public/locales/cs/layout/manage.json new file mode 100644 index 000000000..02262e724 --- /dev/null +++ b/public/locales/cs/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Domovská stránka" + }, + "boards": { + "title": "Plochy" + }, + "users": { + "title": "Uživatelé", + "items": { + "manage": "Spravovat", + "invites": "Pozvánky" + } + }, + "help": { + "title": "Nápověda", + "items": { + "documentation": "", + "report": "Nahlášení problému/chyby", + "discord": "Komunitní Discord", + "contribute": "Zapojte se" + } + }, + "tools": { + "title": "Nástroje", + "items": { + "docker": "" + } + }, + "about": { + "title": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/layout/mobile/drawer.json b/public/locales/cs/layout/mobile/drawer.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/public/locales/cs/layout/mobile/drawer.json @@ -0,0 +1 @@ +{} diff --git a/public/locales/cs/layout/modals/about.json b/public/locales/cs/layout/modals/about.json new file mode 100644 index 000000000..9a09c330d --- /dev/null +++ b/public/locales/cs/layout/modals/about.json @@ -0,0 +1,30 @@ +{ + "description": "", + "addToDashboard": "", + "tip": "", + "key": "", + "action": "", + "keybinds": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", + "actions": { + "toggleTheme": "", + "focusSearchBar": "", + "openDocker": "", + "toggleEdit": "" + }, + "metrics": { + "configurationSchemaVersion": "", + "version": "", + "nodeEnvironment": "", + "i18n": "", + "locales": "", + "experimental_disableEditMode": "" + }, + "version": { + "new": "", + "dropdown": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/layout/modals/add-app.json b/public/locales/cs/layout/modals/add-app.json new file mode 100644 index 000000000..f5a7aa4ea --- /dev/null +++ b/public/locales/cs/layout/modals/add-app.json @@ -0,0 +1,128 @@ +{ + "tabs": { + "general": "", + "behaviour": "", + "network": "", + "appearance": "", + "integration": "" + }, + "general": { + "appname": { + "label": "", + "description": "" + }, + "internalAddress": { + "label": "", + "description": "", + "troubleshoot": { + "label": "", + "header": "", + "lines": { + "nothingAfterPort": "", + "protocolCheck": "", + "preferIP": "", + "enablePings": "", + "wget": "", + "iframe": "", + "clearCache": "" + }, + "footer": "" + } + }, + "externalAddress": { + "label": "", + "description": "" + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "", + "description": "" + }, + "tooltipDescription": { + "label": "", + "description": "" + }, + "customProtocolWarning": "" + }, + "network": { + "statusChecker": { + "label": "", + "description": "" + }, + "statusCodes": { + "label": "", + "description": "" + } + }, + "appearance": { + "icon": { + "label": "", + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } + }, + "appNameFontSize": { + "label": "", + "description": "" + }, + "appNameStatus": { + "label": "", + "description": "", + "dropdown": { + "normal": "", + "hover": "", + "hidden": "" + } + }, + "positionAppName": { + "label": "", + "description": "", + "dropdown": { + "top": "", + "right": "", + "bottom": "", + "left": "" + } + }, + "lineClampAppName": { + "label": "", + "description": "" + } + }, + "integration": { + "type": { + "label": "", + "description": "", + "placeholder": "", + "defined": "", + "undefined": "", + "public": "", + "private": "", + "explanationPrivate": "", + "explanationPublic": "" + }, + "secrets": { + "description": "", + "warning": "", + "clear": "", + "save": "", + "update": "" + } + }, + "validation": { + "popover": "", + "name": "", + "noUrl": "", + "invalidUrl": "", + "noIconUrl": "", + "noExternalUri": "", + "invalidExternalUri": "" + } +} diff --git a/public/locales/cs/layout/modals/change-position.json b/public/locales/cs/layout/modals/change-position.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/layout/modals/change-position.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/manage/boards.json b/public/locales/cs/manage/boards.json new file mode 100644 index 000000000..d8910e1e0 --- /dev/null +++ b/public/locales/cs/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Plochy", + "pageTitle": "Plochy", + "cards": { + "statistics": { + "apps": "Aplikace", + "widgets": "Widgety", + "categories": "Kategorie" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/manage/index.json b/public/locales/cs/manage/index.json new file mode 100644 index 000000000..abb98e639 --- /dev/null +++ b/public/locales/cs/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Spravovat", + "hero": { + "title": "Vítej zpět, {{username}}", + "fallbackUsername": "", + "subtitle": "Vítejte ve Vašem Centru aplikací. Organizujte, optimalizujte a ovládněte!" + }, + "quickActions": { + "title": "Rychlé akce", + "boards": { + "title": "Vaše plochy", + "subtitle": "Vytvářejte a spravujte Vaše plochy" + }, + "inviteUsers": { + "title": "Pozvěte nového uživatele", + "subtitle": "Vytvářejte a posílejte pozvánky k registraci" + }, + "manageUsers": { + "title": "Správa uživatelů", + "subtitle": "Odstraňujte a spravujte Vaše uživatele" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/manage/users.json b/public/locales/cs/manage/users.json new file mode 100644 index 000000000..3cbdfa706 --- /dev/null +++ b/public/locales/cs/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Uživatelé", + "pageTitle": "Správa uživatelů", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/cs/manage/users/create.json b/public/locales/cs/manage/users/create.json new file mode 100644 index 000000000..846e81df7 --- /dev/null +++ b/public/locales/cs/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "", + "password": { + "label": "" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "", + "email": "", + "password": "" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/manage/users/invites.json b/public/locales/cs/manage/users/invites.json new file mode 100644 index 000000000..ea4fc945a --- /dev/null +++ b/public/locales/cs/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "Správa pozvánek uživatelů", + "description": "Pomocí pozvánek můžete pozvat uživatele do instance služby Homarr. Pozvánka je platná pouze po určitou dobu a lze ji použít pouze jednou. Platnost musí být v rozmezí od 5 minut do 12 měsíců od vytvoření.", + "button": { + "createInvite": "Vytvořit pozvánku", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "ID", + "creator": "Vytvořil", + "expires": "Expiruje", + "action": "Akce" + }, + "data": { + "expiresAt": "", + "expiresIn": "za {{in}}" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "ID", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/cs/modules/bookmark.json b/public/locales/cs/modules/bookmark.json new file mode 100644 index 000000000..6fedba2d9 --- /dev/null +++ b/public/locales/cs/modules/bookmark.json @@ -0,0 +1,43 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "name": { + "label": "", + "info": "" + }, + "items": { + "label": "" + }, + "layout": { + "label": "Rozložení", + "data": { + "autoGrid": "", + "horizontal": "", + "vertical": "" + } + } + } + }, + "card": { + "noneFound": { + "title": "", + "text": "" + } + }, + "item": { + "validation": { + "length": "", + "invalidLink": "", + "errorMsg": "" + }, + "name": "", + "url": "", + "newTab": "", + "hideHostname": "", + "hideIcon": "", + "delete": "" + } +} diff --git a/public/locales/cs/modules/calendar.json b/public/locales/cs/modules/calendar.json new file mode 100644 index 000000000..03c146c39 --- /dev/null +++ b/public/locales/cs/modules/calendar.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "radarrReleaseType": { + "label": "", + "data": { + "inCinemas": "", + "physicalRelease": "", + "digitalRelease": "" + } + }, + "hideWeekDays": { + "label": "" + }, + "showUnmonitored": { + "label": "" + }, + "fontSize": { + "label": "", + "data": { + "xs": "", + "sm": "", + "md": "", + "lg": "", + "xl": "" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/common-media-cards.json b/public/locales/cs/modules/common-media-cards.json new file mode 100644 index 000000000..9f6da0682 --- /dev/null +++ b/public/locales/cs/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "", + "request": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/common.json b/public/locales/cs/modules/common.json new file mode 100644 index 000000000..ba4f38a1c --- /dev/null +++ b/public/locales/cs/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "" + }, + "errors": { + "unmappedOptions": { + "text": "" + } + } +} diff --git a/public/locales/cs/modules/dashdot.json b/public/locales/cs/modules/dashdot.json new file mode 100644 index 000000000..98f45c5c2 --- /dev/null +++ b/public/locales/cs/modules/dashdot.json @@ -0,0 +1,118 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "dashName": { + "label": "" + }, + "url": { + "label": "" + }, + "usePercentages": { + "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } + } + } + }, + "card": { + "title": "", + "errors": { + "noService": "", + "noInformation": "", + "protocolDowngrade": { + "title": "", + "text": "" + } + }, + "graphs": { + "storage": { + "title": "", + "label": "" + }, + "network": { + "title": "", + "label": "", + "metrics": { + "download": "", + "upload": "" + } + }, + "cpu": { + "title": "" + }, + "ram": { + "title": "" + }, + "gpu": { + "title": "" + } + } + } +} diff --git a/public/locales/cs/modules/date.json b/public/locales/cs/modules/date.json new file mode 100644 index 000000000..e8ca6f5e8 --- /dev/null +++ b/public/locales/cs/modules/date.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "display24HourFormat": { + "label": "" + }, + "dateFormat": { + "label": "", + "data": { + "hide": "" + } + }, + "enableTimezone": { + "label": "" + }, + "timezoneLocation": { + "label": "" + }, + "titleState": { + "label": "", + "info": "", + "data": { + "both": "", + "city": "", + "none": "" + } + } + } + } +} diff --git a/public/locales/cs/modules/dlspeed.json b/public/locales/cs/modules/dlspeed.json new file mode 100644 index 000000000..1dfd395d3 --- /dev/null +++ b/public/locales/cs/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "card": { + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "body": { + "nothingFound": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + } +} diff --git a/public/locales/cs/modules/dns-hole-controls.json b/public/locales/cs/modules/dns-hole-controls.json new file mode 100644 index 000000000..3bf25c924 --- /dev/null +++ b/public/locales/cs/modules/dns-hole-controls.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/dns-hole-summary.json b/public/locales/cs/modules/dns-hole-summary.json new file mode 100644 index 000000000..50bc08c3c --- /dev/null +++ b/public/locales/cs/modules/dns-hole-summary.json @@ -0,0 +1,28 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "usePiHoleColors": { + "label": "" + }, + "layout": { + "label": "Rozložení", + "data": { + "grid": "", + "row": "", + "column": "" + } + } + } + }, + "card": { + "metrics": { + "domainsOnAdlist": "", + "queriesToday": "", + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" + } + } +} diff --git a/public/locales/cs/modules/docker.json b/public/locales/cs/modules/docker.json new file mode 100644 index 000000000..7346ebe39 --- /dev/null +++ b/public/locales/cs/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "search": { + "placeholder": "" + }, + "table": { + "header": { + "name": "", + "image": "", + "ports": "", + "state": "" + }, + "body": { + "portCollapse": "" + }, + "states": { + "running": "", + "created": "", + "stopped": "", + "unknown": "" + } + }, + "actionBar": { + "addService": { + "title": "", + "message": "" + }, + "restart": { + "title": "" + }, + "stop": { + "title": "" + }, + "start": { + "title": "" + }, + "refreshData": { + "title": "" + }, + "remove": { + "title": "" + }, + "addToHomarr": { + "title": "" + } + }, + "actions": { + "start": { + "start": "", + "end": "" + }, + "stop": { + "start": "", + "end": "" + }, + "restart": { + "start": "", + "end": "" + }, + "remove": { + "start": "", + "end": "" + } + }, + "errors": { + "integrationFailed": { + "title": "", + "message": "" + }, + "unknownError": { + "title": "" + }, + "oneServiceAtATime": { + "title": "" + } + }, + "actionIcon": { + "tooltip": "" + } +} diff --git a/public/locales/cs/modules/iframe.json b/public/locales/cs/modules/iframe.json new file mode 100644 index 000000000..cbd07acf7 --- /dev/null +++ b/public/locales/cs/modules/iframe.json @@ -0,0 +1,45 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + }, + "allowTransparency": { + "label": "" + }, + "allowScrolling": { + "label": "" + }, + "allowPayment": { + "label": "" + }, + "allowAutoPlay": { + "label": "" + }, + "allowMicrophone": { + "label": "" + }, + "allowCamera": { + "label": "" + }, + "allowGeolocation": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + }, + "browserSupport": "" + } + } +} diff --git a/public/locales/cs/modules/media-requests-list.json b/public/locales/cs/modules/media-requests-list.json new file mode 100644 index 000000000..05e700def --- /dev/null +++ b/public/locales/cs/modules/media-requests-list.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "replaceLinksWithExternalHost": { + "label": "" + }, + "openInNewTab": { + "label": "" + } + } + }, + "noRequests": "", + "state": { + "approved": "", + "pendingApproval": "", + "declined": "" + }, + "tooltips": { + "approve": "", + "decline": "", + "approving": "" + }, + "mutation": { + "approving": "", + "declining": "", + "request": "", + "approved": "", + "declined": "" + } +} diff --git a/public/locales/cs/modules/media-requests-stats.json b/public/locales/cs/modules/media-requests-stats.json new file mode 100644 index 000000000..f152af280 --- /dev/null +++ b/public/locales/cs/modules/media-requests-stats.json @@ -0,0 +1,27 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "replaceLinksWithExternalHost": { + "label": "" + }, + "openInNewTab": { + "label": "" + } + } + }, + "mediaStats": { + "title": "", + "pending": "", + "tvRequests": "", + "movieRequests": "", + "approved": "", + "totalRequests": "" + }, + "userStats": { + "title": "", + "requests": "" + } +} diff --git a/public/locales/cs/modules/media-server.json b/public/locales/cs/modules/media-server.json new file mode 100644 index 000000000..3e8852626 --- /dev/null +++ b/public/locales/cs/modules/media-server.json @@ -0,0 +1,25 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "loading": "", + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/notebook.json b/public/locales/cs/modules/notebook.json new file mode 100644 index 000000000..69b88092c --- /dev/null +++ b/public/locales/cs/modules/notebook.json @@ -0,0 +1,59 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "showToolbar": { + "label": "" + }, + "allowReadOnlyCheck": { + "label": "" + }, + "content": { + "label": "" + } + } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/overseerr.json b/public/locales/cs/modules/overseerr.json new file mode 100644 index 000000000..e7ff04402 --- /dev/null +++ b/public/locales/cs/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "popup": { + "item": { + "buttons": { + "askFor": "", + "cancel": "", + "request": "" + }, + "alerts": { + "automaticApproval": { + "title": "", + "text": "" + } + } + }, + "seasonSelector": { + "caption": "", + "table": { + "header": { + "season": "", + "numberOfEpisodes": "" + } + } + } + } +} diff --git a/public/locales/cs/modules/ping.json b/public/locales/cs/modules/ping.json new file mode 100644 index 000000000..76a91fe52 --- /dev/null +++ b/public/locales/cs/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "states": { + "online": "", + "offline": "", + "loading": "" + } +} diff --git a/public/locales/cs/modules/rss.json b/public/locales/cs/modules/rss.json new file mode 100644 index 000000000..32b2b7889 --- /dev/null +++ b/public/locales/cs/modules/rss.json @@ -0,0 +1,31 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "", + "description": "" + }, + "refreshInterval": { + "label": "" + }, + "dangerousAllowSanitizedItemContent": { + "label": "", + "info": "" + }, + "textLinesClamp": { + "label": "" + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } + } +} diff --git a/public/locales/cs/modules/search.json b/public/locales/cs/modules/search.json new file mode 100644 index 000000000..16651d720 --- /dev/null +++ b/public/locales/cs/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "input": { + "placeholder": "" + }, + "switched-to": "", + "searchEngines": { + "search": { + "name": "", + "description": "" + }, + "youtube": { + "name": "", + "description": "" + }, + "torrents": { + "name": "", + "description": "" + }, + "overseerr": { + "name": "", + "description": "" + } + }, + "tip": "", + "switchedSearchEngine": "" +} diff --git a/public/locales/cs/modules/torrents-status.json b/public/locales/cs/modules/torrents-status.json new file mode 100644 index 000000000..910e00935 --- /dev/null +++ b/public/locales/cs/modules/torrents-status.json @@ -0,0 +1,93 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "refreshInterval": { + "label": "" + }, + "displayCompletedTorrents": { + "label": "" + }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, + "displayStaleTorrents": { + "label": "" + }, + "labelFilterIsWhitelist": { + "label": "" + }, + "labelFilter": { + "label": "", + "description": "" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" + } + } + }, + "card": { + "footer": { + "error": "", + "lastUpdated": "", + "ratioGlobal": "", + "ratioWithFilter": "" + }, + "table": { + "header": { + "name": "", + "size": "", + "download": "", + "upload": "", + "estimatedTimeOfArrival": "", + "progress": "" + }, + "item": { + "text": "" + }, + "body": { + "nothingFound": "", + "filterHidingItems": "" + } + }, + "lineChart": { + "title": "", + "download": "", + "upload": "", + "timeSpan": "", + "totalDownload": "", + "totalUpload": "" + }, + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + }, + "generic": { + "title": "", + "text": "" + } + }, + "loading": { + "title": "", + "description": "" + }, + "popover": { + "introductionPrefix": "", + "metrics": { + "queuePosition": "", + "progress": "", + "totalSelectedSize": "", + "state": "", + "ratio": "", + "completed": "" + } + } + } +} diff --git a/public/locales/cs/modules/usenet.json b/public/locales/cs/modules/usenet.json new file mode 100644 index 000000000..dfe4e1e86 --- /dev/null +++ b/public/locales/cs/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "", + "description": "" + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "", + "text": "" + } + } + }, + "tabs": { + "queue": "", + "history": "" + }, + "info": { + "sizeLeft": "", + "paused": "" + }, + "queue": { + "header": { + "name": "", + "size": "", + "eta": "", + "progress": "" + }, + "empty": "", + "error": { + "title": "", + "message": "" + }, + "paused": "" + }, + "history": { + "header": { + "name": "", + "size": "", + "duration": "" + }, + "empty": "", + "error": { + "title": "", + "message": "" + }, + "paused": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/video-stream.json b/public/locales/cs/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/cs/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/modules/weather.json b/public/locales/cs/modules/weather.json new file mode 100644 index 000000000..9e52e237f --- /dev/null +++ b/public/locales/cs/modules/weather.json @@ -0,0 +1,37 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "displayInFahrenheit": { + "label": "" + }, + "displayCityName": { + "label": "" + }, + "location": { + "label": "" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" + } + }, + "error": "" +} diff --git a/public/locales/cs/password-requirements.json b/public/locales/cs/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/settings/common.json b/public/locales/cs/settings/common.json new file mode 100644 index 000000000..6e7f7f271 --- /dev/null +++ b/public/locales/cs/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "", + "tooltip": "", + "tabs": { + "common": "", + "customizations": "" + }, + "tips": { + "configTip": "" + }, + "credits": { + "madeWithLove": "", + "thirdPartyContent": "", + "thirdPartyContentTable": { + "dependencyName": "", + "dependencyVersion": "" + } + }, + "grow": "", + "layout": { + "preview": { + "title": "", + "subtitle": "" + }, + "divider": "", + "main": "", + "sidebar": "", + "cannotturnoff": "", + "dashboardlayout": "", + "enablersidebar": "Povolit pravý postranní panel", + "enablelsidebar": "Povolit levý postranní panel", + "enablesearchbar": "", + "enabledocker": "", + "enableping": "Povolit pingy", + "enablelsidebardesc": "Volitelné. Lze použít pouze pro aplikace a integrace", + "enablersidebardesc": "Volitelné. Lze použít pouze pro aplikace a integrace" + } +} diff --git a/public/locales/cs/settings/customization/access.json b/public/locales/cs/settings/customization/access.json new file mode 100644 index 000000000..8200342d4 --- /dev/null +++ b/public/locales/cs/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Povolit anonymní uživatele", + "description": "Povolte nepřihlášeným uživatelům zobrazovat vaši plochu" + } +} \ No newline at end of file diff --git a/public/locales/cs/settings/customization/general.json b/public/locales/cs/settings/customization/general.json new file mode 100644 index 000000000..75854abae --- /dev/null +++ b/public/locales/cs/settings/customization/general.json @@ -0,0 +1,29 @@ +{ + "text": "", + "accordeon": { + "layout": { + "name": "Rozložení", + "description": "Povolte a zakažte prvky v záhlaví a na dlaždicích plochy" + }, + "gridstack": { + "name": "GridStack", + "description": "Upravte chování a sloupce v oblasti plochy" + }, + "pageMetadata": { + "name": "Metadata stránky", + "description": "Upravte názvy, logo a PWA" + }, + "appereance": { + "name": "", + "description": "Přizpůsobte pozadí, barvy a zobrazení aplikací" + }, + "accessibility": { + "name": "", + "description": "" + }, + "access": { + "name": "", + "description": "Nastavte, kdo má přístup k Vaší ploše" + } + } +} diff --git a/public/locales/cs/settings/customization/gridstack.json b/public/locales/cs/settings/customization/gridstack.json new file mode 100644 index 000000000..2b801d165 --- /dev/null +++ b/public/locales/cs/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "Sloupce ve velikosti {{size}}", + "descriptionPreset": "Počet sloupců, pokud je obrazovka užší než {{pixels}} pixelů", + "descriptionExceedsPreset": "Počet sloupců, pokud je obrazovka širší než {{pixels}} pixelů" + }, + "unsavedChanges": "", + "applyChanges": "", + "defaultValues": "" +} \ No newline at end of file diff --git a/public/locales/cs/settings/customization/opacity-selector.json b/public/locales/cs/settings/customization/opacity-selector.json new file mode 100644 index 000000000..578e1efac --- /dev/null +++ b/public/locales/cs/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Průhlednost aplikace" +} \ No newline at end of file diff --git a/public/locales/cs/settings/customization/page-appearance.json b/public/locales/cs/settings/customization/page-appearance.json new file mode 100644 index 000000000..2ca246303 --- /dev/null +++ b/public/locales/cs/settings/customization/page-appearance.json @@ -0,0 +1,27 @@ +{ + "pageTitle": { + "label": "Název stránky", + "description": "Název plochy v levém horním rohu" + }, + "metaTitle": { + "label": "Meta název", + "description": "Název zobrazený na kartě prohlížeče" + }, + "logo": { + "label": "Logo", + "description": "Logo zobrazené v levém horním rohu" + }, + "favicon": { + "label": "Ikona", + "description": "Ikona zobrazená na kartě prohlížeče" + }, + "background": { + "label": "Pozadí" + }, + "customCSS": { + "label": "Vlastní CSS", + "description": "Dále si můžete přizpůsobit ovládací panel pomocí CSS, doporučujeme pouze zkušeným uživatelům", + "placeholder": "", + "applying": "" + } +} \ No newline at end of file diff --git a/public/locales/cs/settings/customization/shade-selector.json b/public/locales/cs/settings/customization/shade-selector.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/settings/customization/shade-selector.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/settings/general/cache-buttons.json b/public/locales/cs/settings/general/cache-buttons.json new file mode 100644 index 000000000..685994c48 --- /dev/null +++ b/public/locales/cs/settings/general/cache-buttons.json @@ -0,0 +1,24 @@ +{ + "title": "", + "selector": { + "label": "", + "data": { + "ping": "", + "repositoryIcons": "", + "calendar&medias": "", + "weather": "" + } + }, + "buttons": { + "notificationTitle": "", + "clearAll": { + "text": "", + "notificationMessage": "" + }, + "clearSelect": { + "text": "", + "notificationMessageSingle": "", + "notificationMessageMulti": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/settings/general/config-changer.json b/public/locales/cs/settings/general/config-changer.json new file mode 100644 index 000000000..dc8f3ea4b --- /dev/null +++ b/public/locales/cs/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "", + "description": "", + "loadingNew": "", + "pleaseWait": "" + }, + "modal": { + "copy": { + "title": "", + "form": { + "configName": { + "label": "", + "validation": { + "required": "", + "notUnique": "" + }, + "placeholder": "" + }, + "submitButton": "" + }, + "events": { + "configSaved": { + "title": "", + "message": "" + }, + "configCopied": { + "title": "", + "message": "" + }, + "configNotCopied": { + "title": "", + "message": "" + } + } + }, + "confirmDeletion": { + "title": "", + "warningText": "", + "text": "", + "buttons": { + "confirm": "" + } + } + }, + "buttons": { + "download": "", + "delete": { + "text": "", + "notifications": { + "deleted": { + "title": "", + "message": "" + }, + "deleteFailed": { + "title": "", + "message": "" + }, + "deleteFailedDefaultConfig": { + "title": "", + "message": "" + } + } + }, + "saveCopy": "" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "", + "message": "" + }, + "loadedSuccessfully": { + "title": "" + } + }, + "accept": { + "title": "", + "text": "" + }, + "reject": { + "title": "", + "text": "" + } + } +} diff --git a/public/locales/cs/settings/general/edit-mode-toggle.json b/public/locales/cs/settings/general/edit-mode-toggle.json new file mode 100644 index 000000000..2d8d574fc --- /dev/null +++ b/public/locales/cs/settings/general/edit-mode-toggle.json @@ -0,0 +1,22 @@ +{ + "menu": { + "toggle": "", + "enable": "", + "disable": "" + }, + "form": { + "label": "", + "message": "", + "submit": "" + }, + "notification": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/settings/general/internationalization.json b/public/locales/cs/settings/general/internationalization.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/cs/settings/general/internationalization.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/cs/settings/general/search-engine.json b/public/locales/cs/settings/general/search-engine.json new file mode 100644 index 000000000..4e5c6754b --- /dev/null +++ b/public/locales/cs/settings/general/search-engine.json @@ -0,0 +1,20 @@ +{ + "title": "", + "configurationName": "", + "custom": "", + "tips": { + "generalTip": "", + "placeholderTip": "" + }, + "customEngine": { + "title": "", + "label": "", + "placeholder": "" + }, + "searchNewTab": { + "label": "" + }, + "searchEnabled": { + "label": "" + } +} diff --git a/public/locales/cs/settings/general/widget-positions.json b/public/locales/cs/settings/general/widget-positions.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/public/locales/cs/settings/general/widget-positions.json @@ -0,0 +1 @@ +{} diff --git a/public/locales/cs/tools/docker.json b/public/locales/cs/tools/docker.json new file mode 100644 index 000000000..8d403475c --- /dev/null +++ b/public/locales/cs/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "", + "alerts": { + "notConfigured": { + "text": "Vaše instance Homarr nemá nakonfigurovaný Docker nebo se nepodařilo načíst kontejnery. Podívejte se prosím do dokumentace, jak integraci nastavit." + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/cs/user/preferences.json b/public/locales/cs/user/preferences.json new file mode 100644 index 000000000..6c0e93d28 --- /dev/null +++ b/public/locales/cs/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/cs/widgets/draggable-list.json b/public/locales/cs/widgets/draggable-list.json new file mode 100644 index 000000000..5d27e99ad --- /dev/null +++ b/public/locales/cs/widgets/draggable-list.json @@ -0,0 +1,7 @@ +{ + "noEntries": { + "title": "", + "text": "" + }, + "buttonAdd": "" +} diff --git a/public/locales/cs/widgets/error-boundary.json b/public/locales/cs/widgets/error-boundary.json new file mode 100644 index 000000000..ce74ad0fc --- /dev/null +++ b/public/locales/cs/widgets/error-boundary.json @@ -0,0 +1,14 @@ +{ + "card": { + "title": "", + "buttons": { + "details": "", + "tryAgain": "" + } + }, + "modal": { + "text": "", + "label": "", + "reportButton": "" + } +} diff --git a/public/locales/cs/zod.json b/public/locales/cs/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/cs/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/da/authentication/invite.json b/public/locales/da/authentication/invite.json new file mode 100644 index 000000000..2c17f73f2 --- /dev/null +++ b/public/locales/da/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Opret konto", + "title": "Opret konto", + "text": "Angiv venligst dine legitimationsoplysninger nedenfor", + "form": { + "fields": { + "username": { + "label": "Brugernavn" + }, + "password": { + "label": "Adgangskode" + }, + "passwordConfirmation": { + "label": "Bekræft kodeord" + } + }, + "buttons": { + "submit": "Opret konto" + } + }, + "notifications": { + "loading": { + "title": "Opretter konto", + "text": "Vent venligst" + }, + "success": { + "title": "Konto oprettet", + "text": "Din konto er blevet oprettet med succes" + }, + "error": { + "title": "Fejl", + "text": "Noget gik galt, fik følgende fejl: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/da/authentication/login.json b/public/locales/da/authentication/login.json index 8443dd103..c4d0d0812 100644 --- a/public/locales/da/authentication/login.json +++ b/public/locales/da/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Log ind", "title": "Velkommen tilbage!", - "text": "Indtast venligst din adgangskode", + "text": "Indtast venligst dine legitimationsoplysninger", "form": { "fields": { + "username": { + "label": "Brugernavn" + }, "password": { - "label": "Adgangskode", - "placeholder": "Din adgangskode" + "label": "Adgangskode" } }, "buttons": { "submit": "Log ind" - } + }, + "afterLoginRedirection": "Når du er logget ind, bliver du omdirigeret til {{url}}" }, - "notifications": { - "checking": { - "title": "Tjekker din adgangskode", - "message": "Din adgangskode er ved at blive tjekket..." - }, - "correct": { - "title": "Log ind vellykket, omdirigerer..." - }, - "wrong": { - "title": "Kodeordet du tastede ind, var forkert. Prøv venligst igen." - } - } -} + "alert": "Dine legitimationsoplysninger er forkerte, eller denne konto findes ikke. Prøv venligst igen." +} \ No newline at end of file diff --git a/public/locales/da/boards/common.json b/public/locales/da/boards/common.json new file mode 100644 index 000000000..6ce459a52 --- /dev/null +++ b/public/locales/da/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Tilpas board" + } +} \ No newline at end of file diff --git a/public/locales/da/boards/customize.json b/public/locales/da/boards/customize.json new file mode 100644 index 000000000..9d4350bc5 --- /dev/null +++ b/public/locales/da/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Tilpas {{name}} Board", + "pageTitle": "Tilpasning til {{name}} Board", + "backToBoard": "Tilbage til board", + "settings": { + "appearance": { + "primaryColor": "Primær farve", + "secondaryColor": "Sekundær farve" + } + }, + "save": { + "button": "Gem ændringer", + "note": "Pas på, du har ændringer, der ikke er gemt!" + }, + "notifications": { + "pending": { + "title": "Gemmer tilpasning", + "message": "Vent venligst, mens vi gemmer din tilpasning" + }, + "success": { + "title": "Tilpasning gemt", + "message": "Din tilpasning er blevet gemt med succes" + }, + "error": { + "title": "Fejl", + "message": "Kan ikke gemme ændringer" + } + } +} \ No newline at end of file diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 79ace3ae9..7cb274d47 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -1,11 +1,17 @@ { "save": "Gem", + "apply": "Anvend", + "insert": "Indsæt", "about": "Om", "cancel": "Annuller", "close": "Luk", + "back": "Tilbage", "delete": "Slet", "ok": "OK", "edit": "Rediger", + "next": "Næste", + "previous": "Forrige", + "confirm": "Bekræft", "enabled": "Aktiveret", "disabled": "Deaktiveret", "enableAll": "Aktiver alle", @@ -36,5 +42,14 @@ "medium": "mellem", "large": "stor" }, - "seeMore": "Se mere..." + "seeMore": "Se mere...", + "position": { + "left": "Venstre", + "center": "Centrer", + "right": "Højre" + }, + "attributes": { + "width": "Bredde", + "height": "Højde" + } } \ No newline at end of file diff --git a/public/locales/da/layout/errors/access-denied.json b/public/locales/da/layout/errors/access-denied.json new file mode 100644 index 000000000..3400c4ff0 --- /dev/null +++ b/public/locales/da/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Adgang nægtet", + "text": "Du har ikke tilstrækkelige tilladelser til at få adgang til denne side. Hvis du mener, at dette ikke er tilsigtet, bedes du kontakte din administrator.", + "switchAccount": "Skift til en anden konto" +} \ No newline at end of file diff --git a/public/locales/da/layout/header.json b/public/locales/da/layout/header.json new file mode 100644 index 000000000..3d63ce720 --- /dev/null +++ b/public/locales/da/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Dette er en eksperimentel funktion i Homarr. Rapporter venligst eventuelle problemer på GitHub eller Discord." + }, + "search": { + "label": "Søg", + "engines": { + "web": "Søg efter {{query}} på nettet", + "youtube": "Søg efter {{query}} på YouTube", + "torrent": "Søg efter {{query}} torrents", + "movie": "Søg efter {{query}} på {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Skift tema", + "preferences": "Brugerindstillinger", + "defaultBoard": "Standard dashboard", + "manage": "Administrer", + "logout": "Log {{username}} ud", + "login": "Log ind" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} resultater for {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/da/layout/manage.json b/public/locales/da/layout/manage.json new file mode 100644 index 000000000..e231cf163 --- /dev/null +++ b/public/locales/da/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Hjem" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Brugere", + "items": { + "manage": "Administrer", + "invites": "Invitationer" + } + }, + "help": { + "title": "Hjælp", + "items": { + "documentation": "Dokumentation", + "report": "Rapporter et problem / en fejl", + "discord": "Discordfællesskab", + "contribute": "Bidrag!" + } + }, + "tools": { + "title": "Værktøjer", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Om" + } + } +} \ No newline at end of file diff --git a/public/locales/da/layout/modals/about.json b/public/locales/da/layout/modals/about.json index a0633664a..73e9b9b9a 100644 --- a/public/locales/da/layout/modals/about.json +++ b/public/locales/da/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr er et elegant, moderne dashboard, der giver dig alle dine apps og tjenester lige ved hånden. Med Homarr kan du få adgang til og styre alt på ét praktisk sted. Homarr integrerer problemfrit med de apps, du har tilføjet, og giver dig værdifulde oplysninger og fuld kontrol. Installationen er en leg, og Homarr understøtter en lang række implementeringsmetoder.", - "contact": "Har du problemer eller spørgsmål? Kontakt os!", "addToDashboard": "Tilføj til dashboard", "tip": "Mod henviser til din modificeringstast, det er Ctrl og Command/Super/Windows-tasten", "key": "Genvejstast", "action": "Handling", "keybinds": "Genvejstaster", - "documentation": "Dokumentation", + "translators": "Oversættere ({{count}})", + "translatorsDescription": "Takket være disse mennesker er Homarr tilgængelig på {{languages}} sprog! Vil du hjælpe med at oversætte Homarr til dit sprog? Læs hvordan du gør det her.", + "contributors": "Bidragsydere ({{count}})", + "contributorsDescription": "Disse mennesker har bygget den kode, der får homarr til at fungere! Vil du være med til at bygge Homarr? Læs, hvordan du gør her", "actions": { "toggleTheme": "Slå lys/mørk tilstand til/fra", "focusSearchBar": "Fokusér på søgebjælken", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Konfigurationsskema version", - "configurationsCount": "Tilgængelige konfigurationer", "version": "Version", "nodeEnvironment": "Node miljø", "i18n": "Indlæste I18n-oversættelsesnavneområder", diff --git a/public/locales/da/layout/modals/add-app.json b/public/locales/da/layout/modals/add-app.json index c43158f2b..531f4d7ee 100644 --- a/public/locales/da/layout/modals/add-app.json +++ b/public/locales/da/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Intern adresse", - "description": "Appens interne IP." + "description": "Appens interne IP.", + "troubleshoot": { + "label": "Har du problemer?", + "header": "Her er en liste over de mest almindelige fejl og fejlfindingen:", + "lines": { + "nothingAfterPort": "Du bør i de fleste, hvis ikke alle, tilfælde ikke indtaste nogen sti efter porten. (Selv '/admin' for pihole eller '/web' for plex)", + "protocolCheck": "Sørg altid for, at der står http eller https foran URL'en, og sørg for, at du bruger den rigtige.", + "preferIP": "Det anbefales at bruge den direkte ip på den maskine eller container, du forsøger at kommunikere med.", + "enablePings": "Tjek, at IP'en er korrekt ved at aktivere pings. Customize Board -> Layout -> Enable pings. En lille rød eller grøn boble vil dukke op på dine app-fliser, og hvis du holder musen over den, får du svarets kode (en grøn boble med kode 200 forventes i de fleste tilfælde).", + "wget": "For at sikre, at homarr kan kommunikere med de andre apps, skal du sørge for at wget/curl/ping appens IP:port.", + "iframe": "Når det gælder iframes, skal de altid bruge den samme protokol (http/s) som Homarr.", + "clearCache": "Nogle oplysninger er registreret i cachen, så en integration virker måske ikke, medmindre du rydder cachen i Homarrs generelle indstillinger." + }, + "footer": "For yderligere fejlfinding, kontakt os på vores {{discord}}." + } }, "externalAddress": { "label": "Ekstern adresse", diff --git a/public/locales/da/manage/boards.json b/public/locales/da/manage/boards.json new file mode 100644 index 000000000..022208f71 --- /dev/null +++ b/public/locales/da/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Kategorier" + }, + "buttons": { + "view": "Se board" + }, + "menu": { + "setAsDefault": "Indstil som din standardboard", + "delete": { + "label": "Slet permanent", + "disabled": "Sletning deaktiveret, fordi ældre Homarr-komponenter ikke tillader sletning af standardkonfigurationen. Sletning vil være mulig i fremtiden." + } + }, + "badges": { + "fileSystem": "Filsystem", + "default": "Standard" + } + }, + "buttons": { + "create": "Opret nyt board" + }, + "modals": { + "delete": { + "title": "Slet board", + "text": "Er du sikker på, at du vil slette dette board? Denne handling kan ikke fortrydes, og dine data vil gå tabt permanent." + }, + "create": { + "title": "Opret et board", + "text": "Navnet kan ikke ændres, efter at et board er blevet oprettet.", + "form": { + "name": { + "label": "Navn" + }, + "submit": "Opret" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/manage/index.json b/public/locales/da/manage/index.json new file mode 100644 index 000000000..5505d9aad --- /dev/null +++ b/public/locales/da/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Administrer", + "hero": { + "title": "Velkommen tilbage, {{username}}", + "fallbackUsername": "Anonym", + "subtitle": "Velkommen til din applikationshub. Organiser, optimer og erobr!" + }, + "quickActions": { + "title": "Hurtige handlinger", + "boards": { + "title": "Dine boards", + "subtitle": "Opret og administrer dine boards" + }, + "inviteUsers": { + "title": "Inviter en ny bruger", + "subtitle": "Opret og send en invitation til registrering" + }, + "manageUsers": { + "title": "Administrér brugere", + "subtitle": "Slet og administrer dine brugere" + } + } +} \ No newline at end of file diff --git a/public/locales/da/manage/users.json b/public/locales/da/manage/users.json new file mode 100644 index 000000000..578b429ed --- /dev/null +++ b/public/locales/da/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Bruger" + } + }, + "tooltips": { + "deleteUser": "Slet bruger", + "demoteAdmin": "Degrader administrator", + "promoteToAdmin": "Promover til administrator" + }, + "modals": { + "delete": { + "title": "Slet brugeren {{name}}", + "text": "Er du sikker på, at du vil slette brugeren {{name}}? Dette vil slette data, der er knyttet til denne konto, men ikke dashboards, der er oprettet af denne bruger." + }, + "change-role": { + "promote": { + "title": "Forfrem brugeren {{name}} til administrator", + "text": "Er du sikker på, at du vil promovere brugeren {{name}} til administrator? Dette vil give brugeren adgang til alle ressourcer i din Homarr instans." + }, + "demote": { + "title": "Degrader bruger {{name}} til bruger", + "text": "Er du sikker på, at du vil degradere brugeren {{name}} til bruger? Dette vil fjerne brugerens adgang til alle ressourcer på din Homarr-instans." + }, + "confirm": "Bekræft" + } + }, + "searchDoesntMatch": "Din søgning matcher ikke nogen poster. Juster venligst dit filter." +} \ No newline at end of file diff --git a/public/locales/da/manage/users/create.json b/public/locales/da/manage/users/create.json new file mode 100644 index 000000000..55e87d29f --- /dev/null +++ b/public/locales/da/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Opret bruger", + "steps": { + "account": { + "title": "Første trin", + "text": "Opret konto", + "username": { + "label": "Brugernavn" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Andet trin", + "text": "Adgangskode", + "password": { + "label": "Adgangskode" + } + }, + "finish": { + "title": "Bekræftelse", + "text": "Gem i databasen", + "card": { + "title": "Gennemgå dine input", + "text": "Når du har sendt dine data til databasen, vil brugeren kunne logge ind. Er du sikker på, at du vil gemme denne bruger i databasen og aktivere login?" + }, + "table": { + "header": { + "property": "Egenskaber", + "value": "Værdi", + "username": "Brugernavn", + "email": "E-mail", + "password": "Adgangskode" + }, + "notSet": "Ikke angivet", + "valid": "Gyldig" + }, + "failed": "Brugeroprettelse er mislykkedes: {{error}}" + }, + "completed": { + "alert": { + "title": "Brugeren blev oprettet", + "text": "Brugeren blev oprettet i databasen. De kan nu logge ind." + } + } + }, + "buttons": { + "generateRandomPassword": "Generer tilfældig", + "createAnother": "Opret en anden" + } +} \ No newline at end of file diff --git a/public/locales/da/manage/users/invites.json b/public/locales/da/manage/users/invites.json new file mode 100644 index 000000000..9b9648427 --- /dev/null +++ b/public/locales/da/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Brugerinvitationer", + "pageTitle": "Administrer brugerinvitationer", + "description": "Ved hjælp af invitationer kan du invitere brugere til din Homarr-instans. En invitation vil kun være gyldig i et bestemt tidsrum og kan kun bruges én gang. Udløbsdatoen skal være mellem 5 minutter og 12 måneder ved oprettelsen.", + "button": { + "createInvite": "Opret invitation", + "deleteInvite": "Slet invitation" + }, + "table": { + "header": { + "id": "ID", + "creator": "Skaber", + "expires": "Udløber", + "action": "Handlinger" + }, + "data": { + "expiresAt": "udløb {{at}}", + "expiresIn": "i {{in}}" + } + }, + "modals": { + "create": { + "title": "Opret Invitation", + "description": "Efter udløb vil en invitation ikke længere være gyldig, og modtageren af invitationen vil ikke være i stand til at oprette en konto.", + "form": { + "expires": "Udløbsdato", + "submit": "Opret" + } + }, + "copy": { + "title": "Kopier invitation", + "description": "Din invitation er blevet genereret. Når denne modal lukker, vil du ikke længere kunne kopiere dette link. Hvis du ikke længere ønsker at invitere den pågældende person, kan du til enhver tid slette denne invitation.", + "invitationLink": "Invitationslink", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopier og afvis" + } + }, + "delete": { + "title": "Slet invitation", + "description": "Er du sikker på, at du vil slette denne invitation? Brugere med dette link vil ikke længere kunne oprette en konto ved hjælp af dette link." + } + }, + "noInvites": "Der er endnu ingen invitationer." +} \ No newline at end of file diff --git a/public/locales/da/modules/calendar.json b/public/locales/da/modules/calendar.json index dd63915bc..db0d30eb1 100644 --- a/public/locales/da/modules/calendar.json +++ b/public/locales/da/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Viser en kalender med kommende udgivelser fra understøttede integrationer.", "settings": { "title": "Indstillinger for kalender widget", - "useSonarrv4": { - "label": "Brug Sonarr v4 API" - }, - "sundayStart": { - "label": "Søndag første ugedag" - }, "radarrReleaseType": { "label": "Radarr udgivelsestype", "data": { diff --git a/public/locales/da/modules/dns-hole-controls.json b/public/locales/da/modules/dns-hole-controls.json index c97b4b444..1cf0154c4 100644 --- a/public/locales/da/modules/dns-hole-controls.json +++ b/public/locales/da/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS hole kontrol", - "description": "Kontroller PiHole eller AdGuard fra dit dashboard" + "description": "Kontroller PiHole eller AdGuard fra dit dashboard", + "settings": { + "title": "Indstillinger for DNS hole", + "showToggleAllButtons": { + "label": "Vis 'Aktiver/deaktiver alle'-knapper" + } + }, + "errors": { + "general": { + "title": "Kan ikke finde et DNS-hul", + "text": "Der opstod et problem med at oprette forbindelse til dit/dine DNS-hul(ler). Bekræft venligst din(e) konfiguration(er)/integration(er)." + } + } } } \ No newline at end of file diff --git a/public/locales/da/modules/dns-hole-summary.json b/public/locales/da/modules/dns-hole-summary.json index 29b435823..24745172e 100644 --- a/public/locales/da/modules/dns-hole-summary.json +++ b/public/locales/da/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domæner på adlister", "queriesToday": "Forespørgsler i dag", - "queriesBlockedTodayPercentage": "blokeret i dag", - "queriesBlockedToday": "blokeret i dag" + "queriesBlockedTodayPercentage": "Blokeret i dag", + "queriesBlockedToday": "Blokeret i dag" } } } diff --git a/public/locales/da/modules/media-requests-list.json b/public/locales/da/modules/media-requests-list.json index 4c81f096f..d56bff06c 100644 --- a/public/locales/da/modules/media-requests-list.json +++ b/public/locales/da/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Ingen anmodninger fundet. Kontroller, at du har konfigureret dine apps korrekt.", - "pending": "Der er {{countPendingApproval}} anmodninger, der venter på godkendelse.", - "nonePending": "Der er i øjeblikket ingen godkendelser, der er under behandling. Du er i mål!", "state": { "approved": "Godkendt", "pendingApproval": "Afventer godkendelse", diff --git a/public/locales/da/modules/notebook.json b/public/locales/da/modules/notebook.json index 5be83c5f2..361c71314 100644 --- a/public/locales/da/modules/notebook.json +++ b/public/locales/da/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Vis værktøjslinjen, der hjælper dig med at skrive markdown" }, + "allowReadOnlyCheck": { + "label": "Tillad tjek i skrivebeskyttet tilstand" + }, "content": { "label": "Indholdet af notesbogen" } } + }, + "card": { + "controls": { + "bold": "Fed", + "italic": "Kursiv", + "strikethrough": "Gennemstreget", + "underline": "Understreget", + "colorText": "Tekst i farver", + "colorHighlight": "Farvet fremhævning af tekst", + "code": "Kode", + "clear": "Ryd formatering", + "heading": "Overskrift {{level}}", + "align": "Juster tekst: {{position}}", + "blockquote": "Citatblok", + "horizontalLine": "Horisontal linje", + "bulletList": "Punktopstillet liste", + "orderedList": "Sorteret liste", + "checkList": "Tjekliste", + "increaseIndent": "Forøg indrykning", + "decreaseIndent": "Formindsk indrykning", + "link": "Link", + "unlink": "Fjern link", + "image": "Integrer billede", + "addTable": "Tilføj tabel", + "deleteTable": "Slet tabel", + "colorCell": "Farvecelle", + "mergeCell": "Slå cellefletning til/fra", + "addColumnLeft": "Tilføj kolonne før", + "addColumnRight": "Tilføj kolonne efter", + "deleteColumn": "Slet kolonne", + "addRowTop": "Tilføj række før", + "addRowBelow": "Tilføj række efter", + "deleteRow": "Slet række" + }, + "modals": { + "clearColor": "Ryd farve", + "source": "Kilde", + "widthPlaceholder": "Værdi i % eller pixels", + "columns": "Kolonner", + "rows": "Rækker" + } } } \ No newline at end of file diff --git a/public/locales/da/modules/rss.json b/public/locales/da/modules/rss.json index 914b23cbf..4a6f79ff7 100644 --- a/public/locales/da/modules/rss.json +++ b/public/locales/da/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "Med rss-widgetten kan du vise RSS-feeds på dit dashboard.", "settings": { "title": "Indstillinger for RSS-widget", "rssFeedUrl": { diff --git a/public/locales/da/modules/torrents-status.json b/public/locales/da/modules/torrents-status.json index f06956988..94d83f495 100644 --- a/public/locales/da/modules/torrents-status.json +++ b/public/locales/da/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Vis fuldførte torrents" }, + "displayActiveTorrents": { + "label": "Vis aktive torrents" + }, + "speedLimitOfActiveTorrents": { + "label": "Uploadhastighed for at betragte en torrent som aktiv (kB/s)" + }, "displayStaleTorrents": { "label": "Vis torrents uden aktivitet" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Etiket liste", "description": "Når \"er whitelist\" er markeret, fungerer dette som en whitelist. Hvis det ikke er markeret, er det en blackliste. Gør ikke noget, hvis den er tom" + }, + "displayRatioWithFilter": { + "label": "Vis filtrerede torrents liste ratio", + "info": "Hvis deaktiveret, vil kun den globale ratio blive vist. Den globale ratio vil stadig bruge etiketter hvis sat" } } }, "card": { "footer": { "error": "Fejl", - "lastUpdated": "Sidst opdateret {{time}} siden" + "lastUpdated": "Sidst opdateret {{time}} siden", + "ratioGlobal": "Global ratio", + "ratioWithFilter": "Ratio med filter" }, "table": { "header": { diff --git a/public/locales/da/modules/weather.json b/public/locales/da/modules/weather.json index eae55681e..8ef1ed167 100644 --- a/public/locales/da/modules/weather.json +++ b/public/locales/da/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Ukendt" } }, - "error": "Der er opstået en fejl" + "error": "Der opstod en fejl" } diff --git a/public/locales/da/password-requirements.json b/public/locales/da/password-requirements.json new file mode 100644 index 000000000..d35675dc3 --- /dev/null +++ b/public/locales/da/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inkluderer nummer", + "lowercase": "Inkluderer små bogstaver", + "uppercase": "Inkluderer store bogstaver", + "special": "Inkluderer specialtegn", + "length": "Indeholder mindst {{count}} tegn" +} \ No newline at end of file diff --git a/public/locales/da/settings/customization/access.json b/public/locales/da/settings/customization/access.json new file mode 100644 index 000000000..0dd8fcd2d --- /dev/null +++ b/public/locales/da/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Tillad anonym", + "description": "Tillad brugere, der ikke er logget ind, at se dit board" + } +} \ No newline at end of file diff --git a/public/locales/da/settings/customization/general.json b/public/locales/da/settings/customization/general.json index 37c029979..56160fe2b 100644 --- a/public/locales/da/settings/customization/general.json +++ b/public/locales/da/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Hjælpefunktioner", "description": "Konfigurer Homarr for deaktiverede og handicappede brugere" + }, + "access": { + "name": "Adgang", + "description": "Konfigurer, hvem der har adgang til dit board" } } } diff --git a/public/locales/da/settings/customization/page-appearance.json b/public/locales/da/settings/customization/page-appearance.json index bd66eef79..6df6a8617 100644 --- a/public/locales/da/settings/customization/page-appearance.json +++ b/public/locales/da/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Yderligere, tilpasse dit dashboard ved hjælp af CSS, anbefales kun til erfarne brugere", "placeholder": "Brugerdefineret CSS vil blive anvendt sidst", "applying": "Anvender CSS..." - }, - "buttons": { - "submit": "Indsend" } -} +} \ No newline at end of file diff --git a/public/locales/da/tools/docker.json b/public/locales/da/tools/docker.json new file mode 100644 index 000000000..4ff6d913a --- /dev/null +++ b/public/locales/da/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Din Homarr-instans har ikke Docker konfigureret, eller den har fejlet i at hente containere. Se i dokumentationen, hvordan du sætter integrationen op." + } + }, + "modals": { + "selectBoard": { + "title": "Vælg et board", + "text": "Vælg det board, hvor du vil tilføje applikationer til de valgte Docker-containere.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Tilføj apps" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Tilføjede apps til board", + "message": "Apps til de valgte Docker-containere er blevet tilføjet til boardet." + }, + "error": { + "title": "Kunne ikke tilføje apps til board", + "message": "Apps til de valgte Docker-containere kunne ikke føjes til boardet." + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/user/preferences.json b/public/locales/da/user/preferences.json new file mode 100644 index 000000000..9769c5f14 --- /dev/null +++ b/public/locales/da/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Indstillinger", + "pageTitle": "Dine indstillinger", + "boards": { + "defaultBoard": { + "label": "Standard board" + } + }, + "accessibility": { + "title": "Hjælpefunktioner", + "disablePulse": { + "label": "Deaktiver ping-puls", + "description": "Som standard vil ping-indikatorerne i Homarr pulsere. Det kan være irriterende. Denne skyder vil deaktivere animationen" + }, + "replaceIconsWithDots": { + "label": "Udskift ping-prikker med ikoner", + "description": "For farveblinde brugere kan ping-prikker være uigenkendelige. Dette vil erstatte indikatorer med ikoner" + } + }, + "localization": { + "language": { + "label": "Sprog" + }, + "firstDayOfWeek": { + "label": "Første ugedag", + "options": { + "monday": "Mandag", + "saturday": "Lørdag", + "sunday": "Søndag" + } + } + }, + "searchEngine": { + "title": "Søgemaskine", + "custom": "Brugerdefineret", + "newTab": { + "label": "Åben søgeresultater i en ny fane" + }, + "autoFocus": { + "label": "Fokuser søgefeltet, når siden indlæses.", + "description": "Dette vil automatisk fokusere søgefeltet, når du navigerer til board sider. Det virker kun på desktop-enheder." + }, + "template": { + "label": "Forespørgsels URL", + "description": "Brug %s som pladsholder for forespørgslen" + } + } +} \ No newline at end of file diff --git a/public/locales/da/zod.json b/public/locales/da/zod.json new file mode 100644 index 000000000..79799bdee --- /dev/null +++ b/public/locales/da/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dette felt er ugyldigt", + "required": "Dette felt er påkrævet", + "string": { + "startsWith": "Dette felt skal starte med {{startsWith}}", + "endsWith": "Dette felt skal slutte med {{endsWith}}", + "includes": "Dette felt skal indeholde {{includes}}" + }, + "tooSmall": { + "string": "Dette felt skal være mindst {{minimum}} tegn langt", + "number": "Dette felt skal være større end eller lig med {{minimum}}" + }, + "tooBig": { + "string": "Dette felt må højst være på {{maximum}} tegn", + "number": "Dette felt skal være mindre end eller lig med {{maximum}}" + }, + "custom": { + "passwordMatch": "Adgangskoderne skal stemme overens" + } + } +} \ No newline at end of file diff --git a/public/locales/de/authentication/invite.json b/public/locales/de/authentication/invite.json new file mode 100644 index 000000000..3bb5bdbe2 --- /dev/null +++ b/public/locales/de/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Account erstellen", + "title": "Account erstellen", + "text": "Bitte geben Sie Ihre Anmeldedaten an", + "form": { + "fields": { + "username": { + "label": "Benutzername" + }, + "password": { + "label": "Passwort" + }, + "passwordConfirmation": { + "label": "Passwort bestätigen" + } + }, + "buttons": { + "submit": "Account erstellen" + } + }, + "notifications": { + "loading": { + "title": "Account wird erstellt", + "text": "Bitte warten" + }, + "success": { + "title": "Account erstellt", + "text": "Ihr Account wurde erfolgreich erstellt" + }, + "error": { + "title": "Fehler", + "text": "Etwas ist schiefgelaufen. Folgender Fehler ist aufgetreten: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/de/authentication/login.json b/public/locales/de/authentication/login.json index 72e0156d5..368b1c0b0 100644 --- a/public/locales/de/authentication/login.json +++ b/public/locales/de/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Anmelden", "title": "Willkommen zurück!", - "text": "Bitte geben Sie Ihr Kennwort ein", + "text": "Bitte geben Sie Ihre Anmeldedaten ein", "form": { "fields": { + "username": { + "label": "Benutzername" + }, "password": { - "label": "Passwort", - "placeholder": "Ihr Passwort" + "label": "Passwort" } }, "buttons": { "submit": "Anmelden" - } + }, + "afterLoginRedirection": "Nach der Anmeldung werden Sie zu {{url}} weitergeleitet" }, - "notifications": { - "checking": { - "title": "Ihr Passwort wird überprüft", - "message": "Ihr Passwort wird geprüft..." - }, - "correct": { - "title": "Anmeldung erfolgreich, Weiterleitung..." - }, - "wrong": { - "title": "Das von dir eingegebene Passwort ist nicht korrekt. Bitte versuche es noch mal." - } - } -} + "alert": "Ihre Anmeldedaten sind falsch oder dieses Konto existiert nicht. Bitte versuchen Sie es erneut." +} \ No newline at end of file diff --git a/public/locales/de/boards/common.json b/public/locales/de/boards/common.json new file mode 100644 index 000000000..1731c5450 --- /dev/null +++ b/public/locales/de/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Board anpassen" + } +} \ No newline at end of file diff --git a/public/locales/de/boards/customize.json b/public/locales/de/boards/customize.json new file mode 100644 index 000000000..3d3c485d9 --- /dev/null +++ b/public/locales/de/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} Board anpassen", + "pageTitle": "Anpassungen für {{name}} Board", + "backToBoard": "Zurück zum Board", + "settings": { + "appearance": { + "primaryColor": "Primärfarbe", + "secondaryColor": "Sekundärfarbe" + } + }, + "save": { + "button": "Änderungen speichern", + "note": "Vorsicht, Sie haben ungespeicherte Änderungen!" + }, + "notifications": { + "pending": { + "title": "Anpassungen werden gespeichert", + "message": "Bitte warten Sie, während wir Ihre Anpassungen speichern" + }, + "success": { + "title": "Anpassungen gespeichert", + "message": "Ihre Anpassungen wurden erfolgreich gespeichert" + }, + "error": { + "title": "Fehler", + "message": "Ihre Anpassungen konnten nicht gespeichert werden" + } + } +} \ No newline at end of file diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 796572b08..a43767043 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -1,11 +1,17 @@ { "save": "Speichern", + "apply": "Übernehmen", + "insert": "Einfügen", "about": "Über", "cancel": "Abbrechen", "close": "Schließen", + "back": "Zurück", "delete": "Löschen", "ok": "OK", "edit": "Bearbeiten", + "next": "Weiter", + "previous": "Zurück", + "confirm": "Bestätigen", "enabled": "Aktiviert", "disabled": "Deaktiviert", "enableAll": "Alle aktivieren", @@ -36,5 +42,14 @@ "medium": "Mittel", "large": "Groß" }, - "seeMore": "Mehr Informationen..." + "seeMore": "Mehr Informationen...", + "position": { + "left": "Links", + "center": "Mittig", + "right": "Rechts" + }, + "attributes": { + "width": "Breite", + "height": "Höhe" + } } \ No newline at end of file diff --git a/public/locales/de/layout/errors/access-denied.json b/public/locales/de/layout/errors/access-denied.json new file mode 100644 index 000000000..aed8326ba --- /dev/null +++ b/public/locales/de/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Zugriff verweigert", + "text": "Sie haben keine ausreichenden Zugriffsberechtigungen, um auf diese Seite zuzugreifen. Wenn Sie glauben, dass dies nicht beabsichtigt ist, kontaktieren Sie bitte Ihren Administrator.", + "switchAccount": "Zu einem anderen Konto wechseln" +} \ No newline at end of file diff --git a/public/locales/de/layout/header.json b/public/locales/de/layout/header.json new file mode 100644 index 000000000..2e00f717a --- /dev/null +++ b/public/locales/de/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Dies ist eine experimentelle Funktion von Homarr. Bitte melde Probleme auf GitHub oder Discord." + }, + "search": { + "label": "Suchen", + "engines": { + "web": "Suche nach {{query}} im Internet", + "youtube": "Suche nach {{query}} auf YouTube", + "torrent": "Suche nach {{query}} torrents", + "movie": "Suche nach {{query}} auf {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Design wechseln", + "preferences": "Benutzereinstellungen", + "defaultBoard": "Standard-Dashboard", + "manage": "Verwalten", + "logout": "{{username}} abmelden", + "login": "Anmelden" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Die ersten {{count}} Ergebnisse für {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/de/layout/manage.json b/public/locales/de/layout/manage.json new file mode 100644 index 000000000..a7216bf3a --- /dev/null +++ b/public/locales/de/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Startseite" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Benutzer", + "items": { + "manage": "Verwalten", + "invites": "Einladungen" + } + }, + "help": { + "title": "Hilfe", + "items": { + "documentation": "Dokumentation", + "report": "Ein Problem / einen Fehler melden", + "discord": "Community Discord", + "contribute": "Mitwirken" + } + }, + "tools": { + "title": "Werkzeuge", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Über" + } + } +} \ No newline at end of file diff --git a/public/locales/de/layout/modals/about.json b/public/locales/de/layout/modals/about.json index 7e21eb32b..ebc92d835 100644 --- a/public/locales/de/layout/modals/about.json +++ b/public/locales/de/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr ist ein schlankes und modernes Dashboard, das alle Ihre Apps und Dienste auf Knopfdruck zur Verfügung stellt. Mittels Homarr können Sie von einem einzigen Ort aus auf alles zugreifen und steuern. Es lässt sich nahtlos in die von Ihnen bevorzugten Apps integrieren und versorgt Sie mit wertvollen Informationen und der vollständige Kontrolle. Die Installation ist ein Kinderspiel, und es werden eine breite Palette von Konfigurations unterstützt.", - "contact": "Haben Sie Probleme oder Fragen? Nehmen Sie Kontakt mit uns auf!", "addToDashboard": "Zum Dashboard hinzufügen", "tip": "Mod bezieht sich auf die Modifikator Taste, d. h. Strg und Befehl/Super/Windows-Taste", "key": "Kurzbefehl Taste", "action": "Aktion", "keybinds": "Tastenbelegung", - "documentation": "Dokumentation", + "translators": "Übersetzer ({{count}})", + "translatorsDescription": "Dank dieser Leute ist Homarr in {{languages}} Sprachen verfügbar! Möchten Sie helfen, Homarr in Ihre Sprache zu übersetzen? Lesen Sie hier, wie das geht.", + "contributors": "Mitwirkende ({{count}})", + "contributorsDescription": "Diese Leute haben den Code erstellt, der Homarr zum Laufen bringt! Möchten Sie beim Aufbau von Homarr helfen? Lesen Sie hierwie das geht", "actions": { "toggleTheme": "Umschalten zwischen Hell- und Dunkelmodus", "focusSearchBar": "Suchleiste fokussieren", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Version des Konfigurationsschemas", - "configurationsCount": "Verfügbare Konfigurationen", "version": "Version", "nodeEnvironment": "Node-Umgebung", "i18n": "Geladene I18n Übersetzungs Namensräume", diff --git a/public/locales/de/layout/modals/add-app.json b/public/locales/de/layout/modals/add-app.json index 4e777f4e6..1b4a9f19e 100644 --- a/public/locales/de/layout/modals/add-app.json +++ b/public/locales/de/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Interne Adresse", - "description": "Interne IP-Adresse der Anwendung." + "description": "Interne IP-Adresse der Anwendung.", + "troubleshoot": { + "label": "Haben Sie Probleme?", + "header": "Hier finden Sie eine Liste der am häufigsten gemachten Fehler und deren Behebung:", + "lines": { + "nothingAfterPort": "Sie sollten in den meisten Fällen keinen Pfad nach dem Port eingeben (z.b. auch '/admin' für Pihole oder '/web' für Plex)", + "protocolCheck": "Achten Sie immer darauf, dass der URL ein http oder https vorangestellt ist, und stellen Sie sicher, dass Sie die richtige URL verwenden.", + "preferIP": "Es wird empfohlen, die direkte IP-Adresse der Maschine oder des Containers zu verwenden, mit der/dem Sie kommunizieren möchten.", + "enablePings": "Prüfen Sie, ob die IP erreichbar ist, indem Sie Pings aktivieren. Passen Sie das Board an -> Layout -> Pings aktivieren. Eine kleine rote oder grüne Blase erscheint auf Ihren App-Kacheln und wenn Sie sie anklicken, wird der Antwortcode angezeigt (in den meisten Fällen wird eine grüne Blase mit dem Code 200 erwartet).", + "wget": "Um sicherzustellen, dass homarr mit den anderen Anwendungen kommunizieren kann, stellen Sie sicher, dass Sie mit wget/curl/ping die IP:Port der Anwendung ermitteln.", + "iframe": "Wenn es um iframes geht, sollten diese immer das gleiche Protokoll (http/s) wie Homarr verwenden.", + "clearCache": "Einige Informationen werden im Cache gespeichert, so dass eine Integration möglicherweise nicht funktioniert, bis Sie den Cache in den allgemeinen Optionen von Homarr löschen." + }, + "footer": "Für weitere Fehlerbehebungen wenden Sie sich bitte an unseren {{discord}}." + } }, "externalAddress": { "label": "Externe Adresse", diff --git a/public/locales/de/manage/boards.json b/public/locales/de/manage/boards.json new file mode 100644 index 000000000..e0d919854 --- /dev/null +++ b/public/locales/de/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Kategorien" + }, + "buttons": { + "view": "Board anzeigen" + }, + "menu": { + "setAsDefault": "Als Standard-Board festlegen", + "delete": { + "label": "Dauerhaft löschen", + "disabled": "Ein Löschen wurde deaktiviert, da ältere Homarr-Komponenten das Löschen der Standardkonfiguration nicht erlauben. Die Löschung wird in Zukunft möglich sein." + } + }, + "badges": { + "fileSystem": "Dateisystem", + "default": "Standard" + } + }, + "buttons": { + "create": "Neues Board erstellen" + }, + "modals": { + "delete": { + "title": "Board löschen", + "text": "Sind Sie sicher, dass Sie dieses Board löschen wollen? Diese Aktion kann nicht rückgängig gemacht werden und Ihre Daten gehen dauerhaft verloren." + }, + "create": { + "title": "Board erstellen", + "text": "Der Name kann nicht mehr geändert werden, nachdem ein Board erstellt wurde.", + "form": { + "name": { + "label": "Name" + }, + "submit": "Erstellen" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/manage/index.json b/public/locales/de/manage/index.json new file mode 100644 index 000000000..41b962445 --- /dev/null +++ b/public/locales/de/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Verwalten", + "hero": { + "title": "Willkommen zurück, {{username}}", + "fallbackUsername": "Anonym", + "subtitle": "Willkommen bei Ihrem Application Hub. Organisieren, Optimieren und Erobern!" + }, + "quickActions": { + "title": "Quick Actions", + "boards": { + "title": "Deine Boards", + "subtitle": "Erstellen und verwalten Sie Ihre Boards" + }, + "inviteUsers": { + "title": "Einen neuen Benutzer einladen", + "subtitle": "Erstellen und versenden Sie eine Einladung zur Registrierung" + }, + "manageUsers": { + "title": "Verwaltung von Benutzern", + "subtitle": "Löschen und Verwalten Ihrer Benutzer" + } + } +} \ No newline at end of file diff --git a/public/locales/de/manage/users.json b/public/locales/de/manage/users.json new file mode 100644 index 000000000..8e104a643 --- /dev/null +++ b/public/locales/de/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Benutzer" + } + }, + "tooltips": { + "deleteUser": "Benutzer löschen", + "demoteAdmin": "Administrator degradieren", + "promoteToAdmin": "Zum Administrator befördern" + }, + "modals": { + "delete": { + "title": "Benutzer \"{{name}}\" löschen", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} löschen möchten? Dadurch werden die mit diesem Konto verbundenen Daten gelöscht, nicht aber die von diesem Benutzer erstellten Dashboards." + }, + "change-role": { + "promote": { + "title": "Benutzer {{name}} zum Administrator ernennen", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Admin befördern wollen? Dadurch erhält der Benutzer Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz." + }, + "demote": { + "title": "Benutzer {{name}} zum Benutzer degradieren", + "text": "Sind Sie sicher, dass Sie den Benutzer {{name}} zum Benutzer degradieren wollen? Dadurch wird dem Benutzer der Zugriff auf alle Ressourcen in Ihrer Homarr-Instanz entzogen." + }, + "confirm": "Bestätigen" + } + }, + "searchDoesntMatch": "Ihre Suche ergab keine Treffer. Bitte passen Sie Ihren Filter an." +} \ No newline at end of file diff --git a/public/locales/de/manage/users/create.json b/public/locales/de/manage/users/create.json new file mode 100644 index 000000000..2dfc8cfd2 --- /dev/null +++ b/public/locales/de/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Benutzer erstellen", + "steps": { + "account": { + "title": "Erster Schritt", + "text": "Account erstellen", + "username": { + "label": "Benutzername" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Zweiter Schritt", + "text": "Passwort", + "password": { + "label": "Passwort" + } + }, + "finish": { + "title": "Bestätigung", + "text": "In Datenbank speichern", + "card": { + "title": "Überprüfen Sie Ihre Eingaben", + "text": "Nachdem Sie Ihre Daten an die Datenbank übermittelt haben, kann sich der Benutzer anmelden. Sind Sie sicher, dass Sie diesen Benutzer in der Datenbank speichern und die Anmeldung aktivieren wollen?" + }, + "table": { + "header": { + "property": "Eigenschaft", + "value": "Wert", + "username": "Benutzername", + "email": "E-Mail", + "password": "Passwort" + }, + "notSet": "Nicht festgelegt", + "valid": "Gültig" + }, + "failed": "Die Erstellung eines Benutzers ist fehlgeschlagen: {{error}}" + }, + "completed": { + "alert": { + "title": "Benutzer wurde erstellt", + "text": "Der Benutzer wurde in der Datenbank angelegt. Er kann sich nun anmelden." + } + } + }, + "buttons": { + "generateRandomPassword": "Zufällig generieren", + "createAnother": "Weiteren erstellen" + } +} \ No newline at end of file diff --git a/public/locales/de/manage/users/invites.json b/public/locales/de/manage/users/invites.json new file mode 100644 index 000000000..0c7ac8665 --- /dev/null +++ b/public/locales/de/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Benutzereinladungen", + "pageTitle": "Verwalten von Benutzereinladungen", + "description": "Mit Einladungen können Sie Benutzer zu Ihrer Homarr-Instanz einladen. Eine Einladung ist nur für eine bestimmte Zeitspanne gültig und kann nur einmal verwendet werden. Die Gültigkeitsdauer muss bei der Erstellung zwischen 5 Minuten und 12 Monaten liegen.", + "button": { + "createInvite": "Einladung erstellen", + "deleteInvite": "Einladung löschen" + }, + "table": { + "header": { + "id": "ID", + "creator": "Ersteller", + "expires": "Endet", + "action": "Aktivitäten" + }, + "data": { + "expiresAt": "Abgelaufen {{at}}", + "expiresIn": "in {{in}}" + } + }, + "modals": { + "create": { + "title": "Einladung erstellen", + "description": "Nach Ablauf der Frist ist eine Einladung nicht mehr gültig und der Empfänger der Einladung kann kein Konto erstellen.", + "form": { + "expires": "Ablaufdatum", + "submit": "Erstellen" + } + }, + "copy": { + "title": "Einladung kopieren", + "description": "Ihre Einladung wurde erstellt. Nachdem dieses Modal geschlossen wurde, können Sie diesen Link nicht mehr kopieren. Wenn Sie die besagte Person nicht mehr einladen möchten, können Sie diese Einladung jederzeit löschen.", + "invitationLink": "Link zur Einladung", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopieren & Verwerfen" + } + }, + "delete": { + "title": "Einladung löschen", + "description": "Sind Sie sicher, dass Sie diese Einladung löschen möchten? Benutzer mit diesem Link können dann kein Konto mehr über diesen Link erstellen." + } + }, + "noInvites": "Es liegen noch keine Einladungen vor." +} \ No newline at end of file diff --git a/public/locales/de/modules/calendar.json b/public/locales/de/modules/calendar.json index 6a861d304..1f09196d8 100644 --- a/public/locales/de/modules/calendar.json +++ b/public/locales/de/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Zeigt einen Kalender mit anstehenden Veröffentlichungen von unterstützten Widgets an.", "settings": { "title": "Kalender Widget Einstellungen", - "useSonarrv4": { - "label": "Sonarr v4 API verwenden" - }, - "sundayStart": { - "label": "Wochenbeginn am Sonntag" - }, "radarrReleaseType": { "label": "Radarr Veröffentlichungs Typ", "data": { diff --git a/public/locales/de/modules/dns-hole-controls.json b/public/locales/de/modules/dns-hole-controls.json index 512267204..9bba851bb 100644 --- a/public/locales/de/modules/dns-hole-controls.json +++ b/public/locales/de/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS-Hole Steuerung", - "description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus" + "description": "Steuern Sie PiHole oder AdGuard von Ihrem Dashboard aus", + "settings": { + "title": "Einstellungen für DNS-Kontrollen", + "showToggleAllButtons": { + "label": "Schaltflächen \"Alle aktivieren/deaktivieren\" anzeigen" + } + }, + "errors": { + "general": { + "title": "Konnte kein DNS Hole finden", + "text": "Es gab ein Problem bei der Verbindung zu Ihrem DNS Hole(s). Bitte überprüfen Sie Ihre Konfiguration/Integration(en)." + } + } } } \ No newline at end of file diff --git a/public/locales/de/modules/dns-hole-summary.json b/public/locales/de/modules/dns-hole-summary.json index 99a724ebd..8d2cab48a 100644 --- a/public/locales/de/modules/dns-hole-summary.json +++ b/public/locales/de/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domains auf der Adlist", "queriesToday": "Heutige Anfragen", - "queriesBlockedTodayPercentage": "heute blockiert", - "queriesBlockedToday": "heute blockiert" + "queriesBlockedTodayPercentage": "Heute blockiert", + "queriesBlockedToday": "Heute blockiert" } } } diff --git a/public/locales/de/modules/media-requests-list.json b/public/locales/de/modules/media-requests-list.json index e3a8ca384..9f04bce4d 100644 --- a/public/locales/de/modules/media-requests-list.json +++ b/public/locales/de/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Keine Anfragen gefunden. Bitte stellen Sie sicher, dass Sie Ihre Anwendungen richtig konfiguriert haben.", - "pending": "{{countPendingApproval}} Anfragen warten auf eine Genehmigung.", - "nonePending": "Es sind derzeit keine Genehmigungen ausstehend. Sie sind startklar!", "state": { "approved": "Genehmigt", "pendingApproval": "Warten auf Freigabe", diff --git a/public/locales/de/modules/notebook.json b/public/locales/de/modules/notebook.json index baf35c136..496e6ef51 100644 --- a/public/locales/de/modules/notebook.json +++ b/public/locales/de/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Zeigt die Symbolleiste an, um Ihnen beim Schreiben der Markdown zu assistieren" }, + "allowReadOnlyCheck": { + "label": "Prüfung im Nur-Lese-Modus zulassen" + }, "content": { "label": "Der Inhalt des Notizbuchs" } } + }, + "card": { + "controls": { + "bold": "Fett", + "italic": "Kursiv", + "strikethrough": "Durchgestrichen", + "underline": "Unterstrichen", + "colorText": "Farbiger Text", + "colorHighlight": "Farbig hervorgehobener Text", + "code": "Code", + "clear": "Formatierung entfernen", + "heading": "Überschrift {{level}}", + "align": "Text ausrichten: {{position}}", + "blockquote": "Blockzitat", + "horizontalLine": "Horizontale Linie", + "bulletList": "Aufzählung", + "orderedList": "Geordnete Liste", + "checkList": "Checkliste", + "increaseIndent": "Einzug vergrößern", + "decreaseIndent": "Einzug verkleinern", + "link": "Link", + "unlink": "Link entfernen", + "image": "Bild einbetten", + "addTable": "Tabelle hinzufügen", + "deleteTable": "Tabelle entfernen", + "colorCell": "Farbe der Tabellen Zelle", + "mergeCell": "Zellen-Zusammenführung umschalten", + "addColumnLeft": "Spalte davor hinzufügen", + "addColumnRight": "Spalte danach hinzufügen", + "deleteColumn": "Spalte löschen", + "addRowTop": "Zeile davor hinzufügen", + "addRowBelow": "Zeile danach hinzufügen", + "deleteRow": "Zeile löschen" + }, + "modals": { + "clearColor": "Farbe entfernen", + "source": "Quelle", + "widthPlaceholder": "Wert in % oder Pixel", + "columns": "Spalten", + "rows": "Zeilen" + } } } \ No newline at end of file diff --git a/public/locales/de/modules/rss.json b/public/locales/de/modules/rss.json index 3b6b75a3c..f5f0513d6 100644 --- a/public/locales/de/modules/rss.json +++ b/public/locales/de/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS-Widget", - "description": "", + "description": "Mit dem RSS-Widget können Sie RSS-Feeds auf Ihrem Dashboard anzeigen.", "settings": { "title": "Einstellungen für das RSS-Widget", "rssFeedUrl": { diff --git a/public/locales/de/modules/torrents-status.json b/public/locales/de/modules/torrents-status.json index 14f757fed..fc8a201f0 100644 --- a/public/locales/de/modules/torrents-status.json +++ b/public/locales/de/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Abgeschlossene Torrents anzeigen" }, + "displayActiveTorrents": { + "label": "Aktive Torrents anzeigen" + }, + "speedLimitOfActiveTorrents": { + "label": "Upload-Geschwindigkeit, um einen Torrent als aktiv zu betrachten (kB/s)" + }, "displayStaleTorrents": { "label": "Angehaltene Torrents anzeigen" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Labelliste", "description": "Wenn \"ist Whitelist\" ausgewählt ist, handel es sich um eine Whitelist. Ist \"ist Whitelist\" nicht ausgewählt, handelt es sich um eine Blacklist. Wenn die Auswahl leer ist, wird nicht passieren" + }, + "displayRatioWithFilter": { + "label": "Verhältnis der gefilterten Torrents-Liste anzeigen", + "info": "Ist diese Option deaktiviert, wird nur das globale Verhältnis angezeigt. Für das globale Verhältnis werden weiterhin die Beschriftungen verwendet, wenn diese eingestellt sind" } } }, "card": { "footer": { "error": "Fehler", - "lastUpdated": "Zuletzt aktualisiert vor {{time}}" + "lastUpdated": "Zuletzt aktualisiert vor {{time}}", + "ratioGlobal": "Globales Verhältnis", + "ratioWithFilter": "Verhältnis mit Filter" }, "table": { "header": { diff --git a/public/locales/de/password-requirements.json b/public/locales/de/password-requirements.json new file mode 100644 index 000000000..305484c53 --- /dev/null +++ b/public/locales/de/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Enthält Ziffern", + "lowercase": "Enthält Kleinbuchstaben", + "uppercase": "Enthält Großbuchstaben", + "special": "Enthält Sonderzeichen", + "length": "Enthält mindestens {{count}} Zeichen" +} \ No newline at end of file diff --git a/public/locales/de/settings/customization/access.json b/public/locales/de/settings/customization/access.json new file mode 100644 index 000000000..5e31bc32e --- /dev/null +++ b/public/locales/de/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonyme zulassen", + "description": "Benutzern die nicht eingeloggt sind, erlauben, Ihr Board anzusehen" + } +} \ No newline at end of file diff --git a/public/locales/de/settings/customization/general.json b/public/locales/de/settings/customization/general.json index 303d73d13..030cbe733 100644 --- a/public/locales/de/settings/customization/general.json +++ b/public/locales/de/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Barrierefreiheit", "description": "Homarr für behinderte und gehandicapte Benutzer einrichten" + }, + "access": { + "name": "Zugang", + "description": "Konfigurieren Sie, wer Zugriff auf Ihr Board hat" } } } diff --git a/public/locales/de/settings/customization/page-appearance.json b/public/locales/de/settings/customization/page-appearance.json index 123252c7c..b67918dac 100644 --- a/public/locales/de/settings/customization/page-appearance.json +++ b/public/locales/de/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Außerdem können Sie Ihr Dashboard mittels CSS anpassen, dies wird nur für erfahrene Benutzer empfohlen", "placeholder": "Benutzerdefiniertes CSS wird zuletzt angewendet", "applying": "CSS wird übernommen..." - }, - "buttons": { - "submit": "Absenden" } -} +} \ No newline at end of file diff --git a/public/locales/de/tools/docker.json b/public/locales/de/tools/docker.json new file mode 100644 index 000000000..622947e1f --- /dev/null +++ b/public/locales/de/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Auf Ihrer Homarr-Instanz ist Docker nicht konfiguriert oder es ist nicht möglich, Container zu erkennen. Bitte lesen Sie in der Dokumentation nach, wie Sie diese Integration einrichten können." + } + }, + "modals": { + "selectBoard": { + "title": "Board auswählen", + "text": "Wählen Sie das Board, dem Sie die Anwendungen für die ausgewählten Docker-Container hinzufügen möchten.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Apps hinzufügen" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Anwendungen zum Board hinzugefügt", + "message": "Die Anwendungen für die ausgewählten Docker-Container wurden dem Board hinzugefügt." + }, + "error": { + "title": "Anwendungen konnten nicht zum Board hinzugefügt werden", + "message": "Die Anwendungen für die ausgewählten Docker-Container konnten dem Board nicht hinzugefügt werden." + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/user/preferences.json b/public/locales/de/user/preferences.json new file mode 100644 index 000000000..8f1b9573c --- /dev/null +++ b/public/locales/de/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Einstellungen", + "pageTitle": "Ihre Einstellungen", + "boards": { + "defaultBoard": { + "label": "Standard-Board" + } + }, + "accessibility": { + "title": "Barrierefreiheit", + "disablePulse": { + "label": "Ping-Puls deaktivieren", + "description": "Standardmäßig pulsieren die Ping-Indikatoren in Homarr. Dies kann irritierend sein. Mit diesem Regler kann diese Animation deaktiviert werden" + }, + "replaceIconsWithDots": { + "label": "Ping Punkte mit Icons ersetzen", + "description": "Für farbenblinde Benutzer können Ping-Punkte nicht erkennbar sein. Dies ersetzt Indikatoren durch Icons" + } + }, + "localization": { + "language": { + "label": "Sprache" + }, + "firstDayOfWeek": { + "label": "Erster Tag der Woche", + "options": { + "monday": "Montag", + "saturday": "Samstag", + "sunday": "Sonntag" + } + } + }, + "searchEngine": { + "title": "Suchmaschine", + "custom": "Benutzerdefiniert", + "newTab": { + "label": "Suchergebnisse in neuem Tab öffnen" + }, + "autoFocus": { + "label": "Suchleiste beim Laden der Seite fokussieren.", + "description": "Dadurch wird die Suchleiste automatisch fokussiert, wenn Sie auf den Seiten des Boards navigieren. Dies funktioniert nur auf Desktop-Geräten." + }, + "template": { + "label": "Suchanfrage URL", + "description": "Verwenden Sie %s als Platzhalter für die Suchanfrage" + } + } +} \ No newline at end of file diff --git a/public/locales/de/zod.json b/public/locales/de/zod.json new file mode 100644 index 000000000..4f5b08ba1 --- /dev/null +++ b/public/locales/de/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dieses Feld ist ungültig", + "required": "Dieses Feld ist erforderlich", + "string": { + "startsWith": "Dieses Feld muss mit {{startsWith}} beginnen", + "endsWith": "Dieses Feld muss mit {{endsWith}} enden", + "includes": "Dieses Feld muss {{includes}} beinhalten" + }, + "tooSmall": { + "string": "Dieses Feld muss mindestens {{minimum}} Zeichen lang sein", + "number": "Dieses Feld muss größer oder gleich {{minimum}} sein" + }, + "tooBig": { + "string": "Dieses Feld muss mindestens {{maximum}} Zeichen lang sein", + "number": "Dieses Feld muss größer oder gleich {{maximum}} sein" + }, + "custom": { + "passwordMatch": "Die Passwörter müssen übereinstimmen" + } + } +} \ No newline at end of file diff --git a/public/locales/el/authentication/invite.json b/public/locales/el/authentication/invite.json new file mode 100644 index 000000000..36da398c0 --- /dev/null +++ b/public/locales/el/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Δημιουργία λογαριασμού", + "title": "Δημιουργία λογαριασμού", + "text": "Παρακαλώ καθορίστε τα διαπιστευτήριά σας παρακάτω", + "form": { + "fields": { + "username": { + "label": "Όνομα Χρήστη" + }, + "password": { + "label": "Κωδικός" + }, + "passwordConfirmation": { + "label": "Επιβεβαίωση κωδικού" + } + }, + "buttons": { + "submit": "Δημιουργία λογαριασμού" + } + }, + "notifications": { + "loading": { + "title": "Δημιουργία λογαριασμού", + "text": "Παρακαλώ περιμένετε" + }, + "success": { + "title": "Ο λογαριασμός δημιουργήθηκε", + "text": "Ο λογαριασμός σας έχει δημιουργηθεί επιτυχώς" + }, + "error": { + "title": "Σφάλμα", + "text": "Κάτι πήγε στραβά, προέκυψε το ακόλουθο σφάλμα: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/el/authentication/login.json b/public/locales/el/authentication/login.json index a3d52ba4d..482657f6d 100644 --- a/public/locales/el/authentication/login.json +++ b/public/locales/el/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Σύνδεση", "title": "Καλώς ήρθατε!", - "text": "Παρακαλώ εισάγετε τον κωδικό σας", + "text": "Παρακαλώ εισάγετε τα στοιχεία σας", "form": { "fields": { + "username": { + "label": "Όνομα Χρήστη" + }, "password": { - "label": "Κωδικός", - "placeholder": "Ο κωδικός σας" + "label": "Κωδικός" } }, "buttons": { "submit": "Σύνδεση" - } + }, + "afterLoginRedirection": "Μετά τη σύνδεση, θα μεταφερθείτε στο {{url}}" }, - "notifications": { - "checking": { - "title": "Έλεγχος κωδικού πρόσβασης", - "message": "Ο κωδικός πρόσβασής σας ελέγχεται..." - }, - "correct": { - "title": "Σύνδεση επιτυχής, ανακατεύθυνση..." - }, - "wrong": { - "title": "Ο κωδικός που εισαγάγατε είναι εσφαλμένος. Προσπαθήστε ξανά." - } - } -} + "alert": "Τα διαπιστευτήριά σας είναι λανθασμένα ή αυτός ο λογαριασμός δεν υπάρχει. Προσπαθήστε ξανά." +} \ No newline at end of file diff --git a/public/locales/el/boards/common.json b/public/locales/el/boards/common.json new file mode 100644 index 000000000..2b880351c --- /dev/null +++ b/public/locales/el/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Προσαρμογή ταμπλό" + } +} \ No newline at end of file diff --git a/public/locales/el/boards/customize.json b/public/locales/el/boards/customize.json new file mode 100644 index 000000000..fbda90d4d --- /dev/null +++ b/public/locales/el/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Προσαρμογή {{name}} ταμπλό", + "pageTitle": "Προσαρμογή για το ταμπλό {{name}}", + "backToBoard": "Πίσω στο ταμπλό", + "settings": { + "appearance": { + "primaryColor": "Βασικό χρώμα", + "secondaryColor": "Δευτερεύον χρώμα" + } + }, + "save": { + "button": "Αποθήκευση αλλαγών", + "note": "Προσοχή, έχετε μη αποθηκευμένες αλλαγές!" + }, + "notifications": { + "pending": { + "title": "Αποθήκευση προσαρμογής", + "message": "Παρακαλώ περιμένετε όσο αποθηκεύουμε την προσαρμογή σας" + }, + "success": { + "title": "Η προσαρμογή αποθηκεύτηκε", + "message": "Η προσαρμογή σας έχει αποθηκευτεί με επιτυχία" + }, + "error": { + "title": "Σφάλμα", + "message": "Αδυναμία αποθήκευσης αλλαγών" + } + } +} \ No newline at end of file diff --git a/public/locales/el/common.json b/public/locales/el/common.json index c0eaa2b53..44d0cc3b1 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -1,11 +1,17 @@ { "save": "Αποθήκευση", + "apply": "", + "insert": "", "about": "Σχετικά", "cancel": "Ακύρωση", "close": "Κλείσιμο", + "back": "Πίσω", "delete": "Διαγραφή", "ok": "ΟΚ", "edit": "Επεξεργασία", + "next": "Επόμενο", + "previous": "Προηγούμενο", + "confirm": "Επιβεβαίωση", "enabled": "Ενεργοποιημένο", "disabled": "Απενεργοποιημένο", "enableAll": "Ενεργοποίηση όλων", @@ -36,5 +42,14 @@ "medium": "μεσαίο", "large": "μεγάλο" }, - "seeMore": "Δείτε περισσότερα..." + "seeMore": "Δείτε περισσότερα...", + "position": { + "left": "Αριστερά", + "center": "", + "right": "Δεξιά" + }, + "attributes": { + "width": "Πλάτος", + "height": "Ύψος" + } } \ No newline at end of file diff --git a/public/locales/el/layout/errors/access-denied.json b/public/locales/el/layout/errors/access-denied.json new file mode 100644 index 000000000..a7598e801 --- /dev/null +++ b/public/locales/el/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Δεν επιτρέπεται η πρόσβαση", + "text": "Δεν έχετε επαρκή δικαιώματα πρόσβασης σε αυτή τη σελίδα. Εάν πιστεύετε ότι αυτό δεν είναι σκόπιμο, παρακαλούμε επικοινωνήστε με τον διαχειριστή σας.", + "switchAccount": "Μετάβαση σε διαφορετικό λογαριασμό" +} \ No newline at end of file diff --git a/public/locales/el/layout/header.json b/public/locales/el/layout/header.json new file mode 100644 index 000000000..d762e5e35 --- /dev/null +++ b/public/locales/el/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Αυτή είναι μια πειραματική λειτουργία του Homarr. Αναφέρετε τυχόν προβλήματα στο GitHub ή στο Discord." + }, + "search": { + "label": "Αναζήτηση", + "engines": { + "web": "Αναζήτηση για {{query}} στο διαδίκτυο", + "youtube": "Αναζήτηση για {{query}} στο YouTube", + "torrent": "Αναζήτηση για {{query}} torrents", + "movie": "Αναζήτηση για {{query}} στο {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Αλλαγή θέματος", + "preferences": "Προτιμήσεις χρήστη", + "defaultBoard": "Προεπιλεγμένο ταμπλό", + "manage": "Διαχείριση", + "logout": "Αποσύνδεση από {{username}}", + "login": "Σύνδεση" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Κορυφαία αποτελέσματα {{count}} για {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/el/layout/manage.json b/public/locales/el/layout/manage.json new file mode 100644 index 000000000..76d2eb2b7 --- /dev/null +++ b/public/locales/el/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Αρχική" + }, + "boards": { + "title": "Πίνακες" + }, + "users": { + "title": "Χρήστες", + "items": { + "manage": "Διαχείριση", + "invites": "Προσκλήσεις" + } + }, + "help": { + "title": "Βοήθεια", + "items": { + "documentation": "Τεκμηρίωση", + "report": "Αναφορά προβλήματος / σφάλματος", + "discord": "Κοινότητα Discord", + "contribute": "Συνεισφέρετε" + } + }, + "tools": { + "title": "Εργαλεία", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Σχετικά" + } + } +} \ No newline at end of file diff --git a/public/locales/el/layout/modals/about.json b/public/locales/el/layout/modals/about.json index 65bf58481..ba1d01c47 100644 --- a/public/locales/el/layout/modals/about.json +++ b/public/locales/el/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Το Homarr είναι ένα κομψό, μοντέρνο ταμπλό που βάζει όλες τις εφαρμογές και τις υπηρεσίες σας στα χέρια σας. Με το Homarr, μπορείτε να έχετε πρόσβαση και να ελέγχετε τα πάντα σε μια βολική τοποθεσία. Το Homarr ενσωματώνεται απρόσκοπτα με τις εφαρμογές που έχετε προσθέσει, παρέχοντάς σας πολύτιμες πληροφορίες και δίνοντάς σας πλήρη έλεγχο. Η εγκατάσταση είναι πανεύκολη και το Homarr υποστηρίζει ένα ευρύ φάσμα μεθόδων ανάπτυξης.", - "contact": "Έχετε προβλήματα ή ερωτήσεις; Συνδεθείτε μαζί μας!", "addToDashboard": "Προσθήκη στο ταμπλό", "tip": "Το Mod αναφέρεται στο πλήκτρο τροποποίησης, είναι τα πλήκτρα Ctrl και Command/Super/Windows", "key": "Πλήκτρο συντόμευσης", "action": "Ενέργεια", "keybinds": "Δεσμοί πλήκτρων", - "documentation": "Τεκμηρίωση", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "Αλλαγή φωτεινού / σκοτεινού θέματος", "focusSearchBar": "Εστίαση στο πλαίσιο αναζήτησης", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Έκδοση σχήματος διαμόρφωσης", - "configurationsCount": "Διαθέσιμες διαμορφώσεις", "version": "Έκδοση", "nodeEnvironment": "Περιβάλλον κόμβου", "i18n": "Φορτωμένα πεδία ονομάτων μετάφρασης I18n", diff --git a/public/locales/el/layout/modals/add-app.json b/public/locales/el/layout/modals/add-app.json index 30f490cff..348cd18fb 100644 --- a/public/locales/el/layout/modals/add-app.json +++ b/public/locales/el/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Εσωτερική διεύθυνση", - "description": "Η εσωτερική διεύθυνση IP της εφαρμογής." + "description": "Η εσωτερική διεύθυνση IP της εφαρμογής.", + "troubleshoot": { + "label": "Έχετε προβλήματα;", + "header": "Εδώ είναι μια λίστα με συνήθη λάθη και αντιμετώπιση προβλημάτων:", + "lines": { + "nothingAfterPort": "Στις περισσότερες, αν όχι σε όλες τις περιπτώσεις, δεν θα πρέπει να εισαγάγετε καμία διαδρομή μετά τη θύρα. (Ακόμα και το '/admin' για το pihole ή το '/web' για το plex)", + "protocolCheck": "Βεβαιωθείτε πάντα ότι της διεύθυνσης URL προηγείται το http ή το https, και βεβαιωθείτε ότι χρησιμοποιείτε το σωστό.", + "preferIP": "Συνιστάται να χρησιμοποιείτε την άμεση ip του μηχανήματος ή του container με το οποίο προσπαθείτε να επικοινωνήσετε.", + "enablePings": "Ελέγξτε ότι η διεύθυνση IP είναι σωστή ενεργοποιώντας τα pings. Προσαρμογή πίνακα -> Διάταξη -> Ενεργοποίηση pings. Μια μικρή κόκκινη ή πράσινη φούσκα θα εμφανιστεί στα πλακίδια της εφαρμογής σας και αν κρατήσετε από πάνω το ποντίκι σας, θα σας δώσει τον κωδικό απάντησης (στις περισσότερες περιπτώσεις αναμένεται μια πράσινη φούσκα με κωδικό 200).", + "wget": "Για να βεβαιωθείτε ότι το homarr μπορεί να επικοινωνήσει με τις άλλες εφαρμογές, βεβαιωθείτε ότι μπορείτε να κάνετε wget/curl/ping στην IP:port της εφαρμογής.", + "iframe": "Όσον αφορά τα iframes, αυτά θα πρέπει πάντα να χρησιμοποιούν το ίδιο πρωτόκολλο (http/s) με το Homarr.", + "clearCache": "Ορισμένες πληροφορίες καταχωρούνται στην προσωρινή μνήμη, οπότε μια ενσωμάτωση μπορεί να μη λειτουργήσει αν δεν καθαρίσετε την προσωρινή μνήμη στις γενικές επιλογές του Homarr." + }, + "footer": "Για περισσότερη αντιμετώπιση προβλημάτων, επικοινωνήστε μαζί μας στο {{discord}}." + } }, "externalAddress": { "label": "Εξωτερική διεύθυνση", diff --git a/public/locales/el/manage/boards.json b/public/locales/el/manage/boards.json new file mode 100644 index 000000000..49eb38fa6 --- /dev/null +++ b/public/locales/el/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Πίνακες", + "pageTitle": "Πίνακες", + "cards": { + "statistics": { + "apps": "Εφαρμογές", + "widgets": "Widgets", + "categories": "Κατηγορίες" + }, + "buttons": { + "view": "Προβολή πίνακα" + }, + "menu": { + "setAsDefault": "Ορισμός ως προεπιλεγμένος πίνακας", + "delete": { + "label": "Οριστική διαγραφή", + "disabled": "Η διαγραφή απενεργοποιήθηκε, επειδή τα παλαιότερα components του Homarr δεν επιτρέπουν τη διαγραφή των προεπιλεγμένων ρυθμίσεων. Η διαγραφή θα είναι δυνατή στο μέλλον." + } + }, + "badges": { + "fileSystem": "Σύστημα αρχείων", + "default": "Προεπιλογή" + } + }, + "buttons": { + "create": "Δημιουργία νέου πίνακα" + }, + "modals": { + "delete": { + "title": "Διαγραφή πίνακα", + "text": "Είστε σίγουροι, ότι θέλετε να διαγράψετε αυτόν τον πίνακα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί και τα δεδομένα σας θα χαθούν μόνιμα." + }, + "create": { + "title": "Δημιουργία πίνακα", + "text": "Το όνομα δεν μπορεί να αλλάξει μετά τη δημιουργία του πίνακα.", + "form": { + "name": { + "label": "Όνομα" + }, + "submit": "Δημιουργία" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/manage/index.json b/public/locales/el/manage/index.json new file mode 100644 index 000000000..a3d51981d --- /dev/null +++ b/public/locales/el/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Διαχείριση", + "hero": { + "title": "Καλώς ήρθατε, {{username}}", + "fallbackUsername": "Ανώνυμος", + "subtitle": "Καλώς ήρθατε στον κόμβο εφαρμογών σας. Οργανώστε, βελτιστοποιήστε και κατακτήστε!" + }, + "quickActions": { + "title": "Γρήγορες ενέργειες", + "boards": { + "title": "Οι πίνακές σας", + "subtitle": "Δημιουργήστε και διαχειριστείτε τους πίνακες σας" + }, + "inviteUsers": { + "title": "Πρόσκληση νέου χρήστη", + "subtitle": "Δημιουργία και αποστολή πρόσκλησης για εγγραφή" + }, + "manageUsers": { + "title": "Διαχείριση χρηστών", + "subtitle": "Διαγραφή και διαχείριση των χρηστών σας" + } + } +} \ No newline at end of file diff --git a/public/locales/el/manage/users.json b/public/locales/el/manage/users.json new file mode 100644 index 000000000..196ed572c --- /dev/null +++ b/public/locales/el/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Χρήστες", + "pageTitle": "Διαχείριση χρηστών", + "text": "Χρησιμοποιώντας τους χρήστες, μπορείτε να ρυθμίσετε ποιος μπορεί να επεξεργάζεται τους πίνακές σας. Οι μελλοντικές εκδόσεις του Homarr θα έχουν ακόμα πιο λεπτομερή έλεγχο των δικαιωμάτων και των πινάκων.", + "buttons": { + "create": "Δημιουργία" + }, + "table": { + "header": { + "user": "Χρήστης" + } + }, + "tooltips": { + "deleteUser": "Διαγραφή χρήστη", + "demoteAdmin": "Υποβίβαση διαχειριστή", + "promoteToAdmin": "Προαγωγή σε διαχειριστή" + }, + "modals": { + "delete": { + "title": "Διαγραφή χρήστη {{name}}", + "text": "Είστε σίγουροι ότι θέλετε να διαγράψετε τον χρήστη {{name}}; Αυτό θα διαγράψει τα δεδομένα που σχετίζονται με αυτόν τον λογαριασμό, αλλά όχι τους πίνακες που έχουν δημιουργηθεί από αυτόν τον χρήστη." + }, + "change-role": { + "promote": { + "title": "Προαγωγή του χρήστη {{name}} σε διαχειριστή", + "text": "Είστε σίγουροι ότι θέλετε να προάγετε τον χρήστη {{name}} σε διαχειριστή; Αυτό θα δώσει στον χρήστη πρόσβαση σε όλους τους πόρους της Homarr εγκατάστασης σας." + }, + "demote": { + "title": "Υποβιβασμός του χρήστη {{name}} σε χρήστη", + "text": "Είστε σίγουροι ότι θέλετε να υποβιβάσετε τον χρήστη {{name}} σε χρήστη; Αυτό θα αφαιρέσει την πρόσβαση του χρήστη σε όλους τους πόρους της Homarr εγκατάστασης σας." + }, + "confirm": "Επιβεβαίωση" + } + }, + "searchDoesntMatch": "Η αναζήτησή σας δεν ταιριάζει με καμία καταχώριση. Παρακαλώ προσαρμόστε το φίλτρο σας." +} \ No newline at end of file diff --git a/public/locales/el/manage/users/create.json b/public/locales/el/manage/users/create.json new file mode 100644 index 000000000..5a842bc4c --- /dev/null +++ b/public/locales/el/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Δημιουργία χρήστη", + "steps": { + "account": { + "title": "Πρώτο βήμα", + "text": "Δημιουργία λογαριασμού", + "username": { + "label": "Όνομα Χρήστη" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Δεύτερο βήμα", + "text": "Κωδικός", + "password": { + "label": "Κωδικός" + } + }, + "finish": { + "title": "Επιβεβαίωση", + "text": "Αποθήκευση στη βάση δεδομένων", + "card": { + "title": "Ελέγξτε τις εισαγωγές σας", + "text": "Μετά την υποβολή των δεδομένων σας στη βάση δεδομένων, ο χρήστης θα είναι σε θέση να συνδεθεί. Είστε βέβαιοι ότι θέλετε να αποθηκεύσετε αυτό το χρήστη στη βάση δεδομένων και να ενεργοποιήσετε τη σύνδεση;" + }, + "table": { + "header": { + "property": "Ιδιότητα", + "value": "Τιμή", + "username": "Όνομα Χρήστη", + "email": "E-Mail", + "password": "Κωδικός" + }, + "notSet": "Δεν έχει οριστεί", + "valid": "Έγκυρο" + }, + "failed": "Η δημιουργία χρήστη απέτυχε: {{error}}" + }, + "completed": { + "alert": { + "title": "Ο χρήστης δημιουργήθηκε", + "text": "Ο χρήστης δημιουργήθηκε στη βάση δεδομένων. Μπορεί πλέον να συνδεθεί." + } + } + }, + "buttons": { + "generateRandomPassword": "Δημιουργία τυχαίου", + "createAnother": "Δημιουργία άλλου" + } +} \ No newline at end of file diff --git a/public/locales/el/manage/users/invites.json b/public/locales/el/manage/users/invites.json new file mode 100644 index 000000000..25f762e86 --- /dev/null +++ b/public/locales/el/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Προσκλήσεις χρηστών", + "pageTitle": "Διαχείριση προσκλήσεων χρηστών", + "description": "Χρησιμοποιώντας προσκλήσεις, μπορείτε να προσκαλέσετε χρήστες στο Homarr σας. Μια πρόσκληση ισχύει μόνο για συγκεκριμένο χρονικό διάστημα και μπορεί να χρησιμοποιηθεί μία φορά. Η λήξη πρέπει να είναι μεταξύ 5 λεπτών και 12 μηνών κατά τη δημιουργία.", + "button": { + "createInvite": "Δημιουργία πρόσκλησης", + "deleteInvite": "Διαγραφή πρόσκλησης" + }, + "table": { + "header": { + "id": "Αναγνωριστικό (ID)", + "creator": "Δημιουργός", + "expires": "Λήγει", + "action": "Ενέργειες" + }, + "data": { + "expiresAt": "έληξε {{at}}", + "expiresIn": "σε {{in}}" + } + }, + "modals": { + "create": { + "title": "Δημιουργία πρόσκλησης", + "description": "Μετά τη λήξη, μια πρόσκληση δε θα είναι πλέον έγκυρη και ο παραλήπτης της πρόσκλησης δε θα είναι σε θέση να δημιουργήσει λογαριασμό.", + "form": { + "expires": "Ημερομηνία λήξης", + "submit": "Δημιουργία" + } + }, + "copy": { + "title": "Αντιγραφή πρόσκλησης", + "description": "Η πρόσκλησή σας έχει δημιουργηθεί. Αφού κλείσει αυτό το modal, δεν θα μπορείτε πλέον να αντιγράψετε αυτόν τον σύνδεσμο. Εάν δεν επιθυμείτε πλέον να προσκαλέσετε το εν λόγω άτομο, μπορείτε να διαγράψετε αυτή την πρόσκληση ανά πάσα στιγμή.", + "invitationLink": "Σύνδεσμος πρόσκλησης", + "details": { + "id": "Αναγνωριστικό (ID)", + "token": "Token" + }, + "button": { + "close": "Αντιγραφή & Απόρριψη" + } + }, + "delete": { + "title": "Διαγραφή πρόσκλησης", + "description": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την πρόσκληση; Οι χρήστες με αυτόν τον σύνδεσμο δεν θα μπορούν πλέον να δημιουργήσουν λογαριασμό χρησιμοποιώντας αυτόν τον σύνδεσμο." + } + }, + "noInvites": "Δεν υπάρχουν ακόμη προσκλήσεις." +} \ No newline at end of file diff --git a/public/locales/el/modules/calendar.json b/public/locales/el/modules/calendar.json index 89067bed6..69b579c13 100644 --- a/public/locales/el/modules/calendar.json +++ b/public/locales/el/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Εμφανίζει ένα ημερολόγιο με τις επερχόμενες κυκλοφορίες, από τις υποστηριζόμενες ενσωματώσεις.", "settings": { "title": "Ρυθμίσεις για το widget ημερολογίου", - "useSonarrv4": { - "label": "Χρήση του API Sonarr v4" - }, - "sundayStart": { - "label": "Ξεκινήστε την εβδομάδα από την Κυριακή" - }, "radarrReleaseType": { "label": "Τύπος κυκλοφορίας Radarr", "data": { @@ -22,7 +16,7 @@ "label": "Απόκρυψη εργάσιμων" }, "showUnmonitored": { - "label": "" + "label": "Εμφάνιση αντικειμένων που δεν παρακολουθούνται" }, "fontSize": { "label": "Μέγεθος γραμματοσειράς", diff --git a/public/locales/el/modules/dns-hole-controls.json b/public/locales/el/modules/dns-hole-controls.json index 364ee4c06..4d7e9fd48 100644 --- a/public/locales/el/modules/dns-hole-controls.json +++ b/public/locales/el/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Στοιχεία ελέγχου DNS hole", - "description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας" + "description": "Ελέγξτε το PiHole ή το AdGuard από το dashboard σας", + "settings": { + "title": "Ρυθμίσεις ελέγχου DNS hole", + "showToggleAllButtons": { + "label": "Εμφάνιση Κουμπιών 'Ενεργοποίηση/Απενεργοποίηση Όλων'" + } + }, + "errors": { + "general": { + "title": "Αδυναμία εύρεσης DNS hole", + "text": "Υπήρξε ένα πρόβλημα κατά τη σύνδεση στο/α DNS Hole(s) σας. Παρακαλώ επαληθεύστε τις ρυθμίσεις / ενσωμάτωση." + } + } } } \ No newline at end of file diff --git a/public/locales/el/modules/dns-hole-summary.json b/public/locales/el/modules/dns-hole-summary.json index ea6ac3221..101b11381 100644 --- a/public/locales/el/modules/dns-hole-summary.json +++ b/public/locales/el/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domains σε λίστες διαφημίσεων", "queriesToday": "Σημερινά queries", - "queriesBlockedTodayPercentage": "σημερινοί αποκλεισμοί", - "queriesBlockedToday": "σημερινοί αποκλεισμοί" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/el/modules/media-requests-list.json b/public/locales/el/modules/media-requests-list.json index 4f5dee5c8..9df9dcbd6 100644 --- a/public/locales/el/modules/media-requests-list.json +++ b/public/locales/el/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Δεν βρέθηκαν αιτήσεις. Βεβαιωθείτε ότι έχετε ρυθμίσει σωστά τις εφαρμογές σας.", - "pending": "Υπάρχουν αιτήσεις {{countPendingApproval}} που περιμένουν έγκριση.", - "nonePending": "Επί του παρόντος δεν εκκρεμούν εγκρίσεις. Είστε έτοιμοι να ξεκινήσετε!", "state": { "approved": "Εγκρίθηκε", "pendingApproval": "Αναμένεται έγκριση", diff --git a/public/locales/el/modules/notebook.json b/public/locales/el/modules/notebook.json index ff938afb6..242341a42 100644 --- a/public/locales/el/modules/notebook.json +++ b/public/locales/el/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Εμφάνιση γραμμής εργαλείων για να σας βοηθήσει να γράψετε σημάνσεις" }, + "allowReadOnlyCheck": { + "label": "" + }, "content": { "label": "Το περιεχόμενο του σημειωματάριου" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/el/modules/rss.json b/public/locales/el/modules/rss.json index 7f8117ed4..e3c3918ff 100644 --- a/public/locales/el/modules/rss.json +++ b/public/locales/el/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "Το rss widget σας επιτρέπει να εμφανίζετε ροές RSS στο ταμπλό σας.", "settings": { "title": "Ρυθμίσεις για το widget RSS", "rssFeedUrl": { diff --git a/public/locales/el/modules/torrents-status.json b/public/locales/el/modules/torrents-status.json index 48bdd1fdd..35e850f63 100644 --- a/public/locales/el/modules/torrents-status.json +++ b/public/locales/el/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Εμφάνιση ολοκληρωμένων torrents" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Εμφάνιση stale torrents" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Λίστα ετικετών", "description": "Όταν είναι επιλεγμένο το 'is whitelist', τότε θα συμπεριφερθεί σαν επιτρεπόμενη λίστα. Εάν δεν είναι επιλεγμένο, τότε είναι αποκλεισμένη λίστα. Εάν είναι άδειο δε θα κάνει τίποτα" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Σφάλμα", - "lastUpdated": "Τελευταία ενημέρωση {{time}} πριν" + "lastUpdated": "Τελευταία ενημέρωση {{time}} πριν", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/el/modules/weather.json b/public/locales/el/modules/weather.json index c6f77a60b..bfa45d0dc 100644 --- a/public/locales/el/modules/weather.json +++ b/public/locales/el/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Άγνωστο" } }, - "error": "Προέκυψε ένα σφάλμα" + "error": "Παρουσιάστηκε ένα σφάλμα" } diff --git a/public/locales/el/password-requirements.json b/public/locales/el/password-requirements.json new file mode 100644 index 000000000..01467f93c --- /dev/null +++ b/public/locales/el/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Περιλαμβάνει αριθμό", + "lowercase": "Περιλαμβάνει πεζό γράμμα", + "uppercase": "Περιλαμβάνει κεφαλαίο γράμμα", + "special": "Περιλαμβάνει ειδικό χαρακτήρα", + "length": "Περιλαμβάνει τουλάχιστον {{count}} χαρακτήρες" +} \ No newline at end of file diff --git a/public/locales/el/settings/customization/access.json b/public/locales/el/settings/customization/access.json new file mode 100644 index 000000000..8e367ffd6 --- /dev/null +++ b/public/locales/el/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Να επιτρέπεται η ανωνυμία", + "description": "Επιτρέψτε σε χρήστες που δεν είναι συνδεδεμένοι να δουν τον πίνακα σας" + } +} \ No newline at end of file diff --git a/public/locales/el/settings/customization/general.json b/public/locales/el/settings/customization/general.json index 1874010d1..0856af510 100644 --- a/public/locales/el/settings/customization/general.json +++ b/public/locales/el/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Προσβασιμότητα", "description": "Διαμόρφωση του Homarr για χρήστες με αναπηρία και άτομα με ειδικές ανάγκες" + }, + "access": { + "name": "", + "description": "Ρυθμίστε ποιος έχει πρόσβαση στο ταμπλό σας" } } } diff --git a/public/locales/el/settings/customization/page-appearance.json b/public/locales/el/settings/customization/page-appearance.json index c1339f472..7be2dfb8f 100644 --- a/public/locales/el/settings/customization/page-appearance.json +++ b/public/locales/el/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Περαιτέρω, προσαρμόστε τον πίνακα ελέγχου σας χρησιμοποιώντας CSS, συνιστάται μόνο για έμπειρους χρήστες", "placeholder": "Το προσαρμοσμένο CSS θα εφαρμοστεί τελευταίο", "applying": "Εφαρμογή CSS..." - }, - "buttons": { - "submit": "Υποβολή" } -} +} \ No newline at end of file diff --git a/public/locales/el/tools/docker.json b/public/locales/el/tools/docker.json new file mode 100644 index 000000000..7df956ae9 --- /dev/null +++ b/public/locales/el/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Η Homarr εγκατάσταση σας δεν έχει το Docker εγκατεστημένο ή απέτυχε να ανακτήσει τα containers. Ελέγξτε την τεκμηρίωση για το πώς να ρυθμίσετε την ενσωμάτωση." + } + }, + "modals": { + "selectBoard": { + "title": "Επιλέξτε έναν πίνακα", + "text": "Επιλέξτε τον πίνακα όπου θέλετε να προσθέσετε τις εφαρμογές για τα επιλεγμένα Docker containers.", + "form": { + "board": { + "label": "Πίνακας" + }, + "submit": "Προσθήκη εφαρμογών" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Προστέθηκαν εφαρμογές στον πίνακα", + "message": "Οι εφαρμογές για τα επιλεγμένα Docker containers έχουν προστεθεί στον πίνακα." + }, + "error": { + "title": "Αποτυχία προσθήκης εφαρμογών στον πίνακα", + "message": "Οι εφαρμογές για τα επιλεγμένα Docker containers δεν μπόρεσαν να προστεθούν στον πίνακα." + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/user/preferences.json b/public/locales/el/user/preferences.json new file mode 100644 index 000000000..4773b749d --- /dev/null +++ b/public/locales/el/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Ρυθμίσεις", + "pageTitle": "Οι ρυθμίσεις σας", + "boards": { + "defaultBoard": { + "label": "Προεπιλεγμένο ταμπλο" + } + }, + "accessibility": { + "title": "Προσβασιμότητα", + "disablePulse": { + "label": "Απενεργοποίηση παλμού ping", + "description": "Από προεπιλογή, οι δείκτες ping στο Homarr θα πάλλονται. Αυτό μπορεί να είναι ενοχλητικό. Αυτή η ρύθμιση θα απενεργοποιήσει το παλλόμενο εφέ" + }, + "replaceIconsWithDots": { + "label": "Αντικαταστήστε τις τελείες ping με εικονίδια", + "description": "Για τους χρήστες με αχρωματοψία, οι κουκκίδες ping μπορεί να μην είναι αναγνωρίσιμες. Αυτό θα αντικαταστήσει τις ενδείξεις με εικονίδια" + } + }, + "localization": { + "language": { + "label": "Γλώσσα" + }, + "firstDayOfWeek": { + "label": "Πρώτη ημέρα της εβδομάδας", + "options": { + "monday": "Δευτέρα", + "saturday": "Σάββατο", + "sunday": "Κυριακή" + } + } + }, + "searchEngine": { + "title": "Μηχανή αναζήτησης", + "custom": "Προσαρμοσμένη", + "newTab": { + "label": "Άνοιγμα αποτελεσμάτων αναζήτησης σε νέα καρτέλα" + }, + "autoFocus": { + "label": "Εστίαση της γραμμής αναζήτησης κατά τη φόρτωση της σελίδας.", + "description": "Αυτό θα εστιάσει αυτόματα τη γραμμή αναζήτησης, όταν μεταβείτε στις σελίδες του πίνακα. Θα λειτουργήσει μόνο σε συσκευές γραφείου." + }, + "template": { + "label": "Ερώτημα URL", + "description": "Χρησιμοποιήστε το %s ως placeholder για το query" + } + } +} \ No newline at end of file diff --git a/public/locales/el/zod.json b/public/locales/el/zod.json new file mode 100644 index 000000000..694932a86 --- /dev/null +++ b/public/locales/el/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Το πεδίο δεν είναι έγκυρο", + "required": "Αυτό το πεδίο είναι υποχρεωτικό", + "string": { + "startsWith": "Αυτό το πεδίο πρέπει να ξεκινά με {{startsWith}}", + "endsWith": "Το πεδίο αυτό πρέπει να τελειώνει με {{endsWith}}", + "includes": "Το πεδίο αυτό πρέπει να περιλαμβάνει το {{includes}}" + }, + "tooSmall": { + "string": "Το πεδίο αυτό πρέπει να έχει μήκος τουλάχιστον {{minimum}} χαρακτήρες", + "number": "Το πεδίο αυτό πρέπει να είναι μεγαλύτερο ή ίσο του {{minimum}}" + }, + "tooBig": { + "string": "Το πεδίο αυτό πρέπει να έχει μήκος το πολύ {{maximum}} χαρακτήρες", + "number": "Το πεδίο αυτό πρέπει να είναι μικρότερο ή ίσο του {{maximum}}" + }, + "custom": { + "passwordMatch": "Οι κωδικοί πρέπει να είναι ίδιοι" + } + } +} \ No newline at end of file diff --git a/public/locales/en/authentication/invite.json b/public/locales/en/authentication/invite.json new file mode 100644 index 000000000..416629e88 --- /dev/null +++ b/public/locales/en/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Create Account", + "title": "Create Account", + "text": "Please define your credentials below", + "form": { + "fields": { + "username": { + "label": "Username" + }, + "password": { + "label": "Password" + }, + "passwordConfirmation": { + "label": "Confirm password" + } + }, + "buttons": { + "submit": "Create account" + } + }, + "notifications": { + "loading": { + "title": "Creating account", + "text": "Please wait" + }, + "success": { + "title": "Account created", + "text": "Your account has been created successfully" + }, + "error": { + "title": "Error", + "text": "Something went wrong, got the following error: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/en/authentication/login.json b/public/locales/en/authentication/login.json index 68f32cbe8..33fcdd9d7 100644 --- a/public/locales/en/authentication/login.json +++ b/public/locales/en/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Login", "title": "Welcome back!", - "text": "Please enter your password", + "text": "Please enter your credentials", "form": { "fields": { + "username": { + "label": "Username" + }, "password": { - "label": "Password", - "placeholder": "Your password" + "label": "Password" } }, "buttons": { "submit": "Sign in" - } + }, + "afterLoginRedirection": "After login, you'll be redirected to {{url}}" }, - "notifications": { - "checking": { - "title": "Checking your password", - "message": "Your password is being checked..." - }, - "correct": { - "title": "Sign in successful, redirecting..." - }, - "wrong": { - "title": "The password you entered is incorrect, please try again." - } - } -} + "alert": "Your credentials are incorrect or this account doesn't exist. Please try again." +} \ No newline at end of file diff --git a/public/locales/en/boards/common.json b/public/locales/en/boards/common.json new file mode 100644 index 000000000..18131dfb1 --- /dev/null +++ b/public/locales/en/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Customize board" + } +} \ No newline at end of file diff --git a/public/locales/en/boards/customize.json b/public/locales/en/boards/customize.json new file mode 100644 index 000000000..88b2c47fa --- /dev/null +++ b/public/locales/en/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Customize {{name}} Board", + "pageTitle": "Customization for {{name}} Board", + "backToBoard": "Back to board", + "settings": { + "appearance": { + "primaryColor": "Primary color", + "secondaryColor": "Secondary color" + } + }, + "save": { + "button": "Save changes", + "note": "Careful, you have unsaved changes!" + }, + "notifications": { + "pending": { + "title": "Saving customization", + "message": "Please wait while we save your customization" + }, + "success": { + "title": "Customization saved", + "message": "Your customization has been saved successfully" + }, + "error": { + "title": "Error", + "message": "Unable to save changes" + } + } +} \ No newline at end of file diff --git a/public/locales/en/common.json b/public/locales/en/common.json index df864b716..31f4af7b1 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -1,11 +1,17 @@ { "save": "Save", + "apply": "Apply", + "insert": "Insert", "about": "About", "cancel": "Cancel", "close": "Close", + "back": "Back", "delete": "Delete", "ok": "OK", "edit": "Edit", + "next": "Next", + "previous": "Previous", + "confirm": "Confirm", "enabled": "Enabled", "disabled": "Disabled", "enableAll": "Enable all", @@ -36,5 +42,14 @@ "medium": "medium", "large": "large" }, - "seeMore": "See more..." + "seeMore": "See more...", + "position": { + "left": "Left", + "center": "Center", + "right": "Right" + }, + "attributes": { + "width": "Width", + "height": "Height" + } } \ No newline at end of file diff --git a/public/locales/en/layout/errors/access-denied.json b/public/locales/en/layout/errors/access-denied.json new file mode 100644 index 000000000..d1132e481 --- /dev/null +++ b/public/locales/en/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Access denied", + "text": "You do not have sufficient permissions to access this page. If you believe, that this is not intentional, please contact your administrator.", + "switchAccount": "Switch to a different account" +} \ No newline at end of file diff --git a/public/locales/en/layout/header.json b/public/locales/en/layout/header.json new file mode 100644 index 000000000..a36ae08e3 --- /dev/null +++ b/public/locales/en/layout/header.json @@ -0,0 +1,27 @@ +{ + "search": { + "label": "Search", + "engines": { + "web": "Search for {{query}} on the web", + "youtube": "Search for {{query}} on YouTube", + "torrent": "Search for {{query}} torrents", + "movie": "Search for {{query}} on {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Switch theme", + "preferences": "User preferences", + "defaultBoard": "Default dashboard", + "manage": "Manage", + "logout": "Logout from {{username}}", + "login": "Login" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} results for {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/en/layout/manage.json b/public/locales/en/layout/manage.json new file mode 100644 index 000000000..013532bda --- /dev/null +++ b/public/locales/en/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Home" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Users", + "items": { + "manage": "Manage", + "invites": "Invites" + } + }, + "help": { + "title": "Help", + "items": { + "documentation": "Documentation", + "report": "Report an issue / bug", + "discord": "Community Discord", + "contribute": "Contribute" + } + }, + "tools": { + "title": "Tools", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "About" + } + } +} \ No newline at end of file diff --git a/public/locales/en/layout/modals/about.json b/public/locales/en/layout/modals/about.json index fdca91f6d..3d8b7b8aa 100644 --- a/public/locales/en/layout/modals/about.json +++ b/public/locales/en/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr is a sleek, modern dashboard that puts all of your apps and services at your fingertips. With Homarr, you can access and control everything in one convenient location. Homarr seamlessly integrates with the apps you've added, providing you with valuable information and giving you complete control. Installation is a breeze, and Homarr supports a wide range of deployment methods.", - "contact": "Having trouble or questions? Connect with us!", "addToDashboard": "Add to Dashboard", "tip": "Mod refers to your modifier key, it is Ctrl and Command/Super/Windows key", "key": "Shortcut key", "action": "Action", "keybinds": "Keybinds", - "documentation": "Documentation", + "translators": "Translators ({{count}})", + "translatorsDescription": "Thanks to these people, Homarr is available in {{languages}} languages! Want to help translate Homarr into your language? Read how to do so here.", + "contributors": "Contributors ({{count}})", + "contributorsDescription": "These people have built the code that makes homarr work! Want to help build Homarr? Read how to do so here", "actions": { "toggleTheme": "Toggle light/dark mode", "focusSearchBar": "Focus on search bar", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Configuration schema version", - "configurationsCount": "Available configurations", "version": "Version", "nodeEnvironment": "Node environment", "i18n": "Loaded I18n translation namespaces", diff --git a/public/locales/en/layout/modals/add-app.json b/public/locales/en/layout/modals/add-app.json index afa4b7540..ce8d7f37c 100644 --- a/public/locales/en/layout/modals/add-app.json +++ b/public/locales/en/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Internal address", - "description": "Internal IP-address of the app." + "description": "Internal IP-address of the app.", + "troubleshoot": { + "label": "Having issues?", + "header": "Here is a list of commonly made mistake and troubleshooting:", + "lines": { + "nothingAfterPort": "You should, in most if not all cases, not input any path after the port. (Even the '/admin' for pihole or '/web' for plex)", + "protocolCheck": "Always make sure that the URL is preceded by http or https, and to make sure you are using the right one.", + "preferIP": "It is recommended to use the direct ip of the machine or container you are trying to communicate with.", + "enablePings": "Check that the IP is right by enabling pings. Customize Board -> Layout -> Enable pings. A little red or green bubble will appear on your app tiles and hovering it will give you it's response code (A green bubble with code 200 is expected in most cases).", + "wget": "To make sure that homarr can communicate with the other apps, make sure to wget/curl/ping the app's IP:port.", + "iframe": "When it comes to iframes, those should always be using the same protocol (http/s) as Homarr.", + "clearCache": "Some informations are registered in cache, so an integration might not work unless you clear the cache in Homarr's general options." + }, + "footer": "For more troubleshooting, reach out on our {{discord}}." + } }, "externalAddress": { "label": "External address", diff --git a/public/locales/en/manage/boards.json b/public/locales/en/manage/boards.json new file mode 100644 index 000000000..29b5a3012 --- /dev/null +++ b/public/locales/en/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Categories" + }, + "buttons": { + "view": "View board" + }, + "menu": { + "setAsDefault": "Set as your default board", + "delete": { + "label": "Delete permanently", + "disabled": "Deletion disabled, because older Homarr components do not allow the deletion of the default config. Deletion will be possible in the future." + } + }, + "badges": { + "fileSystem": "File system", + "default": "Default" + } + }, + "buttons": { + "create": "Create new board" + }, + "modals": { + "delete": { + "title": "Delete board", + "text": "Are you sure, that you want to delete this board? This action cannot be undone and your data will be lost permanently." + }, + "create": { + "title": "Create board", + "text": "The name cannot be changed after a board has been created.", + "form": { + "name": { + "label": "Name" + }, + "submit": "Create" + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/manage/index.json b/public/locales/en/manage/index.json new file mode 100644 index 000000000..8fc17f7b3 --- /dev/null +++ b/public/locales/en/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Manage", + "hero": { + "title": "Welcome back, {{username}}", + "fallbackUsername": "Anonymous", + "subtitle": "Welcome to Your Application Hub. Organize, Optimize and Conquer!" + }, + "quickActions": { + "title": "Quick actions", + "boards": { + "title": "Your boards", + "subtitle": "Create and manage your boards" + }, + "inviteUsers": { + "title": "Invite a new user", + "subtitle": "Create and send an invitation for registration" + }, + "manageUsers": { + "title": "Manage users", + "subtitle": "Delete and manage your users" + } + } +} \ No newline at end of file diff --git a/public/locales/en/manage/users.json b/public/locales/en/manage/users.json new file mode 100644 index 000000000..576f072a6 --- /dev/null +++ b/public/locales/en/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "User" + } + }, + "tooltips": { + "deleteUser": "Delete user", + "demoteAdmin": "Demote administrator", + "promoteToAdmin": "Promote to administrator" + }, + "modals": { + "delete": { + "title": "Delete user {{name}}", + "text": "Are you sure, that you want to delete the user {{name}}? This will delete data associated with this account, but not any created dashboards by this user." + }, + "change-role": { + "promote": { + "title": "Promote user {{name}} to admin", + "text": "Are you sure, that you want to promote the user {{name}} to admin? This will give the user access to all resources on your Homarr instance." + }, + "demote": { + "title": "Demote user {{name}} to user", + "text": "Are you sure, that you want to demote the user {{name}} to user? This will remove the user's access to all resources on your Homarr instance." + }, + "confirm": "Confirm" + } + }, + "searchDoesntMatch": "Your search does not match any entries. Please adjust your filter." +} \ No newline at end of file diff --git a/public/locales/en/manage/users/create.json b/public/locales/en/manage/users/create.json new file mode 100644 index 000000000..129acdf20 --- /dev/null +++ b/public/locales/en/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Create user", + "steps": { + "account": { + "title": "First step", + "text": "Create account", + "username": { + "label": "Username" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Second step", + "text": "Password", + "password": { + "label": "Password" + } + }, + "finish": { + "title": "Confirmation", + "text": "Save to database", + "card": { + "title": "Review your inputs", + "text": "After you submit your data to the database, the user will be able to log in. Are you sure that you want to store this user in the database and activate the login?" + }, + "table": { + "header": { + "property": "Property", + "value": "Value", + "username": "Username", + "email": "E-Mail", + "password": "Password" + }, + "notSet": "Not set", + "valid": "Valid" + }, + "failed": "User creation has failed: {{error}}" + }, + "completed": { + "alert": { + "title": "User was created", + "text": "The user was created in the database. They can now log in." + } + } + }, + "buttons": { + "generateRandomPassword": "Generate random", + "createAnother": "Create another" + } +} \ No newline at end of file diff --git a/public/locales/en/manage/users/invites.json b/public/locales/en/manage/users/invites.json new file mode 100644 index 000000000..de4c70cb0 --- /dev/null +++ b/public/locales/en/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "User invites", + "pageTitle": "Manage user invites", + "description": "Using invites, you can invite users to your Homarr instance. An invitation will only be valid for a certain time-span and can be used once. The expiration must be between 5 minutes and 12 months upon creation.", + "button": { + "createInvite": "Create invitation", + "deleteInvite": "Delete invite" + }, + "table": { + "header": { + "id": "ID", + "creator": "Creator", + "expires": "Expires", + "action": "Actions" + }, + "data": { + "expiresAt": "expired {{at}}", + "expiresIn": "in {{in}}" + } + }, + "modals": { + "create": { + "title": "Create invite", + "description": "After the expiration, an invite will no longer be valid and the recipient of the invite won't be able to create an account.", + "form": { + "expires": "Expiration date", + "submit": "Create" + } + }, + "copy": { + "title": "Copy invitation", + "description": "Your invitation has been generated. After this modal closes, you'll not be able to copy this link anymore. If you do no longer wish to invite said person, you can delete this invitation any time.", + "invitationLink": "Invitation link", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Copy & Dismiss" + } + }, + "delete": { + "title": "Delete invite", + "description": "Are you sure, that you want to delete this invitation? Users with this link will no longer be able to create an account using that link." + } + }, + "noInvites": "There are no invitations yet." +} \ No newline at end of file diff --git a/public/locales/en/modules/calendar.json b/public/locales/en/modules/calendar.json index efc03b598..f35be3c0f 100644 --- a/public/locales/en/modules/calendar.json +++ b/public/locales/en/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Displays a calendar with upcoming releases, from supported integrations.", "settings": { "title": "Settings for Calendar widget", - "useSonarrv4": { - "label": "Use Sonarr v4 API" - }, - "sundayStart": { - "label": "Start the week on Sunday" - }, "radarrReleaseType": { "label": "Radarr release type", "data":{ diff --git a/public/locales/en/modules/dns-hole-controls.json b/public/locales/en/modules/dns-hole-controls.json index 1215356b0..2059f802a 100644 --- a/public/locales/en/modules/dns-hole-controls.json +++ b/public/locales/en/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS hole controls", - "description": "Control PiHole or AdGuard from your dashboard" + "description": "Control PiHole or AdGuard from your dashboard", + "settings": { + "title": "DNS hole controls settings", + "showToggleAllButtons": { + "label": "Show 'Enable/Disable All' Buttons" + } + }, + "errors": { + "general": { + "title": "Unable to find a DNS hole", + "text": "There was a problem connecting to your DNS Hole(s). Please verify your configuration/integration(s)." + } + } } } \ No newline at end of file diff --git a/public/locales/en/modules/dns-hole-summary.json b/public/locales/en/modules/dns-hole-summary.json index 17c1149a6..1e5e378e2 100644 --- a/public/locales/en/modules/dns-hole-summary.json +++ b/public/locales/en/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domains on adlists", "queriesToday": "Queries today", - "queriesBlockedTodayPercentage": "blocked today", - "queriesBlockedToday": "blocked today" + "queriesBlockedTodayPercentage": "Blocked today", + "queriesBlockedToday": "Blocked today" } } } diff --git a/public/locales/en/modules/media-requests-list.json b/public/locales/en/modules/media-requests-list.json index 8e39ba4d7..b4ebafe71 100644 --- a/public/locales/en/modules/media-requests-list.json +++ b/public/locales/en/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "No requests found. Please ensure that you've configured your apps correctly.", - "pending": "There are {{countPendingApproval}} requests waiting for approval.", - "nonePending": "There are currently no pending approvals. You're good to go!", "state": { "approved": "Approved", "pendingApproval": "Pending approval", diff --git a/public/locales/en/modules/notebook.json b/public/locales/en/modules/notebook.json index 516ae4ae0..165aec21f 100644 --- a/public/locales/en/modules/notebook.json +++ b/public/locales/en/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Show the toolbar to help you write markdown" }, + "allowReadOnlyCheck": { + "label": "Allow check in read only mode" + }, "content": { "label": "The content of the notebook" } } + }, + "card": { + "controls": { + "bold": "Bold", + "italic": "Italic", + "strikethrough": "Strikethrough", + "underline": "Underline", + "colorText": "Color text", + "colorHighlight": "Colored highlight text", + "code": "Code", + "clear": "Clear formatting", + "heading": "Heading {{level}}", + "align": "Align text: {{position}}", + "blockquote": "Blockquote", + "horizontalLine": "Horizontal line", + "bulletList": "Bullet list", + "orderedList": "Ordered list", + "checkList": "Check list", + "increaseIndent": "Increase Indent", + "decreaseIndent": "Decrease Indent", + "link": "Link", + "unlink": "Remove link", + "image": "Embed Image", + "addTable": "Add table", + "deleteTable": "Delete Table", + "colorCell": "Color Cell", + "mergeCell": "Toggle cell merging", + "addColumnLeft": "Add column before", + "addColumnRight": "Add column after", + "deleteColumn": "Delete column", + "addRowTop": "Add row before", + "addRowBelow": "Add row after", + "deleteRow": "Delete row" + }, + "modals": { + "clearColor": "Clear color", + "source": "Source", + "widthPlaceholder": "Value in % or pixels", + "columns": "Columns", + "rows": "Rows" + } } } \ No newline at end of file diff --git a/public/locales/en/modules/rss.json b/public/locales/en/modules/rss.json index ee73f375b..20b827fcd 100644 --- a/public/locales/en/modules/rss.json +++ b/public/locales/en/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "The rss widget allows you to display RSS feeds on your dashboard.", "settings": { "title": "Settings for RSS widget", "rssFeedUrl": { diff --git a/public/locales/en/modules/torrents-status.json b/public/locales/en/modules/torrents-status.json index 3f83a6396..c402c31c3 100644 --- a/public/locales/en/modules/torrents-status.json +++ b/public/locales/en/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Display completed torrents" }, + "displayActiveTorrents": { + "label": "Display active torrents" + }, + "speedLimitOfActiveTorrents": { + "label": "Upload speed to consider a torrent as active (kB/s)" + }, "displayStaleTorrents": { "label": "Display stale torrents" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Label list", "description": "When 'is whitelist' checked, this will act as a whitelist. If not checked, this is a blacklist. Will not do anything when empty" + }, + "displayRatioWithFilter": { + "label": "Display filtered torrents list ratio", + "info": "If disabled, only the global ratio will be display. The global ratio will still use the labels if set" } } }, "card": { "footer": { "error": "Error", - "lastUpdated": "Last updated {{time}} ago" + "lastUpdated": "Last updated {{time}} ago", + "ratioGlobal": "Global ratio", + "ratioWithFilter": "Ratio with filter" }, "table": { "header": { diff --git a/public/locales/en/modules/weather.json b/public/locales/en/modules/weather.json index a8e5cefcc..9801bb907 100644 --- a/public/locales/en/modules/weather.json +++ b/public/locales/en/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Unknown" } }, - "error": "An error occured" + "error": "An error occurred" } diff --git a/public/locales/en/password-requirements.json b/public/locales/en/password-requirements.json new file mode 100644 index 000000000..605007553 --- /dev/null +++ b/public/locales/en/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Includes number", + "lowercase": "Includes lowercase letter", + "uppercase": "Includes uppercase letter", + "special": "Includes special character", + "length": "Includes at least {{count}} characters" +} \ No newline at end of file diff --git a/public/locales/en/settings/customization/access.json b/public/locales/en/settings/customization/access.json new file mode 100644 index 000000000..1d49bfc83 --- /dev/null +++ b/public/locales/en/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Allow anonymous", + "description": "Allow users that are not logged in to view your board" + } +} \ No newline at end of file diff --git a/public/locales/en/settings/customization/accessibility.json b/public/locales/en/settings/customization/accessibility.json deleted file mode 100644 index ce1086664..000000000 --- a/public/locales/en/settings/customization/accessibility.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "disablePulse": { - "label": "Disable ping pulse", - "description": "By default, ping indicators in Homarr will pulse. This may be irritating. This slider will deactivate the animation" - }, - "replaceIconsWithDots": { - "label": "Replace ping dots with icons", - "description": "For colorblind users, ping dots may be unrecognizable. This will replace indicators with icons" - }, - "alert": "Are you missing something? We'll gladly extend the accessibility of Homarr" -} \ No newline at end of file diff --git a/public/locales/en/settings/customization/app-width.json b/public/locales/en/settings/customization/app-width.json deleted file mode 100644 index e7636eef0..000000000 --- a/public/locales/en/settings/customization/app-width.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "App Width" -} \ No newline at end of file diff --git a/public/locales/en/settings/customization/color-selector.json b/public/locales/en/settings/customization/color-selector.json deleted file mode 100644 index c0555e249..000000000 --- a/public/locales/en/settings/customization/color-selector.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "colors": "Colors", - "suffix": "{{color}} color", - "primary": "Primary", - "secondary": "Secondary" -} \ No newline at end of file diff --git a/public/locales/en/settings/customization/general.json b/public/locales/en/settings/customization/general.json index 358b5158b..06185d936 100644 --- a/public/locales/en/settings/customization/general.json +++ b/public/locales/en/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibility", "description": "Configure Homarr for disabled and handicapped users" + }, + "access": { + "name": "Access", + "description": "Configure who has access to your board" } } } diff --git a/public/locales/en/settings/customization/page-appearance.json b/public/locales/en/settings/customization/page-appearance.json index 6f2f9f204..36d24c33c 100644 --- a/public/locales/en/settings/customization/page-appearance.json +++ b/public/locales/en/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Further, customize your dashboard using CSS, only recommended for experienced users", "placeholder": "Custom CSS will be applied last", "applying": "Applying CSS..." - }, - "buttons": { - "submit": "Submit" } -} +} \ No newline at end of file diff --git a/public/locales/en/settings/general/cache-buttons.json b/public/locales/en/settings/general/cache-buttons.json deleted file mode 100644 index d52609075..000000000 --- a/public/locales/en/settings/general/cache-buttons.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": "Cache cleaning", - "selector": { - "label": "Select the cache(s) to clear", - "data": { - "ping": "Ping queries", - "repositoryIcons": "Remote/Local icons", - "calendar&medias": "Medias from the Calendar", - "weather": "Weather data" - } - }, - "buttons": { - "notificationTitle": "Cache Cleared", - "clearAll":{ - "text": "Clear all cache", - "notificationMessage": "All cache has been cleared" - }, - "clearSelect":{ - "text": "Clear selected queries", - "notificationMessageSingle": "Cache for {{value}} has been cleared", - "notificationMessageMulti": "Cache for {{values}} have been cleared" - } - } -} \ No newline at end of file diff --git a/public/locales/en/settings/general/color-schema.json b/public/locales/en/settings/general/color-schema.json deleted file mode 100644 index 16672bf7e..000000000 --- a/public/locales/en/settings/general/color-schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{scheme}} mode" -} \ No newline at end of file diff --git a/public/locales/en/settings/general/config-changer.json b/public/locales/en/settings/general/config-changer.json deleted file mode 100644 index 09a35a25e..000000000 --- a/public/locales/en/settings/general/config-changer.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "configSelect": { - "label": "Config changer", - "description": "{{configCount}} configurations are available", - "loadingNew": "Loading your config...", - "pleaseWait": "Please wait until your new config is loaded!" - }, - "modal": { - "copy": { - "title": "Choose the name of your new config", - "form": { - "configName": { - "label": "Config name", - "validation": { - "required": "Config name is required", - "notUnique": "Config name is already in use" - }, - "placeholder": "Your new config name" - }, - "submitButton": "Confirm" - }, - "events": { - "configSaved": { - "title": "Config saved", - "message": "Config saved as {{configName}}" - }, - "configCopied": { - "title": "Config copied", - "message": "Config copied as {{configName}}" - }, - "configNotCopied": { - "title": "Unable to copy config", - "message": "Your config was not copied as {{configName}}" - } - } - }, - "confirmDeletion": { - "title": "Confirm deletion of your config", - "warningText": "You are about to delete '{{configName}}'", - "text": "Please note that the deletion is not revertible, and your data will be lost permanently. After clicking this button, the file will be permanently deleted from your disk. Make sure to create an adequate backup of your configuration.", - "buttons": { - "confirm": "Yes, delete '{{configName}}'" - } - } - }, - "buttons": { - "download": "Download config", - "delete": { - "text": "Delete config", - "notifications": { - "deleted": { - "title": "Config deleted", - "message": "Config deleted" - }, - "deleteFailed": { - "title": "Config delete failed", - "message": "Config delete failed" - }, - "deleteFailedDefaultConfig": { - "title": "The default config can't be deleted", - "message": "Configuration was not deleted from the file system" - } - } - }, - "saveCopy": "Save a copy" - }, - "dropzone": { - "notifications": { - "invalidConfig": { - "title": "Unable to load config", - "message": "Could not load your config. Invalid JSON format." - }, - "loadedSuccessfully": { - "title": "Config {{configName}} loaded successfully" - } - }, - "accept": { - "title": "Configuration Upload", - "text": "Drag files here to upload a config. Support for JSON files only." - }, - "reject": { - "title": "Drag and Drop Upload rejected", - "text": "This file format is not supported. Please only upload JSON files." - } - } -} diff --git a/public/locales/en/settings/general/edit-mode-toggle.json b/public/locales/en/settings/general/edit-mode-toggle.json deleted file mode 100644 index 6b630888a..000000000 --- a/public/locales/en/settings/general/edit-mode-toggle.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "menu": { - "toggle": "Toggle edit mode", - "enable": "Enable edit mode", - "disable": "Disable edit mode" - }, - "form": { - "label": "Edit password", - "message": "In order to toggle edit mode, you need to enter the password you entered in the environment variable named EDIT_MODE_PASSWORD . If it is not set, you are not able to toggle edit mode on and off.", - "submit": "Submit" - }, - "notification": { - "success": { - "title": "Success", - "message": "Successfully toggled edit mode, reloading the page..." - }, - "error": { - "title": "Error", - "message": "Failed to toggle edit mode, please try again." - } - } -} \ No newline at end of file diff --git a/public/locales/en/settings/general/internationalization.json b/public/locales/en/settings/general/internationalization.json deleted file mode 100644 index 17f0a13bf..000000000 --- a/public/locales/en/settings/general/internationalization.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Language" -} \ No newline at end of file diff --git a/public/locales/en/settings/general/search-engine.json b/public/locales/en/settings/general/search-engine.json deleted file mode 100644 index 13acf8694..000000000 --- a/public/locales/en/settings/general/search-engine.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "Search engine", - "configurationName": "Search engine configuration", - "custom": "Custom", - "tips": { - "generalTip": "There are multiple prefixes you can use! Adding these in front of your query will filter the results. !s (Web), !t (Torrents), !y (YouTube), and !m (Media).", - "placeholderTip": "%s can be used as a placeholder for the query." - }, - "customEngine": { - "title": "Custom search engine", - "label": "Query URL", - "placeholder": "Custom query URL" - }, - "searchNewTab": { - "label": "Open search results in new tab" - }, - "searchEnabled": { - "label": "Search enabled" - } -} diff --git a/public/locales/en/settings/general/theme-selector.json b/public/locales/en/settings/general/theme-selector.json deleted file mode 100644 index 4e04d5e54..000000000 --- a/public/locales/en/settings/general/theme-selector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Switch to {{theme}} mode" -} \ No newline at end of file diff --git a/public/locales/en/settings/general/widget-positions.json b/public/locales/en/settings/general/widget-positions.json deleted file mode 100644 index 41d0d60d6..000000000 --- a/public/locales/en/settings/general/widget-positions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Position widgets on the left" -} diff --git a/public/locales/en/tools/docker.json b/public/locales/en/tools/docker.json new file mode 100644 index 000000000..95c67f0d8 --- /dev/null +++ b/public/locales/en/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Your Homarr instance does not have Docker configured or it has falied to fetch containers. Please check the documentation on how to set up the integration." + } + }, + "modals": { + "selectBoard": { + "title": "Choose a board", + "text": "Choose the board where you want to add the apps for the selected Docker containers.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Add apps" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Added apps to board", + "message": "The apps for the selected Docker containers have been added to the board." + }, + "error": { + "title": "Failed to add apps to board", + "message": "The apps for the selected Docker containers could not be added to the board." + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/user/preferences.json b/public/locales/en/user/preferences.json new file mode 100644 index 000000000..d1bbf2171 --- /dev/null +++ b/public/locales/en/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Preferences", + "pageTitle": "Your preferences", + "boards": { + "defaultBoard": { + "label": "Default board" + } + }, + "accessibility": { + "title": "Accessibility", + "disablePulse": { + "label": "Disable ping pulse", + "description": "By default, ping indicators in Homarr will pulse. This may be irritating. This slider will deactivate the animation" + }, + "replaceIconsWithDots": { + "label": "Replace ping dots with icons", + "description": "For colorblind users, ping dots may be unrecognizable. This will replace indicators with icons" + } + }, + "localization": { + "language": { + "label": "Language" + }, + "firstDayOfWeek": { + "label": "First day of the week", + "options": { + "monday": "Monday", + "saturday": "Saturday", + "sunday": "Sunday" + } + } + }, + "searchEngine": { + "title": "Search engine", + "custom": "Custom", + "newTab": { + "label": "Open search results in a new tab" + }, + "autoFocus": { + "label": "Focus search bar on page load.", + "description": "This will automatically focus the search bar, when you navigate to the board pages. It will only work on desktop devices." + }, + "template": { + "label": "Query URL", + "description": "Use %s as a placeholder for the query" + } + } +} \ No newline at end of file diff --git a/public/locales/en/widgets/location.json b/public/locales/en/widgets/location.json index d2afe05cd..a1bad6221 100644 --- a/public/locales/en/widgets/location.json +++ b/public/locales/en/widgets/location.json @@ -27,6 +27,10 @@ }, "population": { "fallback": "Unknown" + }, + "nothingFound": { + "title": "Nothing found", + "description": "Please try another search term" } } } diff --git a/public/locales/en/zod.json b/public/locales/en/zod.json new file mode 100644 index 000000000..769317a71 --- /dev/null +++ b/public/locales/en/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "This field is invalid", + "required": "This field is required", + "string": { + "startsWith": "This field must start with {{startsWith}}", + "endsWith": "This field must end with {{endsWith}}", + "includes": "This field must include {{includes}}" + }, + "tooSmall": { + "string": "This field must be at least {{minimum}} characters long", + "number": "This field must be greater than or equal to {{minimum}}" + }, + "tooBig": { + "string": "This field must be at most {{maximum}} characters long", + "number": "This field must be less than or equal to {{maximum}}" + }, + "custom": { + "passwordMatch": "Passwords must match" + } + } +} \ No newline at end of file diff --git a/public/locales/es/authentication/invite.json b/public/locales/es/authentication/invite.json new file mode 100644 index 000000000..1d273f1bc --- /dev/null +++ b/public/locales/es/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Crear cuenta", + "title": "Crear cuenta", + "text": "Por favor, define tus credenciales a continuación", + "form": { + "fields": { + "username": { + "label": "Nombre de usuario" + }, + "password": { + "label": "Contraseña" + }, + "passwordConfirmation": { + "label": "Confirmar contraseña" + } + }, + "buttons": { + "submit": "Crear cuenta" + } + }, + "notifications": { + "loading": { + "title": "Creando cuenta", + "text": "Por favor, espera" + }, + "success": { + "title": "Cuenta creada", + "text": "Tu cuenta ha sido creada con éxito" + }, + "error": { + "title": "Error", + "text": "Algo salió mal, se encontró el siguiente error: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/es/authentication/login.json b/public/locales/es/authentication/login.json index ef05ed3b2..9b7ea0ed5 100644 --- a/public/locales/es/authentication/login.json +++ b/public/locales/es/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Iniciar sesión", "title": "¡Bienvenido/a otra vez!", - "text": "Por favor, introduce tu contraseña", + "text": "Por favor, introduce tus credenciales", "form": { "fields": { + "username": { + "label": "Nombre de usuario" + }, "password": { - "label": "Contraseña", - "placeholder": "Tu contraseña" + "label": "Contraseña" } }, "buttons": { "submit": "Iniciar sesión" - } + }, + "afterLoginRedirection": "Después de iniciar sesión, serás redirigido a {{url}}" }, - "notifications": { - "checking": { - "title": "Comprobando tu contraseña", - "message": "Tu contraseña está siendo comprobada..." - }, - "correct": { - "title": "Inicio de sesión satisfactorio, redirigiendo..." - }, - "wrong": { - "title": "La contraseña introducida es incorrecta, por favor, inténtalo de nuevo." - } - } -} + "alert": "Tus credenciales son incorrectas o esta cuenta no existe. Por favor, inténtalo de nuevo." +} \ No newline at end of file diff --git a/public/locales/es/boards/common.json b/public/locales/es/boards/common.json new file mode 100644 index 000000000..6b508966e --- /dev/null +++ b/public/locales/es/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personalizar tablero" + } +} \ No newline at end of file diff --git a/public/locales/es/boards/customize.json b/public/locales/es/boards/customize.json new file mode 100644 index 000000000..54408aa30 --- /dev/null +++ b/public/locales/es/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personalizar tablero {{name}}", + "pageTitle": "Personalización para el tablero {{name}}", + "backToBoard": "Volver al tablero", + "settings": { + "appearance": { + "primaryColor": "Color primario", + "secondaryColor": "Color secundario" + } + }, + "save": { + "button": "Guardar cambios", + "note": "¡Cuidado, tienes cambios sin guardar!" + }, + "notifications": { + "pending": { + "title": "Guardando personalización", + "message": "Por favor, espera mientras guardamos tu personalización" + }, + "success": { + "title": "Personalización guardada", + "message": "Tu personalización se ha guardado correctamente" + }, + "error": { + "title": "Error", + "message": "No se pueden guardar los cambios" + } + } +} \ No newline at end of file diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 52c035ab9..4dff3f768 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -1,11 +1,17 @@ { "save": "Guardar", + "apply": "Aplicar", + "insert": "Insertar", "about": "Acerca de", "cancel": "Cancelar", "close": "Cerrar", + "back": "Atrás", "delete": "Eliminar", "ok": "OK", "edit": "Editar", + "next": "Siguiente", + "previous": "Anterior", + "confirm": "Confirmar", "enabled": "Activado", "disabled": "Desactivado", "enableAll": "Activar todo", @@ -36,5 +42,14 @@ "medium": "medio", "large": "grande" }, - "seeMore": "Ver más..." + "seeMore": "Ver más...", + "position": { + "left": "Izquierda", + "center": "Centrar", + "right": "Derecha" + }, + "attributes": { + "width": "Ancho", + "height": "Alto" + } } \ No newline at end of file diff --git a/public/locales/es/layout/errors/access-denied.json b/public/locales/es/layout/errors/access-denied.json new file mode 100644 index 000000000..96863e46d --- /dev/null +++ b/public/locales/es/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Acceso denegado", + "text": "No tienes suficientes permisos para acceder a esta página. Si crees que esto no es intencionado, por favor, ponte en contacto con tu administrador.", + "switchAccount": "Cambiar a una cuenta diferente" +} \ No newline at end of file diff --git a/public/locales/es/layout/header.json b/public/locales/es/layout/header.json new file mode 100644 index 000000000..5b5d2daba --- /dev/null +++ b/public/locales/es/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Esta es una característica experimental de Homarr. Por favor, reporta cualquier problema en GitHub o Discord." + }, + "search": { + "label": "Buscar", + "engines": { + "web": "Buscar {{query}} en la web", + "youtube": "Buscar {{query}} en YouTube", + "torrent": "Buscar {{query}} en torrents", + "movie": "Buscar {{query}} en {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Cambiar tema", + "preferences": "Preferencias de usuario", + "defaultBoard": "Panel predeterminado", + "manage": "Administrar", + "logout": "Cerrar sesión de {{username}}", + "login": "Iniciar sesión" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Mejores {{count}} resultados para {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/es/layout/manage.json b/public/locales/es/layout/manage.json new file mode 100644 index 000000000..07c168a77 --- /dev/null +++ b/public/locales/es/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Inicio" + }, + "boards": { + "title": "Tableros" + }, + "users": { + "title": "Usuarios", + "items": { + "manage": "Administrar", + "invites": "Invitaciones" + } + }, + "help": { + "title": "Ayuda", + "items": { + "documentation": "Documentación", + "report": "Reportar un problema / error", + "discord": "Comunidad Discord", + "contribute": "Contribuir" + } + }, + "tools": { + "title": "Herramientas", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Acerca de" + } + } +} \ No newline at end of file diff --git a/public/locales/es/layout/modals/about.json b/public/locales/es/layout/modals/about.json index 163f6875e..b74557ce9 100644 --- a/public/locales/es/layout/modals/about.json +++ b/public/locales/es/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr es un panel elegante y moderno que pone todas tus aplicaciones y servicios al alcance de su mano. Con Homarr, puedes acceder y controlar todo desde una sola ubicación. Homarr se integra a la perfección con las aplicaciones que hayas añadido, proporcionándote información valiosa y dándote control total. La instalación es muy sencilla, y Homarr soporta una amplia gama de métodos de implementación.", - "contact": "¿Tienes problemas o preguntas? ¡Conéctate con nosotros!", "addToDashboard": "Añadir al Panel", "tip": "Mod se refiere a tu tecla modificadora, es Ctrl y tecla Command/Super/Windows", "key": "Tecla de acceso directo", "action": "Acción", "keybinds": "Combinaciones de teclas", - "documentation": "Documentación", + "translators": "Traductores ({{count}})", + "translatorsDescription": "Gracias a estas personas, ¡Homarr está disponible en {{languages}} idiomas! ¿Quieres ayudar a traducir Homarr en tu idioma? Lee cómo hacerlo aquí.", + "contributors": "Contribuidores ({{count}})", + "contributorsDescription": "¡Estas personas han creado el código que hace que Homarr funcione! ¿Quieres ayudar a construir Homarr? Lee cómo hacerlo aquí", "actions": { "toggleTheme": "Alternar modo claro/oscuro", "focusSearchBar": "Centrarse en la barra de búsqueda", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Versión del esquema de configuración", - "configurationsCount": "Configuraciones disponibles", "version": "Versión", "nodeEnvironment": "Entorno del nodo", "i18n": "Espacios de nombres de traducción cargados", diff --git a/public/locales/es/layout/modals/add-app.json b/public/locales/es/layout/modals/add-app.json index b6bfb6b49..aa14009f3 100644 --- a/public/locales/es/layout/modals/add-app.json +++ b/public/locales/es/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Dirección interna", - "description": "Dirección IP interna de la aplicación." + "description": "Dirección IP interna de la aplicación.", + "troubleshoot": { + "label": "¿Tienes problemas?", + "header": "Aquí hay una lista de errores comunes y solución de problemas:", + "lines": { + "nothingAfterPort": "En la mayoría de los casos, si no en todos, no debes ingresar ninguna ruta después del puerto. (Incluso '/admin' para pihole o '/web' para plex)", + "protocolCheck": "Asegúrate siempre de que la URL esté precedida por http o https, y de estar utilizando la correcta.", + "preferIP": "Se recomienda utilizar la ip directa de la máquina o contenedor con el que intentas comunicar.", + "enablePings": "Comprueba que la IP es correcta habilitando los pings. Personalizar tablero -> Diseño -> Habilitar pings. Aparecerá una pequeña burbuja roja o verde en los mosaicos de su aplicación y, al pasar sobre ella, obtendrá su código de respuesta (en la mayoría de los casos se espera una burbuja verde con el código 200).", + "wget": "Para asegurarte de que Homarr pueda comunicarse con las otras aplicaciones, asegúrate de hacer wget/curl/ping a la 'ip:puerto' de la aplicación.", + "iframe": "Cuando se trata de iframes, siempre deben usar el mismo protocolo (http/s) que Homarr.", + "clearCache": "Algunos datos se registran en caché, por lo que es posible que una integración no funcione a menos que borres la caché en las opciones generales de Homarr." + }, + "footer": "Para obtener más información sobre la solución de problemas, ponte en contacto con nosotros en {{discord}}." + } }, "externalAddress": { "label": "Dirección externa", diff --git a/public/locales/es/manage/boards.json b/public/locales/es/manage/boards.json new file mode 100644 index 000000000..54dbed2b3 --- /dev/null +++ b/public/locales/es/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tableros", + "pageTitle": "Tableros", + "cards": { + "statistics": { + "apps": "Aplicaciones", + "widgets": "Widgets", + "categories": "Categorías" + }, + "buttons": { + "view": "Ver tablero" + }, + "menu": { + "setAsDefault": "Establecer como tu tablero predeterminado", + "delete": { + "label": "Eliminar permanentemente", + "disabled": "Eliminación deshabilitada, porque los componentes más antiguos de Homarr no permiten la eliminación de la configuración predeterminada. La eliminación será posible en el futuro." + } + }, + "badges": { + "fileSystem": "Sistema de archivos", + "default": "Por defecto" + } + }, + "buttons": { + "create": "Crear nuevo tablero" + }, + "modals": { + "delete": { + "title": "Eliminar tablero", + "text": "¿Estás seguro de que deseas eliminar este tablero? Esta acción no se puede deshacer y tus datos se perderán permanentemente." + }, + "create": { + "title": "Crear tablero", + "text": "El nombre no se puede cambiar una vez creado el tablero.", + "form": { + "name": { + "label": "Nombre" + }, + "submit": "Crear" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/manage/index.json b/public/locales/es/manage/index.json new file mode 100644 index 000000000..f8c61edba --- /dev/null +++ b/public/locales/es/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Administrar", + "hero": { + "title": "Bienvenido/a de nuevo, {{username}}", + "fallbackUsername": "Anónimo", + "subtitle": "Bienvenido/a a tu centro de aplicaciones. ¡Organiza, optimiza y conquista!" + }, + "quickActions": { + "title": "Acciones rápidas", + "boards": { + "title": "Tus tableros", + "subtitle": "Crea y administra tus tableros" + }, + "inviteUsers": { + "title": "Invitar a un nuevo usuario", + "subtitle": "Crear y enviar una invitación para registrarse" + }, + "manageUsers": { + "title": "Administrar usuarios", + "subtitle": "Elimina y administra tus usuarios" + } + } +} \ No newline at end of file diff --git a/public/locales/es/manage/users.json b/public/locales/es/manage/users.json new file mode 100644 index 000000000..415e3697c --- /dev/null +++ b/public/locales/es/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Usuario" + } + }, + "tooltips": { + "deleteUser": "Eliminar usuario", + "demoteAdmin": "Degradar administrador", + "promoteToAdmin": "Promover a administrador" + }, + "modals": { + "delete": { + "title": "Eliminar usuario {{name}}", + "text": "¿Estás seguro de que deseas eliminar el usuario {{name}}? Esto eliminará los datos asociados con esta cuenta, pero no los paneles creados por este usuario." + }, + "change-role": { + "promote": { + "title": "Promover al usuario {{name}} a administrador", + "text": "¿Estás seguro de que deseas promocionar al usuario {{name}} a administrador? Esto le dará al usuario acceso a todos los recursos en tu instancia de Homarr." + }, + "demote": { + "title": "Degradar al usuario {{name}} a usuario", + "text": "¿Estás seguro de que deseas degradar al usuario {{name}} a usuario? Esto eliminará el acceso del usuario a todos los recursos en tu instancia de Homarr." + }, + "confirm": "Confirmar" + } + }, + "searchDoesntMatch": "Tu búsqueda no coincide con ningún registro. Por favor, ajusta tu filtro." +} \ No newline at end of file diff --git a/public/locales/es/manage/users/create.json b/public/locales/es/manage/users/create.json new file mode 100644 index 000000000..306c8ab76 --- /dev/null +++ b/public/locales/es/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Crear usuario", + "steps": { + "account": { + "title": "Primer paso", + "text": "Crear cuenta", + "username": { + "label": "Nombre de usuario" + }, + "email": { + "label": "Correo electrónico" + } + }, + "security": { + "title": "Segundo paso", + "text": "Contraseña", + "password": { + "label": "Contraseña" + } + }, + "finish": { + "title": "Confirmación", + "text": "Guardar en la base de datos", + "card": { + "title": "Revisar datos introducidos", + "text": "Después de enviar tus datos a la base de datos, el usuario podrá iniciar sesión. ¿Está seguro de que desea almacenar este usuario en la base de datos y activar el inicio de sesión?" + }, + "table": { + "header": { + "property": "Propiedad", + "value": "Valor", + "username": "Nombre de usuario", + "email": "Correo electrónico", + "password": "Contraseña" + }, + "notSet": "No configurado", + "valid": "Válido" + }, + "failed": "La creación del usuario ha fallado: {{error}}" + }, + "completed": { + "alert": { + "title": "El usuario fue creado", + "text": "El usuario fue creado en la base de datos. Ahora pueden iniciar sesión." + } + } + }, + "buttons": { + "generateRandomPassword": "Generar aleatorio", + "createAnother": "Crear otro" + } +} \ No newline at end of file diff --git a/public/locales/es/manage/users/invites.json b/public/locales/es/manage/users/invites.json new file mode 100644 index 000000000..c530c3e92 --- /dev/null +++ b/public/locales/es/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Invitaciones de usuario", + "pageTitle": "Administrar invitaciones de usuario", + "description": "Mediante invitaciones, puedes invitar usuarios a tu instancia de Homarr. Una invitación solo será válida por un período de tiempo determinado y podrá usarse una vez. La caducidad debe ser entre 5 minutos y 12 meses desde su creación.", + "button": { + "createInvite": "Crear invitación", + "deleteInvite": "Eliminar invitación" + }, + "table": { + "header": { + "id": "ID", + "creator": "Creador", + "expires": "Caduca", + "action": "Acciones" + }, + "data": { + "expiresAt": "Caducado {{at}}", + "expiresIn": "en {{in}}" + } + }, + "modals": { + "create": { + "title": "Crear invitación", + "description": "Después de la caducidad, una invitación ya no será válida y el destinatario de la invitación no podrá crear una cuenta.", + "form": { + "expires": "Fecha de caducidad", + "submit": "Crear" + } + }, + "copy": { + "title": "Copiar invitación", + "description": "Tu invitación ha sido generada. Después de que se cierre esta ventana, ya no podrás copiar este enlace. Si ya no deseas invitar a dicha persona, puedes eliminar esta invitación en cualquier momento.", + "invitationLink": "Link de invitación", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Copiar y Descartar" + } + }, + "delete": { + "title": "Eliminar invitación", + "description": "¿Estás seguro de que deseas eliminar esta invitación? Los usuarios con este enlace ya no podrán crear una cuenta usando ese enlace." + } + }, + "noInvites": "Aún no hay invitaciones." +} \ No newline at end of file diff --git a/public/locales/es/modules/calendar.json b/public/locales/es/modules/calendar.json index 8bad682c0..13f1f8a03 100644 --- a/public/locales/es/modules/calendar.json +++ b/public/locales/es/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Muestra un calendario con los próximos lanzamientos, de integraciones soportadas.", "settings": { "title": "Ajustes del widget Calendario", - "useSonarrv4": { - "label": "Usar la API de Sonarr v4" - }, - "sundayStart": { - "label": "Marcar Domingo como primer día de la semana" - }, "radarrReleaseType": { "label": "Tipo de lanzamiento de Radarr", "data": { diff --git a/public/locales/es/modules/dns-hole-controls.json b/public/locales/es/modules/dns-hole-controls.json index 2adbcd72b..334649e77 100644 --- a/public/locales/es/modules/dns-hole-controls.json +++ b/public/locales/es/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Controles de agujeros DNS", - "description": "Controla Pihole o AdGuard desde tu panel" + "description": "Controla Pihole o AdGuard desde tu panel", + "settings": { + "title": "Ajustes del widget Agujero DNS", + "showToggleAllButtons": { + "label": "Mostrar botones 'Activar/Desactivar todos'" + } + }, + "errors": { + "general": { + "title": "No se puede encontrar un agujero DNS", + "text": "Hubo un problema al conectarse a tus agujeros DNS. Verifica tu configuración/integración(es)." + } + } } } \ No newline at end of file diff --git a/public/locales/es/modules/dns-hole-summary.json b/public/locales/es/modules/dns-hole-summary.json index f5c862bae..8a14cd41e 100644 --- a/public/locales/es/modules/dns-hole-summary.json +++ b/public/locales/es/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Dominios en las listas", "queriesToday": "Consultas de hoy", - "queriesBlockedTodayPercentage": "Bloqueado hoy", - "queriesBlockedToday": "Bloqueado hoy" + "queriesBlockedTodayPercentage": "Bloqueados hoy", + "queriesBlockedToday": "Bloqueados hoy" } } } diff --git a/public/locales/es/modules/media-requests-list.json b/public/locales/es/modules/media-requests-list.json index 6ee00cfd7..950c121e7 100644 --- a/public/locales/es/modules/media-requests-list.json +++ b/public/locales/es/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "No se encontraron solicitudes. Por favor, asegúrate de haber configurado tus aplicaciones correctamente.", - "pending": "Hay {{countPendingApproval}} solicitudes pendientes de aprobación.", - "nonePending": "Actualmente no hay aprobaciones pendientes. ¡Listo!", "state": { "approved": "Aprobada", "pendingApproval": "Pendiente de aprobación", diff --git a/public/locales/es/modules/notebook.json b/public/locales/es/modules/notebook.json index d2630b731..4bf4cbf35 100644 --- a/public/locales/es/modules/notebook.json +++ b/public/locales/es/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Muestra la barra de herramientas para ayudarte a escribir Markdown" }, + "allowReadOnlyCheck": { + "label": "Permitir verificación en modo solo lectura" + }, "content": { "label": "El contenido del Bloc de notas" } } + }, + "card": { + "controls": { + "bold": "Negrita", + "italic": "Cursiva", + "strikethrough": "Tachado", + "underline": "Subrayar", + "colorText": "Color de texto", + "colorHighlight": "Texto resaltado en color", + "code": "Código", + "clear": "Borrar formato", + "heading": "Encabezado {{level}}", + "align": "Alinear texto: {{position}}", + "blockquote": "Cita", + "horizontalLine": "Línea horizontal", + "bulletList": "Lista de viñetas", + "orderedList": "Lista ordenada", + "checkList": "", + "increaseIndent": "Aumentar Sangría", + "decreaseIndent": "Disminuir Sangría", + "link": "Enlace", + "unlink": "Eliminar enlace", + "image": "Adjuntar Imagen", + "addTable": "Añadir tabla", + "deleteTable": "Eliminar Tabla", + "colorCell": "Color de celda", + "mergeCell": "Alternar combinación de celdas", + "addColumnLeft": "Añadir columna antes de", + "addColumnRight": "Añadir columna después de", + "deleteColumn": "Eliminar columna", + "addRowTop": "Añadir fila antes de", + "addRowBelow": "Añador fila después de", + "deleteRow": "Eliminar fila" + }, + "modals": { + "clearColor": "Eliminar color", + "source": "Fuente", + "widthPlaceholder": "Valor en % o píxeles", + "columns": "Columnas", + "rows": "Filas" + } } } \ No newline at end of file diff --git a/public/locales/es/modules/rss.json b/public/locales/es/modules/rss.json index 609e15262..0b1024524 100644 --- a/public/locales/es/modules/rss.json +++ b/public/locales/es/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS", - "description": "Muestra las noticias de las fuentes RSS que añadas.", + "description": "El widget RSS te permite mostrar las fuentes RSS en tu panel.", "settings": { "title": "Ajustes del widget RSS", "rssFeedUrl": { diff --git a/public/locales/es/modules/torrents-status.json b/public/locales/es/modules/torrents-status.json index 907bde412..0518b7844 100644 --- a/public/locales/es/modules/torrents-status.json +++ b/public/locales/es/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Mostrar torrents completados" }, + "displayActiveTorrents": { + "label": "Mostrar torrents activos" + }, + "speedLimitOfActiveTorrents": { + "label": "Velocidad de subida para considerar un torrent como activo (kB/s)" + }, "displayStaleTorrents": { "label": "Mostrar torrents obsoletos" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Lista de etiquetas", "description": "Cuando se marca 'está en la lista blanca', actuará como una lista blanca. Si no se marca, esta es una lista negra. No hará nada cuando esté vacío" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Error", - "lastUpdated": "Última actualización hace {{time}}" + "lastUpdated": "Última actualización hace {{time}}", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/es/modules/weather.json b/public/locales/es/modules/weather.json index 4e93cce2c..e69470cc7 100644 --- a/public/locales/es/modules/weather.json +++ b/public/locales/es/modules/weather.json @@ -18,7 +18,7 @@ "card": { "weatherDescriptions": { "clear": "Despejado", - "mainlyClear": "Mayormente Despejado", + "mainlyClear": "Mayormente despejado", "fog": "Niebla", "drizzle": "Llovizna", "freezingDrizzle": "Llovizna helada", @@ -26,10 +26,10 @@ "freezingRain": "Lluvia helada", "snowFall": "Nevada", "snowGrains": "Granos de nieve", - "rainShowers": "Lluvia ligera", - "snowShowers": "Nevada Ligera", + "rainShowers": "Chubascos", + "snowShowers": "Chubascos de nieve", "thunderstorm": "Tormenta eléctrica", - "thunderstormWithHail": "Tormenta con Granizo", + "thunderstormWithHail": "Tormenta con granizo", "unknown": "Desconocido" } }, diff --git a/public/locales/es/password-requirements.json b/public/locales/es/password-requirements.json new file mode 100644 index 000000000..e37c813a2 --- /dev/null +++ b/public/locales/es/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Incluye número", + "lowercase": "Incluye letra minúscula", + "uppercase": "Incluye letra mayúscula", + "special": "Incluye carácter especial", + "length": "Incluye al menos {{count}} caracteres" +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/access.json b/public/locales/es/settings/customization/access.json new file mode 100644 index 000000000..d91d16e59 --- /dev/null +++ b/public/locales/es/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Permitir anónimos", + "description": "Permitir que los usuarios que no han iniciado sesión vean tu tablero" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/general.json b/public/locales/es/settings/customization/general.json index 9929a591a..c98b95246 100644 --- a/public/locales/es/settings/customization/general.json +++ b/public/locales/es/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accesibilidad", "description": "Configura Homarr para usuarios con discapacidad y minusvalía" + }, + "access": { + "name": "Acceso", + "description": "Configura quién tiene acceso a tu tablero" } } } diff --git a/public/locales/es/settings/customization/page-appearance.json b/public/locales/es/settings/customization/page-appearance.json index 71b3340e2..b20a02e23 100644 --- a/public/locales/es/settings/customization/page-appearance.json +++ b/public/locales/es/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Además, personaliza tu panel usando CSS, solo recomendado para usuarios avanzados", "placeholder": "El CSS personalizado se aplicará en último lugar", "applying": "Aplicando CSS..." - }, - "buttons": { - "submit": "Aplicar" } -} +} \ No newline at end of file diff --git a/public/locales/es/tools/docker.json b/public/locales/es/tools/docker.json new file mode 100644 index 000000000..0f89db477 --- /dev/null +++ b/public/locales/es/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Tu instancia de Homarr no tiene Docker configurado o no pudo recuperar contenedores. Por favor, consulta la documentación sobre cómo configurar la integración." + } + }, + "modals": { + "selectBoard": { + "title": "Selecciona un tablero", + "text": "Selecciona el tablero donde deseas añadir las aplicaciones para los contenedores Docker seleccionados.", + "form": { + "board": { + "label": "Tablero" + }, + "submit": "Añadir aplicaciones" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Aplicaciones añadidas al tablero", + "message": "Las aplicaciones para los contenedores Docker seleccionados se han agregado al tablero." + }, + "error": { + "title": "No se pudieron añadir aplicaciones al tablero", + "message": "Las aplicaciones para los contenedores Docker seleccionados no se pudieron añadir al tablero." + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/user/preferences.json b/public/locales/es/user/preferences.json new file mode 100644 index 000000000..a48b73040 --- /dev/null +++ b/public/locales/es/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Preferencias", + "pageTitle": "Tus preferencias", + "boards": { + "defaultBoard": { + "label": "Tablero predeterminado" + } + }, + "accessibility": { + "title": "Accesibilidad", + "disablePulse": { + "label": "Desactivar pulso de ping", + "description": "Por defecto, los indicadores de ping en Homarr parpadean. Esto puede resultar irritante. Este deslizador desactivará la animación" + }, + "replaceIconsWithDots": { + "label": "Reemplazar los puntos de ping por iconos", + "description": "Para los usuarios daltónicos, los puntos de ping pueden ser irreconocibles. Esto reemplazará los indicadores por iconos" + } + }, + "localization": { + "language": { + "label": "Idioma" + }, + "firstDayOfWeek": { + "label": "Primer día de la semana", + "options": { + "monday": "Lunes", + "saturday": "Sábado", + "sunday": "Domingo" + } + } + }, + "searchEngine": { + "title": "Motor de búsqueda", + "custom": "Personalizado", + "newTab": { + "label": "Abrir resultados de búsqueda en una nueva pestaña" + }, + "autoFocus": { + "label": "Enfocar en la barra de búsqueda al cargar la página.", + "description": "Esto enfocará automáticamente la barra de búsqueda cuando navegue a las páginas del tablero. Sólo funcionará en dispositivos de escritorio." + }, + "template": { + "label": "URL de consulta", + "description": "Usar \"%s\" como marcador de posición de la consulta" + } + } +} \ No newline at end of file diff --git a/public/locales/es/zod.json b/public/locales/es/zod.json new file mode 100644 index 000000000..49ec77b49 --- /dev/null +++ b/public/locales/es/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Este campo no es válido", + "required": "Este campo es obligatorio", + "string": { + "startsWith": "Este campo debe empezar con {{startsWith}}", + "endsWith": "Este campo debe terminar con {{endsWith}}", + "includes": "Este campo debe incluir {{includes}}" + }, + "tooSmall": { + "string": "Este campo debe tener al menos {{minimum}} caracteres", + "number": "Este campo debe ser mayor o igual a {{minimum}}" + }, + "tooBig": { + "string": "Este campo debe tener como máximo {{maximum}} caracteres", + "number": "Este campo debe ser menor o igual a {{maximum}}" + }, + "custom": { + "passwordMatch": "Las contraseñas deben coincidir" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/authentication/invite.json b/public/locales/fr/authentication/invite.json new file mode 100644 index 000000000..4a5a91998 --- /dev/null +++ b/public/locales/fr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Créer un compte", + "title": "Créer un compte", + "text": "Veuillez définir vos identifiants ci-dessous", + "form": { + "fields": { + "username": { + "label": "Nom d'utilisateur" + }, + "password": { + "label": "Mot de passe" + }, + "passwordConfirmation": { + "label": "Confirmation du mot de passe" + } + }, + "buttons": { + "submit": "Créer un compte" + } + }, + "notifications": { + "loading": { + "title": "Création du compte", + "text": "Un instant" + }, + "success": { + "title": "Compte créé", + "text": "Votre compte a bien été créé" + }, + "error": { + "title": "Erreur", + "text": "Quelque chose ne s'est pas bien passé, l'erreur obtenue est la suivante : {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/authentication/login.json b/public/locales/fr/authentication/login.json index 112db8720..fda4f1488 100644 --- a/public/locales/fr/authentication/login.json +++ b/public/locales/fr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Connexion", "title": "Bienvenue !", - "text": "Veuillez entrer votre mot de passe", + "text": "Veuillez saisir vos identifiants", "form": { "fields": { + "username": { + "label": "Nom d'utilisateur" + }, "password": { - "label": "Mot de passe", - "placeholder": "Votre mot de passe" + "label": "Mot de passe" } }, "buttons": { "submit": "Se connecter" - } + }, + "afterLoginRedirection": "Après la connexion, vous serez redirigé vers {{url}}" }, - "notifications": { - "checking": { - "title": "Vérification de votre mot de passe", - "message": "Votre mot de passe est en cours de vérification..." - }, - "correct": { - "title": "Inscription réussie, redirection..." - }, - "wrong": { - "title": "Le mot de passe saisi est incorrect, veuillez réessayer." - } - } -} + "alert": "Vos identifiants sont incorrects ou ce compte n'existe pas. Veuillez réessayer." +} \ No newline at end of file diff --git a/public/locales/fr/boards/common.json b/public/locales/fr/boards/common.json new file mode 100644 index 000000000..8a907e2a5 --- /dev/null +++ b/public/locales/fr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personnaliser le tableau de bord" + } +} \ No newline at end of file diff --git a/public/locales/fr/boards/customize.json b/public/locales/fr/boards/customize.json new file mode 100644 index 000000000..548ca7342 --- /dev/null +++ b/public/locales/fr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personnaliser le tableau de bord {{name}}", + "pageTitle": "Personnalisation du tableau de bord {{name}}", + "backToBoard": "Retour au tableau de bord", + "settings": { + "appearance": { + "primaryColor": "Couleur primaire", + "secondaryColor": "Couleur secondaire" + } + }, + "save": { + "button": "Sauvegarder les modifications", + "note": "Attention, vous avez des modifications non enregistrées !" + }, + "notifications": { + "pending": { + "title": "Enregistrement de la personnalisation", + "message": "Veuillez patienter pendant que nous enregistrons votre personnalisation" + }, + "success": { + "title": "Personnalisation sauvegardée", + "message": "Votre personnalisation a bien été sauvegardée" + }, + "error": { + "title": "Erreur", + "message": "Impossible d’enregistrer les modifications" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 1470cfb26..2260ecdf9 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -1,11 +1,17 @@ { "save": "Sauvegarder", + "apply": "Appliquer", + "insert": "Insérer", "about": "À propos", "cancel": "Annuler", "close": "Fermer", + "back": "Retour", "delete": "Supprimer", "ok": "OK", "edit": "Modifier", + "next": "Suivant", + "previous": "Précédent", + "confirm": "Confirmer", "enabled": "Activé", "disabled": "Désactivé", "enableAll": "Activer tout", @@ -36,5 +42,14 @@ "medium": "moyen", "large": "grand" }, - "seeMore": "En savoir plus..." + "seeMore": "En savoir plus...", + "position": { + "left": "Gauche", + "center": "Centrer", + "right": "Droite" + }, + "attributes": { + "width": "Largeur", + "height": "Hauteur" + } } \ No newline at end of file diff --git a/public/locales/fr/layout/common.json b/public/locales/fr/layout/common.json index ebff5b6e5..c43d2de7e 100644 --- a/public/locales/fr/layout/common.json +++ b/public/locales/fr/layout/common.json @@ -18,7 +18,7 @@ "menu": { "moveUp": "Monter", "moveDown": "Descendre", - "addCategory": "", + "addCategory": "Ajouter une catégorie {{location}}", "addAbove": "au-dessus", "addBelow": "en dessous" } diff --git a/public/locales/fr/layout/element-selector/selector.json b/public/locales/fr/layout/element-selector/selector.json index 20a90ed8f..33da03480 100644 --- a/public/locales/fr/layout/element-selector/selector.json +++ b/public/locales/fr/layout/element-selector/selector.json @@ -10,7 +10,7 @@ }, "apps": "Applications", "app": { - "defaultName": "Votre Application" + "defaultName": "Votre application" }, "widgets": "Widgets", "categories": "Catégories", @@ -19,7 +19,7 @@ "defaultName": "Nouvelle catégorie", "created": { "title": "Catégorie créée", - "message": "La catégorie \"{{name}}\" a été créée" + "message": "La catégorie « {{name}} » a été créée" } } } diff --git a/public/locales/fr/layout/errors/access-denied.json b/public/locales/fr/layout/errors/access-denied.json new file mode 100644 index 000000000..96713fc3f --- /dev/null +++ b/public/locales/fr/layout/errors/access-denied.json @@ -0,0 +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.", + "switchAccount": "Basculer sur un autre compte" +} \ No newline at end of file diff --git a/public/locales/fr/layout/header.json b/public/locales/fr/layout/header.json new file mode 100644 index 000000000..d5cfe667d --- /dev/null +++ b/public/locales/fr/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Ceci est une fonctionnalité expérimentale de Homarr. Veuilez signaler tout problème sur GitHub ou sur Discord." + }, + "search": { + "label": "Rechercher", + "engines": { + "web": "Rechercher {{query}} sur le web", + "youtube": "Rechercher {{query}} sur YouTube", + "torrent": "Rechercher {{query}} parmi les torrents", + "movie": "Rechercher {{query}} sur {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Changer de thème", + "preferences": "Préférences utilisateur", + "defaultBoard": "Tableau de bord par défaut", + "manage": "Gérer", + "logout": "Se déconnecter de {{username}}", + "login": "Connexion" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} premiers résultats pour {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/header/actions/toggle-edit-mode.json b/public/locales/fr/layout/header/actions/toggle-edit-mode.json index 4cb19e219..1d520b21b 100644 --- a/public/locales/fr/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/fr/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Le mode d'édition est activé pour la taille de <1>{{size}}", "text": "Vous pouvez désormais ajuster et configurer vos applications. Les modifications ne sont pas enregistrées jusqu'à ce que vous quittiez le mode édition" }, - "unloadEvent": "" + "unloadEvent": "Quittez le mode d'édition pour enregistrer vos modifications" } diff --git a/public/locales/fr/layout/manage.json b/public/locales/fr/layout/manage.json new file mode 100644 index 000000000..7034df4b2 --- /dev/null +++ b/public/locales/fr/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Accueil" + }, + "boards": { + "title": "Tableaux de bord" + }, + "users": { + "title": "Utilisateurs", + "items": { + "manage": "Gérer", + "invites": "Invitations" + } + }, + "help": { + "title": "Aide", + "items": { + "documentation": "Documentation", + "report": "Signaler un problème ou un bug", + "discord": "Communauté Discord", + "contribute": "Contribuer" + } + }, + "tools": { + "title": "Outils", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "À propos" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/layout/modals/about.json b/public/locales/fr/layout/modals/about.json index cf7c48b6b..973583e3a 100644 --- a/public/locales/fr/layout/modals/about.json +++ b/public/locales/fr/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr est un tableau de bord élégant, moderne qui met toutes vos applications et services au bout de vos doigts. Avec Homarr, vous pouvez accéder et contrôler tout dans un seul endroit. Homarr s'intègre de façon transparente avec les applications que vous avez ajoutées, vous fournissant des informations précieuses et vous donnant un contrôle total. L'installation est un jeu d'enfant, et Homarr prend en charge un large éventail de méthodes de déploiement.", - "contact": "Vous avez des problèmes ou des questions ? Dites-le-nous !", "addToDashboard": "Ajouter au tableau de bord", "tip": "Mod fait référence à votre touche de modification, c'est-à-dire Ctrl et Commande/Super/Windows", "key": "Raccourci clavier", "action": "Action", "keybinds": "Affectation des touches", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "Basculer entre mode clair/sombre", "focusSearchBar": "Focus sur la barre de recherche", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Version de schéma de configuration", - "configurationsCount": "Configurations disponibles", "version": "Version", "nodeEnvironment": "Environnement Node", "i18n": "Traductions I18n chargées", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EXPÉRIMENTAL : désactiver le mode édition" }, "version": { - "new": "", - "dropdown": "" + "new": "Nouveau : {{newVersion}}", + "dropdown": "La version {{newVersion}} est disponible ! La version actuelle est {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/fr/layout/modals/add-app.json b/public/locales/fr/layout/modals/add-app.json index c1ffd83a4..c78bb0c9d 100644 --- a/public/locales/fr/layout/modals/add-app.json +++ b/public/locales/fr/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Adresse interne", - "description": "IP interne de l'application." + "description": "IP interne de l'application.", + "troubleshoot": { + "label": "Un problème ?", + "header": "Voici une liste des erreurs les plus courantes et des solutions de dépannage :", + "lines": { + "nothingAfterPort": "Dans la plupart des cas, si ce n'est tous, vous ne devez pas saisir de chemin après le port. (Même le '/admin' pour pihole ou '/web' pour plex)", + "protocolCheck": "Assurez-vous toujours que l'URL est précédé de http ou https, et que vous utilisez le bon.", + "preferIP": "Il est recommandé d'utiliser l'adresse IP directe de la machine ou du conteneur avec lequel vous essayez de communiquer.", + "enablePings": "Vérifiez que l'IP est correcte en activant les \"pings\". Personnaliser le tableau de bord -> Mise en page -> Activer les \"pings\". Une petite bulle rouge ou verte apparaîtra sur les tuiles de vos applications et en la survolant, vous verrez le code de réponse (une bulle verte avec le code 200 est attendue dans la plupart des cas).", + "wget": "Pour s'assurer que homarr peut communiquer avec les autres applications, assurez-vous de wget/curl/ping le combo \"IP:port\" de l'application.", + "iframe": "En ce qui concerne les iframes, ceux-ci devraient toujours utiliser le même protocole (http/s) que Homarr.", + "clearCache": "Certaines informations sont enregistrées dans le cache, donc une intégration peut ne pas fonctionner à moins que vous ne vidiez le cache dans les options générales de Homarr." + }, + "footer": "Pour plus d'aide, contactez nous sûr {{discord}}." + } }, "externalAddress": { "label": "Adresse externe", @@ -26,7 +40,7 @@ "description": "Ouvrez l'application dans un nouvel onglet au lieu de l'onglet actuel." }, "tooltipDescription": { - "label": "Description de l'Application", + "label": "Description de l'application", "description": "Le texte que vous allez entrer apparaitra quand vous survolerez votre application.\nUtilisez cela pour donner plus d'informations aux utilisateurs à propos de votre application ou laissez vide pour qu'il n'y ait rien." }, "customProtocolWarning": "Utilisation d'un protocole non standard. Ceci peut nécessiter des applications préinstallées et peut introduire des failles de sécurité. Assurez-vous que votre adresse est sécurisée et de confiance." @@ -55,8 +69,8 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Taille de la police du nom de l'application", + "description": "Définissez la taille de la police lorsque le nom de l'application est affiché sur la tuile." }, "appNameStatus": { "label": "Status du nom de l'application", @@ -71,22 +85,22 @@ "label": "Position du nom de l'application", "description": "Position du nom de l'application par rapport à l'icône.", "dropdown": { - "top": "Dessus", + "top": "Au-dessus", "right": "Droite", - "bottom": "Dessous", + "bottom": "En-dessous", "left": "Gauche" } }, "lineClampAppName": { "label": "Coupe ligne pour le nom de l'application", - "description": "Défini sur combien de lignes le nom de l'application va s'étendre. 0 pour illimité." + "description": "Définissez sur combien de lignes le nom de l'application va s'étendre. 0 pour illimité." } }, "integration": { "type": { "label": "Configuration d’intégrations", "description": "La configuration d'intégration qui sera utilisée pour se connecter à votre application.", - "placeholder": "Sélectionner une itégration", + "placeholder": "Sélectionner une intégration", "defined": "Défini", "undefined": "Indéfini", "public": "Public", @@ -106,7 +120,7 @@ "popover": "Votre formulaire contient des données invalides et ne peut être sauvegardé. Veuillez résoudre tous les problèmes et cliquez à nouveau sur ce bouton pour enregistrer vos modifications", "name": "Un nom est requis", "noUrl": "Un lien est requis", - "invalidUrl": "Ce lien n'est pas un URL valide", + "invalidUrl": "La valeur n'est pas une url valide", "noIconUrl": "Ce champ est requis", "noExternalUri": "Un URI externe est requis", "invalidExternalUri": "Cet URI externe n'est pas un URI valide" diff --git a/public/locales/fr/manage/boards.json b/public/locales/fr/manage/boards.json new file mode 100644 index 000000000..f39beb510 --- /dev/null +++ b/public/locales/fr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tableaux de bord", + "pageTitle": "Tableaux de bord", + "cards": { + "statistics": { + "apps": "Applications", + "widgets": "Widgets", + "categories": "Catégories" + }, + "buttons": { + "view": "Voir le tableau de bord" + }, + "menu": { + "setAsDefault": "Définir comme votre tableau de bord par défaut", + "delete": { + "label": "Supprimer définitivement", + "disabled": "Suppression désactivée car certains anciens composants Homarr ne permettent pas la suppression de la configuration par défaut. La suppression sera possible dans le futur." + } + }, + "badges": { + "fileSystem": "Système de fichiers", + "default": "Par défaut" + } + }, + "buttons": { + "create": "Créer un nouveau tableau de bord" + }, + "modals": { + "delete": { + "title": "Supprimer le tableau de bord", + "text": "Êtes-vous sûr de vouloir supprimer ce tableau de bord ? Cette action ne peut être annulée et toutes vos données seront définitivement supprimées." + }, + "create": { + "title": "Créer un tableau de bord", + "text": "Le nom du tableau de bord ne pourra pas être changé une fois créé.", + "form": { + "name": { + "label": "Nom" + }, + "submit": "Créer" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/index.json b/public/locales/fr/manage/index.json new file mode 100644 index 000000000..f0711cbc9 --- /dev/null +++ b/public/locales/fr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Gérer", + "hero": { + "title": "Content de te revoir, {{username}}", + "fallbackUsername": "Anonyme", + "subtitle": "Bienvenue sur votre hub d'applications. Organisez, optimisez et conquérez !" + }, + "quickActions": { + "title": "Actions rapides", + "boards": { + "title": "Vos tableaux de bord", + "subtitle": "Créer et gérer vos tableaux de bord" + }, + "inviteUsers": { + "title": "Inviter un nouvel utilisateur", + "subtitle": "Créer et envoyer une invitation pour inscription" + }, + "manageUsers": { + "title": "Gérer les utilisateurs", + "subtitle": "Supprimer et gérer vos utilisateurs" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/users.json b/public/locales/fr/manage/users.json new file mode 100644 index 000000000..2f95243f2 --- /dev/null +++ b/public/locales/fr/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Utilisateur" + } + }, + "tooltips": { + "deleteUser": "Supprimer l’utilisateur", + "demoteAdmin": "Rétrograder l'administrateur", + "promoteToAdmin": "Promouvoir en tant qu'administrateur" + }, + "modals": { + "delete": { + "title": "Supprimer l'utilisateur {{name}}", + "text": "Voulez-vous vraiment supprimer l'utilisateur {{name}} ? Cela supprimera les données associées au compte mais pas les tableaux de bord créés par celui-ci." + }, + "change-role": { + "promote": { + "title": "Promouvoir l'utilisateur {{name}} en tant qu'administrateur", + "text": "Voulez-vous vraiment promouvoir l'utilisateur {{name}} en tant qu'administrateur ? Ceci donnera à celui-ci l'accès à toutes les ressources de votre instance Homarr." + }, + "demote": { + "title": "Rétrograder l'utilisateur {{name}} en tant qu'utilisateur", + "text": "Voulez-vous vraiment rétrograder l'utilisateur {{name}} en tant qu'administrateur ? Ceci supprimera l'accès à l'utilisateur à toutes les ressources de votre instance Homarr." + }, + "confirm": "Confirmer" + } + }, + "searchDoesntMatch": "Votre recherche ne correspond à aucune entrée. Veuillez ajuster votre filtre." +} \ No newline at end of file diff --git a/public/locales/fr/manage/users/create.json b/public/locales/fr/manage/users/create.json new file mode 100644 index 000000000..1ac829241 --- /dev/null +++ b/public/locales/fr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Créer un utilisateur", + "steps": { + "account": { + "title": "Première étape", + "text": "Créer un compte", + "username": { + "label": "Nom d'utilisateur" + }, + "email": { + "label": "Courriel" + } + }, + "security": { + "title": "Seconde étape", + "text": "Mot de passe", + "password": { + "label": "Mot de passe" + } + }, + "finish": { + "title": "Confirmation", + "text": "Enregistrer dans la base de données", + "card": { + "title": "Vérification de vos saisies", + "text": "Après avoir envoyé les données dans la base de données, l'utilisateur pourra se connecter. Êtes-vous sûr de vouloir ajouter cet utilisateur dans la base de données et d'activer son compte ?" + }, + "table": { + "header": { + "property": "Propriété", + "value": "Valeur", + "username": "Nom d'utilisateur", + "email": "Courriel", + "password": "Mot de passe" + }, + "notSet": "Non défini", + "valid": "Valide" + }, + "failed": "Échec de la création de l'utilisateur : {{error}}" + }, + "completed": { + "alert": { + "title": "Utilisateur créé", + "text": "L'utilisateur a été créé dans la base de données. Il peut désormais se connecter." + } + } + }, + "buttons": { + "generateRandomPassword": "Génération aléatoire", + "createAnother": "En créer un autre" + } +} \ No newline at end of file diff --git a/public/locales/fr/manage/users/invites.json b/public/locales/fr/manage/users/invites.json new file mode 100644 index 000000000..3ac2c1049 --- /dev/null +++ b/public/locales/fr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Invitations des utilisateurs", + "pageTitle": "Gérer les invitations des utilisateurs", + "description": "Avec les invitations, vous pouvez convier des utilisateurs sur votre instance Homarr. Une invitation ne sera valide que pendant un certain temps et ne peut être utilisée qu'une fois. L'expiration doit être définie entre 5 minutes et 12 mois.", + "button": { + "createInvite": "Créer une invitation", + "deleteInvite": "Supprimer une invitation" + }, + "table": { + "header": { + "id": "ID", + "creator": "Créé par", + "expires": "Date d'expiration", + "action": "Actions" + }, + "data": { + "expiresAt": "a expiré à {{at}}", + "expiresIn": "à {{in}}" + } + }, + "modals": { + "create": { + "title": "Créer une invitation", + "description": "Après expiration, une invitation ne sera plus valide et le destinataire de cette invitation ne pourra pas créer un compte.", + "form": { + "expires": "Date d'expiration", + "submit": "Créer" + } + }, + "copy": { + "title": "Copier l'invitation", + "description": "Votre invitation a été générée. Après avoir fermé cette fenêtre, vous ne pourrez plus copier ce lien. Si vous ne souhaitez plus inviter cette personne, vous pouvez supprimer l'invitation à tout moment.", + "invitationLink": "Lien d'invitation", + "details": { + "id": "ID", + "token": "Jeton" + }, + "button": { + "close": "Copier et fermer" + } + }, + "delete": { + "title": "Supprimer une invitation", + "description": "Êtes-vous sûr de vouloir supprimer cette invitation ? Les utilisateurs avec ce lien ne pourront plus créer un compte avec ce dernier." + } + }, + "noInvites": "Il n'y a pas encore d'invitations." +} \ No newline at end of file diff --git a/public/locales/fr/modules/bookmark.json b/public/locales/fr/modules/bookmark.json index 00172149c..2b11844b6 100644 --- a/public/locales/fr/modules/bookmark.json +++ b/public/locales/fr/modules/bookmark.json @@ -6,7 +6,7 @@ "title": "Paramètres des marque-pages", "name": { "label": "Nom du widget", - "info": "Laissez vide pour garder le titre caché." + "info": "Laissez vide pour masquer le titre." }, "items": { "label": "Éléments" @@ -15,8 +15,8 @@ "label": "Mise en page", "data": { "autoGrid": "Grille automatique", - "horizontal": "Horizontal", - "vertical": "Vertical" + "horizontal": "Horizontale", + "vertical": "Verticale" } } } @@ -29,9 +29,9 @@ }, "item": { "validation": { - "length": "", + "length": "La longueur doit être comprise entre {{shortest}} et {{longest}}", "invalidLink": "Lien non valide", - "errorMsg": "Impossible d'enregistrer, car il y a eu des erreurs de validation. S'il vous plaît ajustez les données entrées." + "errorMsg": "Impossible d'enregistrer car il y a eu des erreurs de validation. Veuillez ajuster les données saisies" }, "name": "Nom", "url": "URL (lien)", diff --git a/public/locales/fr/modules/calendar.json b/public/locales/fr/modules/calendar.json index 3229b885e..22f77b6a6 100644 --- a/public/locales/fr/modules/calendar.json +++ b/public/locales/fr/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Affiche un calendrier avec les prochaines sorties, à partir des intégrations prises en charge.", "settings": { "title": "Paramètres du widget Calendrier", - "useSonarrv4": { - "label": "Utiliser l'API de Sonarr v4" - }, - "sundayStart": { - "label": "Commencez la semaine par dimanche" - }, "radarrReleaseType": { "label": "Type de sortie Radarr", "data": { - "inCinemas": "Au cinéma", - "physicalRelease": "Physique", - "digitalRelease": "Digitale" + "inCinemas": "Sorties en salle", + "physicalRelease": "Édition physique", + "digitalRelease": "Édition numérique" } }, "hideWeekDays": { "label": "Masquer les jours de la semaine" }, "showUnmonitored": { - "label": "" + "label": "Afficher les éléments non surveillés" }, "fontSize": { "label": "Taille de la police", "data": { - "xs": "Très Petite", + "xs": "Très petite", "sm": "Petite", "md": "Moyenne", "lg": "Grande", - "xl": "Très Grande" + "xl": "Très grande" } } } diff --git a/public/locales/fr/modules/common-media-cards.json b/public/locales/fr/modules/common-media-cards.json index 299372e36..0539859b6 100644 --- a/public/locales/fr/modules/common-media-cards.json +++ b/public/locales/fr/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Jouer", + "play": "Lire", "request": "Demande" } } \ No newline at end of file diff --git a/public/locales/fr/modules/dashdot.json b/public/locales/fr/modules/dashdot.json index 3a982801c..29e091874 100644 --- a/public/locales/fr/modules/dashdot.json +++ b/public/locales/fr/modules/dashdot.json @@ -33,7 +33,7 @@ "label": "Afficher en tant que texte (compact)" }, "multiView": { - "label": "Montrer comme vue multi-disques" + "label": "Montrer comme vue multidisques" } }, "network": { diff --git a/public/locales/fr/modules/date.json b/public/locales/fr/modules/date.json index 2e14946dc..81d11ab9d 100644 --- a/public/locales/fr/modules/date.json +++ b/public/locales/fr/modules/date.json @@ -8,7 +8,7 @@ "label": "Affichage 24 h" }, "dateFormat": { - "label": "Formatage de la date", + "label": "Format de la date", "data": { "hide": "Masquer la date" } @@ -21,7 +21,7 @@ }, "titleState": { "label": "Nom de la ville", - "info": "Si vous avez choisis 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.", + "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.", "data": { "both": "Ville et fuseau horaire", "city": "Ville uniquement", diff --git a/public/locales/fr/modules/dns-hole-controls.json b/public/locales/fr/modules/dns-hole-controls.json index a7dfb1050..4ec23c3ed 100644 --- a/public/locales/fr/modules/dns-hole-controls.json +++ b/public/locales/fr/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "Contrôle du DNS hole", - "description": "Contrôlez PiHole ou AdGuard depuis votre tableau de bord" + "name": "Pilotage du DNS Hole", + "description": "Contrôlez PiHole ou AdGuard depuis votre tableau de bord", + "settings": { + "title": "Paramètres du DNS Hole", + "showToggleAllButtons": { + "label": "Afficher les boutons \"Activer/Désactiver tout\"" + } + }, + "errors": { + "general": { + "title": "Impossible de trouver un DNS hole", + "text": "Il y a un problème de connexion à votre/vos DNS hole(s). Veuillez vérifier votre/vos configuration/iintégration(s)." + } + } } } \ No newline at end of file diff --git a/public/locales/fr/modules/dns-hole-summary.json b/public/locales/fr/modules/dns-hole-summary.json index abbd190d0..89c9bde75 100644 --- a/public/locales/fr/modules/dns-hole-summary.json +++ b/public/locales/fr/modules/dns-hole-summary.json @@ -1,28 +1,28 @@ { "descriptor": { - "name": "Résumé du DNS hole", - "description": "Affiche les données importantes de PiHole ou AdGuard", + "name": "Indicateurs clés d'un DNS hole", + "description": "Affiche les données clés de PiHole ou d'AdGuard", "settings": { - "title": "Paramètres du résumé du DNS hole", + "title": "Paramètres du tableau de bord d'un DNS Hole", "usePiHoleColors": { - "label": "Utiliser les couleurs de PiHole" + "label": "Utiliser la palette de couleur de PiHole" }, "layout": { "label": "Mise en page", "data": { "grid": "2 par 2", - "row": "Horizontal", - "column": "Vertical" + "row": "Horizontale", + "column": "Verticale" } } } }, "card": { "metrics": { - "domainsOnAdlist": "Domaines sur les adlists", + "domainsOnAdlist": "Domaines sur les listes de blocage", "queriesToday": "Requêtes aujourd'hui", - "queriesBlockedTodayPercentage": "bloqué aujourd'hui", - "queriesBlockedToday": "bloqué aujourd'hui" + "queriesBlockedTodayPercentage": "Bloqué aujourd'hui", + "queriesBlockedToday": "Bloqué aujourd'hui" } } } diff --git a/public/locales/fr/modules/iframe.json b/public/locales/fr/modules/iframe.json index 79de6989f..bf1d16ea5 100644 --- a/public/locales/fr/modules/iframe.json +++ b/public/locales/fr/modules/iframe.json @@ -3,9 +3,9 @@ "name": "iFrame", "description": "Intégrer n'importe quel contenu à partir d'Internet. Certains sites Web peuvent restreindre l'accès.", "settings": { - "title": "Paramètres d'iFrame", + "title": "Paramètres de l'iFrame", "embedUrl": { - "label": "Intégrer l'URL" + "label": "URL intégrée" }, "allowFullScreen": { "label": "Permettre le plein écran" @@ -39,7 +39,7 @@ "title": "URL invalide", "text": "Assurez-vous que vous avez saisi une adresse valide dans la configuration de votre widget" }, - "browserSupport": "Votre navigateur internet ne supporte pas les iframes. Veillez à le mettre à jour." + "browserSupport": "Votre navigateur internet ne prend pas en charge les iframes. Merci de le mettre à jour." } } } diff --git a/public/locales/fr/modules/media-requests-list.json b/public/locales/fr/modules/media-requests-list.json index 3fe328191..1b9caf551 100644 --- a/public/locales/fr/modules/media-requests-list.json +++ b/public/locales/fr/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "Remplacer les liens par des hôtes externes" }, "openInNewTab": { - "label": "" + "label": "Ouvrir les liens dans un nouvel onglet" } } }, "noRequests": "Aucune demande n'a été trouvée. Veuillez vous assurer que vous avez configuré vos applications correctement.", - "pending": "Il y a {{countPendingApproval}} demandes en attente d'approbation.", - "nonePending": "Il n'y a actuellement aucune approbation en cours. Vous êtes à jour !", "state": { "approved": "Validée", "pendingApproval": "En attente de validation", diff --git a/public/locales/fr/modules/media-requests-stats.json b/public/locales/fr/modules/media-requests-stats.json index a3160d7c4..06f9c3726 100644 --- a/public/locales/fr/modules/media-requests-stats.json +++ b/public/locales/fr/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Remplacer les liens par des hôtes externes" }, "openInNewTab": { - "label": "" + "label": "Ouvrir les liens dans un nouvel onglet" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Statistiques des médias", + "pending": "En attente de validation", + "tvRequests": "Demandes de séries TV", + "movieRequests": "Demandes de films", + "approved": "Déjà approuvé", + "totalRequests": "Total" }, "userStats": { - "title": "", - "requests": "" + "title": "Principaux utilisateurs", + "requests": "Demandes : {{number}}" } } diff --git a/public/locales/fr/modules/media-server.json b/public/locales/fr/modules/media-server.json index 9e7cb6efd..00a19b215 100644 --- a/public/locales/fr/modules/media-server.json +++ b/public/locales/fr/modules/media-server.json @@ -12,7 +12,7 @@ "header": { "session": "Session", "user": "Utilisateur", - "currentlyPlaying": "En cours de lecture" + "currentlyPlaying": "Regarde actuellement" } }, "errors": { diff --git a/public/locales/fr/modules/notebook.json b/public/locales/fr/modules/notebook.json index e0835f6e6..f3faa20d7 100644 --- a/public/locales/fr/modules/notebook.json +++ b/public/locales/fr/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Afficher la barre d'outils pour vous aider à écrire du markdown" }, + "allowReadOnlyCheck": { + "label": "Autoriser la coche des cases en mode lecture" + }, "content": { "label": "Le contenu du bloc-notes" } } + }, + "card": { + "controls": { + "bold": "Gras", + "italic": "Italique", + "strikethrough": "Barrer", + "underline": "Souligner", + "colorText": "Colorer le texte", + "colorHighlight": "Surligner en couleur", + "code": "Code", + "clear": "Effacer la mise en forme", + "heading": "Titre {{level}}", + "align": "Aligner le texte : {{position}}", + "blockquote": "Citation", + "horizontalLine": "Ligne horizontale", + "bulletList": "Liste à puces", + "orderedList": "Liste numérotée", + "checkList": "Liste à coche", + "increaseIndent": "Augmenter l'Indentation", + "decreaseIndent": "Diminuer l'indentation", + "link": "Lien", + "unlink": "Supprimer le lien", + "image": "Intégrer une image", + "addTable": "Ajouter un tableau", + "deleteTable": "Supprimer le tableau", + "colorCell": "Colorer la case", + "mergeCell": "Activer/désactiver la fusion des cases", + "addColumnLeft": "Ajouter une colonne avant", + "addColumnRight": "Ajouter une colonne après", + "deleteColumn": "Supprimer la colonne", + "addRowTop": "Ajouter une ligne avant", + "addRowBelow": "Ajouter une ligne après", + "deleteRow": "Supprimer la ligne" + }, + "modals": { + "clearColor": "Enlever la couleur", + "source": "Source", + "widthPlaceholder": "Valeur en % ou en pixels", + "columns": "Colonnes", + "rows": "Lignes" + } } } \ No newline at end of file diff --git a/public/locales/fr/modules/rss.json b/public/locales/fr/modules/rss.json index d4bc39b2e..9214e5928 100644 --- a/public/locales/fr/modules/rss.json +++ b/public/locales/fr/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Widget RSS", - "description": "", + "description": "Le widget RSS vous permet d'afficher des flux RSS sur votre tableau de bord.", "settings": { "title": "Paramètres du widget RSS", "rssFeedUrl": { diff --git a/public/locales/fr/modules/torrents-status.json b/public/locales/fr/modules/torrents-status.json index d9bc84188..adea26bb8 100644 --- a/public/locales/fr/modules/torrents-status.json +++ b/public/locales/fr/modules/torrents-status.json @@ -10,22 +10,34 @@ "displayCompletedTorrents": { "label": "Cacher les torrents terminés" }, + "displayActiveTorrents": { + "label": "Afficher les torrents actifs" + }, + "speedLimitOfActiveTorrents": { + "label": "Vitesse d'envoi pour considérer un torrent comme actif (Ko/s)" + }, "displayStaleTorrents": { - "label": "Afficher les torrents périmés" + "label": "Afficher les torrents obsolètes" }, "labelFilterIsWhitelist": { - "label": "La liste des libellés est une whitelist (au lieu d'une blacklist)" + "label": "La liste des libellés est une liste blanche (au lieu d'une liste noire)" }, "labelFilter": { "label": "Liste des libellés", - "description": "Si la case \"est une whitelist\" est cochée, elle sera appliquée comme une liste blanche. Si la case n'est pas cochée, elle s'appliquera comme une liste noire (blacklist). Il ne se passera rien si elle est vide" + "description": "Si la case \"La liste des libellés est une liste blanche\" est cochée, elle sera appliquée comme une liste blanche. Si la case n'est pas cochée, elle s'appliquera comme une liste noire. Rien ne se passera si elle est vide" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Erreur", - "lastUpdated": "Dernière mise à jour : {{time}}" + "lastUpdated": "Dernière mise à jour : {{time}}", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -54,12 +66,12 @@ }, "errors": { "noDownloadClients": { - "title": "Aucun client Torrent supporté n'a été trouvé !", + "title": "Aucun client Torrent pris en charge n'a été trouvé !", "text": "Ajouter un client Torrent pris en charge pour voir vos téléchargements en cours" }, "generic": { "title": "Une erreur inattendue s'est produite", - "text": "Impossible de communiquer avec votre client de Torrent. Veuillez vérifier votre configuration." + "text": "Impossible de communiquer avec vos clients Torrent. Veuillez vérifier votre configuration" } }, "loading": { diff --git a/public/locales/fr/modules/video-stream.json b/public/locales/fr/modules/video-stream.json index 050f0c1a7..5a1085510 100644 --- a/public/locales/fr/modules/video-stream.json +++ b/public/locales/fr/modules/video-stream.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Flux vidéo", - "description": "Intégrer un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", + "description": "Intégre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", "settings": { "title": "Paramètres du widget de flux vidéo", "FeedUrl": { diff --git a/public/locales/fr/modules/weather.json b/public/locales/fr/modules/weather.json index 2de7c60db..1ec409069 100644 --- a/public/locales/fr/modules/weather.json +++ b/public/locales/fr/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Inconnu" } }, - "error": "Une erreur est survenue" + "error": "Une erreur s'est produite" } diff --git a/public/locales/fr/password-requirements.json b/public/locales/fr/password-requirements.json new file mode 100644 index 000000000..9d60b3122 --- /dev/null +++ b/public/locales/fr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inclut un nombre", + "lowercase": "Inclut une lettre minuscule", + "uppercase": "Inclut une lettre majuscule", + "special": "Inclut un caractère spécial", + "length": "Inclut au moins {{count}} caractères" +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/access.json b/public/locales/fr/settings/customization/access.json new file mode 100644 index 000000000..bf57edbd6 --- /dev/null +++ b/public/locales/fr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Autoriser l'anonymat", + "description": "Autoriser les utilisateurs non connectés à voir le tableau de bord" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/customization/accessibility.json b/public/locales/fr/settings/customization/accessibility.json index 9cb5639ce..3afe9ecae 100644 --- a/public/locales/fr/settings/customization/accessibility.json +++ b/public/locales/fr/settings/customization/accessibility.json @@ -1,7 +1,7 @@ { "disablePulse": { "label": "Désactiver la pulsation du ping", - "description": "Par défaut, les indicateurs de ping dans Homarr pulsent. Cela peut être irritant. Ce curseur désactivera l'animation" + "description": "Par défaut, les indicateurs de ping dans Homarr clignotent. Cela peut être irritant. Cette case désactivera l'animation" }, "replaceIconsWithDots": { "label": "Remplacer les points de ping par des icônes", diff --git a/public/locales/fr/settings/customization/general.json b/public/locales/fr/settings/customization/general.json index 9c223e6a8..5088b5b2e 100644 --- a/public/locales/fr/settings/customization/general.json +++ b/public/locales/fr/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibilité", "description": "Configurer Homarr pour les utilisateurs handicapés et/ou invalides" + }, + "access": { + "name": "Accès", + "description": "Configurer qui a accès à votre tableau de bord" } } } diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json index bc415957f..f7ac74c4c 100644 --- a/public/locales/fr/settings/customization/page-appearance.json +++ b/public/locales/fr/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "En outre, vous pouvez personnaliser votre tableau de bord à l'aide de CSS. Réservé aux utilisateurs expérimentés.", "placeholder": "Le CSS personnalisé sera appliqué en dernier", "applying": "Application du code CSS..." - }, - "buttons": { - "submit": "Soumettre" } -} +} \ No newline at end of file diff --git a/public/locales/fr/settings/general/cache-buttons.json b/public/locales/fr/settings/general/cache-buttons.json index 685994c48..1105f0729 100644 --- a/public/locales/fr/settings/general/cache-buttons.json +++ b/public/locales/fr/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Nettoyage du cache", "selector": { - "label": "", + "label": "Sélectionner le(s) cache(s) à effacer", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Requêtes ping", + "repositoryIcons": "Icônes distantes/locales", + "calendar&medias": "Médias du calendrier", + "weather": "Données météo" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Cache effacé", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Effacer tout le cache", + "notificationMessage": "Tous les caches ont été vidés" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Effacer les requêtes sélectionnées", + "notificationMessageSingle": "Le cache pour {{value}} a été effacé", + "notificationMessageMulti": "Le cache pour {{values}} a été effacé" } } } \ No newline at end of file diff --git a/public/locales/fr/settings/general/config-changer.json b/public/locales/fr/settings/general/config-changer.json index fc6f629ab..86f4360cb 100644 --- a/public/locales/fr/settings/general/config-changer.json +++ b/public/locales/fr/settings/general/config-changer.json @@ -1,7 +1,7 @@ { "configSelect": { "label": "Changeur de configuration", - "description": "{{configCount}} configurations disponibles", + "description": "{{configCount}} configuration(s) disponible(s)", "loadingNew": "Chargement des configurations ...", "pleaseWait": "Veuillez attendre que votre nouvelle configuration soit chargée !" }, diff --git a/public/locales/fr/settings/general/edit-mode-toggle.json b/public/locales/fr/settings/general/edit-mode-toggle.json index 61ba727f9..f05c41900 100644 --- a/public/locales/fr/settings/general/edit-mode-toggle.json +++ b/public/locales/fr/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Basculer vers le mode édition", + "enable": "Activer le mode édition", + "disable": "Désactiver le mode édition" }, "form": { - "label": "", - "message": "", + "label": "Modifier le mot de passe", + "message": "Pour activer le mode édition, vous devez saisir le mot de passe que vous avez entré dans la variable d'environnement appelée EDIT_MODE_PASSWORD . Si cette variable n'est pas définie, vous ne pourrez pas activer ou désactiver le mode édition.", "submit": "Soumettre" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Réussie", + "message": "Basculement vers le mode édition réussi, rechargement de la page..." }, "error": { "title": "Erreur", - "message": "" + "message": "Impossible d'activer/désactiver le mode d'édition, veuillez réessayer." } } } \ No newline at end of file diff --git a/public/locales/fr/settings/general/search-engine.json b/public/locales/fr/settings/general/search-engine.json index 5838b19ed..bf02647bc 100644 --- a/public/locales/fr/settings/general/search-engine.json +++ b/public/locales/fr/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Moteur de recherche", "configurationName": "Configuration du moteur de recherche", - "custom": "", + "custom": "Personnalisé", "tips": { "generalTip": "Vous pouvez utiliser plusieurs préfixes ! L'ajout de ces préfixes devant votre requête filtrera les résultats. !s (Web), !t (Torrents), !y (YouTube), et !m (Media).", "placeholderTip": "%s peut être utilisé en tant que placeholder pour la requête." diff --git a/public/locales/fr/tools/docker.json b/public/locales/fr/tools/docker.json new file mode 100644 index 000000000..0ffe2a29a --- /dev/null +++ b/public/locales/fr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Docker n'est pas configuré sur votre instance Homarr ou a échoué à trouver les conteneurs. Veuillez vérifier la documentation pour savoir comment configurer cette intégration." + } + }, + "modals": { + "selectBoard": { + "title": "Choisir un tableau de bord", + "text": "Choisissez le tableau sur lequel vous souhaiyez ajouter les applications pour les conteneurs Docker sélectionnés.", + "form": { + "board": { + "label": "Tableau de bord" + }, + "submit": "Ajouter des applications" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Applications ajoutées au tableau de bord", + "message": "Les applications pour les conteneurs Docker sélectionnés ont bien été ajoutées au tableau de bord." + }, + "error": { + "title": "Impossible d'ajouter des applications au tableau de bord", + "message": "Les applications pour les conteneurs Docker sélectionnés n'ont pas pu être ajoutées au tableau de bord." + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/user/preferences.json b/public/locales/fr/user/preferences.json new file mode 100644 index 000000000..9a66140d7 --- /dev/null +++ b/public/locales/fr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Préférences", + "pageTitle": "Vos préférences", + "boards": { + "defaultBoard": { + "label": "Tableau de bord par défaut" + } + }, + "accessibility": { + "title": "Accessibilité", + "disablePulse": { + "label": "Désactiver la pulsation du ping", + "description": "Par défaut, les indicateurs de ping dans Homarr clignotent. Cela peut être irritant. Cette case désactivera l'animation" + }, + "replaceIconsWithDots": { + "label": "Remplacer les points de ping par des icônes", + "description": "Pour les daltoniens, les points de ping peuvent être difficilement différenciables. Ceci remplacera les indicateurs par des icônes" + } + }, + "localization": { + "language": { + "label": "Langue" + }, + "firstDayOfWeek": { + "label": "Premier jour de la semaine", + "options": { + "monday": "Lundi", + "saturday": "Samedi", + "sunday": "Dimanche" + } + } + }, + "searchEngine": { + "title": "Moteur de recherche", + "custom": "Personnalisé", + "newTab": { + "label": "Ouvrir les résultats de la recherche dans un nouvel onglet" + }, + "autoFocus": { + "label": "Se placer sur la barre de recherche au chargement de la page.", + "description": "Ceci permet de placer automatiquement le curseur sur la barre de recherche lorsque vous naviguez sur les pages de tableau de bord. Ne fonctionnera que sur les PC." + }, + "template": { + "label": "URL de la requête", + "description": "Utilisez %s comme substitut pour la requête" + } + } +} \ No newline at end of file diff --git a/public/locales/fr/widgets/error-boundary.json b/public/locales/fr/widgets/error-boundary.json index 1eb20b7c5..ab1136859 100644 --- a/public/locales/fr/widgets/error-boundary.json +++ b/public/locales/fr/widgets/error-boundary.json @@ -1,6 +1,6 @@ { "card": { - "title": "Une erreur s’est produite!", + "title": "Oups, il y a eu une erreur !", "buttons": { "details": "Détails", "tryAgain": "Réessayer" diff --git a/public/locales/fr/zod.json b/public/locales/fr/zod.json new file mode 100644 index 000000000..eb18922e4 --- /dev/null +++ b/public/locales/fr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Ce champ est invalide", + "required": "Ce champ est requis", + "string": { + "startsWith": "Ce champ doit commencer par {{startsWith}}", + "endsWith": "Ce champ doit terminer par {{endsWith}}", + "includes": "Ce champ doit inclure {{includes}}" + }, + "tooSmall": { + "string": "Ce champ doit faire au moins {{minimum}} caractères", + "number": "Ce champ doit être supérieur ou égal à {{minimum}}" + }, + "tooBig": { + "string": "Ce champ doit faire au plus {{maximum}} caractères", + "number": "Ce champ doit être inférieur ou égal à {{maximum}}" + }, + "custom": { + "passwordMatch": "Les mots de passe doivent correspondre" + } + } +} \ No newline at end of file diff --git a/public/locales/he/authentication/invite.json b/public/locales/he/authentication/invite.json new file mode 100644 index 000000000..c837f02df --- /dev/null +++ b/public/locales/he/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "צור חשבון", + "title": "צור חשבון", + "text": "אנא הגדר את פרטי החשבון שלך למטה", + "form": { + "fields": { + "username": { + "label": "שם משתמש" + }, + "password": { + "label": "סיסמה" + }, + "passwordConfirmation": { + "label": "אימות סיסמא" + } + }, + "buttons": { + "submit": "צור חשבון" + } + }, + "notifications": { + "loading": { + "title": "יוצר חשבון...", + "text": "אנא המתן" + }, + "success": { + "title": "החשבון נוצר", + "text": "החשבון שלך נוצר בהצלחה" + }, + "error": { + "title": "שגיאה", + "text": "משהו השתבש, התקבלה השגיאה הבאה: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/he/authentication/login.json b/public/locales/he/authentication/login.json index b4e9fa11e..d79a3a63a 100644 --- a/public/locales/he/authentication/login.json +++ b/public/locales/he/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "התחבר/י", "title": "ברוך שובך!", - "text": "נא להזין סיסמה", + "text": "אנא הקלד את פרטי ההתחברות", "form": { "fields": { + "username": { + "label": "שם משתמש" + }, "password": { - "label": "סיסמה", - "placeholder": "הסיסמה שלך" + "label": "סיסמה" } }, "buttons": { "submit": "התחבר\\י" - } + }, + "afterLoginRedirection": "לאחר ההתחברות, תופנה אל {{url}}" }, - "notifications": { - "checking": { - "title": "סיסמה בבדיקה", - "message": "הסיסמה בבדיקה..." - }, - "correct": { - "title": "התחברת בהצלחה" - }, - "wrong": { - "title": "הסיסמה שגויה, נסה שנית" - } - } -} + "alert": "פרטי ההתחברות שלך שגויים או שחשבון זה אינו קיים. בבקשה נסה שוב." +} \ No newline at end of file diff --git a/public/locales/he/boards/common.json b/public/locales/he/boards/common.json new file mode 100644 index 000000000..322601915 --- /dev/null +++ b/public/locales/he/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "התאמה אישית של לוח" + } +} \ No newline at end of file diff --git a/public/locales/he/boards/customize.json b/public/locales/he/boards/customize.json new file mode 100644 index 000000000..162f5a2f5 --- /dev/null +++ b/public/locales/he/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "התאם אישית את לוח {{name}}", + "pageTitle": "התאמה אישית ללוח {{name}}", + "backToBoard": "חזרה ללוח", + "settings": { + "appearance": { + "primaryColor": "צבע ראשי", + "secondaryColor": "צבע משני" + } + }, + "save": { + "button": "שמור שינויים", + "note": "הזהר - יש לך שינויים שאינם נשמרו!" + }, + "notifications": { + "pending": { + "title": "שמירת התאמה אישית", + "message": "אנא המתן בזמן שאנו שומרים את ההתאמה האישית שלך" + }, + "success": { + "title": "ההתאמה האישית נשמרה", + "message": "ההתאמה האישית שלך נשמרה בהצלחה" + }, + "error": { + "title": "שגיאה", + "message": "לא ניתן לשמור שינויים" + } + } +} \ No newline at end of file diff --git a/public/locales/he/common.json b/public/locales/he/common.json index 60376e4b3..735b7eead 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -1,11 +1,17 @@ { "save": "שמור", + "apply": "החל", + "insert": "הוספה", "about": "אודות", "cancel": "בטל", "close": "סגור", + "back": "חזור", "delete": "מחיקה", "ok": "אישור", "edit": "עריכה", + "next": "הבא", + "previous": "הקודם", + "confirm": "לאשר", "enabled": "מאופשר", "disabled": "מושבת", "enableAll": "אפשר הכל", @@ -36,5 +42,14 @@ "medium": "בינוני", "large": "גדול" }, - "seeMore": "הצגת פריטים נוספים" + "seeMore": "הצגת פריטים נוספים", + "position": { + "left": "שמאל", + "center": "מרכז", + "right": "ימין" + }, + "attributes": { + "width": "רוחב", + "height": "גובה" + } } \ No newline at end of file diff --git a/public/locales/he/layout/errors/access-denied.json b/public/locales/he/layout/errors/access-denied.json new file mode 100644 index 000000000..01c96f4ac --- /dev/null +++ b/public/locales/he/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "גישה נדחתה", + "text": "אין לך מספיק הרשאות לגשת לדף זה. אם אתה סבור שזה לא מכוון, אנא פנה למנהל המערכת שלך.", + "switchAccount": "עבור לחשבון אחר" +} \ No newline at end of file diff --git a/public/locales/he/layout/header.json b/public/locales/he/layout/header.json new file mode 100644 index 000000000..e653b0b8e --- /dev/null +++ b/public/locales/he/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "זוהי תכונה ניסיונית של Homarr. אנא דווח על בעיות ב-GitHub או Discord." + }, + "search": { + "label": "חיפוש", + "engines": { + "web": "חפש את {{query}} באינטרנט", + "youtube": "חפש את {{query}} ב-YouTube", + "torrent": "חפש את {{query}} בטורנטים", + "movie": "חפש את {{query}} ב-{{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "החלפת ערכת נושא", + "preferences": "העדפות המשתמש", + "defaultBoard": "לוח ברירת מחדל", + "manage": "ניהול", + "logout": "התנתקות מ-{{username}}", + "login": "התחבר/י" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} תוצאות מובילות עבור {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/he/layout/manage.json b/public/locales/he/layout/manage.json new file mode 100644 index 000000000..d0f81ea4a --- /dev/null +++ b/public/locales/he/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "מסך הבית" + }, + "boards": { + "title": "לוחות" + }, + "users": { + "title": "משתמשים", + "items": { + "manage": "ניהול", + "invites": "הזמנות" + } + }, + "help": { + "title": "עזרה", + "items": { + "documentation": "תיעוד", + "report": "דווח על בעיה / תקלה", + "discord": "קהילת דיסקורד", + "contribute": "תרומה" + } + }, + "tools": { + "title": "כלים", + "items": { + "docker": "דוקר" + } + }, + "about": { + "title": "אודות" + } + } +} \ No newline at end of file diff --git a/public/locales/he/layout/modals/about.json b/public/locales/he/layout/modals/about.json index b1df74811..af3afd937 100644 --- a/public/locales/he/layout/modals/about.json +++ b/public/locales/he/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr הוא לוח מחוונים אלגנטי, מודרני, אשר שם את כל האפליקציות והשירותים בהישג יד. עם Homarr, ניתן לגשת לכל דבר ולשלוט בו במיקום נוח אחד. Homarr משתלב בצורה חלקה עם האפליקציות, מספק מידע רב ערך ונותן שליטה מלאה. ההתקנה היא קלה ותומכת במגוון רחב של שיטות פריסה.", - "contact": "נתקלת בבעיות או בשאלות? צור איתנו קשר!", "addToDashboard": "הוספה ללוח מחוונים", "tip": "מוד מתייחס למקש השינוי שלך, זהו מקש Ctrl ומקש Command/Super/Windows", "key": "מקש קיצור", "action": "פעולה", "keybinds": "שילוב מקשים", - "documentation": "תיעוד", + "translators": "מתרגמים ({{count}})", + "translatorsDescription": "הודות לאנשים האלה, Homarr זמין ב {{languages}} שפות! רוצה לעזור לתרגם את Homarr לשפה שלך? קרא כיצד לעשות זאת כאן.", + "contributors": "תורמים ({{count}})", + "contributorsDescription": "האנשים האלה בנו את הקוד שגורם Homarr לעבוד! רוצה לעזור לבנות את Homarr? קרא כיצד לעשות זאת כאן", "actions": { "toggleTheme": "החלף מצב אור/חושך", "focusSearchBar": "התמקד בסרגל החיפוש", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "גירסת סכימת תצורה", - "configurationsCount": "תצורות זמינות", "version": "גרסה", "nodeEnvironment": "סביבת Node", "i18n": "מרחבי שמות של תרגום I18n טעונים", diff --git a/public/locales/he/layout/modals/add-app.json b/public/locales/he/layout/modals/add-app.json index a03f05dd0..c8fe619d6 100644 --- a/public/locales/he/layout/modals/add-app.json +++ b/public/locales/he/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "כתובת פנימית", - "description": "כתובת פנימית של האפליקציה." + "description": "כתובת פנימית של האפליקציה.", + "troubleshoot": { + "label": "יש בעיות?", + "header": "להלן רשימה של טעויות נפוצות ופתרון בעיות:", + "lines": { + "nothingAfterPort": "צריך, ברוב אם לא בכל המקרים, לא להזין שום נתיב אחרי הפורט. (אפילו '/admin' עבור pihole או '/web' עבור plex)", + "protocolCheck": "נא לודא תמיד שכתובת האתר קודמת על ידי http או https, ולוודא שכתובת הנכונה.", + "preferIP": "מומלץ להשתמש ב-IP הישיר של המכונה או המכולה שאיתם מנסים לתקשר.", + "enablePings": "בדוק שה-IP נכון על ידי הפעלת פינגים. התאמה אישית של לוח -> פריסה -> אפשר פינגים. בועה אדומה או ירוקה קטנה תופיע על אריחי האפליקציה שלך וריחוף עליה ייתן לך את קוד התגובה שלה (ברוב המקרים צפויה בועה ירוקה עם קוד 200).", + "wget": "כדי לוודא ש-homarr יכול לתקשר עם האפליקציות האחרות, הקפד לעשות wget/curl/ping של ה-IP:port של האפליקציה.", + "iframe": "כשמדובר ב-iframes, אלה צריכים תמיד להשתמש באותו פרוטוקול (http/s) כמו Homarr.", + "clearCache": "חלק מהמידע רשום במטמון, כך שאינטגרציה עשויה שלא לעבוד אלא אם תנקה את המטמון באפשרויות הכלליות של Homarr." + }, + "footer": "לפתרון בעיות נוסף, צור קשר ב-{{discord}} שלנו." + } }, "externalAddress": { "label": "כתובת חיצונית", diff --git a/public/locales/he/manage/boards.json b/public/locales/he/manage/boards.json new file mode 100644 index 000000000..24617805b --- /dev/null +++ b/public/locales/he/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "לוחות", + "pageTitle": "לוחות", + "cards": { + "statistics": { + "apps": "אפליקציות", + "widgets": "ווידג'טים", + "categories": "קטגוריות" + }, + "buttons": { + "view": "צפייה בלוח" + }, + "menu": { + "setAsDefault": "קביעת לוח ברירת מחדל", + "delete": { + "label": "מחיקה לצמיתות", + "disabled": "המחיקה מושבתת, מכיוון שרכיבי Homarr ישנים יותר אינם מאפשרים מחיקה של תצורת ברירת המחדל. המחיקה תתאפשר בעתיד." + } + }, + "badges": { + "fileSystem": "מערכת קבצים", + "default": "ברירת מחדל" + } + }, + "buttons": { + "create": "יצירת לוח חדש" + }, + "modals": { + "delete": { + "title": "מחיקת לוח", + "text": "האם אתה בטוח שאתה רוצה למחוק את הלוח הזה? לא ניתן לבטל פעולה זו והנתונים שלך יאבדו לצמיתות." + }, + "create": { + "title": "צור לוח", + "text": "לא ניתן לשנות את השם לאחר יצירת לוח.", + "form": { + "name": { + "label": "שם" + }, + "submit": "צור" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/manage/index.json b/public/locales/he/manage/index.json new file mode 100644 index 000000000..6270ae079 --- /dev/null +++ b/public/locales/he/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "ניהול", + "hero": { + "title": "ברוך שובך, {{username}}", + "fallbackUsername": "אנונימי", + "subtitle": "ברוכים הבאים למרכז היישומים שלך. ארגן, ייעל וכבוש!" + }, + "quickActions": { + "title": "פעולות מהירות", + "boards": { + "title": "הלוחות שלך", + "subtitle": "צור ונהל את הלוחות שלך" + }, + "inviteUsers": { + "title": "הזמנת משתמש חדש", + "subtitle": "צור ושלח הזמנה להרשמה" + }, + "manageUsers": { + "title": "ניהול משתמשים", + "subtitle": "צור ונהל את המשתמשים שלך" + } + } +} \ No newline at end of file diff --git a/public/locales/he/manage/users.json b/public/locales/he/manage/users.json new file mode 100644 index 000000000..882562149 --- /dev/null +++ b/public/locales/he/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "משתמשים", + "pageTitle": "ניהול משתמשים", + "text": "באמצעות משתמשים, באפשרותך להגדיר מי יוכל לערוך את לוח המחוונים שלך. גרסאות עתידיות של Homarr יהיו בעלות שליטה פרטנית עוד יותר על הרשאות ולוחות.", + "buttons": { + "create": "צור" + }, + "table": { + "header": { + "user": "משתמש" + } + }, + "tooltips": { + "deleteUser": "מחק משתמש", + "demoteAdmin": "הסרת מנהל מערכת", + "promoteToAdmin": "קדם למנהל מערכת" + }, + "modals": { + "delete": { + "title": "מחיקת משתמש {{name}}", + "text": "האם אתה בטוח שברצונך למחוק את המשתמש {{name}}? פעולה זו תמחק נתונים המשויכים לחשבון זה, אך לא כל לוחות מחוונים שנוצרו על ידי משתמש זה." + }, + "change-role": { + "promote": { + "title": "קדם את המשתמש {{name}} למנהל", + "text": "האם אתה בטוח שאתה רוצה לקדם את המשתמש {{name}} למנהל? זה ייתן למשתמש גישה לכל המשאבים במופע Homarr שלך." + }, + "demote": { + "title": "הורד את המשתמש {{name}} למשתמש", + "text": "האם אתה בטוח שאתה רוצה להוריד את המשתמש {{name}} למשתמש? פעולה זו תסיר את הגישה של המשתמש לכל המשאבים במופע Homarr שלך." + }, + "confirm": "לאשר" + } + }, + "searchDoesntMatch": "החיפוש שלך אינו תואם אף ערכים. אנא התאם את הסינון שלך." +} \ No newline at end of file diff --git a/public/locales/he/manage/users/create.json b/public/locales/he/manage/users/create.json new file mode 100644 index 000000000..5e6d0257a --- /dev/null +++ b/public/locales/he/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "צור משתמש", + "steps": { + "account": { + "title": "צעד ראשון", + "text": "צור חשבון", + "username": { + "label": "שם משתמש" + }, + "email": { + "label": "אימייל" + } + }, + "security": { + "title": "שלב שני", + "text": "סיסמה", + "password": { + "label": "סיסמה" + } + }, + "finish": { + "title": "אישור", + "text": "שמור לבסיס נתונים", + "card": { + "title": "בדוק את הקלט שלך", + "text": "לאחר שתשלח את הנתונים שלך למסד הנתונים, המשתמש יוכל להיכנס. האם אתה בטוח שברצונך לאחסן משתמש זה במסד הנתונים ולאפשר את הכניסה?" + }, + "table": { + "header": { + "property": "מאפיין", + "value": "ערך", + "username": "שם משתמש", + "email": "אימייל", + "password": "סיסמה" + }, + "notSet": "לא מוגדר", + "valid": "תקף" + }, + "failed": "יצירת משתמש נכשלה: {{error}}" + }, + "completed": { + "alert": { + "title": "המשתמש נוצר", + "text": "המשתמש נוצר במסד הנתונים. ניתן להתחבר כעת." + } + } + }, + "buttons": { + "generateRandomPassword": "צור אקראי", + "createAnother": "צור אחר" + } +} \ No newline at end of file diff --git a/public/locales/he/manage/users/invites.json b/public/locales/he/manage/users/invites.json new file mode 100644 index 000000000..dd866b371 --- /dev/null +++ b/public/locales/he/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "הזמנות משתמש", + "pageTitle": "נהל הזמנות משתמש", + "description": "באמצעות הזמנות, ניתן להזמין משתמשים למופע Homarr שלך. הזמנה תהיה תקפה רק לפרק זמן מסוים וניתן להשתמש בה פעם אחת. התפוגה חייבת להיות בין 5 דקות ל-12 חודשים מרגע היצירה.", + "button": { + "createInvite": "יצירת הזמנה", + "deleteInvite": "מחיקת הזמנה" + }, + "table": { + "header": { + "id": "מספר מזהה", + "creator": "יוצר", + "expires": "פג תוקף", + "action": "פעולות" + }, + "data": { + "expiresAt": "פג תוקף ב-{{at}}", + "expiresIn": "ב-{{in}}" + } + }, + "modals": { + "create": { + "title": "יצירת הזמנה", + "description": "לאחר התפוגה, הזמנה לא תהיה תקפה יותר ומקבל ההזמנה לא יוכל ליצור חשבון.", + "form": { + "expires": "תאריך תפוגה", + "submit": "צור" + } + }, + "copy": { + "title": "העתק את ההזמנה", + "description": "ההזמנה שלך נוצרה. לאחר סגירת המודל הזה, לא תוכל להעתיק את הקישור הזה יותר. אם אינך מעוניין יותר להזמין את האדם האמור, תוכל למחוק הזמנה זו בכל עת.", + "invitationLink": "קישור הזמנה", + "details": { + "id": "מספר מזהה", + "token": "טוקן" + }, + "button": { + "close": "העתק וסגור" + } + }, + "delete": { + "title": "מחיקת הזמנה", + "description": "האם אתה בטוח שברצונך למחוק את ההזמנה הזו? משתמשים עם קישור זה לא יוכלו עוד ליצור חשבון באמצעות קישור זה." + } + }, + "noInvites": "אין עדיין הזמנות." +} \ No newline at end of file diff --git a/public/locales/he/modules/calendar.json b/public/locales/he/modules/calendar.json index 234fa5e36..3f3e512d6 100644 --- a/public/locales/he/modules/calendar.json +++ b/public/locales/he/modules/calendar.json @@ -4,12 +4,6 @@ "description": "מציג לוח שנה עם עדכונים מאינטגרציות נתמכות.", "settings": { "title": "הגדרות עבור ווידג'ט יומן", - "useSonarrv4": { - "label": "השתמש בAPI גרסא 4 של סונאר (Sonarr)" - }, - "sundayStart": { - "label": "התחל את השבוע ביום ראשון" - }, "radarrReleaseType": { "label": "סוג שחרור של Radarr", "data": { diff --git a/public/locales/he/modules/dns-hole-controls.json b/public/locales/he/modules/dns-hole-controls.json index 0b8efe2bf..a96121397 100644 --- a/public/locales/he/modules/dns-hole-controls.json +++ b/public/locales/he/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "בקרות DNS", - "description": "שלוט ב-PiHole או ב-AdGuard מלוח המחוונים שלך" + "description": "שלוט ב-PiHole או ב-AdGuard מלוח המחוונים שלך", + "settings": { + "title": "הגדרות מערכת שמות המתחם", + "showToggleAllButtons": { + "label": "הצג את לחצני 'הפעל/השבת הכל'" + } + }, + "errors": { + "general": { + "title": "שרת שמות דומיין לא נמצא", + "text": "לא הייתה אפשרות להתחבר לשרת שמות דומיין. נא לבדוק את הגדרות האינטגרציה." + } + } } } \ No newline at end of file diff --git a/public/locales/he/modules/media-requests-list.json b/public/locales/he/modules/media-requests-list.json index d561fc6c2..048e1901c 100644 --- a/public/locales/he/modules/media-requests-list.json +++ b/public/locales/he/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "לא נמצאו בקשות. אנא ודא שהגדרת את האפליקציות שלך כנדרש.", - "pending": "יש {{countPendingApproval}} בקשות הממתינות לאישור.", - "nonePending": "אין כרגע אישורים ממתינים. ניתן להמשיך!", "state": { "approved": "אושר", "pendingApproval": "ממתין לאישור", diff --git a/public/locales/he/modules/notebook.json b/public/locales/he/modules/notebook.json index f081a24d7..8aff57f1d 100644 --- a/public/locales/he/modules/notebook.json +++ b/public/locales/he/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "הצג את סרגל הכלים לסיוע כתיבת סימון" }, + "allowReadOnlyCheck": { + "label": "אפשר בדיקה במצב קריאה בלבד" + }, "content": { "label": "תוכן פנקס הרשימות" } } + }, + "card": { + "controls": { + "bold": "מודגש", + "italic": "נטוי", + "strikethrough": "קו חוצה", + "underline": "קו תחתון", + "colorText": "טקסט צבעוני", + "colorHighlight": "טקסט סימון צבעוני", + "code": "קוד", + "clear": "נקה עיצוב", + "heading": "כותרת {{level}}", + "align": "יישור טקסט: {{position}}", + "blockquote": "ציטוט", + "horizontalLine": "קו אופקי", + "bulletList": "רשימת תבליט", + "orderedList": "רשימה מסודרת", + "checkList": "צ'ק ליסט", + "increaseIndent": "הגדלת הזחה", + "decreaseIndent": "הקטנת הזחה", + "link": "קישור", + "unlink": "הסרת קישור", + "image": "הטמעת תמונה", + "addTable": "הוספת טבלה", + "deleteTable": "מחיקת טבלה", + "colorCell": "טקסט צבעוני", + "mergeCell": "החלפת מיזוג התא", + "addColumnLeft": "הוספת עמודה לפני", + "addColumnRight": "הוספת עמודה אחרי", + "deleteColumn": "מחיקת עמודה", + "addRowTop": "הוספת שורה לפני", + "addRowBelow": "הוספת שורה אחרי", + "deleteRow": "מחיקת שורה" + }, + "modals": { + "clearColor": "ניקוי צבע", + "source": "מקור", + "widthPlaceholder": "ערך באחוזים או בפיקסלים", + "columns": "עמודות", + "rows": "שורות" + } } } \ No newline at end of file diff --git a/public/locales/he/modules/rss.json b/public/locales/he/modules/rss.json index f1bbd56a3..841937b1f 100644 --- a/public/locales/he/modules/rss.json +++ b/public/locales/he/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "וידג׳ט רסס", - "description": "", + "description": "ווידג'ט rss מאפשר לך להציג הזנות RSS בלוח המחוונים שלך.", "settings": { "title": "הגדרות עבור וידג׳ט רסס", "rssFeedUrl": { diff --git a/public/locales/he/modules/torrents-status.json b/public/locales/he/modules/torrents-status.json index d2316f940..4db036186 100644 --- a/public/locales/he/modules/torrents-status.json +++ b/public/locales/he/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "הצג טורנטים שהושלמו" }, + "displayActiveTorrents": { + "label": "הצג טורנטים פעילים" + }, + "speedLimitOfActiveTorrents": { + "label": "מהירות העלאה כדי להתייחס לטורנט כפעיל (kB/s)" + }, "displayStaleTorrents": { "label": "הצג טורנטים שהושלמו" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "רשימת תוויות", "description": "כאשר 'רשימת היתרים' מסומנת, זה יפעל כרשימה הלבנה. אם לא מסומן, זוהי רשימה שחורה. לא יעשה כלום כשהוא ריק" + }, + "displayRatioWithFilter": { + "label": "הצגת יחס רשימת טורנטים מסוננים", + "info": "אם מושבת, רק היחס הגלובלי יוצג. היחס הגלובלי עדיין ישתמש בתוויות אם מוגדר" } } }, "card": { "footer": { "error": "שגיאה", - "lastUpdated": "עודכן לאחרונה לפני {{time}}" + "lastUpdated": "עודכן לאחרונה לפני {{time}}", + "ratioGlobal": "יחס גלובלי", + "ratioWithFilter": "יחס עם פילטר" }, "table": { "header": { diff --git a/public/locales/he/password-requirements.json b/public/locales/he/password-requirements.json new file mode 100644 index 000000000..dc782f98b --- /dev/null +++ b/public/locales/he/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "אפשר מספרים", + "lowercase": "אפשר אותיות קטנות", + "uppercase": "אפשר אותיות גדולות", + "special": "אפשר תווים מיוחדים", + "length": "כולל לפחות {{count}} תווים" +} \ No newline at end of file diff --git a/public/locales/he/settings/customization/access.json b/public/locales/he/settings/customization/access.json new file mode 100644 index 000000000..55e0e75d6 --- /dev/null +++ b/public/locales/he/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "אפשר אנונימי", + "description": "אפשר למשתמשים שאינם מחוברים לצפות בלוח שלך" + } +} \ No newline at end of file diff --git a/public/locales/he/settings/customization/general.json b/public/locales/he/settings/customization/general.json index 8bdf4649f..db04f2b0f 100644 --- a/public/locales/he/settings/customization/general.json +++ b/public/locales/he/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "נגישות", "description": "הגדר את Homarr עבור משתמשים מוגבלים ונכים" + }, + "access": { + "name": "גישה", + "description": "הגדר למי יש גישה ללוח שלך" } } } diff --git a/public/locales/he/settings/customization/page-appearance.json b/public/locales/he/settings/customization/page-appearance.json index 6a5d16b4f..9645a1356 100644 --- a/public/locales/he/settings/customization/page-appearance.json +++ b/public/locales/he/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "יתר על כן, התאם את לוח המחוונים שלך באמצעות CSS, מומלץ רק למשתמשים מנוסים", "placeholder": "CSS מותאם אישית יוחל אחרון", "applying": "מחיל CSS..." - }, - "buttons": { - "submit": "שלח" } -} +} \ No newline at end of file diff --git a/public/locales/he/tools/docker.json b/public/locales/he/tools/docker.json new file mode 100644 index 000000000..c2ef87e55 --- /dev/null +++ b/public/locales/he/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "דוקר", + "alerts": { + "notConfigured": { + "text": "למופע ה-Homarr שלך לא הוגדר Docker או שהוא נכשל באחזור קונטיינרים. אנא עיין בתיעוד כיצד להגדיר את האינטגרציה." + } + }, + "modals": { + "selectBoard": { + "title": "בחר לוח", + "text": "בחר את הלוח שבו ברצונך להוסיף את האפליקציות עבור מכולות Docker שנבחרו.", + "form": { + "board": { + "label": "לוח" + }, + "submit": "הוסף יישומים" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "נוספו אפליקציות ללוח", + "message": "האפליקציות עבור מכולות Docker שנבחרו נוספו ללוח." + }, + "error": { + "title": "הוספת אפליקציות ללוח נכשלה", + "message": "לא ניתן היה להוסיף את האפליקציות עבור מכולות Docker שנבחרו ללוח." + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/user/preferences.json b/public/locales/he/user/preferences.json new file mode 100644 index 000000000..0cf3c379d --- /dev/null +++ b/public/locales/he/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "העדפות", + "pageTitle": "העדפות שלך", + "boards": { + "defaultBoard": { + "label": "לוח ברירת מחדל" + } + }, + "accessibility": { + "title": "נגישות", + "disablePulse": { + "label": "השבת את דופק הפינג", + "description": "כברירת מחדל, מחווני ping ב-Homarr יפעמו. זה עשוי להיות מעצבן. המחוון הזה ישבית את האנימציה" + }, + "replaceIconsWithDots": { + "label": "החלף את נקודות הפינג בסמלים", + "description": "עבור משתמשים עיוורי צבעים, נקודות פינג עשויות להיות בלתי ניתנות לזיהוי. זה יחליף אינדיקטורים בסמלים" + } + }, + "localization": { + "language": { + "label": "שפה" + }, + "firstDayOfWeek": { + "label": "היום הראשון בשבוע", + "options": { + "monday": "יום שני", + "saturday": "יום שבת", + "sunday": "יום ראשון" + } + } + }, + "searchEngine": { + "title": "מנוע חיפוש", + "custom": "מותאם אישית", + "newTab": { + "label": "פתיחת תוצאות חיפוש בכרטיסיה חדשה" + }, + "autoFocus": { + "label": "התמקד בסרגל החיפוש בטעינת העמוד.", + "description": "כשאתה מנווט לדפי הלוח יתבצע מיקוד אוטומטי בסרגל החיפוש. עובד רק במכשירים שולחניים." + }, + "template": { + "label": "כתובת URL של שאילתה", + "description": "השתמש ב-%s כמציין מיקום עבור השאילתה" + } + } +} \ No newline at end of file diff --git a/public/locales/he/zod.json b/public/locales/he/zod.json new file mode 100644 index 000000000..af11dd57e --- /dev/null +++ b/public/locales/he/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "שדה זה אינו חוקי", + "required": "זהו שדה חובה", + "string": { + "startsWith": "שדה זה חייב להתחיל עם {{startsWith}}", + "endsWith": "שדה זה חייב להסתיים עם {{endsWith}}", + "includes": "שדה זה חייב להכיל {{includes}}" + }, + "tooSmall": { + "string": "שדה זה חייב להיות באורך של {{minimum}} תווים לפחות", + "number": "שדה זה חייב להיות גדול או שווה ל {{minimum}}" + }, + "tooBig": { + "string": "שדה זה חייב להיות באורך של {{maximum}} תווים לכל היותר", + "number": "שדה זה חייב להיות קטן או שווה ל {{maximum}}" + }, + "custom": { + "passwordMatch": "הסיסמאות חייבות להיות תואמות" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/authentication/invite.json b/public/locales/hr/authentication/invite.json new file mode 100644 index 000000000..8b03f59df --- /dev/null +++ b/public/locales/hr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Napravi račun", + "title": "Napravi račun", + "text": "Definirajte svoje vjerodajnice u nastavku", + "form": { + "fields": { + "username": { + "label": "Korisničko ime" + }, + "password": { + "label": "Lozinka" + }, + "passwordConfirmation": { + "label": "Potvrdi lozinku" + } + }, + "buttons": { + "submit": "Napravi račun" + } + }, + "notifications": { + "loading": { + "title": "Izrada računa", + "text": "Molimo pričekajte" + }, + "success": { + "title": "Račun kreiran", + "text": "Vaš račun je uspješno kreiran" + }, + "error": { + "title": "Pogreška", + "text": "Nešto nije u redu, pojavila se sljedeća pogreška: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/authentication/login.json b/public/locales/hr/authentication/login.json index f82452fe7..8b48b0b16 100644 --- a/public/locales/hr/authentication/login.json +++ b/public/locales/hr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Prijaviti se", "title": "Dobro došli natrag!", - "text": "Molimo unesite Vašu lozinku", + "text": "Molimo unesite svoje vjerodajnice", "form": { "fields": { + "username": { + "label": "Korisničko ime" + }, "password": { - "label": "Lozinka", - "placeholder": "Vaša lozinka" + "label": "Lozinka" } }, "buttons": { "submit": "Prijavi se" - } + }, + "afterLoginRedirection": "Nakon prijave, bit ćete preusmjereni na {{url}}" }, - "notifications": { - "checking": { - "title": "Provjeravam Vašu lozinku", - "message": "Vaša lozinka se provjerava..." - }, - "correct": { - "title": "Prijavljivanje je uspješno, preusmjeravam..." - }, - "wrong": { - "title": "Lozinka koju ste unijeli nije ispravna, molim pokušajte ponovno." - } - } -} + "alert": "Vaše vjerodajnice nisu točne ili ovaj račun ne postoji. Molim te pokušaj ponovno." +} \ No newline at end of file diff --git a/public/locales/hr/boards/common.json b/public/locales/hr/boards/common.json new file mode 100644 index 000000000..16210d91d --- /dev/null +++ b/public/locales/hr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Prilagodite ploču" + } +} \ No newline at end of file diff --git a/public/locales/hr/boards/customize.json b/public/locales/hr/boards/customize.json new file mode 100644 index 000000000..b8873afef --- /dev/null +++ b/public/locales/hr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Prilagodite ploču {{name}}", + "pageTitle": "Prilagodba za {{name}} ploču", + "backToBoard": "Povratak na ploču", + "settings": { + "appearance": { + "primaryColor": "Primarna boja", + "secondaryColor": "Sekundarna boja" + } + }, + "save": { + "button": "Spremi promjene", + "note": "Pažljivo, imate nespremljene promjene!" + }, + "notifications": { + "pending": { + "title": "Spremanje prilagodbe", + "message": "Pričekajte dok ne spremimo vašu prilagodbu" + }, + "success": { + "title": "Prilagodba spremljena", + "message": "Vaša prilagodba je uspješno spremljena" + }, + "error": { + "title": "Pogreška", + "message": "Nije moguće spremiti promjene" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 2bdafb8ea..83bca3a24 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -1,11 +1,17 @@ { "save": "Spremi", + "apply": "", + "insert": "", "about": "O aplikaciji", "cancel": "Otkaži", "close": "Zatvori", + "back": "leđa", "delete": "Obriši", "ok": "U REDU", "edit": "Uredi", + "next": "Sljedeći", + "previous": "Prethodno", + "confirm": "Potvrdi", "enabled": "Omogućeno", "disabled": "Onemogućeno", "enableAll": "Omogući sve", @@ -36,5 +42,14 @@ "medium": "srednje", "large": "veliko" }, - "seeMore": "" + "seeMore": "Vidi više...", + "position": { + "left": "Lijevo", + "center": "", + "right": "Pravo" + }, + "attributes": { + "width": "Širina", + "height": "Visina" + } } \ No newline at end of file diff --git a/public/locales/hr/layout/common.json b/public/locales/hr/layout/common.json index 107c0710b..3256d0bac 100644 --- a/public/locales/hr/layout/common.json +++ b/public/locales/hr/layout/common.json @@ -2,24 +2,24 @@ "modals": { "blockedPopups": { "title": "Skočni prozor blokiran", - "text": "", + "text": "Vaš preglednik je blokirao pristup Homarru svom API-ju. To je najčešće uzrokovano AdBlockerima ili uskraćenim dopuštenjima. Homarr ne može automatski zatražiti dopuštenja.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Kliknite na ikonu pored URL-a i provjerite dopuštenja. Dopusti skočne prozore i prozore", + "adBlockers": "Onemogućite blokatore oglasa i sigurnosne alate u pregledniku", + "otherBrowser": "Pokušajte s drugim preglednikom" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Otvori sve u novoj kartici" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Pomakni se gore", + "moveDown": "Pomicati prema dolje", + "addCategory": "Dodajte kategoriju {{location}}", + "addAbove": "iznad", + "addBelow": "ispod" } } \ 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 38c275b28..1bf85a2ae 100644 --- a/public/locales/hr/layout/element-selector/selector.json +++ b/public/locales/hr/layout/element-selector/selector.json @@ -8,18 +8,18 @@ "actionIcon": { "tooltip": "Dodaj ploču" }, - "apps": "", + "apps": "aplikacije", "app": { - "defaultName": "" + "defaultName": "Vaša aplikacija" }, - "widgets": "", - "categories": "", + "widgets": "Widgeti", + "categories": "Kategorije", "category": { - "newName": "", - "defaultName": "", + "newName": "Naziv nove kategorije", + "defaultName": "Nova kategorija", "created": { - "title": "", - "message": "" + "title": "Kategorija je stvorena", + "message": "Stvorena je kategorija \"{{name}}\"." } } } diff --git a/public/locales/hr/layout/errors/access-denied.json b/public/locales/hr/layout/errors/access-denied.json new file mode 100644 index 000000000..0c8196c62 --- /dev/null +++ b/public/locales/hr/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Pristup odbijen", + "text": "Nemate dovoljna dopuštenja za pristup ovoj stranici. Ako smatrate da ovo nije namjerno, obratite se svom administratoru.", + "switchAccount": "Prebacite se na drugi račun" +} \ No newline at end of file diff --git a/public/locales/hr/layout/errors/not-found.json b/public/locales/hr/layout/errors/not-found.json index 9e26dfeeb..315c8aff1 100644 --- a/public/locales/hr/layout/errors/not-found.json +++ b/public/locales/hr/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Stranica nije pronađena", + "text": "Ovu stranicu nije moguće pronaći. URL za ovu stranicu je možda istekao, URL je nevažeći ili sada imate potrebna dopuštenja za pristup ovom resursu.", + "button": "Ići kući" +} \ No newline at end of file diff --git a/public/locales/hr/layout/header.json b/public/locales/hr/layout/header.json new file mode 100644 index 000000000..3ff54b12e --- /dev/null +++ b/public/locales/hr/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Ovo je eksperimentalna značajka Homarra. Prijavite sve probleme na GitHub ili Discord." + }, + "search": { + "label": "traži", + "engines": { + "web": "Potražite {{query}} na webu", + "youtube": "Potražite {{query}} na YouTubeu", + "torrent": "Traži {{query}} torrenta", + "movie": "Tražite {{query}} na {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Promijeni temu", + "preferences": "Korisničke postavke", + "defaultBoard": "Zadana nadzorna ploča", + "manage": "Upravljati", + "logout": "Odjava iz {{username}}", + "login": "Prijaviti se" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} najboljih rezultata za {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/hr/layout/header/actions/toggle-edit-mode.json b/public/locales/hr/layout/header/actions/toggle-edit-mode.json index add353a12..025d05c9c 100644 --- a/public/locales/hr/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/hr/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Način uređivanja je omogućen za veličinu <1>{{size}}", "text": "Sada možete prilagoditi i konfigurirati svoje aplikacije. Promjene se neće spremiti sve dok ne izađete iz načina uređivanja" }, - "unloadEvent": "" + "unloadEvent": "Izađite iz načina uređivanja da biste spremili promjene" } diff --git a/public/locales/hr/layout/manage.json b/public/locales/hr/layout/manage.json new file mode 100644 index 000000000..a108f4eaa --- /dev/null +++ b/public/locales/hr/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Dom" + }, + "boards": { + "title": "Daske" + }, + "users": { + "title": "Korisnici", + "items": { + "manage": "Upravljati", + "invites": "poziva" + } + }, + "help": { + "title": "Pomozite", + "items": { + "documentation": "Dokumentacija", + "report": "Prijavite problem/bug", + "discord": "Nesloga u zajednici", + "contribute": "Doprinesite" + } + }, + "tools": { + "title": "Alati", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "O aplikaciji" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/layout/modals/about.json b/public/locales/hr/layout/modals/about.json index 52ba318ce..83498f831 100644 --- a/public/locales/hr/layout/modals/about.json +++ b/public/locales/hr/layout/modals/about.json @@ -1,21 +1,22 @@ { "description": "Homarr je elegantna, moderna nadzorna ploča koja vam omogućuje pristup svim vašim aplikacijama i uslugama na dohvat ruke. S Homarrom možete pristupiti i kontrolirati sve na jednom praktičnom mjestu. Homarr se besprijekorno integrira s dodanim aplikacijama, pružajući vam vrijedne informacije i potpunu kontrolu. Instalacija je jednostavna, a Homarr podržava širok raspon metoda implementacije.", - "contact": "Imate li problema ili pitanja? Povežite se s nama!", "addToDashboard": "Dodaj na nadzornu ploču", "tip": "Mod se odnosi na tipku modifikatora, to su Ctrl i Command/Super/Windows tipka", "key": "Tipka prečaca", "action": "Radnja", "keybinds": "Namještanje tipki", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Prebacivanje svijetlog/tamnog načina rada", + "focusSearchBar": "Fokus na traku za pretraživanje", + "openDocker": "Otvori docker widget", + "toggleEdit": "Uključi/isključi način uređivanja" }, "metrics": { "configurationSchemaVersion": "Konfiguracija verzije sheme", - "configurationsCount": "Dostupna konfiguracija", "version": "Verzija", "nodeEnvironment": "Okruženje čvora", "i18n": "Učitani I18n prostori za prijevod", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EXPERIMENTALNO: Onemogući način uređivanja" }, "version": { - "new": "", - "dropdown": "" + "new": "Novo: {{newVersion}}", + "dropdown": "Dostupna je verzija {{newVersion}} ! Trenutna verzija je {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/hr/layout/modals/add-app.json b/public/locales/hr/layout/modals/add-app.json index d00571a05..b8646fa69 100644 --- a/public/locales/hr/layout/modals/add-app.json +++ b/public/locales/hr/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Interna adresa", - "description": "Interna IP-adresa aplikacije." + "description": "Interna IP-adresa aplikacije.", + "troubleshoot": { + "label": "Imate problema?", + "header": "Evo popisa najčešćih pogrešaka i rješavanja problema:", + "lines": { + "nothingAfterPort": "U većini, ako ne iu svim slučajevima, ne biste trebali unositi nikakav put nakon porta. (Čak i '/admin' za pihole ili '/web' za plex)", + "protocolCheck": "Uvijek provjerite ima li ispred URL-a http ili https i provjerite koristite li pravi.", + "preferIP": "Preporuča se korištenje izravnog IP-a stroja ili spremnika s kojim pokušavate komunicirati.", + "enablePings": "Provjerite je li IP ispravan omogućavanjem pingova. Prilagodite ploču -> Izgled -> Omogući pingove. Na pločicama vaše aplikacije pojavit će se mali crveni ili zeleni mjehurić, a lebdeći iznad njega dat ćete njezin kod odgovora (u većini slučajeva očekuje se zeleni mjehurić s kodom 200).", + "wget": "Kako biste bili sigurni da homarr može komunicirati s drugim aplikacijama, provjerite wget/curl/ping IP:port aplikacije.", + "iframe": "Kada su u pitanju iframeovi, oni bi uvijek trebali koristiti isti protokol (http/s) kao Homarr.", + "clearCache": "Neke su informacije registrirane u predmemoriji, tako da integracija možda neće raditi osim ako ne izbrišete predmemoriju u općim opcijama Homarra." + }, + "footer": "Za dodatna rješenja problema obratite se na našu {{discord}}." + } }, "externalAddress": { "label": "Vanjska adresa", @@ -26,10 +40,10 @@ "description": "Otvori aplikaciju u novoj kartici umjesto u trenutnoj." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Opis aplikacije", + "description": "Tekst koji unesete pojavit će se kada zadržite pokazivač iznad vaše aplikacije.\r\nKoristite ovo da biste korisnicima dali više pojedinosti o svojoj aplikaciji ili ostavite prazno da nemate ništa." }, - "customProtocolWarning": "" + "customProtocolWarning": "Korištenje nestandardnog protokola. To može zahtijevati unaprijed instalirane aplikacije i predstavljati sigurnosne rizike. Provjerite je li vaša adresa sigurna i pouzdana." }, "network": { "statusChecker": { @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Veličina fonta naziva aplikacije", + "description": "Postavite veličinu fonta kada se naziv aplikacije prikazuje na pločici." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Status naziva aplikacije", + "description": "Odaberite gdje želite da se naslov pojavi, ako uopće.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Prikaži naslov samo na pločici", + "hover": "Prikaz naslova samo na opisu alata", + "hidden": "Ne pokazuj uopće" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Pozicija naziva aplikacije", + "description": "Položaj naziva aplikacije u odnosu na ikonu.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Vrh", + "right": "Pravo", + "bottom": "Dno", + "left": "Lijevo" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Naziv aplikacije Line Clamp", + "description": "Definira koliko redaka vaš naslov treba maksimalno stati. Postavite 0 za neograničeno." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Vaš obrazac sadrži neispravne podatke. Stoga se ne može spremiti. Molimo riješite sve probleme i ponovno kliknite ovaj gumb da biste spremili promjene", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Ime je potrebno", + "noUrl": "Url je obavezan", + "invalidUrl": "Vrijednost nije važeći url", + "noIconUrl": "ovo polje je obavezno", + "noExternalUri": "Potreban je vanjski URI", + "invalidExternalUri": "Vanjski URI nije važeći URI" } } diff --git a/public/locales/hr/manage/boards.json b/public/locales/hr/manage/boards.json new file mode 100644 index 000000000..a4d90af13 --- /dev/null +++ b/public/locales/hr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Daske", + "pageTitle": "Daske", + "cards": { + "statistics": { + "apps": "aplikacije", + "widgets": "Widgeti", + "categories": "Kategorije" + }, + "buttons": { + "view": "Prikaz ploče" + }, + "menu": { + "setAsDefault": "Postavite kao zadanu ploču", + "delete": { + "label": "Izbriši trajno", + "disabled": "Brisanje je onemogućeno jer starije Homarr komponente ne dopuštaju brisanje zadane konfiguracije. Brisanje će biti moguće u budućnosti." + } + }, + "badges": { + "fileSystem": "Sustav datoteka", + "default": "Zadano" + } + }, + "buttons": { + "create": "Stvorite novu ploču" + }, + "modals": { + "delete": { + "title": "Izbriši ploču", + "text": "Jeste li sigurni da želite obrisati ovu ploču? Ova se radnja ne može poništiti i vaši će podaci biti trajno izgubljeni." + }, + "create": { + "title": "Napravi ploču", + "text": "Ime se ne može promijeniti nakon što je ploča stvorena.", + "form": { + "name": { + "label": "Naziv" + }, + "submit": "Stvoriti" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/index.json b/public/locales/hr/manage/index.json new file mode 100644 index 000000000..f95bd1cf6 --- /dev/null +++ b/public/locales/hr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Upravljati", + "hero": { + "title": "Dobrodošao nazad, {{username}}", + "fallbackUsername": "Anonimno", + "subtitle": "Dobro došli u Vaš Application Hub. Organizirajte, optimizirajte i osvojite!" + }, + "quickActions": { + "title": "Brze akcije", + "boards": { + "title": "Vaše ploče", + "subtitle": "Stvorite svoje ploče i upravljajte njima" + }, + "inviteUsers": { + "title": "Pozovite novog korisnika", + "subtitle": "Izradite i pošaljite pozivnicu za registraciju" + }, + "manageUsers": { + "title": "Upravljanje korisnicima", + "subtitle": "Izbrišite svoje korisnike i upravljajte njima" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/users.json b/public/locales/hr/manage/users.json new file mode 100644 index 000000000..c97ed70f1 --- /dev/null +++ b/public/locales/hr/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Korisnik" + } + }, + "tooltips": { + "deleteUser": "Izbriši korisnika", + "demoteAdmin": "Degradirajte administratora", + "promoteToAdmin": "Promakni u administratora" + }, + "modals": { + "delete": { + "title": "Izbriši korisnika {{name}}", + "text": "Jeste li sigurni da želite obrisati korisnika {{name}}? Ovo će izbrisati podatke povezane s ovim računom, ali ne i sve nadzorne ploče koje je izradio ovaj korisnik." + }, + "change-role": { + "promote": { + "title": "Promakni korisnika {{name}} u administratora", + "text": "Jeste li sigurni da želite unaprijediti korisnika {{name}} u administratora? Ovo će korisniku dati pristup svim resursima na vašoj Homarr instanci." + }, + "demote": { + "title": "Degradiraj korisnika {{name}} na korisnika", + "text": "Jeste li sigurni da želite degradirati korisnika {{name}} u korisnika? Ovo će ukloniti korisnikov pristup svim resursima na vašoj Homarr instanci." + }, + "confirm": "Potvrdi" + } + }, + "searchDoesntMatch": "Vaše pretraživanje ne odgovara nijednom unosu. Molimo prilagodite svoj filtar." +} \ No newline at end of file diff --git a/public/locales/hr/manage/users/create.json b/public/locales/hr/manage/users/create.json new file mode 100644 index 000000000..48402fd26 --- /dev/null +++ b/public/locales/hr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Stvori korisnika", + "steps": { + "account": { + "title": "Prvi korak", + "text": "Napravi račun", + "username": { + "label": "Korisničko ime" + }, + "email": { + "label": "E-pošta" + } + }, + "security": { + "title": "Drugi korak", + "text": "Lozinka", + "password": { + "label": "Lozinka" + } + }, + "finish": { + "title": "Potvrda", + "text": "Spremi u bazu podataka", + "card": { + "title": "Pregledajte svoje unose", + "text": "Nakon što pošaljete svoje podatke u bazu, korisnik će se moći prijaviti. Jeste li sigurni da želite pohraniti ovog korisnika u bazu i aktivirati prijavu?" + }, + "table": { + "header": { + "property": "Vlasništvo", + "value": "Vrijednost", + "username": "Korisničko ime", + "email": "E-pošta", + "password": "Lozinka" + }, + "notSet": "Nespreman", + "valid": "Valjano" + }, + "failed": "Stvaranje korisnika nije uspjelo: {{error}}" + }, + "completed": { + "alert": { + "title": "Korisnik je stvoren", + "text": "Korisnik je kreiran u bazi podataka. Sada se mogu prijaviti." + } + } + }, + "buttons": { + "generateRandomPassword": "Generiraj nasumično", + "createAnother": "Stvorite drugu" + } +} \ No newline at end of file diff --git a/public/locales/hr/manage/users/invites.json b/public/locales/hr/manage/users/invites.json new file mode 100644 index 000000000..54d7b76a6 --- /dev/null +++ b/public/locales/hr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Pozivnice korisnika", + "pageTitle": "Upravljanje pozivnicama korisnika", + "description": "Koristeći pozivnice, možete pozvati korisnike na svoju Homarr instancu. Pozivnica će vrijediti samo određeno vremensko razdoblje i može se koristiti jednom. Istek mora biti između 5 minuta i 12 mjeseci nakon izrade.", + "button": { + "createInvite": "Izradite pozivnicu", + "deleteInvite": "Izbriši pozivnicu" + }, + "table": { + "header": { + "id": "iskaznica", + "creator": "Stvoritelj", + "expires": "ističe", + "action": "Radnje" + }, + "data": { + "expiresAt": "istekao {{at}}", + "expiresIn": "u {{in}}" + } + }, + "modals": { + "create": { + "title": "Izradite pozivnicu", + "description": "Nakon isteka, pozivnica više neće biti valjana i primatelj pozivnice neće moći kreirati račun.", + "form": { + "expires": "Datum isteka roka trajanja", + "submit": "Stvoriti" + } + }, + "copy": { + "title": "Kopiraj pozivnicu", + "description": "Vaša pozivnica je generirana. Nakon što se ovaj modal zatvori, više nećete moći kopirati ovu vezu. Ako više ne želite pozivati navedenu osobu, u bilo kojem trenutku možete izbrisati ovu pozivnicu.", + "invitationLink": "Link pozivnice", + "details": { + "id": "iskaznica", + "token": "Znak" + }, + "button": { + "close": "Kopiraj i odbaci" + } + }, + "delete": { + "title": "Izbriši pozivnicu", + "description": "Jeste li sigurni da želite izbrisati ovu pozivnicu? Korisnici s ovom vezom više neće moći stvoriti račun pomoću te veze." + } + }, + "noInvites": "Još nema pozivnica." +} \ No newline at end of file diff --git a/public/locales/hr/modules/bookmark.json b/public/locales/hr/modules/bookmark.json index ab8779ccf..487b8d21f 100644 --- a/public/locales/hr/modules/bookmark.json +++ b/public/locales/hr/modules/bookmark.json @@ -5,8 +5,8 @@ "settings": { "title": "Postavke oznake", "name": { - "label": "", - "info": "" + "label": "Naslov widgeta", + "info": "Ostavite prazno kako bi naslov ostao skriven." }, "items": { "label": "Stavke" @@ -14,9 +14,9 @@ "layout": { "label": "Raspored", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Auto Grid", + "horizontal": "Horizontalno", + "vertical": "Okomito" } } } @@ -29,15 +29,15 @@ }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "Duljina mora biti između {{shortest}} i {{longest}}", + "invalidLink": "Veza nije valjana", + "errorMsg": "Nije spremljeno jer je bilo pogrešaka pri provjeri valjanosti. Molimo prilagodite svoje unose" }, "name": "Naziv", - "url": "", + "url": "URL", "newTab": "Otvori u novoj kartici", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Sakrij naziv hosta", + "hideIcon": "Sakrij ikonu", "delete": "Obriši" } } diff --git a/public/locales/hr/modules/calendar.json b/public/locales/hr/modules/calendar.json index cf0469a1e..28a720765 100644 --- a/public/locales/hr/modules/calendar.json +++ b/public/locales/hr/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Prikazuje kalendar s nadolazećim izdanjima iz podržanih integracija.", "settings": { "title": "Postavke za widget kalendara", - "useSonarrv4": { - "label": "Koristi Sonarr v4 API" - }, - "sundayStart": { - "label": "Započni tjedan u Nedjelju" - }, "radarrReleaseType": { "label": "Vrsta izdanja u Radarr-u", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "U kinima", + "physicalRelease": "Fizički", + "digitalRelease": "Digitalni" } }, "hideWeekDays": { "label": "Sakri dane u tjednu" }, "showUnmonitored": { - "label": "" + "label": "Prikaži nenadzirane stavke" }, "fontSize": { "label": "Veličina fonta", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Ekstra malo", + "sm": "Mali", + "md": "Srednji", + "lg": "velika", + "xl": "Jako veliko" } } } diff --git a/public/locales/hr/modules/date.json b/public/locales/hr/modules/date.json index 64c9c3164..fe2b34f81 100644 --- a/public/locales/hr/modules/date.json +++ b/public/locales/hr/modules/date.json @@ -8,24 +8,24 @@ "label": "Prikaži full-time oblik (24-satni)" }, "dateFormat": { - "label": "", + "label": "Oblikovanje datuma", "data": { - "hide": "" + "hide": "Sakrij datum" } }, "enableTimezone": { - "label": "" + "label": "Prikaz prilagođene vremenske zone" }, "timezoneLocation": { - "label": "" + "label": "Lokacija vremenske zone" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Grad i vremenska zona", + "city": "Samo grad", + "none": "Nijedan" } } } diff --git a/public/locales/hr/modules/dns-hole-controls.json b/public/locales/hr/modules/dns-hole-controls.json index 9badbc6f0..118e6d75a 100644 --- a/public/locales/hr/modules/dns-hole-controls.json +++ b/public/locales/hr/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Kontrole DNS \"hole\"", - "description": "Upravljajte PiHole ili AdGuard iz svoje nadzorne ploče" + "description": "Upravljajte PiHole ili AdGuard iz svoje nadzorne ploče", + "settings": { + "title": "DNS rupa kontrolira postavke", + "showToggleAllButtons": { + "label": "Prikaži gumbe \"Omogući/onemogući sve\"." + } + }, + "errors": { + "general": { + "title": "Nije moguće pronaći DNS rupu", + "text": "Došlo je do problema pri povezivanju s vašim DNS rupama. Provjerite svoju konfiguraciju/integraciju(e)." + } + } } } \ No newline at end of file diff --git a/public/locales/hr/modules/dns-hole-summary.json b/public/locales/hr/modules/dns-hole-summary.json index 5f6d4d3e4..eee5fb039 100644 --- a/public/locales/hr/modules/dns-hole-summary.json +++ b/public/locales/hr/modules/dns-hole-summary.json @@ -10,9 +10,9 @@ "layout": { "label": "Raspored", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 po 2", + "row": "Horizontalno", + "column": "Okomito" } } } @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domenae na popisu blokiranih", "queriesToday": "Upiti danas", - "queriesBlockedTodayPercentage": "blokirano danas", - "queriesBlockedToday": "blokirano danas" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/hr/modules/iframe.json b/public/locales/hr/modules/iframe.json index 90f692eb1..48c07f4b8 100644 --- a/public/locales/hr/modules/iframe.json +++ b/public/locales/hr/modules/iframe.json @@ -39,7 +39,7 @@ "title": "Neispravan URL", "text": "Provjerite jeste li unijeli valjanu adresu u konfiguraciji svog widgeta" }, - "browserSupport": "" + "browserSupport": "Vaš preglednik ne podržava iframeove. Ažurirajte svoj preglednik." } } } diff --git a/public/locales/hr/modules/media-requests-list.json b/public/locales/hr/modules/media-requests-list.json index 3b2a73539..dea69c080 100644 --- a/public/locales/hr/modules/media-requests-list.json +++ b/public/locales/hr/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "Zamijeni veze s vanjskim poslužiteljem" }, "openInNewTab": { - "label": "" + "label": "Otvori veze u novoj kartici" } } }, "noRequests": "Nema pronađenih zahtjeva. Provjerite jesu li vaše aplikacije ispravno konfigurirane.", - "pending": "Postoji {{countPendingApproval}} zahtjeva koji čekaju odobrenje.", - "nonePending": "Trenutno nema čekanja za odobrenje. Možete nastaviti!", "state": { "approved": "Odobreno", "pendingApproval": "Odobrenje na čekanju", @@ -23,13 +21,13 @@ "tooltips": { "approve": "Odobri zahtjeve", "decline": "Odbij zahtjeve", - "approving": "" + "approving": "Odobravanje zahtjeva..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Odobravanje", + "declining": "Opadanje", + "request": "zahtjev...", + "approved": "Zahtjev je odobren!", + "declined": "Zahtjev je odbijen!" } } diff --git a/public/locales/hr/modules/media-requests-stats.json b/public/locales/hr/modules/media-requests-stats.json index 1682ecbf5..81c75b0e7 100644 --- a/public/locales/hr/modules/media-requests-stats.json +++ b/public/locales/hr/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Zamijeni veze s vanjskim poslužiteljem" }, "openInNewTab": { - "label": "" + "label": "Otvori veze u novoj kartici" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Medijska statistika", + "pending": "Odobrenjea na čekanju", + "tvRequests": "TV zahtjevi", + "movieRequests": "Zahtjevi za Filmovima", + "approved": "Već odobreno", + "totalRequests": "Ukupno" }, "userStats": { - "title": "", - "requests": "" + "title": "Najbolji korisnici", + "requests": "Zahtjevi: {{number}}" } } diff --git a/public/locales/hr/modules/media-server.json b/public/locales/hr/modules/media-server.json index 8fa4e8527..e059fb87d 100644 --- a/public/locales/hr/modules/media-server.json +++ b/public/locales/hr/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Postavke za widget medijskog poslužitelja" } }, - "loading": "", + "loading": "Učitavanje tokova", "card": { "table": { "header": { diff --git a/public/locales/hr/modules/notebook.json b/public/locales/hr/modules/notebook.json index 3ad2a768e..ec58bb4ed 100644 --- a/public/locales/hr/modules/notebook.json +++ b/public/locales/hr/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Bilježnica", + "description": "Interaktivni widget koji se temelji na markdownu za pisanje bilješki!", "settings": { - "title": "", + "title": "Postavke za widget bilježnice", "showToolbar": { + "label": "Prikažite alatnu traku koja će vam pomoći u pisanju oznake" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "Sadržaj bilježnice" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/hr/modules/rss.json b/public/locales/hr/modules/rss.json index a5493f151..70324d69c 100644 --- a/public/locales/hr/modules/rss.json +++ b/public/locales/hr/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "RSS widget omogućuje vam prikaz RSS izvora na nadzornoj ploči.", "settings": { "title": "Postavke za RSS Widget", "rssFeedUrl": { @@ -12,8 +12,8 @@ "label": "Interval osvježavanja (u minutama)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Dopusti HTML formatiranje (opasno)", + "info": "Dopuštanje HTML oblikovanja izvana može biti opasno.
Provjerite je li feed iz pouzdanog izvora." }, "textLinesClamp": { "label": "Ograničavanje broja redaka teksta" diff --git a/public/locales/hr/modules/torrents-status.json b/public/locales/hr/modules/torrents-status.json index 9f3fd2d22..2abddf160 100644 --- a/public/locales/hr/modules/torrents-status.json +++ b/public/locales/hr/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Prikaži završene torrente" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Prikaži neaktivne torrente" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Popis oznaka", "description": "Kada je označena opcija \"is whitelist\", ovo će djelovati kao popis dopuštenih oznaka. Ako nije označeno, ovo je popis zabranjenih oznaka - \"blacklist\". Neće imati nikakav učinak kada je prazno" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Pogreška", - "lastUpdated": "Zadnje ažurirano prije {{time}}" + "lastUpdated": "Zadnje ažurirano prije {{time}}", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -59,12 +71,12 @@ }, "generic": { "title": "Došlo je do neočekivane pogreške", - "text": "" + "text": "Nije moguće komunicirati s vašim Torrent klijentima. Provjerite svoju konfiguraciju" } }, "loading": { - "title": "", - "description": "" + "title": "Učitavam", + "description": "Uspostavljanje veze" }, "popover": { "introductionPrefix": "Upravlja s", diff --git a/public/locales/hr/modules/weather.json b/public/locales/hr/modules/weather.json index b852bd72d..da147b1eb 100644 --- a/public/locales/hr/modules/weather.json +++ b/public/locales/hr/modules/weather.json @@ -8,7 +8,7 @@ "label": "Prikaz u Fahrenheitima" }, "displayCityName": { - "label": "" + "label": "Prikaz naziva grada" }, "location": { "label": "Lokacija vremenske prognoze" @@ -33,5 +33,5 @@ "unknown": "Nepoznato" } }, - "error": "" + "error": "Dogodila se pogreška" } diff --git a/public/locales/hr/password-requirements.json b/public/locales/hr/password-requirements.json new file mode 100644 index 000000000..f2f85b3fe --- /dev/null +++ b/public/locales/hr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Uključuje broj", + "lowercase": "Uključuje mala slova", + "uppercase": "Uključuje veliko slovo", + "special": "Uključuje poseban znak", + "length": "Sadrži najmanje {{count}} znakova" +} \ No newline at end of file diff --git a/public/locales/hr/settings/customization/access.json b/public/locales/hr/settings/customization/access.json new file mode 100644 index 000000000..581933df6 --- /dev/null +++ b/public/locales/hr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Dopusti anonimno", + "description": "Dopustite korisnicima koji nisu prijavljeni da vide vašu ploču" + } +} \ No newline at end of file diff --git a/public/locales/hr/settings/customization/general.json b/public/locales/hr/settings/customization/general.json index c3c1cf127..71ce5eb3c 100644 --- a/public/locales/hr/settings/customization/general.json +++ b/public/locales/hr/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Pristupačnost", "description": "Konfigurišite Homarr za osobe sa invaliditetom" + }, + "access": { + "name": "", + "description": "Konfigurirajte tko ima pristup vašoj ploči" } } } diff --git a/public/locales/hr/settings/customization/page-appearance.json b/public/locales/hr/settings/customization/page-appearance.json index 299d3def3..3163b9698 100644 --- a/public/locales/hr/settings/customization/page-appearance.json +++ b/public/locales/hr/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Dodatno, prilagodite svoju nadzornu ploču koristeći CSS, što se preporučuje samo iskusnim korisnicima", "placeholder": "Prilagođeni CSS će se primijeniti posljednji", "applying": "Primjena CSS-a..." - }, - "buttons": { - "submit": "Pošalji" } -} +} \ No newline at end of file diff --git a/public/locales/hr/settings/general/cache-buttons.json b/public/locales/hr/settings/general/cache-buttons.json index 685994c48..9cf894354 100644 --- a/public/locales/hr/settings/general/cache-buttons.json +++ b/public/locales/hr/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Čišćenje predmemorije", "selector": { - "label": "", + "label": "Odaberite predmemoriju(e) za brisanje", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Ping upiti", + "repositoryIcons": "Udaljene/lokalne ikone", + "calendar&medias": "Mediji iz kalendara", + "weather": "Podaci o vremenu" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Predmemorija očišćena", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Izbriši svu predmemoriju", + "notificationMessage": "Sva predmemorija je izbrisana" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Brisanje odabranih upita", + "notificationMessageSingle": "Predmemorija za {{value}} je očišćena", + "notificationMessageMulti": "Predmemorija za {{values}} je očišćena" } } } \ No newline at end of file diff --git a/public/locales/hr/settings/general/edit-mode-toggle.json b/public/locales/hr/settings/general/edit-mode-toggle.json index 6365f040b..50ca79bb4 100644 --- a/public/locales/hr/settings/general/edit-mode-toggle.json +++ b/public/locales/hr/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Uključi/isključi način uređivanja", + "enable": "Omogući način uređivanja", + "disable": "Onemogući način uređivanja" }, "form": { - "label": "", - "message": "", + "label": "Uredi lozinku", + "message": "Kako biste prebacili način uređivanja, trebate unijeti lozinku koju ste unijeli u varijablu okruženja pod nazivom EDIT_MODE_PASSWORD . Ako nije postavljeno, ne možete uključivati i isključivati način uređivanja.", "submit": "Pošalji" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Uspjeh", + "message": "Uspješno uključen način uređivanja, ponovno učitavanje stranice..." }, "error": { "title": "Pogreška", - "message": "" + "message": "Promjena načina uređivanja nije uspjela, pokušajte ponovno." } } } \ No newline at end of file diff --git a/public/locales/hr/settings/general/search-engine.json b/public/locales/hr/settings/general/search-engine.json index 00b06e5bc..94da0821b 100644 --- a/public/locales/hr/settings/general/search-engine.json +++ b/public/locales/hr/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Pretraživač", "configurationName": "Konfiguracija pretraživača", - "custom": "", + "custom": "Prilagođen", "tips": { "generalTip": "Postoji više prefiksa koje možete koristiti! Dodavanje ovih prefiksa ispred upita filtrirat će rezultate. !s (Web), !t (Torrenti), !y (YouTube) i !m (Mediji).", "placeholderTip": "%s može se koristiti kao zamjenski znak za upit." diff --git a/public/locales/hr/tools/docker.json b/public/locales/hr/tools/docker.json new file mode 100644 index 000000000..b642a53bd --- /dev/null +++ b/public/locales/hr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Vaša Homarr instanca nema konfiguriran Docker ili nije uspjela dohvatiti spremnike. Provjerite dokumentaciju o tome kako postaviti integraciju." + } + }, + "modals": { + "selectBoard": { + "title": "Odaberite ploču", + "text": "Odaberite ploču na koju želite dodati aplikacije za odabrane Docker spremnike.", + "form": { + "board": { + "label": "Odbor" + }, + "submit": "Dodajte aplikacije" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Dodane aplikacije na ploču", + "message": "Aplikacije za odabrane Docker spremnike dodane su na ploču." + }, + "error": { + "title": "Dodavanje aplikacija na ploču nije uspjelo", + "message": "Aplikacije za odabrane Docker spremnike ne mogu se dodati na ploču." + } + } + } +} \ No newline at end of file diff --git a/public/locales/hr/user/preferences.json b/public/locales/hr/user/preferences.json new file mode 100644 index 000000000..be5490730 --- /dev/null +++ b/public/locales/hr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Postavke", + "pageTitle": "Vaše preferencije", + "boards": { + "defaultBoard": { + "label": "Zadana ploča" + } + }, + "accessibility": { + "title": "Pristupačnost", + "disablePulse": { + "label": "Onemogući ping pulsiranje", + "description": "Prema zadanim postavkama, pokazatelji pinga u Homarru pulsiraju. To može biti iritantno. Ovim klizačem možete deaktivirati animaciju" + }, + "replaceIconsWithDots": { + "label": "Zamijenite točke ping-a s ikonicom", + "description": "Za osobe s daltonizmom, točke za ping mogu biti teško prepoznatljive. Ovo će zamijeniti indikatore ikonama" + } + }, + "localization": { + "language": { + "label": "Jezik" + }, + "firstDayOfWeek": { + "label": "Prvi dan u tjednu", + "options": { + "monday": "ponedjeljak", + "saturday": "subota", + "sunday": "nedjelja" + } + } + }, + "searchEngine": { + "title": "Pretraživač", + "custom": "Prilagođen", + "newTab": { + "label": "Otvori rezultate pretraživanja u novoj kartici" + }, + "autoFocus": { + "label": "Fokusirajte traku za pretraživanje na učitavanje stranice.", + "description": "Ovo će automatski fokusirati traku za pretraživanje, kada idete na stranice ploče. Radit će samo na stolnim uređajima." + }, + "template": { + "label": "URL upita", + "description": "Koristite %s kao rezervirano mjesto za upit" + } + } +} \ No newline at end of file diff --git a/public/locales/hr/zod.json b/public/locales/hr/zod.json new file mode 100644 index 000000000..923c5774d --- /dev/null +++ b/public/locales/hr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Ovo polje nije važeće", + "required": "ovo polje je obavezno", + "string": { + "startsWith": "Ovo polje mora započeti s {{startsWith}}", + "endsWith": "Ovo polje mora završavati s {{endsWith}}", + "includes": "Ovo polje mora sadržavati {{includes}}" + }, + "tooSmall": { + "string": "Ovo polje mora sadržavati najmanje {{minimum}} znakova", + "number": "Ovo polje mora biti veće ili jednako {{minimum}}" + }, + "tooBig": { + "string": "Ovo polje mora sadržavati najviše {{maximum}} znakova", + "number": "Ovo polje mora biti manje ili jednako {{maximum}}" + }, + "custom": { + "passwordMatch": "lozinka mora odgovarati" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/authentication/invite.json b/public/locales/hu/authentication/invite.json new file mode 100644 index 000000000..3e5493efd --- /dev/null +++ b/public/locales/hu/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Fiók Létrehozása", + "title": "Fiók Létrehozása", + "text": "Kérjük, adja meg a hitelesítő adatokat", + "form": { + "fields": { + "username": { + "label": "Felhasználónév" + }, + "password": { + "label": "Jelszó" + }, + "passwordConfirmation": { + "label": "Jelszó megerősítése" + } + }, + "buttons": { + "submit": "Fiók létrehozása" + } + }, + "notifications": { + "loading": { + "title": "Fiók készítése", + "text": "Kérem várjon" + }, + "success": { + "title": "Fiók létrehozva", + "text": "A fiókod sikeresen létrehozva" + }, + "error": { + "title": "Hiba", + "text": "Valami elromlott, a következő hibát kaptam: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/authentication/login.json b/public/locales/hu/authentication/login.json index 80a555e41..8913d01bd 100644 --- a/public/locales/hu/authentication/login.json +++ b/public/locales/hu/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Bejelentkezés", "title": "Köszöntjük ismét!", - "text": "Kérjük, adja meg jelszavát", + "text": "Kérjük, adja meg hitelesítő adatait", "form": { "fields": { + "username": { + "label": "Felhasználónév" + }, "password": { - "label": "Jelszó", - "placeholder": "Az Ön jelszava" + "label": "Jelszó" } }, "buttons": { "submit": "Bejelentkezés" - } + }, + "afterLoginRedirection": "A bejelentkezés után a {{url}} oldalra kerül átirányításra" }, - "notifications": { - "checking": { - "title": "Jelszó ellenőrzése", - "message": "A jelszavadat ellenőrizzük..." - }, - "correct": { - "title": "Bejelentkezés sikeres, átirányítás..." - }, - "wrong": { - "title": "A megadott jelszó helytelen, kérjük, próbálja meg újra." - } - } -} + "alert": "A hitelesítő adatok helytelenek, vagy ez a fiók nem létezik. Kérjük, próbálja meg újra." +} \ No newline at end of file diff --git a/public/locales/hu/boards/common.json b/public/locales/hu/boards/common.json new file mode 100644 index 000000000..0d191c5e7 --- /dev/null +++ b/public/locales/hu/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Személyre szabható tábla" + } +} \ No newline at end of file diff --git a/public/locales/hu/boards/customize.json b/public/locales/hu/boards/customize.json new file mode 100644 index 000000000..e95b6e18f --- /dev/null +++ b/public/locales/hu/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Testreszabás {{name}} Board", + "pageTitle": "Testreszabás a {{name}} Board számára", + "backToBoard": "Vissza a táblához", + "settings": { + "appearance": { + "primaryColor": "Elsődleges szín", + "secondaryColor": "Másodlagos szín" + } + }, + "save": { + "button": "Változások mentése", + "note": "Vigyázz, mert vannak mentetlen változtatásai!" + }, + "notifications": { + "pending": { + "title": "Testreszabás mentése", + "message": "Kérjük, várjon, amíg elmentjük a testreszabását" + }, + "success": { + "title": "Testreszabás mentve", + "message": "A testreszabása sikeresen el lett mentve" + }, + "error": { + "title": "Hiba", + "message": "A módosítások mentése nem lehetséges" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 8f2642786..95f6d9eb4 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -1,11 +1,17 @@ { "save": "Mentés", + "apply": "", + "insert": "", "about": "Névjegy", "cancel": "Mégse", "close": "Bezár", + "back": "Vissza", "delete": "Törlés", "ok": "OK", "edit": "Szerkesztés", + "next": "Következő", + "previous": "Előző", + "confirm": "Megerősít", "enabled": "Engedélyezve", "disabled": "Letiltva", "enableAll": "Összes engedélyezése", @@ -36,5 +42,14 @@ "medium": "közepes", "large": "nagy" }, - "seeMore": "Lásd még..." + "seeMore": "Lásd még...", + "position": { + "left": "Bal", + "center": "", + "right": "Jobb" + }, + "attributes": { + "width": "Szélesség", + "height": "Magasság" + } } \ No newline at end of file diff --git a/public/locales/hu/layout/errors/access-denied.json b/public/locales/hu/layout/errors/access-denied.json new file mode 100644 index 000000000..ebf5a4866 --- /dev/null +++ b/public/locales/hu/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Hozzáférés megtagadva", + "text": "Nincs elegendő jogosultsága az oldal eléréséhez. Ha úgy gondolja, hogy ez nem szándékos, kérjük, forduljon a rendszergazdához.", + "switchAccount": "Váltás másik felhasználóra" +} \ No newline at end of file diff --git a/public/locales/hu/layout/header.json b/public/locales/hu/layout/header.json new file mode 100644 index 000000000..5a2a81efe --- /dev/null +++ b/public/locales/hu/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Ez a Homarr kísérleti funkciója. Kérjük, jelezz bármilyen problémát a GitHubon vagy a Discordon." + }, + "search": { + "label": "Keresés", + "engines": { + "web": "Keresés a {{query}} oldalon a világhálón", + "youtube": "Keresés a {{query}} oldalon a YouTube-on", + "torrent": "Keresés a {{query}} torrentek után", + "movie": "Keresés a {{query}} oldalon: {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Téma váltása", + "preferences": "Beállítások", + "defaultBoard": "Alapértelmezett vezérlőpult", + "manage": "Kezelés", + "logout": "{{username}} kijelentkezése", + "login": "Bejelentkezés" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} eredmények a {{search}}számára." + } + } +} \ No newline at end of file diff --git a/public/locales/hu/layout/manage.json b/public/locales/hu/layout/manage.json new file mode 100644 index 000000000..abc04ef0d --- /dev/null +++ b/public/locales/hu/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Nyitólap" + }, + "boards": { + "title": "Táblák" + }, + "users": { + "title": "Felhasználók", + "items": { + "manage": "Kezelés", + "invites": "Meghívók" + } + }, + "help": { + "title": "Segítség", + "items": { + "documentation": "Dokumentáció", + "report": "Probléma / hiba jelentése", + "discord": "Discord-szerverünk", + "contribute": "Hozzájárulás" + } + }, + "tools": { + "title": "Eszközök", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Névjegy" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/layout/modals/about.json b/public/locales/hu/layout/modals/about.json index 5bdda3c32..05829e51d 100644 --- a/public/locales/hu/layout/modals/about.json +++ b/public/locales/hu/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "A Homarr egy elegáns, modern kezelőfelület, amely az összes alkalmazást és szolgáltatást az Ön keze ügyébe helyezi. A Homarr segítségével mindent egyetlen kényelmes helyen érhet el és irányíthat. A Homarr zökkenőmentesen integrálódik az Ön által hozzáadott alkalmazásokkal, értékes információkat biztosítva Önnek, és teljes körű ellenőrzést biztosítva. A telepítés gyerekjáték, és a Homarr a telepítési módszerek széles skáláját támogatja.", - "contact": "Problémája vagy kérdése van? Lépjen kapcsolatba velünk!", "addToDashboard": "Hozzáadás a kezelőfelülethez", "tip": "A Mod a módosító billentyűre utal, ez a Ctrl és a Command/Super/Windows billentyű", "key": "Gyorsbillentyűk", "action": "Esemény", "keybinds": "Billentyűkombinációk", - "documentation": "Dokumentáció", + "translators": "Fordítók ({{count}})", + "translatorsDescription": "Ezeknek az embereknek köszönhetően a Homarr elérhető a {{languages}} nyelven! Szeretnél segíteni a Homarr lefordításában a te nyelvedre? Itt olvashatod el, hogyan teheted meg itt.", + "contributors": "Hozzájárulók ({{count}})", + "contributorsDescription": "Ezek az emberek írták a kódot, ami a homarr-t működőképessé teszi! Szeretnél segíteni a Homarr készítésében? Olvasd el, hogyan teheted ezt meg itt", "actions": { "toggleTheme": "Világos/sötét üzemmód váltása", "focusSearchBar": "Fókusz a Keresősoron", @@ -15,9 +17,8 @@ }, "metrics": { "configurationSchemaVersion": "Konfigurációs séma verziója", - "configurationsCount": "Elérhető konfigurációk", "version": "Verzió", - "nodeEnvironment": "Csomópont környezet", + "nodeEnvironment": "Kiadási váltrozat", "i18n": "Betöltött I18n fordítási névterek", "locales": "Beállított I18n helyi nyelvek", "experimental_disableEditMode": "EXPERIMENTAL: Szerkesztési mód kikapcsolása" diff --git a/public/locales/hu/layout/modals/add-app.json b/public/locales/hu/layout/modals/add-app.json index aa89ff063..b68782ad6 100644 --- a/public/locales/hu/layout/modals/add-app.json +++ b/public/locales/hu/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Belső cím", - "description": "Az alkalmazás belső IP-címe." + "description": "Az alkalmazás belső IP-címe.", + "troubleshoot": { + "label": "Hibát talált?", + "header": "Íme egy lista a gyakran előforduló hibákról és a hibaelhárításról:", + "lines": { + "nothingAfterPort": "A legtöbb, ha nem minden esetben nem szabad a port után semmilyen útvonalat beírni. (Még a '/admin' a pihole vagy a '/web' a plex esetében sem)", + "protocolCheck": "Mindig győződjön meg arról, hogy az URL-cím előtt http vagy https szerepel, és győződjön meg arról, hogy a megfelelőt használja.", + "preferIP": "Ajánlott a kommunikálni kívánt gép vagy konténer közvetlen ip címét használni.", + "enablePings": "Ellenőrizze, hogy az IP helyes-e a pingelés engedélyezésével. Testreszabás -> Elrendezés -> Pingek engedélyezése. Egy kis piros vagy zöld buborék fog megjelenni az alkalmazás csempéin, és ha lebegteted, akkor a válaszkódot fogod látni (a legtöbb esetben egy zöld buborék 200-as kóddal várható).", + "wget": "Hogy megbizonyosodjunk arról, hogy a homarr tud kommunikálni a többi alkalmazással, győződjünk meg róla, hogy a wget/curl/ping parancsokat az alkalmazás IP:portjára adja ki.", + "iframe": "Az iframe-ek esetében mindig ugyanazt a protokollt (http/s) kell használni, mint a Homarr.", + "clearCache": "Egyes információk a gyorsítótárban vannak regisztrálva, ezért előfordulhat, hogy az integráció nem működik, hacsak nem törli a gyorsítótárat a Homarr általános beállításaiban." + }, + "footer": "További hibaelhárításért forduljon hozzánk a {{discord}} címen." + } }, "externalAddress": { "label": "Külső cím", diff --git a/public/locales/hu/manage/boards.json b/public/locales/hu/manage/boards.json new file mode 100644 index 000000000..c1d0ea684 --- /dev/null +++ b/public/locales/hu/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Táblák", + "pageTitle": "Táblák", + "cards": { + "statistics": { + "apps": "Alkalmazások", + "widgets": "Widgetek", + "categories": "Kategóriák" + }, + "buttons": { + "view": "Tábla megtekintése" + }, + "menu": { + "setAsDefault": "Beállítás alapértelmezett táblaként", + "delete": { + "label": "Végleges törlés", + "disabled": "Törlés letiltva, mivel a régebbi Homarr komponensek nem teszik lehetővé az alapértelmezett konfiguráció törlését. A törlés a jövőben lehetséges lesz." + } + }, + "badges": { + "fileSystem": "Fájlrendszer", + "default": "Alapértelmezett" + } + }, + "buttons": { + "create": "Új tábla létrehozása" + }, + "modals": { + "delete": { + "title": "Tábla törlése", + "text": "Biztos vagy benne, hogy törölni akarod ezt a tráblát? Ezt a műveletet nem lehet visszacsinálni, és az adatok végleg elvesznek." + }, + "create": { + "title": "Tábla létrehozása", + "text": "A tábla létrehozása után a név nem változtatható meg.", + "form": { + "name": { + "label": "Név" + }, + "submit": "Létrehozás" + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/index.json b/public/locales/hu/manage/index.json new file mode 100644 index 000000000..7bcfa846d --- /dev/null +++ b/public/locales/hu/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Kezelés", + "hero": { + "title": "Üdvözöllek újra, {{username}}", + "fallbackUsername": "Névtelen", + "subtitle": "Üdvözöljük az Ön Application Hubjában. Szervezzen, optimalizáljon és hódítson!" + }, + "quickActions": { + "title": "Gyors műveletek", + "boards": { + "title": "Az Ön táblái", + "subtitle": "Hozzon létre és kezelje tábláit" + }, + "inviteUsers": { + "title": "Új felhasználó meghívása", + "subtitle": "Regisztrációs meghívó létrehozása és elküldése" + }, + "manageUsers": { + "title": "Felhasználók kezelése", + "subtitle": "Felhasználók törlése és kezelése" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/users.json b/public/locales/hu/manage/users.json new file mode 100644 index 000000000..90a5c6c20 --- /dev/null +++ b/public/locales/hu/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Felhasználó" + } + }, + "tooltips": { + "deleteUser": "Felhasználó törlése", + "demoteAdmin": "Adminisztrátor visszaminősítése", + "promoteToAdmin": "Adminisztrátorrá minősítés" + }, + "modals": { + "delete": { + "title": "Felhasználó törlése {{name}}", + "text": "Biztos, hogy törölni szeretné a {{name}} felhasználót? Ez törli az ehhez a fiókhoz tartozó adatokat, de nem törli az általa létrehozott táblákat." + }, + "change-role": { + "promote": { + "title": "A {{name}} felhasználó adminisztrátorrá történő előléptetése", + "text": "Biztos vagy benne, hogy a {{name}} felhasználót adminisztrátorrá akarod előléptetni? Ez hozzáférést biztosít a felhasználónak a Homarr-példány minden erőforrásához." + }, + "demote": { + "title": "A {{name}} nevű felhasználú lefokozása user szintre", + "text": "Biztos vagy benne, hogy a {{name}} felhasználót lefokozod user szintre? Ezáltal a felhasználó hozzáférése megszűnik a Homarr-példány minden erőforrásához." + }, + "confirm": "Megerősít" + } + }, + "searchDoesntMatch": "A keresés nem talál egyetlen bejegyzést sem. Kérjük, módosítsa a szűrőt." +} \ No newline at end of file diff --git a/public/locales/hu/manage/users/create.json b/public/locales/hu/manage/users/create.json new file mode 100644 index 000000000..831c1d33a --- /dev/null +++ b/public/locales/hu/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Felhasználó létrehozása", + "steps": { + "account": { + "title": "Első lépések", + "text": "Fiók létrehozása", + "username": { + "label": "Felhasználónév" + }, + "email": { + "label": "Email cím" + } + }, + "security": { + "title": "Második lépés", + "text": "Jelszó", + "password": { + "label": "Jelszó" + } + }, + "finish": { + "title": "Megerősítés", + "text": "Mentés az adatbázisba", + "card": { + "title": "Tekintse át az adatait", + "text": "Miután elküldte az adatokat az adatbázisba, a felhasználó be tud majd jelentkezni. Biztos, hogy ezt a felhasználót el akarja tárolni az adatbázisban, és aktiválni akarja a bejelentkezést?" + }, + "table": { + "header": { + "property": "Tulajdonság", + "value": "Érték", + "username": "Felhasználónév", + "email": "Email cím", + "password": "Jelszó" + }, + "notSet": "Nincs megadva", + "valid": "Érvényes" + }, + "failed": "A felhasználó létrehozása nem sikerült: {{error}}" + }, + "completed": { + "alert": { + "title": "A felhasználó létrehozásra került", + "text": "A felhasználót létrehoztuk az adatbázisban. Most már be tud jelentkezni." + } + } + }, + "buttons": { + "generateRandomPassword": "Jelszó generálás", + "createAnother": "Másik létrehozása" + } +} \ No newline at end of file diff --git a/public/locales/hu/manage/users/invites.json b/public/locales/hu/manage/users/invites.json new file mode 100644 index 000000000..ca37f909f --- /dev/null +++ b/public/locales/hu/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Meghívók", + "pageTitle": "Felhasználói meghívók kezelése", + "description": "A meghívók segítségével meghívhat felhasználókat a Homarr-példányába. Egy meghívó csak egy bizonyos ideig érvényes, és csak egyszer használható fel. A lejárati időnek a létrehozáskor 5 perc és 12 hónap között kell lennie.", + "button": { + "createInvite": "Meghívó létrehozása", + "deleteInvite": "Meghívó törlése" + }, + "table": { + "header": { + "id": "Azonosító", + "creator": "Létrehozó", + "expires": "Lejárat", + "action": "Műveletek" + }, + "data": { + "expiresAt": "lejárt {{at}}", + "expiresIn": "ekkor{{in}}" + } + }, + "modals": { + "create": { + "title": "Meghívó létrehozása", + "description": "A lejárat után a meghívó már nem lesz érvényes, és a meghívó címzettje nem tud fiókot létrehozni.", + "form": { + "expires": "Lejárati idő", + "submit": "Létrehozás" + } + }, + "copy": { + "title": "Meghívó másolása", + "description": "Az Ön meghívója elkészült. Miután ez a modal bezárul, nem tudja többé másolni ezt a linket. Ha már nem kívánja meghívni az említett személyt, bármikor törölheti ezt a meghívót.", + "invitationLink": "Meghívó link", + "details": { + "id": "Azonosító", + "token": "Token" + }, + "button": { + "close": "Másolás és bezárás" + } + }, + "delete": { + "title": "Meghívó törlése", + "description": "Biztos, hogy törölni szeretné ezt a meghívót? Az ezzel a linkkel rendelkező felhasználók többé nem tudnak fiókot létrehozni a link használatával." + } + }, + "noInvites": "Még nincsenek meghívók." +} \ No newline at end of file diff --git a/public/locales/hu/modules/calendar.json b/public/locales/hu/modules/calendar.json index 5d504d6d0..36b63a5f3 100644 --- a/public/locales/hu/modules/calendar.json +++ b/public/locales/hu/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Megjelenít egy naptárat a támogatott integrációk közelgő eseményeivel.", "settings": { "title": "A Naptár widget beállításai", - "useSonarrv4": { - "label": "Sonarr v4 API használata" - }, - "sundayStart": { - "label": "Vasárnap a hét kezdete" - }, "radarrReleaseType": { "label": "Radarr kiadás típusa", "data": { @@ -22,7 +16,7 @@ "label": "Hétköznapok elrejtése" }, "showUnmonitored": { - "label": "" + "label": "Nem felügyelt elemek megjelenítése" }, "fontSize": { "label": "Betűméret", diff --git a/public/locales/hu/modules/dns-hole-controls.json b/public/locales/hu/modules/dns-hole-controls.json index 043203141..1523bcd10 100644 --- a/public/locales/hu/modules/dns-hole-controls.json +++ b/public/locales/hu/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS blokkolók ellenőrzése", - "description": "A PiHole vagy az AdGuard vezérlése a műszerfalról" + "description": "A PiHole vagy az AdGuard vezérlése a műszerfalról", + "settings": { + "title": "DNS blokkolók vezérlő beállítások", + "showToggleAllButtons": { + "label": "'Minden engedélyezés/letiltás gombok megjelenítése" + } + }, + "errors": { + "general": { + "title": "Nem található DNS blokkoló", + "text": "Probléma adódott a DNS-blokkoló(k)hoz való csatlakozással. Kérjük, ellenőrizze a konfigurációt/integráció(ka)t." + } + } } } \ No newline at end of file diff --git a/public/locales/hu/modules/dns-hole-summary.json b/public/locales/hu/modules/dns-hole-summary.json index 30beae30e..7d5c87de5 100644 --- a/public/locales/hu/modules/dns-hole-summary.json +++ b/public/locales/hu/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domainek a blokkolólistákon", "queriesToday": "Mai lekérdezések", - "queriesBlockedTodayPercentage": "mai blokkolások", - "queriesBlockedToday": "mai blokkolások" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/hu/modules/media-requests-list.json b/public/locales/hu/modules/media-requests-list.json index 49b87fb15..085b1aaf3 100644 --- a/public/locales/hu/modules/media-requests-list.json +++ b/public/locales/hu/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Nem találtunk kéréseket. Kérjük, győződjön meg róla, hogy megfelelően konfigurálta az alkalmazásokat.", - "pending": "A {{countPendingApproval}} oldalon jóváhagyásra váró kérelmek vannak.", - "nonePending": "Jelenleg nincs folyamatban lévő jóváhagyás. Mehetsz!", "state": { "approved": "Jóváhagyva", "pendingApproval": "Várakozás jóváhagyásra", diff --git a/public/locales/hu/modules/notebook.json b/public/locales/hu/modules/notebook.json index fb99be0dc..2f013f131 100644 --- a/public/locales/hu/modules/notebook.json +++ b/public/locales/hu/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "A markdown írást segítő eszköztár megjelenítése" }, + "allowReadOnlyCheck": { + "label": "Csak olvasási módban történő ellenőrzés engedélyezése" + }, "content": { "label": "A jegyzetfüzet tartalma" } } + }, + "card": { + "controls": { + "bold": "Félkövér", + "italic": "Dőlt", + "strikethrough": "Áthúzott", + "underline": "Aláhúzott", + "colorText": "Szövegszín", + "colorHighlight": "Színesen kiemelt szöveg", + "code": "Kód", + "clear": "Formázás törlése", + "heading": "Címsor {{level}}", + "align": "Szöveg igazítása: {{position}}", + "blockquote": "Idézet", + "horizontalLine": "Vízszintes vonal", + "bulletList": "Lista", + "orderedList": "Sorkizárt", + "checkList": "Jelölőnégyzetes lista", + "increaseIndent": "Behúzás növelése", + "decreaseIndent": "Behúzás csökkentése", + "link": "Hivatkozás", + "unlink": "Hivatkozás eltávolítása", + "image": "Kép beágyazása", + "addTable": "Táblázat hozzáadása", + "deleteTable": "Táblázat törlése", + "colorCell": "Színes cella", + "mergeCell": "Cellák összevonása", + "addColumnLeft": "Oszlop hozzáadása előtte", + "addColumnRight": "Oszlop hozzáadása utána", + "deleteColumn": "Oszlop törlése", + "addRowTop": "Sor hozzáadása előtte", + "addRowBelow": "Sor hozzáadása utána", + "deleteRow": "Sor törlése" + }, + "modals": { + "clearColor": "Szín törlése", + "source": "Forrás", + "widthPlaceholder": "Érték %-ban vagy képpontban", + "columns": "Oszlopok", + "rows": "Sorok" + } } } \ No newline at end of file diff --git a/public/locales/hu/modules/rss.json b/public/locales/hu/modules/rss.json index 801f5436d..f93a2fa8e 100644 --- a/public/locales/hu/modules/rss.json +++ b/public/locales/hu/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "Az rss widget lehetővé teszi, hogy RSS feedeket jelenítsen meg az oldalon.", "settings": { "title": "Az RSS widget beállításai", "rssFeedUrl": { diff --git a/public/locales/hu/modules/torrents-status.json b/public/locales/hu/modules/torrents-status.json index 5be5cf8a8..29b332c66 100644 --- a/public/locales/hu/modules/torrents-status.json +++ b/public/locales/hu/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Befejezett torrentek megjelenítése" }, + "displayActiveTorrents": { + "label": "Aktív torrentek megjelenítése" + }, + "speedLimitOfActiveTorrents": { + "label": "Feltöltési sebesség, amellyel egy torrent aktívnak tekinthető (kB/s)" + }, "displayStaleTorrents": { "label": "Elavult torrentek megjelenítése" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Címkelista", "description": "Ha az 'is whitelist' jelölőnégyzet be van jelölve, akkor ez fehérlistaként fog működni. Ha nincs bejelölve, akkor ez egy feketelista. Üres állapotban nem csinál semmit" + }, + "displayRatioWithFilter": { + "label": "Szűrt torrentek listájának aránya", + "info": "Ha letiltja, csak a globális arány jelenik meg. A globális arány továbbra is a címkéket használja, ha be van állítva" } } }, "card": { "footer": { "error": "Hiba", - "lastUpdated": "Utolsó frissítés {{time}} óta" + "lastUpdated": "Utolsó frissítés {{time}} óta", + "ratioGlobal": "Globális arány", + "ratioWithFilter": "Arány szűrővel" }, "table": { "header": { diff --git a/public/locales/hu/password-requirements.json b/public/locales/hu/password-requirements.json new file mode 100644 index 000000000..b331cccdb --- /dev/null +++ b/public/locales/hu/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Tartalmazzon számot", + "lowercase": "Tartalmazzon kisbetűt", + "uppercase": "Tartalmazzon nagybetűt", + "special": "Tartalmazzon speciális karaktert", + "length": "Tartalmazzon legalább {{count}} karaktert" +} \ No newline at end of file diff --git a/public/locales/hu/settings/customization/access.json b/public/locales/hu/settings/customization/access.json new file mode 100644 index 000000000..b87813af4 --- /dev/null +++ b/public/locales/hu/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonim megtekintés engedélyezése", + "description": "Engedélyezze a nem bejelentkezett felhasználók számára, hogy megtekintsék a táblát" + } +} \ No newline at end of file diff --git a/public/locales/hu/settings/customization/general.json b/public/locales/hu/settings/customization/general.json index a6eaddd53..56a64666e 100644 --- a/public/locales/hu/settings/customization/general.json +++ b/public/locales/hu/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Kisegítő lehetőségek", "description": "A Homarr konfigurálása fogyatékkal élő és fogyatékkal élő felhasználók számára" + }, + "access": { + "name": "", + "description": "Annak beállítása, hogy ki férhet hozzá a táblához" } } } diff --git a/public/locales/hu/settings/customization/page-appearance.json b/public/locales/hu/settings/customization/page-appearance.json index 9fc1bbd38..50bb74371 100644 --- a/public/locales/hu/settings/customization/page-appearance.json +++ b/public/locales/hu/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Továbbá, testreszabhatja műszerfalát CSS segítségével, csak tapasztalt felhasználóknak ajánlott", "placeholder": "Az egyéni CSS utoljára kerül alkalmazásra", "applying": "CSS alkalmazása..." - }, - "buttons": { - "submit": "Küldés" } -} +} \ No newline at end of file diff --git a/public/locales/hu/tools/docker.json b/public/locales/hu/tools/docker.json new file mode 100644 index 000000000..f2406909f --- /dev/null +++ b/public/locales/hu/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "A Homarr-példányodon nincs beállítva a Docker, vagy nem tudta lekérni a konténereket. Kérjük, olvassa el a dokumentációt az integráció beállításáról." + } + }, + "modals": { + "selectBoard": { + "title": "Válasszon egy táblát", + "text": "Válassza ki azt a táblát, ahová a kiválasztott Docker-konténerekhez tartozó alkalmazásokat szeretné hozzáadni.", + "form": { + "board": { + "label": "Tábla" + }, + "submit": "Alkalmazások hozzáadása" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Alkalmazások hozzáadása a táblához", + "message": "A kiválasztott Docker-konténerek alkalmazásai hozzá lettek adva a táblához." + }, + "error": { + "title": "Nem sikerült alkalmazásokat hozzáadni a táblához", + "message": "A kiválasztott Docker-konténerekhez tartozó alkalmazásokat nem lehetett hozzáadni a táblához." + } + } + } +} \ No newline at end of file diff --git a/public/locales/hu/user/preferences.json b/public/locales/hu/user/preferences.json new file mode 100644 index 000000000..a0b801652 --- /dev/null +++ b/public/locales/hu/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Beállítások", + "pageTitle": "Saját preferenciák", + "boards": { + "defaultBoard": { + "label": "Alapértelmezett tábla" + } + }, + "accessibility": { + "title": "Kisegítő lehetőségek", + "disablePulse": { + "label": "Ping letiltása", + "description": "Alapértelmezés szerint a Homarrban a pingjelzők pulzálni fognak. Ez irritáló lehet. Ez a csúszka kikapcsolja az animációt" + }, + "replaceIconsWithDots": { + "label": "Ping pontok ikonokkal való helyettesítése", + "description": "A színvak felhasználók számára a ping pöttyök felismerhetetlenek lehetnek. Ez a jelzőket ikonokkal helyettesíti" + } + }, + "localization": { + "language": { + "label": "Nyelv" + }, + "firstDayOfWeek": { + "label": "A hét első napja", + "options": { + "monday": "Hétfő", + "saturday": "Szombat", + "sunday": "Vasárnap" + } + } + }, + "searchEngine": { + "title": "Keresőmotor", + "custom": "Egyéni", + "newTab": { + "label": "Keresési eredmények megnyitása új lapon" + }, + "autoFocus": { + "label": "Keresősávon legyen a fókusz az oldal betöltésekor.", + "description": "Ez automatikusan keresősávba helyezi a kurzort, amikor a tábla oldalára navigál. Csak asztali eszközökön fog működni." + }, + "template": { + "label": "URL lekérdezés", + "description": "Használja a %s címet a lekérdezés helyőrzőjeként" + } + } +} \ No newline at end of file diff --git a/public/locales/hu/zod.json b/public/locales/hu/zod.json new file mode 100644 index 000000000..f5a7fc585 --- /dev/null +++ b/public/locales/hu/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Ez a mező érvénytelen", + "required": "Ez a mező kötelező", + "string": { + "startsWith": "Ennek a mezőnek a {{startsWith}} kell kezdődnie", + "endsWith": "Ennek a mezőnek a {{endsWith}} kell végződnie", + "includes": "Ennek a mezőnek tartalmaznia kell a {{includes}} értéket" + }, + "tooSmall": { + "string": "Ennek a mezőnek legalább {{minimum}} karakter hosszúságúnak kell lennie", + "number": "Ennek a mezőnek nagyobbnak vagy egyenlőnek kell lennie a {{minimum}} értékkel" + }, + "tooBig": { + "string": "Ez a mező legfeljebb {{maximum}} karakter hosszúságú lehet", + "number": "Ennek a mezőnek kisebbnek vagy egyenlőnek kell lennie a {{maximum}} értékkel" + }, + "custom": { + "passwordMatch": "A jelszavaknak meg kell egyezniük" + } + } +} \ No newline at end of file diff --git a/public/locales/it/authentication/invite.json b/public/locales/it/authentication/invite.json new file mode 100644 index 000000000..686c2f1d7 --- /dev/null +++ b/public/locales/it/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Crea Account", + "title": "Crea Account", + "text": "Definisci le tue credenziali qui sotto", + "form": { + "fields": { + "username": { + "label": "Nome utente" + }, + "password": { + "label": "Password" + }, + "passwordConfirmation": { + "label": "Conferma password" + } + }, + "buttons": { + "submit": "Crea account" + } + }, + "notifications": { + "loading": { + "title": "Creazione account in corso", + "text": "Attendere" + }, + "success": { + "title": "Account creato", + "text": "Il tuo account è stato creato con successo" + }, + "error": { + "title": "Errore", + "text": "Qualcosa è andato storto, riferirsi al seguente errore: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/it/authentication/login.json b/public/locales/it/authentication/login.json index c4f632b70..b04b705b2 100644 --- a/public/locales/it/authentication/login.json +++ b/public/locales/it/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Accedi", "title": "Bentornati!", - "text": "Inserisci la password", + "text": "Inserisci le tue credenziali", "form": { "fields": { + "username": { + "label": "Nome utente" + }, "password": { - "label": "Password", - "placeholder": "La tua password" + "label": "Password" } }, "buttons": { "submit": "Accedi" - } + }, + "afterLoginRedirection": "Dopo il login, verrete reindirizzati a {{url}}" }, - "notifications": { - "checking": { - "title": "Verifica della password", - "message": "La tua password è in fase di controllo..." - }, - "correct": { - "title": "Accesso effettuato, reindirizzamento..." - }, - "wrong": { - "title": "La password inserita non è corretta. Si prega di riprovare." - } - } -} + "alert": "Le credenziali non sono corrette o questo account non esiste. Si prega di riprovare." +} \ No newline at end of file diff --git a/public/locales/it/boards/common.json b/public/locales/it/boards/common.json new file mode 100644 index 000000000..04c8ebf8d --- /dev/null +++ b/public/locales/it/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personalizza la board" + } +} \ No newline at end of file diff --git a/public/locales/it/boards/customize.json b/public/locales/it/boards/customize.json new file mode 100644 index 000000000..c711b0092 --- /dev/null +++ b/public/locales/it/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personalizza la board {{name}}", + "pageTitle": "Personalizzazione per la board {{name}}", + "backToBoard": "Torna alla board", + "settings": { + "appearance": { + "primaryColor": "Colore primario", + "secondaryColor": "Colore secondario" + } + }, + "save": { + "button": "Salva modifiche", + "note": "Attenzione, ci sono modifiche non salvate!" + }, + "notifications": { + "pending": { + "title": "Salvataggio personalizzazione", + "message": "Attendere mentre si salva la personalizzazione" + }, + "success": { + "title": "Personalizzazione salvata", + "message": "La tua personalizzazione è stata salvata con successo" + }, + "error": { + "title": "Errore", + "message": "Impossibile salvare le modifiche" + } + } +} \ No newline at end of file diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 8a651b927..409e5d444 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -1,11 +1,17 @@ { "save": "Salva", + "apply": "Applica", + "insert": "Inserisci", "about": "Info", "cancel": "Annulla", "close": "Chiudi", + "back": "Indietro", "delete": "Elimina", "ok": "OK", "edit": "Modifica", + "next": "Successivo", + "previous": "Precedente", + "confirm": "Conferma", "enabled": "Abilitato", "disabled": "Disattivato", "enableAll": "Abilita tutto", @@ -36,5 +42,14 @@ "medium": "medio", "large": "grande" }, - "seeMore": "Vedi di più..." + "seeMore": "Vedi di più...", + "position": { + "left": "Sinistra", + "center": "Centra", + "right": "Destra" + }, + "attributes": { + "width": "Larghezza", + "height": "Altezza" + } } \ No newline at end of file diff --git a/public/locales/it/layout/errors/access-denied.json b/public/locales/it/layout/errors/access-denied.json new file mode 100644 index 000000000..b54de5dbf --- /dev/null +++ b/public/locales/it/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Accesso negato", + "text": "Non hai permessi sufficienti per accedere a questa pagina. Se ritieni che ciò non sia intenzionale, contatta il tuo amministratore.", + "switchAccount": "Passa a un account diverso" +} \ No newline at end of file diff --git a/public/locales/it/layout/header.json b/public/locales/it/layout/header.json new file mode 100644 index 000000000..315f990e7 --- /dev/null +++ b/public/locales/it/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Questa è una caratteristica sperimentale di Homarr. Si prega di segnalare qualsiasi problema su GitHub o Discord." + }, + "search": { + "label": "Cerca", + "engines": { + "web": "Cerca {{query}} sul web", + "youtube": "Cerca {{query}} su YouTube", + "torrent": "Cerca per i torrent {{query}}", + "movie": "Ricerca di {{query}} su {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Cambia tema", + "preferences": "Impostazioni utente", + "defaultBoard": "Dashboard predefinita", + "manage": "Gestisci", + "logout": "Esci da {{username}}", + "login": "Accedi" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} risultati per {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/it/layout/manage.json b/public/locales/it/layout/manage.json new file mode 100644 index 000000000..12162f32a --- /dev/null +++ b/public/locales/it/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Home" + }, + "boards": { + "title": "Boards" + }, + "users": { + "title": "Utenti", + "items": { + "manage": "Gestisci", + "invites": "Inviti" + } + }, + "help": { + "title": "Aiuto", + "items": { + "documentation": "Documentazione", + "report": "Segnala un problema / bug", + "discord": "Discord della community", + "contribute": "Contribuisci" + } + }, + "tools": { + "title": "Strumenti", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Info" + } + } +} \ No newline at end of file diff --git a/public/locales/it/layout/modals/about.json b/public/locales/it/layout/modals/about.json index 7ccbd6615..a12397b41 100644 --- a/public/locales/it/layout/modals/about.json +++ b/public/locales/it/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr è una elegante e moderna dashboard che mette tutte le vostre app e i vostri servizi a portata di mano. Con Homarr, potete controllare tutto in un'unica comoda posizione. Homarr si integra perfettamente con le app aggiunte, fornendo informazioni preziose e offrendo un controllo completo. L'installazione è semplice e Homarr supporta un'ampia gamma di metodi di deployment.", - "contact": "Problemi o domande? Contattaci!", "addToDashboard": "Aggiungi alla dashboard", "tip": "Mod si riferisce al tasto modificatore, cioè i tasti Ctrl e Command/Super/Windows", "key": "Tasto di scelta rapida", "action": "Azioni", "keybinds": "Scorciatoie da tastiera", - "documentation": "Documentazione", + "translators": "Traduttori ({{count}})", + "translatorsDescription": "Grazie a queste persone, Homarr è disponibile in {{languages}} lingue! Vuoi aiutare a tradurre Homarr nella tua lingua? Leggi come farlo qui.", + "contributors": "Collaboratori ({{count}})", + "contributorsDescription": "Queste persone hanno creato il codice che fa funzionare homarr! Vuoi contribuire ad Homarr? Leggi come farlo qui", "actions": { "toggleTheme": "Attiva/Disattiva modalità chiaro/scuro", "focusSearchBar": "Focalizza la barra di ricerca", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Versione dello schema di configurazione", - "configurationsCount": "Configurazioni disponibili", "version": "Versione", "nodeEnvironment": "Ambiente Node", "i18n": "Translation namespaces I18n caricati", diff --git a/public/locales/it/layout/modals/add-app.json b/public/locales/it/layout/modals/add-app.json index 5d9baf9f8..29c57f4af 100644 --- a/public/locales/it/layout/modals/add-app.json +++ b/public/locales/it/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Indirizzo interno", - "description": "IP interno dell'app." + "description": "IP interno dell'app.", + "troubleshoot": { + "label": "Problemi?", + "header": "Ecco un elenco degli errori più comuni e della risoluzione dei problemi:", + "lines": { + "nothingAfterPort": "Nella maggior parte dei casi, se non in tutti, non dovresti inserire alcun percorso dopo la porta. (Anche \"/admin\" per pihole o \"/web\" per plex)", + "protocolCheck": "Assicurati sempre che l'URL sia preceduto da http o https e assicurati di utilizzare quello giusto.", + "preferIP": "Si consiglia di utilizzare l'IP diretto della macchina o del container con cui si tenta di comunicare.", + "enablePings": "Verifica che l'IP sia corretto abilitando i ping. Personalizza scheda -> Layout -> Abilita ping. Una piccola bolla rossa o verde apparirà sui riquadri dell'app e, passandoci sopra, ti verrà fornito il codice di risposta (nella maggior parte dei casi è prevista una bolla verde con il codice 200).", + "wget": "Per assicurarti che homarr possa comunicare con le altre app, assicurati di fare wget/curl/ping all'IP:porta dell'app.", + "iframe": "Quando si tratta di iframe, questi dovrebbero sempre utilizzare lo stesso protocollo (http/s) di Homarr.", + "clearCache": "Alcune informazioni sono registrate nella cache, quindi l'integrazione potrebbe non funzionare a meno che non si pulisca la cache nelle opzioni generali di Homarr." + }, + "footer": "Per ulteriori informazioni sulla risoluzione dei problemi, contatta il nostro {{discord}}." + } }, "externalAddress": { "label": "Indirizzo esterno", diff --git a/public/locales/it/manage/boards.json b/public/locales/it/manage/boards.json new file mode 100644 index 000000000..594f14a74 --- /dev/null +++ b/public/locales/it/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Boards", + "pageTitle": "Boards", + "cards": { + "statistics": { + "apps": "Applicazioni", + "widgets": "Widgets", + "categories": "Categorie" + }, + "buttons": { + "view": "Mostra board" + }, + "menu": { + "setAsDefault": "Imposta come board predefinita", + "delete": { + "label": "Elimina definitivamente", + "disabled": "Eliminazione disabilitata, perché i vecchi componenti di Homarr non consentono la cancellazione della configurazione predefinita. La cancellazione sarà possibile in futuro." + } + }, + "badges": { + "fileSystem": "File system", + "default": "Predefinito" + } + }, + "buttons": { + "create": "Crea nuova board" + }, + "modals": { + "delete": { + "title": "Elimina board", + "text": "Siete sicuri di voler eliminare questa board? Questa azione non può essere annullata e i dati andranno persi definitivamente." + }, + "create": { + "title": "Crea board", + "text": "Il nome non può essere modificato dopo la creazione della board.", + "form": { + "name": { + "label": "Nome" + }, + "submit": "Crea" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/manage/index.json b/public/locales/it/manage/index.json new file mode 100644 index 000000000..5347390d0 --- /dev/null +++ b/public/locales/it/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Gestisci", + "hero": { + "title": "Bentornati, {{username}}", + "fallbackUsername": "Anonimo", + "subtitle": "Benvenuti nel vostro Application Hub. Organizza, ottimizza e conquista!" + }, + "quickActions": { + "title": "Azioni rapide", + "boards": { + "title": "Le tue board", + "subtitle": "Crea e gestisci le tue board" + }, + "inviteUsers": { + "title": "Invita un nuovo utente", + "subtitle": "Crea e invia un invito per la registrazione" + }, + "manageUsers": { + "title": "Gestisci utenti", + "subtitle": "Elimina e gestisci i tuoi utenti" + } + } +} \ No newline at end of file diff --git a/public/locales/it/manage/users.json b/public/locales/it/manage/users.json new file mode 100644 index 000000000..692dc753b --- /dev/null +++ b/public/locales/it/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Utente" + } + }, + "tooltips": { + "deleteUser": "Elimina utente", + "demoteAdmin": "Declassa amministratore", + "promoteToAdmin": "Promuovi ad amministratore" + }, + "modals": { + "delete": { + "title": "Elimina l'utente {{name}}", + "text": "Si è sicuri di voler eliminare l'utente {{name}}? Questo eliminerà i dati associati a questo account, ma non le dashboard create da questo utente." + }, + "change-role": { + "promote": { + "title": "Promuovi l'utente {{name}} ad amministratore", + "text": "Siete sicuri di voler promuovere l'utente {{name}} ad amministratore? In questo modo l'utente avrà accesso a tutte le risorse dell'istanza di Homarr." + }, + "demote": { + "title": "Declassa l'utente {{name}} a utente", + "text": "Siete sicuri di voler declassare l'utente {{name}} a utente? Questo rimuoverà l'accesso dell'utente a tutte le risorse dell'istanza di Homarr." + }, + "confirm": "Conferma" + } + }, + "searchDoesntMatch": "La ricerca non corrisponde a nessuna voce. Si prega di modificare il filtro." +} \ No newline at end of file diff --git a/public/locales/it/manage/users/create.json b/public/locales/it/manage/users/create.json new file mode 100644 index 000000000..7c2a30cf2 --- /dev/null +++ b/public/locales/it/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Crea utente", + "steps": { + "account": { + "title": "Primo passo", + "text": "Crea account", + "username": { + "label": "Nome utente" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Secondo passo", + "text": "Password", + "password": { + "label": "Password" + } + }, + "finish": { + "title": "Conferma", + "text": "Salva nel database", + "card": { + "title": "Rivedi i tuoi input", + "text": "Dopo aver inviato i dati al database, l'utente potrà effettuare il login. Siete sicuri di voler memorizzare questo utente nel database e attivare il login?" + }, + "table": { + "header": { + "property": "Proprietà", + "value": "Valore", + "username": "Nome utente", + "email": "E-mail", + "password": "Password" + }, + "notSet": "Non impostato", + "valid": "Valido" + }, + "failed": "Creazione utente non riuscita: {{error}}" + }, + "completed": { + "alert": { + "title": "Utente creato", + "text": "L'utente è stato creato nel database. Ora può effettuare il login." + } + } + }, + "buttons": { + "generateRandomPassword": "Genera casualmente", + "createAnother": "Crea un altro" + } +} \ No newline at end of file diff --git a/public/locales/it/manage/users/invites.json b/public/locales/it/manage/users/invites.json new file mode 100644 index 000000000..dac34aa1a --- /dev/null +++ b/public/locales/it/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Inviti utente", + "pageTitle": "Gestisci inviti utente", + "description": "Utilizzando gli inviti, è possibile invitare gli utenti alla propria istanza di Homarr. Un invito sarà valido solo per un certo periodo di tempo e potrà essere utilizzato una sola volta. La scadenza deve essere compresa tra 5 minuti e 12 mesi al momento della creazione.", + "button": { + "createInvite": "Crea invito", + "deleteInvite": "Elimina invito" + }, + "table": { + "header": { + "id": "ID", + "creator": "Creatore", + "expires": "Scadenza", + "action": "Azioni" + }, + "data": { + "expiresAt": "scaduto {{at}}", + "expiresIn": "nel {{in}}" + } + }, + "modals": { + "create": { + "title": "Crea invito", + "description": "Dopo la scadenza, un invito non sarà più valido e il destinatario dell'invito non potrà creare un account.", + "form": { + "expires": "Data di scadenza", + "submit": "Crea" + } + }, + "copy": { + "title": "Copia invito", + "description": "Il tuo invito è stato generato. Dopo questa chiusura modale, non sarai più in grado di copiare questo link. Se non si desidera più invitare detta persona, è possibile eliminare questo invito in qualsiasi momento.", + "invitationLink": "Link d'invito", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Copia e rimuovi" + } + }, + "delete": { + "title": "Elimina invito", + "description": "Siete sicuri di voler eliminare questo invito? Gli utenti con questo link non potranno più creare un account utilizzando tale link." + } + }, + "noInvites": "Non ci sono ancora inviti." +} \ No newline at end of file diff --git a/public/locales/it/modules/calendar.json b/public/locales/it/modules/calendar.json index 224625d16..be35c3f27 100644 --- a/public/locales/it/modules/calendar.json +++ b/public/locales/it/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Mostra un calendario con le prossime versioni dalle integrazioni supportate.", "settings": { "title": "Impostazioni per il widget Calendario", - "useSonarrv4": { - "label": "Usa le API di Sonarr v4" - }, - "sundayStart": { - "label": "Inizia la settimana di domenica" - }, "radarrReleaseType": { "label": "Tipo di release Radarr", "data": { @@ -22,7 +16,7 @@ "label": "Nascondi giorni della settimana" }, "showUnmonitored": { - "label": "" + "label": "Mostra elementi non monitorati" }, "fontSize": { "label": "Dimensioni carattere", diff --git a/public/locales/it/modules/dns-hole-controls.json b/public/locales/it/modules/dns-hole-controls.json index d945c396c..66028b6d1 100644 --- a/public/locales/it/modules/dns-hole-controls.json +++ b/public/locales/it/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Controllo del DNS hole", - "description": "Controlla PiHole o AdGuard dalla tua dashboard" + "description": "Controlla PiHole o AdGuard dalla tua dashboard", + "settings": { + "title": "Impostazioni di controllo del DNS hole", + "showToggleAllButtons": { + "label": "Mostra i pulsanti \"Abilita/Disabilita tutto\"" + } + }, + "errors": { + "general": { + "title": "Impossibile trovare un DNS hole", + "text": "Si è verificato un problema di connessione ai vostri DNS hole. Verificate la vostra configurazione/integrazione." + } + } } } \ No newline at end of file diff --git a/public/locales/it/modules/dns-hole-summary.json b/public/locales/it/modules/dns-hole-summary.json index 0e40fbeb5..611dbf438 100644 --- a/public/locales/it/modules/dns-hole-summary.json +++ b/public/locales/it/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domini su adlists", "queriesToday": "Query di oggi", - "queriesBlockedTodayPercentage": "bloccati oggi", - "queriesBlockedToday": "bloccati oggi" + "queriesBlockedTodayPercentage": "Bloccati oggi", + "queriesBlockedToday": "Bloccati oggi" } } } diff --git a/public/locales/it/modules/media-requests-list.json b/public/locales/it/modules/media-requests-list.json index b0f5f8cf7..7cfee8547 100644 --- a/public/locales/it/modules/media-requests-list.json +++ b/public/locales/it/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Nessuna richiesta trovata. Assicurati di aver configurato correttamente le tue app.", - "pending": "Ci sono {{countPendingApproval}} richieste in attesa di approvazione.", - "nonePending": "Al momento non ci sono approvazioni in attesa. È tutto pronto!", "state": { "approved": "Approvato", "pendingApproval": "In attesa di approvazione", diff --git a/public/locales/it/modules/notebook.json b/public/locales/it/modules/notebook.json index 83b0bb87e..ffa709d4a 100644 --- a/public/locales/it/modules/notebook.json +++ b/public/locales/it/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Mostra la barra degli strumenti per aiutarti a scrivere in Markdown" }, + "allowReadOnlyCheck": { + "label": "Consenti il check in modalità di sola lettura" + }, "content": { "label": "Contenuto del blocco note" } } + }, + "card": { + "controls": { + "bold": "Grassetto", + "italic": "Corsivo", + "strikethrough": "Testo barrato", + "underline": "Sottolineato", + "colorText": "Testo a colori", + "colorHighlight": "Testo evidenziato colorato", + "code": "Codice", + "clear": "Rimuovi formattazione", + "heading": "Intestazione {{level}}", + "align": "Allinea testo: {{position}}", + "blockquote": "Citazione", + "horizontalLine": "Linea orizzontale", + "bulletList": "Elenco puntato", + "orderedList": "Elenco ordinato", + "checkList": "Elenco di controllo", + "increaseIndent": "Aumenta indentatura", + "decreaseIndent": "Diminuisci indentatura", + "link": "Link", + "unlink": "Elimina link", + "image": "Incorpora immagine", + "addTable": "Aggiungi tabella", + "deleteTable": "Elimina tabella", + "colorCell": "Colore cella", + "mergeCell": "Attiva/disattiva unione celle", + "addColumnLeft": "Aggiungi colonna prima", + "addColumnRight": "Aggiungi colonna dopo", + "deleteColumn": "Elimina colonna", + "addRowTop": "Aggiungi riga prima", + "addRowBelow": "Aggiungi riga dopo", + "deleteRow": "Elimina riga" + }, + "modals": { + "clearColor": "Rimuovi colore", + "source": "Fonte", + "widthPlaceholder": "Valore in % o pixel", + "columns": "Colonne", + "rows": "Righe" + } } } \ No newline at end of file diff --git a/public/locales/it/modules/rss.json b/public/locales/it/modules/rss.json index 7a418fe03..8f5c544b9 100644 --- a/public/locales/it/modules/rss.json +++ b/public/locales/it/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Widget RSS", - "description": "", + "description": "Il widget rss ti consente di visualizzare i feed rss sulla tua dashboard.", "settings": { "title": "Impostazioni del widget RSS", "rssFeedUrl": { diff --git a/public/locales/it/modules/torrents-status.json b/public/locales/it/modules/torrents-status.json index a1db4ac3a..40f924aa9 100644 --- a/public/locales/it/modules/torrents-status.json +++ b/public/locales/it/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Mostra torrent completati" }, + "displayActiveTorrents": { + "label": "Visualizza i torrent attivi" + }, + "speedLimitOfActiveTorrents": { + "label": "Velocità di upload per considerare un torrent come attivo (kB/s)" + }, "displayStaleTorrents": { "label": "Mostra torrent in stallo" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Label list", "description": "Quando 'è whitelist' è selezionato, agirà come una whitelist. Se non selezionato, è una blacklist. Non farà nulla quando vuoto" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Errore", - "lastUpdated": "Ultimo aggiornamento {{time}} fa" + "lastUpdated": "Ultimo aggiornamento {{time}} fa", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/it/password-requirements.json b/public/locales/it/password-requirements.json new file mode 100644 index 000000000..281191aa4 --- /dev/null +++ b/public/locales/it/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Include numero", + "lowercase": "Include lettera minuscola", + "uppercase": "Include lettera maiuscola", + "special": "Include carattere speciale", + "length": "Include almeno {{count}} caratteri" +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/access.json b/public/locales/it/settings/customization/access.json new file mode 100644 index 000000000..6a24de9b4 --- /dev/null +++ b/public/locales/it/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Consenti anonimo", + "description": "Consenti agli utenti che non hanno effettuato l'accesso di visualizzare la tua board" + } +} \ No newline at end of file diff --git a/public/locales/it/settings/customization/general.json b/public/locales/it/settings/customization/general.json index dccd092ac..aa366a076 100644 --- a/public/locales/it/settings/customization/general.json +++ b/public/locales/it/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Accessibilità", "description": "Configura Homarr per utenti con disabilità" + }, + "access": { + "name": "Accesso", + "description": "Configura chi ha accesso alla tua board" } } } diff --git a/public/locales/it/settings/customization/page-appearance.json b/public/locales/it/settings/customization/page-appearance.json index fd67a31b4..47ff7bc3e 100644 --- a/public/locales/it/settings/customization/page-appearance.json +++ b/public/locales/it/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Inoltre, personalizza la dashboard utilizzando i CSS, consigliato solo agli utenti esperti", "placeholder": "I CSS personalizzati saranno applicati per ultimi", "applying": "Applicazione CSS..." - }, - "buttons": { - "submit": "Invia" } -} +} \ No newline at end of file diff --git a/public/locales/it/tools/docker.json b/public/locales/it/tools/docker.json new file mode 100644 index 000000000..979b1e170 --- /dev/null +++ b/public/locales/it/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "L'istanza di Homarr non è configurata per Docker o non è riuscita a recuperare i container. Consultare la documentazione su come impostare l'integrazione." + } + }, + "modals": { + "selectBoard": { + "title": "Scegli una board", + "text": "Scegliere la board in cui aggiungere le applicazioni per i Docker container selezionati.", + "form": { + "board": { + "label": "Board" + }, + "submit": "Aggiungi applicazioni" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Aggiunte app a board", + "message": "Le applicazioni per i Docker container selezionati sono state aggiunte alla board." + }, + "error": { + "title": "Impossibile aggiungere le app alla board", + "message": "Non è stato possibile aggiungere alla board le applicazioni per i Docker container selezionati." + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/user/preferences.json b/public/locales/it/user/preferences.json new file mode 100644 index 000000000..35a9c6ec1 --- /dev/null +++ b/public/locales/it/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Impostazioni", + "pageTitle": "Le tue impostazioni", + "boards": { + "defaultBoard": { + "label": "Board predefinita" + } + }, + "accessibility": { + "title": "Accessibilità", + "disablePulse": { + "label": "Disabilita impulso ping", + "description": "Come impostazione predefinita, gli indicatori di ping in Homarr pulsano. Ciò può essere irritante. Questo slider disattiverà l'animazione" + }, + "replaceIconsWithDots": { + "label": "Sostituisci punti ping con icone", + "description": "Per gli utenti daltonici, i punti ping potrebbero essere irriconoscibili. Questo sostituirà gli indicatori con le icone" + } + }, + "localization": { + "language": { + "label": "Lingua" + }, + "firstDayOfWeek": { + "label": "Primo giorno della settimana", + "options": { + "monday": "Lunedì", + "saturday": "Sabato", + "sunday": "Domenica" + } + } + }, + "searchEngine": { + "title": "Motore di ricerca", + "custom": "Personalizzato", + "newTab": { + "label": "Apri i risultati di ricerca in una nuova scheda" + }, + "autoFocus": { + "label": "Focalizza la barra di ricerca sul caricamento della pagina.", + "description": "Questo focalizzerà automaticamente la barra di ricerca, quando si passa alle pagine della board. Funzionerà solo su dispositivi desktop." + }, + "template": { + "label": "URL di ricerca", + "description": "Usa %s come segnaposto per la query" + } + } +} \ No newline at end of file diff --git a/public/locales/it/zod.json b/public/locales/it/zod.json new file mode 100644 index 000000000..c013ae653 --- /dev/null +++ b/public/locales/it/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Questo campo non è valido", + "required": "Questo campo è obbligatorio", + "string": { + "startsWith": "Questo campo deve iniziare con {{startsWith}}", + "endsWith": "Questo campo deve terminare con {{endsWith}}", + "includes": "Questo campo deve includere {{includes}}" + }, + "tooSmall": { + "string": "Questo campo deve avere una lunghezza minima di {{minimum}} caratteri", + "number": "Questo campo deve essere maggiore o uguale a {{minimum}}" + }, + "tooBig": { + "string": "Questo campo deve avere una lunghezza massima di {{maximum}} caratteri", + "number": "Questo campo deve essere maggiore o uguale a {{maximum}}" + }, + "custom": { + "passwordMatch": "Le password devono coincidere" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/authentication/invite.json b/public/locales/ja/authentication/invite.json new file mode 100644 index 000000000..884c49163 --- /dev/null +++ b/public/locales/ja/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "アカウント作成", + "title": "アカウント作成", + "text": "あなたのクレデンシャルを以下に定義してください。", + "form": { + "fields": { + "username": { + "label": "ユーザー名" + }, + "password": { + "label": "パスワード" + }, + "passwordConfirmation": { + "label": "パスワードの確認" + } + }, + "buttons": { + "submit": "アカウント作成" + } + }, + "notifications": { + "loading": { + "title": "アカウントの作成", + "text": "お待ちください" + }, + "success": { + "title": "アカウント作成", + "text": "アカウントが正常に作成されました" + }, + "error": { + "title": "エラー", + "text": "何かが間違っていたようで、次のようなエラーが出た: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/authentication/login.json b/public/locales/ja/authentication/login.json index 81f5c33ad..ab735d1a1 100644 --- a/public/locales/ja/authentication/login.json +++ b/public/locales/ja/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "ログイン", "title": "お帰りなさい", - "text": "パスワードを入力してください", + "text": "認証情報を入力してください。", "form": { "fields": { + "username": { + "label": "ユーザー名" + }, "password": { - "label": "パスワード", - "placeholder": "パスワード" + "label": "パスワード" } }, "buttons": { "submit": "サインイン" - } + }, + "afterLoginRedirection": "ログイン後、 {{url}}にリダイレクトされます。" }, - "notifications": { - "checking": { - "title": "パスワードの確認", - "message": "パスワードは確認中です..." - }, - "correct": { - "title": "サインインに成功しました、リダイレクトします..." - }, - "wrong": { - "title": "入力されたパスワードが正しくありません。もう一度やり直してください。" - } - } -} + "alert": "認証情報が間違っているか、このアカウントが存在しません。もう一度お試しください。" +} \ No newline at end of file diff --git a/public/locales/ja/boards/common.json b/public/locales/ja/boards/common.json new file mode 100644 index 000000000..9607ae67a --- /dev/null +++ b/public/locales/ja/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "ボードのカスタマイズ" + } +} \ No newline at end of file diff --git a/public/locales/ja/boards/customize.json b/public/locales/ja/boards/customize.json new file mode 100644 index 000000000..2835e8cd6 --- /dev/null +++ b/public/locales/ja/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "カスタマイズ {{name}} ボード", + "pageTitle": "{{name}} ボードのカスタマイズ", + "backToBoard": "ボードに戻る", + "settings": { + "appearance": { + "primaryColor": "原色", + "secondaryColor": "セカンダリーカラー" + } + }, + "save": { + "button": "変更を保存する", + "note": "気をつけて!" + }, + "notifications": { + "pending": { + "title": "カスタマイズの保存", + "message": "カスタマイズ内容を保存しますので、しばらくお待ちください。" + }, + "success": { + "title": "カスタマイズの保存", + "message": "カスタマイズが正常に保存されました" + }, + "error": { + "title": "エラー", + "message": "変更を保存できない" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 1d17ee804..ed31ad643 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -1,11 +1,17 @@ { "save": "保存", + "apply": "", + "insert": "", "about": "About", "cancel": "キャンセル", "close": "閉じる", + "back": "バック", "delete": "削除", "ok": "よっしゃー", "edit": "編集", + "next": "次のページ", + "previous": "前へ", + "confirm": "確認", "enabled": "有効", "disabled": "無効", "enableAll": "すべてを有効にする", @@ -36,5 +42,14 @@ "medium": "中", "large": "大" }, - "seeMore": "もっと見る..." + "seeMore": "もっと見る...", + "position": { + "left": "左", + "center": "", + "right": "右" + }, + "attributes": { + "width": "幅", + "height": "高さ" + } } \ No newline at end of file diff --git a/public/locales/ja/layout/common.json b/public/locales/ja/layout/common.json index 38fff0308..3b9609e72 100644 --- a/public/locales/ja/layout/common.json +++ b/public/locales/ja/layout/common.json @@ -18,7 +18,7 @@ "menu": { "moveUp": "上に移動", "moveDown": "下へ移動", - "addCategory": "", + "addCategory": "カテゴリーの追加 {{location}}", "addAbove": "上", "addBelow": "下" } diff --git a/public/locales/ja/layout/errors/access-denied.json b/public/locales/ja/layout/errors/access-denied.json new file mode 100644 index 000000000..6d9afc487 --- /dev/null +++ b/public/locales/ja/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "アクセス拒否", + "text": "このページにアクセスするための十分な権限がありません。意図的でないと思われる場合は、管理者にご連絡ください。", + "switchAccount": "別のアカウントに切り替える" +} \ No newline at end of file diff --git a/public/locales/ja/layout/header.json b/public/locales/ja/layout/header.json new file mode 100644 index 000000000..01224f634 --- /dev/null +++ b/public/locales/ja/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "これはHomarrの実験的な機能です。問題があれば GitHub または Discordに報告してください。" + }, + "search": { + "label": "検索", + "engines": { + "web": "{{query}} をウェブで検索", + "youtube": "YouTubeで {{query}} を検索", + "torrent": "{{query}} のトレントを検索", + "movie": "{{app}}で {{query}} を検索" + } + }, + "actions": { + "avatar": { + "switchTheme": "スイッチテーマ", + "preferences": "ユーザー設定", + "defaultBoard": "デフォルトのダッシュボード", + "manage": "管理", + "logout": "{{username}}からログアウト", + "login": "ログイン" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "トップ {{count}} の検索結果 {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/header/actions/toggle-edit-mode.json b/public/locales/ja/layout/header/actions/toggle-edit-mode.json index e4a7c1a29..89803b79f 100644 --- a/public/locales/ja/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/ja/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "編集モードが有効なのは <1>{{size}}サイズ", "text": "今すぐアプリを調整し、設定することができます。変更は、 編集モードを終了するまで保存されません" }, - "unloadEvent": "" + "unloadEvent": "編集モードを終了して変更を保存する" } diff --git a/public/locales/ja/layout/manage.json b/public/locales/ja/layout/manage.json new file mode 100644 index 000000000..62a22f914 --- /dev/null +++ b/public/locales/ja/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "ホーム" + }, + "boards": { + "title": "ボード" + }, + "users": { + "title": "ユーザー", + "items": { + "manage": "管理", + "invites": "招待" + } + }, + "help": { + "title": "ヘルプ", + "items": { + "documentation": "ドキュメンテーション", + "report": "問題/バグを報告する", + "discord": "コミュニティ・ディスコード", + "contribute": "貢献する" + } + }, + "tools": { + "title": "ツール", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "About" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/modals/about.json b/public/locales/ja/layout/modals/about.json index 1c130fc65..6f49df3e9 100644 --- a/public/locales/ja/layout/modals/about.json +++ b/public/locales/ja/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarrは、 sleek, modern dashboardで、すべてのアプリとサービスを指先で操作できるようにします。HOMARを使えば、便利な1つの場所ですべてにアクセスし、コントロールすることができます。Homarrは、あなたが追加したアプリとシームレスに統合され、あなたに貴重な情報を提供し、完全に制御することができます。インストールは簡単で、Homarrは幅広い導入方法をサポートしています。", - "contact": "お困りごとやご質問はありませんか?私たちにご連絡ください。", "addToDashboard": "ダッシュボードに追加", "tip": "Modは修飾キーを指し、CtrlキーとCommand/Super/Windowsキーです", "key": "ショートカットキー", "action": "アクション", "keybinds": "キー設定", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "ライト/ダークモードに変更する", "focusSearchBar": "検索バーにフォーカス", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "設定スキーマのバージョン", - "configurationsCount": "利用可能な構成", "version": "バージョン", "nodeEnvironment": "ノード環境", "i18n": "読み込まれたI18n翻訳名前空間", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "実験的: 編集モードを無効にする" }, "version": { - "new": "", - "dropdown": "" + "new": "{{newVersion}}", + "dropdown": "バージョンは {{newVersion}} です!現在のバージョンは {{currentVersion}}です。" } } \ No newline at end of file diff --git a/public/locales/ja/layout/modals/add-app.json b/public/locales/ja/layout/modals/add-app.json index 70081ecfd..579f60446 100644 --- a/public/locales/ja/layout/modals/add-app.json +++ b/public/locales/ja/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "内部アドレス", - "description": "アプリの内部IP-address。" + "description": "アプリの内部IP-address。", + "troubleshoot": { + "label": "問題がありますか?", + "header": "よくある間違いとトラブルシューティングのリストです:", + "lines": { + "nothingAfterPort": "ほとんどの場合、ポートの後にパスを入力してはいけません。(piholeの'/admin'やplexの'/web'でも)", + "protocolCheck": "URLの前にhttpまたはhttpsがついていることを常に確認してください。", + "preferIP": "通信しようとしているマシンやコンテナのダイレクトipを使うことを推奨する。", + "enablePings": "Pingを有効にして、IPが正しいことを確認する。ボードのカスタマイズ -> レイアウト -> pingを有効にする。アプリのタイル上に赤または緑の小さな吹き出しが表示され、その上にカーソルを置くと応答コードが表示されます(ほとんどの場合、コード200の緑の吹き出しが表示されます)。", + "wget": "homarrが他のアプリと通信できることを確認するために、アプリのIP:ポートをwget/curl/pingしてください。", + "iframe": "iframeに関しては、常にHomarrと同じプロトコル(http/s)を使用する必要があります。", + "clearCache": "一部の情報はキャッシュに登録されるため、Homarrの一般オプションでキャッシュをクリアしないと統合が機能しない場合があります。" + }, + "footer": "トラブルシューティングについては、 {{discord}}までお問い合わせください。" + } }, "externalAddress": { "label": "外部アドレス", @@ -55,8 +69,8 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "アプリ名 文字サイズ", + "description": "タイル上にアプリ名を表示する際のフォントサイズを設定します。" }, "appNameStatus": { "label": "アプリ名の状態", diff --git a/public/locales/ja/manage/boards.json b/public/locales/ja/manage/boards.json new file mode 100644 index 000000000..1a053a1a7 --- /dev/null +++ b/public/locales/ja/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "ボード", + "pageTitle": "ボード", + "cards": { + "statistics": { + "apps": "アプリ", + "widgets": "ウィジェット", + "categories": "カテゴリー" + }, + "buttons": { + "view": "ボードを見る" + }, + "menu": { + "setAsDefault": "デフォルトボードに設定", + "delete": { + "label": "永久削除", + "disabled": "古いHomarrコンポーネントはデフォルト設定の削除を許可していないため、削除は無効です。将来的には削除できるようになるでしょう。" + } + }, + "badges": { + "fileSystem": "ファイルシステム", + "default": "デフォルト" + } + }, + "buttons": { + "create": "新しいボードを作成する" + }, + "modals": { + "delete": { + "title": "ボードの削除", + "text": "本当にこのボードを削除しますか?この操作は元に戻せず、データは永久に失われます。" + }, + "create": { + "title": "ボード作成", + "text": "ボード作成後に名前を変更することはできません。", + "form": { + "name": { + "label": "名称" + }, + "submit": "作成" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/index.json b/public/locales/ja/manage/index.json new file mode 100644 index 000000000..46855ea4c --- /dev/null +++ b/public/locales/ja/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "管理", + "hero": { + "title": "おかえりなさい、 {{username}}", + "fallbackUsername": "匿名", + "subtitle": "アプリケーションハブへようこそ。整理、最適化、そして征服!" + }, + "quickActions": { + "title": "クイック操作", + "boards": { + "title": "ボード", + "subtitle": "ボードの作成と管理" + }, + "inviteUsers": { + "title": "新規ユーザーを招待する", + "subtitle": "登録のための招待状を作成し、送信する" + }, + "manageUsers": { + "title": "ユーザー管理", + "subtitle": "ユーザーの削除と管理" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/users.json b/public/locales/ja/manage/users.json new file mode 100644 index 000000000..4d84778da --- /dev/null +++ b/public/locales/ja/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "ユーザー", + "pageTitle": "ユーザー管理", + "text": "ユーザーを使用して、ダッシュボードを編集できるユーザーを設定できます。Homarrの将来のバージョンでは、権限とボードをさらに細かく制御できるようになります。", + "buttons": { + "create": "作成" + }, + "table": { + "header": { + "user": "ユーザー" + } + }, + "tooltips": { + "deleteUser": "ユーザー削除", + "demoteAdmin": "管理者の解任", + "promoteToAdmin": "管理者への昇格" + }, + "modals": { + "delete": { + "title": "ユーザー削除 {{name}}", + "text": "本当にユーザー {{name}}を削除しますか?これにより、このアカウントに関連付けられたデータは削除されますが、このユーザが作成したダッシュボードは削除されません。" + }, + "change-role": { + "promote": { + "title": "ユーザー {{name}} を管理者に昇格させる", + "text": "本当にユーザー {{name}} を管理者に昇格させたいですか?これにより、そのユーザーはHomarrインスタンス上のすべてのリソースにアクセスできるようになります。" + }, + "demote": { + "title": "{{name}} ユーザーを降格させる", + "text": "{{name}} のユーザーを user に降格させますか?これにより、Homarrインスタンス上のすべてのリソースへのユーザーのアクセス権が削除されます。" + }, + "confirm": "確認" + } + }, + "searchDoesntMatch": "検索条件に一致する項目がありません。フィルタを調整してください。" +} \ No newline at end of file diff --git a/public/locales/ja/manage/users/create.json b/public/locales/ja/manage/users/create.json new file mode 100644 index 000000000..d30ddf273 --- /dev/null +++ b/public/locales/ja/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "ユーザー作成", + "steps": { + "account": { + "title": "最初のステップ", + "text": "アカウント作成", + "username": { + "label": "ユーザー名" + }, + "email": { + "label": "Eメール" + } + }, + "security": { + "title": "第2ステップ", + "text": "パスワード", + "password": { + "label": "パスワード" + } + }, + "finish": { + "title": "確認", + "text": "データベースに保存", + "card": { + "title": "インプットを見直す", + "text": "データベースにデータを送信すると、ユーザーはログインできるようになります。このユーザーをデータベースに保存し、ログインを有効化してもよろしいですか?" + }, + "table": { + "header": { + "property": "プロパティ", + "value": "価値", + "username": "ユーザー名", + "email": "Eメール", + "password": "パスワード" + }, + "notSet": "未設定", + "valid": "有効" + }, + "failed": "ユーザー作成に失敗しました: {{error}}" + }, + "completed": { + "alert": { + "title": "ユーザーが作成された", + "text": "ユーザーがデータベースに作成されました。これでログインできるようになりました。" + } + } + }, + "buttons": { + "generateRandomPassword": "ランダム生成", + "createAnother": "別のものを作る" + } +} \ No newline at end of file diff --git a/public/locales/ja/manage/users/invites.json b/public/locales/ja/manage/users/invites.json new file mode 100644 index 000000000..ff348cfea --- /dev/null +++ b/public/locales/ja/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "ユーザー招待", + "pageTitle": "ユーザー招待の管理", + "description": "招待を使用すると、Homarrインスタンスにユーザーを招待することができます。招待状は一定期間のみ有効で、一度しか使用できません。有効期限は作成時に5分から12ヶ月の間でなければなりません。", + "button": { + "createInvite": "招待状の作成", + "deleteInvite": "招待の削除" + }, + "table": { + "header": { + "id": "ID", + "creator": "クリエイター", + "expires": "期限切れ", + "action": "行動" + }, + "data": { + "expiresAt": "期限切れ {{at}}", + "expiresIn": "{{in}}" + } + }, + "modals": { + "create": { + "title": "招待状を作成する", + "description": "有効期限が過ぎると、招待は無効となり、招待を受けた人はアカウントを作成できなくなります。", + "form": { + "expires": "有効期限", + "submit": "作成" + } + }, + "copy": { + "title": "招待状のコピー", + "description": "招待状が作成されました。このモーダルが閉じると、 このリンクをコピーすることはできなくなります。招待したい人がいない場合は、いつでもこの招待を削除することができます。", + "invitationLink": "招待リンク", + "details": { + "id": "ID", + "token": "トークン" + }, + "button": { + "close": "コピー & 解散" + } + }, + "delete": { + "title": "招待の削除", + "description": "この招待状を削除してもよろしいですか?このリンクを持つユーザーは、そのリンクを使用してアカウントを作成できなくなります。" + } + }, + "noInvites": "まだ招待券はない。" +} \ No newline at end of file diff --git a/public/locales/ja/modules/bookmark.json b/public/locales/ja/modules/bookmark.json index 748349488..72ec27e9d 100644 --- a/public/locales/ja/modules/bookmark.json +++ b/public/locales/ja/modules/bookmark.json @@ -29,7 +29,7 @@ }, "item": { "validation": { - "length": "", + "length": "長さは {{shortest}} から {{longest}}の間でなければならない。", "invalidLink": "有効ではないリンク", "errorMsg": "検証エラーがあったため、保存されませんでした。入力を認証してください。" }, diff --git a/public/locales/ja/modules/calendar.json b/public/locales/ja/modules/calendar.json index 445e0e0aa..21090370f 100644 --- a/public/locales/ja/modules/calendar.json +++ b/public/locales/ja/modules/calendar.json @@ -4,12 +4,6 @@ "description": "サポートされている統合機能からリリース予定のカレンダーを表示します。", "settings": { "title": "カレンダーウィジェットの設定", - "useSonarrv4": { - "label": "Sonarr v4 API を使用" - }, - "sundayStart": { - "label": "週の始まりは日曜日" - }, "radarrReleaseType": { "label": "ラダーリリースタイプ", "data": { @@ -22,7 +16,7 @@ "label": "平日を隠す" }, "showUnmonitored": { - "label": "" + "label": "監視されていない項目を表示する" }, "fontSize": { "label": "文字サイズ", diff --git a/public/locales/ja/modules/dns-hole-controls.json b/public/locales/ja/modules/dns-hole-controls.json index 89d433f7d..2e79b9cff 100644 --- a/public/locales/ja/modules/dns-hole-controls.json +++ b/public/locales/ja/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNSホールコントロール", - "description": "ダッシュボードからPiHoleまたはAdGuardをコントロールする" + "description": "ダッシュボードからPiHoleまたはAdGuardをコントロールする", + "settings": { + "title": "DNSホールコントロールの設定", + "showToggleAllButtons": { + "label": "すべての有効/無効」ボタンを表示する" + } + }, + "errors": { + "general": { + "title": "DNSホールが見つからない", + "text": "DNSホールへの接続に問題が発生しました。設定/統合を確認してください。" + } + } } } \ No newline at end of file diff --git a/public/locales/ja/modules/dns-hole-summary.json b/public/locales/ja/modules/dns-hole-summary.json index cbd09f33a..a7824956a 100644 --- a/public/locales/ja/modules/dns-hole-summary.json +++ b/public/locales/ja/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "アドリスト上のドメイン", "queriesToday": "今日のクエリ", - "queriesBlockedTodayPercentage": "今日のブロック", - "queriesBlockedToday": "今日のブロック" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/ja/modules/media-requests-list.json b/public/locales/ja/modules/media-requests-list.json index e96621f6b..33417740e 100644 --- a/public/locales/ja/modules/media-requests-list.json +++ b/public/locales/ja/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "リンクを外部ホストに置き換える" }, "openInNewTab": { - "label": "" + "label": "リンクを新しいタブで開く" } } }, "noRequests": "リクエストが見つかりません。アプリが正しく設定されているか確認してください。", - "pending": "{{countPendingApproval}} リクエストが承認待ちです。", - "nonePending": "現在保留中の承認はありません。準備完了です!", "state": { "approved": "承認済み", "pendingApproval": "承認待ち", diff --git a/public/locales/ja/modules/media-requests-stats.json b/public/locales/ja/modules/media-requests-stats.json index 47470dc3e..9ab3ea6c3 100644 --- a/public/locales/ja/modules/media-requests-stats.json +++ b/public/locales/ja/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "リンクを外部ホストに置き換える" }, "openInNewTab": { - "label": "" + "label": "リンクを新しいタブで開く" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "メディア統計", + "pending": "承認待ち", + "tvRequests": "テレビのリクエスト", + "movieRequests": "映画のリクエスト", + "approved": "すでに承認済み", + "totalRequests": "合計" }, "userStats": { - "title": "", - "requests": "" + "title": "トップユーザー", + "requests": "リクエスト: {{number}}" } } diff --git a/public/locales/ja/modules/notebook.json b/public/locales/ja/modules/notebook.json index 12cf6f028..c0c8ca301 100644 --- a/public/locales/ja/modules/notebook.json +++ b/public/locales/ja/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "マークダウンを書くのに役立つツールバーを表示する" }, + "allowReadOnlyCheck": { + "label": "" + }, "content": { "label": "ノートの内容" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/ja/modules/rss.json b/public/locales/ja/modules/rss.json index 74eb33d1f..bc6a57ef5 100644 --- a/public/locales/ja/modules/rss.json +++ b/public/locales/ja/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSSウィジェット", - "description": "", + "description": "rssウィジェットを使うと、ダッシュボードにRSSフィードを表示できます。", "settings": { "title": "RSSウィジェットの設定", "rssFeedUrl": { diff --git a/public/locales/ja/modules/torrents-status.json b/public/locales/ja/modules/torrents-status.json index 84b4f52e4..b8e52d1c3 100644 --- a/public/locales/ja/modules/torrents-status.json +++ b/public/locales/ja/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "完了したトレントを表示する" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "古くなったトレントを表示する" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "ラベル一覧", "description": "「ホワイトリスト」にチェックされている場合、これはホワイトリストとして機能する。チェックされていない場合、これはブラックリストとなる。空の場合は何もしません。" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "エラー", - "lastUpdated": "最終更新 {{time}} 前" + "lastUpdated": "最終更新 {{time}} 前", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/ja/password-requirements.json b/public/locales/ja/password-requirements.json new file mode 100644 index 000000000..5cfa149f1 --- /dev/null +++ b/public/locales/ja/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "番号を含む", + "lowercase": "小文字を含む", + "uppercase": "大文字を含む", + "special": "特殊文字を含む", + "length": "少なくとも {{count}}。" +} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/access.json b/public/locales/ja/settings/customization/access.json new file mode 100644 index 000000000..c166babe1 --- /dev/null +++ b/public/locales/ja/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "匿名を許可する", + "description": "ログインしていないユーザーにボードの閲覧を許可する" + } +} \ No newline at end of file diff --git a/public/locales/ja/settings/customization/general.json b/public/locales/ja/settings/customization/general.json index 94235df41..69ea1b592 100644 --- a/public/locales/ja/settings/customization/general.json +++ b/public/locales/ja/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "アクセシビリティ", "description": "障害のあるユーザーのためのHomarr設定" + }, + "access": { + "name": "", + "description": "ボードにアクセスできる人を設定する" } } } diff --git a/public/locales/ja/settings/customization/page-appearance.json b/public/locales/ja/settings/customization/page-appearance.json index c9c6dbbd1..c61693067 100644 --- a/public/locales/ja/settings/customization/page-appearance.json +++ b/public/locales/ja/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "さらに、CSS を使用してダッシュボードをカスタマイズします。経験豊富なユーザーにのみお勧めします。", "placeholder": "カスタムCSSは最後に適用されます", "applying": "CSSを適用中..." - }, - "buttons": { - "submit": "送信" } -} +} \ No newline at end of file diff --git a/public/locales/ja/settings/general/cache-buttons.json b/public/locales/ja/settings/general/cache-buttons.json index 685994c48..2f2f30c57 100644 --- a/public/locales/ja/settings/general/cache-buttons.json +++ b/public/locales/ja/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "キャッシュ・クリーニング", "selector": { - "label": "", + "label": "クリアするキャッシュを選択する", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Pingクエリ", + "repositoryIcons": "リモート/ローカル・アイコン", + "calendar&medias": "カレンダーからのメディア", + "weather": "気象データ" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "キャッシュ・クリア", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "すべてのキャッシュを消去する", + "notificationMessage": "すべてのキャッシュがクリアされました" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "選択したクエリを消去する", + "notificationMessageSingle": "{{value}} のキャッシュがクリアされました。", + "notificationMessageMulti": "{{values}} のキャッシュがクリアされた。" } } } \ No newline at end of file diff --git a/public/locales/ja/settings/general/edit-mode-toggle.json b/public/locales/ja/settings/general/edit-mode-toggle.json index d0ba31b6c..dcbd0fbfd 100644 --- a/public/locales/ja/settings/general/edit-mode-toggle.json +++ b/public/locales/ja/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "編集モードの切り替え", + "enable": "編集モードを有効にする", + "disable": "編集モードを無効にする" }, "form": { - "label": "", - "message": "", + "label": "パスワードの編集", + "message": "編集モードを切り替えるには、 EDIT_MODE_PASSWORD という環境変数に入力したパスワードを入力する必要があります。これが設定されていない場合、編集モードのオンとオフを切り替えることはできません。", "submit": "送信" }, "notification": { "success": { - "title": "", - "message": "" + "title": "成功", + "message": "編集モードの切り替えに成功。" }, "error": { "title": "エラー", - "message": "" + "message": "編集モードの切り替えに失敗しました。" } } } \ No newline at end of file diff --git a/public/locales/ja/settings/general/search-engine.json b/public/locales/ja/settings/general/search-engine.json index 970cc5195..eaeee94fd 100644 --- a/public/locales/ja/settings/general/search-engine.json +++ b/public/locales/ja/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "検索エンジン", "configurationName": "検索エンジンの設定", - "custom": "", + "custom": "カスタム", "tips": { "generalTip": "使用できる複数のプレフィックスがあります! クエリの前にこれらを追加すると、結果が絞り込まれます。 !s (Web), !t (Torrents), !y (YouTube), そして !m (Media).", "placeholderTip": "%s は、クエリのプレースホルダとして使用することができます。" diff --git a/public/locales/ja/tools/docker.json b/public/locales/ja/tools/docker.json new file mode 100644 index 000000000..2aa379d71 --- /dev/null +++ b/public/locales/ja/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "HomarrインスタンスにDockerが設定されていないか、コンテナの取得に失敗しています。統合の設定方法についてはドキュメントを確認してください。" + } + }, + "modals": { + "selectBoard": { + "title": "ボードを選ぶ", + "text": "選択したDockerコンテナ用のアプリを追加するボードを選択する。", + "form": { + "board": { + "label": "ボード" + }, + "submit": "アプリの追加" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "ボードにアプリを追加", + "message": "選択したDockerコンテナ用のアプリがボードに追加された。" + }, + "error": { + "title": "ボードへのアプリの追加に失敗", + "message": "選択したDockerコンテナ用のアプリをボードに追加できませんでした。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/user/preferences.json b/public/locales/ja/user/preferences.json new file mode 100644 index 000000000..19b3fd358 --- /dev/null +++ b/public/locales/ja/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "好み", + "pageTitle": "あなたの好み", + "boards": { + "defaultBoard": { + "label": "デフォルト・ボード" + } + }, + "accessibility": { + "title": "アクセシビリティ", + "disablePulse": { + "label": "Pingパルスを無効にする", + "description": "デフォルトでは、HomarrのPingインジケータはパルスを発生させます。これは刺激的な可能性があります。このスライダーはアニメーションを無効にします" + }, + "replaceIconsWithDots": { + "label": "Pingのドットをアイコンに置き換える", + "description": "色覚障害のユーザーの場合、ping点が認識できない可能性があります。これはインジケータをアイコンに置き換えます。" + } + }, + "localization": { + "language": { + "label": "言語" + }, + "firstDayOfWeek": { + "label": "週の初日", + "options": { + "monday": "月曜日", + "saturday": "土曜日", + "sunday": "日曜日" + } + } + }, + "searchEngine": { + "title": "検索エンジン", + "custom": "カスタム", + "newTab": { + "label": "検索結果を新しいタブで開く" + }, + "autoFocus": { + "label": "ページロード時に検索バーをフォーカスする。", + "description": "これにより、掲示板のページに移動すると、自動的に検索バーがフォーカスされます。デスクトップデバイスでのみ機能します。" + }, + "template": { + "label": "クエリURL", + "description": "%s 、クエリーのプレースホルダーとして使用する。" + } + } +} \ No newline at end of file diff --git a/public/locales/ja/zod.json b/public/locales/ja/zod.json new file mode 100644 index 000000000..c91c5d6ee --- /dev/null +++ b/public/locales/ja/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "このフィールドは無効です。", + "required": "このフィールドは必須です", + "string": { + "startsWith": "このフィールドは {{startsWith}}で始まらなければならない。", + "endsWith": "このフィールドの末尾は {{endsWith}}でなければならない。", + "includes": "このフィールドには {{includes}}を含めなければならない。" + }, + "tooSmall": { + "string": "このフィールドは {{minimum}} 文字以上で入力してください。", + "number": "このフィールドは {{minimum}}以上でなければならない。" + }, + "tooBig": { + "string": "このフィールドは {{maximum}} 文字以内で入力してください。", + "number": "このフィールドは {{maximum}}以下でなければならない。" + }, + "custom": { + "passwordMatch": "パスワードは一致しなければならない" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/authentication/invite.json b/public/locales/ko/authentication/invite.json new file mode 100644 index 000000000..4b590510c --- /dev/null +++ b/public/locales/ko/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "계정 만들기", + "title": "계정 만들기", + "text": "아래에 자격 증명을 정의해 주세요.", + "form": { + "fields": { + "username": { + "label": "사용자 이름" + }, + "password": { + "label": "비밀번호" + }, + "passwordConfirmation": { + "label": "비밀번호 확인" + } + }, + "buttons": { + "submit": "계정 만들기" + } + }, + "notifications": { + "loading": { + "title": "계정 만들기", + "text": "잠시만 기다려주세요." + }, + "success": { + "title": "계정 생성", + "text": "계정이 성공적으로 생성되었습니다." + }, + "error": { + "title": "오류", + "text": "문제가 발생하여 다음 오류가 발생했습니다: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/authentication/login.json b/public/locales/ko/authentication/login.json index 4a484293f..e1b927330 100644 --- a/public/locales/ko/authentication/login.json +++ b/public/locales/ko/authentication/login.json @@ -1,27 +1,20 @@ { - "title": "", - "text": "", + "metaTitle": "로그인", + "title": "돌아온 것을 환영합니다!", + "text": "자격 증명을 입력하세요.", "form": { "fields": { + "username": { + "label": "사용자 이름" + }, "password": { - "label": "비밀번호", - "placeholder": "" + "label": "비밀번호" } }, "buttons": { - "submit": "" - } + "submit": "로그인" + }, + "afterLoginRedirection": "로그인 후 {{url}}으로 리디렉션됩니다." }, - "notifications": { - "checking": { - "title": "", - "message": "" - }, - "correct": { - "title": "" - }, - "wrong": { - "title": "" - } - } -} + "alert": "자격 증명이 잘못되었거나 이 계정이 존재하지 않습니다. 다시 시도해 주세요." +} \ No newline at end of file diff --git a/public/locales/ko/boards/common.json b/public/locales/ko/boards/common.json new file mode 100644 index 000000000..8e8c286e6 --- /dev/null +++ b/public/locales/ko/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "보드 사용자 지정" + } +} \ No newline at end of file diff --git a/public/locales/ko/boards/customize.json b/public/locales/ko/boards/customize.json new file mode 100644 index 000000000..799e9fd28 --- /dev/null +++ b/public/locales/ko/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} 보드 사용자 지정", + "pageTitle": "{{name}} 보드에 대한 사용자 지정", + "backToBoard": "보드로 돌아가기", + "settings": { + "appearance": { + "primaryColor": "기본 색상", + "secondaryColor": "보조 색상" + } + }, + "save": { + "button": "변경 사항 저장", + "note": "저장되지 않은 변경 사항이 있으니 주의하세요!" + }, + "notifications": { + "pending": { + "title": "사용자 지정 저장", + "message": "사용자 지정을 저장하는 동안 잠시만 기다려주세요." + }, + "success": { + "title": "사용자 지정 저장", + "message": "사용자 지정이 성공적으로 저장되었습니다." + }, + "error": { + "title": "오류", + "message": "변경 사항을 저장할 수 없습니다." + } + } +} \ No newline at end of file diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index d8ceab42f..387c33c16 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -1,26 +1,32 @@ { "save": "저장", - "about": "", + "apply": "", + "insert": "", + "about": "정보", "cancel": "취소", - "close": "", + "close": "닫기", + "back": "뒤로", "delete": "삭제", - "ok": "", + "ok": "확인", "edit": "수정", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", - "version": "", - "changePosition": "", + "next": "다음", + "previous": "이전", + "confirm": "확인", + "enabled": "활성화됨", + "disabled": "장애인", + "enableAll": "모두 사용", + "disableAll": "모두 비활성화", + "version": "버전", + "changePosition": "위치 변경", "remove": "제거", - "removeConfirm": "", - "createItem": "", + "removeConfirm": "{{item}}를 삭제하시겠습니까?", + "createItem": "+ create {{item}}", "sections": { "settings": "설정", "dangerZone": "위험한 설정" }, "secrets": { - "apiKey": "", + "apiKey": "API 키", "username": "사용자 이름", "password": "비밀번호" }, @@ -32,9 +38,18 @@ }, "loading": "불러오는 중…", "breakPoints": { - "small": "", - "medium": "", - "large": "" + "small": "작은", + "medium": "medium", + "large": "큰" }, - "seeMore": "" + "seeMore": "더 보기...", + "position": { + "left": "왼쪽", + "center": "", + "right": "오른쪽" + }, + "attributes": { + "width": "너비", + "height": "높이" + } } \ No newline at end of file diff --git a/public/locales/ko/layout/common.json b/public/locales/ko/layout/common.json index 4f4c4e6b4..8aa9fead1 100644 --- a/public/locales/ko/layout/common.json +++ b/public/locales/ko/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "팝업 차단", + "text": "브라우저가 Homarr의 API 액세스를 차단했습니다. 이는 대부분 애드블로커 또는 거부된 권한으로 인해 발생합니다. Homarr는 자동으로 권한을 요청할 수 없습니다.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "URL 옆에 있는 아이콘을 클릭하고 권한을 확인합니다. 팝업 및 창 허용", + "adBlockers": "브라우저에서 광고 차단기 및 보안 도구 비활성화하기", + "otherBrowser": "다른 브라우저를 사용해 보세요." } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "새 탭에서 모두 열기" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "위로 이동", + "moveDown": "아래로 이동", + "addCategory": "카테고리 추가 {{location}}", + "addAbove": "위", + "addBelow": "아래" } } \ 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 82d03e7fb..5f5e685e0 100644 --- a/public/locales/ko/layout/element-selector/selector.json +++ b/public/locales/ko/layout/element-selector/selector.json @@ -1,25 +1,25 @@ { "modal": { - "title": "", - "text": "" + "title": "새 타일 추가", + "text": "타일은 Homarr의 주요 요소입니다. 타일은 앱과 기타 정보를 표시하는 데 사용됩니다. 원하는 만큼 타일을 추가할 수 있습니다." }, - "widgetDescription": "", - "goBack": "", + "widgetDescription": "위젯은 앱과 상호 작용하여 애플리케이션을 더 잘 제어할 수 있도록 도와줍니다. 일반적으로 사용하기 전에 추가 구성이 필요합니다.", + "goBack": "이전 단계로 돌아가기", "actionIcon": { - "tooltip": "" + "tooltip": "타일 추가" }, - "apps": "", + "apps": "앱", "app": { - "defaultName": "" + "defaultName": "앱" }, - "widgets": "", - "categories": "", + "widgets": "위젯", + "categories": "카테고리", "category": { - "newName": "", - "defaultName": "", + "newName": "새 카테고리 이름", + "defaultName": "새 카테고리", "created": { - "title": "", - "message": "" + "title": "카테고리 생성", + "message": "\"{{name}}\" 카테고리가 생성되었습니다." } } } diff --git a/public/locales/ko/layout/errors/access-denied.json b/public/locales/ko/layout/errors/access-denied.json new file mode 100644 index 000000000..fef496e8f --- /dev/null +++ b/public/locales/ko/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "액세스 거부됨", + "text": "이 페이지에 액세스할 수 있는 충분한 권한이 없습니다. 이 문제가 의도적인 것이 아니라고 생각되면 관리자에게 문의하시기 바랍니다.", + "switchAccount": "다른 계정으로 전환" +} \ No newline at end of file diff --git a/public/locales/ko/layout/errors/not-found.json b/public/locales/ko/layout/errors/not-found.json index 9e26dfeeb..05c15d4e6 100644 --- a/public/locales/ko/layout/errors/not-found.json +++ b/public/locales/ko/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "페이지를 찾을 수 없습니다.", + "text": "이 페이지를 찾을 수 없습니다. 이 페이지의 URL이 만료되었거나 URL이 유효하지 않거나 이 리소스에 액세스하는 데 필요한 권한이 없습니다.", + "button": "홈으로 이동" +} \ No newline at end of file diff --git a/public/locales/ko/layout/header.json b/public/locales/ko/layout/header.json new file mode 100644 index 000000000..5eccda418 --- /dev/null +++ b/public/locales/ko/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "이 기능은 Homarr의 실험적인 기능입니다. 문제가 있으면 GitHub 또는 Discord으로 신고해 주세요." + }, + "search": { + "label": "검색", + "engines": { + "web": "웹에서 {{query}} 검색", + "youtube": "YouTube에서 {{query}} 검색", + "torrent": "{{query}} 토렌트 검색", + "movie": "{{app}}에서 {{query}} 검색" + } + }, + "actions": { + "avatar": { + "switchTheme": "테마 전환", + "preferences": "사용자 기본 설정", + "defaultBoard": "기본 대시보드", + "manage": "관리", + "logout": "{{username}}에서 로그아웃", + "login": "로그인" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{search}}에 대한 상위 {{count}} 결과" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/layout/header/actions/toggle-edit-mode.json b/public/locales/ko/layout/header/actions/toggle-edit-mode.json index 4d1ebe1d9..dd06b2004 100644 --- a/public/locales/ko/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/ko/layout/header/actions/toggle-edit-mode.json @@ -1,12 +1,12 @@ { - "description": "", + "description": "편집 모드에서는 타일을 조정하고 앱을 구성할 수 있습니다. 변경 사항은 편집 모드를 종료할 때까지 저장되지 않습니다.", "button": { - "disabled": "", - "enabled": "" + "disabled": "편집 모드 시작", + "enabled": "종료 및 저장" }, "popover": { - "title": "", - "text": "" + "title": "편집 모드는 다음에 대해 활성화됩니다. <1>{{size}} 크기", + "text": "이제 앱을 조정하고 구성할 수 있습니다. 변경 사항은 편집 모드를 종료할 때까지 저장되지 않습니다." }, - "unloadEvent": "" + "unloadEvent": "편집 모드를 종료하여 변경 사항을 저장합니다." } diff --git a/public/locales/ko/layout/manage.json b/public/locales/ko/layout/manage.json new file mode 100644 index 000000000..38778e6d3 --- /dev/null +++ b/public/locales/ko/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "홈" + }, + "boards": { + "title": "보드" + }, + "users": { + "title": "사용자", + "items": { + "manage": "관리", + "invites": "초대" + } + }, + "help": { + "title": "도움말", + "items": { + "documentation": "문서", + "report": "문제/버그 신고", + "discord": "커뮤니티 불화", + "contribute": "기여하기" + } + }, + "tools": { + "title": "도구", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "정보" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/layout/mobile/drawer.json b/public/locales/ko/layout/mobile/drawer.json index 0967ef424..6196c3df4 100644 --- a/public/locales/ko/layout/mobile/drawer.json +++ b/public/locales/ko/layout/mobile/drawer.json @@ -1 +1,3 @@ -{} +{ + "title": "{{position}} 사이드바" +} diff --git a/public/locales/ko/layout/modals/about.json b/public/locales/ko/layout/modals/about.json index 1be064ea0..a49cf7ecb 100644 --- a/public/locales/ko/layout/modals/about.json +++ b/public/locales/ko/layout/modals/about.json @@ -1,29 +1,30 @@ { - "description": "", - "contact": "", - "addToDashboard": "", - "tip": "", - "key": "", - "action": "", - "keybinds": "", - "documentation": "", + "description": "Homarr는 세련된, 모던한 대시보드로 모든 앱과 서비스를 손끝에서 관리할 수 있습니다. Homarr를 사용하면 모든 것을 한 곳에서 편리하게 액세스하고 제어할 수 있습니다. Homarr는 추가한 앱과 원활하게 통합되어 귀중한 정보를 제공하고 완벽한 제어 기능을 제공합니다. 설치는 매우 간단하며 Homarr는 다양한 배포 방법을 지원합니다.", + "addToDashboard": "대시보드에 추가", + "tip": "Mod는 수정자 키를 의미하며, Ctrl 및 Command/Super/Windows 키입니다.", + "key": "바로 가기 키", + "action": "액션", + "keybinds": "키 바인드", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "라이트/어둠 모드 전환", + "focusSearchBar": "검색창에 집중", + "openDocker": "도커 위젯 열기", + "toggleEdit": "편집 모드 전환" }, "metrics": { - "configurationSchemaVersion": "", - "configurationsCount": "", - "version": "", - "nodeEnvironment": "", - "i18n": "", - "locales": "", - "experimental_disableEditMode": "" + "configurationSchemaVersion": "구성 스키마 버전", + "version": "버전", + "nodeEnvironment": "노드 환경", + "i18n": "로드된 I18n 번역 네임스페이스", + "locales": "구성된 I18n 로캘", + "experimental_disableEditMode": "실험용: 편집 모드 비활성화" }, "version": { - "new": "", - "dropdown": "" + "new": "신규: {{newVersion}}", + "dropdown": "버전 {{newVersion}} 사용 가능! 현재 버전은 {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/ko/layout/modals/add-app.json b/public/locales/ko/layout/modals/add-app.json index b33ae7e2e..da944cb0d 100644 --- a/public/locales/ko/layout/modals/add-app.json +++ b/public/locales/ko/layout/modals/add-app.json @@ -1,114 +1,128 @@ { "tabs": { - "general": "", - "behaviour": "", + "general": "일반", + "behaviour": "행동", "network": "네트워크", - "appearance": "", - "integration": "" + "appearance": "모양", + "integration": "통합" }, "general": { "appname": { - "label": "", - "description": "" + "label": "앱 이름", + "description": "대시보드에 앱을 표시하는 데 사용됩니다." }, "internalAddress": { - "label": "", - "description": "" + "label": "내부 주소", + "description": "앱의 내부 IP 주소입니다.", + "troubleshoot": { + "label": "문제가 있으신가요?", + "header": "다음은 자주 발생하는 실수 및 문제 해결 목록입니다:", + "lines": { + "nothingAfterPort": "모든 경우는 아니더라도 대부분의 경우 포트 뒤에 경로를 입력하지 않아야 합니다. (피홀의 경우 '/admin', 플렉스의 경우 '/web'도 마찬가지입니다.)", + "protocolCheck": "항상 URL 앞에 http 또는 https가 오는지 확인하고 올바른 URL을 사용하고 있는지 확인하세요.", + "preferIP": "통신하려는 머신이나 컨테이너의 직접 IP를 사용하는 것이 좋습니다.", + "enablePings": "핑을 활성화하여 IP가 올바른지 확인합니다. 보드 사용자 지정 -> 레이아웃 -> 핑 활성화로 이동합니다. 앱 타일에 작은 빨간색 또는 녹색 말풍선이 나타나고 마우스 커서를 가져가면 응답 코드가 표시됩니다(대부분의 경우 코드 200이 포함된 녹색 말풍선이 예상됩니다).", + "wget": "homarr가 다른 앱과 통신할 수 있는지 확인하려면 앱의 IP:포트에 wget/curl/ping을 수행하세요.", + "iframe": "아이프레임의 경우, 항상 Homarr와 동일한 프로토콜(http/s)을 사용해야 합니다.", + "clearCache": "일부 정보는 캐시에 등록되어 있으므로 Homarr의 일반 옵션에서 캐시를 지우지 않으면 통합이 작동하지 않을 수 있습니다." + }, + "footer": "자세한 문제 해결 방법은 {{discord}}으로 문의하세요." + } }, "externalAddress": { - "label": "", - "description": "" + "label": "외부 주소", + "description": "앱을 클릭할 때 열리는 URL입니다." } }, "behaviour": { "isOpeningNewTab": { - "label": "", - "description": "" + "label": "새 탭에서 열기", + "description": "현재 탭이 아닌 새 탭에서 앱을 엽니다." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "애플리케이션 설명", + "description": "입력한 텍스트는 앱 위로 마우스를 가져가면 표시됩니다.\r\n이 텍스트를 사용하여 사용자에게 앱에 대한 자세한 정보를 제공하거나 아무것도 입력하지 않도록 비워둘 수 있습니다." }, - "customProtocolWarning": "" + "customProtocolWarning": "비표준 프로토콜 사용. 이 경우 사전 설치된 애플리케이션이 필요할 수 있으며 보안 위험이 발생할 수 있습니다. 주소가 안전하고 신뢰할 수 있는지 확인하세요." }, "network": { "statusChecker": { - "label": "", - "description": "" + "label": "상태 확인기", + "description": "간단한 HTTP(S) 요청을 사용하여 앱이 온라인 상태인지 확인합니다." }, "statusCodes": { - "label": "", - "description": "" + "label": "HTTP 상태 코드", + "description": "온라인 상태인 것으로 간주되는 HTTP 상태 코드입니다." } }, "appearance": { "icon": { - "label": "", - "description": "", + "label": "앱 아이콘", + "description": "입력을 시작하여 아이콘을 찾습니다. 이미지 URL을 붙여넣어 사용자 지정 아이콘을 사용할 수도 있습니다.", "autocomplete": { - "title": "", - "text": "" + "title": "결과를 찾을 수 없습니다.", + "text": "좀 더 구체적인 검색어를 사용해 보세요. 원하는 아이콘을 찾을 수 없는 경우 위의 이미지 URL을 붙여넣어 사용자 지정 아이콘을 만듭니다." }, "noItems": { - "title": "", - "text": "" + "title": "외부 아이콘 로드", + "text": "몇 초 정도 걸릴 수 있습니다." } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "앱 이름 글꼴 크기", + "description": "타일에 앱 이름이 표시될 때의 글꼴 크기를 설정합니다." }, "appNameStatus": { - "label": "", - "description": "", + "label": "앱 이름 상태", + "description": "제목을 표시할 위치를 선택할 수 있습니다.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "타일에만 제목 표시", + "hover": "툴팁 마우스오버 시 제목만 표시", + "hidden": "전혀 표시하지 않음" } }, "positionAppName": { - "label": "", - "description": "", + "label": "앱 이름 위치", + "description": "아이콘을 기준으로 한 앱 이름의 위치입니다.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Top", + "right": "오른쪽", + "bottom": "하단", + "left": "왼쪽" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "앱 이름 라인 클램프", + "description": "제목이 최대로 들어갈 수 있는 줄 수를 정의합니다. 무제한으로 설정하려면 0으로 설정합니다." } }, "integration": { "type": { - "label": "", - "description": "", - "placeholder": "", - "defined": "", - "undefined": "", - "public": "", - "private": "", - "explanationPrivate": "", - "explanationPublic": "" + "label": "통합 구성", + "description": "앱에 연결하는 데 사용되는 통합 구성입니다.", + "placeholder": "통합 선택", + "defined": "정의됨", + "undefined": "정의되지 않음", + "public": "공개", + "private": "비공개", + "explanationPrivate": "개인 비밀은 한 번만 서버로 전송됩니다. 브라우저에서 페이지를 새로고침하면 다시는 전송되지 않습니다.", + "explanationPublic": "공개 비밀은 항상 클라이언트에 전송되며 API를 통해 액세스할 수 있습니다. 사용자 이름, 비밀번호, 토큰, 인증서 등과 같은 기밀 값을 포함해서는 안 됩니다!" }, "secrets": { - "description": "", - "warning": "", - "clear": "", - "save": "", - "update": "" + "description": "비밀번호를 업데이트하려면 값을 입력하고 저장 버튼을 클릭합니다. 비밀번호를 제거하려면 지우기 버튼을 사용합니다.", + "warning": "자격 증명은 통합을 위한 액세스 권한으로 사용되며, 다른 사람과 절대 공유해서는 안 됩니다. Homarr 팀은 절대로 자격 증명을 요구하지 않습니다. 비밀을 안전하게 저장하고 관리하세요.", + "clear": "비밀 지우기", + "save": "비밀 저장", + "update": "비밀 업데이트" } }, "validation": { - "popover": "", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "popover": "양식에 잘못된 데이터가 포함되어 있습니다. 따라서 저장할 수 없습니다. 모든 문제를 해결한 후 이 버튼을 다시 클릭하여 변경 사항을 저장하세요.", + "name": "이름은 필수 입력 사항입니다.", + "noUrl": "URL은 필수입니다.", + "invalidUrl": "값이 유효한 URL이 아닙니다.", + "noIconUrl": "이 필드는 필수 입력 사항입니다.", + "noExternalUri": "외부 URI가 필요합니다.", + "invalidExternalUri": "외부 URI가 유효한 URI가 아닙니다." } } diff --git a/public/locales/ko/layout/modals/change-position.json b/public/locales/ko/layout/modals/change-position.json index 9e26dfeeb..2917fcc85 100644 --- a/public/locales/ko/layout/modals/change-position.json +++ b/public/locales/ko/layout/modals/change-position.json @@ -1 +1,8 @@ -{} \ No newline at end of file +{ + "xPosition": "X축 위치", + "width": "너비", + "height": "높이", + "yPosition": "Y축 위치", + "zeroOrHigher": "0 이상", + "betweenXandY": "{{min}} ~ {{max}}사이" +} \ No newline at end of file diff --git a/public/locales/ko/manage/boards.json b/public/locales/ko/manage/boards.json new file mode 100644 index 000000000..57d87e33b --- /dev/null +++ b/public/locales/ko/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "보드", + "pageTitle": "보드", + "cards": { + "statistics": { + "apps": "앱", + "widgets": "위젯", + "categories": "카테고리" + }, + "buttons": { + "view": "게시판 보기" + }, + "menu": { + "setAsDefault": "기본 보드로 설정", + "delete": { + "label": "영구 삭제", + "disabled": "이전 Homarr 구성 요소에서는 기본 구성의 삭제를 허용하지 않기 때문에 삭제가 비활성화되었습니다. 향후 삭제가 가능해질 예정입니다." + } + }, + "badges": { + "fileSystem": "파일 시스템", + "default": "기본값" + } + }, + "buttons": { + "create": "새 보드 만들기" + }, + "modals": { + "delete": { + "title": "게시판 삭제", + "text": "이 게시판을 삭제하시겠습니까? 이 작업은 취소할 수 없으며 데이터가 영구적으로 손실됩니다." + }, + "create": { + "title": "보드 만들기", + "text": "게시판이 생성된 후에는 이름을 변경할 수 없습니다.", + "form": { + "name": { + "label": "이름" + }, + "submit": "만들기" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/index.json b/public/locales/ko/manage/index.json new file mode 100644 index 000000000..487782be0 --- /dev/null +++ b/public/locales/ko/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "관리", + "hero": { + "title": "환영합니다, {{username}}", + "fallbackUsername": "익명", + "subtitle": "애플리케이션 허브에 오신 것을 환영합니다. 정리, 최적화, 정복!" + }, + "quickActions": { + "title": "빠른 작업", + "boards": { + "title": "보드", + "subtitle": "보드 만들기 및 관리" + }, + "inviteUsers": { + "title": "새 사용자 초대하기", + "subtitle": "등록 초대장 생성 및 보내기" + }, + "manageUsers": { + "title": "사용자 관리", + "subtitle": "사용자 삭제 및 관리" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/users.json b/public/locales/ko/manage/users.json new file mode 100644 index 000000000..901a06214 --- /dev/null +++ b/public/locales/ko/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "사용자", + "pageTitle": "사용자 관리", + "text": "사용자를 사용하여 대시보드를 편집할 수 있는 사용자를 구성할 수 있습니다. 향후 Homarr 버전에서는 권한과 보드를 더욱 세밀하게 제어할 수 있습니다.", + "buttons": { + "create": "만들기" + }, + "table": { + "header": { + "user": "사용자" + } + }, + "tooltips": { + "deleteUser": "사용자 삭제", + "demoteAdmin": "관리자 강등", + "promoteToAdmin": "관리자로 승격" + }, + "modals": { + "delete": { + "title": "사용자 삭제 {{name}}", + "text": "{{name}}사용자를 삭제하시겠습니까? 이렇게 하면 이 계정과 관련된 데이터는 삭제되지만 이 사용자가 만든 대시보드는 삭제되지 않습니다." + }, + "change-role": { + "promote": { + "title": "{{name}} 사용자를 관리자로 승격", + "text": "{{name}} 사용자를 관리자로 승격하시겠습니까? 이렇게 하면 해당 사용자가 Homarr 인스턴스의 모든 리소스에 액세스할 수 있습니다." + }, + "demote": { + "title": "{{name}} 사용자를 사용자로 강등", + "text": "{{name}} 사용자를 사용자로 강등하시겠습니까? 이렇게 하면 Homarr 인스턴스의 모든 리소스에 대한 사용자의 액세스 권한이 제거됩니다." + }, + "confirm": "확인" + } + }, + "searchDoesntMatch": "검색한 항목과 일치하는 항목이 없습니다. 필터를 조정해 주세요." +} \ No newline at end of file diff --git a/public/locales/ko/manage/users/create.json b/public/locales/ko/manage/users/create.json new file mode 100644 index 000000000..907777f74 --- /dev/null +++ b/public/locales/ko/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "사용자 만들기", + "steps": { + "account": { + "title": "첫 번째 단계", + "text": "계정 만들기", + "username": { + "label": "사용자 이름" + }, + "email": { + "label": "이메일" + } + }, + "security": { + "title": "두 번째 단계", + "text": "비밀번호", + "password": { + "label": "비밀번호" + } + }, + "finish": { + "title": "확인", + "text": "데이터베이스에 저장", + "card": { + "title": "입력 내용 검토", + "text": "데이터를 데이터베이스에 제출하면 사용자가 로그인할 수 있습니다. 이 사용자를 데이터베이스에 저장하고 로그인을 활성화하시겠습니까?" + }, + "table": { + "header": { + "property": "속성", + "value": "가치", + "username": "사용자 이름", + "email": "이메일", + "password": "비밀번호" + }, + "notSet": "설정되지 않음", + "valid": "유효" + }, + "failed": "사용자 생성에 실패했습니다: {{error}}" + }, + "completed": { + "alert": { + "title": "사용자가 생성되었습니다.", + "text": "데이터베이스에 사용자가 생성되었습니다. 이제 로그인할 수 있습니다." + } + } + }, + "buttons": { + "generateRandomPassword": "무작위 생성", + "createAnother": "다른 만들기" + } +} \ No newline at end of file diff --git a/public/locales/ko/manage/users/invites.json b/public/locales/ko/manage/users/invites.json new file mode 100644 index 000000000..27248b805 --- /dev/null +++ b/public/locales/ko/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "사용자 초대", + "pageTitle": "사용자 초대 관리", + "description": "초대를 사용하여 사용자를 Homarr 인스턴스로 초대할 수 있습니다. 초대는 특정 기간 동안만 유효하며 한 번만 사용할 수 있습니다. 만료는 생성 시 5분에서 12개월 사이여야 합니다.", + "button": { + "createInvite": "초대 만들기", + "deleteInvite": "초대 삭제" + }, + "table": { + "header": { + "id": "ID", + "creator": "크리에이터", + "expires": "만료", + "action": "작업" + }, + "data": { + "expiresAt": "만료됨 {{at}}", + "expiresIn": "{{in}}" + } + }, + "modals": { + "create": { + "title": "초대 만들기", + "description": "만료 후에는 초대가 더 이상 유효하지 않으며 초대를 받은 사람은 계정을 만들 수 없습니다.", + "form": { + "expires": "만료 날짜", + "submit": "만들기" + } + }, + "copy": { + "title": "초대장 복사", + "description": "초대가 생성되었습니다. 이 모달이 닫히면 이 링크를 더 이상 복사할 수 없습니다. 해당 사람을 더 이상 초대하고 싶지 않다면 언제든지 이 초대를 삭제할 수 있습니다.", + "invitationLink": "초대 링크", + "details": { + "id": "ID", + "token": "토큰" + }, + "button": { + "close": "복사 및 해제" + } + }, + "delete": { + "title": "초대 삭제", + "description": "이 초대를 삭제하시겠습니까? 이 링크를 받은 사용자는 더 이상 해당 링크를 사용하여 계정을 만들 수 없습니다." + } + }, + "noInvites": "아직 초대가 없습니다." +} \ No newline at end of file diff --git a/public/locales/ko/modules/bookmark.json b/public/locales/ko/modules/bookmark.json index d27de0168..7eee272c7 100644 --- a/public/locales/ko/modules/bookmark.json +++ b/public/locales/ko/modules/bookmark.json @@ -1,43 +1,43 @@ { "descriptor": { - "name": "", - "description": "", + "name": "북마크", + "description": "문자열 또는 링크의 정적 목록을 표시합니다.", "settings": { - "title": "", + "title": "북마크 설정", "name": { - "label": "", - "info": "" + "label": "위젯 제목", + "info": "제목을 숨기려면 비워 두세요." }, "items": { - "label": "" + "label": "항목" }, "layout": { - "label": "", + "label": "레이아웃", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "자동 그리드", + "horizontal": "수평", + "vertical": "세로" } } } }, "card": { "noneFound": { - "title": "", - "text": "" + "title": "북마크 목록 비어 있음", + "text": "편집 모드에서 이 목록에 새 항목을 추가합니다." } }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "길이는 {{shortest}} ~ {{longest}}사이여야 합니다.", + "invalidLink": "유효한 링크가 아닙니다.", + "errorMsg": "유효성 검사 오류가 발생하여 저장하지 못했습니다. 입력을 수정하세요." }, "name": "이름", - "url": "", - "newTab": "", - "hideHostname": "", - "hideIcon": "", + "url": "URL", + "newTab": "새 탭에서 열기", + "hideHostname": "호스트 이름 숨기기", + "hideIcon": "아이콘 숨기기", "delete": "삭제" } } diff --git a/public/locales/ko/modules/calendar.json b/public/locales/ko/modules/calendar.json index 858c62276..541c849d9 100644 --- a/public/locales/ko/modules/calendar.json +++ b/public/locales/ko/modules/calendar.json @@ -1,37 +1,31 @@ { "descriptor": { "name": "캘린더", - "description": "", + "description": "지원되는 통합에서 예정된 릴리스가 포함된 캘린더를 표시합니다.", "settings": { - "title": "", - "useSonarrv4": { - "label": "" - }, - "sundayStart": { - "label": "한 주의 시작을 일요일로 설정" - }, + "title": "캘린더 위젯 설정", "radarrReleaseType": { - "label": "", + "label": "레이더 릴리스 유형", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "영화관", + "physicalRelease": "물리적", + "digitalRelease": "디지털" } }, "hideWeekDays": { - "label": "" + "label": "요일 숨기기" }, "showUnmonitored": { - "label": "" + "label": "모니터링되지 않는 항목 표시" }, "fontSize": { - "label": "", + "label": "글꼴 크기", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "엑스트라 스몰", + "sm": "Small", + "md": "Medium", + "lg": "Large", + "xl": "엑스트라 라지" } } } diff --git a/public/locales/ko/modules/dashdot.json b/public/locales/ko/modules/dashdot.json index 9b243cf84..2f17239ee 100644 --- a/public/locales/ko/modules/dashdot.json +++ b/public/locales/ko/modules/dashdot.json @@ -1,81 +1,81 @@ { "descriptor": { "name": "Dash.", - "description": "", + "description": "외부 대시의 그래프를 표시합니다. Homarr 내부의 인스턴스입니다.", "settings": { - "title": "", + "title": "대시 설정 위젯", "dashName": { - "label": "" + "label": "Dash. 이름" }, "url": { "label": "Dash. 주소" }, "usePercentages": { - "label": "" + "label": "백분율 표시" }, "columns": { - "label": "" + "label": "열 표시" }, "graphHeight": { - "label": "" + "label": "그래프 높이" }, "graphsOrder": { - "label": "", + "label": "그래프(순서)", "storage": { "label": "저장소", "enabled": { - "label": "" + "label": "위젯에 표시" }, "span": { - "label": "" + "label": "열 스팬" }, "compactView": { - "label": "" + "label": "텍스트로 표시(압축)" }, "multiView": { - "label": "" + "label": "멀티 드라이브 보기로 표시" } }, "network": { "label": "네트워크", "enabled": { - "label": "" + "label": "위젯에 표시" }, "span": { - "label": "" + "label": "열 스팬" }, "compactView": { - "label": "" + "label": "텍스트로 표시(압축)" } }, "cpu": { "label": "CPU", "enabled": { - "label": "" + "label": "위젯에 표시" }, "span": { - "label": "" + "label": "열 스팬" }, "multiView": { - "label": "" + "label": "멀티코어 보기로 표시" } }, "ram": { - "label": "", + "label": "RAM", "enabled": { - "label": "" + "label": "위젯에 표시" }, "span": { - "label": "" + "label": "열 스팬" } }, "gpu": { "label": "GPU", "enabled": { - "label": "" + "label": "위젯에 표시" }, "span": { - "label": "" + "label": "열 스팬" } } } @@ -87,8 +87,8 @@ "noService": "Dash. 서비스를 찾을 수 없습니다. Homarr 대시보드에 추가하거나 모듈 옵션에서 Dash. URL을 설정해 주세요.", "noInformation": "Dash. 에서 정보를 얻을 수 없습니다. 최신 버전을 사용 중인가요?", "protocolDowngrade": { - "title": "", - "text": "" + "title": "프로토콜 다운그레이드 감지", + "text": "대시 인스턴스에 대한 연결이 HTTP를 사용하고 있습니다. 이는 보안상 위험합니다. HTTP는 암호화되지 않으며 공격자가 이 연결을 악용할 수 있기 때문입니다. 대시가 HTTPS를 사용하고 있는지 확인하거나 Homarr를 HTTP로 다운그레이드하세요(권장하지 않음)." } }, "graphs": { @@ -108,7 +108,7 @@ "title": "CPU" }, "ram": { - "title": "" + "title": "RAM" }, "gpu": { "title": "GPU" diff --git a/public/locales/ko/modules/date.json b/public/locales/ko/modules/date.json index 210b74fe2..3b6c17696 100644 --- a/public/locales/ko/modules/date.json +++ b/public/locales/ko/modules/date.json @@ -1,31 +1,31 @@ { "descriptor": { - "name": "", - "description": "", + "name": "날짜 및 시간", + "description": "현재 날짜와 시간을 표시합니다.", "settings": { - "title": "", + "title": "날짜 및 시간 위젯 설정", "display24HourFormat": { "label": "24시간제로 표시" }, "dateFormat": { - "label": "", + "label": "날짜 서식 지정", "data": { - "hide": "" + "hide": "날짜 숨기기" } }, "enableTimezone": { - "label": "" + "label": "사용자 지정 시간대 표시" }, "timezoneLocation": { - "label": "" + "label": "표준 시간대 위치" }, "titleState": { - "label": "", - "info": "", + "label": "도시 제목", + "info": "시간대 옵션을 활성화하면 도시 이름과 시간대 코드가 표시될 수 있습니다.
도시만 표시하거나 도시를 표시하지 않을 수도 있습니다.", "data": { - "both": "", - "city": "", - "none": "" + "both": "도시 및 표준 시간대", + "city": "도시 전용", + "none": "없음" } } } diff --git a/public/locales/ko/modules/dlspeed.json b/public/locales/ko/modules/dlspeed.json index 597f8e12b..3aeea94c1 100644 --- a/public/locales/ko/modules/dlspeed.json +++ b/public/locales/ko/modules/dlspeed.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "다운로드 속도", - "description": "" + "description": "지원되는 통합의 다운로드 및 업로드 속도를 표시합니다." }, "card": { "table": { diff --git a/public/locales/ko/modules/dns-hole-controls.json b/public/locales/ko/modules/dns-hole-controls.json index f8daba13b..05369de6b 100644 --- a/public/locales/ko/modules/dns-hole-controls.json +++ b/public/locales/ko/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "", - "description": "" + "name": "DNS 홀 제어", + "description": "대시보드에서 PiHole 또는 AdGuard를 제어하세요.", + "settings": { + "title": "DNS 홀 제어 설정", + "showToggleAllButtons": { + "label": "'모두 활성화/비활성화' 버튼 표시" + } + }, + "errors": { + "general": { + "title": "DNS 구멍을 찾을 수 없습니다.", + "text": "DNS 홀에 연결하는 동안 문제가 발생했습니다. 구성/연동을 확인하세요." + } + } } } \ No newline at end of file diff --git a/public/locales/ko/modules/dns-hole-summary.json b/public/locales/ko/modules/dns-hole-summary.json index a18a2c33d..ec06b3988 100644 --- a/public/locales/ko/modules/dns-hole-summary.json +++ b/public/locales/ko/modules/dns-hole-summary.json @@ -1,26 +1,26 @@ { "descriptor": { - "name": "", - "description": "", + "name": "DNS 구멍 요약", + "description": "PiHole 또는 AdGuard의 중요한 데이터를 표시합니다.", "settings": { - "title": "", + "title": "DNS 홀 요약 설정", "usePiHoleColors": { - "label": "" + "label": "PiHole의 색상 사용" }, "layout": { - "label": "", + "label": "레이아웃", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2x2", + "row": "수평", + "column": "세로" } } } }, "card": { "metrics": { - "domainsOnAdlist": "", - "queriesToday": "", + "domainsOnAdlist": "애드리스트에 있는 도메인", + "queriesToday": "오늘 쿼리", "queriesBlockedTodayPercentage": "", "queriesBlockedToday": "" } diff --git a/public/locales/ko/modules/docker.json b/public/locales/ko/modules/docker.json index f9213952a..f6b6808d3 100644 --- a/public/locales/ko/modules/docker.json +++ b/public/locales/ko/modules/docker.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Docker", - "description": "" + "description": "모든 Docker 컨테이너를 쉽게 확인하고 관리할 수 있습니다." }, "search": { "placeholder": "컨테이너 또는 이미지 이름으로 검색" @@ -25,8 +25,8 @@ }, "actionBar": { "addService": { - "title": "", - "message": "" + "title": "앱 추가", + "message": "Homarr에 앱 추가" }, "restart": { "title": "재시작" @@ -49,32 +49,32 @@ }, "actions": { "start": { - "start": "", - "end": "" + "start": "시작", + "end": "시작됨" }, "stop": { - "start": "", + "start": "중지", "end": "중지됨" }, "restart": { - "start": "", - "end": "" + "start": "다시 시작", + "end": "재시작" }, "remove": { - "start": "", - "end": "" + "start": "제거", + "end": "제거됨" } }, "errors": { "integrationFailed": { "title": "Docker 통합 실패", - "message": "" + "message": "도커 소켓을 장착하는 것을 잊으셨나요?" }, "unknownError": { "title": "오류가 발생했습니다" }, "oneServiceAtATime": { - "title": "" + "title": "한 번에 하나의 앱 또는 서비스만 추가하세요!" } }, "actionIcon": { diff --git a/public/locales/ko/modules/iframe.json b/public/locales/ko/modules/iframe.json index cbd07acf7..544bb561a 100644 --- a/public/locales/ko/modules/iframe.json +++ b/public/locales/ko/modules/iframe.json @@ -1,45 +1,45 @@ { "descriptor": { - "name": "", - "description": "", + "name": "iFrame", + "description": "인터넷에서 콘텐츠를 퍼옵니다. 일부 웹사이트는 액세스를 제한할 수 있습니다.", "settings": { - "title": "", + "title": "아이프레임 설정", "embedUrl": { - "label": "" + "label": "임베드 URL" }, "allowFullScreen": { - "label": "" + "label": "전체 화면 허용" }, "allowTransparency": { - "label": "" + "label": "투명성 허용" }, "allowScrolling": { - "label": "" + "label": "스크롤 허용" }, "allowPayment": { - "label": "" + "label": "결제 허용" }, "allowAutoPlay": { - "label": "" + "label": "자동 재생 허용" }, "allowMicrophone": { - "label": "" + "label": "마이크 허용" }, "allowCamera": { - "label": "" + "label": "카메라 허용" }, "allowGeolocation": { - "label": "" + "label": "지리적 위치 허용" } } }, "card": { "errors": { "noUrl": { - "title": "", - "text": "" + "title": "잘못된 URL", + "text": "위젯 구성에 유효한 주소를 입력했는지 확인합니다." }, - "browserSupport": "" + "browserSupport": "브라우저가 iframe을 지원하지 않습니다. 브라우저를 업데이트하세요." } } } diff --git a/public/locales/ko/modules/media-requests-list.json b/public/locales/ko/modules/media-requests-list.json index 2b1fc2d63..ffbf0e57c 100644 --- a/public/locales/ko/modules/media-requests-list.json +++ b/public/locales/ko/modules/media-requests-list.json @@ -1,35 +1,33 @@ { "descriptor": { - "name": "", - "description": "", + "name": "미디어 요청", + "description": "오버서 또는 젤리서 인스턴스의 모든 미디어 요청 목록 보기", "settings": { - "title": "", + "title": "미디어 요청 목록", "replaceLinksWithExternalHost": { - "label": "" + "label": "외부 호스트로 링크 교체" }, "openInNewTab": { - "label": "" + "label": "새 탭에서 링크 열기" } } }, - "noRequests": "", - "pending": "", - "nonePending": "", + "noRequests": "요청을 찾을 수 없습니다. 앱을 올바르게 구성했는지 확인하세요.", "state": { - "approved": "", - "pendingApproval": "", - "declined": "" + "approved": "승인됨", + "pendingApproval": "승인 대기 중", + "declined": "거부됨" }, "tooltips": { - "approve": "", - "decline": "", - "approving": "" + "approve": "요청 승인", + "decline": "요청 거부", + "approving": "요청 승인 중..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "승인", + "declining": "거절", + "request": "요청...", + "approved": "요청이 승인되었습니다!", + "declined": "요청이 거부되었습니다!" } } diff --git a/public/locales/ko/modules/media-requests-stats.json b/public/locales/ko/modules/media-requests-stats.json index f152af280..e60b120fe 100644 --- a/public/locales/ko/modules/media-requests-stats.json +++ b/public/locales/ko/modules/media-requests-stats.json @@ -1,27 +1,27 @@ { "descriptor": { - "name": "", - "description": "", + "name": "미디어 요청 통계", + "description": "미디어 요청에 대한 통계", "settings": { - "title": "", + "title": "미디어 요청 통계", "replaceLinksWithExternalHost": { - "label": "" + "label": "외부 호스트로 링크 교체" }, "openInNewTab": { - "label": "" + "label": "새 탭에서 링크 열기" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "미디어 통계", + "pending": "승인 대기 중", + "tvRequests": "TV 요청", + "movieRequests": "영화 요청", + "approved": "이미 승인됨", + "totalRequests": "합계" }, "userStats": { - "title": "", - "requests": "" + "title": "상위 사용자", + "requests": "요청: {{number}}" } } diff --git a/public/locales/ko/modules/media-server.json b/public/locales/ko/modules/media-server.json index 3e8852626..7204dd065 100644 --- a/public/locales/ko/modules/media-server.json +++ b/public/locales/ko/modules/media-server.json @@ -1,24 +1,24 @@ { "descriptor": { - "name": "", - "description": "", + "name": "미디어 서버", + "description": "Jellyfin 또는 Plex 미디어 서버와 상호 작용하기", "settings": { - "title": "" + "title": "미디어 서버 위젯 설정" } }, - "loading": "", + "loading": "스트림 로드", "card": { "table": { "header": { - "session": "", - "user": "", - "currentlyPlaying": "" + "session": "세션", + "user": "사용자", + "currentlyPlaying": "현재 재생 중" } }, "errors": { "general": { - "title": "", - "text": "" + "title": "콘텐츠를 로드할 수 없습니다.", + "text": "서버에서 정보를 검색할 수 없습니다. 자세한 내용은 로그를 확인하세요." } } } diff --git a/public/locales/ko/modules/notebook.json b/public/locales/ko/modules/notebook.json index 3ad2a768e..160b8cf30 100644 --- a/public/locales/ko/modules/notebook.json +++ b/public/locales/ko/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "노트북", + "description": "메모를 적을 수 있는 마크다운 기반의 대화형 위젯!", "settings": { - "title": "", + "title": "노트북 위젯 설정", "showToolbar": { + "label": "마크다운 작성에 도움이 되는 도구 모음 표시" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "노트북의 콘텐츠" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/ko/modules/overseerr.json b/public/locales/ko/modules/overseerr.json index 50f802d9e..b84f01631 100644 --- a/public/locales/ko/modules/overseerr.json +++ b/public/locales/ko/modules/overseerr.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Overseerr", - "description": "" + "description": "오버서 또는 젤리서에서 미디어를 검색하고 추가할 수 있습니다." }, "popup": { "item": { @@ -18,7 +18,7 @@ } }, "seasonSelector": { - "caption": "", + "caption": "다운로드할 시즌을 선택하세요.", "table": { "header": { "season": "시즌", diff --git a/public/locales/ko/modules/ping.json b/public/locales/ko/modules/ping.json index dba49b218..b7a1aea20 100644 --- a/public/locales/ko/modules/ping.json +++ b/public/locales/ko/modules/ping.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "핑", - "description": "" + "description": "지정된 URL의 HTTP 응답 코드에 따라 상태 표시기를 표시합니다." }, "states": { "online": "온라인 {{response}}", diff --git a/public/locales/ko/modules/rss.json b/public/locales/ko/modules/rss.json index 32b2b7889..d6050dd75 100644 --- a/public/locales/ko/modules/rss.json +++ b/public/locales/ko/modules/rss.json @@ -1,29 +1,29 @@ { "descriptor": { - "name": "", - "description": "", + "name": "RSS 위젯", + "description": "RSS 위젯을 사용하면 대시보드에 RSS 피드를 표시할 수 있습니다.", "settings": { - "title": "", + "title": "RSS 위젯 설정", "rssFeedUrl": { - "label": "", - "description": "" + "label": "RSS 피드 URL", + "description": "표시하려는 RSS 피드의 URL입니다." }, "refreshInterval": { - "label": "" + "label": "새로 고침 간격(분)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "HTML 서식 허용(위험)", + "info": "외부에서 HTML 서식을 허용하는 것은 위험할 수 있습니다.
신뢰할 수 있는 출처의 피드인지 확인하세요." }, "textLinesClamp": { - "label": "" + "label": "텍스트 줄 클램프" } }, "card": { "errors": { "general": { - "title": "", - "text": "" + "title": "RSS 피드를 검색할 수 없습니다.", + "text": "RSS 피드에 연결하는 동안 문제가 발생했습니다. 유효한 URL을 사용하여 RSS 피드를 올바르게 구성했는지 확인하세요. URL은 공식 사양과 일치해야 합니다. 피드를 업데이트한 후 대시보드를 새로 고쳐야 할 수 있습니다." } } } diff --git a/public/locales/ko/modules/search.json b/public/locales/ko/modules/search.json index 308df4e6f..e02ea0cba 100644 --- a/public/locales/ko/modules/search.json +++ b/public/locales/ko/modules/search.json @@ -1,30 +1,30 @@ { "descriptor": { "name": "검색창", - "description": "" + "description": "사용자 지정 검색 엔진, YouTube 및 지원되는 통합 기능을 검색할 수 있는 검색창입니다." }, "input": { "placeholder": "웹에서 검색..." }, - "switched-to": "", + "switched-to": "로 전환", "searchEngines": { "search": { - "name": "", - "description": "" + "name": "웹", + "description": "검색..." }, "youtube": { - "name": "", - "description": "" + "name": "유튜브", + "description": "유튜브에서 검색" }, "torrents": { - "name": "", - "description": "" + "name": "토렌트", + "description": "토렌트 검색" }, "overseerr": { "name": "Overseerr", - "description": "" + "description": "Overseerr에서 영화 및 TV 프로그램 검색하기" } }, - "tip": "", - "switchedSearchEngine": "" + "tip": "바로가기가 있는 검색창을 선택할 수 있습니다. ", + "switchedSearchEngine": "{{searchEngine}}검색으로 전환" } diff --git a/public/locales/ko/modules/torrents-status.json b/public/locales/ko/modules/torrents-status.json index 88d6a14b5..582f6515f 100644 --- a/public/locales/ko/modules/torrents-status.json +++ b/public/locales/ko/modules/torrents-status.json @@ -1,31 +1,43 @@ { "descriptor": { "name": "토렌트", - "description": "", + "description": "지원되는 토렌트 클라이언트의 토렌트 목록을 표시합니다.", "settings": { - "title": "", + "title": "토렌트 위젯 설정", "refreshInterval": { - "label": "" + "label": "새로 고침 간격(초)" }, "displayCompletedTorrents": { + "label": "완료된 토렌트 표시" + }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { "label": "" }, "displayStaleTorrents": { - "label": "" + "label": "오래된 토렌트 표시" }, "labelFilterIsWhitelist": { - "label": "" + "label": "라벨 목록은 화이트리스트(블랙리스트 대신)입니다." }, "labelFilter": { + "label": "레이블 목록", + "description": "'화이트리스트'를 선택하면 화이트리스트 역할을 합니다. 체크하지 않으면 블랙리스트가 됩니다. 비어 있으면 아무 작업도 수행하지 않습니다." + }, + "displayRatioWithFilter": { "label": "", - "description": "" + "info": "" } } }, "card": { "footer": { "error": "오류", - "lastUpdated": "" + "lastUpdated": "마지막 업데이트 {{time}} 전", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -37,11 +49,11 @@ "progress": "진행률" }, "item": { - "text": "" + "text": "관리: {{appName}}, {{ratio}} 비율" }, "body": { "nothingFound": "토렌트 없음", - "filterHidingItems": "" + "filterHidingItems": "{{count}} 필터에 의해 항목이 숨겨집니다." } }, "lineChart": { @@ -54,27 +66,27 @@ }, "errors": { "noDownloadClients": { - "title": "", - "text": "" + "title": "지원되는 토렌트 클라이언트를 찾을 수 없습니다!", + "text": "지원되는 토렌트 클라이언트를 추가하여 현재 다운로드를 확인하세요." }, "generic": { - "title": "", - "text": "" + "title": "예기치 않은 오류가 발생했습니다.", + "text": "토렌트 클라이언트와 통신할 수 없습니다. 구성을 확인하세요." } }, "loading": { - "title": "", - "description": "" + "title": "로드 중", + "description": "연결 설정하기" }, "popover": { - "introductionPrefix": "", + "introductionPrefix": "관리 주체", "metrics": { - "queuePosition": "", - "progress": "", - "totalSelectedSize": "", - "state": "", - "ratio": "", - "completed": "" + "queuePosition": "대기열 위치 - {{position}}", + "progress": "진행 상황 - {{progress}}%", + "totalSelectedSize": "합계 - {{totalSize}}", + "state": "주 - {{state}}", + "ratio": "비율 - 비율", + "completed": "완료됨" } } } diff --git a/public/locales/ko/modules/usenet.json b/public/locales/ko/modules/usenet.json index c11e66fe9..32703acab 100644 --- a/public/locales/ko/modules/usenet.json +++ b/public/locales/ko/modules/usenet.json @@ -1,13 +1,13 @@ { "descriptor": { - "name": "", - "description": "" + "name": "유즈넷", + "description": "유즈넷 인스턴스를 보고 관리할 수 있습니다." }, "card": { "errors": { "noDownloadClients": { "title": "지원되는 다운로드 클라이언트를 찾을 수 없습니다!", - "text": "" + "text": "지원되는 유즈넷 다운로드 클라이언트를 추가하여 현재 다운로드 내역 보기" } } }, diff --git a/public/locales/ko/modules/video-stream.json b/public/locales/ko/modules/video-stream.json index 539daa1c4..1bebf567b 100644 --- a/public/locales/ko/modules/video-stream.json +++ b/public/locales/ko/modules/video-stream.json @@ -1,24 +1,24 @@ { "descriptor": { - "name": "", - "description": "", + "name": "비디오 스트림", + "description": "카메라 또는 웹사이트의 비디오 스트림 또는 비디오 임베드하기", "settings": { - "title": "", + "title": "동영상 스트림 위젯 설정", "FeedUrl": { - "label": "" + "label": "피드 URL" }, "autoPlay": { - "label": "" + "label": "자동 재생" }, "muted": { - "label": "" + "label": "음소거된 오디오" }, "controls": { - "label": "" + "label": "비디오 플레이어 컨트롤" } } }, "errors": { - "invalidStream": "" + "invalidStream": "잘못된 스트림" } } \ No newline at end of file diff --git a/public/locales/ko/modules/weather.json b/public/locales/ko/modules/weather.json index 6dcb41a7a..1ab8dafae 100644 --- a/public/locales/ko/modules/weather.json +++ b/public/locales/ko/modules/weather.json @@ -1,14 +1,14 @@ { "descriptor": { "name": "날씨", - "description": "", + "description": "설정한 위치의 현재 날씨 정보를 표시합니다.", "settings": { - "title": "", + "title": "날씨 위젯 설정", "displayInFahrenheit": { "label": "화씨로 표시" }, "displayCityName": { - "label": "" + "label": "도시 이름 표시" }, "location": { "label": "날씨 위치" @@ -33,5 +33,5 @@ "unknown": "알 수 없음" } }, - "error": "" + "error": "오류가 발생했습니다." } diff --git a/public/locales/ko/password-requirements.json b/public/locales/ko/password-requirements.json new file mode 100644 index 000000000..07bc48a6d --- /dev/null +++ b/public/locales/ko/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "번호 포함", + "lowercase": "소문자 포함", + "uppercase": "대문자 포함", + "special": "특수 문자 포함", + "length": "{{count}} 문자 이상 포함" +} \ No newline at end of file diff --git a/public/locales/ko/settings/common.json b/public/locales/ko/settings/common.json index 31cbe5c41..18d06ca42 100644 --- a/public/locales/ko/settings/common.json +++ b/public/locales/ko/settings/common.json @@ -6,33 +6,33 @@ "customizations": "커스터마이징" }, "tips": { - "configTip": "" + "configTip": "설정 파일을 페이지에 끌어다 놓아 업로드하세요!" }, "credits": { "madeWithLove": "Made with ❤️ by @", - "thirdPartyContent": "", + "thirdPartyContent": "타사 콘텐츠 보기", "thirdPartyContentTable": { - "dependencyName": "", - "dependencyVersion": "" + "dependencyName": "종속성", + "dependencyVersion": "버전" } }, - "grow": "", + "grow": "그리드 성장(모든 공간 차지)", "layout": { "preview": { - "title": "", - "subtitle": "" + "title": "미리보기", + "subtitle": "변경 사항이 자동으로 저장됩니다." }, - "divider": "", - "main": "", - "sidebar": "", - "cannotturnoff": "", - "dashboardlayout": "", - "enablersidebar": "", - "enablelsidebar": "", - "enablesearchbar": "", - "enabledocker": "", - "enableping": "", - "enablelsidebardesc": "", - "enablersidebardesc": "" + "divider": "레이아웃 옵션", + "main": "메인", + "sidebar": "사이드바", + "cannotturnoff": "끌 수 없음", + "dashboardlayout": "대시보드 레이아웃", + "enablersidebar": "오른쪽 사이드바 활성화", + "enablelsidebar": "왼쪽 사이드바 활성화", + "enablesearchbar": "검색 창 활성화", + "enabledocker": "도커 통합 사용", + "enableping": "핑 사용", + "enablelsidebardesc": "선택 사항입니다. 앱 및 통합에만 사용 가능", + "enablersidebardesc": "선택 사항입니다. 앱 및 통합에만 사용 가능" } } diff --git a/public/locales/ko/settings/customization/access.json b/public/locales/ko/settings/customization/access.json new file mode 100644 index 000000000..833d8a2df --- /dev/null +++ b/public/locales/ko/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "익명 허용", + "description": "로그인하지 않은 사용자가 게시판을 볼 수 있도록 허용하기" + } +} \ No newline at end of file diff --git a/public/locales/ko/settings/customization/general.json b/public/locales/ko/settings/customization/general.json index 2e9b08103..03fe8623f 100644 --- a/public/locales/ko/settings/customization/general.json +++ b/public/locales/ko/settings/customization/general.json @@ -1,25 +1,29 @@ { - "text": "", + "text": "사용자 지정을 통해 Homarr 사용 환경을 원하는 대로 구성하고 조정할 수 있습니다.", "accordeon": { "layout": { - "name": "", - "description": "" + "name": "레이아웃", + "description": "헤더 및 대시보드 타일의 요소 활성화 및 비활성화하기" }, "gridstack": { - "name": "", - "description": "" + "name": "그리드 스택", + "description": "대시보드 영역의 동작 및 열 사용자 지정하기" }, "pageMetadata": { - "name": "", - "description": "" + "name": "페이지 메타데이터", + "description": "제목, 로고 및 PWA 조정" }, "appereance": { - "name": "", - "description": "" + "name": "모양", + "description": "배경, 색상 및 앱 모양 사용자 지정" }, "accessibility": { + "name": "접근성", + "description": "장애인 및 장애가 있는 사용자를 위한 Homarr 구성하기" + }, + "access": { "name": "", - "description": "" + "description": "보드에 액세스할 수 있는 사람 구성" } } } diff --git a/public/locales/ko/settings/customization/gridstack.json b/public/locales/ko/settings/customization/gridstack.json index 18c3d8233..a70a535af 100644 --- a/public/locales/ko/settings/customization/gridstack.json +++ b/public/locales/ko/settings/customization/gridstack.json @@ -1,10 +1,10 @@ { "columnsCount": { - "labelPreset": "", - "descriptionPreset": "", - "descriptionExceedsPreset": "" + "labelPreset": "{{size}} 크기의 열", + "descriptionPreset": "화면 너비가 {{pixels}} 픽셀 미만인 경우 열 수", + "descriptionExceedsPreset": "화면 크기가 {{pixels}} 픽셀을 초과하는 경우 열 수" }, - "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "unsavedChanges": "저장하지 않은 변경 사항이 있습니다. 아래의 변경 사항 적용 버튼을 클릭하여 적용하고 저장합니다.", + "applyChanges": "변경 사항 적용", + "defaultValues": "기본값" } \ No newline at end of file diff --git a/public/locales/ko/settings/customization/page-appearance.json b/public/locales/ko/settings/customization/page-appearance.json index 6dab8a150..8ab9a02ea 100644 --- a/public/locales/ko/settings/customization/page-appearance.json +++ b/public/locales/ko/settings/customization/page-appearance.json @@ -1,30 +1,27 @@ { "pageTitle": { "label": "페이지 제목", - "description": "" + "description": "왼쪽 상단의 대시보드 제목" }, "metaTitle": { - "label": "", - "description": "" + "label": "메타 제목", + "description": "브라우저 탭에 표시되는 제목" }, "logo": { "label": "로고", - "description": "" + "description": "왼쪽 상단에 표시되는 로고" }, "favicon": { "label": "파비콘", - "description": "" + "description": "브라우저 탭에 표시되는 아이콘" }, "background": { "label": "배경" }, "customCSS": { "label": "커스텀 CSS", - "description": "", - "placeholder": "", - "applying": "" - }, - "buttons": { - "submit": "적용" + "description": "또한 숙련된 사용자에게만 권장되는 CSS를 사용하여 대시보드를 사용자 지정할 수 있습니다.", + "placeholder": "사용자 정의 CSS는 마지막에 적용됩니다.", + "applying": "CSS 적용하기..." } -} +} \ No newline at end of file diff --git a/public/locales/ko/settings/general/cache-buttons.json b/public/locales/ko/settings/general/cache-buttons.json index 685994c48..78fa90c4a 100644 --- a/public/locales/ko/settings/general/cache-buttons.json +++ b/public/locales/ko/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "캐시 정리", "selector": { - "label": "", + "label": "지울 캐시를 선택합니다.", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "핑 쿼리", + "repositoryIcons": "원격/로컬 아이콘", + "calendar&medias": "캘린더의 미디어", + "weather": "날씨 데이터" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "캐시 지워짐", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "모든 캐시 지우기", + "notificationMessage": "모든 캐시가 지워졌습니다." }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "선택한 쿼리 지우기", + "notificationMessageSingle": "{{value}} 캐시가 지워졌습니다.", + "notificationMessageMulti": "{{values}} 캐시가 지워졌습니다." } } } \ No newline at end of file diff --git a/public/locales/ko/settings/general/config-changer.json b/public/locales/ko/settings/general/config-changer.json index 3b3f902b0..2097936b0 100644 --- a/public/locales/ko/settings/general/config-changer.json +++ b/public/locales/ko/settings/general/config-changer.json @@ -1,9 +1,9 @@ { "configSelect": { - "label": "", - "description": "", - "loadingNew": "", - "pleaseWait": "" + "label": "구성 변경자", + "description": "{{configCount}} 구성을 사용할 수 있습니다.", + "loadingNew": "구성 로드 중...", + "pleaseWait": "새 설정이 로드될 때까지 기다려주세요!" }, "modal": { "copy": { @@ -12,8 +12,8 @@ "configName": { "label": "설정 이름", "validation": { - "required": "", - "notUnique": "" + "required": "구성 이름은 필수입니다.", + "notUnique": "구성 이름이 이미 사용 중입니다." }, "placeholder": "새로운 설정 이름" }, @@ -25,21 +25,21 @@ "message": "{{configName}} 로 설정 저장됨" }, "configCopied": { - "title": "", - "message": "" + "title": "구성 복사됨", + "message": "구성이 {{configName}}으로 복사됨" }, "configNotCopied": { - "title": "", - "message": "" + "title": "구성을 복사할 수 없습니다.", + "message": "구성이 {{configName}}으로 복사되지 않았습니다." } } }, "confirmDeletion": { - "title": "", - "warningText": "", - "text": "", + "title": "설정 삭제 확인", + "warningText": "'{{configName}}' 삭제하려고 합니다.", + "text": "삭제된 파일은 되돌릴 수 없으며 데이터가 영구적으로 손실된다는 점에 유의하세요. 이 버튼을 클릭하면 파일이 디스크에서 영구적으로 삭제됩니다. 구성에 대한 적절한 백업을 만들어 두시기 바랍니다.", "buttons": { - "confirm": "" + "confirm": "예, '{{configName}}' 삭제" } } }, @@ -57,8 +57,8 @@ "message": "설정 삭제 실패" }, "deleteFailedDefaultConfig": { - "title": "", - "message": "" + "title": "기본 구성은 삭제할 수 없습니다.", + "message": "구성이 파일 시스템에서 삭제되지 않았습니다." } } }, @@ -75,12 +75,12 @@ } }, "accept": { - "title": "", - "text": "" + "title": "구성 업로드", + "text": "파일을 여기로 드래그하여 설정을 업로드합니다. JSON 파일만 지원합니다." }, "reject": { - "title": "", - "text": "" + "title": "끌어서 놓기 업로드가 거부됨", + "text": "이 파일 형식은 지원되지 않습니다. JSON 파일만 업로드하세요." } } } diff --git a/public/locales/ko/settings/general/edit-mode-toggle.json b/public/locales/ko/settings/general/edit-mode-toggle.json index afcc88d03..3c11ef5f4 100644 --- a/public/locales/ko/settings/general/edit-mode-toggle.json +++ b/public/locales/ko/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "편집 모드 전환", + "enable": "편집 모드 사용", + "disable": "편집 모드 비활성화" }, "form": { - "label": "", - "message": "", + "label": "비밀번호 수정", + "message": "편집 모드를 전환하려면 EDIT_MODE_PASSWORD 라는 환경 변수에 입력한 비밀번호를 입력해야 합니다. 설정하지 않으면 편집 모드를 켜고 끌 수 없습니다.", "submit": "적용" }, "notification": { "success": { - "title": "", - "message": "" + "title": "성공", + "message": "편집 모드를 성공적으로 전환하여 페이지를 다시 로드했습니다..." }, "error": { "title": "오류", - "message": "" + "message": "편집 모드를 전환하지 못했습니다. 다시 시도하세요." } } } \ No newline at end of file diff --git a/public/locales/ko/settings/general/search-engine.json b/public/locales/ko/settings/general/search-engine.json index 060e45d5f..e3023d168 100644 --- a/public/locales/ko/settings/general/search-engine.json +++ b/public/locales/ko/settings/general/search-engine.json @@ -1,20 +1,20 @@ { "title": "검색 엔진", - "configurationName": "", - "custom": "", + "configurationName": "검색 엔진 구성", + "custom": "사용자 지정", "tips": { - "generalTip": "", + "generalTip": "사용할 수 있는 접두사는 여러 가지가 있습니다! 쿼리 앞에 이러한 접두사를 추가하면 결과가 필터링됩니다. !.s(웹), !.t(토렌트), !.y(유튜브), !.m(미디어) 등이 있습니다.", "placeholderTip": "%s는 쿼리의 자리 표시자로 사용할 수 있습니다." }, "customEngine": { - "title": "", + "title": "사용자 지정 검색 엔진", "label": "쿼리 URL", "placeholder": "커스텀 쿼리 URL" }, "searchNewTab": { - "label": "" + "label": "새 탭에서 검색 결과 열기" }, "searchEnabled": { - "label": "" + "label": "검색 사용" } } diff --git a/public/locales/ko/settings/general/widget-positions.json b/public/locales/ko/settings/general/widget-positions.json index 0967ef424..eaead4fdd 100644 --- a/public/locales/ko/settings/general/widget-positions.json +++ b/public/locales/ko/settings/general/widget-positions.json @@ -1 +1,3 @@ -{} +{ + "label": "왼쪽에 위젯 배치" +} diff --git a/public/locales/ko/tools/docker.json b/public/locales/ko/tools/docker.json new file mode 100644 index 000000000..f063f840b --- /dev/null +++ b/public/locales/ko/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Homarr 인스턴스에 Docker가 구성되어 있지 않거나 컨테이너 가져오기에 실패했습니다. 연동 설정 방법에 대한 설명서를 확인하세요." + } + }, + "modals": { + "selectBoard": { + "title": "보드 선택", + "text": "선택한 Docker 컨테이너에 대한 앱을 추가할 보드를 선택합니다.", + "form": { + "board": { + "label": "보드" + }, + "submit": "앱 추가" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "보드에 앱 추가", + "message": "선택한 Docker 컨테이너용 앱이 보드에 추가되었습니다." + }, + "error": { + "title": "보드에 앱을 추가하지 못했습니다.", + "message": "선택한 Docker 컨테이너용 앱을 보드에 추가할 수 없습니다." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/user/preferences.json b/public/locales/ko/user/preferences.json new file mode 100644 index 000000000..6ef8862a6 --- /dev/null +++ b/public/locales/ko/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "기본 설정", + "pageTitle": "기본 설정", + "boards": { + "defaultBoard": { + "label": "기본 보드" + } + }, + "accessibility": { + "title": "접근성", + "disablePulse": { + "label": "핑 펄스 비활성화", + "description": "기본적으로 Homarr의 핑 표시기는 펄싱됩니다. 이는 자극적일 수 있습니다. 이 슬라이더는 애니메이션을 비활성화합니다." + }, + "replaceIconsWithDots": { + "label": "핑 도트를 아이콘으로 바꾸기", + "description": "색맹 사용자의 경우 핑 도트를 인식하지 못할 수 있습니다. 이렇게 하면 표시기가 아이콘으로 대체됩니다." + } + }, + "localization": { + "language": { + "label": "언어" + }, + "firstDayOfWeek": { + "label": "요일별 요일", + "options": { + "monday": "월요일", + "saturday": "토요일", + "sunday": "일요일" + } + } + }, + "searchEngine": { + "title": "검색 엔진", + "custom": "사용자 지정", + "newTab": { + "label": "새 탭에서 검색 결과 열기" + }, + "autoFocus": { + "label": "페이지 로드 시 검색창에 초점을 맞춥니다.", + "description": "이렇게 하면 게시판 페이지로 이동할 때 검색창에 자동으로 초점이 맞춰집니다. 데스크톱 장치에서만 작동합니다." + }, + "template": { + "label": "쿼리 URL", + "description": "쿼리의 자리 표시자로 %s 사용" + } + } +} \ No newline at end of file diff --git a/public/locales/ko/widgets/draggable-list.json b/public/locales/ko/widgets/draggable-list.json index 5d27e99ad..2e4844410 100644 --- a/public/locales/ko/widgets/draggable-list.json +++ b/public/locales/ko/widgets/draggable-list.json @@ -1,7 +1,7 @@ { "noEntries": { - "title": "", - "text": "" + "title": "항목 없음", + "text": "아래 버튼을 사용하여 항목을 더 추가합니다." }, - "buttonAdd": "" + "buttonAdd": "추가" } diff --git a/public/locales/ko/widgets/error-boundary.json b/public/locales/ko/widgets/error-boundary.json index ce74ad0fc..bce49cb92 100644 --- a/public/locales/ko/widgets/error-boundary.json +++ b/public/locales/ko/widgets/error-boundary.json @@ -1,14 +1,14 @@ { "card": { - "title": "", + "title": "죄송합니다, 오류가 발생했습니다!", "buttons": { - "details": "", - "tryAgain": "" + "details": "세부 정보", + "tryAgain": "다시 시도" } }, "modal": { "text": "", - "label": "", - "reportButton": "" + "label": "오류", + "reportButton": "이 오류 신고하기" } } diff --git a/public/locales/ko/zod.json b/public/locales/ko/zod.json new file mode 100644 index 000000000..2b2f785de --- /dev/null +++ b/public/locales/ko/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "이 필드는 유효하지 않습니다.", + "required": "이 필드는 필수 입력 사항입니다.", + "string": { + "startsWith": "이 필드는 {{startsWith}}로 시작해야 합니다.", + "endsWith": "이 필드는 {{endsWith}}으로 끝나야 합니다.", + "includes": "이 필드에는 {{includes}}" + }, + "tooSmall": { + "string": "이 필드는 {{minimum}} 자 이상이어야 합니다.", + "number": "이 필드는 {{minimum}}이상이어야 합니다." + }, + "tooBig": { + "string": "이 필드는 최대 {{maximum}} 자까지만 입력할 수 있습니다.", + "number": "이 필드는 {{maximum}}보다 작거나 같아야 합니다." + }, + "custom": { + "passwordMatch": "비밀번호가 일치해야 합니다." + } + } +} \ No newline at end of file diff --git a/public/locales/lol/authentication/invite.json b/public/locales/lol/authentication/invite.json new file mode 100644 index 000000000..6efdf72c2 --- /dev/null +++ b/public/locales/lol/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Usernaem" + }, + "password": { + "label": "Password" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Error!", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/authentication/login.json b/public/locales/lol/authentication/login.json index aad381afa..874a3ca0a 100644 --- a/public/locales/lol/authentication/login.json +++ b/public/locales/lol/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "", "title": "Welcom Bak!", - "text": "Plz Entr Ur Pasword", + "text": "", "form": { "fields": { + "username": { + "label": "Usernaem" + }, "password": { - "label": "Password", - "placeholder": "Ur Pasword" + "label": "Password" } }, "buttons": { "submit": "Sign In" - } + }, + "afterLoginRedirection": "" }, - "notifications": { - "checking": { - "title": "Checkin Ur Pasword", - "message": "Ur Pasword Iz Bean Checkd..." - }, - "correct": { - "title": "Sign In Succesful, Redirectin..." - }, - "wrong": { - "title": "Teh Pasword U Enterd Iz Incorrect, Plz Try Again." - } - } -} + "alert": "" +} \ No newline at end of file diff --git a/public/locales/lol/boards/common.json b/public/locales/lol/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/lol/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/boards/customize.json b/public/locales/lol/boards/customize.json new file mode 100644 index 000000000..0ea867e90 --- /dev/null +++ b/public/locales/lol/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Error!", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/common.json b/public/locales/lol/common.json index 464592119..9dec6422d 100644 --- a/public/locales/lol/common.json +++ b/public/locales/lol/common.json @@ -3,9 +3,13 @@ "about": "'bout", "cancel": "Cancel", "close": "Cloes", + "back": "", "delete": "Deleet", "ok": "K", "edit": "Edit", + "next": "", + "previous": "", + "confirm": "", "enabled": "", "disabled": "", "enableAll": "", diff --git a/public/locales/lol/layout/header.json b/public/locales/lol/layout/header.json new file mode 100644 index 000000000..7f6ec26bd --- /dev/null +++ b/public/locales/lol/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "about": { + "label": "'bout", + "new": "" + }, + "logout": "", + "login": "" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/layout/manage.json b/public/locales/lol/layout/manage.json new file mode 100644 index 000000000..ad71ddb87 --- /dev/null +++ b/public/locales/lol/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Dockah" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/boards.json b/public/locales/lol/manage/boards.json new file mode 100644 index 000000000..bf8f5be51 --- /dev/null +++ b/public/locales/lol/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Naym" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/index.json b/public/locales/lol/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/lol/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/users.json b/public/locales/lol/manage/users.json new file mode 100644 index 000000000..afbd4e20e --- /dev/null +++ b/public/locales/lol/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/lol/manage/users/create.json b/public/locales/lol/manage/users/create.json new file mode 100644 index 000000000..fde7a1029 --- /dev/null +++ b/public/locales/lol/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Usernaem" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Password", + "password": { + "label": "Password" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Usernaem", + "email": "", + "password": "Password" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/manage/users/invites.json b/public/locales/lol/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/lol/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/lol/modules/calendar.json b/public/locales/lol/modules/calendar.json index 6334e4ee3..eb0be8322 100644 --- a/public/locales/lol/modules/calendar.json +++ b/public/locales/lol/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "" }, - "sundayStart": { - "label": "Start teh week on Sunday" - }, "radarrReleaseType": { "label": "Radarr Release Type", "data": { diff --git a/public/locales/lol/modules/dns-hole-controls.json b/public/locales/lol/modules/dns-hole-controls.json index f8daba13b..3bf25c924 100644 --- a/public/locales/lol/modules/dns-hole-controls.json +++ b/public/locales/lol/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } } } \ No newline at end of file diff --git a/public/locales/lol/password-requirements.json b/public/locales/lol/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/lol/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/lol/settings/customization/access.json b/public/locales/lol/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/lol/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/settings/customization/general.json b/public/locales/lol/settings/customization/general.json index 5245b8535..404088be8 100644 --- a/public/locales/lol/settings/customization/general.json +++ b/public/locales/lol/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/lol/settings/customization/page-appearance.json b/public/locales/lol/settings/customization/page-appearance.json index 85c53601d..8b03f12e7 100644 --- a/public/locales/lol/settings/customization/page-appearance.json +++ b/public/locales/lol/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "", "placeholder": "Custom CSS Will Be Applid Last", "applying": "" - }, - "buttons": { - "submit": "Submit" } -} +} \ No newline at end of file diff --git a/public/locales/lol/tools/docker.json b/public/locales/lol/tools/docker.json new file mode 100644 index 000000000..2fc69c743 --- /dev/null +++ b/public/locales/lol/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Dockah", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/user/preferences.json b/public/locales/lol/user/preferences.json new file mode 100644 index 000000000..36515b3a0 --- /dev/null +++ b/public/locales/lol/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Languaeg" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Search engien", + "custom": "", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "Quewee URL", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lol/zod.json b/public/locales/lol/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/lol/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/authentication/invite.json b/public/locales/lv/authentication/invite.json new file mode 100644 index 000000000..bbfb5df5f --- /dev/null +++ b/public/locales/lv/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Izveidot kontu", + "title": "Izveidot kontu", + "text": "Lūdzu, tālāk norādiet savus lietotāja datus", + "form": { + "fields": { + "username": { + "label": "Lietotājvārds" + }, + "password": { + "label": "Parole" + }, + "passwordConfirmation": { + "label": "Apstipriniet paroli" + } + }, + "buttons": { + "submit": "Izveidot kontu" + } + }, + "notifications": { + "loading": { + "title": "Izveido kontu", + "text": "Lūdzu, uzgaidiet" + }, + "success": { + "title": "Konts izveidots", + "text": "Jūsu konts ir veiksmīgi izveidots" + }, + "error": { + "title": "Kļūda", + "text": "Kaut kas aizgāja greizi, saņēmu šādu kļūdu: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/authentication/login.json b/public/locales/lv/authentication/login.json index b6efb61b8..95d59186d 100644 --- a/public/locales/lv/authentication/login.json +++ b/public/locales/lv/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Pieslēgties", "title": "Sveicināti atpakaļ!", - "text": "Lūdzu, ievadiet savu paroli", + "text": "Lūdzu, ievadiet savus pieslēgšanās datus", "form": { "fields": { + "username": { + "label": "Lietotājvārds" + }, "password": { - "label": "Parole", - "placeholder": "Jūsu parole" + "label": "Parole" } }, "buttons": { "submit": "Pierakstīties" - } + }, + "afterLoginRedirection": "Pēc pieslēgšanās tiksiet novirzīts uz {{url}}" }, - "notifications": { - "checking": { - "title": "Notiek Jūsu paroles pārbaude", - "message": "Jūsu parole tiek pārbaudīta..." - }, - "correct": { - "title": "Pierakstīšanās veiksmīga, pāradresēšana..." - }, - "wrong": { - "title": "Jūsu ievadītā parole ir nepareiza. Mēģiniet vēlreiz." - } - } -} + "alert": "Jūsu pieslēgšanās dati ir nepareizi vai šis konts nepastāv. Lūdzu, mēģiniet vēlreiz." +} \ No newline at end of file diff --git a/public/locales/lv/boards/common.json b/public/locales/lv/boards/common.json new file mode 100644 index 000000000..92ec84543 --- /dev/null +++ b/public/locales/lv/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Pielāgojiet dēli" + } +} \ No newline at end of file diff --git a/public/locales/lv/boards/customize.json b/public/locales/lv/boards/customize.json new file mode 100644 index 000000000..1fcc2a9b3 --- /dev/null +++ b/public/locales/lv/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Pielāgojiet {{name}} Dēli", + "pageTitle": "Pielāgošana priekš {{name}} Dēļa", + "backToBoard": "Atgriezties pie dēļa", + "settings": { + "appearance": { + "primaryColor": "Pamatkrāsa", + "secondaryColor": "Sekundārā krāsa" + } + }, + "save": { + "button": "Saglabāt izmaiņas", + "note": "Uzmanīgi, jums ir nesaglabātas izmaiņas!" + }, + "notifications": { + "pending": { + "title": "Pielāgošanas saglabāšana", + "message": "Lūdzu, pagaidiet, kamēr mēs saglabāsim jūsu pielāgojumus" + }, + "success": { + "title": "Pielāgošana saglabāta", + "message": "Jūsu pielāgojumi ir veiksmīgi saglabāti" + }, + "error": { + "title": "Kļūda", + "message": "Neizdevās saglabāt izmaiņas" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 25f66c9ec..3b7787e17 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -1,11 +1,17 @@ { "save": "Saglabāt", + "apply": "Lietot", + "insert": "Ievietot", "about": "Par Programmu", "cancel": "Atcelt", "close": "Aizvērt", + "back": "Atpakaļ", "delete": "Dzēst", "ok": "OK", "edit": "Rediģēt", + "next": "Nākamais", + "previous": "Iepriekšējais", + "confirm": "Apstipriniet", "enabled": "Iespējots", "disabled": "Atspējots", "enableAll": "Iespējot visu", @@ -36,5 +42,14 @@ "medium": "vidējs", "large": "liels" }, - "seeMore": "Skatīt vairāk..." + "seeMore": "Skatīt vairāk...", + "position": { + "left": "Pa kreisi", + "center": "Centrā", + "right": "Pa labi" + }, + "attributes": { + "width": "Platums", + "height": "Augstums" + } } \ No newline at end of file diff --git a/public/locales/lv/layout/common.json b/public/locales/lv/layout/common.json index 31a775bfb..427d59670 100644 --- a/public/locales/lv/layout/common.json +++ b/public/locales/lv/layout/common.json @@ -18,7 +18,7 @@ "menu": { "moveUp": "Virzīt augšup", "moveDown": "Virzīt lejup", - "addCategory": "", + "addCategory": "Pievienot kategoriju {{location}}", "addAbove": "virs", "addBelow": "zem" } diff --git a/public/locales/lv/layout/errors/access-denied.json b/public/locales/lv/layout/errors/access-denied.json new file mode 100644 index 000000000..29c764b56 --- /dev/null +++ b/public/locales/lv/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Piekļuve liegta", + "text": "Jums nav pietiekamu atļauju, lai piekļūtu šai lapai. Ja uzskatāt, ka tā tam nav jābūt, lūdzu, sazinieties ar savu administratoru.", + "switchAccount": "Pārslēgties uz citu kontu" +} \ No newline at end of file diff --git a/public/locales/lv/layout/header.json b/public/locales/lv/layout/header.json new file mode 100644 index 000000000..eb8a67519 --- /dev/null +++ b/public/locales/lv/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Šī ir eksperimentāla Homarr funkcija. Lūdzu, ziņojiet par jebkādām problēmām GitHub vai Discord." + }, + "search": { + "label": "Meklēt", + "engines": { + "web": "Meklēt {{query}} tīmeklī", + "youtube": "Meklēt {{query}} pakalpojumā YouTube", + "torrent": "Meklēt {{query}} torrent failus", + "movie": "Meklēt {{query}} vietnē {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Mainīt tēmu", + "preferences": "Lietotāja iestatījumi", + "defaultBoard": "Noklusējuma darbvirsma", + "manage": "Pārvaldīt", + "logout": "Izrakstīšanās no {{username}}", + "login": "Pieslēgties" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} rezultāti {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/lv/layout/header/actions/toggle-edit-mode.json b/public/locales/lv/layout/header/actions/toggle-edit-mode.json index 7fb3f1ca5..10b8d8593 100644 --- a/public/locales/lv/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/lv/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Rediģēšanas režīms ir ieslēgts priekš <1>{{size}} izmēra", "text": "Tagad varat pielāgot un konfigurēt programmas. Izmaiņas netiek saglabātas, kamēr neesat izgājuši no rediģēšanas režīma" }, - "unloadEvent": "" + "unloadEvent": "Iziet no rediģēšanas režīma, lai saglabātu izmaiņas" } diff --git a/public/locales/lv/layout/manage.json b/public/locales/lv/layout/manage.json new file mode 100644 index 000000000..2f1a9fd88 --- /dev/null +++ b/public/locales/lv/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Sākums" + }, + "boards": { + "title": "Dēļi" + }, + "users": { + "title": "Lietotāji", + "items": { + "manage": "Pārvaldīt", + "invites": "Uzaicinājumi" + } + }, + "help": { + "title": "Palīdzība", + "items": { + "documentation": "Dokumentācija", + "report": "Ziņot par problēmu / kļūdu", + "discord": "Kopienas Discord", + "contribute": "Atbalstīt" + } + }, + "tools": { + "title": "Rīki", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Par Programmu" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/layout/modals/about.json b/public/locales/lv/layout/modals/about.json index 76593358c..64cc947b5 100644 --- a/public/locales/lv/layout/modals/about.json +++ b/public/locales/lv/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr ir slaiks, mūsdienīgs vadības panelis, kurā visas jūsu lietotnes un pakalpojumi ir pieejami rokas stiepiena attālumā. Izmantojot Homarr, varat piekļūt un kontrolēt visu vienuviet ērtā veidā. Homarr nevainojami integrējas ar jūsu pievienotajām lietotnēm, sniedzot jums vērtīgu informāciju un nodrošinot pilnīgu kontroli. Instalēšana ir vienkārša, un Homarr atbalsta dažādas izvietošanas metodes.", - "contact": "Ir problēmas vai jautājumi? Sazinieties ar mums!", "addToDashboard": "Pievienot Informācijas panelim", "tip": "Mod attiecas uz modifikatora taustiņu, tas ir Ctrl un Command/Super/Windows taustiņš", "key": "Īsinājumtaustiņš", "action": "Darbība", "keybinds": "Taustiņu saites", - "documentation": "", + "translators": "Tulkotāji ({{count}})", + "translatorsDescription": "Pateicoties šiem cilvēkiem, Homarr ir pieejams {{languages}} valodās! Vai vēlaties palīdzēt tulkot Homarr savā valodā? Uzziniet, kā to darīt šeit.", + "contributors": "Līdzizstrādātāji ({{count}})", + "contributorsDescription": "Šie cilvēki ir izveidojuši kodu, kas nodrošina homarr darbību! Vai vēlaties palīdzēt veidot Homarr? Lasiet, kā to darīt šeit", "actions": { "toggleTheme": "Pārslēgt gaišo/tumšo motīvu", "focusSearchBar": "Fokusēties uz meklēšanas joslu", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Konfigurācijas shēmas versija", - "configurationsCount": "Pieejamās konfigurācijas", "version": "Versija", "nodeEnvironment": "Mezgla vide", "i18n": "Ielādētās I18n tulkojumu vārdšķiras", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EKSPERIMENTĀLISKI: Izslēgt rediģēšanas režīmu" }, "version": { - "new": "", - "dropdown": "" + "new": "Jaunums: {{newVersion}}", + "dropdown": "Versija {{newVersion}} ir pieejama! Pašreizējā versija ir {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/lv/layout/modals/add-app.json b/public/locales/lv/layout/modals/add-app.json index 8039b51e8..6d933b7c6 100644 --- a/public/locales/lv/layout/modals/add-app.json +++ b/public/locales/lv/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Iekšējā adrese", - "description": "Lietotnes iekšējā IP adrese." + "description": "Lietotnes iekšējā IP adrese.", + "troubleshoot": { + "label": "Radušās problēmas?", + "header": "Šeit ir saraksts ar biežāk pieļautajām kļūdām un to novēršanu:", + "lines": { + "nothingAfterPort": "Lielākajā daļā gadījumu, ja ne visos, jums nevajadzētu ievadīt nekādu ceļu pēc porta. (Pat \"/admin\" (pihole gadījumā) vai \"/web\" (plex gadījumā))", + "protocolCheck": "Vienmēr pārliecinieties, ka pirms URL ir http vai https, un pārliecinieties, ka izmantojat pareizo URL.", + "preferIP": "Ieteicams izmantot mašīnas vai konteinera, ar kuru mēģināt sazināties, tiešo ip adresi.", + "enablePings": "Pārbaudiet, vai IP ir pareizs, aktivizējot ping. Pielāgot Dēli -> Izkārtojums -> Ieslēgt ping. Uz lietotnes flīzēm parādīsies mazs sarkans vai zaļš burbulītis, un, uzliekot uz tā kursoru, tiks parādīts atbildes kods (vairumā gadījumu tiek sagaidīts zaļš burbulītis ar kodu 200).", + "wget": "Lai pārliecinātos, ka homarr var sazināties ar citām lietotnēm, pārliecinieties, ka var veikt wget/curl/ping uz lietotnes IP:ports (piemēram, ping 192.168.1.20:8080).", + "iframe": "Kad runa ir par iframe, tām vienmēr jāizmanto tas pats protokols (http/s) kā Homarr.", + "clearCache": "Dažas ziņas tiek reģistrētas kešatmiņā, tāpēc integrācija var nedarboties, ja vien Homarr vispārīgajos iestatījumos neiztīrīsiet kešatmiņu." + }, + "footer": "Lai iegūtu papildu informāciju par problēmu novēršanu, sazinieties mūsu {{discord}}." + } }, "externalAddress": { "label": "Ārējā adrese", @@ -55,8 +69,8 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Aplikācijas Nosaukuma Fonta Lielums", + "description": "Iestatiet fonta lielumu, kad lietotnes nosaukums tiek parādīts uz flīzes." }, "appNameStatus": { "label": "Lietotnes Nosaukuma Statuss", diff --git a/public/locales/lv/manage/boards.json b/public/locales/lv/manage/boards.json new file mode 100644 index 000000000..56f253e68 --- /dev/null +++ b/public/locales/lv/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Dēļi", + "pageTitle": "Dēļi", + "cards": { + "statistics": { + "apps": "Lietotnes", + "widgets": "Logrīki", + "categories": "Kategorijas" + }, + "buttons": { + "view": "Apskatīt dēli" + }, + "menu": { + "setAsDefault": "Iestatiet kā noklusējuma dēli", + "delete": { + "label": "Neatgriezeniski dzēst", + "disabled": "Dzēšana atspējota, jo vecāki Homarr komponenti neļauj dzēst noklusējuma konfigurāciju. Dzēšana būs iespējama nākotnē." + } + }, + "badges": { + "fileSystem": "Failu sistēma", + "default": "Noklusējuma" + } + }, + "buttons": { + "create": "Izveidot jaunu dēli" + }, + "modals": { + "delete": { + "title": "Dzēst dēli", + "text": "Vai esat pārliecināts, ka vēlaties izdzēst šo dēli? Šo darbību nevar atcelt, un jūsu dati tiks neatgriezeniski zaudēti." + }, + "create": { + "title": "Izveidot dēli", + "text": "Nosaukumu nevar mainīt pēc tam, kad ir izveidots dēlis.", + "form": { + "name": { + "label": "Nosaukums" + }, + "submit": "Izveidot" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/index.json b/public/locales/lv/manage/index.json new file mode 100644 index 000000000..82af898c6 --- /dev/null +++ b/public/locales/lv/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Pārvaldīt", + "hero": { + "title": "Laipni lūdzam atpakaļ, {{username}}", + "fallbackUsername": "Anonīms", + "subtitle": "Laipni lūgti Jūsu Pieteikumu Centrā. Organizējiet, Optimizējiet un Iekarojiet!" + }, + "quickActions": { + "title": "Ātrās darbības", + "boards": { + "title": "Jūsu dēļi", + "subtitle": "Izveidojiet un pārvaldiet savus dēļus" + }, + "inviteUsers": { + "title": "Uzaicināt jaunu lietotâju", + "subtitle": "Izveidojiet un nosūtiet ielūgumu reģistrācijai" + }, + "manageUsers": { + "title": "Pārvaldīt lietotājus", + "subtitle": "Izveidojiet un pārvaldiet savus lietotājus" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/users.json b/public/locales/lv/manage/users.json new file mode 100644 index 000000000..b513be1fe --- /dev/null +++ b/public/locales/lv/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Lietotājs" + } + }, + "tooltips": { + "deleteUser": "Dzēst lietotāju", + "demoteAdmin": "Administratora amata pazemināšana", + "promoteToAdmin": "Paaugstināšana par administratoru" + }, + "modals": { + "delete": { + "title": "Dzēst lietotāju {{name}}", + "text": "Vai esat pārliecināts, ka vēlaties dzēst lietotāju {{name}}? Tādējādi tiks dzēsti ar šo kontu saistītie dati, bet netiks dzēsti šā lietotāja izveidotie paneļi." + }, + "change-role": { + "promote": { + "title": "Paaugstināt lietotāju {{name}} par administratoru", + "text": "Vai esat pārliecināts, ka vēlaties lietotāju {{name}} paaugstināt par administratoru? Tas dos lietotājam piekļuvi visiem jūsu Homarr resursiem." + }, + "demote": { + "title": "Pazemināt lietotāju {{name}} uz lietotāja statusu", + "text": "Vai esat pārliecināts, ka vēlaties pazemināt lietotāja {{name}} statusu uz lietotāju? Tas atņems lietotājam piekļuvi uz visiem jūsu Homarr resursiem." + }, + "confirm": "Apstipriniet" + } + }, + "searchDoesntMatch": "Jūsu meklēšanas vaicājums neatbilst nevienam ierakstam. Lūdzu, pielāgojiet savu meklēšanas filtru." +} \ No newline at end of file diff --git a/public/locales/lv/manage/users/create.json b/public/locales/lv/manage/users/create.json new file mode 100644 index 000000000..eae0f65cf --- /dev/null +++ b/public/locales/lv/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Izveidot lietotāju", + "steps": { + "account": { + "title": "Pirmais solis", + "text": "Izveidot kontu", + "username": { + "label": "Lietotājvārds" + }, + "email": { + "label": "E-pasts" + } + }, + "security": { + "title": "Otrais solis", + "text": "Parole", + "password": { + "label": "Parole" + } + }, + "finish": { + "title": "Apstiprinājums", + "text": "Saglabāt datubāzē", + "card": { + "title": "Pārskatiet savus ievades datus", + "text": "Pēc datu nosūtīšanas datubāzei lietotājs varēs pieslēgties. Vai esat pārliecināts, ka vēlaties saglabāt šo lietotāju datubāzē un aktivizēt pieslēgšanos?" + }, + "table": { + "header": { + "property": "Īpašība", + "value": "Vērtība", + "username": "Lietotājvārds", + "email": "E-pasts", + "password": "Parole" + }, + "notSet": "Nav iestatīts", + "valid": "Derīgs" + }, + "failed": "Lietotāja izveide neizdevās: {{error}}" + }, + "completed": { + "alert": { + "title": "Lietotājs tika izveidots", + "text": "Datubāzē tika izveidots lietotājs. Tagad lietotājs var pieslēgties." + } + } + }, + "buttons": { + "generateRandomPassword": "Ģenerēt nejaušu", + "createAnother": "Izveidot vēl vienu" + } +} \ No newline at end of file diff --git a/public/locales/lv/manage/users/invites.json b/public/locales/lv/manage/users/invites.json new file mode 100644 index 000000000..162dd4783 --- /dev/null +++ b/public/locales/lv/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Lietotāju uzaicinājumi", + "pageTitle": "Lietotāju uzaicinājumu pārvaldīšana", + "description": "Izmantojot ielūgumus, varat uzaicināt lietotājus uz savu Homarr instanci. Ielūgums ir derīgs tikai noteiktu laiku, un to var izmantot vienu reizi. Veidojot ielūgumu, tā derīguma termiņam jābūt diapazonā no 5 minūtēm līdz 12 mēnešiem.", + "button": { + "createInvite": "Izveidot uzaicinājumu", + "deleteInvite": "Dzēst uzaicinājumu" + }, + "table": { + "header": { + "id": "ID", + "creator": "Izveidotājs", + "expires": "Termiņš", + "action": "Darbības" + }, + "data": { + "expiresAt": "beidzās {{at}}", + "expiresIn": "pēc {{in}}" + } + }, + "modals": { + "create": { + "title": "Izveidot uzaicinājumu", + "description": "Pēc derīguma termiņa beigām uzaicinājums vairs nebūs derīgs, un uzaicinājuma saņēmējs nevarēs izveidot kontu.", + "form": { + "expires": "Derīguma termiņš", + "submit": "Izveidot" + } + }, + "copy": { + "title": "Kopēt uzaicinājumu", + "description": "Jūsu uzaicinājums ir izveidots. Pēc šī modal loga aizvēršanās Jūs vairs nevarēsiet kopēt šo saiti. Ja vairs nevēlaties uzaicināt minēto personu, jebkurā laikā varat dzēst šo uzaicinājumu.", + "invitationLink": "Uzaicinājuma saite", + "details": { + "id": "ID", + "token": "Atslēga" + }, + "button": { + "close": "Kopēt un Aizvērt" + } + }, + "delete": { + "title": "Dzēst uzaicinājumu", + "description": "Vai esat pārliecināts, ka vēlaties dzēst šo uzaicinājumu? Lietotāji ar vairs nevarēs izveidot kontu, izmantojot šo saiti." + } + }, + "noInvites": "Vēl nav uzaicinājumu." +} \ No newline at end of file diff --git a/public/locales/lv/modules/bookmark.json b/public/locales/lv/modules/bookmark.json index 463f764c5..cd2cd2f5e 100644 --- a/public/locales/lv/modules/bookmark.json +++ b/public/locales/lv/modules/bookmark.json @@ -29,7 +29,7 @@ }, "item": { "validation": { - "length": "", + "length": "Garumam jābūt no {{shortest}} līdz {{longest}}", "invalidLink": "Nederīga saite", "errorMsg": "Netika saglabāts, jo bija validācijas kļūdas. Lūdzu, pielāgojiet savus ievades datus" }, diff --git a/public/locales/lv/modules/calendar.json b/public/locales/lv/modules/calendar.json index 6cc60c70c..e4e316513 100644 --- a/public/locales/lv/modules/calendar.json +++ b/public/locales/lv/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Tiek parādīts kalendārs ar gaidāmajām pirmizrādēm no atbalstītajām integrācijām.", "settings": { "title": "Kalendāra logrīka iestatījumi", - "useSonarrv4": { - "label": "Izmantot Sonarr v4 API" - }, - "sundayStart": { - "label": "Sākt nedēļu ar pirmdienu" - }, "radarrReleaseType": { "label": "Radarr laiduma tips", "data": { @@ -22,7 +16,7 @@ "label": "Paslēpt darba dienas" }, "showUnmonitored": { - "label": "" + "label": "Rādīt neuzraudzītos vienumus" }, "fontSize": { "label": "Fonta Izmērs", diff --git a/public/locales/lv/modules/dns-hole-controls.json b/public/locales/lv/modules/dns-hole-controls.json index 0b9168de2..2c2afa1a8 100644 --- a/public/locales/lv/modules/dns-hole-controls.json +++ b/public/locales/lv/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS cauruma kontrole", - "description": "Vadiet PiHole vai AdGuard no sava informācijas paneļa" + "description": "Vadiet PiHole vai AdGuard no sava informācijas paneļa", + "settings": { + "title": "DNS cauruma kontroles iestatījumi", + "showToggleAllButtons": { + "label": "Rādīt 'Ieslēgt/Izslēgt Visus' Pogas" + } + }, + "errors": { + "general": { + "title": "Nevar atrast DNS caurumu", + "text": "Radās problēma, savienojoties ar jūsu DNS caurumu(-iem). Lūdzu, pārbaudiet savu konfigurāciju/integrāciju(-as)." + } + } } } \ No newline at end of file diff --git a/public/locales/lv/modules/dns-hole-summary.json b/public/locales/lv/modules/dns-hole-summary.json index e4a347e1d..acf2b7619 100644 --- a/public/locales/lv/modules/dns-hole-summary.json +++ b/public/locales/lv/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domēni reklāmu sarakstos", "queriesToday": "Pieprasījumi šodien", - "queriesBlockedTodayPercentage": "šodien bloķēti", - "queriesBlockedToday": "šodien bloķēti" + "queriesBlockedTodayPercentage": "Šodien bloķēti", + "queriesBlockedToday": "Šodien bloķēti" } } } diff --git a/public/locales/lv/modules/media-requests-list.json b/public/locales/lv/modules/media-requests-list.json index 43348d1a8..da0961da0 100644 --- a/public/locales/lv/modules/media-requests-list.json +++ b/public/locales/lv/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "Aizstāt saites ar ārējo saimnieku" }, "openInNewTab": { - "label": "" + "label": "Atvērt saites jaunā cilnē" } } }, "noRequests": "Nav atrasts neviens pieprasījums. Lūdzu, pārliecinieties, vai esat pareizi konfigurējuši savas aplikācijas.", - "pending": "Apstiprinājumu gaida {{countPendingApproval}} pieprasījumi.", - "nonePending": "Pašlaik nav nepabeigtu apstiprinājumu. Jums viss iet labi!", "state": { "approved": "Apstiprināts", "pendingApproval": "Nepabeigts apstiprinājums", diff --git a/public/locales/lv/modules/media-requests-stats.json b/public/locales/lv/modules/media-requests-stats.json index 3b0b41b47..2e8afd77e 100644 --- a/public/locales/lv/modules/media-requests-stats.json +++ b/public/locales/lv/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Aizstāt saites ar ārējo saimnieku" }, "openInNewTab": { - "label": "" + "label": "Atvērt saites jaunā cilnē" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", + "title": "Mediju statistika", + "pending": "Nepabeigtie apstiprinājumi", + "tvRequests": "TV pieprasījumi", + "movieRequests": "Filmu pieprasījumi", + "approved": "Jau apstiprināts", "totalRequests": "Kopā" }, "userStats": { "title": "Top Lietotāji", - "requests": "" + "requests": "Pieprasījumi: {{number}}" } } diff --git a/public/locales/lv/modules/notebook.json b/public/locales/lv/modules/notebook.json index 6673c1a88..0c300a4f2 100644 --- a/public/locales/lv/modules/notebook.json +++ b/public/locales/lv/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Rādīt rīkjoslu, lai palīdzētu rakstīt markdown tekstu" }, + "allowReadOnlyCheck": { + "label": "Atļaut atzīmi lasīšanas režīmā" + }, "content": { "label": "Piezīmju saturs" } } + }, + "card": { + "controls": { + "bold": "Treknraksts", + "italic": "Slīpraksts", + "strikethrough": "Pārsvītrojums", + "underline": "Pasvītrojums", + "colorText": "Krāsains teksts", + "colorHighlight": "Krāsains izcelts teksts", + "code": "Kods", + "clear": "Notīrīt formatējumu", + "heading": "Virsraksts {{level}}", + "align": "Teksta līdzināšana: {{position}}", + "blockquote": "Citāts", + "horizontalLine": "Horizontāla līnija", + "bulletList": "Aizzīmju saraksts", + "orderedList": "Numurēts saraksts", + "checkList": "Pārbaudes saraksts", + "increaseIndent": "Palielināt atkāpi", + "decreaseIndent": "Samazināt atkāpi", + "link": "Saite", + "unlink": "Noņemt saiti", + "image": "Iegult attēlu", + "addTable": "Pievienot tabulu", + "deleteTable": "Dzēst tabulu", + "colorCell": "Krāsaina šūna", + "mergeCell": "Pārslēgt šūnu apvienošanu", + "addColumnLeft": "Pievienot kolonnu pirms", + "addColumnRight": "Pievienot kolonnu pēc", + "deleteColumn": "Dzēst kolonnu", + "addRowTop": "Pievienot rindu pirms", + "addRowBelow": "Pievienot rindu pēc", + "deleteRow": "Dzēst rindu" + }, + "modals": { + "clearColor": "Notīrīt krāsu", + "source": "Avots", + "widthPlaceholder": "Vērtība % vai pikseļos", + "columns": "Kolonnas", + "rows": "Rindas" + } } } \ No newline at end of file diff --git a/public/locales/lv/modules/rss.json b/public/locales/lv/modules/rss.json index e297e862a..e9cf78ad7 100644 --- a/public/locales/lv/modules/rss.json +++ b/public/locales/lv/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS logrīks", - "description": "", + "description": "RSS logrīks ļauj parādīt RSS plūsmas uz Jūsu vadības paneļa.", "settings": { "title": "RSS logrīka iestatījumi", "rssFeedUrl": { diff --git a/public/locales/lv/modules/torrents-status.json b/public/locales/lv/modules/torrents-status.json index c85702c4a..7aefcd158 100644 --- a/public/locales/lv/modules/torrents-status.json +++ b/public/locales/lv/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Rādīt pabeigtos torrentus" }, + "displayActiveTorrents": { + "label": "Rādīt aktīvos torrentus" + }, + "speedLimitOfActiveTorrents": { + "label": "Augšupielādes ātrums, lai torrentu uzskatītu par aktīvu (kB/s)" + }, "displayStaleTorrents": { "label": "Rādīt novecojušus torrentus" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Iezīmju saraksts", "description": "Ja ir atzīmēts 'ir baltais saraksts', tas darbosies kā baltais saraksts. Ja nav atzīmēts, šis ir melnais saraksts. Ja ir tukšs, tas neko nedarīs" + }, + "displayRatioWithFilter": { + "label": "Rādīt filtrēto torentu saraksta attiecību", + "info": "Ja ir atspējots, tiks parādīta tikai globālā attiecība. Globālā attiecība joprojām izmantos etiķetes, ja tā būs iestatītas" } } }, "card": { "footer": { "error": "Kļūda", - "lastUpdated": "Pēdējo reizi atjaunināts pirms {{time}}" + "lastUpdated": "Pēdējo reizi atjaunināts pirms {{time}}", + "ratioGlobal": "Globālā attiecība", + "ratioWithFilter": "Attiecība ar filtru" }, "table": { "header": { diff --git a/public/locales/lv/password-requirements.json b/public/locales/lv/password-requirements.json new file mode 100644 index 000000000..0a4b33762 --- /dev/null +++ b/public/locales/lv/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Ietver numuru", + "lowercase": "Ietver mazo burtu", + "uppercase": "Ietver lielo burtu", + "special": "Ietver īpašu rakstzīmi", + "length": "Ietver vismaz {{count}} rakstzīmes" +} \ No newline at end of file diff --git a/public/locales/lv/settings/customization/access.json b/public/locales/lv/settings/customization/access.json new file mode 100644 index 000000000..1f16e75bd --- /dev/null +++ b/public/locales/lv/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Atļaut anonīmu", + "description": "Atļaut lietotājiem, kuri nav pierakstījušies, apskatīt jūsu ziņojumu dēli" + } +} \ No newline at end of file diff --git a/public/locales/lv/settings/customization/general.json b/public/locales/lv/settings/customization/general.json index 9e399fc53..5c3398939 100644 --- a/public/locales/lv/settings/customization/general.json +++ b/public/locales/lv/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Piekļūstamība", "description": "Homarr konfigurēšana lietotājiem ar invaliditāti un/vai ar īpašām vajadzībām" + }, + "access": { + "name": "Piekļuve", + "description": "Konfigurējiet, kam ir piekļuve jūsu dēlim" } } } diff --git a/public/locales/lv/settings/customization/page-appearance.json b/public/locales/lv/settings/customization/page-appearance.json index 6864737b7..733c577ab 100644 --- a/public/locales/lv/settings/customization/page-appearance.json +++ b/public/locales/lv/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Turklāt pielāgojiet paneli, izmantojot CSS, ieteicams tikai pieredzējušiem lietotājiem", "placeholder": "Pielāgotais CSS tiks piemērots pēdējais", "applying": "CSS piemērošana..." - }, - "buttons": { - "submit": "Iesniegt" } -} +} \ No newline at end of file diff --git a/public/locales/lv/settings/general/cache-buttons.json b/public/locales/lv/settings/general/cache-buttons.json index 685994c48..20e35b696 100644 --- a/public/locales/lv/settings/general/cache-buttons.json +++ b/public/locales/lv/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Kešatmiņas tīrīšana", "selector": { - "label": "", + "label": "Izvēlieties kešatmiņas(-u), kuras(-as) vēlaties dzēst", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Ping vaicājumi", + "repositoryIcons": "Attālinātās/vietējās ikonas", + "calendar&medias": "Mediji no Kalendāra", + "weather": "Laikapstākļu dati" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Kešatmiņa Iztīrīta", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Notīrīt visu kešatmiņu", + "notificationMessage": "Ir notīrīta visa kešatmiņa" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Atlasīto vaicājumu notīrīšana", + "notificationMessageSingle": "Kešatmiņa priekš {{value}} ir izdzēsta", + "notificationMessageMulti": "Kešatmiņa priekš {{values}} ir izdzēsta" } } } \ No newline at end of file diff --git a/public/locales/lv/settings/general/edit-mode-toggle.json b/public/locales/lv/settings/general/edit-mode-toggle.json index b868591d0..3397d6fbf 100644 --- a/public/locales/lv/settings/general/edit-mode-toggle.json +++ b/public/locales/lv/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Pārslēgt rediģēšanas režīmu", + "enable": "Iespējot rediģēšanas režīmu", + "disable": "Atspējot rediģēšanas režīmu" }, "form": { - "label": "", - "message": "", + "label": "Rediģēt paroli", + "message": "Lai pārslēgtu rediģēšanas režīmu, ir jāievada parole, kas ievadīta environment variable ar nosaukumu EDIT_MODE_PASSWORD . Ja tas nav iestatīts, jūs nevarat ieslēgt un izslēgt rediģēšanas režīmu.", "submit": "Iesniegt" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Izdevās", + "message": "Veiksmīgi pārslēgts rediģēšanas režīms, notiek lapas pārlāde..." }, "error": { "title": "Kļūda", - "message": "" + "message": "Neizdevās pārslēgt rediģēšanas režīmu, lūdzu, mēģiniet vēlreiz." } } } \ No newline at end of file diff --git a/public/locales/lv/tools/docker.json b/public/locales/lv/tools/docker.json new file mode 100644 index 000000000..8d85a5b11 --- /dev/null +++ b/public/locales/lv/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Jūsu Homarr instancē nav konfigurēts Docker vai arī tai nav izdevies iegūtu konteinerus. Lūdzu, pārbaudiet dokumentāciju par to, kā iestatīt integrāciju." + } + }, + "modals": { + "selectBoard": { + "title": "Izvēlieties dēli", + "text": "Izvēlieties dēli, uz kura vēlaties pievienot atlasīto Docker konteineru aplikācijas.", + "form": { + "board": { + "label": "Dēlis" + }, + "submit": "Pievienot lietotnes" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Uz dēļa pievienotās lietotnes", + "message": "Izvēlētajiem Docker konteineriem paredzētās aplikācijas ir pievienotas pie dēļa." + }, + "error": { + "title": "Neizdevās pievienot aplikācijas pie dēļa", + "message": "Izvēlētajiem Docker konteineriem paredzētās aplikācijas nevarēja pievienot pie dēļa." + } + } + } +} \ No newline at end of file diff --git a/public/locales/lv/user/preferences.json b/public/locales/lv/user/preferences.json new file mode 100644 index 000000000..516f9b972 --- /dev/null +++ b/public/locales/lv/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Iestatījumi", + "pageTitle": "Jūsu iestatījumi", + "boards": { + "defaultBoard": { + "label": "Noklusējamais dēlis" + } + }, + "accessibility": { + "title": "Piekļūstamība", + "disablePulse": { + "label": "Atslēgt Ping pulsāciju", + "description": "Pēc noklusējuma Homarr Ping indikatori pulsē. Tas var būt kaitinoši. Šis slīdnis atslēgs animāciju" + }, + "replaceIconsWithDots": { + "label": "Aizstāt Ping punktiņus ar ikonām", + "description": "Krāsu akliem lietotājiem Ping punktiņi var būt neatpazīstami. Tas aizstās indikatorus ar ikonām" + } + }, + "localization": { + "language": { + "label": "Valoda" + }, + "firstDayOfWeek": { + "label": "Nedēļas pirmā diena", + "options": { + "monday": "Pirmdiena", + "saturday": "Sestdiena", + "sunday": "Svētdiena" + } + } + }, + "searchEngine": { + "title": "Meklētājdzinējs", + "custom": "Pielāgots", + "newTab": { + "label": "Atvērt meklēšanas rezultātus jaunā cilnē" + }, + "autoFocus": { + "label": "Vietnes ielādes laikā fokusēt meklēšanas joslu.", + "description": "Tas automātiski fokusēs meklēšanas joslu, kad pārvietosieties uz dēļa vietnēm. Funkcija darbosies tikai darbvirsmas režīmā." + }, + "template": { + "label": "Pieprasījuma URL", + "description": "Izmantojiet %s kā vietvārdu vaicājumam" + } + } +} \ No newline at end of file diff --git a/public/locales/lv/zod.json b/public/locales/lv/zod.json new file mode 100644 index 000000000..423bbda74 --- /dev/null +++ b/public/locales/lv/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Šis lauks nav derīgs", + "required": "Šis lauks ir obligāts", + "string": { + "startsWith": "Šim laukam jāsākas ar {{startsWith}}", + "endsWith": "Šim laukam jābeidzas ar {{endsWith}}", + "includes": "Šajā laukā jāiekļauj {{includes}}" + }, + "tooSmall": { + "string": "Šim laukam jābūt vismaz {{minimum}} rakstzīmju garam", + "number": "Šim laukam jābūt lielākam vai vienādam ar {{minimum}}" + }, + "tooBig": { + "string": "Šim laukam jābūt ne garākam par {{maximum}} rakstzīmēm", + "number": "Šim laukam jābūt mazākam vai vienādam ar {{maximum}}" + }, + "custom": { + "passwordMatch": "Parolēm jāsakrīt" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/authentication/invite.json b/public/locales/nl/authentication/invite.json new file mode 100644 index 000000000..bba28aae5 --- /dev/null +++ b/public/locales/nl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Account aanmaken", + "title": "Account aanmaken", + "text": "Geef hieronder uw referenties aan", + "form": { + "fields": { + "username": { + "label": "Gebruikersnaam" + }, + "password": { + "label": "Wachtwoord" + }, + "passwordConfirmation": { + "label": "Wachtwoord bevestigen" + } + }, + "buttons": { + "submit": "Account aanmaken" + } + }, + "notifications": { + "loading": { + "title": "Account aanmaken", + "text": "Even geduld" + }, + "success": { + "title": "Account aangemaakt", + "text": "Je account is succesvol aangemaakt" + }, + "error": { + "title": "Fout", + "text": "Er ging iets mis, ik kreeg de volgende foutmelding: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/authentication/login.json b/public/locales/nl/authentication/login.json index e4408eeba..bdc023f3e 100644 --- a/public/locales/nl/authentication/login.json +++ b/public/locales/nl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Inloggen", "title": "Welkom terug!", - "text": "Voer uw wachtwoord in", + "text": "Voer uw referenties in", "form": { "fields": { + "username": { + "label": "Gebruikersnaam" + }, "password": { - "label": "Wachtwoord", - "placeholder": "Uw wachtwoord" + "label": "Wachtwoord" } }, "buttons": { "submit": "Inloggen" - } + }, + "afterLoginRedirection": "Na het inloggen wordt u doorgestuurd naar {{url}}" }, - "notifications": { - "checking": { - "title": "Bezig met uw wachtwoord controleren", - "message": "Uw wachtwoord wordt gecontroleerd..." - }, - "correct": { - "title": "Log in succesvol, redirect..." - }, - "wrong": { - "title": "Het ingevoerde wachtwoord is onjuist, probeer het opnieuw." - } - } -} + "alert": "Je gegevens zijn onjuist of deze account bestaat niet. Probeer het opnieuw." +} \ No newline at end of file diff --git a/public/locales/nl/boards/common.json b/public/locales/nl/boards/common.json new file mode 100644 index 000000000..ad4021e4d --- /dev/null +++ b/public/locales/nl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Pas bord aan" + } +} \ No newline at end of file diff --git a/public/locales/nl/boards/customize.json b/public/locales/nl/boards/customize.json new file mode 100644 index 000000000..1e5392c12 --- /dev/null +++ b/public/locales/nl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} bord aanpassen", + "pageTitle": "Aanpassing voor {{name}} Board", + "backToBoard": "Terug naar bestuur", + "settings": { + "appearance": { + "primaryColor": "Primaire kleur", + "secondaryColor": "Secundaire kleur" + } + }, + "save": { + "button": "Wijzigingen opslaan", + "note": "Pas op, je hebt niet-opgeslagen veranderingen!" + }, + "notifications": { + "pending": { + "title": "Aanpassingen opslaan", + "message": "Even geduld terwijl we je aanpassing opslaan" + }, + "success": { + "title": "Opgeslagen aanpassingen", + "message": "Uw aanpassing is succesvol opgeslagen" + }, + "error": { + "title": "Fout", + "message": "Kan wijzigingen niet opslaan" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 6c29e0197..28b0288a2 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -1,15 +1,21 @@ { "save": "Opslaan", + "apply": "", + "insert": "", "about": "Over", "cancel": "Annuleer", "close": "Sluiten", + "back": "Terug", "delete": "Verwijder", "ok": "OK", "edit": "Wijzig", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", + "next": "Volgende", + "previous": "Vorige", + "confirm": "Bevestig", + "enabled": "Ingeschakeld", + "disabled": "Uitgeschakeld", + "enableAll": "Alles inschakelen", + "disableAll": "Alles uitschakelen", "version": "Versie", "changePosition": "Positie wijzigen", "remove": "Verwijder", @@ -36,5 +42,14 @@ "medium": "gemiddeld", "large": "groot" }, - "seeMore": "" + "seeMore": "Zie meer...", + "position": { + "left": "Links", + "center": "", + "right": "Rechts" + }, + "attributes": { + "width": "Breedte", + "height": "Hoogte" + } } \ No newline at end of file diff --git a/public/locales/nl/layout/common.json b/public/locales/nl/layout/common.json index 4f4c4e6b4..0c064b81d 100644 --- a/public/locales/nl/layout/common.json +++ b/public/locales/nl/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Pop-ups geblokkeerd", + "text": "Je browser heeft de toegang tot Homarr's API geblokkeerd. Dit wordt meestal veroorzaakt door AdBlockers of geweigerde toestemmingen. Homarr is niet in staat om automatisch rechten aan te vragen.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Klik op het pictogram naast de URL en controleer de toestemmingen. Pop-ups en vensters toestaan", + "adBlockers": "Schakel advertentieblokkers en beveiligingsprogramma's van uw browser uit", + "otherBrowser": "Probeer een andere browser" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Alles openen in nieuw tabblad" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Omhoog", + "moveDown": "Naar beneden", + "addCategory": "Categorie {{location}}toevoegen", + "addAbove": "boven", + "addBelow": "onder" } } \ 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 c5a23cae5..0e8e271c3 100644 --- a/public/locales/nl/layout/element-selector/selector.json +++ b/public/locales/nl/layout/element-selector/selector.json @@ -8,18 +8,18 @@ "actionIcon": { "tooltip": "Tegel toevoegen" }, - "apps": "", + "apps": "Apps", "app": { - "defaultName": "" + "defaultName": "Uw app" }, - "widgets": "", - "categories": "", + "widgets": "Widgets", + "categories": "Categorieën", "category": { - "newName": "", - "defaultName": "", + "newName": "Naam van nieuwe categorie", + "defaultName": "Nieuwe categorie", "created": { - "title": "", - "message": "" + "title": "Categorie gemaakt", + "message": "De categorie \"{{name}}\" is aangemaakt" } } } diff --git a/public/locales/nl/layout/errors/access-denied.json b/public/locales/nl/layout/errors/access-denied.json new file mode 100644 index 000000000..8b81e4f0a --- /dev/null +++ b/public/locales/nl/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Toegang geweigerd", + "text": "Je hebt niet voldoende rechten om deze pagina te openen. Als je denkt dat dit niet de bedoeling is, neem dan contact op met je beheerder.", + "switchAccount": "Overschakelen naar een andere account" +} \ No newline at end of file diff --git a/public/locales/nl/layout/errors/not-found.json b/public/locales/nl/layout/errors/not-found.json index 9e26dfeeb..a4e69e024 100644 --- a/public/locales/nl/layout/errors/not-found.json +++ b/public/locales/nl/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Pagina niet gevonden", + "text": "Deze pagina kon niet worden gevonden. De URL voor deze pagina is mogelijk verlopen, de URL is ongeldig of u hebt niet de vereiste rechten om deze bron te openen.", + "button": "Ga naar Home" +} \ No newline at end of file diff --git a/public/locales/nl/layout/header.json b/public/locales/nl/layout/header.json new file mode 100644 index 000000000..d36e46b2d --- /dev/null +++ b/public/locales/nl/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Dit is een experimentele functie van Homarr. Meld problemen alsjeblieft op GitHub of Discord." + }, + "search": { + "label": "Zoek op", + "engines": { + "web": "Zoek naar {{query}} op het web", + "youtube": "Zoek naar {{query}} op YouTube", + "torrent": "Zoeken naar {{query}} torrents", + "movie": "Zoek naar {{query}} op {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Thema omschakelen", + "preferences": "Gebruikersvoorkeuren", + "defaultBoard": "Standaard dashboard", + "manage": "Beheer", + "logout": "Afmelden bij {{username}}", + "login": "Inloggen" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} resultaten voor {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/header/actions/toggle-edit-mode.json b/public/locales/nl/layout/header/actions/toggle-edit-mode.json index f7ee9ac88..8c23f1dc2 100644 --- a/public/locales/nl/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/nl/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Bewerkingsmodus is ingeschakeld voor de <1>{{size}} grootte", "text": "U kunt uw apps nu aanpassen en configureren. Wijzigingen zijn niet opgeslagen totdat u de bewerkingsmodus verlaat" }, - "unloadEvent": "" + "unloadEvent": "Sluit de bewerkingsmodus af om uw wijzigingen op te slaan" } diff --git a/public/locales/nl/layout/manage.json b/public/locales/nl/layout/manage.json new file mode 100644 index 000000000..895d1a3d2 --- /dev/null +++ b/public/locales/nl/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Home" + }, + "boards": { + "title": "Borden" + }, + "users": { + "title": "Gebruikers", + "items": { + "manage": "Beheer", + "invites": "Nodigt uit" + } + }, + "help": { + "title": "Help", + "items": { + "documentation": "Documentatie", + "report": "Een probleem / bug melden", + "discord": "Community Discord", + "contribute": "Draag bij" + } + }, + "tools": { + "title": "Gereedschap", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Over" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/modals/about.json b/public/locales/nl/layout/modals/about.json index aafaf6e1f..97e469a2d 100644 --- a/public/locales/nl/layout/modals/about.json +++ b/public/locales/nl/layout/modals/about.json @@ -1,21 +1,22 @@ { "description": "Homarr is een sterk, modern dashboard dat al je apps en diensten binnen handbereik brengt. Met Homarr heb je toegang tot en controle over alles op één handige locatie. Homarr integreert naadloos met de apps die je hebt toegevoegd en geeft je waardevolle informatie en volledige controle. Installatie is een fluitje van een cent en Homarr ondersteunt een breed scala aan implementatiemethoden.", - "contact": "Problemen of vragen? Neem contact met ons op!", "addToDashboard": "Aan dashboard toevoegen", "tip": "Mod verwijst naar uw modifier toets, dat zijn de Ctrl en Commando/Super/Windows toets", "key": "Sneltoets", "action": "Actie", "keybinds": "Sneltoetsen", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Schakelen tussen licht en donker", + "focusSearchBar": "Focus op zoekbalk", + "openDocker": "Open Docker Widget", + "toggleEdit": "De bewerkingsmodus schakelen" }, "metrics": { "configurationSchemaVersion": "Configuratieschema versie", - "configurationsCount": "Beschikbare configuraties", "version": "Versie", "nodeEnvironment": "Node environment", "i18n": "I18n vertaling namespaces geladen", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EXPERIMENTEEL: Bewerkingsmodus uitschakelen" }, "version": { - "new": "", - "dropdown": "" + "new": "Nieuw: {{newVersion}}", + "dropdown": "Versie {{newVersion}} is beschikbaar! De huidige versie is {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/nl/layout/modals/add-app.json b/public/locales/nl/layout/modals/add-app.json index 9905cfc72..751a1478c 100644 --- a/public/locales/nl/layout/modals/add-app.json +++ b/public/locales/nl/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Intern adres", - "description": "Intern IP-adres van de app." + "description": "Intern IP-adres van de app.", + "troubleshoot": { + "label": "Heb je problemen?", + "header": "Hier is een lijst met veelgemaakte fouten en probleemoplossing:", + "lines": { + "nothingAfterPort": "In de meeste, zo niet alle gevallen, moet je geen pad invoeren na de poort. (Zelfs de '/admin' voor pihole of '/web' voor plex)", + "protocolCheck": "Controleer altijd of de URL wordt voorafgegaan door http of https en of je de juiste URL gebruikt.", + "preferIP": "Het wordt aanbevolen om het directe ip te gebruiken van de machine of container waarmee je probeert te communiceren.", + "enablePings": "Controleer of het IP correct is door pings in te schakelen. Pas bord aan -> Lay-out -> Pings inschakelen. Er verschijnt een rood of groen bubbeltje op de app-tegels en als je er met de muis overheen gaat, zie je de responscode (in de meeste gevallen wordt een groen bubbeltje met code 200 verwacht).", + "wget": "Om er zeker van te zijn dat homarr kan communiceren met de andere apps, moet je wget/curl/ping doen naar de IP:poort van de app.", + "iframe": "Iframes moeten altijd hetzelfde protocol (http/s) gebruiken als Homarr.", + "clearCache": "Sommige informatie wordt geregistreerd in de cache, dus een integratie werkt misschien niet tenzij je de cache leegmaakt in de algemene opties van Homarr." + }, + "footer": "Neem voor meer probleemoplossing contact op met onze {{discord}}." + } }, "externalAddress": { "label": "Extern adres", @@ -26,10 +40,10 @@ "description": "Open de app in een nieuw tabblad in plaats van de huidige." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Toepassing Beschrijving", + "description": "De tekst die je invoert verschijnt wanneer je met de muis over je app beweegt.\r\nGebruik dit om gebruikers meer details over je app te geven of laat het leeg om niets te hebben." }, - "customProtocolWarning": "" + "customProtocolWarning": "Een niet-standaard protocol gebruiken. Dit kan vooraf geïnstalleerde toepassingen vereisen en veiligheidsrisico's met zich meebrengen. Zorg ervoor dat je adres veilig en vertrouwd is." }, "network": { "statusChecker": { @@ -44,7 +58,7 @@ "appearance": { "icon": { "label": "App icoon", - "description": "", + "description": "Begin te typen om een pictogram te vinden. Je kunt ook een URL van een afbeelding plakken om een aangepast pictogram te gebruiken.", "autocomplete": { "title": "Geen resultaten gevonden", "text": "Probeer een specifiekere zoekterm te gebruiken. Als u het gewenste pictogram niet kunt vinden, plak dan de bovenstaande URL van de afbeelding voor een aangepast pictogram" @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Lettergrootte app naam", + "description": "Stel de lettergrootte in voor wanneer de app-naam wordt weergegeven op de tegel." }, "appNameStatus": { - "label": "", - "description": "", + "label": "App Naam Status", + "description": "Kies waar je de titel wilt weergeven, als dat al gebeurt.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Toon titel alleen op tegel", + "hover": "Titel alleen tonen bij zweven over tooltip", + "hidden": "Helemaal niet laten zien" } }, "positionAppName": { - "label": "", - "description": "", + "label": "App Naam Positie", + "description": "Positie van de naam van de app ten opzichte van het pictogram.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Top", + "right": "Rechts", + "bottom": "Bodem", + "left": "Links" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "App naam Lijnklem", + "description": "Bepaalt op hoeveel regels uw titel maximaal moet passen. Stel 0 in voor onbeperkt." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Uw formulier bevat ongeldige gegevens. Daarom kan het niet worden opgeslagen. Los alle problemen op en klik opnieuw op deze knop om uw wijzigingen op te slaan", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Naam is vereist", + "noUrl": "Url is vereist", + "invalidUrl": "Waarde is geen geldige url", + "noIconUrl": "Dit veld is verplicht", + "noExternalUri": "Externe URI is vereist", + "invalidExternalUri": "Externe URI is geen geldige uri" } } diff --git a/public/locales/nl/manage/boards.json b/public/locales/nl/manage/boards.json new file mode 100644 index 000000000..c51c2a631 --- /dev/null +++ b/public/locales/nl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Borden", + "pageTitle": "Borden", + "cards": { + "statistics": { + "apps": "Apps", + "widgets": "Widgets", + "categories": "Categorieën" + }, + "buttons": { + "view": "Bekijk bord" + }, + "menu": { + "setAsDefault": "Instellen als standaardkaart", + "delete": { + "label": "Permanent verwijderen", + "disabled": "Verwijderen uitgeschakeld, omdat oudere Homarr-componenten het verwijderen van de standaardconfiguratie niet toestaan. Verwijdering zal in de toekomst mogelijk zijn." + } + }, + "badges": { + "fileSystem": "Bestandssysteem", + "default": "Standaard" + } + }, + "buttons": { + "create": "Nieuw bord maken" + }, + "modals": { + "delete": { + "title": "Verwijder bord", + "text": "Weet je zeker dat je dit bord wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en je gegevens zullen permanent verloren gaan." + }, + "create": { + "title": "Maak bord", + "text": "De naam kan niet worden gewijzigd nadat een bord is aangemaakt.", + "form": { + "name": { + "label": "Naam" + }, + "submit": "Maak" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/index.json b/public/locales/nl/manage/index.json new file mode 100644 index 000000000..4751160c2 --- /dev/null +++ b/public/locales/nl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Beheer", + "hero": { + "title": "Welkom terug, {{username}}", + "fallbackUsername": "Anonieme", + "subtitle": "Welkom bij Your Application Hub. Organiseer, optimaliseer en overwin!" + }, + "quickActions": { + "title": "Snelle acties", + "boards": { + "title": "Uw borden", + "subtitle": "Uw borden maken en beheren" + }, + "inviteUsers": { + "title": "Een nieuwe gebruiker uitnodigen", + "subtitle": "Een uitnodiging voor registratie maken en versturen" + }, + "manageUsers": { + "title": "Gebruikers beheren", + "subtitle": "Gebruikers verwijderen en beheren" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/users.json b/public/locales/nl/manage/users.json new file mode 100644 index 000000000..a60fc917d --- /dev/null +++ b/public/locales/nl/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Gebruiker" + } + }, + "tooltips": { + "deleteUser": "Gebruiker verwijderen", + "demoteAdmin": "Beheerder degraderen", + "promoteToAdmin": "Promoveren tot beheerder" + }, + "modals": { + "delete": { + "title": "Gebruiker verwijderen {{name}}", + "text": "Weet je zeker dat je de gebruiker {{name}}wilt verwijderen? Dit zal de gegevens van deze account verwijderen, maar niet de dashboards die door deze gebruiker zijn gemaakt." + }, + "change-role": { + "promote": { + "title": "Promoveer gebruiker {{name}} tot admin", + "text": "Weet je zeker dat je de gebruiker {{name}} wilt promoveren tot admin? Dit geeft de gebruiker toegang tot alle bronnen op je Homarr-instantie." + }, + "demote": { + "title": "Degradeer gebruiker {{name}} naar gebruiker", + "text": "Weet je zeker dat je de gebruiker {{name}} wilt degraderen naar gebruiker? Dit zal de toegang van de gebruiker tot alle bronnen op je Homarr-instantie verwijderen." + }, + "confirm": "Bevestig" + } + }, + "searchDoesntMatch": "Je zoekopdracht komt niet overeen met items. Pas uw filter aan." +} \ No newline at end of file diff --git a/public/locales/nl/manage/users/create.json b/public/locales/nl/manage/users/create.json new file mode 100644 index 000000000..a107acc7f --- /dev/null +++ b/public/locales/nl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Gebruiker aanmaken", + "steps": { + "account": { + "title": "Eerste stap", + "text": "Account aanmaken", + "username": { + "label": "Gebruikersnaam" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Tweede stap", + "text": "Wachtwoord", + "password": { + "label": "Wachtwoord" + } + }, + "finish": { + "title": "Bevestiging", + "text": "Opslaan in database", + "card": { + "title": "Uw invoer controleren", + "text": "Nadat je je gegevens naar de database hebt gestuurd, kan de gebruiker inloggen. Weet je zeker dat je deze gebruiker wilt opslaan in de database en de aanmelding wilt activeren?" + }, + "table": { + "header": { + "property": "Eigendom", + "value": "Waarde", + "username": "Gebruikersnaam", + "email": "E-mail", + "password": "Wachtwoord" + }, + "notSet": "Niet ingesteld", + "valid": "Geldig" + }, + "failed": "Het aanmaken van een gebruiker is mislukt: {{error}}" + }, + "completed": { + "alert": { + "title": "Gebruiker is aangemaakt", + "text": "De gebruiker is aangemaakt in de database. Ze kunnen nu inloggen." + } + } + }, + "buttons": { + "generateRandomPassword": "Willekeurig genereren", + "createAnother": "Maak een andere" + } +} \ No newline at end of file diff --git a/public/locales/nl/manage/users/invites.json b/public/locales/nl/manage/users/invites.json new file mode 100644 index 000000000..5223d771a --- /dev/null +++ b/public/locales/nl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Gebruiker nodigt uit", + "pageTitle": "Uitnodigingen voor gebruikers beheren", + "description": "Met behulp van uitnodigingen kun je gebruikers uitnodigen voor je Homarr instance. Een uitnodiging is slechts een bepaalde tijd geldig en kan eenmalig gebruikt worden. De geldigheidsduur moet bij het aanmaken tussen 5 minuten en 12 maanden liggen.", + "button": { + "createInvite": "Uitnodiging maken", + "deleteInvite": "Uitnodiging verwijderen" + }, + "table": { + "header": { + "id": "ID", + "creator": "Schepper", + "expires": "Verloopt op", + "action": "Acties" + }, + "data": { + "expiresAt": "verlopen {{at}}", + "expiresIn": "in {{in}}" + } + }, + "modals": { + "create": { + "title": "Uitnodiging maken", + "description": "Na de vervaldatum is een uitnodiging niet langer geldig en kan de ontvanger van de uitnodiging geen account meer aanmaken.", + "form": { + "expires": "Vervaldatum", + "submit": "Maak" + } + }, + "copy": { + "title": "Uitnodiging kopiëren", + "description": "Je uitnodiging is gegenereerd. Nadat deze modal is gesloten, kun je deze link niet meer kopiëren. Als je deze persoon niet langer wilt uitnodigen, kun je deze uitnodiging op elk gewenst moment verwijderen.", + "invitationLink": "Uitnodiging link", + "details": { + "id": "ID", + "token": "Penning" + }, + "button": { + "close": "Kopiëren en verwijderen" + } + }, + "delete": { + "title": "Uitnodiging verwijderen", + "description": "Weet je zeker dat je deze uitnodiging wilt verwijderen? Gebruikers met deze link kunnen niet langer een account aanmaken met deze link." + } + }, + "noInvites": "Er zijn nog geen uitnodigingen." +} \ No newline at end of file diff --git a/public/locales/nl/modules/bookmark.json b/public/locales/nl/modules/bookmark.json index 2e6dfeb2e..29d92d78e 100644 --- a/public/locales/nl/modules/bookmark.json +++ b/public/locales/nl/modules/bookmark.json @@ -1,43 +1,43 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Bladwijzer", + "description": "Een statische lijst met strings of koppelingen weergeven", "settings": { - "title": "", + "title": "Bladwijzerinstellingen", "name": { - "label": "", - "info": "" + "label": "Widget Titel", + "info": "Laat leeg om de titel verborgen te houden." }, "items": { - "label": "" + "label": "Items" }, "layout": { "label": "Indeling", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Automatisch raster", + "horizontal": "Horizontaal", + "vertical": "Verticaal" } } } }, "card": { "noneFound": { - "title": "", - "text": "" + "title": "Bladwijzerlijst leeg", + "text": "Nieuwe items aan deze lijst toevoegen in de bewerkingsmodus" } }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "De lengte moet tussen {{shortest}} en {{longest}}liggen.", + "invalidLink": "Geen geldige link", + "errorMsg": "Niet opgeslagen omdat er validatiefouten waren. Herhaal uw invoer a.u.b." }, "name": "Naam", - "url": "", + "url": "URL", "newTab": "Open in nieuw tabblad", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Hostnaam verbergen", + "hideIcon": "Pictogram verbergen", "delete": "Verwijder" } } diff --git a/public/locales/nl/modules/calendar.json b/public/locales/nl/modules/calendar.json index 6e8a5419e..b649feb36 100644 --- a/public/locales/nl/modules/calendar.json +++ b/public/locales/nl/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Toont een kalender met komende releases, van ondersteunde integraties.", "settings": { "title": "Instellingen voor Kalender widget", - "useSonarrv4": { - "label": "Gebruik Sonarr v4 API" - }, - "sundayStart": { - "label": "Begin de week op zondag" - }, "radarrReleaseType": { "label": "Radarr release type", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "In de bioscoop", + "physicalRelease": "Fysiek", + "digitalRelease": "Digitaal" } }, "hideWeekDays": { - "label": "" + "label": "Verberg weekdagen" }, "showUnmonitored": { - "label": "" + "label": "Toon niet-bewaakte items" }, "fontSize": { - "label": "", + "label": "Lettergrootte", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Extra Klein", + "sm": "Klein", + "md": "Medium", + "lg": "Groot", + "xl": "Extra Groot" } } } diff --git a/public/locales/nl/modules/date.json b/public/locales/nl/modules/date.json index 1c37cdad7..21c7e9597 100644 --- a/public/locales/nl/modules/date.json +++ b/public/locales/nl/modules/date.json @@ -8,24 +8,24 @@ "label": "Volledige tijd weergeven (24-uur)" }, "dateFormat": { - "label": "", + "label": "Datumopmaak", "data": { - "hide": "" + "hide": "Datum verbergen" } }, "enableTimezone": { - "label": "" + "label": "Een aangepaste tijdzone weergeven" }, "timezoneLocation": { - "label": "" + "label": "Tijdzone Locatie" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Stad en tijdzone", + "city": "Alleen stad", + "none": "Geen" } } } diff --git a/public/locales/nl/modules/dns-hole-controls.json b/public/locales/nl/modules/dns-hole-controls.json index f8daba13b..29f896385 100644 --- a/public/locales/nl/modules/dns-hole-controls.json +++ b/public/locales/nl/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "", - "description": "" + "name": "Controle DNS-gat", + "description": "Bedien PiHole of AdGuard vanaf je dashboard", + "settings": { + "title": "Instellingen DNS-gatcontrole", + "showToggleAllButtons": { + "label": "Toon de knoppen 'Alles inschakelen/uitschakelen" + } + }, + "errors": { + "general": { + "title": "Kan geen DNS-gat vinden", + "text": "Er is een probleem opgetreden bij de verbinding met uw DNS-gat(en). Controleer uw configuratie/integratie(s)." + } + } } } \ No newline at end of file diff --git a/public/locales/nl/modules/dns-hole-summary.json b/public/locales/nl/modules/dns-hole-summary.json index 9586d76c1..a4b8f7e25 100644 --- a/public/locales/nl/modules/dns-hole-summary.json +++ b/public/locales/nl/modules/dns-hole-summary.json @@ -1,26 +1,26 @@ { "descriptor": { - "name": "", - "description": "", + "name": "DNS-gat samenvatting", + "description": "Toont belangrijke gegevens van PiHole of AdGuard", "settings": { - "title": "", + "title": "Instellingen voor DNS-gatenoverzicht", "usePiHoleColors": { - "label": "" + "label": "Gebruik kleuren van PiHole" }, "layout": { "label": "Indeling", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 bij 2", + "row": "Horizontaal", + "column": "Verticaal" } } } }, "card": { "metrics": { - "domainsOnAdlist": "", - "queriesToday": "", + "domainsOnAdlist": "Domeinen op adlists", + "queriesToday": "Vragen vandaag", "queriesBlockedTodayPercentage": "", "queriesBlockedToday": "" } diff --git a/public/locales/nl/modules/iframe.json b/public/locales/nl/modules/iframe.json index ba8a76396..180dd961b 100644 --- a/public/locales/nl/modules/iframe.json +++ b/public/locales/nl/modules/iframe.json @@ -11,35 +11,35 @@ "label": "Volledig scherm toestaan" }, "allowTransparency": { - "label": "" + "label": "Transparantie toestaan" }, "allowScrolling": { - "label": "" + "label": "Scrollen toestaan" }, "allowPayment": { - "label": "" + "label": "Betaling toestaan" }, "allowAutoPlay": { - "label": "" + "label": "Automatisch afspelen toestaan" }, "allowMicrophone": { - "label": "" + "label": "Microfoon toestaan" }, "allowCamera": { - "label": "" + "label": "Camera toestaan" }, "allowGeolocation": { - "label": "" + "label": "Geolocatie toestaan" } } }, "card": { "errors": { "noUrl": { - "title": "", + "title": "Ongeldige URL", "text": "Zorg ervoor dat je een geldig adres hebt ingevoerd in de configuratie van je widget" }, - "browserSupport": "" + "browserSupport": "Uw browser ondersteunt geen iframes. Update uw browser." } } } diff --git a/public/locales/nl/modules/media-requests-list.json b/public/locales/nl/modules/media-requests-list.json index 4c3480cf5..bf75c0d7f 100644 --- a/public/locales/nl/modules/media-requests-list.json +++ b/public/locales/nl/modules/media-requests-list.json @@ -5,31 +5,29 @@ "settings": { "title": "Lijst met mediaverzoeken", "replaceLinksWithExternalHost": { - "label": "" + "label": "Links vervangen door externe host" }, "openInNewTab": { - "label": "" + "label": "Links in nieuw tabblad openen" } } }, "noRequests": "Geen verzoeken gevonden. Zorg ervoor dat u uw apps correct hebt geconfigureerd.", - "pending": "Er zijn {{countPendingApproval}} aanvragen die wachten op goedkeuring.", - "nonePending": "Er zijn momenteel geen lopende goedkeuringen. Je bent klaar om te gaan!", "state": { "approved": "Goedgekeurd", "pendingApproval": "In afwachting van goedkeuring", "declined": "Afgewezen" }, "tooltips": { - "approve": "", - "decline": "", - "approving": "" + "approve": "Verzoeken goedkeuren", + "decline": "Verzoeken weigeren", + "approving": "Verzoek goedkeuren..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Goedkeuring", + "declining": "Afnemend", + "request": "verzoek...", + "approved": "Aanvraag goedgekeurd!", + "declined": "Verzoek afgewezen!" } } diff --git a/public/locales/nl/modules/media-requests-stats.json b/public/locales/nl/modules/media-requests-stats.json index e933ddddd..654f7a3da 100644 --- a/public/locales/nl/modules/media-requests-stats.json +++ b/public/locales/nl/modules/media-requests-stats.json @@ -5,23 +5,23 @@ "settings": { "title": "Mediaverzoeken statistieken", "replaceLinksWithExternalHost": { - "label": "" + "label": "Links vervangen door externe host" }, "openInNewTab": { - "label": "" + "label": "Links in nieuw tabblad openen" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Media statistieken", + "pending": "Wachtende goedkeuringen", + "tvRequests": "TV verzoeken", + "movieRequests": "Film verzoeken", + "approved": "Reeds goedgekeurd", + "totalRequests": "Totaal" }, "userStats": { - "title": "", - "requests": "" + "title": "Top gebruikers", + "requests": "Verzoeken: {{number}}" } } diff --git a/public/locales/nl/modules/media-server.json b/public/locales/nl/modules/media-server.json index 4ff494171..71b5472de 100644 --- a/public/locales/nl/modules/media-server.json +++ b/public/locales/nl/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Instellingen voor media server widget" } }, - "loading": "", + "loading": "Stromen laden", "card": { "table": { "header": { diff --git a/public/locales/nl/modules/notebook.json b/public/locales/nl/modules/notebook.json index 3ad2a768e..4e6d52923 100644 --- a/public/locales/nl/modules/notebook.json +++ b/public/locales/nl/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Notebook", + "description": "Een op markdown gebaseerde interactieve widget om je notities op te schrijven!", "settings": { - "title": "", + "title": "Instellingen voor de notebook widget", "showToolbar": { + "label": "Toon de werkbalk om je te helpen markdown te schrijven" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "De inhoud van het notitieboek" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/nl/modules/rss.json b/public/locales/nl/modules/rss.json index f7504dd95..bddbaf742 100644 --- a/public/locales/nl/modules/rss.json +++ b/public/locales/nl/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget", - "description": "", + "description": "Met de rss-widget kun je RSS-feeds weergeven op je dashboard.", "settings": { "title": "Instellingen voor RSS widget", "rssFeedUrl": { @@ -12,11 +12,11 @@ "label": "Verversingsinterval (in minuten)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "HTML-opmaak toestaan (Gevaarlijk)", + "info": "HTML-opmaak van buitenaf toestaan kan gevaarlijk zijn.
Zorg ervoor dat de feed afkomstig is van een betrouwbare bron." }, "textLinesClamp": { - "label": "" + "label": "Tekstregels klem" } }, "card": { diff --git a/public/locales/nl/modules/torrents-status.json b/public/locales/nl/modules/torrents-status.json index cdecc786d..32d2bd435 100644 --- a/public/locales/nl/modules/torrents-status.json +++ b/public/locales/nl/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Afgeronde torrents weergeven" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Toon verouderde torrents" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Label lijst", "description": "Als \"is whitelist\" is aangevinkt, is dit een witte lijst. Indien niet aangevinkt, is dit een zwarte lijst. Doet niets als hij leeg is" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Fout", - "lastUpdated": "Laatst bijgewerkt {{time}} geleden" + "lastUpdated": "Laatst bijgewerkt {{time}} geleden", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -59,12 +71,12 @@ }, "generic": { "title": "Er is een onverwachte fout opgetreden", - "text": "" + "text": "Kan niet communiceren met je Torrent-clients. Controleer je configuratie" } }, "loading": { - "title": "", - "description": "" + "title": "Laden", + "description": "Verbinding maken" }, "popover": { "introductionPrefix": "Beheerd door", diff --git a/public/locales/nl/modules/weather.json b/public/locales/nl/modules/weather.json index 0f6344e08..7b8f593d6 100644 --- a/public/locales/nl/modules/weather.json +++ b/public/locales/nl/modules/weather.json @@ -8,7 +8,7 @@ "label": "Weergeven in Fahrenheit" }, "displayCityName": { - "label": "" + "label": "Plaatsnaam weergeven" }, "location": { "label": "Weerslocatie" @@ -33,5 +33,5 @@ "unknown": "Onbekend" } }, - "error": "" + "error": "Er is een fout opgetreden" } diff --git a/public/locales/nl/password-requirements.json b/public/locales/nl/password-requirements.json new file mode 100644 index 000000000..7898b4bfb --- /dev/null +++ b/public/locales/nl/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inclusief aantal", + "lowercase": "Inclusief kleine letter", + "uppercase": "Inclusief hoofdletter", + "special": "Inclusief speciaal teken", + "length": "Bevat ten minste {{count}} tekens" +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/access.json b/public/locales/nl/settings/customization/access.json new file mode 100644 index 000000000..5c93d2e16 --- /dev/null +++ b/public/locales/nl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anoniem toestaan", + "description": "Niet-ingelogde gebruikers je forum laten bekijken" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/customization/general.json b/public/locales/nl/settings/customization/general.json index 5003a2b12..c148b3223 100644 --- a/public/locales/nl/settings/customization/general.json +++ b/public/locales/nl/settings/customization/general.json @@ -18,8 +18,12 @@ "description": "Pas de achtergrond, kleuren en het uiterlijk van de app aan" }, "accessibility": { + "name": "Toegankelijkheid", + "description": "Homarr configureren voor gehandicapte gebruikers" + }, + "access": { "name": "", - "description": "" + "description": "Configureren wie toegang heeft tot je board" } } } diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json index 14bfcc6eb..2cb430867 100644 --- a/public/locales/nl/settings/customization/page-appearance.json +++ b/public/locales/nl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Pas uw dashboard verder aan met behulp van CSS, alleen aanbevolen voor ervaren gebruikers", "placeholder": "Eigen CSS wordt als laatste toegepast", "applying": "CSS toepassen..." - }, - "buttons": { - "submit": "Indienen" } -} +} \ No newline at end of file diff --git a/public/locales/nl/settings/general/cache-buttons.json b/public/locales/nl/settings/general/cache-buttons.json index 685994c48..03efd4c59 100644 --- a/public/locales/nl/settings/general/cache-buttons.json +++ b/public/locales/nl/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Cache opschonen", "selector": { - "label": "", + "label": "Selecteer de cache(s) om te wissen", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Ping-query's", + "repositoryIcons": "Verafgelegen/Lokaal pictogrammen", + "calendar&medias": "Media uit de kalender", + "weather": "Weergegevens" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Cache gewist", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Alle cache wissen", + "notificationMessage": "Alle cache is gewist" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Verwijder geselecteerde zoekopdrachten", + "notificationMessageSingle": "Cache voor {{value}} is gewist", + "notificationMessageMulti": "Cache voor {{values}} is gewist" } } } \ No newline at end of file diff --git a/public/locales/nl/settings/general/edit-mode-toggle.json b/public/locales/nl/settings/general/edit-mode-toggle.json index 48db137f8..0f4275492 100644 --- a/public/locales/nl/settings/general/edit-mode-toggle.json +++ b/public/locales/nl/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Bewerkingsmodus schakelen", + "enable": "Bewerkingsmodus inschakelen", + "disable": "Bewerkingsmodus uitschakelen" }, "form": { - "label": "", - "message": "", + "label": "Wachtwoord bewerken", + "message": "Om de bewerkingsmodus aan te zetten, moet u het wachtwoord invoeren dat u hebt ingevoerd in de omgevingsvariabele met de naam EDIT_MODE_PASSWORD . Als deze niet is ingesteld, kunt u de bewerkingsmodus niet in- en uitschakelen.", "submit": "Indienen" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Succes", + "message": "Bewerkingsmodus met succes ingeschakeld, pagina opnieuw geladen..." }, "error": { "title": "Fout", - "message": "" + "message": "Het is niet gelukt om de bewerkingsmodus om te schakelen, probeer het opnieuw." } } } \ No newline at end of file diff --git a/public/locales/nl/settings/general/search-engine.json b/public/locales/nl/settings/general/search-engine.json index f50583138..812bd13e3 100644 --- a/public/locales/nl/settings/general/search-engine.json +++ b/public/locales/nl/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Zoekmachine", "configurationName": "Zoekmachine configuratie", - "custom": "", + "custom": "Aangepast", "tips": { "generalTip": "U kunt meerdere voorvoegsels gebruiken! Door deze voor uw zoekopdracht toe te voegen worden de resultaten gefilterd. !s (Web), !t (Torrents), !y (YouTube), en !m (Media).", "placeholderTip": "%s kan worden gebruikt als plaatshouder voor de query." diff --git a/public/locales/nl/tools/docker.json b/public/locales/nl/tools/docker.json new file mode 100644 index 000000000..edb195413 --- /dev/null +++ b/public/locales/nl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Docker is niet geconfigureerd in je Homarr instance of het is mislukt om containers op te halen. Raadpleeg de documentatie over het opzetten van de integratie." + } + }, + "modals": { + "selectBoard": { + "title": "Kies een bord", + "text": "Kies het bord waar je de apps voor de geselecteerde Docker-containers wilt toevoegen.", + "form": { + "board": { + "label": "Raad van bestuur" + }, + "submit": "Apps toevoegen" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Apps toegevoegd aan bord", + "message": "De apps voor de geselecteerde Docker-containers zijn toegevoegd aan het bord." + }, + "error": { + "title": "Het is niet gelukt apps toe te voegen aan het bord", + "message": "De apps voor de geselecteerde Docker-containers konden niet worden toegevoegd aan het bord." + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/user/preferences.json b/public/locales/nl/user/preferences.json new file mode 100644 index 000000000..3b17aafba --- /dev/null +++ b/public/locales/nl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Voorkeuren", + "pageTitle": "Uw voorkeuren", + "boards": { + "defaultBoard": { + "label": "Standaardkaart" + } + }, + "accessibility": { + "title": "Toegankelijkheid", + "disablePulse": { + "label": "Ping-puls uitschakelen", + "description": "Standaard pingen de ping-indicatoren in Homarr. Dit kan irritant zijn. Deze schuifknop deactiveert de animatie" + }, + "replaceIconsWithDots": { + "label": "Ping-punten vervangen door pictogrammen", + "description": "Voor kleurenblinde gebruikers kunnen ping-punten onherkenbaar zijn. Dit vervangt indicatoren door pictogrammen" + } + }, + "localization": { + "language": { + "label": "Taal" + }, + "firstDayOfWeek": { + "label": "Eerste dag van de week", + "options": { + "monday": "Maandag", + "saturday": "Zaterdag", + "sunday": "Zondag" + } + } + }, + "searchEngine": { + "title": "Zoekmachine", + "custom": "Aangepast", + "newTab": { + "label": "Open zoekresultaten in een nieuw tabblad" + }, + "autoFocus": { + "label": "Focus zoekbalk bij het laden van de pagina.", + "description": "Hierdoor wordt de zoekbalk automatisch scherpgesteld wanneer je naar de pagina's van het forum navigeert. Het werkt alleen op desktopapparaten." + }, + "template": { + "label": "Query URL", + "description": "Gebruik %s als plaatshouder voor de query" + } + } +} \ No newline at end of file diff --git a/public/locales/nl/widgets/draggable-list.json b/public/locales/nl/widgets/draggable-list.json index 5d27e99ad..b803f9793 100644 --- a/public/locales/nl/widgets/draggable-list.json +++ b/public/locales/nl/widgets/draggable-list.json @@ -1,7 +1,7 @@ { "noEntries": { - "title": "", - "text": "" + "title": "Geen inzendingen", + "text": "Gebruik de knoppen hieronder om meer items toe te voegen" }, - "buttonAdd": "" + "buttonAdd": "Voeg toe" } diff --git a/public/locales/nl/zod.json b/public/locales/nl/zod.json new file mode 100644 index 000000000..43ca8a9ce --- /dev/null +++ b/public/locales/nl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dit veld is ongeldig", + "required": "Dit veld is verplicht", + "string": { + "startsWith": "Dit veld moet beginnen met {{startsWith}}", + "endsWith": "Dit veld moet eindigen op {{endsWith}}", + "includes": "Dit veld moet {{includes}}bevatten." + }, + "tooSmall": { + "string": "Dit veld moet minstens {{minimum}} tekens lang zijn", + "number": "Dit veld moet groter of gelijk zijn aan {{minimum}}" + }, + "tooBig": { + "string": "Dit veld mag maximaal {{maximum}} tekens lang zijn", + "number": "Dit veld moet kleiner of gelijk zijn aan {{maximum}}" + }, + "custom": { + "passwordMatch": "Wachtwoorden moeten overeenkomen" + } + } +} \ No newline at end of file diff --git a/public/locales/no/authentication/invite.json b/public/locales/no/authentication/invite.json new file mode 100644 index 000000000..fb1240c3c --- /dev/null +++ b/public/locales/no/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Opprett konto", + "title": "Opprett konto", + "text": "Vennligst angi innloggingsinformasjonen under", + "form": { + "fields": { + "username": { + "label": "Brukernavn" + }, + "password": { + "label": "Passord" + }, + "passwordConfirmation": { + "label": "Bekreft passord" + } + }, + "buttons": { + "submit": "Opprett konto" + } + }, + "notifications": { + "loading": { + "title": "Oppretter konto", + "text": "Vennligst vent" + }, + "success": { + "title": "Konto opprettet", + "text": "Kontoen din er opprettet" + }, + "error": { + "title": "Feil", + "text": "Noe gikk galt, fikk følgende feil: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/no/authentication/login.json b/public/locales/no/authentication/login.json index a2f47329a..be3e68aba 100644 --- a/public/locales/no/authentication/login.json +++ b/public/locales/no/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Logg Inn", "title": "Velkommen tilbake!", - "text": "Skriv inn passord", + "text": "Vennligst skriv inn påloggingsinformasjonen din", "form": { "fields": { + "username": { + "label": "Brukernavn" + }, "password": { - "label": "Passord", - "placeholder": "Ditt passord" + "label": "Passord" } }, "buttons": { "submit": "Logg inn" - } + }, + "afterLoginRedirection": "Etter pålogging blir du omdirigert til {{url}}" }, - "notifications": { - "checking": { - "title": "Sjekker passordet ditt", - "message": "Ditt passord blir sjekket..." - }, - "correct": { - "title": "Innlogging vellykket, omdirigerer..." - }, - "wrong": { - "title": "Passordet du skrev inn er feil, prøv igjen." - } - } -} + "alert": "Påloggingsinformasjonen din er feil eller denne kontoen eksisterer ikke. Vennligst prøv på nytt." +} \ No newline at end of file diff --git a/public/locales/no/boards/common.json b/public/locales/no/boards/common.json new file mode 100644 index 000000000..aa784b77c --- /dev/null +++ b/public/locales/no/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Tilpass tavle" + } +} \ No newline at end of file diff --git a/public/locales/no/boards/customize.json b/public/locales/no/boards/customize.json new file mode 100644 index 000000000..825bec1f5 --- /dev/null +++ b/public/locales/no/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Tilpass {{name}} tavle", + "pageTitle": "Tilpasning til {{name}} tavle", + "backToBoard": "Tilbake til tavlen", + "settings": { + "appearance": { + "primaryColor": "Primærfarge", + "secondaryColor": "Sekundærfarge" + } + }, + "save": { + "button": "Lagre endringer", + "note": "Forsiktig, du har ulagrede endringer!" + }, + "notifications": { + "pending": { + "title": "Lagrer tilpasning", + "message": "Vennligst vent mens vi lagrer tilpasningen din" + }, + "success": { + "title": "Tilpasningen er lagret", + "message": "Tilpasningen din er lagret" + }, + "error": { + "title": "Feil", + "message": "Kan ikke lagre endringer" + } + } +} \ No newline at end of file diff --git a/public/locales/no/common.json b/public/locales/no/common.json index 74aef7c71..1fc22fd99 100644 --- a/public/locales/no/common.json +++ b/public/locales/no/common.json @@ -1,15 +1,21 @@ { "save": "Lagre", + "apply": "Bruk", + "insert": "Sett inn", "about": "Info", "cancel": "Avbryt", "close": "Lukk", + "back": "Tilbake", "delete": "Slett", "ok": "OK", "edit": "Rediger", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", + "next": "Neste", + "previous": "Tidligere", + "confirm": "Bekreft", + "enabled": "Aktivert", + "disabled": "Deaktivert", + "enableAll": "Aktiver alle", + "disableAll": "Deaktiver alle", "version": "Versjon", "changePosition": "Endre posisjon", "remove": "Fjern", @@ -36,5 +42,14 @@ "medium": "middels", "large": "stor" }, - "seeMore": "" + "seeMore": "Se mer...", + "position": { + "left": "Venstre", + "center": "Midtstilt", + "right": "Høyre" + }, + "attributes": { + "width": "Bredde", + "height": "Høyde" + } } \ No newline at end of file diff --git a/public/locales/no/layout/common.json b/public/locales/no/layout/common.json index 4f4c4e6b4..8c6b66d11 100644 --- a/public/locales/no/layout/common.json +++ b/public/locales/no/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Popup-vinduer blokkert", + "text": "Nettleseren din har blokkert Homarr fra å få tilgang til sitt API. Dette er oftest forårsaket av AdBlockere eller nektet tillatelser. Homarr kan ikke be om tillatelser automatisk.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Klikk på ikonet ved siden av URL-en og kontroller tillatelsene. Tillat popup-vinduer og vinduer", + "adBlockers": "Deaktiver annonseblokkere og sikkerhetsverktøy fra nettleseren din", + "otherBrowser": "Prøv en annen nettleser" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Åpne alt i ny fane" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Flytte opp", + "moveDown": "Flytt ned", + "addCategory": "Legg til kategori {{location}}", + "addAbove": "over", + "addBelow": "under" } } \ 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 d67153ec9..cc4ba91b2 100644 --- a/public/locales/no/layout/element-selector/selector.json +++ b/public/locales/no/layout/element-selector/selector.json @@ -8,18 +8,18 @@ "actionIcon": { "tooltip": "Legg til en flis" }, - "apps": "", + "apps": "Apper", "app": { - "defaultName": "" + "defaultName": "Din app" }, - "widgets": "", - "categories": "", + "widgets": "Widgetter", + "categories": "Kategorier", "category": { - "newName": "", - "defaultName": "", + "newName": "Navn på ny kategori", + "defaultName": "Ny kategori", "created": { - "title": "", - "message": "" + "title": "Kategori opprettet", + "message": "Kategorien \"{{name}}\" er opprettet" } } } diff --git a/public/locales/no/layout/errors/access-denied.json b/public/locales/no/layout/errors/access-denied.json new file mode 100644 index 000000000..a17eef824 --- /dev/null +++ b/public/locales/no/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Ingen tilgang", + "text": "Du har ikke tilstrekkelige tillatelser til å få tilgang til denne siden. Hvis du mener at dette ikke stemmer, vennligst kontakt administratoren din.", + "switchAccount": "Bytt til en annen konto" +} \ No newline at end of file diff --git a/public/locales/no/layout/errors/not-found.json b/public/locales/no/layout/errors/not-found.json index 9e26dfeeb..a845aa56d 100644 --- a/public/locales/no/layout/errors/not-found.json +++ b/public/locales/no/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Side ikke funnet", + "text": "Denne siden ble ikke funnet. URL-en for denne siden kan ha utløpt, URL-en er ugyldig eller du har nå de nødvendige tillatelsene for å få tilgang til denne ressursen.", + "button": "Gå hjem" +} \ No newline at end of file diff --git a/public/locales/no/layout/header.json b/public/locales/no/layout/header.json new file mode 100644 index 000000000..db5cc4b87 --- /dev/null +++ b/public/locales/no/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Dette er et eksperimentelt funksjon i Homarr. Vennligst rapporter eventuelle problemer på GitHub eller Discord." + }, + "search": { + "label": "Søk", + "engines": { + "web": "Søk etter {{query}} på nettet", + "youtube": "Søk etter {{query}} på YouTube", + "torrent": "Søk etter {{query}} torrenter", + "movie": "Søk etter {{query}} på {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Bytt tema", + "preferences": "Brukerinnstillinger", + "defaultBoard": "Standard dashbord", + "manage": "Endre", + "logout": "Logg ut fra {{username}}", + "login": "Logg Inn" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Topp {{count}} resultater for {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/no/layout/header/actions/toggle-edit-mode.json b/public/locales/no/layout/header/actions/toggle-edit-mode.json index 83b2d99fc..0e80b9d2b 100644 --- a/public/locales/no/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/no/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Redigeringsmodus er aktivert for <1>{{size}} størrelse", "text": "Du kan justere og konfigurere appene nå. Endringer er ikke lagret før du avslutter redigeringsmodus" }, - "unloadEvent": "" + "unloadEvent": "Gå ut av redigeringsmodus for å lagre endringene" } diff --git a/public/locales/no/layout/manage.json b/public/locales/no/layout/manage.json new file mode 100644 index 000000000..a2cde1f12 --- /dev/null +++ b/public/locales/no/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Hjem" + }, + "boards": { + "title": "Tavler" + }, + "users": { + "title": "Brukere", + "items": { + "manage": "Endre", + "invites": "Invitasjoner" + } + }, + "help": { + "title": "Hjelp", + "items": { + "documentation": "Dokumentasjon", + "report": "Rapporter problem/feil", + "discord": "Discord", + "contribute": "Bidra" + } + }, + "tools": { + "title": "Verktøy", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Info" + } + } +} \ No newline at end of file diff --git a/public/locales/no/layout/modals/about.json b/public/locales/no/layout/modals/about.json index de9bfa673..5883f7920 100644 --- a/public/locales/no/layout/modals/about.json +++ b/public/locales/no/layout/modals/about.json @@ -1,21 +1,22 @@ { "description": "Homarr er et sleek, moderne dashbord som legger alle apper og tjenester ved fingertuppene dine. Med Homarr, kan du få tilgang til og kontrollere alt på et bekvemt sted. Homarr sømløst integrerer med appene du har lagt til, gir deg verdifull informasjon og gir deg full kontroll. Installasjon er en lek, og Homarr støtter en lang rekke distribusjonsmetoder.", - "contact": "Har du problemer med eller spørsmål? Ta kontakt med oss!", "addToDashboard": "Legg til på dashbord", "tip": "Mod refererer til endringstasten din, den er Ctrl og Command/Super/Windows tasten", "key": "Hurtigtast", "action": "Handling", "keybinds": "Hurtigtaster", - "documentation": "", + "translators": "Oversettere ({{count}})", + "translatorsDescription": "Takket være disse menneskene er Homarr tilgjengelig på {{languages}} språk! Vil du hjelpe med å oversette Homarr til ditt språk? Les hvordan du kan bidra her.", + "contributors": "Bidragsytere ({{count}})", + "contributorsDescription": "Disse menneskene har bygget koden som får homarr til å fungere! Vil du være med å bygge Homarr? Les hvordan du kan bidra her", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Veksle mellom lys/mørk modus", + "focusSearchBar": "Fokuser på søkefeltet", + "openDocker": "Åpne docker-widget", + "toggleEdit": "Veksle redigeringsmodus" }, "metrics": { "configurationSchemaVersion": "Konfigurasjonsskjema versjon", - "configurationsCount": "Tilgjengelige konfigurasjoner", "version": "Versjon", "nodeEnvironment": "Node miljø", "i18n": "Lastet I18n oversettelsesnavneområder", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EXPERIMENTAL: Deaktivere redigeringsmodus" }, "version": { - "new": "", - "dropdown": "" + "new": "Nytt: {{newVersion}}", + "dropdown": "Versjon {{newVersion}} er tilgjengelig! Gjeldende versjon er {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/no/layout/modals/add-app.json b/public/locales/no/layout/modals/add-app.json index a2741f3a6..371ecbe64 100644 --- a/public/locales/no/layout/modals/add-app.json +++ b/public/locales/no/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Intern adresse", - "description": "Intern IP-adresse til appen." + "description": "Intern IP-adresse til appen.", + "troubleshoot": { + "label": "Opplever du problemer?", + "header": "Her er en liste over vanlige feil og feilsøking:", + "lines": { + "nothingAfterPort": "Du bør, i de fleste om ikke alle tilfeller, ikke legge inn noen bane etter porten. (Til og med '/admin' for pihole eller '/web' for plex)", + "protocolCheck": "Sørg alltid for at URL-en er innledet med http eller https, og forsikre deg om at du bruker den riktige.", + "preferIP": "Det anbefales å bruke den direkte ip-en til maskinen eller containeren du prøver å kommunisere med.", + "enablePings": "Sjekk at IP-en er riktig ved å aktivere ping. Tilpass Tavle -> Layout -> Aktiver ping. En liten rød eller grønn boble vil dukke opp på app-flisene dine, og ved å sveve den vil du få svarkoden (en grønn boble med kode 200 forventes i de fleste tilfeller).", + "wget": "For å være sikker på at homarr kan kommunisere med de andre appene, sørg for å wget/curl/pinge appens IP:port.", + "iframe": "Når det gjelder iframes, bør de alltid bruke samme protokoll (http/s) som Homarr.", + "clearCache": "Noe informasjon er registrert i cache, så en integrasjon vil kanskje ikke fungere med mindre du tømmer cachen i Homarrs generelle alternativer." + }, + "footer": "For mer feilsøking, kontakt vår {{discord}}." + } }, "externalAddress": { "label": "Ekstern adresse", @@ -26,10 +40,10 @@ "description": "Åpne appen i en ny fane i stedet for denne." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Applikasjonsbeskrivelse", + "description": "Teksten du skriver inn vises når du holder musepekeren over appen din.\r\nBruk dette for å gi brukerne flere detaljer om appen din eller la stå tomt for å ikke ha noe." }, - "customProtocolWarning": "" + "customProtocolWarning": "Å bruke en ikke-standard protokoll. Dette kan kreve forhåndsinstallerte programmer og kan introdusere sikkerhetsrisikoer. Sørg for at adressen din er sikker og pålitelig." }, "network": { "statusChecker": { @@ -44,7 +58,7 @@ "appearance": { "icon": { "label": "App ikon", - "description": "", + "description": "Begynn å skrive for å finne et ikon. Du kan også lime inn en bilde-URL for å bruke et tilpasset ikon.", "autocomplete": { "title": "Ingen resultater funnet", "text": "Prøv å bruke et mer spesifikt søkeord. Hvis du ikke finner det ønskede ikonet, lim inn URL adressen for et egendefinert ikon" @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Appnavn Skriftstørrelse", + "description": "Angi skriftstørrelsen for når appnavnet vises på flisen." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Appnavnstatus", + "description": "Velg hvor du vil at tittelen skal vises, eller ikke i det hele tatt.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Vis kun tittel på flis", + "hover": "Vis tittel kun når du holder musepekeren over", + "hidden": "Ikke vis i det hele tatt" } }, "positionAppName": { - "label": "", - "description": "", + "label": "App navn posisjon", + "description": "Plassering av appens navn i forhold til ikonet.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Topp", + "right": "Høyre", + "bottom": "Bunn", + "left": "Venstre" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "App navnelinjeklemme", + "description": "Definerer hvor mange linjer tittelen din skal ha plass til maksimalt. Sett 0 for ubegrenset." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Skjemaet inneholder ugyldig data. Derfor kan den ikke lagres. Vennligst løs alle problemer og klikk på denne knappen igjen for å lagre endringene dine", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Navn er påkrevd", + "noUrl": "URL er påkrevd", + "invalidUrl": "Verdien er ikke en gyldig nettadresse", + "noIconUrl": "Dette feltet er obligatorisk", + "noExternalUri": "Ekstern URI er obligatorisk", + "invalidExternalUri": "Ekstern URI er ikke en gyldig URI" } } diff --git a/public/locales/no/manage/boards.json b/public/locales/no/manage/boards.json new file mode 100644 index 000000000..8a651df51 --- /dev/null +++ b/public/locales/no/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tavler", + "pageTitle": "Tavler", + "cards": { + "statistics": { + "apps": "Apper", + "widgets": "Widgetter", + "categories": "Kategorier" + }, + "buttons": { + "view": "Vis tavle" + }, + "menu": { + "setAsDefault": "Angi som standardtavle", + "delete": { + "label": "Slett permanent", + "disabled": "Sletting er deaktivert fordi eldre Homarr-komponenter ikke tillater sletting av standardkonfigurasjonen. Sletting vil være mulig i fremtiden." + } + }, + "badges": { + "fileSystem": "Filsystem", + "default": "Standard" + } + }, + "buttons": { + "create": "Lag en ny tavle" + }, + "modals": { + "delete": { + "title": "Slett tavle", + "text": "Er du sikker på at du vil slette denne tavlen? Denne handlingen kan ikke angres og dataene dine går tapt permanent." + }, + "create": { + "title": "Opprett tavle", + "text": "Navnet kan ikke endres etter at en tavle er opprettet.", + "form": { + "name": { + "label": "Navn" + }, + "submit": "Opprett" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/manage/index.json b/public/locales/no/manage/index.json new file mode 100644 index 000000000..c32ecbae1 --- /dev/null +++ b/public/locales/no/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Endre", + "hero": { + "title": "Velkommen tilbake, {{username}}", + "fallbackUsername": "Anonym", + "subtitle": "Velkommen til Applikasjon Hub. Organiser, optimaliser og erobre!" + }, + "quickActions": { + "title": "Raske handlinger", + "boards": { + "title": "Dine tavler", + "subtitle": "Lag og administrer tavlene dine" + }, + "inviteUsers": { + "title": "Inviter en ny bruker", + "subtitle": "Opprett og send en invitasjon til registrering" + }, + "manageUsers": { + "title": "Administrer brukere", + "subtitle": "Slett og administrer brukerne dine" + } + } +} \ No newline at end of file diff --git a/public/locales/no/manage/users.json b/public/locales/no/manage/users.json new file mode 100644 index 000000000..440b7bebb --- /dev/null +++ b/public/locales/no/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Bruker" + } + }, + "tooltips": { + "deleteUser": "Slett bruker", + "demoteAdmin": "Degrader administrator", + "promoteToAdmin": "Oppgrader til administrator" + }, + "modals": { + "delete": { + "title": "Slett bruker {{name}}", + "text": "Er du sikker på at du vil slette brukeren {{name}}? Dette vil slette data knyttet til denne kontoen, men ikke eventuelle tavler som er opprettet av denne brukeren." + }, + "change-role": { + "promote": { + "title": "Promoter bruker {{name}} til administrator", + "text": "Er du sikker på at du vil promotere brukeren {{name}} til administrator? Dette vil gi brukeren tilgang til alle ressurser på Homarr-forekomsten." + }, + "demote": { + "title": "Degrader bruker {{name}} til bruker", + "text": "Er du sikker på at du vil degradere brukeren {{name}} til bruker? Dette vil fjerne brukerens tilgang til alle ressurser på Homarr-forekomsten." + }, + "confirm": "Bekreft" + } + }, + "searchDoesntMatch": "Søket ditt samsvarer ikke med noen oppføringer. Vennligst juster filteret ditt." +} \ No newline at end of file diff --git a/public/locales/no/manage/users/create.json b/public/locales/no/manage/users/create.json new file mode 100644 index 000000000..ab6b3ea2f --- /dev/null +++ b/public/locales/no/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Opprett bruker", + "steps": { + "account": { + "title": "Steg en", + "text": "Opprett konto", + "username": { + "label": "Brukernavn" + }, + "email": { + "label": "E-post" + } + }, + "security": { + "title": "Steg to", + "text": "Passord", + "password": { + "label": "Passord" + } + }, + "finish": { + "title": "Bekreftelse", + "text": "Lagre til database", + "card": { + "title": "Gjennomgå inndata", + "text": "Etter at du har sendt inn dataene dine til databasen, vil brukeren kunne logge inn. Er du sikker på at du vil lagre denne brukeren i databasen og aktivere påloggingen?" + }, + "table": { + "header": { + "property": "Egenskap", + "value": "Verdi", + "username": "Brukernavn", + "email": "E-post", + "password": "Passord" + }, + "notSet": "Ikke satt", + "valid": "Gyldig" + }, + "failed": "Brukeropprettelsen mislyktes: {{error}}" + }, + "completed": { + "alert": { + "title": "Bruker ble opprettet", + "text": "Brukeren ble opprettet i databasen. De kan nå logge inn." + } + } + }, + "buttons": { + "generateRandomPassword": "Generer tilfeldig", + "createAnother": "Lag en til" + } +} \ No newline at end of file diff --git a/public/locales/no/manage/users/invites.json b/public/locales/no/manage/users/invites.json new file mode 100644 index 000000000..fa7e67dc4 --- /dev/null +++ b/public/locales/no/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Brukerinvitasjoner", + "pageTitle": "Administrer brukerinvitasjoner", + "description": "Ved å bruke invitasjoner kan du invitere brukere til din Homarr-forekomst. En invitasjon vil kun være gyldig i et visst tidsrom og kan brukes én gang. Utløpet må være mellom 5 minutter og 12 måneder etter opprettelse.", + "button": { + "createInvite": "Lag invitasjon", + "deleteInvite": "Slett invitasjon" + }, + "table": { + "header": { + "id": "ID", + "creator": "Skaper", + "expires": "Utløper", + "action": "Handlinger" + }, + "data": { + "expiresAt": "utløpt {{at}}", + "expiresIn": "om {{in}}" + } + }, + "modals": { + "create": { + "title": "Lag invitasjon", + "description": "Etter utløpet vil en invitasjon ikke lenger være gyldig, og mottakeren av invitasjonen vil ikke kunne opprette en konto.", + "form": { + "expires": "Utløpsdato", + "submit": "Opprett" + } + }, + "copy": { + "title": "Kopier invitasjonen", + "description": "Invitasjonen din er generert. Etter at denne modalen lukkes, vil du ikke kunne kopiere denne lenken lenger. Hvis du ikke lenger ønsker å invitere personen, kan du slette denne invitasjonen når som helst.", + "invitationLink": "Invitasjonslenke", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopier og lukk" + } + }, + "delete": { + "title": "Slett invitasjon", + "description": "Er du sikker på at du vil slette denne invitasjonen? Brukere med denne koblingen vil ikke lenger kunne opprette en konto ved å bruke den linken." + } + }, + "noInvites": "Det er ingen invitasjoner ennå." +} \ No newline at end of file diff --git a/public/locales/no/modules/bookmark.json b/public/locales/no/modules/bookmark.json index 816eb09c4..5b804e215 100644 --- a/public/locales/no/modules/bookmark.json +++ b/public/locales/no/modules/bookmark.json @@ -1,43 +1,43 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Bokmerke", + "description": "Viser en statisk liste over strenger eller lenker", "settings": { - "title": "", + "title": "Bokmerkeinnstillinger", "name": { - "label": "", - "info": "" + "label": "Widget-tittel", + "info": "La stå tomt for å holde tittelen skjult." }, "items": { - "label": "" + "label": "Elementer" }, "layout": { "label": "Oppsett", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Automatisk tabell", + "horizontal": "Horisontal", + "vertical": "Vertikal" } } } }, "card": { "noneFound": { - "title": "", - "text": "" + "title": "Bokmerkelisten er tom", + "text": "Legg til nye elementer i denne listen i redigeringsmodus" } }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "Lengden må være mellom {{shortest}} og {{longest}}", + "invalidLink": "Ikke en gyldig link", + "errorMsg": "Lagret ikke fordi det var valideringsfeil. Tilpass verdiene" }, "name": "Navn", - "url": "", + "url": "URL", "newTab": "Åpne i ny fane", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Skjul vertsnavn", + "hideIcon": "Gjem ikon", "delete": "Slett" } } diff --git a/public/locales/no/modules/calendar.json b/public/locales/no/modules/calendar.json index c776856d3..dd436010a 100644 --- a/public/locales/no/modules/calendar.json +++ b/public/locales/no/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Viser en kalender med kommende utgivelser, fra støttede integrasjoner.", "settings": { "title": "Innstillinger for Kalender widget", - "useSonarrv4": { - "label": "Bruk Sonarr v4 API" - }, - "sundayStart": { - "label": "Start uken på søndag" - }, "radarrReleaseType": { "label": "Radarr utgivelsestype", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "På kino", + "physicalRelease": "Fysisk", + "digitalRelease": "Digitalt" } }, "hideWeekDays": { - "label": "" + "label": "Skjul ukedager" }, "showUnmonitored": { - "label": "" + "label": "Vis uovervåkede elementer" }, "fontSize": { - "label": "", + "label": "Skriftstørrelse", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Ekstra liten", + "sm": "Liten", + "md": "Medium", + "lg": "Stor", + "xl": "Ekstra stor" } } } diff --git a/public/locales/no/modules/dashdot.json b/public/locales/no/modules/dashdot.json index 8a01ea7e5..774f2eb2c 100644 --- a/public/locales/no/modules/dashdot.json +++ b/public/locales/no/modules/dashdot.json @@ -5,7 +5,7 @@ "settings": { "title": "Innstillinger for Dash. widget", "dashName": { - "label": "" + "label": "Dash. Navn" }, "url": { "label": "Dash. URL" diff --git a/public/locales/no/modules/date.json b/public/locales/no/modules/date.json index b623c6baa..314c06f1a 100644 --- a/public/locales/no/modules/date.json +++ b/public/locales/no/modules/date.json @@ -8,24 +8,24 @@ "label": "Vis 24 timers formatering" }, "dateFormat": { - "label": "", + "label": "Datoformatering", "data": { - "hide": "" + "hide": "Skjul dato" } }, "enableTimezone": { - "label": "" + "label": "Vis en egendefinert tidssone" }, "timezoneLocation": { - "label": "" + "label": "Tidssone plassering" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "By og tidssone", + "city": "Kun by", + "none": "Ingen" } } } diff --git a/public/locales/no/modules/dns-hole-controls.json b/public/locales/no/modules/dns-hole-controls.json index f8daba13b..5f2d6e088 100644 --- a/public/locales/no/modules/dns-hole-controls.json +++ b/public/locales/no/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "", - "description": "" + "name": "DNS-hole kontroller", + "description": "Kontroller PiHole eller AdGuard fra dashbordet", + "settings": { + "title": "DNS-hull kontrollinnstillinger", + "showToggleAllButtons": { + "label": "Vis 'Aktiver/deaktiver alle'-knapper" + } + }, + "errors": { + "general": { + "title": "Kan ikke finne et DNS-hole", + "text": "Det oppsto et problem med å koble til ditt DNS-hole. Vennligst bekreft konfigurasjonen/integrasjonen(e)." + } + } } } \ No newline at end of file diff --git a/public/locales/no/modules/dns-hole-summary.json b/public/locales/no/modules/dns-hole-summary.json index 7c5a44554..54e6c9668 100644 --- a/public/locales/no/modules/dns-hole-summary.json +++ b/public/locales/no/modules/dns-hole-summary.json @@ -1,28 +1,28 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Oppsummering av DNS-hole", + "description": "Viser viktige data fra PiHole eller AdGuard", "settings": { - "title": "", + "title": "Innstillinger for DNS-hole sammendrag", "usePiHoleColors": { - "label": "" + "label": "Bruk farger fra PiHole" }, "layout": { "label": "Oppsett", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 gange 2", + "row": "Horisontal", + "column": "Vertikal" } } } }, "card": { "metrics": { - "domainsOnAdlist": "", - "queriesToday": "", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "domainsOnAdlist": "Domener på adlister", + "queriesToday": "Spørringer i dag", + "queriesBlockedTodayPercentage": "Blokkert i dag", + "queriesBlockedToday": "Blokkert i dag" } } } diff --git a/public/locales/no/modules/iframe.json b/public/locales/no/modules/iframe.json index 87013fd47..5ea2e1725 100644 --- a/public/locales/no/modules/iframe.json +++ b/public/locales/no/modules/iframe.json @@ -11,35 +11,35 @@ "label": "Tillat fullskjerm" }, "allowTransparency": { - "label": "" + "label": "Tillat gjennomsiktighet" }, "allowScrolling": { - "label": "" + "label": "Tillat skrolling" }, "allowPayment": { - "label": "" + "label": "Tillat betaling" }, "allowAutoPlay": { - "label": "" + "label": "Tillat automatisk avspilling" }, "allowMicrophone": { - "label": "" + "label": "Tillat mikrofon" }, "allowCamera": { - "label": "" + "label": "Tillat kamera" }, "allowGeolocation": { - "label": "" + "label": "Tillat geolokalisering" } } }, "card": { "errors": { "noUrl": { - "title": "", + "title": "Ugyldig URL", "text": "Sørg for at du har angitt en gyldig adresse i konfigurasjonen av widgeten din" }, - "browserSupport": "" + "browserSupport": "Nettleseren din støtter ikke iframes. Vennligst oppdater nettleseren din." } } } diff --git a/public/locales/no/modules/media-requests-list.json b/public/locales/no/modules/media-requests-list.json index 8ce11c7ba..43ab7bf6f 100644 --- a/public/locales/no/modules/media-requests-list.json +++ b/public/locales/no/modules/media-requests-list.json @@ -5,31 +5,29 @@ "settings": { "title": "Liste over media forespørsler", "replaceLinksWithExternalHost": { - "label": "" + "label": "Erstatt lenker med ekstern vert" }, "openInNewTab": { - "label": "" + "label": "Åpne lenker i ny fane" } } }, "noRequests": "Ingen forespørsler funnet. Vennligst skjekk at du har konfigurert appene dine riktig.", - "pending": "", - "nonePending": "Det er for tiden ingen ventende godkjenninger. Alt er klart!", "state": { "approved": "Godkjent", "pendingApproval": "Venter på godkjenning", "declined": "Avvist" }, "tooltips": { - "approve": "", - "decline": "", - "approving": "" + "approve": "Godkjenne forespørsler", + "decline": "Avslå forespørsler", + "approving": "Godkjenner forespørselen..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Godkjenner", + "declining": "Avslår", + "request": "forespør...", + "approved": "Forespørselen ble godkjent!", + "declined": "Forespørselen ble avvist!" } } diff --git a/public/locales/no/modules/media-requests-stats.json b/public/locales/no/modules/media-requests-stats.json index 86a7342f6..7694bdc26 100644 --- a/public/locales/no/modules/media-requests-stats.json +++ b/public/locales/no/modules/media-requests-stats.json @@ -5,23 +5,23 @@ "settings": { "title": "Statistikk for mediaforespørsler", "replaceLinksWithExternalHost": { - "label": "" + "label": "Erstatt lenker med ekstern vert" }, "openInNewTab": { - "label": "" + "label": "Åpne lenker i ny fane" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Media statistikk", + "pending": "Venter på godkjenning", + "tvRequests": "TV forespørsler", + "movieRequests": "Film forespørsler", + "approved": "Allerede godkjent", + "totalRequests": "Totalt" }, "userStats": { - "title": "", - "requests": "" + "title": "Topp brukere", + "requests": "Forespørsler: {{number}}" } } diff --git a/public/locales/no/modules/media-server.json b/public/locales/no/modules/media-server.json index 160277e95..b486164a3 100644 --- a/public/locales/no/modules/media-server.json +++ b/public/locales/no/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Innstillinger for media server widget" } }, - "loading": "", + "loading": "Laster strømminger", "card": { "table": { "header": { diff --git a/public/locales/no/modules/notebook.json b/public/locales/no/modules/notebook.json index 3ad2a768e..1fa8edf9a 100644 --- a/public/locales/no/modules/notebook.json +++ b/public/locales/no/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Notisbok", + "description": "En markdown-basert interaktiv widget for deg å skrive ned notatene dine!", "settings": { - "title": "", + "title": "Innstillinger for notisbokwidgeten", "showToolbar": { - "label": "" + "label": "Vis verktøylinjen for å hjelpe deg med å skrive markdown" + }, + "allowReadOnlyCheck": { + "label": "Tillat sjekk i skrivebeskyttet modus" }, "content": { - "label": "" + "label": "Innholdet i notatboken" } } + }, + "card": { + "controls": { + "bold": "Fet", + "italic": "Kursiv", + "strikethrough": "Gjennomstrek", + "underline": "Understrek", + "colorText": "Fargetekst", + "colorHighlight": "Farget uthevet tekst", + "code": "Kode", + "clear": "Fjern formatering", + "heading": "Overskrift {{level}}", + "align": "Juster tekst: {{position}}", + "blockquote": "Blokksitat", + "horizontalLine": "Horisontal linje", + "bulletList": "Punktliste", + "orderedList": "Sortert liste", + "checkList": "Sjekkliste", + "increaseIndent": "Øk innrykk", + "decreaseIndent": "Reduser innrykk", + "link": "Link", + "unlink": "Fjern lenke", + "image": "Bygg inn bilde", + "addTable": "Legg til tabell", + "deleteTable": "Slett tabell", + "colorCell": "Fargecelle", + "mergeCell": "Slå cellesammenslåing av/på", + "addColumnLeft": "Legg til kolonne før", + "addColumnRight": "Legg til kolonne etter", + "deleteColumn": "Slett kolonne", + "addRowTop": "Legg til rad før", + "addRowBelow": "Legg til rad etter", + "deleteRow": "Slett rad" + }, + "modals": { + "clearColor": "Fjern farge", + "source": "Kilde", + "widthPlaceholder": "Verdi i % eller piksler", + "columns": "Kolonner", + "rows": "Rader" + } } } \ No newline at end of file diff --git a/public/locales/no/modules/rss.json b/public/locales/no/modules/rss.json index 9f9362bbc..ee90bc4f8 100644 --- a/public/locales/no/modules/rss.json +++ b/public/locales/no/modules/rss.json @@ -1,22 +1,22 @@ { "descriptor": { "name": "RSS widget", - "description": "", + "description": "RSS-widgeten lar deg vise RSS-feeder på tavlen.", "settings": { "title": "Innstillinger for RSS widget", "rssFeedUrl": { - "label": "", - "description": "" + "label": "RSS-feed-URLer", + "description": "URL-ene til RSS-feedene du vil vise fra." }, "refreshInterval": { "label": "Oppdaterings intervall (i minutter)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Tillat HTML-formatering (farlig)", + "info": "Å tillate HTML-formatering utenfra kan være farlig.
Sørg for at feeden er fra en pålitelig kilde." }, "textLinesClamp": { - "label": "" + "label": "Tekstlinjer klemme" } }, "card": { diff --git a/public/locales/no/modules/torrents-status.json b/public/locales/no/modules/torrents-status.json index eaa33ccc5..3bb3dc204 100644 --- a/public/locales/no/modules/torrents-status.json +++ b/public/locales/no/modules/torrents-status.json @@ -10,22 +10,34 @@ "displayCompletedTorrents": { "label": "Vis fullførte torrenter" }, + "displayActiveTorrents": { + "label": "Vis aktive torrenter" + }, + "speedLimitOfActiveTorrents": { + "label": "Opplastingshastighet for å betrakte en torrent som aktiv (kB/s)" + }, "displayStaleTorrents": { "label": "Vis gamle torrenter" }, "labelFilterIsWhitelist": { - "label": "" + "label": "Etikettliste er en hviteliste (i stedet for svarteliste)" }, "labelFilter": { - "label": "", - "description": "" + "label": "Etikettliste", + "description": "Når \"er hviteliste\" er merket, vil dette fungere som en hviteliste. Hvis ikke krysset av, er dette en svarteliste. Vil ikke gjøre noe når den er tom" + }, + "displayRatioWithFilter": { + "label": "Vis filtrerte torrents listeforhold", + "info": "Hvis deaktivert, vil bare det globale forholdet vises. Det globale forholdet vil fortsatt bruke etikettene hvis angitt" } } }, "card": { "footer": { "error": "Feil", - "lastUpdated": "Sist oppdatert for {{time}} siden" + "lastUpdated": "Sist oppdatert for {{time}} siden", + "ratioGlobal": "Globalt forhold", + "ratioWithFilter": "Forhold med filter" }, "table": { "header": { @@ -41,7 +53,7 @@ }, "body": { "nothingFound": "Ingen torrenter funnet", - "filterHidingItems": "" + "filterHidingItems": "{{count}} oppføringer er skjult av filtre" } }, "lineChart": { @@ -59,12 +71,12 @@ }, "generic": { "title": "En uventet feil har oppstått", - "text": "" + "text": "Kan ikke kommunisere med Torrent-klientene dine. Vennligst sjekk konfigurasjonen din" } }, "loading": { - "title": "", - "description": "" + "title": "Laster", + "description": "Etablerer en forbindelse" }, "popover": { "introductionPrefix": "Administrert av", diff --git a/public/locales/no/modules/weather.json b/public/locales/no/modules/weather.json index 2838fd1e4..93acf21c1 100644 --- a/public/locales/no/modules/weather.json +++ b/public/locales/no/modules/weather.json @@ -8,7 +8,7 @@ "label": "Vis i Fahrenheit" }, "displayCityName": { - "label": "" + "label": "Vis bynavn" }, "location": { "label": "Vær plassering" @@ -33,5 +33,5 @@ "unknown": "Ukjent" } }, - "error": "" + "error": "En feil oppstod" } diff --git a/public/locales/no/password-requirements.json b/public/locales/no/password-requirements.json new file mode 100644 index 000000000..1df0d442c --- /dev/null +++ b/public/locales/no/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inkluderer nummer", + "lowercase": "Inkluderer liten bokstav", + "uppercase": "Inkluderer stor bokstav", + "special": "Inkluderer spesialtegn", + "length": "Inkluderer minst {{count}} tegn" +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/access.json b/public/locales/no/settings/customization/access.json new file mode 100644 index 000000000..62360fc05 --- /dev/null +++ b/public/locales/no/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Tillat anonyme", + "description": "Tillat brukere som ikke er logget inn til å se din tavle" + } +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/general.json b/public/locales/no/settings/customization/general.json index 3cb392ab8..0d490fa2a 100644 --- a/public/locales/no/settings/customization/general.json +++ b/public/locales/no/settings/customization/general.json @@ -18,8 +18,12 @@ "description": "Tilpass både bakgrunn, farger og apper" }, "accessibility": { - "name": "", - "description": "" + "name": "Hjelpemidler", + "description": "Konfigurer Homarr for funksjonshemmede og funksjonshemmede brukere" + }, + "access": { + "name": "Tilgang", + "description": "Konfigurer hvem som har tilgang til din tavle" } } } diff --git a/public/locales/no/settings/customization/page-appearance.json b/public/locales/no/settings/customization/page-appearance.json index 1d35c749d..480a24074 100644 --- a/public/locales/no/settings/customization/page-appearance.json +++ b/public/locales/no/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Videre kan du tilpasse dashbordet ved hjelp av CSS, dette er bare anbefalt for erfarne brukere", "placeholder": "Egendefinert CSS vil bli brukt sist", "applying": "Tar i bruk CSS..." - }, - "buttons": { - "submit": "Legg til" } -} +} \ No newline at end of file diff --git a/public/locales/no/settings/general/cache-buttons.json b/public/locales/no/settings/general/cache-buttons.json index 685994c48..3a9afadd7 100644 --- a/public/locales/no/settings/general/cache-buttons.json +++ b/public/locales/no/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Cache rensing", "selector": { - "label": "", + "label": "Velg cachen(e) som skal tømmes", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Ping-spørsmål", + "repositoryIcons": "Ekstern/lokale ikoner", + "calendar&medias": "Medier fra kalenderen", + "weather": "Værdata" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Buffer tømt", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Tøm all buffer", + "notificationMessage": "All cache er tømt" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Fjern valgte søk", + "notificationMessageSingle": "Buffer for {{value}} er tømt", + "notificationMessageMulti": "Buffer for {{values}} er tømt" } } } \ No newline at end of file diff --git a/public/locales/no/settings/general/edit-mode-toggle.json b/public/locales/no/settings/general/edit-mode-toggle.json index c033671da..93486ad33 100644 --- a/public/locales/no/settings/general/edit-mode-toggle.json +++ b/public/locales/no/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Bytt redigeringsmodus", + "enable": "Aktiver redigeringsmodus", + "disable": "Deaktiver redigeringsmodus" }, "form": { - "label": "", - "message": "", + "label": "Rediger passord", + "message": "For å bytte redigeringsmodus, må du skrive inn passordet du skrev inn i miljøvariabelen kalt EDIT_MODE_PASSWORD . Hvis det ikke er satt, kan du ikke slå redigeringsmodus av og på.", "submit": "Legg til" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Suksess", + "message": "Byttet redigeringsmodus, laster inn siden på nytt..." }, "error": { "title": "Feil", - "message": "" + "message": "Kunne ikke bytte redigeringsmodus. Prøv igjen." } } } \ No newline at end of file diff --git a/public/locales/no/settings/general/search-engine.json b/public/locales/no/settings/general/search-engine.json index 16cd6a4a9..7ccbf427b 100644 --- a/public/locales/no/settings/general/search-engine.json +++ b/public/locales/no/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Søkemotor", "configurationName": "Søkemotor konfigurasjon", - "custom": "", + "custom": "Tilpasset", "tips": { "generalTip": "Det finnes flere prefikser du kan bruke! Å legge til disse før spørringen vil filtrere resultatene. !s (Web), !t (Torrents), !y (YouTube), og !m (Media).", "placeholderTip": "%s kan brukes som plassholder for spørringen." diff --git a/public/locales/no/tools/docker.json b/public/locales/no/tools/docker.json new file mode 100644 index 000000000..70f359ea1 --- /dev/null +++ b/public/locales/no/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Din Homarr-forekomst har ikke Docker konfigurert eller den har mislyktes i å hente containere. Vennligst sjekk dokumentasjonen for hvordan du setter opp integrasjonen." + } + }, + "modals": { + "selectBoard": { + "title": "Velg en tavle", + "text": "Velg tavlen der du vil legge til appene for de valgte Docker-beholderne.", + "form": { + "board": { + "label": "Tavle" + }, + "submit": "Legg til apper" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Lagt apper til tavle", + "message": "Appene for de valgte Docker-beholderne er lagt til tavlen." + }, + "error": { + "title": "Kunne ikke legge til apper på tavlen", + "message": "Appene for de valgte Docker-beholderne kunne ikke legges til tavlen." + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/user/preferences.json b/public/locales/no/user/preferences.json new file mode 100644 index 000000000..74ed0bfb0 --- /dev/null +++ b/public/locales/no/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Innstillinger", + "pageTitle": "Dine innstillinger", + "boards": { + "defaultBoard": { + "label": "Standard tavle" + } + }, + "accessibility": { + "title": "Hjelpemiddel", + "disablePulse": { + "label": "Deaktivere ping puls", + "description": "Som standard vil Ping indikatorene i Homarr pulsere, dette kan være irriterende. Denne glidebryteren deaktiverer animasjonen" + }, + "replaceIconsWithDots": { + "label": "Erstatt ping prikker med ikoner", + "description": "For fargesblinde brukere kan det være ugjenkjennelig. Dette vil erstatte indikatorer med ikoner" + } + }, + "localization": { + "language": { + "label": "Språk" + }, + "firstDayOfWeek": { + "label": "Første dag i uken", + "options": { + "monday": "Mandag", + "saturday": "Lørdag", + "sunday": "Søndag" + } + } + }, + "searchEngine": { + "title": "Søkemotor", + "custom": "Tilpasset", + "newTab": { + "label": "Åpne søkeresultater i ny fane" + }, + "autoFocus": { + "label": "Fokuser på søkefeltet ved innlasting av siden.", + "description": "Dette vil automatisk fokusere søkefeltet når du navigerer til tavlene. Det vil bare fungere på stasjonære enheter." + }, + "template": { + "label": "SpørringsURL", + "description": "%s kan brukes som plassholder for spørringen" + } + } +} \ No newline at end of file diff --git a/public/locales/no/widgets/draggable-list.json b/public/locales/no/widgets/draggable-list.json index 5d27e99ad..af8b5f573 100644 --- a/public/locales/no/widgets/draggable-list.json +++ b/public/locales/no/widgets/draggable-list.json @@ -1,7 +1,7 @@ { "noEntries": { - "title": "", - "text": "" + "title": "Ingen oppføringer", + "text": "Bruk knappene nedenfor for å legge til flere oppføringer" }, - "buttonAdd": "" + "buttonAdd": "Legg til" } diff --git a/public/locales/no/zod.json b/public/locales/no/zod.json new file mode 100644 index 000000000..d107a88d5 --- /dev/null +++ b/public/locales/no/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Dette feltet er ugyldig", + "required": "Dette feltet er obligatorisk", + "string": { + "startsWith": "Dette feltet må starte med {{startsWith}}", + "endsWith": "Dette feltet må slutte med {{endsWith}}", + "includes": "Dette feltet må inneholde {{includes}}" + }, + "tooSmall": { + "string": "Dette feltet må være på minst {{minimum}} tegn", + "number": "Dette feltet må være større enn eller lik {{minimum}}" + }, + "tooBig": { + "string": "Dette feltet må være på maksimalt {{maximum}} tegn", + "number": "Dette feltet må være mindre enn eller lik {{maximum}}" + }, + "custom": { + "passwordMatch": "Passordene må være like" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/authentication/invite.json b/public/locales/pl/authentication/invite.json new file mode 100644 index 000000000..2f549a841 --- /dev/null +++ b/public/locales/pl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Utwórz konto", + "title": "Utwórz konto", + "text": "Zdefiniuj swoje dane logowania poniżej", + "form": { + "fields": { + "username": { + "label": "Nazwa użytkownika" + }, + "password": { + "label": "Hasło" + }, + "passwordConfirmation": { + "label": "Potwierdź hasło" + } + }, + "buttons": { + "submit": "Utwórz konto" + } + }, + "notifications": { + "loading": { + "title": "Tworzenie konta", + "text": "Proszę czekać" + }, + "success": { + "title": "Utworzono konto", + "text": "Twoje konto zostało utworzone" + }, + "error": { + "title": "Błąd", + "text": "Coś poszło nie tak, otrzymano następujący błąd: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/authentication/login.json b/public/locales/pl/authentication/login.json index 785767ee2..4de12245b 100644 --- a/public/locales/pl/authentication/login.json +++ b/public/locales/pl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Zaloguj się", "title": "Witaj ponownie!", - "text": "Proszę podać hasło", + "text": "Wprowadź swoje dane logowania", "form": { "fields": { + "username": { + "label": "Nazwa użytkownika" + }, "password": { - "label": "Hasło", - "placeholder": "Twoje hasło" + "label": "Hasło" } }, "buttons": { "submit": "Zaloguj się" - } + }, + "afterLoginRedirection": "Po zalogowaniu nastąpi przekierowanie na stronę {{url}}" }, - "notifications": { - "checking": { - "title": "Sprawdzanie hasła", - "message": "Twoje hasło jest sprawdzane..." - }, - "correct": { - "title": "Logowanie zakończone sukcesem, przekierowanie..." - }, - "wrong": { - "title": "Wprowadzone hasło jest nieprawidłowe, proszę spróbować ponownie." - } - } -} + "alert": "Twoje dane logowania są nieprawidłowe lub to konto nie istnieje. Spróbuj ponownie." +} \ No newline at end of file diff --git a/public/locales/pl/boards/common.json b/public/locales/pl/boards/common.json new file mode 100644 index 000000000..9453bb445 --- /dev/null +++ b/public/locales/pl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Dostosuj tablicę" + } +} \ No newline at end of file diff --git a/public/locales/pl/boards/customize.json b/public/locales/pl/boards/customize.json new file mode 100644 index 000000000..c94b8dcff --- /dev/null +++ b/public/locales/pl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Dostosuj tablicę {{name}}", + "pageTitle": "Dostosowywanie tablicy {{name}}", + "backToBoard": "Wróć do tablicy", + "settings": { + "appearance": { + "primaryColor": "Kolor podstawowy", + "secondaryColor": "Kolor akcentowy" + } + }, + "save": { + "button": "Zapisz zmiany", + "note": "Ostrożnie — masz niezapisane zmiany!" + }, + "notifications": { + "pending": { + "title": "Zapisywanie ustawień", + "message": "Poczekaj, aż zapiszemy Twoje ustawienia" + }, + "success": { + "title": "Zapisano zmiany", + "message": "Twoje zmiany zostały zapisane" + }, + "error": { + "title": "Błąd", + "message": "Nie udało się zapisać zmian" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index 694691c7e..fe14bc03d 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -1,20 +1,26 @@ { "save": "Zapisz", + "apply": "Zastosuj", + "insert": "", "about": "O programie", "cancel": "Anuluj", "close": "Zamknij", + "back": "Wstecz", "delete": "Usuń", "ok": "OK", "edit": "Edytuj", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", + "next": "Dalej", + "previous": "Poprzedni", + "confirm": "Potwierdź", + "enabled": "Włączony", + "disabled": "Wyłączony", + "enableAll": "Włącz wszystkie", + "disableAll": "Wyłącz wszystkie", "version": "Wersja", "changePosition": "Zmiana pozycji", "remove": "Usuń", "removeConfirm": "Czy na pewno chcesz usunąć {{item}}?", - "createItem": "", + "createItem": "+ utwórz {{item}}", "sections": { "settings": "Ustawienia", "dangerZone": "Strefa zagrożenia" @@ -36,5 +42,14 @@ "medium": "średnia", "large": "duża" }, - "seeMore": "" + "seeMore": "Zobacz więcej...", + "position": { + "left": "Lewo", + "center": "", + "right": "Prawo" + }, + "attributes": { + "width": "Szerokość", + "height": "Wysokość" + } } \ No newline at end of file diff --git a/public/locales/pl/layout/common.json b/public/locales/pl/layout/common.json index 4f4c4e6b4..094d4f094 100644 --- a/public/locales/pl/layout/common.json +++ b/public/locales/pl/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Wyskakujące okienko zablokowane", + "text": "Twoja przeglądarka nie pozwoliła Homarr dostać się do swojego API. Jest to najczęściej spowodowane przez AdBlockery lub odmowę uprawnień. Homarr nie jest w stanie automatycznie zażądać uprawnień.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Kliknij ikonę obok adresu URL i sprawdź uprawnienia. Zezwalaj na wyskakujące okienka i okna", + "adBlockers": "Wyłącz blokery reklam i narzędzia zabezpieczające w przeglądarce", + "otherBrowser": "Spróbuj użyć innej przeglądarki" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Otwórz wszystko w nowej karcie" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Przenieś w górę", + "moveDown": "Przenieś w dół", + "addCategory": "Dodaj kategorię {{location}}", + "addAbove": "powyżej", + "addBelow": "poniżej" } } \ 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 44b5eebc9..3592369bf 100644 --- a/public/locales/pl/layout/element-selector/selector.json +++ b/public/locales/pl/layout/element-selector/selector.json @@ -1,25 +1,25 @@ { "modal": { - "title": "Dodaj nową płytkę", + "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 dachówkę" + "tooltip": "Dodaj kafelek" }, - "apps": "", + "apps": "Aplikacje", "app": { - "defaultName": "" + "defaultName": "Twoja aplikacja" }, - "widgets": "", - "categories": "", + "widgets": "Widżety", + "categories": "Kategorie", "category": { - "newName": "", - "defaultName": "", + "newName": "Nazwa nowej kategorii", + "defaultName": "Nowa kategoria", "created": { - "title": "", - "message": "" + "title": "Utworzono nową kategorię", + "message": "Kategoria \"{{name}}\" została utworzona" } } } diff --git a/public/locales/pl/layout/errors/access-denied.json b/public/locales/pl/layout/errors/access-denied.json new file mode 100644 index 000000000..a7e84fb9c --- /dev/null +++ b/public/locales/pl/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Odmowa dostępu", + "text": "Nie masz wystarczających uprawnień, aby uzyskać dostęp do tej strony. Jeśli uważasz, że nie jest to zamierzone, skontaktuj się z administratorem.", + "switchAccount": "Przełącz na inne konto" +} \ No newline at end of file diff --git a/public/locales/pl/layout/errors/not-found.json b/public/locales/pl/layout/errors/not-found.json index 9e26dfeeb..fae97b5ef 100644 --- a/public/locales/pl/layout/errors/not-found.json +++ b/public/locales/pl/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Nie odnaleziono strony", + "text": "Ta strona nie została znaleziona. Adres URL dla tej strony mógł wygasnąć, jest nieprawidłowy lub nie posiadasz uprawnień wymaganych dla dostępu do tej strony.", + "button": "Wróć do Strony Głównej" +} \ No newline at end of file diff --git a/public/locales/pl/layout/header.json b/public/locales/pl/layout/header.json new file mode 100644 index 000000000..1a8ac94ca --- /dev/null +++ b/public/locales/pl/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "To jest eksperymentalna funkcja Homarr. Zgłoś wszelkie problemy na GitHub lub Discord." + }, + "search": { + "label": "Szukaj", + "engines": { + "web": "Wyszukaj {{query}} w Internecie", + "youtube": "Wyszukaj {{query}} na YouTube", + "torrent": "Wyszukaj torrenty {{query}}", + "movie": "Szukaj {{query}} w {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Zmień motyw", + "preferences": "Preferencje", + "defaultBoard": "Domyślna tablica", + "manage": "Zarządzaj", + "logout": "Wyloguj z {{username}}", + "login": "Zaloguj się" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} najlepszych wyników dla {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/pl/layout/header/actions/toggle-edit-mode.json b/public/locales/pl/layout/header/actions/toggle-edit-mode.json index 0843a33b4..b745d6c38 100644 --- a/public/locales/pl/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/pl/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Tryb edycji jest włączony dla <1>{{size}} rozmiar", "text": "Możesz teraz dostosować i skonfigurować swoje aplikacje. Zmiany nie są zapisywane do momentu wyjścia z trybu edycji." }, - "unloadEvent": "" + "unloadEvent": "Wyjdź z trybu edycji, aby zapisać zmiany" } diff --git a/public/locales/pl/layout/manage.json b/public/locales/pl/layout/manage.json new file mode 100644 index 000000000..b0549b158 --- /dev/null +++ b/public/locales/pl/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Strona główna" + }, + "boards": { + "title": "Tablice" + }, + "users": { + "title": "Użytkownicy", + "items": { + "manage": "Zarządzaj", + "invites": "Zaproszenia" + } + }, + "help": { + "title": "Pomoc", + "items": { + "documentation": "Dokumentacja", + "report": "Zgłoś problem/błąd", + "discord": "Discord społeczności", + "contribute": "Współtwórz" + } + }, + "tools": { + "title": "Narzędzia", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "O programie" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/layout/modals/about.json b/public/locales/pl/layout/modals/about.json index 15e4a174f..969a0f312 100644 --- a/public/locales/pl/layout/modals/about.json +++ b/public/locales/pl/layout/modals/about.json @@ -1,29 +1,30 @@ { "description": "Homarr to elegancka, nowoczesna deska rozdzielcza, dzięki której wszystkie Twoje aplikacje i usługi są na wyciągnięcie ręki. Dzięki Homarr możesz mieć dostęp i kontrolę nad wszystkim w jednym wygodnym miejscu. Homarr płynnie integruje się z dodanymi przez Ciebie aplikacjami, dostarczając Ci cennych informacji i dając Ci pełną kontrolę. Instalacja jest łatwa, a Homarr obsługuje wiele metod wdrażania.", - "contact": "Masz problemy lub pytania? Skontaktuj się z nami!", "addToDashboard": "Dodaj do pulpitu nawigacyjnego", - "tip": "", - "key": "", - "action": "", - "keybinds": "", - "documentation": "", + "tip": "Mod oznacza Twój klawisz modyfikujący, czyli Ctrl i Command/Super/Windows", + "key": "Klawisz skrótu", + "action": "Akcja", + "keybinds": "Skróty klawiszowe", + "translators": "Tłumacze ({{count}})", + "translatorsDescription": "Dzięki tym ludziom Homarr jest dostępny w {{languages}} językach! Chcesz pomóc w tłumaczeniu Homarra na swój język? Przeczytaj, jak to zrobić tutaj.", + "contributors": "Współtwórcy ({{count}})", + "contributorsDescription": "Ci ludzie stworzyli kod, który sprawia, że homarr działa! Chcesz pomóc w tworzeniu Homarr? Przeczytaj, jak to zrobić tutaj", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Przełącz motyw jasny / ciemny", + "focusSearchBar": "Aktywuj pole wyszukiwania", + "openDocker": "Otwórz widżet dockera", + "toggleEdit": "Przełącz tryb edycji" }, "metrics": { "configurationSchemaVersion": "Wersja schematu konfiguracji", - "configurationsCount": "Dostępne konfiguracje", "version": "Wersja", "nodeEnvironment": "Środowisko węzła", "i18n": "Załadowane nazwy tłumaczeń I18n", "locales": "Skonfigurowane lokalizacje I18n", - "experimental_disableEditMode": "EKSPERIMENTAL: Wyłącz tryb edycji" + "experimental_disableEditMode": "EKSPERYMENT: Wyłącz tryb edycji" }, "version": { - "new": "", - "dropdown": "" + "new": "Nowy: {{newVersion}}", + "dropdown": "Wersja {{newVersion}} jest już dostępna! Aktualna wersja to {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/pl/layout/modals/add-app.json b/public/locales/pl/layout/modals/add-app.json index 88c1a6ded..841cb2881 100644 --- a/public/locales/pl/layout/modals/add-app.json +++ b/public/locales/pl/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Adres wewnętrzny", - "description": "Wewnętrzny adres IP aplikacji." + "description": "Wewnętrzny adres IP aplikacji.", + "troubleshoot": { + "label": "Masz problemy?", + "header": "Oto lista najczęściej popełnianych błędów i sposobów ich rozwiązywania:", + "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": "" + }, + "footer": "Aby uzyskać więcej informacji na temat rozwiązywania problemów, skontaktuj się z nami na naszym {{discord}}." + } }, "externalAddress": { "label": "Adres zewnętrzny", @@ -26,10 +40,10 @@ "description": "Otwórz aplikację w nowej karcie zamiast w bieżącej." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Opis aplikacji", + "description": "Wprowadzony tekst pojawi się po najechaniu kursorem na aplikację.\nUżyj go, aby podać użytkownikom więcej szczegółów na temat aplikacji lub pozostaw pusty, aby nic nie wyświetlać." }, - "customProtocolWarning": "" + "customProtocolWarning": "Wykorzystuje niestandardowy protokół. Może wymagać instalacji innych aplikacji i powodować zagrożenia bezpieczeństwa. Upewnij się, że podany adres jest bezpieczny i zaufany." }, "network": { "statusChecker": { @@ -44,7 +58,7 @@ "appearance": { "icon": { "label": "Ikona aplikacji", - "description": "", + "description": "Zacznij pisać, aby znaleźć ikonę. Możesz również wkleić adres URL obrazu, aby użyć ikony niestandardowej.", "autocomplete": { "title": "Nie znaleziono żadnych wyników", "text": "Spróbuj użyć bardziej konkretnego hasła wyszukiwania. Jeśli nie możesz znaleźć żądanej ikony, wklej adres URL obrazu powyżej, aby wyszukać niestandardową ikonę" @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Rozmiar czcionki nazwy aplikacji", + "description": "Ustaw rozmiar czcionki, nazwy aplikacji wyświetlanej na kafelku." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Status nazwy aplikacji", + "description": "Wybierz czy i gdzie ma być wyświetlany tytuł aplikacji.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Pokaż tytuł tylko na kafelku", + "hover": "Pokaż tytuł tylko po najechaniu na etykietę narzędzia", + "hidden": "Nie pokazuj w ogóle" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Pozycja nazwy aplikacji", + "description": "Pozycja nazwy aplikacji względem ikony.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Góra", + "right": "Prawo", + "bottom": "Dół", + "left": "Lewo" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Maksymalna ilość wierszy nazwy", + "description": "Określa, w ilu liniach maksymalnie powinien zmieścić się tytuł. Ustaw 0 dla nieograniczonej liczby." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Twój formularz zawiera nieprawidłowe dane. Dlatego nie można go zapisać. Proszę rozwiązać wszystkie problemy i kliknąć ten przycisk ponownie, aby zapisać zmiany.", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Nazwa jest wymagana", + "noUrl": "Adres URL jest wymagany", + "invalidUrl": "Wartość nie jest poprawnym adresem URL", + "noIconUrl": "To pole jest wymagane", + "noExternalUri": "Zewnętrzny URI jest wymagany", + "invalidExternalUri": "Zewnętrzny URI nie jest prawidłowym uri" } } diff --git a/public/locales/pl/manage/boards.json b/public/locales/pl/manage/boards.json new file mode 100644 index 000000000..72b32009b --- /dev/null +++ b/public/locales/pl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Tablice", + "pageTitle": "Tablice", + "cards": { + "statistics": { + "apps": "Aplikacje", + "widgets": "Widżety", + "categories": "Kategorie" + }, + "buttons": { + "view": "Zobacz tablicę" + }, + "menu": { + "setAsDefault": "Ustaw tablicę jako domyślną", + "delete": { + "label": "Usuń trwale", + "disabled": "Usuwanie nie jest możliwe, ponieważ starsze komponenty Homarr nie pozwalają na usunięcie domyślnej konfiguracji. Usunięcie będzie możliwe w przyszłości." + } + }, + "badges": { + "fileSystem": "System plików", + "default": "Domyślnie" + } + }, + "buttons": { + "create": "Utwórz nową tablicę" + }, + "modals": { + "delete": { + "title": "Usuń tablicę", + "text": "Czy na pewno chcesz usunąć tę tablicę? Tego działania nie można cofnąć, a dane zostaną trwale utracone." + }, + "create": { + "title": "Utwórz tablicę", + "text": "Nazwy nie można zmienić po utworzeniu tablicy.", + "form": { + "name": { + "label": "Nazwa" + }, + "submit": "Utwórz" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/index.json b/public/locales/pl/manage/index.json new file mode 100644 index 000000000..a89d0f9e3 --- /dev/null +++ b/public/locales/pl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Zarządzaj", + "hero": { + "title": "Witaj z powrotem, {{username}}", + "fallbackUsername": "Anonimowy", + "subtitle": "Witamy w centrum aplikacji. Organizuj, Optymalizuj i Zwyciężaj!" + }, + "quickActions": { + "title": "Szybkie działania", + "boards": { + "title": "Twoje tablice", + "subtitle": "Twórz i zarządzaj swoimi tablicami" + }, + "inviteUsers": { + "title": "Zaproś nowego użytkownika", + "subtitle": "Utwórz i wyślij zaproszenie do rejestracji" + }, + "manageUsers": { + "title": "Zarządzaj użytkownikami", + "subtitle": "Usuń i zarządzaj użytkownikami" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/users.json b/public/locales/pl/manage/users.json new file mode 100644 index 000000000..248d4b9c6 --- /dev/null +++ b/public/locales/pl/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Użytkownik" + } + }, + "tooltips": { + "deleteUser": "Usuń użytkownika", + "demoteAdmin": "Zdegraduj administratora", + "promoteToAdmin": "Awansuj na administratora" + }, + "modals": { + "delete": { + "title": "Usuń użytkownika {{name}}", + "text": "Czy na pewno chcesz usunąć użytkownika {{name}}? Spowoduje to usunięcie danych powiązanych z tym kontem, ale nie żadnych pulpitów nawigacyjnych utworzonych przez tego użytkownika." + }, + "change-role": { + "promote": { + "title": "Awansuj użytkownika {{name}} na administratora", + "text": "Czy na pewno chcesz awansować użytkownika {{name}} na administratora? Zapewni to użytkownikowi dostęp do wszystkich zasobów instancji Homarr." + }, + "demote": { + "title": "Zdegraduj użytkownika {{name}} do użytkownika", + "text": "Czy na pewno chcesz zdegradować użytkownika {{name}} na użytkownika? Spowoduje to usunięcie dostępu użytkownika do wszystkich zasobów w twojej instancji Homarr." + }, + "confirm": "Potwierdź" + } + }, + "searchDoesntMatch": "Twoje wyszukiwanie nie pasuje do żadnych wpisów. Dostosuj swój filtr." +} \ No newline at end of file diff --git a/public/locales/pl/manage/users/create.json b/public/locales/pl/manage/users/create.json new file mode 100644 index 000000000..00647a47e --- /dev/null +++ b/public/locales/pl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Dodaj użytkownika", + "steps": { + "account": { + "title": "Krok pierwszy", + "text": "Utwórz konto", + "username": { + "label": "Nazwa użytkownika" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Krok drugi", + "text": "Hasło", + "password": { + "label": "Hasło" + } + }, + "finish": { + "title": "Potwierdzenie", + "text": "Zapisz w bazie danych", + "card": { + "title": "Sprawdź przekazane dane", + "text": "Po przesłaniu danych do bazy danych użytkownik będzie mógł się zalogować. Czy na pewno chcesz zapisać tego użytkownika w bazie danych i umożliwić logowanie?" + }, + "table": { + "header": { + "property": "Właściwość", + "value": "Wartość", + "username": "Nazwa użytkownika", + "email": "E-mail", + "password": "Hasło" + }, + "notSet": "Nie ustawiono", + "valid": "Poprawny" + }, + "failed": "Tworzenie użytkownika nie powiodło się: {{error}}" + }, + "completed": { + "alert": { + "title": "Użytkownik został utworzony", + "text": "Użytkownik został zapisany w bazie danych. Może się teraz zalogować." + } + } + }, + "buttons": { + "generateRandomPassword": "Generuj losowo", + "createAnother": "Dodaj kolejnego użytkownika" + } +} \ No newline at end of file diff --git a/public/locales/pl/manage/users/invites.json b/public/locales/pl/manage/users/invites.json new file mode 100644 index 000000000..741e5ca9b --- /dev/null +++ b/public/locales/pl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Zaproszenia", + "pageTitle": "Zarządzaj zaproszeniami", + "description": "Za pomocą zaproszeń, możesz zapraszać użytkowników do Twojej instancji Homarr. Zaproszenie będzie ważne jedynie przez określony czas i może być użyte tylko jeden raz. Okres ważności musi wynosić pomiędzy 5 minutami a 12 miesiącami od utworzenia zaproszenia.", + "button": { + "createInvite": "Utwórz zaproszenie", + "deleteInvite": "Usuń zaproszenie" + }, + "table": { + "header": { + "id": "ID", + "creator": "Twórca", + "expires": "Wygasa", + "action": "Akcje" + }, + "data": { + "expiresAt": "wygasło {{at}}", + "expiresIn": "w {{in}}" + } + }, + "modals": { + "create": { + "title": "Utwórz zaproszenie", + "description": "Po wygaśnięciu zaproszenie straci ważność, a odbiorca zaproszenia nie będzie mógł utworzyć konta.", + "form": { + "expires": "Wygasa", + "submit": "Utwórz" + } + }, + "copy": { + "title": "Skopiuj zaproszenie", + "description": "Zaproszenie zostało wygenerowane. Po zamknięciu tego okna, nie będzie już można skopiować tego linku. Jeśli nie chcesz już zapraszać tej osoby, możesz usunąć to zaproszenie w dowolnym momencie.", + "invitationLink": "Link do zaproszenia", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopiuj i zamknij" + } + }, + "delete": { + "title": "Usuń zaproszenie", + "description": "Czy na pewno chcesz usunąć to zaproszenie? Użytkownicy z tym linkiem nie będą już mogli utworzyć konta przy jego użyciu." + } + }, + "noInvites": "Nie ma jeszcze żadnych zaproszeń." +} \ No newline at end of file diff --git a/public/locales/pl/modules/bookmark.json b/public/locales/pl/modules/bookmark.json index 071bc9fa2..8eab7ead9 100644 --- a/public/locales/pl/modules/bookmark.json +++ b/public/locales/pl/modules/bookmark.json @@ -1,43 +1,43 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Zakładka", + "description": "Wyświetla statyczną listę linków lub tekst", "settings": { - "title": "", + "title": "Ustawienia zakładki", "name": { - "label": "", - "info": "" + "label": "Tytuł widżetu", + "info": "Pozostaw puste, aby ukryć tytuł." }, "items": { - "label": "" + "label": "Zawartość" }, "layout": { "label": "Układ", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Siatka", + "horizontal": "Poziomy", + "vertical": "Pionowy" } } } }, "card": { "noneFound": { - "title": "", - "text": "" + "title": "Lista zakładek jest pusta", + "text": "Dodaj nowe elementy do tej listy w trybie edycji" } }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "Długość nazwy wynosić pomiędzy {{shortest}} a {{longest}} znaków", + "invalidLink": "Nieprawidłowy link", + "errorMsg": "Nie zapisano z powodu błędnych danych. Proszę zmienić swoje dane wejściowe" }, "name": "Nazwa", - "url": "", + "url": "URL", "newTab": "Otwórz w nowej karcie", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Ukryj nazwę hosta", + "hideIcon": "Ukryj ikonę", "delete": "Usuń" } } diff --git a/public/locales/pl/modules/calendar.json b/public/locales/pl/modules/calendar.json index 926330efd..e3ba8e24a 100644 --- a/public/locales/pl/modules/calendar.json +++ b/public/locales/pl/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Wyświetla kalendarz z nadchodzącymi wydaniami, z obsługiwanych integracji.", "settings": { "title": "Ustawienia dla widżetu Kalendarz", - "useSonarrv4": { - "label": "Użyj API Sonarr v4" - }, - "sundayStart": { - "label": "Rozpoczynaj tydzień od niedzieli" - }, "radarrReleaseType": { - "label": "Typ zwolnienia Radarr", + "label": "Rodzaj premiery w Radarr", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "W kinach", + "physicalRelease": "Na nośnikach fizycznych", + "digitalRelease": "Cyfrowo" } }, "hideWeekDays": { - "label": "" + "label": "Ukryj dni tygodnia" }, "showUnmonitored": { - "label": "" + "label": "Pokaż niemonitorowane pozycje" }, "fontSize": { - "label": "", + "label": "Rozmiar czcionki", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Bardzo Mały", + "sm": "Mały", + "md": "Średni", + "lg": "Duży", + "xl": "Bardzo duży" } } } diff --git a/public/locales/pl/modules/dashdot.json b/public/locales/pl/modules/dashdot.json index 22eaadeca..3deca86e3 100644 --- a/public/locales/pl/modules/dashdot.json +++ b/public/locales/pl/modules/dashdot.json @@ -5,7 +5,7 @@ "settings": { "title": "Ustawienia dla widgetu Dash.", "dashName": { - "label": "" + "label": "Nazwa" }, "url": { "label": "Adres URL usługi Dash." diff --git a/public/locales/pl/modules/date.json b/public/locales/pl/modules/date.json index 5710e80af..1a7100fed 100644 --- a/public/locales/pl/modules/date.json +++ b/public/locales/pl/modules/date.json @@ -5,27 +5,27 @@ "settings": { "title": "Ustawienia dla widżetu Data i Czas", "display24HourFormat": { - "label": "Wyświetlaj pełną godzinę (24 godziny)" + "label": "Wyświetlaj pełną godzinę (format 24-godzinny)" }, "dateFormat": { - "label": "", + "label": "Format daty", "data": { - "hide": "" + "hide": "Ukryj datę" } }, "enableTimezone": { - "label": "" + "label": "Wyświetl niestandardową strefę czasową" }, "timezoneLocation": { - "label": "" + "label": "Lokalizacja strefy czasowej" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Miasto i strefa czasowa", + "city": "Tylko miasto", + "none": "Żaden" } } } diff --git a/public/locales/pl/modules/dns-hole-controls.json b/public/locales/pl/modules/dns-hole-controls.json index f8daba13b..0501bf15b 100644 --- a/public/locales/pl/modules/dns-hole-controls.json +++ b/public/locales/pl/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "", - "description": "" + "name": "Sterowanie pułapką DNS", + "description": "Kontroluj PiHole lub AdGuard ze swojego pulpitu", + "settings": { + "title": "Ustawienia sterowania pułapką DNS", + "showToggleAllButtons": { + "label": "Pokaż przyciski 'Włącz/Wyłącz wszystkie'" + } + }, + "errors": { + "general": { + "title": "Nie można znaleźć pułapki DNS", + "text": "Wystąpił problem z połączeniem się z pułapką DNS. Sprawdź konfigurację/integrację." + } + } } } \ No newline at end of file diff --git a/public/locales/pl/modules/dns-hole-summary.json b/public/locales/pl/modules/dns-hole-summary.json index 044c46781..2829a3704 100644 --- a/public/locales/pl/modules/dns-hole-summary.json +++ b/public/locales/pl/modules/dns-hole-summary.json @@ -1,28 +1,28 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Statystyki pułapki DNS", + "description": "Wyświetla istotne informacje z PiHole lub AdGuard", "settings": { - "title": "", + "title": "Ustawienia statystyk pułapki DNS", "usePiHoleColors": { - "label": "" + "label": "Użyj kolorów z PiHole" }, "layout": { "label": "Układ", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 na 2", + "row": "Poziomy", + "column": "Pionowy" } } } }, "card": { "metrics": { - "domainsOnAdlist": "", - "queriesToday": "", - "queriesBlockedTodayPercentage": "", - "queriesBlockedToday": "" + "domainsOnAdlist": "Domeny na adlistach", + "queriesToday": "Zapytania dzisiaj", + "queriesBlockedTodayPercentage": "Zablokowane dzisiaj", + "queriesBlockedToday": "Zablokowane dzisiaj" } } } diff --git a/public/locales/pl/modules/iframe.json b/public/locales/pl/modules/iframe.json index 7b8a9ca93..1a3391caa 100644 --- a/public/locales/pl/modules/iframe.json +++ b/public/locales/pl/modules/iframe.json @@ -11,35 +11,35 @@ "label": "Pozwól na pełny ekran" }, "allowTransparency": { - "label": "" + "label": "Zezwól na użycie przeźroczystości" }, "allowScrolling": { - "label": "" + "label": "Zezwól na przewijanie" }, "allowPayment": { - "label": "" + "label": "Zezwalaj na płatności" }, "allowAutoPlay": { - "label": "" + "label": "Zezwalaj na automatyczne odtwarzanie" }, "allowMicrophone": { - "label": "" + "label": "Zezwól na używanie mikrofonu" }, "allowCamera": { - "label": "" + "label": "Zezwól na używanie kamery" }, "allowGeolocation": { - "label": "" + "label": "Zezwalaj na geolokalizację" } } }, "card": { "errors": { "noUrl": { - "title": "", + "title": "Nieprawidłowy URL", "text": "Upewnij się, że wprowadziłeś poprawny adres w konfiguracji swojego widgetu" }, - "browserSupport": "" + "browserSupport": "Twoja przeglądarka nie obsługuje ramek iframe. Zaktualizuj przeglądarkę." } } } diff --git a/public/locales/pl/modules/media-requests-list.json b/public/locales/pl/modules/media-requests-list.json index 2b1fc2d63..de74ddf09 100644 --- a/public/locales/pl/modules/media-requests-list.json +++ b/public/locales/pl/modules/media-requests-list.json @@ -1,35 +1,33 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Zapytania o media", + "description": "Zobacz listę wszystkich zapytań o media z Twoich instancji Overseerr lub Jellyseerr", "settings": { - "title": "", + "title": "Lista zapytań o media", "replaceLinksWithExternalHost": { - "label": "" + "label": "Zastąp linki zewnętrznym hostem" }, "openInNewTab": { - "label": "" + "label": "Otwieraj linki w nowej karcie" } } }, - "noRequests": "", - "pending": "", - "nonePending": "", + "noRequests": "Nie znaleziono żadnych zapytań. Upewnij się, że poprawnie skonfigurowałeś swoje aplikacje.", "state": { - "approved": "", - "pendingApproval": "", - "declined": "" + "approved": "Zatwierdzono", + "pendingApproval": "Oczekujące na zatwierdzenie", + "declined": "Odrzucono" }, "tooltips": { - "approve": "", - "decline": "", - "approving": "" + "approve": "Zatwierdź zapytania", + "decline": "Odrzuć zapytania", + "approving": "Zatwierdzanie zapytania..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Zatwierdzanie", + "declining": "Odrzucanie", + "request": "zapytanie...", + "approved": "Zapytanie zostało zaakceptowane!", + "declined": "Zapytanie zostało odrzucone!" } } diff --git a/public/locales/pl/modules/media-requests-stats.json b/public/locales/pl/modules/media-requests-stats.json index f152af280..d68657356 100644 --- a/public/locales/pl/modules/media-requests-stats.json +++ b/public/locales/pl/modules/media-requests-stats.json @@ -1,27 +1,27 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Statystyki zapytań o media", + "description": "Statystyki Twoich zapytań o media", "settings": { - "title": "", + "title": "Statystyki zapytań o media", "replaceLinksWithExternalHost": { - "label": "" + "label": "Zastąp linki zewnętrznym hostem" }, "openInNewTab": { - "label": "" + "label": "Otwieraj linki w nowej karcie" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Statystyki mediów", + "pending": "Oczekujące na zatwierdzenie", + "tvRequests": "Zapytania o seriale", + "movieRequests": "Zaptrania o filmy", + "approved": "Zatwierdzone", + "totalRequests": "Razem" }, "userStats": { - "title": "", - "requests": "" + "title": "Najaktywniejsi użytkownicy", + "requests": "Zapytania: {{number}}" } } diff --git a/public/locales/pl/modules/media-server.json b/public/locales/pl/modules/media-server.json index e1bd356cc..d6ff0e557 100644 --- a/public/locales/pl/modules/media-server.json +++ b/public/locales/pl/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Ustawienia dla widgetu serwera mediów" } }, - "loading": "", + "loading": "Ładowanie streamów", "card": { "table": { "header": { diff --git a/public/locales/pl/modules/notebook.json b/public/locales/pl/modules/notebook.json index 3ad2a768e..84b043ebb 100644 --- a/public/locales/pl/modules/notebook.json +++ b/public/locales/pl/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Notatnik", + "description": "Interaktywny widżet oparty na markdown do zapisywania notatek!", "settings": { - "title": "", + "title": "Ustawienia widżetu notatnika", "showToolbar": { + "label": "Pokaż pasek narzędzi ułatwiający pisanie w markdown" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "Zawartość notatnika" } } + }, + "card": { + "controls": { + "bold": "Pogrubienie", + "italic": "Kursywa", + "strikethrough": "Przekreślenie", + "underline": "Podkreślenie", + "colorText": "Kolorowy tekst", + "colorHighlight": "Kolorowy wyróżniony tekst", + "code": "Kod", + "clear": "Wyczyść formatowanie", + "heading": "Nagłówek {{level}}", + "align": "Wyrównanie tekstu: {{position}}", + "blockquote": "Cytat", + "horizontalLine": "Linia pozioma", + "bulletList": "Lista punktowana", + "orderedList": "Lista numerowana", + "checkList": "Lista kontrolna", + "increaseIndent": "Zwiększ wcięcie", + "decreaseIndent": "Zmniejsz wcięcie", + "link": "Odnośnik", + "unlink": "Usuń odnośnik", + "image": "Osadź obraz", + "addTable": "Dodaj tabelę", + "deleteTable": "Usuń tabelę", + "colorCell": "", + "mergeCell": "Przełączanie scalania komórek", + "addColumnLeft": "Dodaj kolumnę przed", + "addColumnRight": "Dodaj kolumnę po", + "deleteColumn": "Usuń kolumnę", + "addRowTop": "Dodaj wiersz przed", + "addRowBelow": "Dodaj wiersz po", + "deleteRow": "Usuń wiersz" + }, + "modals": { + "clearColor": "Usuń kolor", + "source": "Źródło", + "widthPlaceholder": "Wartość w % lub pikselach", + "columns": "Kolumny", + "rows": "Wiersze" + } } } \ No newline at end of file diff --git a/public/locales/pl/modules/rss.json b/public/locales/pl/modules/rss.json index 78d557fc1..f965a28ac 100644 --- a/public/locales/pl/modules/rss.json +++ b/public/locales/pl/modules/rss.json @@ -1,29 +1,29 @@ { "descriptor": { - "name": "Widget RSS", - "description": "", + "name": "Widżet RSS", + "description": "Widżet rss umożliwia wyświetlanie kanałów RSS na pulpicie nawigacyjnym.", "settings": { - "title": "Ustawienia dla widgetu RSS", + "title": "Ustawienia dla widżetu RSS", "rssFeedUrl": { - "label": "", - "description": "" + "label": "Adres URL źródła danych RSS", + "description": "Adresy URL kanałów RSS, które mają być wyświetlane." }, "refreshInterval": { - "label": "" + "label": "Częstotliwość odświeżania (w minutach)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Zezwalaj na formatowanie HTML (niebezpieczne)", + "info": "Zezwolenie na formatowanie HTML z zewnątrz może być niebezpieczne.
Upewnij się, że kanał pochodzi z zaufanego źródła." }, "textLinesClamp": { - "label": "" + "label": "Maksymalna ilość linii tekstu" } }, "card": { "errors": { "general": { - "title": "", - "text": "" + "title": "Nie można pobrać kanału RSS", + "text": "Wystąpił problem z połączeniem z kanałem RSS. Upewnij się, że poprawnie skonfigurowałeś kanał RSS używając poprawnego adresu URL. Adresy URL powinny być zgodne z oficjalną specyfikacją. Po aktualizacji kanału należy odświeżyć panel nawigacyjny." } } } diff --git a/public/locales/pl/modules/torrents-status.json b/public/locales/pl/modules/torrents-status.json index 8993d6681..e21bbb299 100644 --- a/public/locales/pl/modules/torrents-status.json +++ b/public/locales/pl/modules/torrents-status.json @@ -10,22 +10,34 @@ "displayCompletedTorrents": { "label": "Wyświetlanie ukończonych torrentów" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Wyświetlanie nieaktualnych torrentów" }, "labelFilterIsWhitelist": { - "label": "" + "label": "Lista etykiet jest białą listą (zamiast czarnej listy)" }, "labelFilter": { - "label": "", - "description": "" + "label": "Lista etykiet", + "description": "Po zaznaczeniu opcji \"jest białą listą\" będzie ona działać jako biała lista. Jeśli nie jest zaznaczone, jest to czarna lista. Nie zrobi nic, gdy jest pusta" + }, + "displayRatioWithFilter": { + "label": "Wyświetl współczynnik listy przefiltrowanych torrentów", + "info": "Jeśli ta opcja jest wyłączona, wyświetlany będzie tylko współczynnik globalny. Współczynnik globalny będzie nadal używał etykiet, jeśli są ustawione" } } }, "card": { "footer": { "error": "Błąd", - "lastUpdated": "Ostatnia aktualizacja {{time}} temu" + "lastUpdated": "Ostatnia aktualizacja {{time}} temu", + "ratioGlobal": "Współczynnik globalny", + "ratioWithFilter": "Współczynnik z filtrem" }, "table": { "header": { @@ -41,7 +53,7 @@ }, "body": { "nothingFound": "Nie znaleziono torrentów", - "filterHidingItems": "" + "filterHidingItems": "{{count}} wpisów zostało ukrytych przez twoje filtry" } }, "lineChart": { @@ -59,12 +71,12 @@ }, "generic": { "title": "Wystąpił nieoczekiwany błąd", - "text": "" + "text": "Nie można połączyć się z klientami Torrent. Sprawdź konfigurację" } }, "loading": { - "title": "", - "description": "" + "title": "Ładowanie", + "description": "Nawiązywanie połączenia" }, "popover": { "introductionPrefix": "Zarządzany przez", @@ -72,7 +84,7 @@ "queuePosition": "Pozycja w kolejce - {{position}}", "progress": "Postęp - {{progress}}%", "totalSelectedSize": "Razem - {{totalSize}}", - "state": "Państwo - {{state}}", + "state": "Status - {{state}}", "ratio": "Współczynnik -.", "completed": "Zakończono" } diff --git a/public/locales/pl/modules/weather.json b/public/locales/pl/modules/weather.json index 7c2df0d5e..1003ad5e8 100644 --- a/public/locales/pl/modules/weather.json +++ b/public/locales/pl/modules/weather.json @@ -3,12 +3,12 @@ "name": "Pogoda", "description": "Wyświetla aktualne informacje o pogodzie w ustawionej lokalizacji.", "settings": { - "title": "Ustawienia dla widgetu pogody", + "title": "Ustawienia widżetu pogody", "displayInFahrenheit": { "label": "Wyświetlaj w Fahrenheitach" }, "displayCityName": { - "label": "" + "label": "Wyświetlaj nazwę miasta" }, "location": { "label": "Lokalizacja pogody" @@ -33,5 +33,5 @@ "unknown": "Nieznany" } }, - "error": "" + "error": "Wystąpił błąd" } diff --git a/public/locales/pl/password-requirements.json b/public/locales/pl/password-requirements.json new file mode 100644 index 000000000..169f97e11 --- /dev/null +++ b/public/locales/pl/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Zawiera cyfrę", + "lowercase": "Zawiera małą literę", + "uppercase": "Zawiera wielką literę", + "special": "Zawiera znak specjalny", + "length": "Składa się z co najmniej {{count}} znaków" +} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/access.json b/public/locales/pl/settings/customization/access.json new file mode 100644 index 000000000..64614e381 --- /dev/null +++ b/public/locales/pl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonimowy dostęp", + "description": "Zezwalaj użytkownikom, którzy nie są zalogowani, na przeglądanie Twojej tablicy" + } +} \ No newline at end of file diff --git a/public/locales/pl/settings/customization/general.json b/public/locales/pl/settings/customization/general.json index 8a1ab7df5..46f3ab251 100644 --- a/public/locales/pl/settings/customization/general.json +++ b/public/locales/pl/settings/customization/general.json @@ -18,8 +18,12 @@ "description": "Dostosuj tło, kolory i wygląd aplikacji" }, "accessibility": { - "name": "", - "description": "" + "name": "Ułatwienia dostępu", + "description": "Skonfiguruj Homarr dla użytkowników z niepełnosprawnością" + }, + "access": { + "name": "Dostęp", + "description": "Skonfiguruj kto ma dostęp do Twojej tablicy" } } } diff --git a/public/locales/pl/settings/customization/page-appearance.json b/public/locales/pl/settings/customization/page-appearance.json index 69eb7d86e..38a94be16 100644 --- a/public/locales/pl/settings/customization/page-appearance.json +++ b/public/locales/pl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Jeszcze bardziej dostosuj swój pulpit za pomocą CSS, zalecane tylko dla doświadczonych użytkowników", "placeholder": "Custom CSS zostanie zastosowany jako ostatni", "applying": "Zastosowanie CSS..." - }, - "buttons": { - "submit": "Zgłoś" } -} +} \ No newline at end of file diff --git a/public/locales/pl/settings/general/cache-buttons.json b/public/locales/pl/settings/general/cache-buttons.json index 685994c48..ba6e9bb21 100644 --- a/public/locales/pl/settings/general/cache-buttons.json +++ b/public/locales/pl/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Czyszczenie pamięci podręcznej", "selector": { - "label": "", + "label": "Wybierz pamięć podręczną do wyczyszczenia", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Zapytania ping", + "repositoryIcons": "Ikony zdalne/lokalne", + "calendar&medias": "Media z kalendarza", + "weather": "Dane pogodowe" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Pamięć podręczna wyczyszczona", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Wyczyść całą pamięć podręczną", + "notificationMessage": "Pamięć podręczna została wyczyszczona" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Wyczyść wybrane zapytania", + "notificationMessageSingle": "Pamięć podręczna {{value}} została wyczyszczona", + "notificationMessageMulti": "Pamięci podręczne {{values}} zostały wyczyszczone" } } } \ No newline at end of file diff --git a/public/locales/pl/settings/general/edit-mode-toggle.json b/public/locales/pl/settings/general/edit-mode-toggle.json index b8985e5d0..732f82f9d 100644 --- a/public/locales/pl/settings/general/edit-mode-toggle.json +++ b/public/locales/pl/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Przełącz tryb edycji", + "enable": "Przełącz tryb edycji", + "disable": "Wyłącz tryb edycji" }, "form": { - "label": "", - "message": "", + "label": "Zmień hasło", + "message": "Aby przełączyć tryb edycji, należy wprowadzić hasło wprowadzone w zmiennej środowiskowej o nazwie EDIT_MODE_PASSWORD . Jeśli nie jest ono ustawione, nie można włączać i wyłączać trybu edycji.", "submit": "Zgłoś" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Sukces", + "message": "Pomyślnie przełączono tryb edycji, przeładowuję stronę..." }, "error": { "title": "Błąd", - "message": "" + "message": "Nie udało się przełączyć trybu edycji, spróbuj ponownie." } } } \ No newline at end of file diff --git a/public/locales/pl/settings/general/search-engine.json b/public/locales/pl/settings/general/search-engine.json index 3411e0635..d568b322f 100644 --- a/public/locales/pl/settings/general/search-engine.json +++ b/public/locales/pl/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Silnik wyszukiwania", "configurationName": "Konfiguracja wyszukiwarki", - "custom": "", + "custom": "Własny", "tips": { "generalTip": "Istnieje wiele prefiksów, których możesz użyć! Dodanie ich przed zapytaniem spowoduje przefiltrowanie wyników. !s (Web), !t (Torrenty), !y (YouTube) i !m (Media).", "placeholderTip": "%s może być użyte jako symbol zastępczy dla zapytania." diff --git a/public/locales/pl/tools/docker.json b/public/locales/pl/tools/docker.json new file mode 100644 index 000000000..af1ad0e11 --- /dev/null +++ b/public/locales/pl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Twoja instancja Homarr nie ma skonfigurowanego Dockera lub nie była w stanie pobrać listę kontenerów. Sprawdź dokumentację, aby dowiedzieć się, jak skonfigurować integrację." + } + }, + "modals": { + "selectBoard": { + "title": "Wybierz tablicę", + "text": "Wybierz tablicę, do której chcesz dodać aplikacje z wybranych kontenerów Dockera.", + "form": { + "board": { + "label": "Tablica" + }, + "submit": "Dodaj aplikacje" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Aplikacje dodane do tablicy", + "message": "Aplikacje wybranych kontenerów Dockera zostały dodane do tablicy." + }, + "error": { + "title": "Nie udało się dodać aplikacji do tablicy", + "message": "Aplikacje wybranych kontenerów Dockera nie mogły zostać dodane do tablicy." + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/user/preferences.json b/public/locales/pl/user/preferences.json new file mode 100644 index 000000000..2cd89b4e9 --- /dev/null +++ b/public/locales/pl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Preferencje", + "pageTitle": "Twoje preferencje", + "boards": { + "defaultBoard": { + "label": "Domyślna tablica" + } + }, + "accessibility": { + "title": "Ułatwienia dostępu", + "disablePulse": { + "label": "Wyłącz wskaźniki aktywności", + "description": "Domyślnie wskaźniki aktywności w Homarr będą pulsować. Może to być irytujące. Ten suwak wyłączy animację" + }, + "replaceIconsWithDots": { + "label": "Zastąp wskaźniki aktywności ikonami", + "description": "Dla użytkowników niewidzących kolorów, wskaźniki aktywności mogą być niewidoczne. Wskaźniki zostaną zastąpione ikonami" + } + }, + "localization": { + "language": { + "label": "Język" + }, + "firstDayOfWeek": { + "label": "Pierwszy dzień tygodnia", + "options": { + "monday": "Poniedziałek", + "saturday": "Sobota", + "sunday": "Niedziela" + } + } + }, + "searchEngine": { + "title": "Silnik wyszukiwania", + "custom": "Własny", + "newTab": { + "label": "Otwórz wyniki wyszukiwania w nowej karcie" + }, + "autoFocus": { + "label": "Zacznij pisać w pasku wyszukiwania od razu po załadowaniu strony.", + "description": "Spowoduje to automatyczne zaznaczenie paska wyszukiwania, gdy przejdziesz do strony działu. Działa tylko na urządzeniach desktop." + }, + "template": { + "label": "Adres URL zapytania", + "description": "Użyj %s jako placeholdera dla zapytania" + } + } +} \ No newline at end of file diff --git a/public/locales/pl/widgets/draggable-list.json b/public/locales/pl/widgets/draggable-list.json index 5d27e99ad..e9319a64a 100644 --- a/public/locales/pl/widgets/draggable-list.json +++ b/public/locales/pl/widgets/draggable-list.json @@ -1,7 +1,7 @@ { "noEntries": { - "title": "", - "text": "" + "title": "Brak wpisów", + "text": "Użyj przycisków poniżej, aby dodać więcej wpisów" }, - "buttonAdd": "" + "buttonAdd": "Dodaj" } diff --git a/public/locales/pl/widgets/error-boundary.json b/public/locales/pl/widgets/error-boundary.json index ce74ad0fc..6c4b532aa 100644 --- a/public/locales/pl/widgets/error-boundary.json +++ b/public/locales/pl/widgets/error-boundary.json @@ -1,14 +1,14 @@ { "card": { - "title": "", + "title": "Ups, wystąpił błąd!", "buttons": { - "details": "", - "tryAgain": "" + "details": "Szczegóły", + "tryAgain": "Spróbuj ponownie" } }, "modal": { "text": "", - "label": "", - "reportButton": "" + "label": "Twój błąd", + "reportButton": "Zgłoś ten błąd" } } diff --git a/public/locales/pl/zod.json b/public/locales/pl/zod.json new file mode 100644 index 000000000..ffc9567cd --- /dev/null +++ b/public/locales/pl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "To pole jest nieprawidłowe", + "required": "To pole jest wymagane", + "string": { + "startsWith": "To pole musi zaczynać się od {{startsWith}}", + "endsWith": "To pole musi kończyć się na {{endsWith}}", + "includes": "Pole to musi zawierać {{includes}}" + }, + "tooSmall": { + "string": "To pole musi mieć co najmniej {{minimum}} znaków", + "number": "Wartość tego pola musi być większa lub równa {{minimum}}" + }, + "tooBig": { + "string": "To pole może zawierać maksymalnie {{maximum}} znaków", + "number": "Wartość tego pola musi być mniejsza lub równa {{maximum}}" + }, + "custom": { + "passwordMatch": "Hasła muszą być takie same" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/authentication/invite.json b/public/locales/pt/authentication/invite.json new file mode 100644 index 000000000..164ecccc5 --- /dev/null +++ b/public/locales/pt/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Criar conta", + "title": "Criar conta", + "text": "Defina suas credenciais abaixo", + "form": { + "fields": { + "username": { + "label": "Usuário" + }, + "password": { + "label": "Senha" + }, + "passwordConfirmation": { + "label": "Confirmar senha" + } + }, + "buttons": { + "submit": "Criar conta" + } + }, + "notifications": { + "loading": { + "title": "Criação de conta", + "text": "Aguarde" + }, + "success": { + "title": "Conta criada", + "text": "Sua conta foi criada com sucesso" + }, + "error": { + "title": "Erro", + "text": "Algo deu errado, recebi o seguinte erro: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/authentication/login.json b/public/locales/pt/authentication/login.json index 5d0d72984..e671d681f 100644 --- a/public/locales/pt/authentication/login.json +++ b/public/locales/pt/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Login", "title": "Bem-vindo de volta!", - "text": "Por favor introduza a sua palavra-passe", + "text": "Digite suas credenciais", "form": { "fields": { + "username": { + "label": "Usuário" + }, "password": { - "label": "Senha", - "placeholder": "Sua senha" + "label": "Senha" } }, "buttons": { "submit": "Iniciar sessão" - } + }, + "afterLoginRedirection": "Após o login, você será redirecionado para {{url}}" }, - "notifications": { - "checking": { - "title": "Conferindo sua senha", - "message": "Sua senha está sendo verificada..." - }, - "correct": { - "title": "Entrar com sucesso, redireccionando..." - }, - "wrong": { - "title": "A senha que introduziu está incorrecta, por favor tente novamente." - } - } -} + "alert": "Suas credenciais estão incorretas ou esta conta não existe. Tente novamente." +} \ No newline at end of file diff --git a/public/locales/pt/boards/common.json b/public/locales/pt/boards/common.json new file mode 100644 index 000000000..f06573799 --- /dev/null +++ b/public/locales/pt/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Personalizar o quadro" + } +} \ No newline at end of file diff --git a/public/locales/pt/boards/customize.json b/public/locales/pt/boards/customize.json new file mode 100644 index 000000000..585d727ac --- /dev/null +++ b/public/locales/pt/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Personalizar {{name}} Board", + "pageTitle": "Personalização para {{name}} Board", + "backToBoard": "Voltar ao quadro", + "settings": { + "appearance": { + "primaryColor": "Cor primária", + "secondaryColor": "Cor secundária" + } + }, + "save": { + "button": "Salvar alterações", + "note": "Cuidado, você tem alterações que não foram salvas!" + }, + "notifications": { + "pending": { + "title": "Salvando a personalização", + "message": "Aguarde enquanto salvamos sua personalização" + }, + "success": { + "title": "Personalização salva", + "message": "Sua personalização foi salva com sucesso" + }, + "error": { + "title": "Erro", + "message": "Não é possível salvar as alterações" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 6ac7a128c..8ca0efcd8 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -1,26 +1,32 @@ { "save": "Salvar", + "apply": "", + "insert": "", "about": "Sobre", "cancel": "Cancelar", "close": "Fechar", + "back": "Voltar", "delete": "Apagar", "ok": "OK", "edit": "Editar", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", + "next": "Próximo", + "previous": "Anterior", + "confirm": "Confirme", + "enabled": "Ativado", + "disabled": "Desativado", + "enableAll": "Habilitar tudo", + "disableAll": "Desativar tudo", "version": "Versão", "changePosition": "Mudar de posição", "remove": "Excluir", - "removeConfirm": "", - "createItem": "", + "removeConfirm": "Tem certeza de que deseja remover o site {{item}}?", + "createItem": "+ criar {{item}}", "sections": { "settings": "Configurações", "dangerZone": "Zona de risco" }, "secrets": { - "apiKey": "", + "apiKey": "Chave da API", "username": "Usuário", "password": "Senha" }, @@ -36,5 +42,14 @@ "medium": "médio", "large": "grande" }, - "seeMore": "" + "seeMore": "Veja mais...", + "position": { + "left": "Esquerda", + "center": "", + "right": "Certo" + }, + "attributes": { + "width": "Largura", + "height": "Altura" + } } \ No newline at end of file diff --git a/public/locales/pt/layout/common.json b/public/locales/pt/layout/common.json index 4f4c4e6b4..85fa96a9a 100644 --- a/public/locales/pt/layout/common.json +++ b/public/locales/pt/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Popups bloqueados", + "text": "Seu navegador bloqueou o acesso da Homarr à sua API. Isso é mais comumente causado por AdBlockers ou permissões negadas. A Homarr não pode solicitar permissões automaticamente.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Clique no ícone ao lado do URL e verifique as permissões. Permitir popups e janelas", + "adBlockers": "Desative os bloqueadores de anúncios e as ferramentas de segurança de seu navegador", + "otherBrowser": "Experimente um navegador diferente" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Abrir tudo em uma nova guia" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Subir", + "moveDown": "Mover para baixo", + "addCategory": "Adicionar categoria {{location}}", + "addAbove": "acima", + "addBelow": "abaixo" } } \ 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 67f4790ec..e1c151b53 100644 --- a/public/locales/pt/layout/element-selector/selector.json +++ b/public/locales/pt/layout/element-selector/selector.json @@ -8,18 +8,18 @@ "actionIcon": { "tooltip": "Acrescentar um azulejo" }, - "apps": "", + "apps": "Aplicativos", "app": { - "defaultName": "" + "defaultName": "Seu aplicativo" }, - "widgets": "", - "categories": "", + "widgets": "Widgets", + "categories": "Categorias", "category": { - "newName": "", - "defaultName": "", + "newName": "Nome da nova categoria", + "defaultName": "Nova categoria", "created": { - "title": "", - "message": "" + "title": "Categoria criada", + "message": "A categoria \"{{name}}\" foi criada" } } } diff --git a/public/locales/pt/layout/errors/access-denied.json b/public/locales/pt/layout/errors/access-denied.json new file mode 100644 index 000000000..76f802d12 --- /dev/null +++ b/public/locales/pt/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Acesso negado", + "text": "Você não tem permissões suficientes para acessar esta página. Se achar que isso não é intencional, entre em contato com o administrador.", + "switchAccount": "Mudar para uma conta diferente" +} \ No newline at end of file diff --git a/public/locales/pt/layout/errors/not-found.json b/public/locales/pt/layout/errors/not-found.json index 9e26dfeeb..b530d8d5d 100644 --- a/public/locales/pt/layout/errors/not-found.json +++ b/public/locales/pt/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Página não encontrada", + "text": "Esta página não pôde ser encontrada. O URL dessa página pode ter expirado, o URL é inválido ou você não tem as permissões necessárias para acessar esse recurso.", + "button": "Ir para a página inicial" +} \ No newline at end of file diff --git a/public/locales/pt/layout/header.json b/public/locales/pt/layout/header.json new file mode 100644 index 000000000..208e64431 --- /dev/null +++ b/public/locales/pt/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Este é um recurso experimental do Homarr. Informe qualquer problema em GitHub ou Discord." + }, + "search": { + "label": "Pesquisa", + "engines": { + "web": "Pesquise {{query}} na web", + "youtube": "Pesquise {{query}} no YouTube", + "torrent": "Pesquisar {{query}} torrents", + "movie": "Procure por {{query}} em {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Mudar de tema", + "preferences": "Preferências do usuário", + "defaultBoard": "Painel de controle padrão", + "manage": "Gerenciar", + "logout": "Sair do site {{username}}", + "login": "Login" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Principais resultados de {{count}} para {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/pt/layout/header/actions/toggle-edit-mode.json b/public/locales/pt/layout/header/actions/toggle-edit-mode.json index 0f4a51cff..ba585e0cc 100644 --- a/public/locales/pt/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/pt/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "O modo de edição está activado para <1>{{size}} tamanho", "text": "Pode agora ajustar e configurar as suas aplicações. As alterações são não guardadas até sair do modo de edição" }, - "unloadEvent": "" + "unloadEvent": "Saia do modo de edição para salvar suas alterações" } diff --git a/public/locales/pt/layout/manage.json b/public/locales/pt/layout/manage.json new file mode 100644 index 000000000..527cabc51 --- /dev/null +++ b/public/locales/pt/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Início" + }, + "boards": { + "title": "Placas" + }, + "users": { + "title": "Usuários", + "items": { + "manage": "Gerenciar", + "invites": "Convites" + } + }, + "help": { + "title": "Ajuda", + "items": { + "documentation": "Documentação", + "report": "Relatar um problema / bug", + "discord": "Discórdia da comunidade", + "contribute": "Contribuir" + } + }, + "tools": { + "title": "Ferramentas", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Sobre" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/layout/modals/about.json b/public/locales/pt/layout/modals/about.json index dfa2183d1..471f0a8d0 100644 --- a/public/locales/pt/layout/modals/about.json +++ b/public/locales/pt/layout/modals/about.json @@ -1,21 +1,22 @@ { "description": "Homarr é um elegante, moderno painel de instrumentos que coloca todas as suas aplicações e serviços na ponta dos seus dedos. Com Homarr, pode aceder e controlar tudo num único local conveniente. Homarr integra-se perfeitamente com as aplicações que adicionou, fornecendo-lhe informações valiosas e dando-lhe um controlo completo. A instalação é tranquila, e Homarr suporta uma vasta gama de métodos de implantação.", - "contact": "Com problemas ou perguntas? Ligue-se a nós!", "addToDashboard": "Adicionar ao Painel de instrumentos", - "tip": "", - "key": "", - "action": "", - "keybinds": "", - "documentation": "", + "tip": "Mod refere-se à sua tecla modificadora, ou seja, Ctrl e Command/Super/Windows", + "key": "Tecla de atalho", + "action": "Ação", + "keybinds": "Ligações de teclas", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Alternar o modo claro/escuro", + "focusSearchBar": "Foco na barra de pesquisa", + "openDocker": "Abra o docker Widget", + "toggleEdit": "Alternar o modo de edição" }, "metrics": { "configurationSchemaVersion": "Versão do esquema de configuração", - "configurationsCount": "Configurações disponíveis", "version": "Versão", "nodeEnvironment": "Ambiente do nó", "i18n": "Espaços de tradução do I18n carregados", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "EXPERIMENTAL: Desativar o modo de edição" }, "version": { - "new": "", - "dropdown": "" + "new": "Novo: {{newVersion}}", + "dropdown": "A versão {{newVersion}} está disponível! A versão atual é {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/pt/layout/modals/add-app.json b/public/locales/pt/layout/modals/add-app.json index 5b262fbaf..b91ded8ce 100644 --- a/public/locales/pt/layout/modals/add-app.json +++ b/public/locales/pt/layout/modals/add-app.json @@ -1,7 +1,7 @@ { "tabs": { "general": "Geral", - "behaviour": "", + "behaviour": "Comportamento", "network": "Rede", "appearance": "Aparência", "integration": "Integração" @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Endereço interno", - "description": "Endereço interno de IP da aplicação." + "description": "Endereço interno de IP da aplicação.", + "troubleshoot": { + "label": "Está tendo problemas?", + "header": "Aqui está uma lista dos erros mais comuns e da solução de problemas:", + "lines": { + "nothingAfterPort": "Você não deve, na maioria dos casos, se não em todos, inserir nenhum caminho após a porta. (Mesmo o '/admin' para pihole ou '/web' para plex)", + "protocolCheck": "Certifique-se sempre de que o URL seja precedido por http ou https e de que esteja usando o URL correto.", + "preferIP": "Recomenda-se usar o ip direto da máquina ou do contêiner com o qual você está tentando se comunicar.", + "enablePings": "Verifique se o IP está correto ativando os pings. Personalize o quadro -> Layout -> Ativar pings. Um pequeno balão vermelho ou verde aparecerá nos blocos do aplicativo e, ao passar o mouse sobre ele, você verá o código de resposta (um balão verde com o código 200 é esperado na maioria dos casos).", + "wget": "Para garantir que o homarr possa se comunicar com os outros aplicativos, certifique-se de usar o wget/curl/ping no IP:porta do aplicativo.", + "iframe": "Quando se trata de iframes, eles devem sempre usar o mesmo protocolo (http/s) que o Homarr.", + "clearCache": "Algumas informações são registradas no cache, portanto, uma integração pode não funcionar a menos que você limpe o cache nas opções gerais do Homarr." + }, + "footer": "Para obter mais soluções de problemas, entre em contato pelo e-mail {{discord}}." + } }, "externalAddress": { "label": "Endereço externo", @@ -26,10 +40,10 @@ "description": "Abrir a aplicação num novo separador em vez do actual." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Descrição do aplicativo", + "description": "O texto que você inserir aparecerá ao passar o mouse sobre o aplicativo.\r\nUse-o para fornecer aos usuários mais detalhes sobre seu aplicativo ou deixe-o vazio para não ter nada." }, - "customProtocolWarning": "" + "customProtocolWarning": "Usar um protocolo não padrão. Isso pode exigir aplicativos pré-instalados e pode introduzir riscos à segurança. Certifique-se de que seu endereço seja seguro e confiável." }, "network": { "statusChecker": { @@ -44,7 +58,7 @@ "appearance": { "icon": { "label": "Ícone de aplicação", - "description": "", + "description": "Comece a digitar para encontrar um ícone. Você também pode colar o URL de uma imagem para usar um ícone personalizado.", "autocomplete": { "title": "Nenhum resultado encontrado", "text": "Tente usar um termo de pesquisa mais específico. Se não conseguir encontrar o ícone desejado, cole a URL da imagem acima para obter um ícone personalizado" @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Tamanho da fonte do nome do aplicativo", + "description": "Defina o tamanho da fonte para quando o nome do aplicativo for mostrado no bloco." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Nome do aplicativo Status", + "description": "Escolha onde você deseja que o título seja exibido, se for o caso.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Mostrar título somente no bloco", + "hover": "Mostrar título somente ao passar o mouse sobre a dica de ferramenta", + "hidden": "Não mostrar nada" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Nome do aplicativo Posição", + "description": "Posição do nome do aplicativo em relação ao ícone.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Topo", + "right": "Certo", + "bottom": "Parte inferior", + "left": "Esquerda" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Nome do aplicativo Grampo de linha", + "description": "Define em quantas linhas seu título deve caber, no máximo. Defina 0 para ilimitado." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "O seu formulário contém dados inválidos. Por conseguinte, não pode ser guardado. Por favor resolva todos os problemas e clique novamente neste botão para guardar as suas alterações.", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "O nome é obrigatório", + "noUrl": "O URL é obrigatório", + "invalidUrl": "O valor não é uma url válida", + "noIconUrl": "Este campo é obrigatório", + "noExternalUri": "É necessário um URI externo", + "invalidExternalUri": "O URI externo não é um URI válido" } } diff --git a/public/locales/pt/layout/modals/change-position.json b/public/locales/pt/layout/modals/change-position.json index e27a8718f..016aaea3a 100644 --- a/public/locales/pt/layout/modals/change-position.json +++ b/public/locales/pt/layout/modals/change-position.json @@ -1,6 +1,8 @@ { + "xPosition": "Posição do eixo X", "width": "Largura", "height": "Altura", + "yPosition": "Posição do eixo Y", "zeroOrHigher": "0 ou superior", "betweenXandY": "Entre {{min}} e {{max}}" } \ No newline at end of file diff --git a/public/locales/pt/manage/boards.json b/public/locales/pt/manage/boards.json new file mode 100644 index 000000000..6425f5fdd --- /dev/null +++ b/public/locales/pt/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Placas", + "pageTitle": "Placas", + "cards": { + "statistics": { + "apps": "Aplicativos", + "widgets": "Widgets", + "categories": "Categorias" + }, + "buttons": { + "view": "Exibir quadro" + }, + "menu": { + "setAsDefault": "Definir como seu quadro padrão", + "delete": { + "label": "Excluir permanentemente", + "disabled": "Exclusão desativada, pois os componentes Homarr mais antigos não permitem a exclusão da configuração padrão. A exclusão será possível no futuro." + } + }, + "badges": { + "fileSystem": "Sistema de arquivos", + "default": "Padrão" + } + }, + "buttons": { + "create": "Criar novo quadro" + }, + "modals": { + "delete": { + "title": "Excluir quadro", + "text": "Tem certeza de que deseja excluir este quadro? Essa ação não pode ser desfeita e seus dados serão perdidos permanentemente." + }, + "create": { + "title": "Criar quadro", + "text": "O nome não pode ser alterado após a criação de um quadro.", + "form": { + "name": { + "label": "Nome" + }, + "submit": "Criar" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/index.json b/public/locales/pt/manage/index.json new file mode 100644 index 000000000..14fc7d704 --- /dev/null +++ b/public/locales/pt/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Gerenciar", + "hero": { + "title": "Bem-vindo de volta, {{username}}", + "fallbackUsername": "Anônimo", + "subtitle": "Bem-vindo ao seu Application Hub. Organize, otimize e conquiste!" + }, + "quickActions": { + "title": "Ações rápidas", + "boards": { + "title": "Suas placas", + "subtitle": "Crie e gerencie seus quadros" + }, + "inviteUsers": { + "title": "Convidar um novo usuário", + "subtitle": "Criar e enviar um convite para registro" + }, + "manageUsers": { + "title": "Gerenciar usuários", + "subtitle": "Excluir e gerenciar seus usuários" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/users.json b/public/locales/pt/manage/users.json new file mode 100644 index 000000000..d28922337 --- /dev/null +++ b/public/locales/pt/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Usuário" + } + }, + "tooltips": { + "deleteUser": "Excluir usuário", + "demoteAdmin": "Rebaixar o administrador", + "promoteToAdmin": "Promover para administrador" + }, + "modals": { + "delete": { + "title": "Excluir o usuário {{name}}", + "text": "Tem certeza de que deseja excluir o usuário {{name}}? Isso excluirá os dados associados a essa conta, mas não os painéis criados por esse usuário." + }, + "change-role": { + "promote": { + "title": "Promover o usuário {{name}} a administrador", + "text": "Tem certeza de que deseja promover o usuário {{name}} a administrador? Isso dará ao usuário acesso a todos os recursos da sua instância Homarr." + }, + "demote": { + "title": "Rebaixar o usuário {{name}} para o usuário", + "text": "Tem certeza de que deseja rebaixar o usuário {{name}} para usuário? Isso removerá o acesso do usuário a todos os recursos da sua instância Homarr." + }, + "confirm": "Confirme" + } + }, + "searchDoesntMatch": "Sua pesquisa não corresponde a nenhuma entrada. Ajuste seu filtro." +} \ No newline at end of file diff --git a/public/locales/pt/manage/users/create.json b/public/locales/pt/manage/users/create.json new file mode 100644 index 000000000..00928286b --- /dev/null +++ b/public/locales/pt/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Criar usuário", + "steps": { + "account": { + "title": "Primeira etapa", + "text": "Criar conta", + "username": { + "label": "Usuário" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Segunda etapa", + "text": "Senha", + "password": { + "label": "Senha" + } + }, + "finish": { + "title": "Confirmação", + "text": "Salvar no banco de dados", + "card": { + "title": "Analise suas entradas", + "text": "Depois de enviar seus dados para o banco de dados, o usuário poderá fazer login. Tem certeza de que deseja armazenar esse usuário no banco de dados e ativar o login?" + }, + "table": { + "header": { + "property": "Propriedade", + "value": "Valor", + "username": "Usuário", + "email": "E-mail", + "password": "Senha" + }, + "notSet": "Não definido", + "valid": "Válido" + }, + "failed": "Falha na criação do usuário: {{error}}" + }, + "completed": { + "alert": { + "title": "O usuário foi criado", + "text": "O usuário foi criado no banco de dados. Agora ele pode fazer login." + } + } + }, + "buttons": { + "generateRandomPassword": "Gerar aleatórios", + "createAnother": "Criar outro" + } +} \ No newline at end of file diff --git a/public/locales/pt/manage/users/invites.json b/public/locales/pt/manage/users/invites.json new file mode 100644 index 000000000..2b05407cd --- /dev/null +++ b/public/locales/pt/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Convites de usuários", + "pageTitle": "Gerenciar convites de usuários", + "description": "Usando convites, você pode convidar usuários para sua instância Homarr. Um convite só será válido por um determinado período de tempo e poderá ser usado uma vez. O prazo de validade deve estar entre 5 minutos e 12 meses após a criação.", + "button": { + "createInvite": "Criar convite", + "deleteInvite": "Excluir convite" + }, + "table": { + "header": { + "id": "ID", + "creator": "Criador", + "expires": "Expirações", + "action": "Ações" + }, + "data": { + "expiresAt": "expirou {{at}}", + "expiresIn": "em {{in}}" + } + }, + "modals": { + "create": { + "title": "Criar convite", + "description": "Após a expiração, um convite não será mais válido e o destinatário do convite não poderá criar uma conta.", + "form": { + "expires": "Data de expiração", + "submit": "Criar" + } + }, + "copy": { + "title": "Copiar convite", + "description": "Seu convite foi gerado. Após o fechamento deste modal, você não poderá mais copiar este link. Se não quiser mais convidar essa pessoa, você poderá excluir esse convite a qualquer momento.", + "invitationLink": "Link do convite", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Copiar e descartar" + } + }, + "delete": { + "title": "Excluir convite", + "description": "Tem certeza de que deseja excluir este convite? Os usuários com esse link não poderão mais criar uma conta usando esse link." + } + }, + "noInvites": "Ainda não há convites." +} \ No newline at end of file diff --git a/public/locales/pt/modules/bookmark.json b/public/locales/pt/modules/bookmark.json index 1d6786bd0..b67900b26 100644 --- a/public/locales/pt/modules/bookmark.json +++ b/public/locales/pt/modules/bookmark.json @@ -1,43 +1,43 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Marcador", + "description": "Exibe uma lista estática de cadeias de caracteres ou links", "settings": { - "title": "", + "title": "Configurações de marcadores", "name": { - "label": "", - "info": "" + "label": "Título do widget", + "info": "Deixe em branco para manter o título oculto." }, "items": { - "label": "" + "label": "Itens" }, "layout": { "label": "Layout", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Grade automática", + "horizontal": "Horizontal", + "vertical": "Vertical" } } } }, "card": { "noneFound": { - "title": "", - "text": "" + "title": "Lista de favoritos vazia", + "text": "Adicionar novos itens a essa lista no modo de edição" } }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "O comprimento deve estar entre {{shortest}} e {{longest}}", + "invalidLink": "Não é um link válido", + "errorMsg": "Não foi salvo, pois houve erros de validação. Por favor, ajuste suas entradas" }, "name": "Nome", - "url": "", + "url": "URL", "newTab": "Abrir em novo separador", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Ocultar nome do host", + "hideIcon": "Ocultar ícone", "delete": "Apagar" } } diff --git a/public/locales/pt/modules/calendar.json b/public/locales/pt/modules/calendar.json index 9b036f55e..3ada589a7 100644 --- a/public/locales/pt/modules/calendar.json +++ b/public/locales/pt/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Apresenta um calendário com os próximos lançamentos, a partir das integrações suportadas.", "settings": { "title": "Definições para o widget Calendário", - "useSonarrv4": { - "label": "Utilizar Sonarr v4 API" - }, - "sundayStart": { - "label": "Comece a semana no Domingo" - }, "radarrReleaseType": { "label": "Tipo de libertação de Radarr", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "Nos cinemas", + "physicalRelease": "Físico", + "digitalRelease": "Digital" } }, "hideWeekDays": { - "label": "" + "label": "Ocultar dias da semana" }, "showUnmonitored": { - "label": "" + "label": "Mostrar itens não monitorados" }, "fontSize": { - "label": "", + "label": "Tamanho da fonte", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Extra pequeno", + "sm": "Pequeno", + "md": "Médio", + "lg": "Grande", + "xl": "Extragrande" } } } diff --git a/public/locales/pt/modules/dashdot.json b/public/locales/pt/modules/dashdot.json index f54b311a6..6b76641e5 100644 --- a/public/locales/pt/modules/dashdot.json +++ b/public/locales/pt/modules/dashdot.json @@ -1,11 +1,11 @@ { "descriptor": { "name": "Dash.", - "description": "", + "description": "Exibe os gráficos de uma instância externa do Dash. Instance dentro da Homarr.", "settings": { "title": "Definições para o Dash. widget", "dashName": { - "label": "" + "label": "Traço. Nome" }, "url": { "label": "URL do Dash." @@ -88,7 +88,7 @@ "noInformation": "Não é possível obter informações do Dash. Você está executando a versão mais recente?", "protocolDowngrade": { "title": "Downgrade de protocolo detectado", - "text": "" + "text": "A conexão com sua instância do Dash. está usando HTTP. Isso é um risco de segurança, pois o HTTP não é criptografado e os invasores podem abusar dessa conexão. Certifique-se de que o Dash. esteja usando HTTPS ou faça o downgrade de Homarr para HTTP (não recomendado)." } }, "graphs": { diff --git a/public/locales/pt/modules/date.json b/public/locales/pt/modules/date.json index e07f705f4..c2ff02e18 100644 --- a/public/locales/pt/modules/date.json +++ b/public/locales/pt/modules/date.json @@ -8,24 +8,24 @@ "label": "Mostrar tempo (24 horas)" }, "dateFormat": { - "label": "", + "label": "Formatação de data", "data": { - "hide": "" + "hide": "Ocultar data" } }, "enableTimezone": { - "label": "" + "label": "Exibir um fuso horário personalizado" }, "timezoneLocation": { - "label": "" + "label": "Localização do fuso horário" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Cidade e fuso horário", + "city": "Somente na cidade", + "none": "Nenhum" } } } diff --git a/public/locales/pt/modules/dns-hole-controls.json b/public/locales/pt/modules/dns-hole-controls.json index f8daba13b..93b1950b1 100644 --- a/public/locales/pt/modules/dns-hole-controls.json +++ b/public/locales/pt/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "", - "description": "" + "name": "Controles de falhas de DNS", + "description": "Controle o PiHole ou o AdGuard em seu painel de controle", + "settings": { + "title": "Configurações de controles de falhas de DNS", + "showToggleAllButtons": { + "label": "Mostrar botões \"Ativar/Desativar tudo" + } + }, + "errors": { + "general": { + "title": "Não é possível encontrar um buraco no DNS", + "text": "Houve um problema na conexão com seu(s) buraco(s) DNS. Verifique sua(s) configuração(ões)/integração(ões)." + } + } } } \ No newline at end of file diff --git a/public/locales/pt/modules/dns-hole-summary.json b/public/locales/pt/modules/dns-hole-summary.json index a43521357..b6fde0d77 100644 --- a/public/locales/pt/modules/dns-hole-summary.json +++ b/public/locales/pt/modules/dns-hole-summary.json @@ -1,26 +1,26 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Resumo das falhas de DNS", + "description": "Exibe dados importantes do PiHole ou do AdGuard", "settings": { - "title": "", + "title": "Configurações para o resumo do DNS Hole", "usePiHoleColors": { - "label": "" + "label": "Usar cores do PiHole" }, "layout": { "label": "Layout", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 por 2", + "row": "Horizontal", + "column": "Vertical" } } } }, "card": { "metrics": { - "domainsOnAdlist": "", - "queriesToday": "", + "domainsOnAdlist": "Domínios em adlists", + "queriesToday": "Consultas hoje", "queriesBlockedTodayPercentage": "", "queriesBlockedToday": "" } diff --git a/public/locales/pt/modules/iframe.json b/public/locales/pt/modules/iframe.json index 6242b03b8..cc97b11ad 100644 --- a/public/locales/pt/modules/iframe.json +++ b/public/locales/pt/modules/iframe.json @@ -1,9 +1,9 @@ { "descriptor": { - "name": "", + "name": "iFrame", "description": "Incorporar qualquer conteúdo da internet. Alguns sites podem restringir o acesso.", "settings": { - "title": "", + "title": "configurações do IFrame", "embedUrl": { "label": "Incorporar URL" }, @@ -11,35 +11,35 @@ "label": "Permitir tela cheia" }, "allowTransparency": { - "label": "" + "label": "Permitir transparência" }, "allowScrolling": { - "label": "" + "label": "Permitir rolagem" }, "allowPayment": { - "label": "" + "label": "Permitir pagamento" }, "allowAutoPlay": { - "label": "" + "label": "Permitir reprodução automática" }, "allowMicrophone": { - "label": "" + "label": "Permitir microfone" }, "allowCamera": { - "label": "" + "label": "Permitir câmera" }, "allowGeolocation": { - "label": "" + "label": "Permitir geolocalização" } } }, "card": { "errors": { "noUrl": { - "title": "", + "title": "URL inválido", "text": "Certifique-se de que você inseriu um endereço válido na configuração do seu widget" }, - "browserSupport": "" + "browserSupport": "Seu navegador não suporta iframes. Atualize seu navegador." } } } diff --git a/public/locales/pt/modules/media-requests-list.json b/public/locales/pt/modules/media-requests-list.json index 2b1fc2d63..ba0d6c40c 100644 --- a/public/locales/pt/modules/media-requests-list.json +++ b/public/locales/pt/modules/media-requests-list.json @@ -1,35 +1,33 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Solicitações de mídia", + "description": "Veja uma lista de todas as solicitações de mídia da sua instância do Overseerr ou Jellyseerr", "settings": { - "title": "", + "title": "Lista de solicitações de mídia", "replaceLinksWithExternalHost": { - "label": "" + "label": "Substituir links por um host externo" }, "openInNewTab": { - "label": "" + "label": "Abrir links em uma nova guia" } } }, - "noRequests": "", - "pending": "", - "nonePending": "", + "noRequests": "Nenhuma solicitação encontrada. Verifique se você configurou seus aplicativos corretamente.", "state": { - "approved": "", - "pendingApproval": "", - "declined": "" + "approved": "Aprovado", + "pendingApproval": "Aprovação pendente", + "declined": "Recusado" }, "tooltips": { - "approve": "", - "decline": "", - "approving": "" + "approve": "Aprovar solicitações", + "decline": "Recusar solicitações", + "approving": "Aprovação da solicitação..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Aprovação", + "declining": "Em declínio", + "request": "pedido...", + "approved": "A solicitação foi aprovada!", + "declined": "A solicitação foi recusada!" } } diff --git a/public/locales/pt/modules/media-requests-stats.json b/public/locales/pt/modules/media-requests-stats.json index f152af280..c0b73bd99 100644 --- a/public/locales/pt/modules/media-requests-stats.json +++ b/public/locales/pt/modules/media-requests-stats.json @@ -1,27 +1,27 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Estatísticas de solicitação de mídia", + "description": "Estatísticas sobre suas solicitações de mídia", "settings": { - "title": "", + "title": "Estatísticas de solicitações de mídia", "replaceLinksWithExternalHost": { - "label": "" + "label": "Substituir links por um host externo" }, "openInNewTab": { - "label": "" + "label": "Abrir links em uma nova guia" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Estatísticas de mídia", + "pending": "Aprovações pendentes", + "tvRequests": "Solicitações de TV", + "movieRequests": "Solicitações de filmes", + "approved": "Já aprovado", + "totalRequests": "Total" }, "userStats": { - "title": "", - "requests": "" + "title": "Principais usuários", + "requests": "Solicitações: {{number}}" } } diff --git a/public/locales/pt/modules/media-server.json b/public/locales/pt/modules/media-server.json index b8b814a68..3ce91bcc9 100644 --- a/public/locales/pt/modules/media-server.json +++ b/public/locales/pt/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Configurações para o widget do servidor de mídia" } }, - "loading": "", + "loading": "Carregando fluxos", "card": { "table": { "header": { diff --git a/public/locales/pt/modules/notebook.json b/public/locales/pt/modules/notebook.json index 3ad2a768e..a48a95c33 100644 --- a/public/locales/pt/modules/notebook.json +++ b/public/locales/pt/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Caderno de anotações", + "description": "Um widget interativo baseado em markdown para você fazer suas anotações!", "settings": { - "title": "", + "title": "Configurações do widget do notebook", "showToolbar": { + "label": "Mostrar a barra de ferramentas para ajudá-lo a escrever markdown" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "O conteúdo do notebook" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/pt/modules/ping.json b/public/locales/pt/modules/ping.json index c2dc22556..62424a143 100644 --- a/public/locales/pt/modules/ping.json +++ b/public/locales/pt/modules/ping.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Latência", - "description": "" + "description": "Exibe um indicador de status dependendo do código de resposta HTTP de um determinado URL." }, "states": { "online": "Online {{response}}", diff --git a/public/locales/pt/modules/rss.json b/public/locales/pt/modules/rss.json index 79bb72765..0f8bbfb43 100644 --- a/public/locales/pt/modules/rss.json +++ b/public/locales/pt/modules/rss.json @@ -1,29 +1,29 @@ { "descriptor": { "name": "Widget RSS", - "description": "", + "description": "O widget rss permite que você exiba feeds RSS em seu painel.", "settings": { "title": "Configurações para o widget RSS", "rssFeedUrl": { - "label": "", - "description": "" + "label": "URLs de feeds RSS", + "description": "Os URLs dos feeds RSS que você deseja exibir." }, "refreshInterval": { - "label": "" + "label": "Intervalo de atualização (em minutos)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Permitir formatação HTML (Perigoso)", + "info": "Permitir a formatação HTML de fora pode ser perigoso.
Certifique-se de que o feed seja de uma fonte confiável." }, "textLinesClamp": { - "label": "" + "label": "Grampo de linhas de texto" } }, "card": { "errors": { "general": { - "title": "", - "text": "" + "title": "Não foi possível recuperar o feed RSS", + "text": "Houve um problema ao acessar o feed RSS. Certifique-se de que você configurou corretamente o feed RSS usando um URL válido. Os URLs devem corresponder à especificação oficial. Depois de atualizar o feed, talvez seja necessário atualizar o painel." } } } diff --git a/public/locales/pt/modules/torrents-status.json b/public/locales/pt/modules/torrents-status.json index 836b39a37..8089d44ba 100644 --- a/public/locales/pt/modules/torrents-status.json +++ b/public/locales/pt/modules/torrents-status.json @@ -10,22 +10,34 @@ "displayCompletedTorrents": { "label": "Mostrar torrentes completas" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Exibição de torrentes envelhecidas" }, "labelFilterIsWhitelist": { - "label": "" + "label": "A lista de rótulos é uma lista branca (em vez de uma lista negra)" }, "labelFilter": { + "label": "Lista de rótulos", + "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": "", - "description": "" + "info": "" } } }, "card": { "footer": { "error": "Erro", - "lastUpdated": "Última actualização {{time}} atrás" + "lastUpdated": "Última actualização {{time}} atrás", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -41,7 +53,7 @@ }, "body": { "nothingFound": "Nenhum torrent encontrado", - "filterHidingItems": "" + "filterHidingItems": "{{count}} as entradas são ocultadas por seus filtros" } }, "lineChart": { @@ -58,13 +70,13 @@ "text": "Adicione um cliente Torrent suportado para ver os seus downloads actuais" }, "generic": { - "title": "", - "text": "" + "title": "Ocorreu um erro inesperado", + "text": "Não é possível se comunicar com seus clientes Torrent. Verifique sua configuração" } }, "loading": { - "title": "", - "description": "" + "title": "Carregamento", + "description": "Estabelecimento de uma conexão" }, "popover": { "introductionPrefix": "Gerido por", diff --git a/public/locales/pt/modules/video-stream.json b/public/locales/pt/modules/video-stream.json index 27fea2dfc..70884cda4 100644 --- a/public/locales/pt/modules/video-stream.json +++ b/public/locales/pt/modules/video-stream.json @@ -5,10 +5,10 @@ "settings": { "title": "Configurações para o widget de transmissão de vídeo", "FeedUrl": { - "label": "" + "label": "URL do feed" }, "autoPlay": { - "label": "" + "label": "Reprodução automática" }, "muted": { "label": "Silenciar áudio" diff --git a/public/locales/pt/modules/weather.json b/public/locales/pt/modules/weather.json index ffce85d5e..8446e11be 100644 --- a/public/locales/pt/modules/weather.json +++ b/public/locales/pt/modules/weather.json @@ -8,7 +8,7 @@ "label": "Mostrar em Fahrenheit" }, "displayCityName": { - "label": "" + "label": "Exibir nome da cidade" }, "location": { "label": "Localização do tempo" @@ -33,5 +33,5 @@ "unknown": "Desconhecido" } }, - "error": "" + "error": "Ocorreu um erro" } diff --git a/public/locales/pt/password-requirements.json b/public/locales/pt/password-requirements.json new file mode 100644 index 000000000..af368b236 --- /dev/null +++ b/public/locales/pt/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Inclui número", + "lowercase": "Inclui letras minúsculas", + "uppercase": "Inclui letras maiúsculas", + "special": "Inclui um caractere especial", + "length": "Inclui pelo menos {{count}} caracteres" +} \ No newline at end of file diff --git a/public/locales/pt/settings/customization/access.json b/public/locales/pt/settings/customization/access.json new file mode 100644 index 000000000..f81aa81f6 --- /dev/null +++ b/public/locales/pt/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Permitir anônimos", + "description": "Permitir que usuários que não estejam conectados visualizem seu quadro" + } +} \ No newline at end of file diff --git a/public/locales/pt/settings/customization/general.json b/public/locales/pt/settings/customization/general.json index 9036d8c92..80053d146 100644 --- a/public/locales/pt/settings/customization/general.json +++ b/public/locales/pt/settings/customization/general.json @@ -15,11 +15,15 @@ }, "appereance": { "name": "Aparência", - "description": "" + "description": "Personalize o plano de fundo, as cores e a aparência dos aplicativos" }, "accessibility": { + "name": "Acessibilidade", + "description": "Configure o Homarr para usuários com deficiência ou incapacitados" + }, + "access": { "name": "", - "description": "" + "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 3423ae2ab..23432dd2f 100644 --- a/public/locales/pt/settings/customization/page-appearance.json +++ b/public/locales/pt/settings/customization/page-appearance.json @@ -5,26 +5,23 @@ }, "metaTitle": { "label": "Meta Título", - "description": "" + "description": "O título exibido na guia do navegador" }, "logo": { "label": "Logo", - "description": "" + "description": "O logotipo exibido no canto superior esquerdo" }, "favicon": { "label": "Favicon", - "description": "" + "description": "O ícone exibido na guia do navegador" }, "background": { "label": "Antecedentes" }, "customCSS": { "label": "CSS Personalizado", - "description": "", + "description": "Além disso, personalize seu painel usando CSS, recomendado apenas para usuários experientes", "placeholder": "O CSS personalizado será aplicado por último", "applying": "Aplicando CSS..." - }, - "buttons": { - "submit": "Enviar" } -} +} \ No newline at end of file diff --git a/public/locales/pt/settings/general/cache-buttons.json b/public/locales/pt/settings/general/cache-buttons.json index 685994c48..7eebe8c9a 100644 --- a/public/locales/pt/settings/general/cache-buttons.json +++ b/public/locales/pt/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Limpeza do cache", "selector": { - "label": "", + "label": "Selecione o(s) cache(s) a ser(em) limpo(s)", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Consultas de ping", + "repositoryIcons": "Ícones remotos/locais", + "calendar&medias": "Mídias do calendário", + "weather": "Dados meteorológicos" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Cache limpo", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Limpar todo o cache", + "notificationMessage": "Todo o cache foi limpo" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Limpar as consultas selecionadas", + "notificationMessageSingle": "O cache do site {{value}} foi limpo", + "notificationMessageMulti": "O cache do site {{values}} foi limpo" } } } \ No newline at end of file diff --git a/public/locales/pt/settings/general/config-changer.json b/public/locales/pt/settings/general/config-changer.json index 776be67a3..5b93de32f 100644 --- a/public/locales/pt/settings/general/config-changer.json +++ b/public/locales/pt/settings/general/config-changer.json @@ -36,8 +36,8 @@ }, "confirmDeletion": { "title": "Confirme a eliminação da sua configuração", - "warningText": "", - "text": "", + "warningText": "Você está prestes a excluir '{{configName}}'", + "text": "Observe que a exclusão não é reversível, e seus dados serão perdidos permanentemente. Após clicar nesse botão, o arquivo será excluído permanentemente do disco. Certifique-se de criar um backup adequado de sua configuração.", "buttons": { "confirm": "Sim, eliminar '{{configName}}'" } @@ -57,7 +57,7 @@ "message": "A configuração de apagar falhou" }, "deleteFailedDefaultConfig": { - "title": "", + "title": "A configuração padrão não pode ser excluída", "message": "A configuração não foi apagada do sistema de ficheiros" } } diff --git a/public/locales/pt/settings/general/edit-mode-toggle.json b/public/locales/pt/settings/general/edit-mode-toggle.json index fd04a5607..a71931c4e 100644 --- a/public/locales/pt/settings/general/edit-mode-toggle.json +++ b/public/locales/pt/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Alternar o modo de edição", + "enable": "Ativar o modo de edição", + "disable": "Desativar o modo de edição" }, "form": { - "label": "", - "message": "", + "label": "Editar senha", + "message": "Para ativar o modo de edição, você precisa digitar a senha que inseriu na variável de ambiente chamada EDIT_MODE_PASSWORD . Se ela não estiver definida, você não poderá ativar e desativar o modo de edição.", "submit": "Enviar" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Sucesso", + "message": "Alternou com sucesso o modo de edição, recarregando a página..." }, "error": { "title": "Erro", - "message": "" + "message": "Falha ao alternar o modo de edição, tente novamente." } } } \ No newline at end of file diff --git a/public/locales/pt/settings/general/search-engine.json b/public/locales/pt/settings/general/search-engine.json index e71e7ec47..45dbfb331 100644 --- a/public/locales/pt/settings/general/search-engine.json +++ b/public/locales/pt/settings/general/search-engine.json @@ -1,9 +1,9 @@ { "title": "Motor de busca", "configurationName": "Configuração do motor de busca", - "custom": "", + "custom": "Personalizado", "tips": { - "generalTip": "", + "generalTip": "Há vários prefixos que você pode usar! Adicioná-los na frente de sua consulta filtrará os resultados. !s (Web), !t (Torrents), !y (YouTube) e !m (Mídia).", "placeholderTip": "%s pode ser utilizado como um local para a consulta." }, "customEngine": { diff --git a/public/locales/pt/tools/docker.json b/public/locales/pt/tools/docker.json new file mode 100644 index 000000000..cb36d10c5 --- /dev/null +++ b/public/locales/pt/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Sua instância Homarr não tem o Docker configurado ou falhou ao buscar contêineres. Consulte a documentação para saber como configurar a integração." + } + }, + "modals": { + "selectBoard": { + "title": "Escolha uma placa", + "text": "Escolha o quadro em que deseja adicionar os aplicativos para os contêineres do Docker selecionados.", + "form": { + "board": { + "label": "Diretoria" + }, + "submit": "Adicionar aplicativos" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Adição de aplicativos ao quadro", + "message": "Os aplicativos para os contêineres Docker selecionados foram adicionados ao quadro." + }, + "error": { + "title": "Falha ao adicionar aplicativos ao quadro", + "message": "Os aplicativos para os contêineres Docker selecionados não puderam ser adicionados ao quadro." + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/user/preferences.json b/public/locales/pt/user/preferences.json new file mode 100644 index 000000000..0c756ac15 --- /dev/null +++ b/public/locales/pt/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Preferências", + "pageTitle": "Suas preferências", + "boards": { + "defaultBoard": { + "label": "Placa padrão" + } + }, + "accessibility": { + "title": "Acessibilidade", + "disablePulse": { + "label": "Desativar pulso de ping", + "description": "Por padrão, os indicadores de ping no Homarr pulsam. Isso pode ser irritante. Esse controle deslizante desativará a animação" + }, + "replaceIconsWithDots": { + "label": "Substitua os pontos de ping por ícones", + "description": "Para usuários daltônicos, os pontos de ping podem ser irreconhecíveis. Isso substituirá os indicadores por ícones" + } + }, + "localization": { + "language": { + "label": "Idioma" + }, + "firstDayOfWeek": { + "label": "Primeiro dia da semana", + "options": { + "monday": "Segunda-feira", + "saturday": "Sábado", + "sunday": "Domingo" + } + } + }, + "searchEngine": { + "title": "Motor de busca", + "custom": "Personalizado", + "newTab": { + "label": "Abrir os resultados da pesquisa em uma nova guia" + }, + "autoFocus": { + "label": "Focar a barra de pesquisa no carregamento da página.", + "description": "Isso focalizará automaticamente a barra de pesquisa quando você navegar pelas páginas do fórum. Isso só funcionará em dispositivos desktop." + }, + "template": { + "label": "Consulta URL", + "description": "Use %s como um espaço reservado para a consulta" + } + } +} \ No newline at end of file diff --git a/public/locales/pt/widgets/draggable-list.json b/public/locales/pt/widgets/draggable-list.json index 5d27e99ad..b526614cd 100644 --- a/public/locales/pt/widgets/draggable-list.json +++ b/public/locales/pt/widgets/draggable-list.json @@ -1,7 +1,7 @@ { "noEntries": { - "title": "", - "text": "" + "title": "Nenhuma entrada", + "text": "Use os botões abaixo para adicionar mais entradas" }, - "buttonAdd": "" + "buttonAdd": "Adicionar" } diff --git a/public/locales/pt/widgets/error-boundary.json b/public/locales/pt/widgets/error-boundary.json index ce74ad0fc..c4217b9fe 100644 --- a/public/locales/pt/widgets/error-boundary.json +++ b/public/locales/pt/widgets/error-boundary.json @@ -1,14 +1,14 @@ { "card": { - "title": "", + "title": "Ops, houve um erro!", "buttons": { - "details": "", - "tryAgain": "" + "details": "Detalhes", + "tryAgain": "Tente novamente" } }, "modal": { "text": "", - "label": "", - "reportButton": "" + "label": "Seu erro", + "reportButton": "Reportar este erro" } } diff --git a/public/locales/pt/zod.json b/public/locales/pt/zod.json new file mode 100644 index 000000000..c9cfa9747 --- /dev/null +++ b/public/locales/pt/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Esse campo é inválido", + "required": "Este campo é obrigatório", + "string": { + "startsWith": "Esse campo deve começar com {{startsWith}}", + "endsWith": "Esse campo deve terminar com {{endsWith}}", + "includes": "Esse campo deve incluir {{includes}}" + }, + "tooSmall": { + "string": "Esse campo deve ter pelo menos {{minimum}} caracteres", + "number": "Esse campo deve ser maior ou igual a {{minimum}}" + }, + "tooBig": { + "string": "Esse campo deve ter no máximo {{maximum}} caracteres", + "number": "Esse campo deve ser menor ou igual a {{maximum}}" + }, + "custom": { + "passwordMatch": "As senhas devem corresponder" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/authentication/invite.json b/public/locales/ru/authentication/invite.json new file mode 100644 index 000000000..6c1710775 --- /dev/null +++ b/public/locales/ru/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Создать аккаунт", + "title": "Создать аккаунт", + "text": "Пожалуйста, укажите свои регистрационные данные ниже", + "form": { + "fields": { + "username": { + "label": "Имя пользователя" + }, + "password": { + "label": "Пароль" + }, + "passwordConfirmation": { + "label": "Подтвердите пароль" + } + }, + "buttons": { + "submit": "Создать аккаунт" + } + }, + "notifications": { + "loading": { + "title": "Создание аккаунта", + "text": "Пожалуйста, подождите" + }, + "success": { + "title": "Аккаунт создан", + "text": "Ваш аккаунт был успешно создан" + }, + "error": { + "title": "Ошибка", + "text": "Что-то пошло не так, произошла следующая ошибка: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/authentication/login.json b/public/locales/ru/authentication/login.json index 8e500d48c..f062446cf 100644 --- a/public/locales/ru/authentication/login.json +++ b/public/locales/ru/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Вход в систему", "title": "С возвращением!", - "text": "Пожалуйста, введите ваш пароль", + "text": "Пожалуйста, введите свои учетные данные", "form": { "fields": { + "username": { + "label": "Имя пользователя" + }, "password": { - "label": "Пароль", - "placeholder": "Ваш пароль" + "label": "Пароль" } }, "buttons": { "submit": "Войти" - } + }, + "afterLoginRedirection": "После входа вы будете перенаправлены на сайт {{url}}" }, - "notifications": { - "checking": { - "title": "Проверка пароля", - "message": "Ваш пароль проверяется..." - }, - "correct": { - "title": "Вход выполнен, перенаправление..." - }, - "wrong": { - "title": "Введен неверный пароль, попробуйте еще раз." - } - } -} + "alert": "Ваши учетные данные неверны или данный аккаунт не существует. Пожалуйста, попробуйте еще раз." +} \ No newline at end of file diff --git a/public/locales/ru/boards/common.json b/public/locales/ru/boards/common.json new file mode 100644 index 000000000..463afeb63 --- /dev/null +++ b/public/locales/ru/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Настройка панели" + } +} \ No newline at end of file diff --git a/public/locales/ru/boards/customize.json b/public/locales/ru/boards/customize.json new file mode 100644 index 000000000..b201740ac --- /dev/null +++ b/public/locales/ru/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Настройка панели {{name}}", + "pageTitle": "Настройка для панели {{name}}", + "backToBoard": "Вернуться к доске", + "settings": { + "appearance": { + "primaryColor": "Основной цвет", + "secondaryColor": "Дополнительный цвет" + } + }, + "save": { + "button": "Сохранить изменения", + "note": "Осторожно, у вас есть несохраненные изменения!" + }, + "notifications": { + "pending": { + "title": "Сохранение настройки", + "message": "Пожалуйста, подождите, пока мы сохраняем вашу настройку" + }, + "success": { + "title": "Настройка сохранена", + "message": "Ваша настройка успешно сохранена" + }, + "error": { + "title": "Ошибка", + "message": "Не удалось сохранить изменения" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 16729a682..182197bbd 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -1,11 +1,17 @@ { "save": "Сохранить", + "apply": "Применить", + "insert": "Вставить", "about": "О программе", "cancel": "Отмена", "close": "Закрыть", + "back": "Назад", "delete": "Удалить", "ok": "ОК", "edit": "Изменить", + "next": "Далее", + "previous": "Предыдущий", + "confirm": "Подтвердить", "enabled": "Включено", "disabled": "Отключено", "enableAll": "Включить всё", @@ -13,15 +19,15 @@ "version": "Версия", "changePosition": "Изменить положение", "remove": "Удалить", - "removeConfirm": "Вы действительно хотите удалить {{item}}?", + "removeConfirm": "Вы уверены, что хотите удалить {{item}}?", "createItem": "+ создать {{item}}", "sections": { "settings": "Настройки", - "dangerZone": "Опасная зона" + "dangerZone": "Зона опасности" }, "secrets": { - "apiKey": "API ключ", - "username": "Логин", + "apiKey": "API-ключ", + "username": "Имя пользователя", "password": "Пароль" }, "tip": "Совет: ", @@ -36,5 +42,14 @@ "medium": "среднего", "large": "большого" }, - "seeMore": "Показать больше..." + "seeMore": "Узнать больше...", + "position": { + "left": "Слева", + "center": "По центру", + "right": "Справа" + }, + "attributes": { + "width": "Ширина", + "height": "Высота" + } } \ No newline at end of file diff --git a/public/locales/ru/layout/common.json b/public/locales/ru/layout/common.json index 2e14b63c2..1798b1642 100644 --- a/public/locales/ru/layout/common.json +++ b/public/locales/ru/layout/common.json @@ -4,7 +4,7 @@ "title": "Всплывающие окна заблокированы", "text": "Ваш браузер заблокировал доступ Homarr к своему API. Это обычно вызвано блокировщиками рекламы или отказом в разрешениях. Homarr не может автоматически запрашивать разрешения.", "list": { - "browserPermission": "Щелкните на значке рядом с URL и проверьте разрешения. Разрешите показ всплывающих окон", + "browserPermission": "Нажмите на значок рядом с URL и проверьте разрешения. Разрешить показ всплывающих окон", "adBlockers": "Отключите блокировщики рекламы и инструменты безопасности в вашем браузере", "otherBrowser": "Попробуйте другой браузер" } diff --git a/public/locales/ru/layout/element-selector/selector.json b/public/locales/ru/layout/element-selector/selector.json index fd0530931..a57639896 100644 --- a/public/locales/ru/layout/element-selector/selector.json +++ b/public/locales/ru/layout/element-selector/selector.json @@ -15,7 +15,7 @@ "widgets": "Виджеты", "categories": "Категории", "category": { - "newName": "Имя новой категории", + "newName": "Название новой категории", "defaultName": "Новая категория", "created": { "title": "Категория создана", diff --git a/public/locales/ru/layout/errors/access-denied.json b/public/locales/ru/layout/errors/access-denied.json new file mode 100644 index 000000000..71e587b20 --- /dev/null +++ b/public/locales/ru/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Доступ запрещен", + "text": "У вас недостаточно прав для доступа к этой странице. Если вы считаете, что это не было преднамеренно, пожалуйста, свяжитесь с вашим администратором.", + "switchAccount": "Переключитесь на другой аккаунт" +} \ No newline at end of file diff --git a/public/locales/ru/layout/header.json b/public/locales/ru/layout/header.json new file mode 100644 index 000000000..228a558ea --- /dev/null +++ b/public/locales/ru/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Это экспериментальная функция Homarr. Пожалуйста, сообщайте о любых проблемах на GitHub или Discord." + }, + "search": { + "label": "Поиск", + "engines": { + "web": "Поиск {{query}} в интернете", + "youtube": "Поиск {{query}} на YouTube", + "torrent": "Поиск {{query}} по торрентам", + "movie": "Поиск {{query}} в приложении {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Переключить тему", + "preferences": "Пользовательские настройки", + "defaultBoard": "Панель по умолчанию", + "manage": "Управление", + "logout": "Выйти как {{username}}", + "login": "Вход в систему" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Топ {{count}} результатов для {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/ru/layout/header/actions/toggle-edit-mode.json b/public/locales/ru/layout/header/actions/toggle-edit-mode.json index 8f393f3f0..296da3edf 100644 --- a/public/locales/ru/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/ru/layout/header/actions/toggle-edit-mode.json @@ -1,8 +1,8 @@ { "description": "В режиме редактирования можно настраивать плитки и приложения. Изменения не сохраняются до выхода из режима редактирования.", "button": { - "disabled": "Перейти в режим редактирования", - "enabled": "Выйти и сохранить" + "disabled": "Войти в режим редактирования", + "enabled": "Выход и сохранение" }, "popover": { "title": "Режим редактирования включен для <1>{{size}} размера", diff --git a/public/locales/ru/layout/manage.json b/public/locales/ru/layout/manage.json new file mode 100644 index 000000000..19b5a5a0a --- /dev/null +++ b/public/locales/ru/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Главная" + }, + "boards": { + "title": "Панели" + }, + "users": { + "title": "Пользователи", + "items": { + "manage": "Управление", + "invites": "Приглашения" + } + }, + "help": { + "title": "Помощь", + "items": { + "documentation": "Документация", + "report": "Сообщить о проблеме / ошибке", + "discord": "Сообщество Discord", + "contribute": "Внести вклад" + } + }, + "tools": { + "title": "Инструменты", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "О программе" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/layout/modals/about.json b/public/locales/ru/layout/modals/about.json index 57b4f5ffd..733b951de 100644 --- a/public/locales/ru/layout/modals/about.json +++ b/public/locales/ru/layout/modals/about.json @@ -1,26 +1,27 @@ { - "description": "Homarr - это элегантная, современная панель, на которой все ваши приложения и сервисы находятся под рукой. С Homarr вы можете получить доступ и управлять всем в одном удобном месте. Homarr легко интегрируется с приложениями, которые вы добавили, предоставляя вам ценную информацию и обеспечивая полный контроль. Установка не займет много времени, Homarr поддерживает широкий спектр методов развертывания.", - "contact": "Проблемы или вопросы? Свяжитесь с нами!", + "description": "Homarr - это стильная, современная панель, которая позволяет управлять всеми вашими приложениями и сервисами. С Homarr вы можете получить доступ и управлять всем в одном удобном месте. Homarr идеально интегрируется с добавляемыми вами приложениями, предоставляя вам ценную информацию и полный контроль. Установка не составит труда, Homarr поддерживает широкий спектр методов развертывания.", "addToDashboard": "Добавить на панель", - "tip": "Mod относится к клавише модификатору, это клавиши Ctrl и Command/Super/Windows", + "tip": "Mod указывает на вашу модифицирующую клавишу, это Ctrl и Command/Super/Windows клавиши", "key": "Горячие клавиши", "action": "Действие", "keybinds": "Сочетания клавиш", - "documentation": "Документация", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "Переключить светлую/темную тему", - "focusSearchBar": "Перейти в панель поиска", - "openDocker": "Открыть виджет docker", - "toggleEdit": "Переключиться в режим редактирования" + "toggleTheme": "Переключить светлый/темный режим", + "focusSearchBar": "Фокус на панели поиска", + "openDocker": "Открыть виджет Docker", + "toggleEdit": "Переключить режим редактирования" }, "metrics": { "configurationSchemaVersion": "Версия схемы конфигурации", - "configurationsCount": "Доступные конфигурации", "version": "Версия", - "nodeEnvironment": "Окружение узла", - "i18n": "Загружено I18n переводов пространств имён", - "locales": "Настроено I18n локализаций", - "experimental_disableEditMode": "ЭКСПЕРИМЕНТАЛЬНЫЙ: Отключить режим редактирования" + "nodeEnvironment": "Node окружение", + "i18n": "Загруженные пространства имен перевода I18n", + "locales": "Настроенные локали I18n", + "experimental_disableEditMode": "ЭКСПЕРИМЕНТАЛЬНО: Отключить режим редактирования" }, "version": { "new": "Новая: {{newVersion}}", diff --git a/public/locales/ru/layout/modals/add-app.json b/public/locales/ru/layout/modals/add-app.json index f6c468dc2..6befedd3f 100644 --- a/public/locales/ru/layout/modals/add-app.json +++ b/public/locales/ru/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Внутренний адрес", - "description": "Внутренний IP-адрес приложения." + "description": "Внутренний IP-адрес приложения.", + "troubleshoot": { + "label": "Возникли проблемы?", + "header": "Ниже приведен список часто встречающихся ошибок и способы их устранения:", + "lines": { + "nothingAfterPort": "В большинстве, если не во всех случаях, не следует вводить какой-либо путь после порта. (Даже '/admin' для pihole или '/web' для plex)", + "protocolCheck": "Убедитесь, что URL начинается с http или https и что вы используете правильный протокол.", + "preferIP": "Рекомендуется использовать прямой IP-адрес машины или контейнера, с которым вы хотите взаимодействовать.", + "enablePings": "Проверьте правильность IP, включив функцию пинга. Настройка панели -> Макет -> Включить пинг. На плитке вашего приложения появится маленький красный или зеленый кружок, наведя на который вы увидите код ответа (в большинстве случаев ожидается зеленый кружок с кодом 200).", + "wget": "Чтобы убедиться, что Homarr может взаимодействовать с другими приложениями, обязательно выполните команды wget/curl/ping с IP-адресом и портом приложения.", + "iframe": "Что касается iframes, то они всегда должны использовать тот же протокол (http/s), что и Homarr.", + "clearCache": "Некоторые данные сохраняются в кэше, поэтому интеграция может не работать, если вы не очистили кэш в общих настройках Homarr." + }, + "footer": "По вопросам решения проблем обращайтесь в наш {{discord}}." + } }, "externalAddress": { "label": "Внешний адрес", @@ -27,18 +41,18 @@ }, "tooltipDescription": { "label": "Описание приложения", - "description": "Введённый вами текст будет отображаться при наведении курсора на ваше приложение.\nИспользуйте это, чтобы предоставить пользователям более подробную информацию о вашем приложении или оставьте пустым, чтобы ничего не отображать." + "description": "Введенный вами текст появится при наведении курсора на ваше приложение.\nЗдесь вы можете дать пользователям больше информации о вашем приложении или оставить поле пустым." }, - "customProtocolWarning": "Использование нестандартного протокола. Для этого могут потребоваться предустановленные приложения, что может создать угрозу безопасности. Убедитесь, что ваш адрес безопасен и заслуживает доверия." + "customProtocolWarning": "Используется нестандартный протокол. Это может потребовать установки дополнительных приложений и представлять угрозу для безопасности. Убедитесь, что ваш адрес надежен и является доверенным." }, "network": { "statusChecker": { - "label": "Проверка состояния", - "description": "Проверяет, находится ли ваше приложение в сети, используя простой запрос HTTP(S)." + "label": "Проверка статуса", + "description": "Проверяет, включено ли ваше приложение, используя простой HTTP(S) запрос." }, "statusCodes": { - "label": "Коды состояния HTTP", - "description": "Коды состояния HTTP, которые считаются онлайн." + "label": "HTTP статусные коды", + "description": "HTTP статусные коды, которые считаются включенными." } }, "appearance": { @@ -62,13 +76,13 @@ "label": "Статус названия приложения", "description": "Выберите, где будет отображаться заголовок, если он вообще будет отображаться.", "dropdown": { - "normal": "Показывать только на плитке", - "hover": "Показывать только при наведении курсора", - "hidden": "Не показывать совсем" + "normal": "Показать заголовок только на плитке", + "hover": "Показать заголовок только при наведении курсора", + "hidden": "Вообще не показывать" } }, "positionAppName": { - "label": "Позиция названия приложения", + "label": "Положение названия приложения", "description": "Положение названия приложения относительно иконки.", "dropdown": { "top": "Сверху", @@ -79,7 +93,7 @@ }, "lineClampAppName": { "label": "Максимальное количество строк для названия приложения", - "description": "Определяет, на скольких строках максимально должно помещаться название. Установите 0 для снятия ограничений." + "description": "Определяет, на скольких строках максимально должно поместиться ваше название. Установите 0 для неограниченного количества строк." } }, "integration": { diff --git a/public/locales/ru/layout/modals/change-position.json b/public/locales/ru/layout/modals/change-position.json index b3cb98dac..6d70393ea 100644 --- a/public/locales/ru/layout/modals/change-position.json +++ b/public/locales/ru/layout/modals/change-position.json @@ -1,8 +1,8 @@ { - "xPosition": "Положение оси X", + "xPosition": "Позиция по оси X", "width": "Ширина", "height": "Высота", - "yPosition": "Положение оси Y", - "zeroOrHigher": "0 или выше", + "yPosition": "Позиция по оси Y", + "zeroOrHigher": "0 или больше", "betweenXandY": "Между {{min}} и {{max}}" } \ No newline at end of file diff --git a/public/locales/ru/manage/boards.json b/public/locales/ru/manage/boards.json new file mode 100644 index 000000000..79ce0e8ac --- /dev/null +++ b/public/locales/ru/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Панели", + "pageTitle": "Панели", + "cards": { + "statistics": { + "apps": "Приложения", + "widgets": "Виджеты", + "categories": "Категории" + }, + "buttons": { + "view": "Просмотр панели" + }, + "menu": { + "setAsDefault": "Установить как панель по умолчанию", + "delete": { + "label": "Удалить навсегда", + "disabled": "Удаление заблокировано, поскольку старые компоненты Homarr не позволяют удалять конфигурацию по умолчанию. Удаление будет возможным в будущем." + } + }, + "badges": { + "fileSystem": "Файловая система", + "default": "По умолчанию" + } + }, + "buttons": { + "create": "Создать новую панель" + }, + "modals": { + "delete": { + "title": "Удалить панель", + "text": "Вы уверены, что хотите удалить эту панель? Это действие нельзя отменить и ваши данные будут потеряны навсегда." + }, + "create": { + "title": "Создать панель", + "text": "Название не может быть изменено после создания панели.", + "form": { + "name": { + "label": "Имя" + }, + "submit": "Создать" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/index.json b/public/locales/ru/manage/index.json new file mode 100644 index 000000000..d4a088b74 --- /dev/null +++ b/public/locales/ru/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Управление", + "hero": { + "title": "Добро пожаловать, {{username}}", + "fallbackUsername": "Анонимный", + "subtitle": "Добро пожаловать в Ваш центр приложений. Организуйте, оптимизируйте и побеждайте!" + }, + "quickActions": { + "title": "Быстрые действия", + "boards": { + "title": "Ваши панели", + "subtitle": "Создавайте и управляйте своими панелями" + }, + "inviteUsers": { + "title": "Пригласить нового пользователя", + "subtitle": "Создать и отправить приглашение для регистрации" + }, + "manageUsers": { + "title": "Управлять пользователями", + "subtitle": "Удаление и управление пользователями" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/users.json b/public/locales/ru/manage/users.json new file mode 100644 index 000000000..e41f34e3f --- /dev/null +++ b/public/locales/ru/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Пользователи", + "pageTitle": "Управлять пользователями", + "text": "Используя пользователей, вы можете настроить, кто может редактировать ваши панели. В будущих версиях Homarr у вас будет еще более детальный контроль над правами доступа и панелями.", + "buttons": { + "create": "Создать" + }, + "table": { + "header": { + "user": "Пользователь" + } + }, + "tooltips": { + "deleteUser": "Удалить пользователя", + "demoteAdmin": "Понизить администратора", + "promoteToAdmin": "Повысить до администратора" + }, + "modals": { + "delete": { + "title": "Удалить пользователя {{name}}", + "text": "Вы уверены, что хотите удалить пользователя {{name}}? Это приведет к удалению данных, связанных с этим аккаунтом, но не удалятся созданные этим пользователем панели." + }, + "change-role": { + "promote": { + "title": "Повысить пользователя {{name}} до администратора", + "text": "Вы уверены, что хотите повысить пользователя {{name}} до администратора? Это даст пользователю доступ ко всем ресурсам на вашем экземпляре Homarr." + }, + "demote": { + "title": "Понизить пользователя {{name}} до пользователя", + "text": "Вы уверены, что хотите понизить пользователя {{name}} до пользователя? Это приведет к удалению доступа пользователя ко всем ресурсам на вашем экземпляре Homarr." + }, + "confirm": "Подтвердить" + } + }, + "searchDoesntMatch": "Ваш поиск не совпадает ни с одной записью. Пожалуйста, скорректируйте ваш фильтр." +} \ No newline at end of file diff --git a/public/locales/ru/manage/users/create.json b/public/locales/ru/manage/users/create.json new file mode 100644 index 000000000..e1d475503 --- /dev/null +++ b/public/locales/ru/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Создать пользователя", + "steps": { + "account": { + "title": "Первый шаг", + "text": "Создать аккаунт", + "username": { + "label": "Имя пользователя" + }, + "email": { + "label": "E-Mail" + } + }, + "security": { + "title": "Второй шаг", + "text": "Пароль", + "password": { + "label": "Пароль" + } + }, + "finish": { + "title": "Подтверждение", + "text": "Сохранить в базе данных", + "card": { + "title": "Проверьте ваши данные", + "text": "После отправки данных в базу данных пользователь сможет войти. Вы уверены, что хотите сохранить этого пользователя в базе данных и активировать вход?" + }, + "table": { + "header": { + "property": "Свойство", + "value": "Значение", + "username": "Имя пользователя", + "email": "E-Mail", + "password": "Пароль" + }, + "notSet": "Не задано", + "valid": "Действителен" + }, + "failed": "Не удалось создать пользователя: {{error}}" + }, + "completed": { + "alert": { + "title": "Пользователь создан", + "text": "Пользователь был создан в базе данных. Теперь он может войти." + } + } + }, + "buttons": { + "generateRandomPassword": "Сгенерировать случайным образом", + "createAnother": "Создать ещё" + } +} \ No newline at end of file diff --git a/public/locales/ru/manage/users/invites.json b/public/locales/ru/manage/users/invites.json new file mode 100644 index 000000000..c119c9aec --- /dev/null +++ b/public/locales/ru/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Приглашения пользователей", + "pageTitle": "Управление приглашениями пользователей", + "description": "С помощью приглашений вы можете приглашать пользователей в свой экземпляр Homarr. Приглашение действует только в течение определенного времени и может быть использовано один раз. При создании приглашения срок его действия должен составлять от 5 минут до 12 месяцев.", + "button": { + "createInvite": "Создать приглашение", + "deleteInvite": "Удалить приглашение" + }, + "table": { + "header": { + "id": "ID", + "creator": "Создатель", + "expires": "Истекает", + "action": "Действия" + }, + "data": { + "expiresAt": "истекло {{at}}", + "expiresIn": "в {{in}}" + } + }, + "modals": { + "create": { + "title": "Создать приглашение", + "description": "По истечении этого срока приглашение перестает быть действительным, и получатель приглашения не сможет создать аккаунт.", + "form": { + "expires": "Срок действия", + "submit": "Создать" + } + }, + "copy": { + "title": "Скопировать приглашение", + "description": "Ваше приглашение сгенерировано. После закрытия этого окна, вы больше не сможете скопировать эту ссылку. Если вы больше не хотите приглашать данного пользователя, вы можете удалить это приглашение в любое время.", + "invitationLink": "Ссылка на приглашение", + "details": { + "id": "ID", + "token": "Токен" + }, + "button": { + "close": "Копирование и Удаление" + } + }, + "delete": { + "title": "Удалить приглашение", + "description": "Вы уверены, что хотите удалить это приглашение? Пользователи, получившие эту ссылку, больше не смогут создать аккаунт по этой ссылке." + } + }, + "noInvites": "Приглашений пока нет." +} \ No newline at end of file diff --git a/public/locales/ru/modules/bookmark.json b/public/locales/ru/modules/bookmark.json index 12d856223..eb906316b 100644 --- a/public/locales/ru/modules/bookmark.json +++ b/public/locales/ru/modules/bookmark.json @@ -6,7 +6,7 @@ "title": "Настройки закладок", "name": { "label": "Заголовок виджета", - "info": "Оставьте поле пустым, чтобы скрыть название." + "info": "Оставить пустым, чтобы скрыть заголовок." }, "items": { "label": "Элементы" @@ -30,11 +30,11 @@ "item": { "validation": { "length": "Длина строки должна быть между {{shortest}} и {{longest}} символами", - "invalidLink": "Недействительная ссылка", + "invalidLink": "Недопустимая ссылка", "errorMsg": "Не удалось сохранить, так как возникли ошибки валидации. Пожалуйста, исправьте ошибки" }, "name": "Имя", - "url": "Ссылка", + "url": "URL", "newTab": "Открыть в новой вкладке", "hideHostname": "Скрыть имя хоста", "hideIcon": "Скрыть иконку", diff --git a/public/locales/ru/modules/calendar.json b/public/locales/ru/modules/calendar.json index 700acad57..489d39ca1 100644 --- a/public/locales/ru/modules/calendar.json +++ b/public/locales/ru/modules/calendar.json @@ -4,16 +4,10 @@ "description": "Отображает календарь с предстоящими релизами из поддерживаемых интеграций.", "settings": { "title": "Настройки для виджета календаря", - "useSonarrv4": { - "label": "Использовать Sonarr v4 API" - }, - "sundayStart": { - "label": "Воскресенье — начало недели" - }, "radarrReleaseType": { "label": "Тип релиза в Radarr", "data": { - "inCinemas": "В кинотеатрах", + "inCinemas": "В кино", "physicalRelease": "Физический носитель", "digitalRelease": "Цифровой релиз" } @@ -22,7 +16,7 @@ "label": "Скрыть дни недели" }, "showUnmonitored": { - "label": "" + "label": "Показать не отслеживаемые элементы" }, "fontSize": { "label": "Размер шрифта", diff --git a/public/locales/ru/modules/common-media-cards.json b/public/locales/ru/modules/common-media-cards.json index 94619f4ee..80232c84d 100644 --- a/public/locales/ru/modules/common-media-cards.json +++ b/public/locales/ru/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Играть", + "play": "Воспроизвести", "request": "Запрос" } } \ No newline at end of file diff --git a/public/locales/ru/modules/dashdot.json b/public/locales/ru/modules/dashdot.json index c0b25528d..a0dae893f 100644 --- a/public/locales/ru/modules/dashdot.json +++ b/public/locales/ru/modules/dashdot.json @@ -5,7 +5,7 @@ "settings": { "title": "Настройки для виджета Dash.", "dashName": { - "label": "Dash. Имя" + "label": "Имя Dash." }, "url": { "label": "URL-адрес Dash." @@ -30,7 +30,7 @@ "label": "Размеры столбцов" }, "compactView": { - "label": "Показать в виде текста (компактный)" + "label": "Отображение в виде текста (компактно)" }, "multiView": { "label": "Показать несколько дисков" @@ -45,11 +45,11 @@ "label": "Размеры столбцов" }, "compactView": { - "label": "Показать в виде текста (компактный)" + "label": "Отображение в виде текста (компактно)" } }, "cpu": { - "label": "ЦП", + "label": "ЦПУ", "enabled": { "label": "Показать в виджете" }, @@ -84,11 +84,11 @@ "card": { "title": "Dash.", "errors": { - "noService": "Не найдено ни одной службы Dash. Пожалуйста, добавьте его на панель Homarr или задайте URL-адрес Dash. в настройках модуля", - "noInformation": "Не удается получить информацию из Dash. - Вы используете последнюю версию?", + "noService": "Сервис Dash. не найден. Пожалуйста, добавьте его на панель Homarr или укажите URL Dash. в настройках модуля", + "noInformation": "Невозможно получить информацию от Dash. - вы используете последнюю версию?", "protocolDowngrade": { "title": "Обнаружено понижение версии протокола соединения", - "text": "Соединение с вашим экземпляром Dash. использует HTTP. Это представляет угрозу безопасности, потому что HTTP не зашифрован и злоумышленники могут злоупотреблять этим соединением. Убедитесь, что Dash. использует HTTPS, или переведите Homarr на HTTP (не рекомендуется)." + "text": "Соединение с вашим экземпляром Dash. использует HTTP. Это представляет угрозу безопасности, поскольку HTTP не шифруется, и злоумышленники могут злоупотребить этим соединением. Убедитесь, что Dash. использует HTTPS, или переведите Homarr на HTTP (не рекомендуется)." } }, "graphs": { @@ -105,7 +105,7 @@ } }, "cpu": { - "title": "ЦП" + "title": "ЦПУ" }, "ram": { "title": "ОЗУ" diff --git a/public/locales/ru/modules/date.json b/public/locales/ru/modules/date.json index 2219f018c..377638ea3 100644 --- a/public/locales/ru/modules/date.json +++ b/public/locales/ru/modules/date.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Дата и время", - "description": "Показывает текущую дату и время.", + "description": "Отображает текущую дату и время.", "settings": { "title": "Настройки для виджета даты и времени", "display24HourFormat": { @@ -14,7 +14,7 @@ } }, "enableTimezone": { - "label": "Отображение пользовательского часового пояса" + "label": "Отображать пользовательский часовой пояс" }, "timezoneLocation": { "label": "Местоположение часового пояса" diff --git a/public/locales/ru/modules/dlspeed.json b/public/locales/ru/modules/dlspeed.json index f19cc0fea..2080e4bb1 100644 --- a/public/locales/ru/modules/dlspeed.json +++ b/public/locales/ru/modules/dlspeed.json @@ -1,7 +1,7 @@ { "descriptor": { - "name": "Скорость загрузки", - "description": "Отображает скорость загрузки и отдачи поддерживаемых интеграций." + "name": "Скорость скачивания", + "description": "Отображает скорость скачивания и отдачи поддерживаемых интеграций." }, "card": { "table": { @@ -18,7 +18,7 @@ } }, "lineChart": { - "title": "Текущая скорость загрузки", + "title": "Текущая скорость скачивания", "download": "Загрузка: {{download}}", "upload": "Отдача: {{upload}}", "timeSpan": "{{seconds}} секунд назад", @@ -28,7 +28,7 @@ "errors": { "noDownloadClients": { "title": "Не найдено ни одного поддерживаемого клиента загрузки!", - "text": "Добавьте службу загрузки для просмотра текущих загрузок" + "text": "Добавьте сервис загрузки, чтобы просмотреть текущие загрузки" } } } diff --git a/public/locales/ru/modules/dns-hole-controls.json b/public/locales/ru/modules/dns-hole-controls.json index 8015b3f6d..402674cf2 100644 --- a/public/locales/ru/modules/dns-hole-controls.json +++ b/public/locales/ru/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Управление фильтрующими DNS", - "description": "Управляйте PiHole или AdGuard с панели управления" + "description": "Управляйте PiHole или AdGuard прямо с вашей панели", + "settings": { + "title": "Настройки управления фильтрующими DNS", + "showToggleAllButtons": { + "label": "Показать кнопки 'Включить/Выключить всё'" + } + }, + "errors": { + "general": { + "title": "Не удалось найти фильтрующие DNS", + "text": "Проблема с подключением к вашим фильтрующим DNS. Пожалуйста, проверьте свои настройки/интеграцию." + } + } } } \ No newline at end of file diff --git a/public/locales/ru/modules/dns-hole-summary.json b/public/locales/ru/modules/dns-hole-summary.json index 4facd058e..5156854b3 100644 --- a/public/locales/ru/modules/dns-hole-summary.json +++ b/public/locales/ru/modules/dns-hole-summary.json @@ -1,9 +1,9 @@ { "descriptor": { - "name": "Сводка по DNS", + "name": "Сводка по фильтрующим DNS", "description": "Отображает важные данные из PiHole или AdGuard", "settings": { - "title": "Настройки сводки DNS Hole", + "title": "Настройки для сводки фильтрующих DNS", "usePiHoleColors": { "label": "Использовать цвета из PiHole" }, @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "доменов в списке блокировок", "queriesToday": "запросов сегодня", - "queriesBlockedTodayPercentage": "заблокировано сегодня", - "queriesBlockedToday": "заблокировано сегодня" + "queriesBlockedTodayPercentage": "Заблокировано сегодня", + "queriesBlockedToday": "Заблокировано сегодня" } } } diff --git a/public/locales/ru/modules/docker.json b/public/locales/ru/modules/docker.json index 542a24ca5..2a1aec912 100644 --- a/public/locales/ru/modules/docker.json +++ b/public/locales/ru/modules/docker.json @@ -4,7 +4,7 @@ "description": "Позволяет легко видеть и управлять всеми вашими контейнерами Docker." }, "search": { - "placeholder": "Поиск по имени контейнера или образу" + "placeholder": "Поиск по контейнеру или имени образа" }, "table": { "header": { @@ -17,9 +17,9 @@ "portCollapse": "Ещё {{ports}}" }, "states": { - "running": "Запущено", - "created": "Создано", - "stopped": "Остановлено", + "running": "Работает", + "created": "Создан", + "stopped": "Остановлен", "unknown": "Неизвестно" } }, @@ -62,19 +62,19 @@ }, "remove": { "start": "Удаление", - "end": "Удален" + "end": "Удалён" } }, "errors": { "integrationFailed": { "title": "Сбой интеграции Docker", - "message": "Вы забыли смонтировать сокет docker?" + "message": "Вы забыли смонтировать сокет Docker?" }, "unknownError": { "title": "Произошла ошибка" }, "oneServiceAtATime": { - "title": "Пожалуйста, добавляйте только один сервис за раз!" + "title": "Пожалуйста, добавляйте только одно приложение или службу за раз!" } }, "actionIcon": { diff --git a/public/locales/ru/modules/iframe.json b/public/locales/ru/modules/iframe.json index 520a4e66d..858df95cd 100644 --- a/public/locales/ru/modules/iframe.json +++ b/public/locales/ru/modules/iframe.json @@ -1,11 +1,11 @@ { "descriptor": { - "name": "Встраивание фрейма (iFrame)", - "description": "Встраивать любой контент из интернета. Некоторые веб-сайты могут ограничивать доступ.", + "name": "iFrame", + "description": "Встраиваемое содержимое из интернета. Некоторые веб-сайты могут ограничивать доступ.", "settings": { "title": "Настройки iFrame", "embedUrl": { - "label": "Встроенный URL" + "label": "URL-адрес на встраивание" }, "allowFullScreen": { "label": "Разрешить полноэкранный режим" @@ -17,10 +17,10 @@ "label": "Разрешить прокрутку" }, "allowPayment": { - "label": "Разрешить платежи" + "label": "Разрешить оплату" }, "allowAutoPlay": { - "label": "Разрешить автоматическое воспроизведение" + "label": "Разрешить авто воспроизведение" }, "allowMicrophone": { "label": "Разрешить микрофон" @@ -36,8 +36,8 @@ "card": { "errors": { "noUrl": { - "title": "Недопустимый URL", - "text": "Убедитесь, что вы ввели действительный адрес в конфигурации вашего виджета" + "title": "Неверный URL", + "text": "Убедитесь, что вы ввели правильный адрес в настройках вашего виджета" }, "browserSupport": "Ваш браузер не поддерживает iframes. Пожалуйста, обновите свой браузер." } diff --git a/public/locales/ru/modules/media-requests-list.json b/public/locales/ru/modules/media-requests-list.json index 848e8f2a1..4e356223c 100644 --- a/public/locales/ru/modules/media-requests-list.json +++ b/public/locales/ru/modules/media-requests-list.json @@ -1,33 +1,31 @@ { "descriptor": { - "name": "Медиа-запросы", - "description": "Посмотреть список всех медиа запросов от вашего Overseerr или Jellyseerr", + "name": "Запросы на медиа", + "description": "Просмотреть список всех медиа-запросов из вашего экземпляра Overseerr или Jellyseerr", "settings": { - "title": "Список медиа запросов", + "title": "Список медиа-запросов", "replaceLinksWithExternalHost": { "label": "Заменить ссылки на внешний хост" }, "openInNewTab": { - "label": "Открывать ссылки в новых вкладках" + "label": "Открывать ссылки в новой вкладке" } } }, - "noRequests": "Запросы не найдены. Убедитесь, что вы настроили свои приложения правильно.", - "pending": "Есть {{countPendingApproval}} запросов, ожидающих утверждения.", - "nonePending": "В настоящее время нет никаких ожидающих одобрения решений. Вы свободны!", + "noRequests": "Не найдено ни одного запроса. Убедитесь, что вы правильно настроили свои приложения.", "state": { - "approved": "Утверждено", - "pendingApproval": "Ожидает утверждения", - "declined": "Отклонено" + "approved": "Одобрен", + "pendingApproval": "Ожидает одобрения", + "declined": "Отклонён" }, "tooltips": { "approve": "Одобрить запросы", "decline": "Отклонить запросы", - "approving": "Утверждение запроса..." + "approving": "Одобрение запроса..." }, "mutation": { - "approving": "Утверждение", - "declining": "Отказ", + "approving": "Одобряется", + "declining": "Отклонение", "request": "запрос...", "approved": "Запрос был одобрен!", "declined": "Запрос отклонен!" diff --git a/public/locales/ru/modules/media-requests-stats.json b/public/locales/ru/modules/media-requests-stats.json index 74317f810..62fd5f17e 100644 --- a/public/locales/ru/modules/media-requests-stats.json +++ b/public/locales/ru/modules/media-requests-stats.json @@ -8,7 +8,7 @@ "label": "Заменить ссылки на внешний хост" }, "openInNewTab": { - "label": "Открывать ссылки в новых вкладках" + "label": "Открывать ссылки в новой вкладке" } } }, diff --git a/public/locales/ru/modules/media-server.json b/public/locales/ru/modules/media-server.json index fdebc5f42..7fb2f231b 100644 --- a/public/locales/ru/modules/media-server.json +++ b/public/locales/ru/modules/media-server.json @@ -1,9 +1,9 @@ { "descriptor": { "name": "Медиасервер", - "description": "Взаимодействие с медиасервером Jellyfin или Plex", + "description": "Взаимодействие с вашим мультимедийным сервером Jellyfin или Plex", "settings": { - "title": "Настройки для виджета медиасервера" + "title": "Настройки виджета мультимедийного сервера" } }, "loading": "Загрузка потоков", diff --git a/public/locales/ru/modules/notebook.json b/public/locales/ru/modules/notebook.json index af6ac5e73..217fdee83 100644 --- a/public/locales/ru/modules/notebook.json +++ b/public/locales/ru/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { "name": "Блокнот", - "description": "Интерактивный виджет на основе Markdown для записи ваших заметок!", + "description": "Интерактивный виджет на основе разметки Markdown для записи ваших заметок!", "settings": { "title": "Настройки виджета блокнота", "showToolbar": { - "label": "Показывать панель инструментов, чтобы помочь вам писать Markdown текст" + "label": "Показать панель инструментов для написания текста с использованием разметки Markdown" + }, + "allowReadOnlyCheck": { + "label": "Разрешить проверку в режиме \"только для чтения\"" }, "content": { "label": "Содержимое блокнота" } } + }, + "card": { + "controls": { + "bold": "Жирный", + "italic": "Курсив", + "strikethrough": "Зачеркнутый", + "underline": "Подчеркнутый", + "colorText": "Цвет текста", + "colorHighlight": "Выделение текста цветом", + "code": "Код", + "clear": "Очистить форматирование", + "heading": "Заголовок {{level}}", + "align": "Выровнять текст: {{position}}", + "blockquote": "Цитата", + "horizontalLine": "Горизонтальная линия", + "bulletList": "Маркированный список", + "orderedList": "Нумерованный список", + "checkList": "Чек-лист", + "increaseIndent": "Увеличить отступ", + "decreaseIndent": "Уменьшить отступ", + "link": "Ссылка", + "unlink": "Удалить ссылку", + "image": "Вставить изображение", + "addTable": "Добавить таблицу", + "deleteTable": "Удалить таблицу", + "colorCell": "Цвет ячейки", + "mergeCell": "Переключить объединение ячеек", + "addColumnLeft": "Добавить столбец перед", + "addColumnRight": "Добавить столбец после", + "deleteColumn": "Удалить столбец", + "addRowTop": "Добавить строку перед", + "addRowBelow": "Добавить строку после", + "deleteRow": "Удалить строку" + }, + "modals": { + "clearColor": "Очистить цвет", + "source": "Источник", + "widthPlaceholder": "Значение в % или пикселях", + "columns": "Столбцы", + "rows": "Строки" + } } } \ No newline at end of file diff --git a/public/locales/ru/modules/overseerr.json b/public/locales/ru/modules/overseerr.json index 478402e39..3b8914cbe 100644 --- a/public/locales/ru/modules/overseerr.json +++ b/public/locales/ru/modules/overseerr.json @@ -12,17 +12,17 @@ }, "alerts": { "automaticApproval": { - "title": "Использование ключа API", + "title": "Используемый API-ключ", "text": "Этот запрос будет автоматически одобрен" } } }, "seasonSelector": { - "caption": "Отметьте сезоны, которые вы хотите загрузить", + "caption": "Выберите сезоны, которые хотите скачать", "table": { "header": { "season": "Сезон", - "numberOfEpisodes": "Количество серий" + "numberOfEpisodes": "Количество эпизодов" } } } diff --git a/public/locales/ru/modules/ping.json b/public/locales/ru/modules/ping.json index 3c8664a4a..d7c012912 100644 --- a/public/locales/ru/modules/ping.json +++ b/public/locales/ru/modules/ping.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Пинг", - "description": "Отображает индикатор состояния, отображающий код ответа HTTP заданного URL." + "description": "Отображает индикатор состояния в зависимости от HTTP-кода ответа данного URL." }, "states": { "online": "Онлайн {{response}}", diff --git a/public/locales/ru/modules/rss.json b/public/locales/ru/modules/rss.json index 5db4a0d08..bf2818d24 100644 --- a/public/locales/ru/modules/rss.json +++ b/public/locales/ru/modules/rss.json @@ -1,12 +1,12 @@ { "descriptor": { "name": "Виджет RSS", - "description": "", + "description": "Виджет RSS позволяет отображать RSS-каналы на вашей панели.", "settings": { - "title": "Настройки для виджета RSS", + "title": "Настройки виджета RSS", "rssFeedUrl": { - "label": "URL-адреса лент RSS", - "description": "URL-адреса RSS-каналов, которые вы хотите отобразить." + "label": "URL-адреса каналов RSS", + "description": "URL-адреса каналов RSS, которые вы хотите отображать." }, "refreshInterval": { "label": "Интервал обновления (в минутах)" @@ -22,8 +22,8 @@ "card": { "errors": { "general": { - "title": "Не удается получить RSS-ленту", - "text": "Возникла проблема при подключении к RSS-каналу. Убедитесь, что вы правильно настроили RSS-канал с использованием допустимого URL-адреса. URL-адреса должны соответствовать официальной спецификации. После обновления канала вам может потребоваться обновить панель." + "title": "Не удаётся получить RSS-канал", + "text": "Проблема с доступом к RSS-каналу. Убедитесь, что вы правильно настроили RSS канал, используя действительный URL. URL-адреса должны соответствовать официальной спецификации. После обновления канала может потребоваться обновить панель." } } } diff --git a/public/locales/ru/modules/search.json b/public/locales/ru/modules/search.json index f444c2080..0094dea6f 100644 --- a/public/locales/ru/modules/search.json +++ b/public/locales/ru/modules/search.json @@ -4,12 +4,12 @@ "description": "Строка поиска, позволяющая искать в пользовательской поисковой системе, YouTube и поддерживаемых интеграциях." }, "input": { - "placeholder": "Искать в интернете..." + "placeholder": "Поиск в интернете..." }, - "switched-to": "Переключен на", + "switched-to": "Переключено на", "searchEngines": { "search": { - "name": "Интернет", + "name": "Веб", "description": "Поиск..." }, "youtube": { diff --git a/public/locales/ru/modules/torrents-status.json b/public/locales/ru/modules/torrents-status.json index 511bd3b2b..37c56b96a 100644 --- a/public/locales/ru/modules/torrents-status.json +++ b/public/locales/ru/modules/torrents-status.json @@ -3,15 +3,21 @@ "name": "Торрент", "description": "Отображает список торрентов из поддерживаемых Torrent-клиентов.", "settings": { - "title": "Настройки для виджета торрента", + "title": "Настройки виджета Torrent", "refreshInterval": { "label": "Интервал обновления (в секундах)" }, "displayCompletedTorrents": { - "label": "Показать завершенные торренты" + "label": "Отображение завершенных торрентов" + }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" }, "displayStaleTorrents": { - "label": "Показать устаревшие торренты" + "label": "Отображение устаревших торрентов" }, "labelFilterIsWhitelist": { "label": "Список меток является белым списком (вместо черного списка)" @@ -19,13 +25,19 @@ "labelFilter": { "label": "Список меток", "description": "Когда отмечено 'белый список', применится как белый список. Если не отмечено, применится как чёрный список. Не будет ничего делать, если пусто" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Ошибка", - "lastUpdated": "Последнее обновление {{time}} назад" + "lastUpdated": "Последнее обновление {{time}} назад", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -37,7 +49,7 @@ "progress": "Прогресс" }, "item": { - "text": "Управляется {{appName}}, {{ratio}} рейтинг" + "text": "Под управлением {{appName}}, {{ratio}} рейтинг" }, "body": { "nothingFound": "Торренты не найдены", @@ -45,7 +57,7 @@ } }, "lineChart": { - "title": "Текущая скорость загрузки", + "title": "Текущая скорость скачивания", "download": "Загрузка: {{download}}", "upload": "Отдача: {{upload}}", "timeSpan": "{{seconds}} секунд назад", @@ -58,8 +70,8 @@ "text": "Добавьте поддерживаемый Torrent-клиент для просмотра текущих загрузок" }, "generic": { - "title": "Произошла непредвиденная ошибка", - "text": "Невозможно установить связь с Torrent-клиентами. Пожалуйста, проверьте конфигурацию" + "title": "Возникла непредвиденная ошибка", + "text": "Невозможно установить связь с Torrent-клиентами. Пожалуйста, проверьте настройки" } }, "loading": { diff --git a/public/locales/ru/modules/video-stream.json b/public/locales/ru/modules/video-stream.json index 5fcef2678..9ac77f70c 100644 --- a/public/locales/ru/modules/video-stream.json +++ b/public/locales/ru/modules/video-stream.json @@ -3,7 +3,7 @@ "name": "Трансляция видео", "description": "Встраивание видео или прямой трансляции видео с камеры или веб-сайта", "settings": { - "title": "Настройки для виджета трансляции видео", + "title": "Настройки виджета трансляции видео", "FeedUrl": { "label": "URL-адрес потока" }, @@ -11,10 +11,10 @@ "label": "Автовоспроизведение" }, "muted": { - "label": "Отключить звук" + "label": "Без звука" }, "controls": { - "label": "Элементы управления видеоплеера" + "label": "Управление видеоплеером" } } }, diff --git a/public/locales/ru/modules/weather.json b/public/locales/ru/modules/weather.json index c14cf6eea..6f1601d5d 100644 --- a/public/locales/ru/modules/weather.json +++ b/public/locales/ru/modules/weather.json @@ -3,7 +3,7 @@ "name": "Погода", "description": "Отображает текущую информацию о погоде для заданного местоположения.", "settings": { - "title": "Настройки для виджета погоды", + "title": "Настройки виджета погоды", "displayInFahrenheit": { "label": "Показать в градусах Фаренгейта" }, @@ -20,7 +20,7 @@ "clear": "Ясно", "mainlyClear": "Малооблачно", "fog": "Туман", - "drizzle": "Небольшой дождь", + "drizzle": "Морось", "freezingDrizzle": "Изморозь, возможен гололёд", "rain": "Дождь", "freezingRain": "Моросящий дождь", diff --git a/public/locales/ru/password-requirements.json b/public/locales/ru/password-requirements.json new file mode 100644 index 000000000..353561a40 --- /dev/null +++ b/public/locales/ru/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Включает цифру", + "lowercase": "Включает строчную букву", + "uppercase": "Включает заглавную букву", + "special": "Включает специальный символ", + "length": "Включает не менее {{count}} символов" +} \ No newline at end of file diff --git a/public/locales/ru/settings/common.json b/public/locales/ru/settings/common.json index 29c10d855..dc32ba18d 100644 --- a/public/locales/ru/settings/common.json +++ b/public/locales/ru/settings/common.json @@ -6,17 +6,17 @@ "customizations": "Оформление" }, "tips": { - "configTip": "Загрузите файл конфигурации, перетащив его на страницу!" + "configTip": "Загрузите свой файл конфигурации, перетащив его на страницу!" }, "credits": { "madeWithLove": "Сделано с ❤️ от @", - "thirdPartyContent": "Просмотреть сторонний контент", + "thirdPartyContent": "Посмотреть контент от третьих сторон", "thirdPartyContentTable": { "dependencyName": "Зависимости", "dependencyVersion": "Версия" } }, - "grow": "Увеличение сетки (занимает все пространство)", + "grow": "Расширить сетку (занимает все пространство)", "layout": { "preview": { "title": "Предпросмотр", @@ -32,7 +32,7 @@ "enablesearchbar": "Включить панель поиска", "enabledocker": "Включить интеграцию с Docker", "enableping": "Включить пинг", - "enablelsidebardesc": "Необязательно. Может использоваться только для приложений и интеграций", - "enablersidebardesc": "Необязательно. Может использоваться только для приложений и интеграций" + "enablelsidebardesc": "Необязательно. Можно использовать только для приложений и интеграций", + "enablersidebardesc": "Необязательно. Можно использовать только для приложений и интеграций" } } diff --git a/public/locales/ru/settings/customization/access.json b/public/locales/ru/settings/customization/access.json new file mode 100644 index 000000000..77716a538 --- /dev/null +++ b/public/locales/ru/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Разрешить анонимность", + "description": "Разрешить пользователям, которые не вошли, просматривать вашу панель" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/customization/general.json b/public/locales/ru/settings/customization/general.json index 53cc68077..7dbafdea0 100644 --- a/public/locales/ru/settings/customization/general.json +++ b/public/locales/ru/settings/customization/general.json @@ -3,11 +3,11 @@ "accordeon": { "layout": { "name": "Макет", - "description": "Включение и отключение элементов в заголовке и на панели" + "description": "Включить и отключить элементы в заголовке и на плитках панели" }, "gridstack": { "name": "Сетка", - "description": "Настроить поведение и столбцы панели" + "description": "Настройте поведение и столбцы вашей панели" }, "pageMetadata": { "name": "Метаданные страницы", @@ -15,11 +15,15 @@ }, "appereance": { "name": "Внешний вид", - "description": "Настройка фона, цвета и внешнего вида приложений" + "description": "Настройка фона, цветов и внешнего вида приложений" }, "accessibility": { - "name": "Спец. возможности", - "description": "Настроить Homarr для пользователей с ограниченными возможностями и инвалидов" + "name": "Доступность", + "description": "Настройте Homarr для людей с ограниченными возможностями" + }, + "access": { + "name": "Доступ", + "description": "Настроить, кто имеет доступ к вашей панели" } } } diff --git a/public/locales/ru/settings/customization/gridstack.json b/public/locales/ru/settings/customization/gridstack.json index c2adf82ed..473864f3e 100644 --- a/public/locales/ru/settings/customization/gridstack.json +++ b/public/locales/ru/settings/customization/gridstack.json @@ -4,7 +4,7 @@ "descriptionPreset": "Количество столбцов при ширине экрана менее {{pixels}} пикселей", "descriptionExceedsPreset": "Количество столбцов, когда размер экрана превышает {{pixels}} пикселей" }, - "unsavedChanges": "У вас есть несохранённые изменения. Нажмите кнопку «Применить», чтобы применить и сохранить изменения.", - "applyChanges": "Применить", + "unsavedChanges": "У вас есть несохраненные изменения. Нажмите кнопку \"Применить изменения\" ниже, чтобы применить и сохранить.", + "applyChanges": "Применить изменения", "defaultValues": "Значения по умолчанию" } \ No newline at end of file diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json index 6bdcd025e..59b33ee80 100644 --- a/public/locales/ru/settings/customization/page-appearance.json +++ b/public/locales/ru/settings/customization/page-appearance.json @@ -1,30 +1,27 @@ { "pageTitle": { - "label": "Название страницы", + "label": "Заголовок страницы", "description": "Заголовок панели в левом верхнем углу" }, "metaTitle": { "label": "Мета-заголовок", - "description": "Заголовок, который отображается на вкладке вашего браузера" + "description": "Заголовок, отображаемый на вкладке вашего браузера" }, "logo": { "label": "Логотип", - "description": "Логотип, который отображается в верхнем левом углу" + "description": "Логотип, отображаемый слева вверху" }, "favicon": { - "label": "Иконка", - "description": "Значок, который отображается на вкладке вашего браузера" + "label": "Фавикон", + "description": "Иконка, отображаемая на вкладке вашего браузера" }, "background": { "label": "Фон" }, "customCSS": { "label": "Пользовательский CSS", - "description": "Далее, настройте свою панель с помощью CSS, рекомендуется только для опытных пользователей", + "description": "Дополнительная настройка вашей панели с использованием CSS, рекомендуется только опытным пользователям", "placeholder": "Пользовательский CSS будет применяться в последнюю очередь", "applying": "Применение CSS..." - }, - "buttons": { - "submit": "Подтвердить" } -} +} \ No newline at end of file diff --git a/public/locales/ru/settings/general/cache-buttons.json b/public/locales/ru/settings/general/cache-buttons.json index c48ad196c..14be558bd 100644 --- a/public/locales/ru/settings/general/cache-buttons.json +++ b/public/locales/ru/settings/general/cache-buttons.json @@ -1,12 +1,12 @@ { "title": "Очистка кэша", "selector": { - "label": "Выберите кэш(и) для очистки", + "label": "Выберите кэш(и), которые требуется очистить", "data": { "ping": "Пинг запросы", - "repositoryIcons": "Удалённые/Локальные иконки", - "calendar&medias": "Публикации из календаря", - "weather": "Данные о погоде" + "repositoryIcons": "Внешние/Локальные иконки", + "calendar&medias": "Медиа из календаря", + "weather": "Данные погоды" } }, "buttons": { diff --git a/public/locales/ru/settings/general/config-changer.json b/public/locales/ru/settings/general/config-changer.json index 89cc10c86..b3e9607c6 100644 --- a/public/locales/ru/settings/general/config-changer.json +++ b/public/locales/ru/settings/general/config-changer.json @@ -1,8 +1,8 @@ { "configSelect": { "label": "Изменение конфигурации", - "description": "{{configCount}} доступны следующие конфигурации", - "loadingNew": "Загрузка конфигурации...", + "description": "{{configCount}} конфигураций доступно", + "loadingNew": "Загрузка вашей конфигурации...", "pleaseWait": "Пожалуйста, дождитесь загрузки вашей новой конфигурации!" }, "modal": { @@ -15,7 +15,7 @@ "required": "Необходимо указать имя конфигурации", "notUnique": "Имя конфигурации уже используется" }, - "placeholder": "Новое имя конфигурации" + "placeholder": "Ваше новое имя конфигурации" }, "submitButton": "Подтвердить" }, @@ -37,7 +37,7 @@ "confirmDeletion": { "title": "Подтвердите удаление вашей конфигурации", "warningText": "Вы собираетесь удалить '{{configName}}'", - "text": "Обратите внимание, что удаление не обратимо и ваши данные будут утеряны навсегда. После нажатия этой кнопки файл будет навсегда удален с диска. Убедитесь, что вы создали резервную копию конфигурации.", + "text": "Обратите внимание, что удаление необратимо и ваши данные будут утеряны навсегда. После нажатия этой кнопки, файл будет окончательно удален с вашего диска. Убедитесь, что у вас есть резервная копия вашей конфигурации.", "buttons": { "confirm": "Да, удалить '{{configName}}'" } @@ -57,7 +57,7 @@ "message": "Ошибка при удалении конфигурации" }, "deleteFailedDefaultConfig": { - "title": "Конфигурация по умолчанию не может быть удалена", + "title": "Конфигурацию по умолчанию нельзя удалить", "message": "Конфигурация не была удалена из файловой системы" } } @@ -68,19 +68,19 @@ "notifications": { "invalidConfig": { "title": "Не удалось загрузить конфигурацию", - "message": "Не удалось загрузить конфигурацию. Неверный формат JSON." + "message": "Не удалось загрузить вашу конфигурацию. Неверный формат JSON." }, "loadedSuccessfully": { "title": "Конфигурация {{configName}} успешно загружена" } }, "accept": { - "title": "Загрузить конфигурацию", + "title": "Загрузка конфигурации", "text": "Перетащите файл конфигурации сюда. Поддерживаются только файлы JSON." }, "reject": { "title": "Перетаскивание конфигурации отклонено", - "text": "Этот формат файлов не поддерживается. Пожалуйста, загружайте только файлы JSON." + "text": "Этот формат файла не поддерживается. Загружайте только JSON файлы." } } } diff --git a/public/locales/ru/settings/general/edit-mode-toggle.json b/public/locales/ru/settings/general/edit-mode-toggle.json index 23c754000..8e64e55b7 100644 --- a/public/locales/ru/settings/general/edit-mode-toggle.json +++ b/public/locales/ru/settings/general/edit-mode-toggle.json @@ -2,11 +2,11 @@ "menu": { "toggle": "Переключить режим редактирования", "enable": "Включить режим редактирования", - "disable": "Выключить режим редактирования" + "disable": "Отключить режим редактирования" }, "form": { "label": "Изменить пароль", - "message": "Чтобы включить режим редактирования, необходимо ввести пароль, который вы ввели в переменную окружения под названием EDIT_MODE_PASSWORD. Если он не был установлен, вы не сможете включить или выключить режим редактирования.", + "message": "Для переключения режима редактирования, необходимо ввести пароль, который вы ввели в переменной окружения под названием EDIT_MODE_PASSWORD. Если он не установлен, вы не сможете включать и выключать режим редактирования.", "submit": "Подтвердить" }, "notification": { @@ -16,7 +16,7 @@ }, "error": { "title": "Ошибка", - "message": "Не удалось переключить режим редактирования, попробуйте ещё раз." + "message": "Не удалось переключить режим редактирования, пожалуйста, попробуйте снова." } } } \ No newline at end of file diff --git a/public/locales/ru/settings/general/search-engine.json b/public/locales/ru/settings/general/search-engine.json index 3247fc95a..aa293df5e 100644 --- a/public/locales/ru/settings/general/search-engine.json +++ b/public/locales/ru/settings/general/search-engine.json @@ -1,15 +1,15 @@ { "title": "Поисковая система", "configurationName": "Настройка поисковой системы", - "custom": "Вручную", + "custom": "Пользовательский", "tips": { - "generalTip": "Существует множество префиксов, которые вы можете использовать! Добавив их перед запросом, вы отфильтруете результаты. !s (Интернет), !t (Торренты), !y (YouTube) и !m (Медиа).", - "placeholderTip": "%s можно использовать в качестве заполнителя для запроса." + "generalTip": "Существуют различные префиксы, которые можно использовать! Добавление их перед вашим запросом отфильтрует результаты. !s (Web), !t (Торренты), !y (YouTube), и !m (Медиа).", + "placeholderTip": "%s можно использовать в качестве указателя на запрос." }, "customEngine": { "title": "Пользовательская поисковая система", "label": "URL запроса", - "placeholder": "URL пользовательского запроса" + "placeholder": "Пользовательский URL запроса" }, "searchNewTab": { "label": "Открывать результаты поиска в новой вкладке" diff --git a/public/locales/ru/settings/general/widget-positions.json b/public/locales/ru/settings/general/widget-positions.json index a9696283d..f7bd04138 100644 --- a/public/locales/ru/settings/general/widget-positions.json +++ b/public/locales/ru/settings/general/widget-positions.json @@ -1,3 +1,3 @@ { - "label": "Положение виджета слева" + "label": "Разместить виджеты слева" } diff --git a/public/locales/ru/tools/docker.json b/public/locales/ru/tools/docker.json new file mode 100644 index 000000000..f39f5582c --- /dev/null +++ b/public/locales/ru/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "В вашем экземпляре Homarr не настроен Docker или произошла ошибка при получении контейнеров. Пожалуйста, ознакомьтесь с документацией по настройке интеграции." + } + }, + "modals": { + "selectBoard": { + "title": "Выберите панель", + "text": "Выберите панель, на которую необходимо добавить приложения для выбранных Docker-контейнеров.", + "form": { + "board": { + "label": "Панель" + }, + "submit": "Добавить приложения" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Добавлены приложения на панель", + "message": "Приложения для выбранных Docker-контейнеров были добавлены на панель." + }, + "error": { + "title": "Не удалось добавить приложения на панель", + "message": "Приложения для выбранных Docker-контейнеров не удалось добавить на панель." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/user/preferences.json b/public/locales/ru/user/preferences.json new file mode 100644 index 000000000..615d1a70a --- /dev/null +++ b/public/locales/ru/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Настройки", + "pageTitle": "Ваши настройки", + "boards": { + "defaultBoard": { + "label": "Панель по умолчанию" + } + }, + "accessibility": { + "title": "Доступность", + "disablePulse": { + "label": "Отключить пульсацию пинга", + "description": "По умолчанию, индикаторы пинга в Homarr будут пульсировать. Это может раздражать. Данный ползунок отключит анимацию" + }, + "replaceIconsWithDots": { + "label": "Замените точки пинга значками", + "description": "У пользователей, страдающих цветовой слепотой, точки пинга могут быть неразличимыми. Это заменит индикаторы значками" + } + }, + "localization": { + "language": { + "label": "Язык" + }, + "firstDayOfWeek": { + "label": "Первый день недели", + "options": { + "monday": "Понедельник", + "saturday": "Суббота", + "sunday": "Воскресенье" + } + } + }, + "searchEngine": { + "title": "Поисковая система", + "custom": "Пользовательский", + "newTab": { + "label": "Открывать результаты поиска в новой вкладке" + }, + "autoFocus": { + "label": "Фокусировать панель поиска при загрузке страницы.", + "description": "Это автоматически переведет фокус на панель поиска, когда вы переходите на страницу панели. Это будет работать только на настольных устройствах." + }, + "template": { + "label": "URL запроса", + "description": "Использовать %s в качестве заполнителя для запроса" + } + } +} \ No newline at end of file diff --git a/public/locales/ru/widgets/error-boundary.json b/public/locales/ru/widgets/error-boundary.json index 753a60ba4..de03fd010 100644 --- a/public/locales/ru/widgets/error-boundary.json +++ b/public/locales/ru/widgets/error-boundary.json @@ -1,14 +1,14 @@ { "card": { - "title": "Упс, произошла ошибка!", + "title": "Ой, произошла ошибка!", "buttons": { - "details": "Подробнее", + "details": "Подробности", "tryAgain": "Попробовать снова" } }, "modal": { "text": "", "label": "Ваша ошибка", - "reportButton": "Сообщить об ошибке" + "reportButton": "Сообщить об этой ошибке" } } diff --git a/public/locales/ru/zod.json b/public/locales/ru/zod.json new file mode 100644 index 000000000..b163eaa75 --- /dev/null +++ b/public/locales/ru/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Данное поле недействительно", + "required": "Данное поле является обязательным", + "string": { + "startsWith": "Значение данного поля должно начинаться с {{startsWith}}", + "endsWith": "Значение данного поля должно заканчиваться на {{endsWith}}", + "includes": "Значение данного поля должно включать {{includes}}" + }, + "tooSmall": { + "string": "Данное поле должно содержать не менее {{minimum}} символов", + "number": "Значение данного поля должно быть больше или равно {{minimum}}" + }, + "tooBig": { + "string": "Данное поле должно содержать не более {{maximum}} символов", + "number": "Значение этого поля должно быть меньше или равно {{maximum}}" + }, + "custom": { + "passwordMatch": "Пароли должны совпадать" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/authentication/invite.json b/public/locales/sk/authentication/invite.json new file mode 100644 index 000000000..e1f1c7f0f --- /dev/null +++ b/public/locales/sk/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Vytvoriť účet", + "title": "Vytvoriť účet", + "text": "Nižšie uveďte svoje poverenia", + "form": { + "fields": { + "username": { + "label": "Používateľské meno" + }, + "password": { + "label": "Heslo" + }, + "passwordConfirmation": { + "label": "Potvrdenie hesla" + } + }, + "buttons": { + "submit": "Vytvoriť účet" + } + }, + "notifications": { + "loading": { + "title": "Vytvára sa účet", + "text": "Čakajte, prosím" + }, + "success": { + "title": "Účet bol Vytvorený", + "text": "Vaše konto bolo úspešne vytvorené" + }, + "error": { + "title": "Chyba", + "text": "Niečo sa pokazilo, mám nasledujúcu chybu: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/authentication/login.json b/public/locales/sk/authentication/login.json index afd2872dd..35c68f7a8 100644 --- a/public/locales/sk/authentication/login.json +++ b/public/locales/sk/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Prihlásiť sa", "title": "Vitaj spat!", - "text": "Prosím zadajte heslo", + "text": "Zadajte svoje prihlasovacie údaje", "form": { "fields": { + "username": { + "label": "Používateľské meno" + }, "password": { - "label": "Heslo", - "placeholder": "Tvoje heslo" + "label": "Heslo" } }, "buttons": { "submit": "Prihlásiť sa" - } + }, + "afterLoginRedirection": "Po prihlásení budete presmerovaní na stránku {{url}}" }, - "notifications": { - "checking": { - "title": "Kontrola hesla", - "message": "Vaše heslo sa kontroluje..." - }, - "correct": { - "title": "Prihlásenie bolo úspešné, prebieha presmerovanie..." - }, - "wrong": { - "title": "Zadané heslo je nesprávne, skúste to znova." - } - } -} + "alert": "Vaše poverovacie údaje sú nesprávne alebo toto konto neexistuje. Skúste to prosím znova." +} \ No newline at end of file diff --git a/public/locales/sk/boards/common.json b/public/locales/sk/boards/common.json new file mode 100644 index 000000000..a1a55a6e4 --- /dev/null +++ b/public/locales/sk/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Prispôsobenie dosky" + } +} \ No newline at end of file diff --git a/public/locales/sk/boards/customize.json b/public/locales/sk/boards/customize.json new file mode 100644 index 000000000..225d4caf1 --- /dev/null +++ b/public/locales/sk/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Prispôsobenie {{name}} Board", + "pageTitle": "Prispôsobenie pre {{name}} Board", + "backToBoard": "Späť na palubu", + "settings": { + "appearance": { + "primaryColor": "Hlavná farba", + "secondaryColor": "Sekundárna farba" + } + }, + "save": { + "button": "Uložiť zmeny", + "note": "Pozor - máte neuložené zmeny!" + }, + "notifications": { + "pending": { + "title": "Uloženie prispôsobenia", + "message": "Počkajte, prosím, kým uložíme vaše prispôsobenie" + }, + "success": { + "title": "Uložené prispôsobenie", + "message": "Vaše prispôsobenie bolo úspešne uložené" + }, + "error": { + "title": "Chyba", + "message": "Nie je možné uložiť zmeny" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index 439da6114..f77d5f23d 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -1,11 +1,17 @@ { "save": "Uložiť", + "apply": "", + "insert": "", "about": "O aplikácii", "cancel": "Zrušiť", "close": "Zavrieť", + "back": "Späť", "delete": "Vymazať", "ok": "OK", "edit": "Upraviť", + "next": "Ďalej", + "previous": "Predchádzajúci", + "confirm": "Potvrďte", "enabled": "Povolené", "disabled": "Zakázané", "enableAll": "Povoliť všetko", @@ -36,5 +42,14 @@ "medium": "stredný", "large": "veľký" }, - "seeMore": "Viac informácií..." + "seeMore": "Viac informácií...", + "position": { + "left": "Vľavo", + "center": "", + "right": "Vpravo" + }, + "attributes": { + "width": "Šírka", + "height": "Výška" + } } \ No newline at end of file diff --git a/public/locales/sk/layout/errors/access-denied.json b/public/locales/sk/layout/errors/access-denied.json new file mode 100644 index 000000000..5c9b62067 --- /dev/null +++ b/public/locales/sk/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Prístup zamietnutý", + "text": "Nemáte dostatočné oprávnenie na prístup na túto stránku. Ak si myslíte, že to nie je úmyselné, obráťte sa na správcu.", + "switchAccount": "Prechod na iné konto" +} \ No newline at end of file diff --git a/public/locales/sk/layout/header.json b/public/locales/sk/layout/header.json new file mode 100644 index 000000000..4bbffdb64 --- /dev/null +++ b/public/locales/sk/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Ide o experimentálnu funkciu systému Homarr. Akékoľvek problémy nahláste na GitHub alebo Discord." + }, + "search": { + "label": "Hladať", + "engines": { + "web": "Vyhľadávanie {{query}} na webe", + "youtube": "Vyhľadajte {{query}} na YouTube", + "torrent": "Vyhľadávanie torrentov {{query}}", + "movie": "Vyhľadajte {{query}} na {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Zmeniť tému", + "preferences": "Predvoľby používateľa", + "defaultBoard": "Predvolená doska", + "manage": "Spravovať", + "logout": "Odhlásenie zo stránky {{username}}", + "login": "Prihlásiť sa" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Top {{count}} výsledky pre {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/sk/layout/manage.json b/public/locales/sk/layout/manage.json new file mode 100644 index 000000000..b7e0942e0 --- /dev/null +++ b/public/locales/sk/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Domovská stránka" + }, + "boards": { + "title": "Dosky" + }, + "users": { + "title": "Používatelia", + "items": { + "manage": "Spravovať", + "invites": "Pozvánky" + } + }, + "help": { + "title": "Pomocník", + "items": { + "documentation": "Dokumentácia", + "report": "Nahlásiť problém / chybu", + "discord": "Diskord Spoločenstva", + "contribute": "Prispejte" + } + }, + "tools": { + "title": "Nástroje", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "O aplikácii" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/layout/modals/about.json b/public/locales/sk/layout/modals/about.json index 59299338b..c3decebc7 100644 --- a/public/locales/sk/layout/modals/about.json +++ b/public/locales/sk/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr je elegantný, moderný prístrojový panel, ktorý vám poskytne všetky aplikácie a služby na dosah ruky. Pomocou aplikácie Homarr môžete mať prístup ku všetkému a ovládať ho na jednom pohodlnom mieste. Homarr sa bezproblémovo integruje s aplikáciami, ktoré ste pridali, poskytuje vám cenné informácie a umožňuje vám úplnú kontrolu. Inštalácia je jednoduchá a aplikácia Homarr podporuje širokú škálu metód nasadenia.", - "contact": "Máte problémy alebo otázky? Spojte sa s nami!", "addToDashboard": "Pridať na prístrojovú dosku", "tip": "Mod označuje kláves modifikátora, je to Ctrl a Command/Super/Windows", "key": "Klávesová skratka", "action": "Akcia", "keybinds": "Kľúčové väzby", - "documentation": "Dokumentácia", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "Prepínanie režimu svetlo/tma", "focusSearchBar": "Zameranie na vyhľadávací panel", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Verzia konfiguračnej schémy", - "configurationsCount": "Dostupné konfigurácie", "version": "verzia", "nodeEnvironment": "Node prostredie", "i18n": "Načítané prekladové priestory I18n", diff --git a/public/locales/sk/layout/modals/add-app.json b/public/locales/sk/layout/modals/add-app.json index b4de7332c..fdebf8173 100644 --- a/public/locales/sk/layout/modals/add-app.json +++ b/public/locales/sk/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Interná adresa", - "description": "Interná IP adresa aplikácie." + "description": "Interná IP adresa aplikácie.", + "troubleshoot": { + "label": "Máte problémy?", + "header": "Tu je zoznam bežných chýb a riešení problémov:", + "lines": { + "nothingAfterPort": "Vo väčšine, ak nie vo všetkých prípadoch, by ste za portom nemali zadávať žiadnu cestu. (Dokonca aj '/admin' pre pihole alebo '/web' pre plex)", + "protocolCheck": "Vždy sa uistite, že pred adresou URL je http alebo https, a uistite sa, že používate tú správnu.", + "preferIP": "Odporúča sa použiť priamu adresu IP zariadenia alebo kontajnera, s ktorým sa pokúšate komunikovať.", + "enablePings": "Skontrolujte, či je IP správna, povolením pingov. Prispôsobiť tabuľu -> Rozloženie -> Povoliť pingy. Na dlaždiciach vašej aplikácie sa objaví malá červená alebo zelená bublina a po jej umiestnení získate kód odpovede (vo väčšine prípadov sa očakáva zelená bublina s kódom 200).", + "wget": "Aby ste sa uistili, že homarr môže komunikovať s ostatnými aplikáciami, uistite sa, že ste zadali wget/curl/ping na IP:port aplikácie.", + "iframe": "Pokiaľ ide o prvky iframe, mali by vždy používať rovnaký protokol (http/s) ako Homarr.", + "clearCache": "Niektoré informácie sú registrované vo vyrovnávacej pamäti, takže integrácia nemusí fungovať, pokiaľ nevymažete vyrovnávaciu pamäť vo všeobecných možnostiach Homarra." + }, + "footer": "Ak potrebujete ďalšie riešenie problémov, obráťte sa na našu {{discord}}." + } }, "externalAddress": { "label": "Externá adresa", diff --git a/public/locales/sk/manage/boards.json b/public/locales/sk/manage/boards.json new file mode 100644 index 000000000..8c94ccd2c --- /dev/null +++ b/public/locales/sk/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Dosky", + "pageTitle": "Dosky", + "cards": { + "statistics": { + "apps": "Aplikácie", + "widgets": "Miniaplikácie", + "categories": "Kategórie" + }, + "buttons": { + "view": "Zobraziť tabuľu" + }, + "menu": { + "setAsDefault": "Nastavenie ako predvolenej dosky", + "delete": { + "label": "Odstrániť natrvalo", + "disabled": "Odstránenie zakázané, pretože staršie komponenty Homarr neumožňujú odstránenie predvoleného konfigurátora. Odstránenie bude možné v budúcnosti." + } + }, + "badges": { + "fileSystem": "Súborový systém", + "default": "Predvolené" + } + }, + "buttons": { + "create": "Vytvoriť novú tabuľu" + }, + "modals": { + "delete": { + "title": "Odstrániť dosku", + "text": "Ste si istí, že chcete túto tabuľu vymazať? Tento krok sa nedá vrátiť späť a vaše údaje sa natrvalo stratia." + }, + "create": { + "title": "Vytvoriť tabuľu", + "text": "Názov nie je možné zmeniť po vytvorení nástenky.", + "form": { + "name": { + "label": "Názov" + }, + "submit": "Vytvoriť" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/index.json b/public/locales/sk/manage/index.json new file mode 100644 index 000000000..a4b7ccdfc --- /dev/null +++ b/public/locales/sk/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Spravovať", + "hero": { + "title": "Vitajte späť, {{username}}", + "fallbackUsername": "Anonymný", + "subtitle": "Vitajte vo vašom aplikačnom centre. Organizujte, optimalizujte a ovládnite!" + }, + "quickActions": { + "title": "Rýchle akcie", + "boards": { + "title": "Vaše dosky", + "subtitle": "Vytváranie a správa tabúľ" + }, + "inviteUsers": { + "title": "Pozvať nového užívateľa", + "subtitle": "Vytvorenie a odoslanie pozvánky na registráciu" + }, + "manageUsers": { + "title": "Spravovať používateľov", + "subtitle": "Odstránenie a správa používateľov" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/users.json b/public/locales/sk/manage/users.json new file mode 100644 index 000000000..4b44e0d57 --- /dev/null +++ b/public/locales/sk/manage/users.json @@ -0,0 +1,36 @@ +{ + "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ť" + }, + "table": { + "header": { + "user": "Používateľ" + } + }, + "tooltips": { + "deleteUser": "Odstrániť používateľa", + "demoteAdmin": "Zníženie funkcie správcu", + "promoteToAdmin": "Povýšenie na správcu" + }, + "modals": { + "delete": { + "title": "Odstránenie používateľa {{name}}", + "text": "Ste si istí, že chcete odstrániť používateľa {{name}}? Tým sa vymažú údaje spojené s týmto účtom, ale nie všetky panely vytvorené týmto používateľom." + }, + "change-role": { + "promote": { + "title": "Povýšenie používateľa {{name}} na administrátora", + "text": "Ste si istí, že chcete povýšiť používateľa {{name}} na administrátora? Tým získa používateľ prístup ku všetkým zdrojom vo vašej inštancii Homarr." + }, + "demote": { + "title": "Odstránenie používateľa {{name}} na používateľa", + "text": "Ste si istí, že chcete povýšiť používateľa {{name}} na administrátora? Tým získa používateľ prístup ku všetkým zdrojom vo vašej inštancii Homarr." + }, + "confirm": "Potvrďte" + } + }, + "searchDoesntMatch": "Vaše vyhľadávanie nezodpovedá žiadnym záznamom. Upravte prosím svoj filter." +} \ No newline at end of file diff --git a/public/locales/sk/manage/users/create.json b/public/locales/sk/manage/users/create.json new file mode 100644 index 000000000..bb36338a9 --- /dev/null +++ b/public/locales/sk/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Vytvoriť užívateľa", + "steps": { + "account": { + "title": "Prvý krok", + "text": "Vytvoriť účet", + "username": { + "label": "Používateľské meno" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Druhý krok", + "text": "Heslo", + "password": { + "label": "Heslo" + } + }, + "finish": { + "title": "Potvrdenie", + "text": "Uložiť do databázy", + "card": { + "title": "Preskúmajte svoje vstupy", + "text": "Po odoslaní údajov do databázy sa používateľ bude môcť prihlásiť. Ste si istí, že chcete tohto používateľa uložiť do databázy a aktivovať prihlásenie?" + }, + "table": { + "header": { + "property": "Vlastnosti", + "value": "Hodnota", + "username": "Používateľské meno", + "email": "E-mail", + "password": "Heslo" + }, + "notSet": "Nenastavené", + "valid": "Platné" + }, + "failed": "Vytvorenie používateľa sa nepodarilo: {{error}}" + }, + "completed": { + "alert": { + "title": "Používateľ bol vytvorený", + "text": "Používateľ bol vytvorený v databáze. Teraz sa môže prihlásiť." + } + } + }, + "buttons": { + "generateRandomPassword": "Generovať náhodné", + "createAnother": "Vytvorenie ďalšieho" + } +} \ No newline at end of file diff --git a/public/locales/sk/manage/users/invites.json b/public/locales/sk/manage/users/invites.json new file mode 100644 index 000000000..2c9801aef --- /dev/null +++ b/public/locales/sk/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Pozvania používateľov", + "pageTitle": "Správa pozvánok používateľov", + "description": "Pomocou pozvánok môžete pozvať používateľov do svojej inštancie služby Homarr. Pozvánka je platná len na určitý časový úsek a možno ju použiť len raz. Platnosť musí byť od 5 minút do 12 mesiacov pri vytvorení.", + "button": { + "createInvite": "Vytvoriť pozvánku", + "deleteInvite": "Odstránenie pozvánky" + }, + "table": { + "header": { + "id": "ID", + "creator": "Autor", + "expires": "Expirácia", + "action": "Akcie" + }, + "data": { + "expiresAt": "vypršala platnosť {{at}}", + "expiresIn": "na stránke {{in}}" + } + }, + "modals": { + "create": { + "title": "Vytvoriť Pozvánku", + "description": "Po vypršaní platnosti pozvánky už nebude platná a príjemca pozvánky si nebude môcť vytvoriť účet.", + "form": { + "expires": "Dátum vypršania", + "submit": "Vytvoriť" + } + }, + "copy": { + "title": "Kópia pozvánky", + "description": "Vaša pozvánka bola vygenerovaná. Po zatvorení tohto modálneho okna už nebudete môcť skopírovať tento odkaz. Ak si už neželáte pozvať uvedenú osobu, môžete túto pozvánku kedykoľvek vymazať.", + "invitationLink": "Odkaz na pozvánku", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "Kopírovať a rozpustiť" + } + }, + "delete": { + "title": "Odstránenie pozvánky", + "description": "Ste si istí, že chcete túto pozvánku vymazať? Používatelia s týmto odkazom si už nebudú môcť vytvoriť účet pomocou tohto odkazu." + } + }, + "noInvites": "Zatiaľ nie sú k dispozícii žiadne pozvánky." +} \ No newline at end of file diff --git a/public/locales/sk/modules/calendar.json b/public/locales/sk/modules/calendar.json index e6148d947..d8d1f0b78 100644 --- a/public/locales/sk/modules/calendar.json +++ b/public/locales/sk/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Zobraz kalendár s pripravovanými vydaniami z podporovaných integrácií.", "settings": { "title": "Nastavenia mini aplikácie Kalendár", - "useSonarrv4": { - "label": "Použi Sonarr v4 API" - }, - "sundayStart": { - "label": "Začni týždeň v Nedeľu" - }, "radarrReleaseType": { "label": "Typ Radarr releasu", "data": { @@ -22,7 +16,7 @@ "label": "Skryť dni v týždni" }, "showUnmonitored": { - "label": "" + "label": "Zobraziť nesledované položky" }, "fontSize": { "label": "Veľkosť písma", diff --git a/public/locales/sk/modules/dns-hole-controls.json b/public/locales/sk/modules/dns-hole-controls.json index f29a7394d..2fc15ed78 100644 --- a/public/locales/sk/modules/dns-hole-controls.json +++ b/public/locales/sk/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Kontrola diery DNS", - "description": "Ovládajte PiHole alebo AdGuard z ovládacieho panela" + "description": "Ovládajte PiHole alebo AdGuard z ovládacieho panela", + "settings": { + "title": "Nastavenia ovládania otvoru DNS", + "showToggleAllButtons": { + "label": "Zobrazenie tlačidiel \"Povoliť/Zakázať všetko" + } + }, + "errors": { + "general": { + "title": "Nie je možné nájsť dieru DNS", + "text": "Vyskytol sa problém s pripojením k vašim dieram DNS. Skontrolujte prosím svoju konfiguráciu/integráciu." + } + } } } \ No newline at end of file diff --git a/public/locales/sk/modules/dns-hole-summary.json b/public/locales/sk/modules/dns-hole-summary.json index a503dbb56..02727a12f 100644 --- a/public/locales/sk/modules/dns-hole-summary.json +++ b/public/locales/sk/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domény na adlistoch", "queriesToday": "Poziadavky dnes", - "queriesBlockedTodayPercentage": "dnes zablokované", - "queriesBlockedToday": "dnes zablokované" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/sk/modules/media-requests-list.json b/public/locales/sk/modules/media-requests-list.json index c85b2a02b..a09b90310 100644 --- a/public/locales/sk/modules/media-requests-list.json +++ b/public/locales/sk/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Nenašli sa žiadne požiadavky. Skontrolujte, či ste správne nakonfigurovali svoje aplikácie.", - "pending": "Na schválenie čaká {{countPendingApproval}} žiadostí.", - "nonePending": "V súčasnosti nie sú k dispozícii žiadne schválenia. Môžete začať!", "state": { "approved": "Schválené", "pendingApproval": "Čaká sa na schválenie", diff --git a/public/locales/sk/modules/notebook.json b/public/locales/sk/modules/notebook.json index 0c158fefd..15f725a34 100644 --- a/public/locales/sk/modules/notebook.json +++ b/public/locales/sk/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Zobrazenie panela nástrojov na pomoc pri písaní poznámok" }, + "allowReadOnlyCheck": { + "label": "" + }, "content": { "label": "Obsah zápisníka" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/sk/modules/rss.json b/public/locales/sk/modules/rss.json index 7211a7990..e8d93eb8d 100644 --- a/public/locales/sk/modules/rss.json +++ b/public/locales/sk/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS mini aplikácia", - "description": "", + "description": "Widget rss umožňuje zobrazovať kanály RSS na ovládacom paneli.", "settings": { "title": "Nastavenia mini aplikácie RSS", "rssFeedUrl": { diff --git a/public/locales/sk/modules/torrents-status.json b/public/locales/sk/modules/torrents-status.json index f12e07fbf..58247faa1 100644 --- a/public/locales/sk/modules/torrents-status.json +++ b/public/locales/sk/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Zobraz dokončené torrenty" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Zobraz zastarané torrenty" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Zoznam štítkov", "description": "Ak je začiarknuté políčko 'is whitelist', bude sa toto políčko správať ako biela listina. Ak nie je začiarknuté, ide o čiernu listinu. Ak je prázdny, nerobí nič" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Chyba", - "lastUpdated": "Naposledy aktualizované pred {{time}}" + "lastUpdated": "Naposledy aktualizované pred {{time}}", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/sk/modules/weather.json b/public/locales/sk/modules/weather.json index 1e06620f2..8f8c580c6 100644 --- a/public/locales/sk/modules/weather.json +++ b/public/locales/sk/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Neznámy" } }, - "error": "Došlo k chybe" + "error": "Vyskytla sa chyba" } diff --git a/public/locales/sk/password-requirements.json b/public/locales/sk/password-requirements.json new file mode 100644 index 000000000..7dd2af803 --- /dev/null +++ b/public/locales/sk/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Vrátane čísiel", + "lowercase": "Zahŕňa malé písmeno", + "uppercase": "Zahŕňa veľké písmená", + "special": "Zahŕňa špeciálny znak", + "length": "Obsahuje aspoň {{count}} znakov" +} \ No newline at end of file diff --git a/public/locales/sk/settings/common.json b/public/locales/sk/settings/common.json index 2c42d6169..289df39df 100644 --- a/public/locales/sk/settings/common.json +++ b/public/locales/sk/settings/common.json @@ -13,7 +13,7 @@ "thirdPartyContent": "Pozrite si obsah tretích strán", "thirdPartyContentTable": { "dependencyName": "Závislosť", - "dependencyVersion": "Verzia" + "dependencyVersion": "verzia" } }, "grow": "Zväčšiť mriežku (zabrať všetok priestor)", diff --git a/public/locales/sk/settings/customization/access.json b/public/locales/sk/settings/customization/access.json new file mode 100644 index 000000000..4303366e2 --- /dev/null +++ b/public/locales/sk/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Povoľte anonymné", + "description": "Povoľte používateľom, ktorí nie sú prihlásení, zobrazovať vašu nástenku" + } +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/general.json b/public/locales/sk/settings/customization/general.json index 45781937e..3e0bbb6bc 100644 --- a/public/locales/sk/settings/customization/general.json +++ b/public/locales/sk/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Prístupnosť", "description": "Konfigurácia aplikácie Homarr pre zdravotne postihnutých a hendikepovaných používateľov" + }, + "access": { + "name": "", + "description": "Konfigurácia osôb, ktoré majú prístup k vašej nástenke" } } } diff --git a/public/locales/sk/settings/customization/page-appearance.json b/public/locales/sk/settings/customization/page-appearance.json index 25d15e87a..d290a9d25 100644 --- a/public/locales/sk/settings/customization/page-appearance.json +++ b/public/locales/sk/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Ďalej si prispôsobte ovládací panel pomocou CSS, odporúča sa len pre skúsených používateľov", "placeholder": "Vlastné CSS sa použije ako posledné", "applying": "Aplikuje sa CSS..." - }, - "buttons": { - "submit": "Odoslať" } -} +} \ No newline at end of file diff --git a/public/locales/sk/tools/docker.json b/public/locales/sk/tools/docker.json new file mode 100644 index 000000000..b7179f80e --- /dev/null +++ b/public/locales/sk/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Vaša inštancia Homarr nemá nakonfigurovaný Docker alebo sa jej nepodarilo načítať kontajnery. Pozrite si dokumentáciu o tom, ako nastaviť integráciu." + } + }, + "modals": { + "selectBoard": { + "title": "Výber dosky", + "text": "Zvoľte dosku, na ktorú chcete pridať aplikácie pre vybrané kontajnery Docker.", + "form": { + "board": { + "label": "Doska" + }, + "submit": "Pridať aplikácie" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Pridanie aplikácií na dosku", + "message": "Aplikácie pre vybrané kontajnery Docker boli pridané na tabuľu." + }, + "error": { + "title": "Nepodarilo sa pridať aplikácie na palubu", + "message": "Aplikácie pre vybrané kontajnery Docker boli pridané na tabuľu." + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/user/preferences.json b/public/locales/sk/user/preferences.json new file mode 100644 index 000000000..3515d97f3 --- /dev/null +++ b/public/locales/sk/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Predvoľby", + "pageTitle": "Vaše preferencie", + "boards": { + "defaultBoard": { + "label": "Predvolená doska" + } + }, + "accessibility": { + "title": "Prístupnosť", + "disablePulse": { + "label": "Zakázanie impulzu ping", + "description": "V predvolenom nastavení budú indikátory ping v aplikácii Homarr pulzovať. To môže byť nepríjemné. Tento posuvník deaktivuje animáciu" + }, + "replaceIconsWithDots": { + "label": "Nahradenie bodov ping ikonami", + "description": "Pre farboslepých používateľov môžu byť pingové body nerozpoznateľné. Toto nahradí indikátory ikonami" + } + }, + "localization": { + "language": { + "label": "Jazyk" + }, + "firstDayOfWeek": { + "label": "Prvý deň v týždni", + "options": { + "monday": "Pondelok", + "saturday": "Sobota", + "sunday": "Nedeľa" + } + } + }, + "searchEngine": { + "title": "Vyhľadávač", + "custom": "Vlastné", + "newTab": { + "label": "Otvorenie výsledkov vyhľadávania na novej karte" + }, + "autoFocus": { + "label": "Zameranie vyhľadávacieho panela pri načítaní stránky.", + "description": "Pri prechode na stránky nástenky sa automaticky zaostrí vyhľadávací panel. Funguje to len na zariadeniach s počítačom." + }, + "template": { + "label": "Adresa URL dopytu", + "description": "Použite %s ako zástupný symbol pre dotaz" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/zod.json b/public/locales/sk/zod.json new file mode 100644 index 000000000..6b17c83ee --- /dev/null +++ b/public/locales/sk/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Toto pole je neplatné", + "required": "Toto pole je povinné", + "string": { + "startsWith": "Toto pole musí začínať na {{startsWith}}", + "endsWith": "Toto pole musí končiť na {{endsWith}}", + "includes": "Toto pole musí obsahovať {{includes}}" + }, + "tooSmall": { + "string": "Toto pole musí byť dlhé aspoň {{minimum}} znakov", + "number": "Toto pole musí byť väčšie alebo rovné {{minimum}}" + }, + "tooBig": { + "string": "Toto pole musí mať najviac {{maximum}} znakov", + "number": "Toto pole musí byť menšie alebo rovné {{maximum}}" + }, + "custom": { + "passwordMatch": "Heslá sa musia zhodovať" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/authentication/invite.json b/public/locales/sl/authentication/invite.json new file mode 100644 index 000000000..3d7063116 --- /dev/null +++ b/public/locales/sl/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Uporabniško ime" + }, + "password": { + "label": "Geslo" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Napaka", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/authentication/login.json b/public/locales/sl/authentication/login.json index e90fe2242..1947e42d2 100644 --- a/public/locales/sl/authentication/login.json +++ b/public/locales/sl/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Prijava", "title": "Dobrodošli nazaj!", - "text": "Prosimo, vnesite svoje geslo", + "text": "Vnesite svoje poverilnice", "form": { "fields": { + "username": { + "label": "Uporabniško ime" + }, "password": { - "label": "Geslo", - "placeholder": "Vaše geslo" + "label": "Geslo" } }, "buttons": { "submit": "Prijava" - } + }, + "afterLoginRedirection": "Po prijavi boste preusmerjeni na spletno stran {{url}}." }, - "notifications": { - "checking": { - "title": "Preverjanje gesla", - "message": "Preverjamo vaše geslo..." - }, - "correct": { - "title": "Prijava uspešna, preusmeritev..." - }, - "wrong": { - "title": "Vneseno geslo je napačno, poskusite znova." - } - } -} + "alert": "Vaše poverilnice so napačne ali pa ta račun ne obstaja. Poskusite znova." +} \ No newline at end of file diff --git a/public/locales/sl/boards/common.json b/public/locales/sl/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/sl/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/boards/customize.json b/public/locales/sl/boards/customize.json new file mode 100644 index 000000000..45c0ca7cb --- /dev/null +++ b/public/locales/sl/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Napaka", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index 2bd8c975e..453f0a86d 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -1,20 +1,26 @@ { "save": "Shrani", + "apply": "", + "insert": "", "about": "O programu", "cancel": "Prekliči", "close": "Zapri", + "back": "Nazaj", "delete": "Izbriši", "ok": "V redu", "edit": "Uredi", - "enabled": "", - "disabled": "", - "enableAll": "", - "disableAll": "", + "next": "Naslednji", + "previous": "Prejšnji", + "confirm": "Potrdi", + "enabled": "Omogočeno", + "disabled": "Invalidi", + "enableAll": "Omogoči vse", + "disableAll": "Onemogočite vse", "version": "Različica", "changePosition": "Spremeni položaj", "remove": "Odstrani", "removeConfirm": "Ali ste prepričani, da želite odstraniti {{item}}?", - "createItem": "", + "createItem": "+ ustvarite {{item}}", "sections": { "settings": "Nastavitve", "dangerZone": "Nevarno območje" @@ -36,5 +42,14 @@ "medium": "srednja", "large": "velika" }, - "seeMore": "" + "seeMore": "Oglejte si več...", + "position": { + "left": "", + "center": "", + "right": "" + }, + "attributes": { + "width": "Širina", + "height": "Višina" + } } \ No newline at end of file diff --git a/public/locales/sl/layout/errors/access-denied.json b/public/locales/sl/layout/errors/access-denied.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sl/layout/errors/access-denied.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sl/layout/header.json b/public/locales/sl/layout/header.json new file mode 100644 index 000000000..cd43ad67c --- /dev/null +++ b/public/locales/sl/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "" + }, + "search": { + "label": "", + "engines": { + "web": "", + "youtube": "", + "torrent": "", + "movie": "" + } + }, + "actions": { + "avatar": { + "switchTheme": "", + "preferences": "", + "defaultBoard": "", + "manage": "", + "logout": "", + "login": "Prijava" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/layout/manage.json b/public/locales/sl/layout/manage.json new file mode 100644 index 000000000..66c3c0b16 --- /dev/null +++ b/public/locales/sl/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "O programu" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/layout/modals/about.json b/public/locales/sl/layout/modals/about.json index 71502552b..9bb9b3890 100644 --- a/public/locales/sl/layout/modals/about.json +++ b/public/locales/sl/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr je elegantna, sodobna nadzorna plošča, s katero so vse vaše aplikacije in storitve na dosegu roke. Z aplikacijo Homarr lahko do vsega dostopate in nadzorujete na enem priročnem mestu. Homarr se brez težav poveže z aplikacijami, ki ste jih dodali, in vam zagotavlja dragocene informacije ter popoln nadzor. Namestitev je preprosta, Homarr pa podpira širok nabor načinov namestitve.", - "contact": "Imate težave ali vprašanja? Povežite se z nami!", "addToDashboard": "Dodajanje v nadzorno ploščo", "tip": "Mod se nanaša na modifikacijsko tipko, to so tipke Ctrl in Command/Super/Windows", "key": "Bližnjična tipka", "action": "Dejanje", "keybinds": "Vezave tipk", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "", "focusSearchBar": "", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Različica konfiguracijske sheme", - "configurationsCount": "Razpoložljive konfiguracije", "version": "Različica", "nodeEnvironment": "Okolje vozlišča", "i18n": "Nalaganje imenskih prostorov za prevod I18n", diff --git a/public/locales/sl/layout/modals/add-app.json b/public/locales/sl/layout/modals/add-app.json index 3b80f26e1..e4bb480e1 100644 --- a/public/locales/sl/layout/modals/add-app.json +++ b/public/locales/sl/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Notranji naslov", - "description": "Notranji naslov IP aplikacije." + "description": "Notranji naslov IP aplikacije.", + "troubleshoot": { + "label": "", + "header": "", + "lines": { + "nothingAfterPort": "", + "protocolCheck": "", + "preferIP": "", + "enablePings": "", + "wget": "", + "iframe": "", + "clearCache": "" + }, + "footer": "" + } }, "externalAddress": { "label": "Zunanji naslov", diff --git a/public/locales/sl/manage/boards.json b/public/locales/sl/manage/boards.json new file mode 100644 index 000000000..f68623a1b --- /dev/null +++ b/public/locales/sl/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "", + "widgets": "", + "categories": "" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Ime" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/index.json b/public/locales/sl/manage/index.json new file mode 100644 index 000000000..5c5b4c0b9 --- /dev/null +++ b/public/locales/sl/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/users.json b/public/locales/sl/manage/users.json new file mode 100644 index 000000000..700a5d503 --- /dev/null +++ b/public/locales/sl/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Uporabnik" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Potrdi" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/sl/manage/users/create.json b/public/locales/sl/manage/users/create.json new file mode 100644 index 000000000..0f6744541 --- /dev/null +++ b/public/locales/sl/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Uporabniško ime" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Geslo", + "password": { + "label": "Geslo" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Uporabniško ime", + "email": "", + "password": "Geslo" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/manage/users/invites.json b/public/locales/sl/manage/users/invites.json new file mode 100644 index 000000000..8ba8ec70c --- /dev/null +++ b/public/locales/sl/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/sl/modules/calendar.json b/public/locales/sl/modules/calendar.json index d912b46b1..65c71e38f 100644 --- a/public/locales/sl/modules/calendar.json +++ b/public/locales/sl/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Prikaže koledar s prihajajočimi izdajami iz podprtih integracij.", "settings": { "title": "Nastavitve za gradnik Koledar", - "useSonarrv4": { - "label": "Uporaba vmesnika API Sonarr v4" - }, - "sundayStart": { - "label": "Začni teden z nedeljo" - }, "radarrReleaseType": { "label": "Tip sprostitve Radarr", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "V kinematografih", + "physicalRelease": "Fizični", + "digitalRelease": "Digitalni" } }, "hideWeekDays": { - "label": "" + "label": "Skrij delovne dni" }, "showUnmonitored": { - "label": "" + "label": "Prikaži nenadzorovane elemente" }, "fontSize": { - "label": "", + "label": "Velikost pisave", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Zelo majhen", + "sm": "Majhna", + "md": "Srednja", + "lg": "Velika", + "xl": "Zelo velik" } } } diff --git a/public/locales/sl/modules/dashdot.json b/public/locales/sl/modules/dashdot.json index a584eed57..dcb94f02b 100644 --- a/public/locales/sl/modules/dashdot.json +++ b/public/locales/sl/modules/dashdot.json @@ -5,7 +5,7 @@ "settings": { "title": "Nastavitve za pripomoček Dash", "dashName": { - "label": "" + "label": "Pomišljaj. Ime" }, "url": { "label": "Dash. URL" diff --git a/public/locales/sl/modules/date.json b/public/locales/sl/modules/date.json index 62a3069a6..13f82d191 100644 --- a/public/locales/sl/modules/date.json +++ b/public/locales/sl/modules/date.json @@ -8,24 +8,24 @@ "label": "Prikaz polnega časa (24-urni)" }, "dateFormat": { - "label": "", + "label": "Oblikovanje datuma", "data": { - "hide": "" + "hide": "Skrij datum" } }, "enableTimezone": { - "label": "" + "label": "Prikaz časovnega območja po meri" }, "timezoneLocation": { - "label": "" + "label": "Časovni pas Lokacija" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Mesto in časovno območje", + "city": "Samo mesto", + "none": "Ni" } } } diff --git a/public/locales/sl/modules/dns-hole-controls.json b/public/locales/sl/modules/dns-hole-controls.json index f8daba13b..3bf25c924 100644 --- a/public/locales/sl/modules/dns-hole-controls.json +++ b/public/locales/sl/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "", - "description": "" + "description": "", + "settings": { + "title": "", + "showToggleAllButtons": { + "label": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } } } \ No newline at end of file diff --git a/public/locales/sl/modules/media-requests-list.json b/public/locales/sl/modules/media-requests-list.json index 2b1fc2d63..05e700def 100644 --- a/public/locales/sl/modules/media-requests-list.json +++ b/public/locales/sl/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "", - "pending": "", - "nonePending": "", "state": { "approved": "", "pendingApproval": "", diff --git a/public/locales/sl/modules/notebook.json b/public/locales/sl/modules/notebook.json index 3ad2a768e..69b88092c 100644 --- a/public/locales/sl/modules/notebook.json +++ b/public/locales/sl/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "" }, + "allowReadOnlyCheck": { + "label": "" + }, "content": { "label": "" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/sl/modules/rss.json b/public/locales/sl/modules/rss.json index e1c993635..bc6aabb30 100644 --- a/public/locales/sl/modules/rss.json +++ b/public/locales/sl/modules/rss.json @@ -22,8 +22,8 @@ "card": { "errors": { "general": { - "title": "", - "text": "" + "title": "Ni mogoče pridobiti vira RSS", + "text": "Prišlo je do težave z doseganjem vira RSS. Prepričajte se, da ste pravilno konfigurirali vir RSS z veljavnim naslovom URL. URL-ji morajo ustrezati uradni specifikaciji. Po posodobitvi vira boste morda morali osvežiti nadzorno ploščo." } } } diff --git a/public/locales/sl/modules/torrents-status.json b/public/locales/sl/modules/torrents-status.json index 8293a663b..94f0a255f 100644 --- a/public/locales/sl/modules/torrents-status.json +++ b/public/locales/sl/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Prikaži dokončane torrente" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Prikaži zastarele torrente" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "", "description": "" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Napaka", - "lastUpdated": "Nazadnje posodobljeno {{time}} nazaj" + "lastUpdated": "Nazadnje posodobljeno {{time}} nazaj", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/sl/modules/weather.json b/public/locales/sl/modules/weather.json index 5c4967fe4..62fa58331 100644 --- a/public/locales/sl/modules/weather.json +++ b/public/locales/sl/modules/weather.json @@ -8,7 +8,7 @@ "label": "Prikaz v Fahrenheitu" }, "displayCityName": { - "label": "" + "label": "Prikaži ime mesta" }, "location": { "label": "Lokacija vremena" @@ -33,5 +33,5 @@ "unknown": "Neznano" } }, - "error": "" + "error": "Zgodila se je napaka" } diff --git a/public/locales/sl/password-requirements.json b/public/locales/sl/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sl/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/access.json b/public/locales/sl/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/sl/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/customization/general.json b/public/locales/sl/settings/customization/general.json index 623dd8c69..46cc68c69 100644 --- a/public/locales/sl/settings/customization/general.json +++ b/public/locales/sl/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "", "description": "" + }, + "access": { + "name": "", + "description": "" } } } diff --git a/public/locales/sl/settings/customization/page-appearance.json b/public/locales/sl/settings/customization/page-appearance.json index d0528335b..6702f6723 100644 --- a/public/locales/sl/settings/customization/page-appearance.json +++ b/public/locales/sl/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Dadatno prilagodite pogled s CSS. Priporočljivo le za izkušene uporabnike", "placeholder": "Prilagojeni CSS bo uporabljen kot zadnji", "applying": "Uporaba CSS..." - }, - "buttons": { - "submit": "Pošlji" } -} +} \ No newline at end of file diff --git a/public/locales/sl/settings/general/search-engine.json b/public/locales/sl/settings/general/search-engine.json index 75b90d129..685e7a015 100644 --- a/public/locales/sl/settings/general/search-engine.json +++ b/public/locales/sl/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Iskalnik", "configurationName": "Nastavitve iskalnika", - "custom": "", + "custom": "Po meri", "tips": { "generalTip": "Uporabite lahko več predpon! Če jih dodate pred poizvedbo, boste filtrirali rezultate. !s (splet), !t (torrenti), !y (YouTube) in !m (mediji).", "placeholderTip": "%s lahko uporabite kot nadomestno ime za poizvedbo." diff --git a/public/locales/sl/tools/docker.json b/public/locales/sl/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/sl/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/user/preferences.json b/public/locales/sl/user/preferences.json new file mode 100644 index 000000000..a11e293f9 --- /dev/null +++ b/public/locales/sl/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "boards": { + "defaultBoard": { + "label": "" + } + }, + "accessibility": { + "title": "", + "disablePulse": { + "label": "", + "description": "" + }, + "replaceIconsWithDots": { + "label": "", + "description": "" + } + }, + "localization": { + "language": { + "label": "Jezik" + }, + "firstDayOfWeek": { + "label": "", + "options": { + "monday": "", + "saturday": "", + "sunday": "" + } + } + }, + "searchEngine": { + "title": "Iskalnik", + "custom": "Po meri", + "newTab": { + "label": "" + }, + "autoFocus": { + "label": "", + "description": "" + }, + "template": { + "label": "URL poizvedbe", + "description": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sl/zod.json b/public/locales/sl/zod.json new file mode 100644 index 000000000..4c7c8b82d --- /dev/null +++ b/public/locales/sl/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "", + "required": "", + "string": { + "startsWith": "", + "endsWith": "", + "includes": "" + }, + "tooSmall": { + "string": "", + "number": "" + }, + "tooBig": { + "string": "", + "number": "" + }, + "custom": { + "passwordMatch": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/authentication/invite.json b/public/locales/sv/authentication/invite.json new file mode 100644 index 000000000..b3990e71c --- /dev/null +++ b/public/locales/sv/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "", + "title": "", + "text": "", + "form": { + "fields": { + "username": { + "label": "Användarnamn" + }, + "password": { + "label": "Lösenord" + }, + "passwordConfirmation": { + "label": "" + } + }, + "buttons": { + "submit": "" + } + }, + "notifications": { + "loading": { + "title": "", + "text": "" + }, + "success": { + "title": "", + "text": "" + }, + "error": { + "title": "Fel", + "text": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/authentication/login.json b/public/locales/sv/authentication/login.json index 4ff931453..be8c328d3 100644 --- a/public/locales/sv/authentication/login.json +++ b/public/locales/sv/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Logga in", "title": "Välkommen tillbaka!", - "text": "Ange ditt lösenord", + "text": "Ange dina autentiseringsuppgifter", "form": { "fields": { + "username": { + "label": "Användarnamn" + }, "password": { - "label": "Lösenord", - "placeholder": "Ditt lösenord" + "label": "Lösenord" } }, "buttons": { "submit": "Logga in" - } + }, + "afterLoginRedirection": "Efter inloggningen kommer du att omdirigeras till {{url}}" }, - "notifications": { - "checking": { - "title": "Kontrollerar ditt lösenord", - "message": "Ditt lösenord kontrolleras..." - }, - "correct": { - "title": "Inloggning lyckades, omdirigerar..." - }, - "wrong": { - "title": "Lösenordet du angav är felaktigt. Försök igen." - } - } -} + "alert": "Dina autentiseringsuppgifter är felaktiga eller så finns inte det här kontot. Vänligen försök igen." +} \ No newline at end of file diff --git a/public/locales/sv/boards/common.json b/public/locales/sv/boards/common.json new file mode 100644 index 000000000..a70db06bf --- /dev/null +++ b/public/locales/sv/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/boards/customize.json b/public/locales/sv/boards/customize.json new file mode 100644 index 000000000..48604fe99 --- /dev/null +++ b/public/locales/sv/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "", + "pageTitle": "", + "backToBoard": "", + "settings": { + "appearance": { + "primaryColor": "", + "secondaryColor": "" + } + }, + "save": { + "button": "", + "note": "" + }, + "notifications": { + "pending": { + "title": "", + "message": "" + }, + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "Fel", + "message": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 299527df4..1abe2496b 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -1,11 +1,17 @@ { "save": "Spara", + "apply": "", + "insert": "", "about": "Om", "cancel": "Avbryt", "close": "Stäng", + "back": "Bakåt", "delete": "Radera", "ok": "OK", "edit": "Redigera", + "next": "Nästa", + "previous": "Föregående", + "confirm": "Bekräfta", "enabled": "Aktiverad", "disabled": "Inaktiverad", "enableAll": "Aktivera alla", @@ -36,5 +42,14 @@ "medium": "mellan", "large": "stor" }, - "seeMore": "Se mer..." + "seeMore": "Se mer...", + "position": { + "left": "Vänster", + "center": "", + "right": "Höger" + }, + "attributes": { + "width": "Bredd", + "height": "Höjd" + } } \ No newline at end of file diff --git a/public/locales/sv/layout/errors/access-denied.json b/public/locales/sv/layout/errors/access-denied.json new file mode 100644 index 000000000..aa12a419b --- /dev/null +++ b/public/locales/sv/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Åtkomst nekad", + "text": "Du har inte tillräckliga behörigheter för att komma åt denna sida. Om du tror att detta inte är avsiktligt, vänligen kontakta din administratör.", + "switchAccount": "Växla till ett annat konto" +} \ No newline at end of file diff --git a/public/locales/sv/layout/header.json b/public/locales/sv/layout/header.json new file mode 100644 index 000000000..ce11e3bf2 --- /dev/null +++ b/public/locales/sv/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Detta är en experimentell funktion i Homarr. Vänligen rapportera eventuella problem på GitHub eller Discord." + }, + "search": { + "label": "Sök", + "engines": { + "web": "Sök efter {{query}} på webben", + "youtube": "Sök efter {{query}} på YouTube", + "torrent": "Sök efter {{query}} torrents", + "movie": "Sök efter {{query}} på {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Byt tema", + "preferences": "Användarinställningar", + "defaultBoard": "Standard instrumentpanel", + "manage": "Hantera", + "logout": "", + "login": "Logga in" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/manage.json b/public/locales/sv/layout/manage.json new file mode 100644 index 000000000..e82a31d64 --- /dev/null +++ b/public/locales/sv/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "" + }, + "boards": { + "title": "" + }, + "users": { + "title": "", + "items": { + "manage": "Hantera", + "invites": "" + } + }, + "help": { + "title": "", + "items": { + "documentation": "Dokumentation", + "report": "", + "discord": "", + "contribute": "" + } + }, + "tools": { + "title": "", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Om" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/layout/modals/about.json b/public/locales/sv/layout/modals/about.json index 971abaa9c..efdef8055 100644 --- a/public/locales/sv/layout/modals/about.json +++ b/public/locales/sv/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr är en stilren, modern instrumentpanel som ger dig tillgång till alla dina appar och tjänster. Med Homarr kan du få tillgång till och kontrollera allt på ett bekvämt ställe. Homarr integreras sömlöst med de appar du har lagt till, vilket ger dig värdefull information och ger dig fullständig kontroll. Installationen är enkel och Homarr stöder ett stort antal installationsmetoder.", - "contact": "Har du problem eller frågor? Kontakta oss!", "addToDashboard": "Lägg till på instrumentpanel", "tip": "Mod är din modifiertangent, det är Ctrl och kommando/Super/Windows-tangenten", "key": "Genvägstangent", "action": "Åtgärd", "keybinds": "Knapptilldelning", - "documentation": "Dokumentation", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "Växla mellan ljus- och mörkerläge", "focusSearchBar": "Fokusera på sökruta", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Version av konfigurationsschemat", - "configurationsCount": "Tillgängliga konfigurationer", "version": "Version", "nodeEnvironment": "Nod miljö", "i18n": "Laddade namnområden för I18n-översättningar", diff --git a/public/locales/sv/layout/modals/add-app.json b/public/locales/sv/layout/modals/add-app.json index 3861b5f03..d17ee83ae 100644 --- a/public/locales/sv/layout/modals/add-app.json +++ b/public/locales/sv/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Intern adress", - "description": "Appens interna IP-adress." + "description": "Appens interna IP-adress.", + "troubleshoot": { + "label": "Har du problem?", + "header": "Här är en lista på vanliga misstag och felsökning:", + "lines": { + "nothingAfterPort": "Du bör i de flesta fall, om inte alla, inte ange någon sökväg efter porten. (Även '/admin' för pihole eller '/web' för plex)", + "protocolCheck": "Kontrollera alltid att webbadressen föregås av http eller https, och att du använder rätt URL.", + "preferIP": "Vi rekommenderar att du använder det direkta ip-numret för den maskin eller container du försöker kommunicera med.", + "enablePings": "Kontrollera att IP är rätt genom att aktivera pings. Anpassa tavla -> Layout -> Aktivera pings. En liten röd eller grön bubbla kommer att visas på din app och om du håller muspekaren över den får du svarskoden (en grön bubbla med kod 200 förväntas i de flesta fall).", + "wget": "För att se till att homarr kan kommunicera med de andra apparna, se till att wget/curl/ping appens IP:port.", + "iframe": "När det gäller iframes ska dessa alltid använda samma protokoll (http/s) som Homarr.", + "clearCache": "Viss information registreras i cacheminnet, så en integration kanske inte fungerar om du inte rensar cacheminnet i Homarrs allmänna alternativ." + }, + "footer": "För mer felsökning, kontakta oss på vår {{discord}}." + } }, "externalAddress": { "label": "Extern adress", @@ -78,7 +92,7 @@ } }, "lineClampAppName": { - "label": "", + "label": "Radbrytning för appnamn", "description": "Definierar hur många rader din titel maximalt ska rymmas på. Ange 0 för obegränsat." } }, diff --git a/public/locales/sv/manage/boards.json b/public/locales/sv/manage/boards.json new file mode 100644 index 000000000..795a4f505 --- /dev/null +++ b/public/locales/sv/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "", + "pageTitle": "", + "cards": { + "statistics": { + "apps": "Appar", + "widgets": "Widgets", + "categories": "Kategorier" + }, + "buttons": { + "view": "" + }, + "menu": { + "setAsDefault": "", + "delete": { + "label": "", + "disabled": "" + } + }, + "badges": { + "fileSystem": "", + "default": "" + } + }, + "buttons": { + "create": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "create": { + "title": "", + "text": "", + "form": { + "name": { + "label": "Namn" + }, + "submit": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/index.json b/public/locales/sv/manage/index.json new file mode 100644 index 000000000..452c9010b --- /dev/null +++ b/public/locales/sv/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Hantera", + "hero": { + "title": "", + "fallbackUsername": "", + "subtitle": "" + }, + "quickActions": { + "title": "", + "boards": { + "title": "", + "subtitle": "" + }, + "inviteUsers": { + "title": "", + "subtitle": "" + }, + "manageUsers": { + "title": "", + "subtitle": "" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/users.json b/public/locales/sv/manage/users.json new file mode 100644 index 000000000..b44e93285 --- /dev/null +++ b/public/locales/sv/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "", + "pageTitle": "", + "text": "", + "buttons": { + "create": "" + }, + "table": { + "header": { + "user": "Användare" + } + }, + "tooltips": { + "deleteUser": "", + "demoteAdmin": "", + "promoteToAdmin": "" + }, + "modals": { + "delete": { + "title": "", + "text": "" + }, + "change-role": { + "promote": { + "title": "", + "text": "" + }, + "demote": { + "title": "", + "text": "" + }, + "confirm": "Bekräfta" + } + }, + "searchDoesntMatch": "" +} \ No newline at end of file diff --git a/public/locales/sv/manage/users/create.json b/public/locales/sv/manage/users/create.json new file mode 100644 index 000000000..c1680c096 --- /dev/null +++ b/public/locales/sv/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "", + "steps": { + "account": { + "title": "", + "text": "", + "username": { + "label": "Användarnamn" + }, + "email": { + "label": "" + } + }, + "security": { + "title": "", + "text": "Lösenord", + "password": { + "label": "Lösenord" + } + }, + "finish": { + "title": "", + "text": "", + "card": { + "title": "", + "text": "" + }, + "table": { + "header": { + "property": "", + "value": "", + "username": "Användarnamn", + "email": "", + "password": "Lösenord" + }, + "notSet": "", + "valid": "" + }, + "failed": "" + }, + "completed": { + "alert": { + "title": "", + "text": "" + } + } + }, + "buttons": { + "generateRandomPassword": "", + "createAnother": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/manage/users/invites.json b/public/locales/sv/manage/users/invites.json new file mode 100644 index 000000000..41730646e --- /dev/null +++ b/public/locales/sv/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "", + "pageTitle": "", + "description": "", + "button": { + "createInvite": "", + "deleteInvite": "" + }, + "table": { + "header": { + "id": "ID", + "creator": "", + "expires": "", + "action": "" + }, + "data": { + "expiresAt": "", + "expiresIn": "" + } + }, + "modals": { + "create": { + "title": "", + "description": "", + "form": { + "expires": "", + "submit": "" + } + }, + "copy": { + "title": "", + "description": "", + "invitationLink": "", + "details": { + "id": "ID", + "token": "" + }, + "button": { + "close": "" + } + }, + "delete": { + "title": "", + "description": "" + } + }, + "noInvites": "" +} \ No newline at end of file diff --git a/public/locales/sv/modules/calendar.json b/public/locales/sv/modules/calendar.json index 30b326b71..bb97ef07f 100644 --- a/public/locales/sv/modules/calendar.json +++ b/public/locales/sv/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Visar en kalender med kommande utgåvor, från integrationer som stöds.", "settings": { "title": "Inställningar för kalenderwidget", - "useSonarrv4": { - "label": "Använd Sonarr v4 API" - }, - "sundayStart": { - "label": "Börja veckan på söndag" - }, "radarrReleaseType": { "label": "Radarr releasetyp", "data": { diff --git a/public/locales/sv/modules/dns-hole-controls.json b/public/locales/sv/modules/dns-hole-controls.json index bb82e3e95..58e47db12 100644 --- a/public/locales/sv/modules/dns-hole-controls.json +++ b/public/locales/sv/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Kontroller av DNS hole", - "description": "Styr PiHole eller AdGuard från din instrumentpanel" + "description": "Styr PiHole eller AdGuard från din instrumentpanel", + "settings": { + "title": "Inställningar för DNS-hål", + "showToggleAllButtons": { + "label": "Visa 'Aktivera/inaktivera alla' knappar" + } + }, + "errors": { + "general": { + "title": "Kan inte hitta ett DNS-hål", + "text": "Det gick inte att ansluta till ditt(dina) DNS-hål. Vänligen verifiera dina konfiguration/integration(er)." + } + } } } \ No newline at end of file diff --git a/public/locales/sv/modules/dns-hole-summary.json b/public/locales/sv/modules/dns-hole-summary.json index b96d4f65d..410d3ccda 100644 --- a/public/locales/sv/modules/dns-hole-summary.json +++ b/public/locales/sv/modules/dns-hole-summary.json @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Domäner på adlists", "queriesToday": "Förfrågningar idag", - "queriesBlockedTodayPercentage": "blockerad idag", - "queriesBlockedToday": "blockerad idag" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/sv/modules/media-requests-list.json b/public/locales/sv/modules/media-requests-list.json index 577fe5374..fa6bd0f51 100644 --- a/public/locales/sv/modules/media-requests-list.json +++ b/public/locales/sv/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Inga förfrågningar hittades. Kontrollera att du har konfigurerat dina appar korrekt.", - "pending": "Det finns {{countPendingApproval}} förfrågningar som väntar på godkännande.", - "nonePending": "Det finns för närvarande inga väntande godkännanden. Du är redo att köra!", "state": { "approved": "Godkänd", "pendingApproval": "Väntar på godkännande", diff --git a/public/locales/sv/modules/notebook.json b/public/locales/sv/modules/notebook.json index 5367cce0e..2e8102dde 100644 --- a/public/locales/sv/modules/notebook.json +++ b/public/locales/sv/modules/notebook.json @@ -7,9 +7,53 @@ "showToolbar": { "label": "Visa verktygsfältet för att hjälpa dig skriva markdown" }, + "allowReadOnlyCheck": { + "label": "" + }, "content": { "label": "Innehållet i anteckningsboken" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/sv/modules/rss.json b/public/locales/sv/modules/rss.json index 60f4f2e95..50ba8da90 100644 --- a/public/locales/sv/modules/rss.json +++ b/public/locales/sv/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS-widget", - "description": "", + "description": "Med rss-widgeten kan du visa RSS-flöden på din instrumentpanel.", "settings": { "title": "Inställningar för RSS-widget", "rssFeedUrl": { diff --git a/public/locales/sv/modules/torrents-status.json b/public/locales/sv/modules/torrents-status.json index a6fb6fe77..1f92ebed1 100644 --- a/public/locales/sv/modules/torrents-status.json +++ b/public/locales/sv/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Visa slutförda torrents" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Visa inaktuella torrents" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Etikettlista", "description": "Om \"är vitlista\" är markerat kommer detta att fungera som en vitlista. Om detta inte är markerat är detta en svartlista. Kommer inte att göra något när den är tom" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Fel", - "lastUpdated": "Senast uppdaterad {{time}} ago" + "lastUpdated": "Senast uppdaterad {{time}} ago", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { diff --git a/public/locales/sv/password-requirements.json b/public/locales/sv/password-requirements.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/public/locales/sv/password-requirements.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/access.json b/public/locales/sv/settings/customization/access.json new file mode 100644 index 000000000..cc4d17f61 --- /dev/null +++ b/public/locales/sv/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "", + "description": "" + } +} \ No newline at end of file diff --git a/public/locales/sv/settings/customization/general.json b/public/locales/sv/settings/customization/general.json index 50058ab0f..e091f6b4c 100644 --- a/public/locales/sv/settings/customization/general.json +++ b/public/locales/sv/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Tillgänglighet", "description": "Konfigurera Homarr för funktionshindrade användare" + }, + "access": { + "name": "", + "description": "Konfigurera vem som har tillgång till din tavla" } } } diff --git a/public/locales/sv/settings/customization/page-appearance.json b/public/locales/sv/settings/customization/page-appearance.json index 58cdc56da..01dc814bc 100644 --- a/public/locales/sv/settings/customization/page-appearance.json +++ b/public/locales/sv/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Vidare kan du anpassa din instrumentpanel med CSS, vilket endast rekommenderas för erfarna användare", "placeholder": "Anpassad CSS tillämpas sist", "applying": "Tillämpar CSS..." - }, - "buttons": { - "submit": "Skicka" } -} +} \ No newline at end of file diff --git a/public/locales/sv/tools/docker.json b/public/locales/sv/tools/docker.json new file mode 100644 index 000000000..c224c68ec --- /dev/null +++ b/public/locales/sv/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "" + } + }, + "modals": { + "selectBoard": { + "title": "", + "text": "", + "form": { + "board": { + "label": "" + }, + "submit": "" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "", + "message": "" + }, + "error": { + "title": "", + "message": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/user/preferences.json b/public/locales/sv/user/preferences.json new file mode 100644 index 000000000..7fb244bf9 --- /dev/null +++ b/public/locales/sv/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Inställningar", + "pageTitle": "Dina Inställningar", + "boards": { + "defaultBoard": { + "label": "Förvald tavla" + } + }, + "accessibility": { + "title": "Tillgänglighet", + "disablePulse": { + "label": "Inaktivera ping-puls", + "description": "Som standard kommer ping-indikatorerna i Homarr att pulsera. Detta kan vara irriterande. Det här reglaget avaktiverar animeringen" + }, + "replaceIconsWithDots": { + "label": "Ersätt ping-prickar med ikoner", + "description": "För färgblinda användare kan ping-punkter vara oigenkännliga. Detta kommer att ersätta indikatorer med ikoner" + } + }, + "localization": { + "language": { + "label": "Språk" + }, + "firstDayOfWeek": { + "label": "Första veckodagen", + "options": { + "monday": "Måndag", + "saturday": "Lördag", + "sunday": "Söndag" + } + } + }, + "searchEngine": { + "title": "Sökmotor", + "custom": "Anpassad", + "newTab": { + "label": "Öppna sökresultat i en ny flik" + }, + "autoFocus": { + "label": "Fokusera sökfältet när sidan laddas.", + "description": "Detta kommer automatiskt att fokusera sökfältet när du navigerar till tavlans sidor. Det fungerar endast på stationära enheter." + }, + "template": { + "label": "URL för förfrågan", + "description": "Använd %s som platshållare för frågan" + } + } +} \ No newline at end of file diff --git a/public/locales/sv/zod.json b/public/locales/sv/zod.json new file mode 100644 index 000000000..e77cbf84a --- /dev/null +++ b/public/locales/sv/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Fältet är ogiltigt", + "required": "Detta fält är obligatoriskt", + "string": { + "startsWith": "Det här fältet måste börja med {{startsWith}}", + "endsWith": "Detta fält måste sluta med {{endsWith}}", + "includes": "Detta fält måste innehålla {{includes}}" + }, + "tooSmall": { + "string": "Detta fält måste vara minst {{minimum}} tecken långt", + "number": "Detta fält måste vara större än eller lika med {{minimum}}" + }, + "tooBig": { + "string": "Detta fält får vara högst {{maximum}} tecken långt", + "number": "Detta fält måste vara mindre än eller lika med {{maximum}}" + }, + "custom": { + "passwordMatch": "Lösenorden måste matcha" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/authentication/invite.json b/public/locales/tr/authentication/invite.json new file mode 100644 index 000000000..33e0718f7 --- /dev/null +++ b/public/locales/tr/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Hesap Oluştur", + "title": "Hesap Oluştur", + "text": "Lütfen kimlik bilgilerinizi aşağıda tanımlayın", + "form": { + "fields": { + "username": { + "label": "Kullanıcı adı" + }, + "password": { + "label": "Şifre" + }, + "passwordConfirmation": { + "label": "Şifreyi onayla" + } + }, + "buttons": { + "submit": "Hesap oluştur" + } + }, + "notifications": { + "loading": { + "title": "Hesap oluşturuluyor", + "text": "Lütfen bekleyin" + }, + "success": { + "title": "Hesap oluşturuldu", + "text": "Hesabınız başarıyla oluşturuldu" + }, + "error": { + "title": "Hata", + "text": "Bir hata oluştu, oluşan hata: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/authentication/login.json b/public/locales/tr/authentication/login.json index 74b7bef27..907a4be5a 100644 --- a/public/locales/tr/authentication/login.json +++ b/public/locales/tr/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Giriş", "title": "Tekrar hoşgeldin!", - "text": "Lütfen şifrenizi girin", + "text": "Lütfen kimlik bilgilerinizi girin", "form": { "fields": { + "username": { + "label": "Kullanıcı adı" + }, "password": { - "label": "Şifre", - "placeholder": "Şifreniz" + "label": "Şifre" } }, "buttons": { - "submit": "Kayıt ol" - } + "submit": "Giriş" + }, + "afterLoginRedirection": "Giriş yaptıktan sonra {{url}} adresine yönlendirileceksiniz" }, - "notifications": { - "checking": { - "title": "Şifrenizi kontrol edin", - "message": "Şifreniz kontrol ediliyor..." - }, - "correct": { - "title": "Giriş başarılı, yönlendiriliyor..." - }, - "wrong": { - "title": "Girdiğin şifre yanlış, lütfen tekrar dene." - } - } -} + "alert": "Kimlik bilgileriniz yanlış veya bu hesap mevcut değil. Lütfen tekrar deneyin." +} \ No newline at end of file diff --git a/public/locales/tr/boards/common.json b/public/locales/tr/boards/common.json new file mode 100644 index 000000000..e6da3b603 --- /dev/null +++ b/public/locales/tr/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Paneli özelleştir" + } +} \ No newline at end of file diff --git a/public/locales/tr/boards/customize.json b/public/locales/tr/boards/customize.json new file mode 100644 index 000000000..d78575f55 --- /dev/null +++ b/public/locales/tr/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "{{name}} Panelini Özelleştir", + "pageTitle": "{{name}} Paneli için özelleştirme", + "backToBoard": "Panele dön", + "settings": { + "appearance": { + "primaryColor": "Birincil renk", + "secondaryColor": "İkincil renk" + } + }, + "save": { + "button": "Değişiklikleri kaydet", + "note": "Dikkatli olun, kaydedilmemiş değişiklikleriniz var!" + }, + "notifications": { + "pending": { + "title": "Özelleştirmeyi Kaydet", + "message": "Özelleştirmeleriniz kaydedilirken lütfen bekleyin" + }, + "success": { + "title": "Özelleştirmeleriniz kaydedildi", + "message": "Özelleştirmeleriniz başarıyla kaydedildi" + }, + "error": { + "title": "Hata", + "message": "Değişiklikler kaydedilemiyor" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index fe6c0f3ab..b5a11df3b 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -1,11 +1,17 @@ { "save": "Kaydet", + "apply": "Uygula", + "insert": "Ekle", "about": "Hakkında", "cancel": "Vazgeç", "close": "Kapat", + "back": "Geri", "delete": "Sil", "ok": "Tamam", "edit": "Düzenle", + "next": "İleri", + "previous": "Önceki", + "confirm": "Onayla", "enabled": "Etkin", "disabled": "Pasif", "enableAll": "Tümünü etkinleştir", @@ -36,5 +42,14 @@ "medium": "Orta", "large": "Büyük" }, - "seeMore": "Daha fazla..." + "seeMore": "Daha fazla...", + "position": { + "left": "Sol", + "center": "Merkez", + "right": "Sağ" + }, + "attributes": { + "width": "Genişlik", + "height": "Yükseklik" + } } \ No newline at end of file diff --git a/public/locales/tr/layout/common.json b/public/locales/tr/layout/common.json index 4a16353ed..d3749e210 100644 --- a/public/locales/tr/layout/common.json +++ b/public/locales/tr/layout/common.json @@ -19,7 +19,7 @@ "moveUp": "Yukarı taşı", "moveDown": "Aşağı taşı", "addCategory": "Kategori ekle {{location}}", - "addAbove": "yukarıda", - "addBelow": "aşağıda" + "addAbove": "yukarı", + "addBelow": "aşağı" } } \ 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 722e5aad9..145059b18 100644 --- a/public/locales/tr/layout/element-selector/selector.json +++ b/public/locales/tr/layout/element-selector/selector.json @@ -1,6 +1,6 @@ { "modal": { - "title": "Yeni bir araç ekle", + "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.", @@ -10,7 +10,7 @@ }, "apps": "Uygulamalar", "app": { - "defaultName": "Sizin Uygulamanız" + "defaultName": "Uygulama Adınız" }, "widgets": "Widget'lar", "categories": "Kategoriler", diff --git a/public/locales/tr/layout/errors/access-denied.json b/public/locales/tr/layout/errors/access-denied.json new file mode 100644 index 000000000..c05cd4c56 --- /dev/null +++ b/public/locales/tr/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Erişim reddedildi", + "text": "Bu sayfaya erişmek için yeterli izniniz yok. Bunun yanlış olduğunu düşünüyorsanız, lütfen yöneticinizle iletişime geçin.", + "switchAccount": "Farklı bir hesaba geçin" +} \ No newline at end of file diff --git a/public/locales/tr/layout/header.json b/public/locales/tr/layout/header.json new file mode 100644 index 000000000..85ba192fa --- /dev/null +++ b/public/locales/tr/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Bu Homarr'ın deneysel bir özelliğidir. Lütfen herhangi bir sorunu GitHub veya Discordadresinden bildirin." + }, + "search": { + "label": "Ara", + "engines": { + "web": "Web'de \"{{query}}\" için arama yapın", + "youtube": "YouTube'da \"{{query}}\" için arama yapın", + "torrent": "Torrent'te \"{{query}}\" için arama yapın", + "movie": "{{app}} üzerinde \"{{query}}\" için arama yapın" + } + }, + "actions": { + "avatar": { + "switchTheme": "Temayı değiştir", + "preferences": "Kullanıcı Tercihleri", + "defaultBoard": "Varsayılan Panel", + "manage": "Yönet", + "logout": "{{username}} kullanıcısından çıkış yapın", + "login": "Giriş" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{search}} için en iyi {{count}} sonuç." + } + } +} \ No newline at end of file diff --git a/public/locales/tr/layout/manage.json b/public/locales/tr/layout/manage.json new file mode 100644 index 000000000..462bc89ad --- /dev/null +++ b/public/locales/tr/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Ana sayfa" + }, + "boards": { + "title": "Paneller" + }, + "users": { + "title": "Kullanıcılar", + "items": { + "manage": "Yönet", + "invites": "Davetler" + } + }, + "help": { + "title": "Yardım", + "items": { + "documentation": "Dokümantasyon", + "report": "Sorun / hata bildirin", + "discord": "Discord Topluluğu", + "contribute": "Katkıda bulunun" + } + }, + "tools": { + "title": "Araçlar", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Hakkında" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/layout/modals/about.json b/public/locales/tr/layout/modals/about.json index 209c8751c..facf831f8 100644 --- a/public/locales/tr/layout/modals/about.json +++ b/public/locales/tr/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr, tüm uygulamalarınızı ve hizmetlerinizi parmaklarınızın ucuna getiren şık, modern bir kontrol panelidir. Homarr ile her şeye tek bir yerden erişebilir ve kontrol edebilirsiniz. Homarr eklediğiniz uygulamalarla bütünleşerek size değerli bilgiler sunar ve tam kontrol sağlar. Kurulum çok kolaydır ve Homarr çok çeşitli kurulum yöntemlerini destekler.", - "contact": "Sorun mu yaşıyorsunuz veya sorularınız mı var? Bizimle iletişime geçin!", "addToDashboard": "Panele Ekle", "tip": "Mod, değiştirici anahtarınızı ifade eder, bu Ctrl ve Alt/Super/Windows tuşudur", "key": "Kısayol tuşu", "action": "Eylem", "keybinds": "Tuş atamaları", - "documentation": "Dokümantasyon", + "translators": "Çevirmenler ({{count}})", + "translatorsDescription": "Bu kişiler sayesinde Homarr {{languages}} dilde mevcut! Homarr'ın kendi dilinize çevrilmesine yardımcı olmak ister misiniz? Detaylar için burayı okuyun.", + "contributors": "Katkıda Bulunanlar ({{count}})", + "contributorsDescription": "Bu kişiler homarr'ın çalışmasını sağlayan kodları oluşturdular! Homarr'ı geliştirmeye yardım etmek ister misiniz? Detaylar için burayı okuyun", "actions": { "toggleTheme": "Aydınlık/karanlık mod", "focusSearchBar": "Arama çubuğuna odaklan", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Yapılandırma şeması sürümü", - "configurationsCount": "Mevcut konfigürasyonlar", "version": "Versiyon", "nodeEnvironment": "Node ortamı", "i18n": "Yüklenen I18n çeviri ad alanları", diff --git a/public/locales/tr/layout/modals/add-app.json b/public/locales/tr/layout/modals/add-app.json index 1d8583270..4350caf82 100644 --- a/public/locales/tr/layout/modals/add-app.json +++ b/public/locales/tr/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Dahili adres", - "description": "Uygulamanın dahili IP adresi." + "description": "Uygulamanın dahili IP adresi.", + "troubleshoot": { + "label": "Sorun mu yaşıyorsunuz?", + "header": "Yaygın olarak yapılan hataların ve sorun giderme yöntemlerinin bir listesi:", + "lines": { + "nothingAfterPort": "Her durumda olmasa da çoğu durumda porttan sonra herhangi bir yol girmemelisiniz. (pihole için '/admin' veya plex için '/web' gibi)", + "protocolCheck": "Her zaman URL'nin önünde http veya https olduğundan ve doğru adresi kullandığınızdan emin olun.", + "preferIP": "İletişim kurmaya çalıştığınız makine veya konteynerin doğrudan ip adresini kullanmanız önerilir.", + "enablePings": "Pingleri etkinleştirerek IP'nin doğru olup olmadığını kontrol edin. Paneli Özelleştir -> Düzen -> Pingleri etkinleştir. Uygulama kutucuklarınızda küçük kırmızı veya yeşil bir baloncuk görünecek ve üzerine geldiğinizde size yanıt kodunu verecektir (Çoğu durumda 200 kodlu yeşil bir baloncuk beklenir).", + "wget": "Homarr'ın diğer uygulamalarla iletişim kurabildiğinden emin olmak için, uygulamanın IP:portuna wget, curl yada ping kontrolü yaptığınızdan emin olun.", + "iframe": "Iframe'ler söz konusu olduğunda, bunlar her zaman Homarr ile aynı protokolü (http/s) kullanmalıdır.", + "clearCache": "Bazı bilgiler önbelleğe kayıtlı olduğundan, Homarr'ın genel seçeneklerinde önbelleği temizlemediğiniz sürece entegrasyon çalışmayabilir." + }, + "footer": "Daha fazla sorun giderme için {{discord}} üzerinden bize ulaşabilirsiniz." + } }, "externalAddress": { "label": "Harici adres", diff --git a/public/locales/tr/manage/boards.json b/public/locales/tr/manage/boards.json new file mode 100644 index 000000000..291251153 --- /dev/null +++ b/public/locales/tr/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Paneller", + "pageTitle": "Paneller", + "cards": { + "statistics": { + "apps": "Uygulamalar", + "widgets": "Widget'lar", + "categories": "Kategoriler" + }, + "buttons": { + "view": "Panelleri görüntüle" + }, + "menu": { + "setAsDefault": "Varsayılan panel olarak ayarlayın", + "delete": { + "label": "Kalıcı olarak sil", + "disabled": "Silme devre dışı, çünkü eski Homarr bileşenleri varsayılan yapılandırmanın silinmesine izin vermiyor. Silme işlemi gelecekte mümkün olacaktır." + } + }, + "badges": { + "fileSystem": "Dosya Sistemi", + "default": "Varsayılan" + } + }, + "buttons": { + "create": "Yeni panel oluştur" + }, + "modals": { + "delete": { + "title": "Paneli sil", + "text": "Bu paneli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve verileriniz kalıcı olarak kaybolur." + }, + "create": { + "title": "Panel oluştur", + "text": "Bir pano oluşturulduktan sonra isim değiştirilemez.", + "form": { + "name": { + "label": "İsim" + }, + "submit": "Oluştur" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/index.json b/public/locales/tr/manage/index.json new file mode 100644 index 000000000..a3046f2f9 --- /dev/null +++ b/public/locales/tr/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Yönet", + "hero": { + "title": "Tekrar hoş geldin {{username}}!", + "fallbackUsername": "Anonim", + "subtitle": "Uygulama Merkezinize Hoş Geldiniz. Organize edin, Optimize edin ve Fethedin!" + }, + "quickActions": { + "title": "Hızlı eylemler", + "boards": { + "title": "Panelleriniz", + "subtitle": "Panellerinizi oluşturun ve yönetin" + }, + "inviteUsers": { + "title": "Yeni kullanıcı davet et", + "subtitle": "Kayıt için davetiye oluşturun ve gönderin" + }, + "manageUsers": { + "title": "Kullanıcıları yönet", + "subtitle": "Kullanıcılarınızı silin ve yönetin" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/users.json b/public/locales/tr/manage/users.json new file mode 100644 index 000000000..f91a0ffb9 --- /dev/null +++ b/public/locales/tr/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Kullanıcı" + } + }, + "tooltips": { + "deleteUser": "Kullanıcıyı Sil", + "demoteAdmin": "Yöeticilikten çıkar", + "promoteToAdmin": "Yöneticiliğe yükselt" + }, + "modals": { + "delete": { + "title": "{{name}} kullanıcısını sil", + "text": "{{name}} kullanıcısını silmek istediğinizden emin misiniz? Bu, bu hesapla ilişkili verileri silecek, ancak bu kullanıcı tarafından oluşturulan herhangi bir panel silinmeyecektir." + }, + "change-role": { + "promote": { + "title": "{{name}} kullanıcısını yöneticiliğe yükselt", + "text": "{{name}} kullanıcısını yönetici konumuna yükseltmek istediğinizden emin misiniz? Bu, kullanıcıya Homarr örneğinizdeki tüm kaynaklara erişim sağlayacaktır." + }, + "demote": { + "title": "{{name}} kullanıcısının yetkilerini kullanıcı grubuna al", + "text": "{{name}} kullanıcısını kullanıcı grubuna düşürmek istediğinizden emin misiniz? Bu, kullanıcının Homarr bulut sunucunuzdaki tüm kaynaklara erişimini kaldıracaktır." + }, + "confirm": "Onayla" + } + }, + "searchDoesntMatch": "Aramanız hiçbir girişle eşleşmiyor. Lütfen filtrenizi ayarlayın." +} \ No newline at end of file diff --git a/public/locales/tr/manage/users/create.json b/public/locales/tr/manage/users/create.json new file mode 100644 index 000000000..47bf27d36 --- /dev/null +++ b/public/locales/tr/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Kullanıcı ekle", + "steps": { + "account": { + "title": "İlk adım", + "text": "Hesap oluştur", + "username": { + "label": "Kullanıcı adı" + }, + "email": { + "label": "E-Posta" + } + }, + "security": { + "title": "İkinci adım", + "text": "Şifre", + "password": { + "label": "Şifre" + } + }, + "finish": { + "title": "Onayla", + "text": "Veritabanına Kaydet", + "card": { + "title": "Girdilerinizi gözden geçirin", + "text": "Verilerinizi veritabanına gönderdikten sonra kullanıcı giriş yapabilecektir. Bu kullanıcıyı veritabanına kaydedip giriş işlemini aktif hale getirmek istediğinizden emin misiniz?" + }, + "table": { + "header": { + "property": "Sahiplik", + "value": "Değer", + "username": "Kullanıcı adı", + "email": "E-Posta", + "password": "Şifre" + }, + "notSet": "Ayarlanmamış", + "valid": "Geçerli" + }, + "failed": "Kullanıcı oluşturma başarısız oldu: {{error}}" + }, + "completed": { + "alert": { + "title": "Kullanıcı oluşturuldu", + "text": "Kullanıcı veritabanında oluşturuldu. Artık oturum açabilirler." + } + } + }, + "buttons": { + "generateRandomPassword": "Rastgele oluştur", + "createAnother": "Başka bir tane oluştur" + } +} \ No newline at end of file diff --git a/public/locales/tr/manage/users/invites.json b/public/locales/tr/manage/users/invites.json new file mode 100644 index 000000000..92d2df37c --- /dev/null +++ b/public/locales/tr/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Kullanıcı davetleri", + "pageTitle": "Kullanıcı davetlerini yönet", + "description": "Davetleri kullanarak kullanıcıları Homarr örneğinize davet edebilirsiniz. Davetiye yalnızca belirli bir süre için geçerli olacak ve bir kez kullanılabilir. Son kullanma tarihi, oluşturulduktan sonra 5 dakika ile 12 ay arasında olmalıdır.", + "button": { + "createInvite": "Davetiye oluştur", + "deleteInvite": "Daveti sil" + }, + "table": { + "header": { + "id": "Kimlik", + "creator": "Oluşturan", + "expires": "Bitiş süresi", + "action": "Eylemler" + }, + "data": { + "expiresAt": "süresi doldu {{at}}", + "expiresIn": "{{in}} içerisinde" + } + }, + "modals": { + "create": { + "title": "Davet oluştur", + "description": "Süre sona erdikten sonra davet artık geçerli olmayacak ve daveti alan kişi bir hesap oluşturamayacaktır.", + "form": { + "expires": "Son geçerlilik tarihi", + "submit": "Oluştur" + } + }, + "copy": { + "title": "Daveti kopyala", + "description": "Davetiyeniz oluşturuldu. Bu modal kapandıktan sonra, artık bu bağlantıyı kopyalayamayacaksınız. Söz konusu kişiyi artık davet etmek istemiyorsanız, bu daveti istediğiniz zaman silebilirsiniz.", + "invitationLink": "Davet bağlantısı", + "details": { + "id": "Kimlik", + "token": "Erişim Anahtarı" + }, + "button": { + "close": "Kopyala & Kapat" + } + }, + "delete": { + "title": "Daveti sil", + "description": "Bu daveti silmek istediğinizden emin misiniz? Bu bağlantıya sahip kullanıcılar artık bu bağlantıyı kullanarak hesap oluşturamayacaktır." + } + }, + "noInvites": "Henüz davetiye bağlantıları yok." +} \ No newline at end of file diff --git a/public/locales/tr/modules/calendar.json b/public/locales/tr/modules/calendar.json index ab92cbbd2..6dd7c0081 100644 --- a/public/locales/tr/modules/calendar.json +++ b/public/locales/tr/modules/calendar.json @@ -4,12 +4,6 @@ "description": "Desteklenen entegrasyonlarda, yaklaşan içeriklerin takvimlerini görüntüler.", "settings": { "title": "Takvim widget'ı için ayarlar", - "useSonarrv4": { - "label": "Sonarr v4 API'sini kullan" - }, - "sundayStart": { - "label": "Haftaya Pazar günü başlayın" - }, "radarrReleaseType": { "label": "Radarr yayın türü", "data": { diff --git a/public/locales/tr/modules/dns-hole-controls.json b/public/locales/tr/modules/dns-hole-controls.json index 3aa83c7bf..b64a6d161 100644 --- a/public/locales/tr/modules/dns-hole-controls.json +++ b/public/locales/tr/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { - "name": "DNS hole kontrolleri", - "description": "Kontrol panelinizden PiHole veya AdGuard'ı kontrol edin" + "name": "DNS çözümleyici kontrolleri", + "description": "Kontrol panelinizden PiHole veya AdGuard'ı kontrol edin", + "settings": { + "title": "DNS çözümleyici kontrol ayarları", + "showToggleAllButtons": { + "label": "'Tümünü Etkinleştir/Devre Dışı Bırak' Butonlarını Göster" + } + }, + "errors": { + "general": { + "title": "DNS çözümleyici bulunamadı", + "text": "DNS Çözümleyici(leri)nize bağlanırken bir sorun oluştu. Lütfen yapılandırmanızı/entegrasyon(ları)nızı kontrol edin." + } + } } } \ No newline at end of file diff --git a/public/locales/tr/modules/dns-hole-summary.json b/public/locales/tr/modules/dns-hole-summary.json index fb346bc6d..3645abefb 100644 --- a/public/locales/tr/modules/dns-hole-summary.json +++ b/public/locales/tr/modules/dns-hole-summary.json @@ -1,9 +1,9 @@ { "descriptor": { - "name": "DNS hole özeti", + "name": "DNS çözümleyici özeti", "description": "PiHole veya AdGuard'dan önemli verileri görüntüler", "settings": { - "title": "DNS Hole özeti için ayarlar", + "title": "DNS Çözümleyici özeti için ayarlar", "usePiHoleColors": { "label": "PiHole'daki renkleri kullanın" }, @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Reklam Listelerindeki Alan Adları", "queriesToday": "Bugünkü Sorgular", - "queriesBlockedTodayPercentage": "Bugün Engellenenler", - "queriesBlockedToday": "Bugün Engellenenler" + "queriesBlockedTodayPercentage": "Bugün engellenenler", + "queriesBlockedToday": "Bugün engellenenler" } } } diff --git a/public/locales/tr/modules/media-requests-list.json b/public/locales/tr/modules/media-requests-list.json index 57aba8760..1fcd0cd8e 100644 --- a/public/locales/tr/modules/media-requests-list.json +++ b/public/locales/tr/modules/media-requests-list.json @@ -13,8 +13,6 @@ } }, "noRequests": "Hiç talep bulunamadı. Lütfen uygulamalarınızı doğru yapılandırdığınızdan emin olun.", - "pending": "Onay bekleyen {{countPendingApproval}} talepleri bulunmaktadır.", - "nonePending": "Şu anda onay bekleyen istek bulunmamaktadır. Herşey yolunda!", "state": { "approved": "Onaylandı", "pendingApproval": "Onay bekliyor", diff --git a/public/locales/tr/modules/notebook.json b/public/locales/tr/modules/notebook.json index a92100112..11653414b 100644 --- a/public/locales/tr/modules/notebook.json +++ b/public/locales/tr/modules/notebook.json @@ -5,11 +5,55 @@ "settings": { "title": "Not defteri widget'ı için ayarlar", "showToolbar": { - "label": "Markdown yazmanıza yardımcı olacak araç çubuğunu gösterin" + "label": "Markdown'da yazarken size yardımcı olacak araç çubuğunu aktif edin" + }, + "allowReadOnlyCheck": { + "label": "Salt okunur modda onay kutusu işaretlemeye izin ver" }, "content": { "label": "Not defterinin içeriği" } } + }, + "card": { + "controls": { + "bold": "Kalın", + "italic": "İtalik", + "strikethrough": "Üstü Çizgili", + "underline": "Alt Çizgili", + "colorText": "Renkli metin", + "colorHighlight": "Renkli vurgulu metin", + "code": "Kod", + "clear": "Biçimlendirmeyi temizle", + "heading": "Başlık {{level}}", + "align": "Metin hizalama: {{position}}", + "blockquote": "Blok alıntı", + "horizontalLine": "Yatay çizgi", + "bulletList": "Maddeli liste", + "orderedList": "Sıralı liste", + "checkList": "Kontrol listesi", + "increaseIndent": "Girintiyi Artır", + "decreaseIndent": "Girintiyi Azalt", + "link": "Bağlantı", + "unlink": "Bağlantıyı kaldır", + "image": "Resim Göm", + "addTable": "Tablo ekle", + "deleteTable": "Tablo Sil", + "colorCell": "Renk Hücresi", + "mergeCell": "Hücre birleştirmeyi aç / kapat", + "addColumnLeft": "Öncesine sütun ekle", + "addColumnRight": "Sonrasına sütun ekle", + "deleteColumn": "Sütunu sil", + "addRowTop": "Öncesine satır ekle", + "addRowBelow": "Sonrasına satır ekle", + "deleteRow": "Satırı sil" + }, + "modals": { + "clearColor": "Rengi temizle", + "source": "Kaynak", + "widthPlaceholder": "% veya piksel cinsinden değer", + "columns": "Sütunlar", + "rows": "Satırlar" + } } } \ No newline at end of file diff --git a/public/locales/tr/modules/rss.json b/public/locales/tr/modules/rss.json index 6e7faa34b..f13930abe 100644 --- a/public/locales/tr/modules/rss.json +++ b/public/locales/tr/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS Widget'ı", - "description": "", + "description": "Rss widget'ı, RSS beslemelerini kontrol panelinizde görüntülemenizi sağlar.", "settings": { "title": "RSS widget'ı için ayarlar", "rssFeedUrl": { diff --git a/public/locales/tr/modules/torrents-status.json b/public/locales/tr/modules/torrents-status.json index 12e7495cc..0c44adc94 100644 --- a/public/locales/tr/modules/torrents-status.json +++ b/public/locales/tr/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Tamamlanan torrentleri görüntüle" }, + "displayActiveTorrents": { + "label": "Aktif torrentleri görüntüle" + }, + "speedLimitOfActiveTorrents": { + "label": "Bir torrenti aktif olarak kabul etmek için yükleme hızı (kB/s)" + }, "displayStaleTorrents": { "label": "Durdurulmuş torrentleri görüntüle" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Kategpori Listesi", "description": "Beyaz liste' aktif edildiğinde, listeye eklediğiniz torrent kategorileri dışında kalan torrentler filtrelenerek görüntülenmez. İşaretlenmez ise listede olan kategori filtrelenerek görüntülnmez. Liste boş olduğunda filtre uygulanmaz. (Listeye ekleyeceğiniz kategoriler torrent istemcinizden ayarlanmalıdır.)" + }, + "displayRatioWithFilter": { + "label": "Filtrelenmiş torrent listesi ratio oranını görüntüle", + "info": "Devre dışı bırakılırsa, yalnızca genel ratio görüntülenir. Genel ratio, ayarlanmışsa etiketleri kullanmaya devam edecektir" } } }, "card": { "footer": { "error": "Hata", - "lastUpdated": "Son Güncelleme {{time}}" + "lastUpdated": "Son Güncelleme {{time}} önce", + "ratioGlobal": "Genel Ratio", + "ratioWithFilter": "Filtrelenen ratio" }, "table": { "header": { @@ -73,7 +85,7 @@ "progress": "İlerleme - %{{progress}}", "totalSelectedSize": "Toplam - {{totalSize}}", "state": "Durum - {{state}}", - "ratio": "Oran -", + "ratio": "Ratio -", "completed": "Tamamlanan" } } diff --git a/public/locales/tr/modules/weather.json b/public/locales/tr/modules/weather.json index 7b98cd679..d2028d874 100644 --- a/public/locales/tr/modules/weather.json +++ b/public/locales/tr/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "Bilinmeyen" } }, - "error": "Bir hata oluştu" + "error": "Hata oluştu" } diff --git a/public/locales/tr/password-requirements.json b/public/locales/tr/password-requirements.json new file mode 100644 index 000000000..000881dc3 --- /dev/null +++ b/public/locales/tr/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Numara içerir", + "lowercase": "Küçük harf içerir", + "uppercase": "Büyük harf içerir", + "special": "Özel karakterleri dahil et", + "length": "En az {{count}} karakter içerir" +} \ No newline at end of file diff --git a/public/locales/tr/settings/common.json b/public/locales/tr/settings/common.json index b88da117d..2c3099114 100644 --- a/public/locales/tr/settings/common.json +++ b/public/locales/tr/settings/common.json @@ -9,7 +9,7 @@ "configTip": "Yapılandırma dosyanı sayfaya sürükleyip bırakarak yükleyebilirsin!" }, "credits": { - "madeWithLove": "Tarafından ❤️ ile yapılmıştır @", + "madeWithLove": " @ tarafından ❤️ ile yapılmıştır", "thirdPartyContent": "Üçüncü şahıs içeriğine bakın", "thirdPartyContentTable": { "dependencyName": "Bağımlılık", diff --git a/public/locales/tr/settings/customization/access.json b/public/locales/tr/settings/customization/access.json new file mode 100644 index 000000000..ce19e4d01 --- /dev/null +++ b/public/locales/tr/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Anonimliğe izin ver", + "description": "Oturum açmamış kullanıcıların panonuzu görüntülemesine izin verin" + } +} \ No newline at end of file diff --git a/public/locales/tr/settings/customization/general.json b/public/locales/tr/settings/customization/general.json index a621fa84a..cf0e39579 100644 --- a/public/locales/tr/settings/customization/general.json +++ b/public/locales/tr/settings/customization/general.json @@ -3,7 +3,7 @@ "accordeon": { "layout": { "name": "Düzen", - "description": "Üstbilgi ve gösterge paneli kutucuklarınızdaki öğeleri etkinleştirin ve devre dışı bırakın" + "description": "Üstbilgi ve panelinizde bulunan öğeleri etkinleştirin ve devre dışı bırakın" }, "gridstack": { "name": "Izgara Dizilimi", @@ -20,6 +20,10 @@ "accessibility": { "name": "Erişilebilirlik", "description": "Homarr'ı engelli kullanıcılar için yapılandırma" + }, + "access": { + "name": "Erişim", + "description": "Panelinize kimlerin erişebileceğini yapılandırın" } } } diff --git a/public/locales/tr/settings/customization/gridstack.json b/public/locales/tr/settings/customization/gridstack.json index 15bc9ae30..0a14235fd 100644 --- a/public/locales/tr/settings/customization/gridstack.json +++ b/public/locales/tr/settings/customization/gridstack.json @@ -1,6 +1,6 @@ { "columnsCount": { - "labelPreset": "{{size}} boyutunda sütunlar", + "labelPreset": "{{size}} boyutta sütunlar", "descriptionPreset": "Ekran genişliği {{pixels}} pikselden az olduğunda sütun sayısı", "descriptionExceedsPreset": "Ekran genişliği {{pixels}} pikselden az olduğunda sütun sayısı" }, diff --git a/public/locales/tr/settings/customization/page-appearance.json b/public/locales/tr/settings/customization/page-appearance.json index f256e1750..a2b32588a 100644 --- a/public/locales/tr/settings/customization/page-appearance.json +++ b/public/locales/tr/settings/customization/page-appearance.json @@ -13,7 +13,7 @@ }, "favicon": { "label": "Favicon", - "description": "Tarayıcı sekmenizde görüntülenen icon" + "description": "Tarayıcı sekmenizde görüntülenen ikon" }, "background": { "label": "Arkaplan" @@ -23,8 +23,5 @@ "description": "Ayrıca, yalnızca deneyimli kullanıcılar için önerilen CSS kullanarak kontrol panelinizi özelleştirin", "placeholder": "Özel CSS en son uygulanacaktır", "applying": "CSS uygulanıyor..." - }, - "buttons": { - "submit": "Gönder" } -} +} \ No newline at end of file diff --git a/public/locales/tr/settings/general/theme-selector.json b/public/locales/tr/settings/general/theme-selector.json index 6a3dde83a..2681d374c 100644 --- a/public/locales/tr/settings/general/theme-selector.json +++ b/public/locales/tr/settings/general/theme-selector.json @@ -1,3 +1,3 @@ { - "label": "Modu {{theme}} ile değiştir" + "label": "Görünümü {{theme}} ile değiştir" } \ No newline at end of file diff --git a/public/locales/tr/tools/docker.json b/public/locales/tr/tools/docker.json new file mode 100644 index 000000000..7c0e3e97d --- /dev/null +++ b/public/locales/tr/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Homarr örneğinizde Docker yapılandırılmış değil veya konteynırları getirmede başarısız oldu. Lütfen entegrasyonun nasıl kurulacağına ilişkin belgeleri kontrol edin." + } + }, + "modals": { + "selectBoard": { + "title": "Bir panel seç", + "text": "Seçilen Docker konteynır uygulamalarını eklemek istediğiniz paneli seçin.", + "form": { + "board": { + "label": "Panel" + }, + "submit": "Uygulama Ekle" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Uygulamalar panele eklendi", + "message": "Seçilen Docker konteynırlarına ilişkin uygulamalar panelinize eklendi." + }, + "error": { + "title": "Uygulamalar panele eklenemedi", + "message": "Seçilen Docker konteynırlarına ilişkin uygulamalar panelinize eklenemedi." + } + } + } +} \ No newline at end of file diff --git a/public/locales/tr/user/preferences.json b/public/locales/tr/user/preferences.json new file mode 100644 index 000000000..a1c21a69e --- /dev/null +++ b/public/locales/tr/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Tercihler", + "pageTitle": "Tercihleriniz", + "boards": { + "defaultBoard": { + "label": "Varsayılan panel" + } + }, + "accessibility": { + "title": "Erişilebilirlik", + "disablePulse": { + "label": "Ping animasyonunu devre dışı bırak", + "description": "Varsayılan olarak, Homarr'daki ping animasyonu aktiftir. Bu rahatsız edici olabilir. Bu animasyonu devre dışı bırakacaktır" + }, + "replaceIconsWithDots": { + "label": "Ping noktalarını ikon ile değiştirin", + "description": "Renk körü (Daltonizm) kullanıcılar için ping noktaları tanınmayabilir. Bu, panelde ki renkli noktaları simgeler ile değiştirecektir" + } + }, + "localization": { + "language": { + "label": "Dil" + }, + "firstDayOfWeek": { + "label": "Haftanın ilk günü", + "options": { + "monday": "Pazartesi", + "saturday": "Cumartesi", + "sunday": "Pazar" + } + } + }, + "searchEngine": { + "title": "Arama motoru", + "custom": "Kişisel", + "newTab": { + "label": "Arama sonuçlarını yeni sekmede aç" + }, + "autoFocus": { + "label": "Sayfa yüklendiğinde arama çubuğuna odaklanın.", + "description": "Sayfa yüklendiğindei imleç arama çubuğunu otomatik olarak odaklayacaktır. Yalnızca masaüstü cihazlarda çalışacaktır." + }, + "template": { + "label": "Sorgu URL’si", + "description": "Sorgu için yer tutucu olarak %s kullanın" + } + } +} \ No newline at end of file diff --git a/public/locales/tr/zod.json b/public/locales/tr/zod.json new file mode 100644 index 000000000..fc3becbda --- /dev/null +++ b/public/locales/tr/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Bu alan geçersiz", + "required": "Bu alan gereklidir", + "string": { + "startsWith": "Bu alan {{startsWith}} ile başlamalıdır", + "endsWith": "Bu alan {{endsWith}} ile bitmelidir", + "includes": "Bu alan {{includes}} adresini içermelidir" + }, + "tooSmall": { + "string": "Bu alan en az {{minimum}} karakter uzunluğunda olmalıdır", + "number": "Bu alan {{minimum}} adresinden uzun veya eşit olmalıdır" + }, + "tooBig": { + "string": "Bu alan en fazla {{maximum}} karakter uzunluğunda olmalıdır", + "number": "Bu alan {{maximum}} adresinden kısa veya eşit olmalıdır" + }, + "custom": { + "passwordMatch": "Şifreler aynı olmalıdır" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/authentication/invite.json b/public/locales/tw/authentication/invite.json new file mode 100644 index 000000000..f7655b378 --- /dev/null +++ b/public/locales/tw/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "創建帳號", + "title": "創建帳號", + "text": "請在下方定義您的憑證", + "form": { + "fields": { + "username": { + "label": "帳號" + }, + "password": { + "label": "密碼" + }, + "passwordConfirmation": { + "label": "確認密碼" + } + }, + "buttons": { + "submit": "創建帳號" + } + }, + "notifications": { + "loading": { + "title": "創建帳號中...", + "text": "請稍後" + }, + "success": { + "title": "帳號已創建", + "text": "您的帳號已創建成功" + }, + "error": { + "title": "錯誤", + "text": "出錯,出現以下錯誤:{{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/authentication/login.json b/public/locales/tw/authentication/login.json new file mode 100644 index 000000000..49da5b2fa --- /dev/null +++ b/public/locales/tw/authentication/login.json @@ -0,0 +1,20 @@ +{ + "metaTitle": "登入", + "title": "歡迎回來!", + "text": "請確認您的憑證", + "form": { + "fields": { + "username": { + "label": "使用者" + }, + "password": { + "label": "密碼" + } + }, + "buttons": { + "submit": "登入" + }, + "afterLoginRedirection": "登入後,您將進入 {{url}}" + }, + "alert": "您的憑證不正確或此帳號不存在,請重試" +} \ No newline at end of file diff --git a/public/locales/tw/boards/common.json b/public/locales/tw/boards/common.json new file mode 100644 index 000000000..83b6f4f7d --- /dev/null +++ b/public/locales/tw/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "自定義面板" + } +} \ No newline at end of file diff --git a/public/locales/tw/boards/customize.json b/public/locales/tw/boards/customize.json new file mode 100644 index 000000000..f2f02c2f4 --- /dev/null +++ b/public/locales/tw/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "自定義 {{name}} 面板", + "pageTitle": "{{name}} 面板自定義中", + "backToBoard": "返回面板", + "settings": { + "appearance": { + "primaryColor": "主體顏色", + "secondaryColor": "輔助顏色" + } + }, + "save": { + "button": "儲存設定", + "note": "注意,您有未儲存的設定!" + }, + "notifications": { + "pending": { + "title": "自定義儲存中", + "message": "請稍後,我們正在儲存您的自定義" + }, + "success": { + "title": "已儲存自定義", + "message": "您的自定義已儲存成功" + }, + "error": { + "title": "錯誤", + "message": "無法儲存設定" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/common.json b/public/locales/tw/common.json new file mode 100644 index 000000000..c9c722329 --- /dev/null +++ b/public/locales/tw/common.json @@ -0,0 +1,55 @@ +{ + "save": "儲存", + "apply": "應用", + "insert": "插入", + "about": "關於", + "cancel": "取消", + "close": "關閉", + "back": "返回", + "delete": "刪除", + "ok": "確定", + "edit": "編輯", + "next": "下一步", + "previous": "上一步", + "confirm": "確認", + "enabled": "已啟用", + "disabled": "已禁用", + "enableAll": "全部啟用", + "disableAll": "全部禁用", + "version": "版本", + "changePosition": "換位", + "remove": "刪除", + "removeConfirm": "您確定刪除 {{item}} ?", + "createItem": "創建 {{item}}", + "sections": { + "settings": "設定", + "dangerZone": "危險" + }, + "secrets": { + "apiKey": "API Key", + "username": "使用者", + "password": "密碼" + }, + "tip": "提示:", + "time": { + "seconds": "秒", + "minutes": "分鐘", + "hours": "小時" + }, + "loading": "正在載入...", + "breakPoints": { + "small": "小", + "medium": "中", + "large": "大" + }, + "seeMore": "查看更多...", + "position": { + "left": "左方", + "center": "置中", + "right": "右方" + }, + "attributes": { + "width": "寬度", + "height": "高度" + } +} \ No newline at end of file diff --git a/public/locales/tw/layout/common.json b/public/locales/tw/layout/common.json new file mode 100644 index 000000000..d976a9bce --- /dev/null +++ b/public/locales/tw/layout/common.json @@ -0,0 +1,25 @@ +{ + "modals": { + "blockedPopups": { + "title": "禁止彈出視窗", + "text": "您的瀏覽器禁止了 Homarr 訪問其 API,最常見的原因是廣告攔截/阻止器或權限被拒絕。Homarr 無法的請求權限", + "list": { + "browserPermission": "點擊連結旁的圖標並檢查權限,允許彈出視窗", + "adBlockers": "禁止瀏覽器中的廣告攔截/阻止器和安全工具", + "otherBrowser": "嘗試使用其他的瀏覽器" + } + } + }, + "actions": { + "category": { + "openAllInNewTab": "在新分頁中開啟全部內容" + } + }, + "menu": { + "moveUp": "上移", + "moveDown": "下移", + "addCategory": "{{location}} 新增類別", + "addAbove": "在上方", + "addBelow": "在下方" + } +} \ 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 new file mode 100644 index 000000000..53b55b7b0 --- /dev/null +++ b/public/locales/tw/layout/element-selector/selector.json @@ -0,0 +1,25 @@ +{ + "modal": { + "title": "新增磁貼", + "text": "磁貼是 Homarr 主要組成元素,磁貼被用來顯示您的應用程式和其他訊息,您可以根據需要增加任意數量的磁貼" + }, + "widgetDescription": "組件與您的應用交互,為您提供更多應用控制,且在使用前通常需要額外的配置", + "goBack": "上一步", + "actionIcon": { + "tooltip": "新增磁貼" + }, + "apps": "應用", + "app": { + "defaultName": "您的應用" + }, + "widgets": "組件", + "categories": "類別", + "category": { + "newName": "新類別名稱", + "defaultName": "新增類別", + "created": { + "title": "類別已新增", + "message": "已新增類別\"{{name}}\"" + } + } +} diff --git a/public/locales/tw/layout/errors/access-denied.json b/public/locales/tw/layout/errors/access-denied.json new file mode 100644 index 000000000..ba0910005 --- /dev/null +++ b/public/locales/tw/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "拒絕訪問", + "text": "您沒有足夠的權限進入此頁面,請聯絡您的系統管理員。", + "switchAccount": "切換其他帳號" +} \ No newline at end of file diff --git a/public/locales/tw/layout/errors/not-found.json b/public/locales/tw/layout/errors/not-found.json new file mode 100644 index 000000000..f60113670 --- /dev/null +++ b/public/locales/tw/layout/errors/not-found.json @@ -0,0 +1,5 @@ +{ + "title": "無法找到頁面", + "text": "找不到該頁面,該頁面的 URL 可能已失效,URL 無效或訪問權限不足", + "button": "回到首頁" +} \ No newline at end of file diff --git a/public/locales/tw/layout/header.json b/public/locales/tw/layout/header.json new file mode 100644 index 000000000..076c98a7d --- /dev/null +++ b/public/locales/tw/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "這是 Homarr 的一項實現性功能。請在 GithubDiscord上回報任何問題" + }, + "search": { + "label": "搜尋", + "engines": { + "web": "在搜尋引擎中搜尋 {{query}}", + "youtube": "在 Youtube 中搜尋 {{query}}", + "torrent": "搜尋 {{query}} Torrents", + "movie": "在 {{app}} 中搜尋 {{query}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "切換主題", + "preferences": "使用者設定", + "defaultBoard": "預設儀錶板", + "manage": "管理", + "logout": "登出 {{username}}", + "login": "登入" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "上方 {{count}} 結果為 {{search}}" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/layout/header/actions/toggle-edit-mode.json b/public/locales/tw/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..ed77b8118 --- /dev/null +++ b/public/locales/tw/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,12 @@ +{ + "description": "在編輯模式中,您可以調整磁貼和設定應用程式,在退出編輯模式之前不會儲存任何設定", + "button": { + "disabled": "進入編輯模式", + "enabled": "退出並儲存" + }, + "popover": { + "title": "啟用 <1>{{size}} 尺寸編輯模式", + "text": "您現在可以調整或設定您的應用了,在退出編輯模式之前不會儲存設定" + }, + "unloadEvent": "退出編輯模式並儲存" +} diff --git a/public/locales/tw/layout/manage.json b/public/locales/tw/layout/manage.json new file mode 100644 index 000000000..d7b5965c1 --- /dev/null +++ b/public/locales/tw/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "首頁" + }, + "boards": { + "title": "面板" + }, + "users": { + "title": "使用者", + "items": { + "manage": "管理", + "invites": "邀請" + } + }, + "help": { + "title": "幫助", + "items": { + "documentation": "文件", + "report": "回報問題", + "discord": "Discord 社群", + "contribute": "貢獻" + } + }, + "tools": { + "title": "工具", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "關於" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/layout/mobile/drawer.json b/public/locales/tw/layout/mobile/drawer.json new file mode 100644 index 000000000..c22b064f8 --- /dev/null +++ b/public/locales/tw/layout/mobile/drawer.json @@ -0,0 +1,3 @@ +{ + "title": "{{position}} 側邊欄" +} diff --git a/public/locales/tw/layout/modals/about.json b/public/locales/tw/layout/modals/about.json new file mode 100644 index 000000000..10bb94b0f --- /dev/null +++ b/public/locales/tw/layout/modals/about.json @@ -0,0 +1,30 @@ +{ + "description": "Homarr是一個 流暢現代化的面板,能夠將您所有的應用與服務彙總一起。有了 Homarr,您可以在一個頁面中訪問和控制一切。Homarr 與您新增的應用程式互動流暢,為您提供最全面的訊息並由您控制。安裝 Homarr 輕鬆簡單,並且 Homarr 之於多種部屬方式", + "addToDashboard": "新增至面板", + "tip": "Mod 是指您的自定義快捷鍵,它可以是 Ctrl、Super/Windows 按鍵", + "key": "快捷鍵", + "action": "動作", + "keybinds": "按鍵綁定", + "translators": "翻譯 ({{count}})", + "translatorsDescription": "感謝這些人,Homarr 現已支援 {{languages}} 種語言!想要幫助 Homarr 翻譯您使用的語言嗎?請閱讀此處", + "contributors": "貢獻者 ({{count}})", + "contributorsDescription": "這些人建構了 Homarr 的代碼!想幫助 Homarr 嗎?請閱讀此處了解如何操作", + "actions": { + "toggleTheme": "切換 白色/黑色 主題模式", + "focusSearchBar": "前往搜尋欄", + "openDocker": "開啟 Docker 組件", + "toggleEdit": "切換編輯模式" + }, + "metrics": { + "configurationSchemaVersion": "設定模式版本", + "version": "版本", + "nodeEnvironment": "節點環境", + "i18n": "I18n 翻譯空間已加載", + "locales": "I18n 本地語言已設定", + "experimental_disableEditMode": "實驗性:退出編輯模式" + }, + "version": { + "new": "新: {{newVersion}}", + "dropdown": "版本 {{newVersion}} 可用!目前版本: {{currentVersion}}" + } +} \ No newline at end of file diff --git a/public/locales/tw/layout/modals/add-app.json b/public/locales/tw/layout/modals/add-app.json new file mode 100644 index 000000000..9fd81b80c --- /dev/null +++ b/public/locales/tw/layout/modals/add-app.json @@ -0,0 +1,128 @@ +{ + "tabs": { + "general": "一般", + "behaviour": "行為", + "network": "網路", + "appearance": "外觀", + "integration": "集成" + }, + "general": { + "appname": { + "label": "應用程式名稱", + "description": "用於面板上顯示" + }, + "internalAddress": { + "label": "內部網址", + "description": "應用的內部IP網址", + "troubleshoot": { + "label": "遇到問題嗎?", + "header": "下方是常見的問題和解決辦法:", + "lines": { + "nothingAfterPort": "在大多情況中,不應該在端口後方輸入任何路徑", + "protocolCheck": "請確保 URL 前方是 http 或 https,並確認使用正確的 URL", + "preferIP": "建議使用要與之通訊的設備或容器的直接 IP 地址", + "enablePings": "透過啟用 Ping 檢查 IP 是否正確。自定義面板 -> 顯示布局 -> 啟用 Ping\n應用磁貼上會出現一個小紅色或綠色的點點,屬標懸停後就會顯示相應代碼\n大多情況下都是綠色點點,代碼200", + "wget": "為了確保 Homarr 可以與其它應用通訊,請使用 wget/curl/ping 應用的 IP:Port", + "iframe": "使用 iFrame 時,必須使用 http/https", + "clearCache": "有些訊息是在緩存中創建,因此除非您在 Homarr 的一般選項中清除緩存,否則即成可能無法運行" + }, + "footer": "更問解決辦法,請聯繫我們的 {{discord}}" + } + }, + "externalAddress": { + "label": "外部網址", + "description": "點擊應用時開啟的網址" + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "在新分頁中開啟", + "description": "在新分頁中開啟應用,而不是當前分頁" + }, + "tooltipDescription": { + "label": "應用概述", + "description": "將游標停在應用上時,將顯示您輸入的詳細內容。\n可以為使用者提供更多關於應用的詳細訊息,留空以隱藏" + }, + "customProtocolWarning": "使用非標準協議,可能需要更多預先安裝應用程式,並可能帶來安全風險,請確保您的網址安全可靠" + }, + "network": { + "statusChecker": { + "label": "狀態檢查", + "description": "使用 HTTP(S) 請求檢查您的應用是否在線" + }, + "statusCodes": { + "label": "HTTP 狀態碼", + "description": "被視為在線的 HTTP 狀態碼" + } + }, + "appearance": { + "icon": { + "label": "應用圖標", + "description": "輸入以搜尋圖標,也可以貼上自定義的圖標網址", + "autocomplete": { + "title": "未找到結果", + "text": "嘗試使用一個更具體的搜尋詞彙,如果找不到您想要的圖標,可以在上方貼上圖標的網址,以獲得一個自定義的圖標" + }, + "noItems": { + "title": "正在載入外部圖標", + "text": "這可能需要幾秒鐘" + } + }, + "appNameFontSize": { + "label": "應用名稱的字體大小", + "description": "設定應用名稱在磁貼上顯示的字體大小" + }, + "appNameStatus": { + "label": "應用名稱狀態", + "description": "如果您想要顯示標題,請選擇顯示的位置", + "dropdown": { + "normal": "僅在磁貼上顯示標題", + "hover": "僅在游標停留時顯示標題", + "hidden": "完全不顯示" + } + }, + "positionAppName": { + "label": "應用名稱位置", + "description": "應用名稱相對於圖標的位置", + "dropdown": { + "top": "上方", + "right": "右方", + "bottom": "下方", + "left": "左方" + } + }, + "lineClampAppName": { + "label": "應用名稱行數", + "description": "自定義標題最多能容納多少行。設定 0 為無限制" + } + }, + "integration": { + "type": { + "label": "集成設定", + "description": "集成設定用於連結您的應用", + "placeholder": "選擇一個集成", + "defined": "已定義", + "undefined": "未定義", + "public": "公開", + "private": "私有", + "explanationPrivate": "私有密鑰仍會被傳送到伺服器一次,一旦您的瀏覽器刷新了頁面,將不會再次傳送", + "explanationPublic": "公開密鑰將持續傳送給客戶端,並且可以透過 API 訪問,不該包含任何機密,如使用者名稱、密碼、證書等!" + }, + "secrets": { + "description": "輸入值並點擊儲存以更新密鑰,使用清除按鈕以刪除密鑰", + "warning": "您的憑證作為集成的訪問權限,您應該永遠不和任何人分享該憑證。Homarr 團隊永遠不會索取憑證,確保安全的保存和管理您的密鑰。", + "clear": "刪除密鑰", + "save": "儲存密鑰", + "update": "更新密鑰" + } + }, + "validation": { + "popover": "您的表單包含無效數據,因此無法儲存,請再次檢查後,點擊此按鈕儲存您的設定", + "name": "名稱為必填選項", + "noUrl": "網址為必填選項", + "invalidUrl": "非有效的網址", + "noIconUrl": "此字段為必填", + "noExternalUri": "外部網址為必填選項", + "invalidExternalUri": "無效的外部網址" + } +} diff --git a/public/locales/tw/layout/modals/change-position.json b/public/locales/tw/layout/modals/change-position.json new file mode 100644 index 000000000..4d36ec31f --- /dev/null +++ b/public/locales/tw/layout/modals/change-position.json @@ -0,0 +1,8 @@ +{ + "xPosition": "X 軸位置", + "width": "寬度", + "height": "高度", + "yPosition": "Y 軸位置", + "zeroOrHigher": "0 或更高", + "betweenXandY": "在 {{min}} 和 {{max}} 之間" +} \ No newline at end of file diff --git a/public/locales/tw/manage/boards.json b/public/locales/tw/manage/boards.json new file mode 100644 index 000000000..cf7e42810 --- /dev/null +++ b/public/locales/tw/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "面板", + "pageTitle": "面板", + "cards": { + "statistics": { + "apps": "應用", + "widgets": "組件", + "categories": "類別" + }, + "buttons": { + "view": "查看面板" + }, + "menu": { + "setAsDefault": "設定為預設", + "delete": { + "label": "永久刪除", + "disabled": "刪除功能被禁用,因為較舊的 Homarr 組件不允許刪除預設的設定,將來可能會刪除" + } + }, + "badges": { + "fileSystem": "檔案系統", + "default": "預設" + } + }, + "buttons": { + "create": "創建新面板" + }, + "modals": { + "delete": { + "title": "刪除面板", + "text": "您確定要刪除此面板?此動作無法回復,您的數據將永久消失" + }, + "create": { + "title": "創建面板", + "text": "面板創建成功後,不能更改名稱", + "form": { + "name": { + "label": "名稱" + }, + "submit": "創建" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/manage/index.json b/public/locales/tw/manage/index.json new file mode 100644 index 000000000..27d2f647f --- /dev/null +++ b/public/locales/tw/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "管理", + "hero": { + "title": "歡迎回來,{{username}}", + "fallbackUsername": "匿名", + "subtitle": "歡迎來到您的應用程式中心。規劃、優化和享用!" + }, + "quickActions": { + "title": "快捷動作", + "boards": { + "title": "您的面板", + "subtitle": "創建和管理面板" + }, + "inviteUsers": { + "title": "邀請新使用者", + "subtitle": "創建並傳送註冊邀請" + }, + "manageUsers": { + "title": "管理使用者", + "subtitle": "刪除和管理使用者" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/manage/users.json b/public/locales/tw/manage/users.json new file mode 100644 index 000000000..5797c8686 --- /dev/null +++ b/public/locales/tw/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "使用者", + "pageTitle": "管理使用者", + "text": "通過使用者,您可以設定誰可以編輯您的面板,Homarr 的未來版本將對權限和面板進行更精細的控制", + "buttons": { + "create": "創建" + }, + "table": { + "header": { + "user": "使用者" + } + }, + "tooltips": { + "deleteUser": "刪除使用者", + "demoteAdmin": "撤銷管理員", + "promoteToAdmin": "提升為管理員" + }, + "modals": { + "delete": { + "title": "刪除使用者 {{name}}", + "text": "您確定要刪除該使用者 {{name}}?這將刪除該使用者的相關數據,但不會刪除該使用者的任何儀表板" + }, + "change-role": { + "promote": { + "title": "將使用者 {{name}},提升為管理員", + "text": "您確定要將該使用者 {{name}},提升為管理員?,這將允許該使用者訪問 Homarr 實例上的所有數據" + }, + "demote": { + "title": "將使用者 {{name}},降為一般使用者", + "text": "您確定要將該使用者 {{name}},降為一般使用者?這將刪除該使用者對 Homarr 實例上所有數據的訪問權限" + }, + "confirm": "確認" + } + }, + "searchDoesntMatch": "您的搜尋與任何條目不匹配,請調整您的過濾器" +} \ No newline at end of file diff --git a/public/locales/tw/manage/users/create.json b/public/locales/tw/manage/users/create.json new file mode 100644 index 000000000..76e49cc59 --- /dev/null +++ b/public/locales/tw/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "創建使用者", + "steps": { + "account": { + "title": "第一步", + "text": "創建帳號", + "username": { + "label": "使用者" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "第二步", + "text": "密碼", + "password": { + "label": "密碼" + } + }, + "finish": { + "title": "確認", + "text": "儲存到數據庫", + "card": { + "title": "檢查您的輸入", + "text": "將數據提交到數據庫後,使用者就可以登入了,您確定要將該使用者存入數據庫中並啟用登入權限嗎?" + }, + "table": { + "header": { + "property": "屬性", + "value": "參數值", + "username": "使用者", + "email": "E-mail", + "password": "密碼" + }, + "notSet": "未設定", + "valid": "有效" + }, + "failed": "使用者創建失敗:{{error}}" + }, + "completed": { + "alert": { + "title": "使用者已創建", + "text": "使用者已存在數據庫中。他可以登入了" + } + } + }, + "buttons": { + "generateRandomPassword": "隨機生成", + "createAnother": "創建另一個" + } +} \ No newline at end of file diff --git a/public/locales/tw/manage/users/invites.json b/public/locales/tw/manage/users/invites.json new file mode 100644 index 000000000..ee7672092 --- /dev/null +++ b/public/locales/tw/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "使用者邀請", + "pageTitle": "管理使用者邀請", + "description": "使用邀請功能,可以邀請使用者訪問 Homarr 實例,邀請只在一定的時間內有效,並且只能使用一次,過期時間範圍必須在創建後5分鐘到12個月之間", + "button": { + "createInvite": "創建邀請", + "deleteInvite": "刪除邀請" + }, + "table": { + "header": { + "id": "ID", + "creator": "創建者", + "expires": "有效期", + "action": "動作" + }, + "data": { + "expiresAt": "已過期 {{at}}", + "expiresIn": "在 {{in}}" + } + }, + "modals": { + "create": { + "title": "創建邀請", + "description": "過期後,邀請會失效,被邀請者將無法創建帳號", + "form": { + "expires": "過期期間", + "submit": "創建" + } + }, + "copy": { + "title": "複製邀請內容", + "description": "您的邀請已生成,在此模式關閉後,您將無法再次複製此連結,如果您不想再邀請此人,您隨時可以刪除這個邀請", + "invitationLink": "邀請連結", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "複製並關閉" + } + }, + "delete": { + "title": "刪除邀請", + "description": "您確定要刪除此邀請?使用此連結的使用者將無法再次使用此連結創建帳號" + } + }, + "noInvites": "尚未邀請" +} \ No newline at end of file diff --git a/public/locales/tw/modules/bookmark.json b/public/locales/tw/modules/bookmark.json new file mode 100644 index 000000000..373ad9ef5 --- /dev/null +++ b/public/locales/tw/modules/bookmark.json @@ -0,0 +1,43 @@ +{ + "descriptor": { + "name": "書籤", + "description": "顯示字符或連結的靜態列表", + "settings": { + "title": " 書籤設定", + "name": { + "label": "組件標題", + "info": "留空以隱藏標題。" + }, + "items": { + "label": "項目" + }, + "layout": { + "label": "顯示布局", + "data": { + "autoGrid": "自訂網格", + "horizontal": "橫向", + "vertical": "垂直" + } + } + } + }, + "card": { + "noneFound": { + "title": "書籤列表為空", + "text": "在編輯模式下為該列表新增新項目" + } + }, + "item": { + "validation": { + "length": "長度必須在 {{shortest}} 和 {{longest}} 之間", + "invalidLink": "無效連結", + "errorMsg": "由於存在驗證錯誤,未儲存,請調整您的輸入" + }, + "name": "名稱", + "url": "網址", + "newTab": "在新分頁中開啟", + "hideHostname": "隱藏域名", + "hideIcon": "隱藏圖標", + "delete": "刪除" + } +} diff --git a/public/locales/tw/modules/calendar.json b/public/locales/tw/modules/calendar.json new file mode 100644 index 000000000..9005d67fc --- /dev/null +++ b/public/locales/tw/modules/calendar.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "日曆", + "description": "在日曆中顯示來自支持集成中的即將發布版本", + "settings": { + "title": "日曆組件設定", + "radarrReleaseType": { + "label": "Radarr 發布類型", + "data": { + "inCinemas": "電影模式放映", + "physicalRelease": "實體", + "digitalRelease": "數位" + } + }, + "hideWeekDays": { + "label": "隱藏星期" + }, + "showUnmonitored": { + "label": "顯示未監視項目" + }, + "fontSize": { + "label": "字體大小", + "data": { + "xs": "超小號", + "sm": "小", + "md": "中等", + "lg": "大號", + "xl": "超級大" + } + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/common-media-cards.json b/public/locales/tw/modules/common-media-cards.json new file mode 100644 index 000000000..c6462950d --- /dev/null +++ b/public/locales/tw/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "開始", + "request": "請求" + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/common.json b/public/locales/tw/modules/common.json new file mode 100644 index 000000000..2b539b6d0 --- /dev/null +++ b/public/locales/tw/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "設定" + }, + "errors": { + "unmappedOptions": { + "text": "" + } + } +} diff --git a/public/locales/tw/modules/dashdot.json b/public/locales/tw/modules/dashdot.json new file mode 100644 index 000000000..df5bccc10 --- /dev/null +++ b/public/locales/tw/modules/dashdot.json @@ -0,0 +1,118 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "在 Homarr 中顯示一個外部的 Dash. 的圖標", + "settings": { + "title": "Dash. 組件設定", + "dashName": { + "label": "Dash. 名稱" + }, + "url": { + "label": "Dash. 網址" + }, + "usePercentages": { + "label": "顯示百分比" + }, + "columns": { + "label": "顯示的列" + }, + "graphHeight": { + "label": "圖表高度" + }, + "graphsOrder": { + "label": "圖表 (順序)", + "storage": { + "label": "儲存設備", + "enabled": { + "label": "在組件中顯示" + }, + "span": { + "label": "列寬度" + }, + "compactView": { + "label": "顯示為文本 (緊湊型)" + }, + "multiView": { + "label": "顯示為多硬碟圖示" + } + }, + "network": { + "label": "網路", + "enabled": { + "label": "在組件中顯示" + }, + "span": { + "label": "列寬度" + }, + "compactView": { + "label": "顯示為文本 (緊湊型)" + } + }, + "cpu": { + "label": "處理器", + "enabled": { + "label": "在組件中顯示" + }, + "span": { + "label": "列寬度" + }, + "multiView": { + "label": "顯示為多核心圖示" + } + }, + "ram": { + "label": "記憶體", + "enabled": { + "label": "在組件中顯示" + }, + "span": { + "label": "列寬度" + } + }, + "gpu": { + "label": "顯示卡", + "enabled": { + "label": "在組件中顯示" + }, + "span": { + "label": "列寬度" + } + } + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "未找到Dash. ,請在集成終將其添加至您的 Homarr 面板或在模塊選項中設定Dash. 網址", + "noInformation": "無法從Dash. 獲取數據,您運行的是最新版本嗎?", + "protocolDowngrade": { + "title": "檢測到協議降級", + "text": "與Dash. 實例的連結使用的是 HTTP,這是一個安全風險,因為 HTTP 是未加密的,攻擊者可能會濫用此連結,確保Dash. 使用的是 HTTPS,或者將 Homarr 降級為 HTTP (不推薦)" + } + }, + "graphs": { + "storage": { + "title": "儲存設備", + "label": "儲存設備:" + }, + "network": { + "title": "網路", + "label": "網路:", + "metrics": { + "download": "下載", + "upload": "上傳" + } + }, + "cpu": { + "title": "處理器" + }, + "ram": { + "title": "記憶體" + }, + "gpu": { + "title": "顯示卡" + } + } + } +} diff --git a/public/locales/tw/modules/date.json b/public/locales/tw/modules/date.json new file mode 100644 index 000000000..8c846f6dc --- /dev/null +++ b/public/locales/tw/modules/date.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "日期與時間", + "description": "顯示目前的日期與時間", + "settings": { + "title": "設定日期與時間組件", + "display24HourFormat": { + "label": "顯示 24 小時制" + }, + "dateFormat": { + "label": "日期格式", + "data": { + "hide": "隱藏日期" + } + }, + "enableTimezone": { + "label": "顯示自定義時區" + }, + "timezoneLocation": { + "label": "時區位置" + }, + "titleState": { + "label": "城市名稱", + "info": "如果啟用時區選項,則可顯示城市名稱的時區代碼,
您也可以只顯示城市名稱,甚至都不顯示", + "data": { + "both": "城市與時區", + "city": "僅城市名稱", + "none": "無" + } + } + } + } +} diff --git a/public/locales/tw/modules/dlspeed.json b/public/locales/tw/modules/dlspeed.json new file mode 100644 index 000000000..f8e924d23 --- /dev/null +++ b/public/locales/tw/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "下載速度", + "description": "顯示集成中支援的下載和上傳速度" + }, + "card": { + "table": { + "header": { + "name": "名稱", + "size": "大小", + "download": "下載", + "upload": "上傳", + "estimatedTimeOfArrival": "剩餘時間", + "progress": "進度" + }, + "body": { + "nothingFound": "無種子" + } + }, + "lineChart": { + "title": "目前下載速度", + "download": "下載:{{download}}", + "upload": "上傳:{{upload}}", + "timeSpan": "{{seconds}}/秒", + "totalDownload": "下載:{{download}}/秒", + "totalUpload": "上傳:{{upload}}/秒" + }, + "errors": { + "noDownloadClients": { + "title": "未找到支援的下載服務!", + "text": "新增下載服務已查看您目前的下載狀況" + } + } + } +} diff --git a/public/locales/tw/modules/dns-hole-controls.json b/public/locales/tw/modules/dns-hole-controls.json new file mode 100644 index 000000000..a20f3e058 --- /dev/null +++ b/public/locales/tw/modules/dns-hole-controls.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "DNS 漏洞控制", + "description": "從您的面板控制 PiHole 或 AdGuard", + "settings": { + "title": "DNS 漏洞控制設定", + "showToggleAllButtons": { + "label": "顯示 \"啟用/停用 全部\" 按鈕" + } + }, + "errors": { + "general": { + "title": "無法找到 DNS 漏洞", + "text": "到 DNS 漏洞的聯結有問題,請驗證您的設定/集成配置" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/dns-hole-summary.json b/public/locales/tw/modules/dns-hole-summary.json new file mode 100644 index 000000000..804eaf5da --- /dev/null +++ b/public/locales/tw/modules/dns-hole-summary.json @@ -0,0 +1,28 @@ +{ + "descriptor": { + "name": "DNS 漏洞統計", + "description": "顯示來自 PiHole 或 AdGuard 的重要數據", + "settings": { + "title": "DNS 漏洞統計設定", + "usePiHoleColors": { + "label": "使用 PiHole 的顏色" + }, + "layout": { + "label": "顯示布局", + "data": { + "grid": "2 x 2", + "row": "橫向", + "column": "垂直" + } + } + } + }, + "card": { + "metrics": { + "domainsOnAdlist": "廣告列表中的域名", + "queriesToday": "今日查詢", + "queriesBlockedTodayPercentage": "今日封鎖", + "queriesBlockedToday": "今日封鎖" + } + } +} diff --git a/public/locales/tw/modules/docker.json b/public/locales/tw/modules/docker.json new file mode 100644 index 000000000..2c1e3dc86 --- /dev/null +++ b/public/locales/tw/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "Docker", + "description": "允許您輕鬆查看和管理所有 Docker 容器" + }, + "search": { + "placeholder": "依照容器或鏡像名稱搜尋" + }, + "table": { + "header": { + "name": "名稱", + "image": "鏡像", + "ports": "Ports", + "state": "狀態" + }, + "body": { + "portCollapse": "{{ports}} 更多" + }, + "states": { + "running": "運行中", + "created": "已創建", + "stopped": "已停止", + "unknown": "未知" + } + }, + "actionBar": { + "addService": { + "title": "新增應用", + "message": "新增應用至 Homarr" + }, + "restart": { + "title": "重啟" + }, + "stop": { + "title": "停止" + }, + "start": { + "title": "開始" + }, + "refreshData": { + "title": "重新整理" + }, + "remove": { + "title": "刪除" + }, + "addToHomarr": { + "title": "新增至 Homarr" + } + }, + "actions": { + "start": { + "start": "正在運行...", + "end": "已運行" + }, + "stop": { + "start": "正在停止...", + "end": "已停止" + }, + "restart": { + "start": "正在重啟...", + "end": "已重啟" + }, + "remove": { + "start": "正在刪除...", + "end": "已刪除" + } + }, + "errors": { + "integrationFailed": { + "title": "Docker 集成失敗", + "message": "您是否忘了掛載 Docker socket?" + }, + "unknownError": { + "title": "出現一個錯誤" + }, + "oneServiceAtATime": { + "title": "請每次只新增一個應用或服務!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} diff --git a/public/locales/tw/modules/iframe.json b/public/locales/tw/modules/iframe.json new file mode 100644 index 000000000..cc36fbc64 --- /dev/null +++ b/public/locales/tw/modules/iframe.json @@ -0,0 +1,45 @@ +{ + "descriptor": { + "name": "iFrame", + "description": "崁入網路上的內容,某些網站可能會限制訪問", + "settings": { + "title": "iFrame 設定", + "embedUrl": { + "label": "崁入網址" + }, + "allowFullScreen": { + "label": "允許全螢幕" + }, + "allowTransparency": { + "label": "允許透明化" + }, + "allowScrolling": { + "label": "允許滾動" + }, + "allowPayment": { + "label": "允許付款" + }, + "allowAutoPlay": { + "label": "允許自動播放" + }, + "allowMicrophone": { + "label": "允許麥克風" + }, + "allowCamera": { + "label": "允許攝影機" + }, + "allowGeolocation": { + "label": "允許地理位置" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "無效連結", + "text": "確認您在組件中輸入一個有效的網址" + }, + "browserSupport": "您的瀏覽器不支援iFrame,請更新您的瀏覽器" + } + } +} diff --git a/public/locales/tw/modules/media-requests-list.json b/public/locales/tw/modules/media-requests-list.json new file mode 100644 index 000000000..fb606848e --- /dev/null +++ b/public/locales/tw/modules/media-requests-list.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "媒體請求", + "description": "查看 Overseerr 或 Jellyseer 實例中的所有媒體請求列表", + "settings": { + "title": "媒體請求列表", + "replaceLinksWithExternalHost": { + "label": "使用外部網址替換連結" + }, + "openInNewTab": { + "label": "在新分頁中開啟連結" + } + } + }, + "noRequests": "未找到請求,請確認您已正確設定您的應用", + "state": { + "approved": "已准許", + "pendingApproval": "待准許", + "declined": "已拒絕" + }, + "tooltips": { + "approve": "准許請求", + "decline": "拒絕請求", + "approving": "正在准許請求..." + }, + "mutation": { + "approving": "正在准許", + "declining": "拒絕中", + "request": "請求...", + "approved": "請求已批准!", + "declined": "請求被拒絕!" + } +} diff --git a/public/locales/tw/modules/media-requests-stats.json b/public/locales/tw/modules/media-requests-stats.json new file mode 100644 index 000000000..ffe342ab3 --- /dev/null +++ b/public/locales/tw/modules/media-requests-stats.json @@ -0,0 +1,27 @@ +{ + "descriptor": { + "name": "媒體請求狀態", + "description": "您的媒體請求統計", + "settings": { + "title": "媒體請求狀態", + "replaceLinksWithExternalHost": { + "label": "使用外部網址替換連結" + }, + "openInNewTab": { + "label": "在新分頁中開啟連結" + } + } + }, + "mediaStats": { + "title": "媒體狀態", + "pending": "待准許", + "tvRequests": "電視劇請求", + "movieRequests": "電影請求", + "approved": "已准許", + "totalRequests": "總計" + }, + "userStats": { + "title": "使用者排行", + "requests": "請求:{{number}}" + } +} diff --git a/public/locales/tw/modules/media-server.json b/public/locales/tw/modules/media-server.json new file mode 100644 index 000000000..fbdb4b553 --- /dev/null +++ b/public/locales/tw/modules/media-server.json @@ -0,0 +1,25 @@ +{ + "descriptor": { + "name": "媒體服務", + "description": "與您的 Jellyfin 或 Plex 媒體服務交互", + "settings": { + "title": "媒體服務組件設定" + } + }, + "loading": "正在載入媒體", + "card": { + "table": { + "header": { + "session": "季", + "user": "使用者", + "currentlyPlaying": "正在播放" + } + }, + "errors": { + "general": { + "title": "無法載入內容", + "text": "無法從伺服器檢測數據,請查看日誌獲取更多詳細訊息" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/notebook.json b/public/locales/tw/modules/notebook.json new file mode 100644 index 000000000..ff8f9f117 --- /dev/null +++ b/public/locales/tw/modules/notebook.json @@ -0,0 +1,59 @@ +{ + "descriptor": { + "name": "筆記本", + "description": "一個基於 Markdown 的交互式組件,供您紀錄!", + "settings": { + "title": "筆記本組件設定", + "showToolbar": { + "label": "顯示幫助您紀錄 Markdown 的工具欄" + }, + "allowReadOnlyCheck": { + "label": "准許在唯讀模式中檢查" + }, + "content": { + "label": "筆記本的內容" + } + } + }, + "card": { + "controls": { + "bold": "粗體", + "italic": "斜體", + "strikethrough": "刪除線", + "underline": "下滑線", + "colorText": "文字顏色", + "colorHighlight": "高亮文字", + "code": "代碼", + "clear": "清除格式", + "heading": "標題 {{level}}", + "align": "對齊文字: {{position}}", + "blockquote": "引用", + "horizontalLine": "橫線", + "bulletList": "符號列表", + "orderedList": "順序列表", + "checkList": "檢查列表", + "increaseIndent": "增加縮進", + "decreaseIndent": "減小縮進", + "link": "連結", + "unlink": "刪除連結", + "image": "崁入圖片", + "addTable": "增加表格", + "deleteTable": "刪除表格", + "colorCell": "單元格顏色", + "mergeCell": "切換單元格合併", + "addColumnLeft": "在前方增加列", + "addColumnRight": "在後方增加列", + "deleteColumn": "刪除整列", + "addRowTop": "在前方增加行", + "addRowBelow": "在後方增加行", + "deleteRow": "刪除整行" + }, + "modals": { + "clearColor": "清除顏色", + "source": "來源", + "widthPlaceholder": "百分比或像素值", + "columns": "列數", + "rows": "行數" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/overseerr.json b/public/locales/tw/modules/overseerr.json new file mode 100644 index 000000000..7f84daa38 --- /dev/null +++ b/public/locales/tw/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "允許您從 Overseerr 或 JellySeerr 搜尋或新增媒體" + }, + "popup": { + "item": { + "buttons": { + "askFor": "請求 {{title}}", + "cancel": "取消", + "request": "請求" + }, + "alerts": { + "automaticApproval": { + "title": "使用 API Key", + "text": "此請求被自動准許" + } + } + }, + "seasonSelector": { + "caption": "勾選您想要下載的季", + "table": { + "header": { + "season": "季", + "numberOfEpisodes": "集數" + } + } + } + } +} diff --git a/public/locales/tw/modules/ping.json b/public/locales/tw/modules/ping.json new file mode 100644 index 000000000..0b0f5dea1 --- /dev/null +++ b/public/locales/tw/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "根據設定的網址的 HTTP 回應待碼,顯示一個狀態顯示器" + }, + "states": { + "online": "在線 {{response}}", + "offline": "離線 {{response}}", + "loading": "正在載入..." + } +} diff --git a/public/locales/tw/modules/rss.json b/public/locales/tw/modules/rss.json new file mode 100644 index 000000000..39ec064a4 --- /dev/null +++ b/public/locales/tw/modules/rss.json @@ -0,0 +1,31 @@ +{ + "descriptor": { + "name": "RSS 組件", + "description": "RSS 組件允許您顯示 RSS 訂閱在面板中", + "settings": { + "title": "設定 RSS 組件", + "rssFeedUrl": { + "label": "RSS 訂閱網址", + "description": "設定想要顯示的 RSS 訂閱網址" + }, + "refreshInterval": { + "label": "更新間隔 (分鐘)" + }, + "dangerousAllowSanitizedItemContent": { + "label": "允許 HTML 格式化 (危險)", + "info": "允許從外部進行 HTML 格式化 (可能存在危險),
請確認訂閱來自信任的來源" + }, + "textLinesClamp": { + "label": "文字線條" + } + }, + "card": { + "errors": { + "general": { + "title": "無法獲取 RSS 訂閱", + "text": "在獲取 RSS 訂閱時出現錯誤,確認使用有效的網址,並正確的設定 RSS 訂閱,更新 RSS 訂閱後,您可能需要重新整理瀏覽器 (F5)" + } + } + } + } +} diff --git a/public/locales/tw/modules/search.json b/public/locales/tw/modules/search.json new file mode 100644 index 000000000..baf1ac6c8 --- /dev/null +++ b/public/locales/tw/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "搜尋欄", + "description": "允許您搜尋自定義的搜尋引擎、Youtube 和支援的集成" + }, + "input": { + "placeholder": "在網路上搜尋..." + }, + "switched-to": "切換至", + "searchEngines": { + "search": { + "name": "網頁", + "description": "搜尋..." + }, + "youtube": { + "name": "Youtube", + "description": "在 Youtube 上搜尋" + }, + "torrents": { + "name": "Torrents", + "description": "搜尋 Torrents" + }, + "overseerr": { + "name": "Overseerr", + "description": "在 Overseerr 上搜尋電影或電視劇" + } + }, + "tip": "您可以使用以下快捷鍵選擇搜尋欄", + "switchedSearchEngine": "切換 {{searchEngine}} 進行搜尋" +} diff --git a/public/locales/tw/modules/torrents-status.json b/public/locales/tw/modules/torrents-status.json new file mode 100644 index 000000000..30684478c --- /dev/null +++ b/public/locales/tw/modules/torrents-status.json @@ -0,0 +1,93 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "顯示支援的 Torrents 客戶端的 Torrents 列表", + "settings": { + "title": "Torrent 組件設定", + "refreshInterval": { + "label": "更新時間 (秒)" + }, + "displayCompletedTorrents": { + "label": "顯示已完成 Torrents" + }, + "displayActiveTorrents": { + "label": "顯示活耀的種子" + }, + "speedLimitOfActiveTorrents": { + "label": "將 Torrent 視為活耀的上傳速度 (kB/s)" + }, + "displayStaleTorrents": { + "label": "顯示過期 Torrents" + }, + "labelFilterIsWhitelist": { + "label": "標籤列表是白名單 (而不是黑名單)" + }, + "labelFilter": { + "label": "標籤列表", + "description": "當選中 \"白名單\" 時,將成為白名單,如不選中,則為黑名單,為空時則不會做任何事情" + }, + "displayRatioWithFilter": { + "label": "顯示過濾後的 Torrents 列表比例", + "info": "如果禁用,則只會顯示全局比率,而全局比率仍將使用標籤" + } + } + }, + "card": { + "footer": { + "error": "錯誤", + "lastUpdated": "最後更新於 {{time}} 前", + "ratioGlobal": "全局比率", + "ratioWithFilter": "含過濾後的比率" + }, + "table": { + "header": { + "name": "名稱", + "size": "大小", + "download": "下載", + "upload": "上傳", + "estimatedTimeOfArrival": "剩餘時間", + "progress": "進度" + }, + "item": { + "text": "由 {{appName}},{{ratio}} 管理的比率" + }, + "body": { + "nothingFound": "無種子", + "filterHidingItems": "您的過濾器隱藏了 {{count}} 個紀錄" + } + }, + "lineChart": { + "title": "目前下載速度", + "download": "下載:{{download}}", + "upload": "上傳:{{upload}}", + "timeSpan": "{{seconds}}/秒", + "totalDownload": "下載:{{download}}/秒", + "totalUpload": "上傳:{{upload}}/秒" + }, + "errors": { + "noDownloadClients": { + "title": "沒有找到支援的 Torrent 客戶端", + "text": "新增一個支援的 Torrent 客戶端來檢視目前的下載狀況" + }, + "generic": { + "title": "發生一個意外的錯誤", + "text": "無法與您的 Torrent 客戶端交互,請檢查您的設定" + } + }, + "loading": { + "title": "載入中", + "description": "建立連接中" + }, + "popover": { + "introductionPrefix": "管理方:", + "metrics": { + "queuePosition": "隊列位置 - {{position}}", + "progress": "進度 - {{progress}}%", + "totalSelectedSize": "共計 - {{totalSize}}", + "state": "狀態 - {{state}}", + "ratio": "比率 -", + "completed": "已完成" + } + } + } +} diff --git a/public/locales/tw/modules/usenet.json b/public/locales/tw/modules/usenet.json new file mode 100644 index 000000000..136a03223 --- /dev/null +++ b/public/locales/tw/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "Usenet", + "description": "允許您查看和管理 Usenet 實例" + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "沒有找到支援的下載客戶端!", + "text": "新增支援的 Usenet 下載客戶端來檢視目前的下載狀況" + } + } + }, + "tabs": { + "queue": "隊列", + "history": "歷史" + }, + "info": { + "sizeLeft": "左側大小", + "paused": "已暫停" + }, + "queue": { + "header": { + "name": "名稱", + "size": "大小", + "eta": "剩餘時間", + "progress": "進度" + }, + "empty": "空", + "error": { + "title": "錯誤", + "message": "出錯了" + }, + "paused": "已暫停" + }, + "history": { + "header": { + "name": "名稱", + "size": "大小", + "duration": "持續時間" + }, + "empty": "空", + "error": { + "title": "錯誤", + "message": "載入歷史紀錄時出錯" + }, + "paused": "已暫停" + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/video-stream.json b/public/locales/tw/modules/video-stream.json new file mode 100644 index 000000000..d3e5efc2a --- /dev/null +++ b/public/locales/tw/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "影片串流", + "description": "崁入來自攝影機或網站的影片串流", + "settings": { + "title": "影片串流組件設定", + "FeedUrl": { + "label": "訂閱網址" + }, + "autoPlay": { + "label": "自動播放" + }, + "muted": { + "label": "靜音" + }, + "controls": { + "label": "控制影片播放" + } + } + }, + "errors": { + "invalidStream": "無效數據串流" + } +} \ No newline at end of file diff --git a/public/locales/tw/modules/weather.json b/public/locales/tw/modules/weather.json new file mode 100644 index 000000000..e0b4b8ef7 --- /dev/null +++ b/public/locales/tw/modules/weather.json @@ -0,0 +1,37 @@ +{ + "descriptor": { + "name": "天氣", + "description": "顯示指定位置的目前天氣狀況", + "settings": { + "title": "天氣組件設定", + "displayInFahrenheit": { + "label": "顯示為華氏度" + }, + "displayCityName": { + "label": "顯示城市名稱" + }, + "location": { + "label": "天氣位置" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "晴朗", + "mainlyClear": "晴時多雲", + "fog": "起霧", + "drizzle": "小雨", + "freezingDrizzle": "毛毛雨", + "rain": "下雨", + "freezingRain": "凍雨", + "snowFall": "下雪", + "snowGrains": "下霜", + "rainShowers": "陣雨", + "snowShowers": "陣雪", + "thunderstorm": "雷雨", + "thunderstormWithHail": "雷雨夾冰雹", + "unknown": "未知" + } + }, + "error": "出現錯誤" +} diff --git a/public/locales/tw/password-requirements.json b/public/locales/tw/password-requirements.json new file mode 100644 index 000000000..987f51585 --- /dev/null +++ b/public/locales/tw/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "包含數字", + "lowercase": "包含小寫字母", + "uppercase": "包含大寫字母", + "special": "包含特殊符號", + "length": "包含 {{count}} 個字符" +} \ No newline at end of file diff --git a/public/locales/tw/settings/common.json b/public/locales/tw/settings/common.json new file mode 100644 index 000000000..7c87b551f --- /dev/null +++ b/public/locales/tw/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "設定", + "tooltip": "設定", + "tabs": { + "common": "常規", + "customizations": "個性化" + }, + "tips": { + "configTip": "將設定文件托放到頁放上即可上傳!" + }, + "credits": { + "madeWithLove": "Made with ❤️ by @", + "thirdPartyContent": "查看第三方內容", + "thirdPartyContentTable": { + "dependencyName": "依賴", + "dependencyVersion": "版本" + } + }, + "grow": "放大網格 (占用所有空間)", + "layout": { + "preview": { + "title": "預覽", + "subtitle": "更改會自動保存" + }, + "divider": "布局選項", + "main": "主要", + "sidebar": "側邊欄", + "cannotturnoff": "無法關閉", + "dashboardlayout": "面板布局", + "enablersidebar": "啟用右邊欄", + "enablelsidebar": "啟用左側欄", + "enablesearchbar": "啟用搜尋欄", + "enabledocker": "啟用 Docker 集成", + "enableping": "啟用 Ping 功能", + "enablelsidebardesc": "可選項,只能用於應用和集成使用", + "enablersidebardesc": "可選項,只能用於應用和集成使用" + } +} diff --git a/public/locales/tw/settings/customization/access.json b/public/locales/tw/settings/customization/access.json new file mode 100644 index 000000000..62f4a147a --- /dev/null +++ b/public/locales/tw/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "准許匿名使用者", + "description": "准許未登入的使用者查看您的面板" + } +} \ No newline at end of file diff --git a/public/locales/tw/settings/customization/general.json b/public/locales/tw/settings/customization/general.json new file mode 100644 index 000000000..c76169b2f --- /dev/null +++ b/public/locales/tw/settings/customization/general.json @@ -0,0 +1,29 @@ +{ + "text": "自定義設定允許您根據自己的喜好設定和調整 Homarr 的使用體驗", + "accordeon": { + "layout": { + "name": "顯示布局", + "description": "啟用或禁用標題和面板上的元素" + }, + "gridstack": { + "name": "網格堆疊", + "description": "自定義您的面板區域和行為與欄目" + }, + "pageMetadata": { + "name": "頁面元數據", + "description": "調整標題、LOGO、PWA" + }, + "appereance": { + "name": "外觀", + "description": "自定義背景、顏色、應用的外觀" + }, + "accessibility": { + "name": "無障礙服務", + "description": "未殘疾與殘障人士設定 Homarr" + }, + "access": { + "name": "訪問權限", + "description": "設定誰有權限訪問您的面板" + } + } +} diff --git a/public/locales/tw/settings/customization/gridstack.json b/public/locales/tw/settings/customization/gridstack.json new file mode 100644 index 000000000..5b6c8d84a --- /dev/null +++ b/public/locales/tw/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "列的大小為 {{size}}", + "descriptionPreset": "螢幕寬度小於 {{pixels}} 像素時的列數", + "descriptionExceedsPreset": "螢幕寬度超過 {{pixels}} 像素時的列數" + }, + "unsavedChanges": "您有未儲存的設定,點擊下方的\"應用設定\"按紐並儲存", + "applyChanges": "應用設定", + "defaultValues": "預設" +} \ No newline at end of file diff --git a/public/locales/tw/settings/customization/opacity-selector.json b/public/locales/tw/settings/customization/opacity-selector.json new file mode 100644 index 000000000..41351288f --- /dev/null +++ b/public/locales/tw/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "應用不透明化" +} \ No newline at end of file diff --git a/public/locales/tw/settings/customization/page-appearance.json b/public/locales/tw/settings/customization/page-appearance.json new file mode 100644 index 000000000..65fb4d33e --- /dev/null +++ b/public/locales/tw/settings/customization/page-appearance.json @@ -0,0 +1,27 @@ +{ + "pageTitle": { + "label": "頁面標題", + "description": "面板中左上角的標題" + }, + "metaTitle": { + "label": "無標題", + "description": "在您的瀏覽器分頁中顯示的標題" + }, + "logo": { + "label": "LOGO", + "description": "顯示在左上方的LOGO" + }, + "favicon": { + "label": "圖標", + "description": "在您的瀏覽器分頁中顯示的圖標" + }, + "background": { + "label": "背景" + }, + "customCSS": { + "label": "自定義 CSS", + "description": "此外,只推薦有經驗的使用者使用 CSS 自定義面板", + "placeholder": "自定義 CSS 將最後應用", + "applying": "應用 CSS 中..." + } +} \ No newline at end of file diff --git a/public/locales/tw/settings/customization/shade-selector.json b/public/locales/tw/settings/customization/shade-selector.json new file mode 100644 index 000000000..f744f5f8d --- /dev/null +++ b/public/locales/tw/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "陰影" +} \ No newline at end of file diff --git a/public/locales/tw/settings/general/cache-buttons.json b/public/locales/tw/settings/general/cache-buttons.json new file mode 100644 index 000000000..e9f880a7a --- /dev/null +++ b/public/locales/tw/settings/general/cache-buttons.json @@ -0,0 +1,24 @@ +{ + "title": "清除暫存", + "selector": { + "label": "選擇要清除的暫存", + "data": { + "ping": "Ping 查詢", + "repositoryIcons": "遠端/本地圖標", + "calendar&medias": "日曆中的媒體", + "weather": "天氣數據" + } + }, + "buttons": { + "notificationTitle": "已清除暫存", + "clearAll": { + "text": "清除所有暫存", + "notificationMessage": "已清除所有暫存" + }, + "clearSelect": { + "text": "清除所選暫存", + "notificationMessageSingle": "{{value}} 的暫存已清除", + "notificationMessageMulti": "{{values}} 的暫存已刪除" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/settings/general/config-changer.json b/public/locales/tw/settings/general/config-changer.json new file mode 100644 index 000000000..a080bdd8b --- /dev/null +++ b/public/locales/tw/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "設定更改", + "description": "{{configCount}} 個可用的設定", + "loadingNew": "正載載入您的設定...", + "pleaseWait": "請稍等您的新設定載入完成!" + }, + "modal": { + "copy": { + "title": "選擇新設定的名稱", + "form": { + "configName": { + "label": "設定名稱", + "validation": { + "required": "設定名稱為必填", + "notUnique": "設定名稱已被使用" + }, + "placeholder": "您的新設定名稱" + }, + "submitButton": "確認" + }, + "events": { + "configSaved": { + "title": "設定已保存", + "message": "設定儲存為 {{configName}}" + }, + "configCopied": { + "title": "設定已複製", + "message": "設定複製為 {{configName}}" + }, + "configNotCopied": { + "title": "無法複製設定", + "message": "您的設定沒有被複製為 {{configName}}" + } + } + }, + "confirmDeletion": { + "title": "確認刪除您的設定", + "warningText": "您將刪除 '{{configName}}'", + "text": "請注意:刪除是不可逆的,您的數據將永久失去,點擊此按鈕後,該文件將從您的硬碟中永久刪除,請確保已為您的設定創建一個合適的備份", + "buttons": { + "confirm": "是的,刪除 '{{configName}}'" + } + } + }, + "buttons": { + "download": "下載設定", + "delete": { + "text": "刪除設定", + "notifications": { + "deleted": { + "title": "設定已刪除", + "message": "設定已刪除" + }, + "deleteFailed": { + "title": "設定刪除失敗", + "message": "設定刪除失敗" + }, + "deleteFailedDefaultConfig": { + "title": "預設設定不能被刪除", + "message": "設定沒有從文件系統中刪除" + } + } + }, + "saveCopy": "儲存副本" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "無法載入設定", + "message": "無法載入您的設定,無項的 JSON 格式。" + }, + "loadedSuccessfully": { + "title": "設定 {{configName}} 載入成功" + } + }, + "accept": { + "title": "上傳設定", + "text": "將文件拖曳至這裡上船設定,僅支援 JSON 格式" + }, + "reject": { + "title": "拖放上船被拒絕", + "text": "此文件格式不支援,僅支援 JSON 格式文件" + } + } +} diff --git a/public/locales/tw/settings/general/edit-mode-toggle.json b/public/locales/tw/settings/general/edit-mode-toggle.json new file mode 100644 index 000000000..cc728628f --- /dev/null +++ b/public/locales/tw/settings/general/edit-mode-toggle.json @@ -0,0 +1,22 @@ +{ + "menu": { + "toggle": "切換編輯模式", + "enable": "啟用編輯模式", + "disable": "關閉編輯模式" + }, + "form": { + "label": "編輯模式密碼", + "message": "要切換編輯模式,需要在名為 EDIT _MODE_PASSWORD 的環境變量中輸入密碼,如未設定,則無法切換編輯模式", + "submit": "提交" + }, + "notification": { + "success": { + "title": "成功", + "message": "成功切換編輯模式,重新載入頁面..." + }, + "error": { + "title": "錯誤", + "message": "切換編輯模式失敗,請重試" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/settings/general/internationalization.json b/public/locales/tw/settings/general/internationalization.json new file mode 100644 index 000000000..cb1c5b783 --- /dev/null +++ b/public/locales/tw/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "語言" +} \ No newline at end of file diff --git a/public/locales/tw/settings/general/search-engine.json b/public/locales/tw/settings/general/search-engine.json new file mode 100644 index 000000000..4a06e7672 --- /dev/null +++ b/public/locales/tw/settings/general/search-engine.json @@ -0,0 +1,20 @@ +{ + "title": "搜尋引擎", + "configurationName": "搜尋引擎設定", + "custom": "自定義", + "tips": { + "generalTip": "您可以使用多種前綴!將這些新增到您的查詢前將過濾結果。(WEB、Torrents、Youtube、Media)", + "placeholderTip": "%s 可以做為查詢的佔位符" + }, + "customEngine": { + "title": "自定義搜尋引擎", + "label": "查詢網址", + "placeholder": "自定義查詢網址" + }, + "searchNewTab": { + "label": "在新分頁中開啟搜尋結果" + }, + "searchEnabled": { + "label": "啟用搜尋" + } +} diff --git a/public/locales/tw/settings/general/widget-positions.json b/public/locales/tw/settings/general/widget-positions.json new file mode 100644 index 000000000..d997ee127 --- /dev/null +++ b/public/locales/tw/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "將組件放在左側" +} diff --git a/public/locales/tw/tools/docker.json b/public/locales/tw/tools/docker.json new file mode 100644 index 000000000..57f79d877 --- /dev/null +++ b/public/locales/tw/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "您的 Homarr 實例未設定 Docker,或無法獲取容器,請查看文檔了解如設定集成" + } + }, + "modals": { + "selectBoard": { + "title": "選擇一個面板", + "text": "為選定 Docker 容器新增應用的面板", + "form": { + "board": { + "label": "面板" + }, + "submit": "新增應用" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "新增應用面板", + "message": "選定的 Docker 容易的應用已新增至面板中" + }, + "error": { + "title": "新增應用至面板失敗", + "message": "所選的 Docker 容器無法新增至面板中" + } + } + } +} \ No newline at end of file diff --git a/public/locales/tw/user/preferences.json b/public/locales/tw/user/preferences.json new file mode 100644 index 000000000..68fa446ca --- /dev/null +++ b/public/locales/tw/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "偏好設定", + "pageTitle": "您的偏好設定", + "boards": { + "defaultBoard": { + "label": "預設面板" + } + }, + "accessibility": { + "title": "無障礙服務", + "disablePulse": { + "label": "關閉 Ping 功能", + "description": "預設情況下,Homarr 的 Ping 功能會一直工作,這可能讓人很煩,此選項可禁用 Ping 功能" + }, + "replaceIconsWithDots": { + "label": "用圖標替換 Ping 點", + "description": "對於色盲使用者,Ping 點可能無法識別,這廂用途標替換指示器" + } + }, + "localization": { + "language": { + "label": "語言" + }, + "firstDayOfWeek": { + "label": "一週的第一天", + "options": { + "monday": "週一", + "saturday": "週六", + "sunday": "週日" + } + } + }, + "searchEngine": { + "title": "搜尋引擎", + "custom": "自定義", + "newTab": { + "label": "在新分頁中開啟搜尋攔截果" + }, + "autoFocus": { + "label": "頁面載入時讓輸入游標在搜尋欄", + "description": "當您導航到面板頁面時,鍵盤輸入游標自動停留在搜尋欄上,該功能僅適用於桌面設備" + }, + "template": { + "label": "查詢網址", + "description": "使用 %s 作為查詢的佔位符" + } + } +} \ No newline at end of file diff --git a/public/locales/tw/widgets/draggable-list.json b/public/locales/tw/widgets/draggable-list.json new file mode 100644 index 000000000..d8a9b4dbe --- /dev/null +++ b/public/locales/tw/widgets/draggable-list.json @@ -0,0 +1,7 @@ +{ + "noEntries": { + "title": "沒有條目", + "text": "使用下方的按紐新增更多條目" + }, + "buttonAdd": "新增" +} diff --git a/public/locales/tw/widgets/error-boundary.json b/public/locales/tw/widgets/error-boundary.json new file mode 100644 index 000000000..6b891f73e --- /dev/null +++ b/public/locales/tw/widgets/error-boundary.json @@ -0,0 +1,14 @@ +{ + "card": { + "title": "出錯了!", + "buttons": { + "details": "詳情", + "tryAgain": "請再試一次" + } + }, + "modal": { + "text": "", + "label": "您的錯誤", + "reportButton": "回報該錯誤" + } +} diff --git a/public/locales/tw/zod.json b/public/locales/tw/zod.json new file mode 100644 index 000000000..d52335eca --- /dev/null +++ b/public/locales/tw/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "該字段無效", + "required": "此字段為必填", + "string": { + "startsWith": "該字段必須以 {{startsWith}} 開頭", + "endsWith": "該字段必須以 {{endsWith}} 結尾", + "includes": "該字段必須以 {{includes}}" + }, + "tooSmall": { + "string": "該字段長度必須至少為 {{minimum}} 個字符", + "number": "該字段必須大於或等於 {{minimum}}" + }, + "tooBig": { + "string": "該字段長度不得超過 {{maximum}} 個字符", + "number": "該字段必須小於或等於 {{maximum}}" + }, + "custom": { + "passwordMatch": "再次輸入的密碼必須一致" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/authentication/invite.json b/public/locales/uk/authentication/invite.json new file mode 100644 index 000000000..b18d900e8 --- /dev/null +++ b/public/locales/uk/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Створити обліковий запис", + "title": "Створити обліковий запис", + "text": "Будь ласка, вкажіть ваші облікові дані нижче", + "form": { + "fields": { + "username": { + "label": "Логін" + }, + "password": { + "label": "Пароль" + }, + "passwordConfirmation": { + "label": "Підтвердити пароль" + } + }, + "buttons": { + "submit": "Створити обліковий запис" + } + }, + "notifications": { + "loading": { + "title": "Створення облікового запису", + "text": "Будь ласка, зачекайте." + }, + "success": { + "title": "Обліковий запис створено", + "text": "Ваш обліковий запис успішно створено" + }, + "error": { + "title": "Помилка", + "text": "Щось пішло не так, отримав таку помилку: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/authentication/login.json b/public/locales/uk/authentication/login.json index 96c2ed52a..7a7041916 100644 --- a/public/locales/uk/authentication/login.json +++ b/public/locales/uk/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Логін", "title": "З поверненням!", - "text": "Будь ласка, введіть ваш пароль", + "text": "Будь ласка, введіть свої облікові дані", "form": { "fields": { + "username": { + "label": "Логін" + }, "password": { - "label": "Пароль", - "placeholder": "Ваш пароль" + "label": "Пароль" } }, "buttons": { "submit": "Вхід" - } + }, + "afterLoginRedirection": "Після входу ви будете перенаправлені на сайт {{url}}" }, - "notifications": { - "checking": { - "title": "Перевірка пароля", - "message": "Ваш пароль перевіряється..." - }, - "correct": { - "title": "Вхід успішний, перенаправлення..." - }, - "wrong": { - "title": "Введено неправильний пароль. Повторіть спробу." - } - } -} + "alert": "Ваші облікові дані невірні або такого облікового запису не існує. Будь ласка, спробуйте ще раз." +} \ No newline at end of file diff --git a/public/locales/uk/boards/common.json b/public/locales/uk/boards/common.json new file mode 100644 index 000000000..ca465d43e --- /dev/null +++ b/public/locales/uk/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Налаштувати дошку" + } +} \ No newline at end of file diff --git a/public/locales/uk/boards/customize.json b/public/locales/uk/boards/customize.json new file mode 100644 index 000000000..ee94454fc --- /dev/null +++ b/public/locales/uk/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Налаштувати {{name}} Дошку", + "pageTitle": "Кастомізація для {{name}} Board", + "backToBoard": "Повернутися на сайт", + "settings": { + "appearance": { + "primaryColor": "Основний колір", + "secondaryColor": "Вторинний колір" + } + }, + "save": { + "button": "Зберегти зміни", + "note": "Обережно, у вас є незбережені зміни!" + }, + "notifications": { + "pending": { + "title": "Збереження налаштувань", + "message": "Будь ласка, зачекайте, поки ми збережемо ваші налаштування" + }, + "success": { + "title": "Налаштування збережено", + "message": "Ваше налаштування успішно збережено" + }, + "error": { + "title": "Помилка", + "message": "Неможливо зберегти зміни" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 36c18d20f..3b0e1e56f 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -1,11 +1,17 @@ { "save": "Зберегти", + "apply": "", + "insert": "", "about": "Про програму", "cancel": "Скасувати", "close": "Закрити", + "back": "Назад", "delete": "Видалити", "ok": "OK", "edit": "Редагувати", + "next": "Далі", + "previous": "Попередній", + "confirm": "Підтвердити", "enabled": "Увімкнено", "disabled": "Вимкнено", "enableAll": "Увімкнути все", @@ -36,5 +42,14 @@ "medium": "середній", "large": "великий" }, - "seeMore": "" + "seeMore": "Побачити більше...", + "position": { + "left": "Ліворуч.", + "center": "", + "right": "Так." + }, + "attributes": { + "width": "Ширина", + "height": "Висота" + } } \ No newline at end of file diff --git a/public/locales/uk/layout/common.json b/public/locales/uk/layout/common.json index 4f4c4e6b4..9941204bf 100644 --- a/public/locales/uk/layout/common.json +++ b/public/locales/uk/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Спливаючі вікна заблоковані", + "text": "Ваш браузер заблокував доступ Homarr до його API. Найчастіше це пов'язано з блокуванням AdBlocker або відмовою в дозволах. Homarr не може запитувати дозволи автоматично.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Натисніть на іконку поруч з URL-адресою і перевірте дозволи. Дозволити спливаючі вікна та вікна", + "adBlockers": "Вимкніть блокувальники реклами та інструменти безпеки у вашому браузері", + "otherBrowser": "Спробуйте інший браузер" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Відкрити все в новій вкладці" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Рухайся.", + "moveDown": "Вниз.", + "addCategory": "Додати категорію {{location}}", + "addAbove": "вище", + "addBelow": "нижче" } } \ 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 6e8514058..752990d92 100644 --- a/public/locales/uk/layout/element-selector/selector.json +++ b/public/locales/uk/layout/element-selector/selector.json @@ -8,18 +8,18 @@ "actionIcon": { "tooltip": "Додати плитку" }, - "apps": "", + "apps": "Додатки", "app": { - "defaultName": "" + "defaultName": "Ваші додатки" }, - "widgets": "", - "categories": "", + "widgets": "Віджети", + "categories": "Категорії", "category": { - "newName": "", - "defaultName": "", + "newName": "Назва категорії", + "defaultName": "Нова категорія", "created": { - "title": "", - "message": "" + "title": "Категорію створено", + "message": "Створено категорію \"{{name}}\"" } } } diff --git a/public/locales/uk/layout/errors/access-denied.json b/public/locales/uk/layout/errors/access-denied.json new file mode 100644 index 000000000..c6373d727 --- /dev/null +++ b/public/locales/uk/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "У доступі відмовлено.", + "text": "Ви не маєте достатніх прав для доступу до цієї сторінки. Якщо ви вважаєте, що це сталося ненавмисно, будь ласка, зв'яжіться з вашим адміністратором.", + "switchAccount": "Перейдіть до іншого облікового запису" +} \ No newline at end of file diff --git a/public/locales/uk/layout/errors/not-found.json b/public/locales/uk/layout/errors/not-found.json index 9e26dfeeb..362be27c9 100644 --- a/public/locales/uk/layout/errors/not-found.json +++ b/public/locales/uk/layout/errors/not-found.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "title": "Сторінку не знайдено", + "text": "Цю сторінку не вдалося знайти. Можливо, термін дії URL-адреси цієї сторінки закінчився, URL-адреса є недійсною або ви маєте необхідні дозволи для доступу до цього ресурсу.", + "button": "Повернутися додому" +} \ No newline at end of file diff --git a/public/locales/uk/layout/header.json b/public/locales/uk/layout/header.json new file mode 100644 index 000000000..997a7e38d --- /dev/null +++ b/public/locales/uk/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Це експериментальна функція Homarr. Будь ласка, повідомляйте про будь-які проблеми на GitHub або Discord." + }, + "search": { + "label": "Пошук", + "engines": { + "web": "Шукайте {{query}} в Інтернеті", + "youtube": "Шукайте {{query}} на YouTube", + "torrent": "Шукайте торренти на {{query}}", + "movie": "Шукайте {{query}} на {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Змінити тему", + "preferences": "Налаштування користувача", + "defaultBoard": "Інформаційна панель за замовчуванням", + "manage": "Керувати", + "logout": "Вийдіть з {{username}}", + "login": "Логін" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "Найкращі {{count}} результати для {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/uk/layout/header/actions/toggle-edit-mode.json b/public/locales/uk/layout/header/actions/toggle-edit-mode.json index b3dcae0b5..039762ea0 100644 --- a/public/locales/uk/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/uk/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Режим редагування включений для <1>{{size}} розміру", "text": "Тепер ви можете налаштовувати та конфігурувати свої додатки. Зміни не зберігаються до виходу з режиму редагування" }, - "unloadEvent": "" + "unloadEvent": "Вийдіть з режиму редагування, щоб зберегти зміни" } diff --git a/public/locales/uk/layout/manage.json b/public/locales/uk/layout/manage.json new file mode 100644 index 000000000..f92ec7d08 --- /dev/null +++ b/public/locales/uk/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Головна" + }, + "boards": { + "title": "Дошки" + }, + "users": { + "title": "Користувачі", + "items": { + "manage": "Керувати", + "invites": "Запрошує" + } + }, + "help": { + "title": "Допоможіть!", + "items": { + "documentation": "Документація", + "report": "Повідомити про проблему / помилку", + "discord": "Розбрат у громаді", + "contribute": "Зробити внесок" + } + }, + "tools": { + "title": "Інструменти", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Про програму" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/layout/modals/about.json b/public/locales/uk/layout/modals/about.json index 6ff15d53c..445468685 100644 --- a/public/locales/uk/layout/modals/about.json +++ b/public/locales/uk/layout/modals/about.json @@ -1,21 +1,22 @@ { "description": "Homarr - це витончена, сучасна інформаційна панель, яка надає всі ваші додатки та сервіси під рукою. З Homarr ви можете отримати доступ до всього і контролювати все в одному зручному місці. Homarr легко інтегрується з додатками, які ви додали, надаючи вам цінну інформацію та забезпечуючи повний контроль. Встановлення дуже просте, і Homarr підтримує широкий спектр методів розгортання.", - "contact": "Виникли проблеми або питання? Зв'яжіться з нами!", "addToDashboard": "Додати до панелі інструментів", "tip": "Mod відноситься до клавіші модифікатора, це клавіші Ctrl та Command/Super/Windows", "key": "Гарячі клавіши", "action": "Дії", "keybinds": "Сполучення клавіш", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { - "toggleTheme": "", - "focusSearchBar": "", - "openDocker": "", - "toggleEdit": "" + "toggleTheme": "Перемикання світлого/темного режиму", + "focusSearchBar": "Зосередьтеся на рядку пошуку", + "openDocker": "Відкрити віджет докера", + "toggleEdit": "Переключити режим редагування" }, "metrics": { "configurationSchemaVersion": "Версія схеми конфігурації", - "configurationsCount": "Доступні конфігурації", "version": "Версія", "nodeEnvironment": "Середовище вузла", "i18n": "Завантажено інтернаціональні переклади", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "ЕКСПЕРИМЕНТАЛЬНО: Вимкнути режим редагування" }, "version": { - "new": "", - "dropdown": "" + "new": "Нове: {{newVersion}}", + "dropdown": "Доступна версія {{newVersion}} ! Поточна версія {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/uk/layout/modals/add-app.json b/public/locales/uk/layout/modals/add-app.json index f7d1cea1e..681f2c7ee 100644 --- a/public/locales/uk/layout/modals/add-app.json +++ b/public/locales/uk/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Внутрішня адреса", - "description": "Внутрішній IP додатку." + "description": "Внутрішній IP додатку.", + "troubleshoot": { + "label": "Маєш проблеми?", + "header": "Ось список найпоширеніших помилок і способів їх усунення:", + "lines": { + "nothingAfterPort": "У більшості, якщо не у всіх випадках, не слід вводити шлях після порту. (Навіть \"/admin\" для pihole або \"/web\" для plex).", + "protocolCheck": "Завжди переконайтеся, що перед URL-адресою стоїть http або https, а також переконайтеся, що ви використовуєте правильний протокол.", + "preferIP": "Рекомендується використовувати прямий ip машини або контейнера, з яким ви намагаєтеся зв'язатися.", + "enablePings": "Перевірте правильність IP-адреси, увімкнувши пінг. Налаштуйте Board -> Макет -> Увімкнути пінги. На плитці вашого додатку з'явиться маленька червона або зелена бульбашка, при наведенні на яку ви побачите код відповіді (у більшості випадків очікується зелена бульбашка з кодом 200).", + "wget": "Щоб переконатися, що homarr може спілкуватися з іншими програмами, виконайте wget/curl/ping IP:порт програми.", + "iframe": "Що стосується iframe, то вони завжди повинні використовувати той самий протокол (http/s), що і Homarr.", + "clearCache": "Деякі дані зберігаються в кеші, тому інтеграція може не спрацювати, якщо ви не очистите кеш у загальних налаштуваннях Homarr." + }, + "footer": "Щоб дізнатися більше про усунення несправностей, зверніться на наш сайт {{discord}}." + } }, "externalAddress": { "label": "Зовнішня адреса", @@ -26,10 +40,10 @@ "description": "Відкрийте додаток у новій вкладці замість поточної." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Опис програми", + "description": "Текст, який ви введете, з'явиться при наведенні на ваш додаток.\r\nВикористовуйте його, щоб надати користувачам більше інформації про ваш додаток або залишити порожнім, щоб нічого не було." }, - "customProtocolWarning": "" + "customProtocolWarning": "Використання нестандартного протоколу. Це може вимагати попередньо встановлених додатків і створювати ризики для безпеки. Переконайтеся, що ваша адреса є безпечною та надійною." }, "network": { "statusChecker": { @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Назва програми Розмір шрифту", + "description": "Встановіть розмір шрифту для відображення назви програми на плитці." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Назва програми Статус", + "description": "Виберіть, де ви хочете, щоб заголовок відображався, якщо він взагалі буде відображатися.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Показувати назву тільки на плитці", + "hover": "Показувати назву лише при наведенні підказки", + "hidden": "Не з'являтися взагалі" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Назва програми Посада", + "description": "Позиція назви програми відносно іконки.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Верхня частина", + "right": "Так.", + "bottom": "Дно.", + "left": "Ліворуч." } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Назва програми Затискач лінії", + "description": "Визначає, на скількох рядках повинен максимально вміститися ваш заголовок. Встановіть 0 для необмеженого." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Ваша форма містить неприпустимі дані тож не може бути збережена. Будь ласка, розв'яжіть усі проблеми та натисніть цю кнопку знову, щоб зберегти свої зміни", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Ім'я обов'язкове", + "noUrl": "Урл обов'язковий", + "invalidUrl": "Значення не є правильним URL-адресою", + "noIconUrl": "Це поле обов'язкове для заповнення", + "noExternalUri": "Потрібен зовнішній URI", + "invalidExternalUri": "Зовнішній URI не є дійсним" } } diff --git a/public/locales/uk/manage/boards.json b/public/locales/uk/manage/boards.json new file mode 100644 index 000000000..04ab59f8c --- /dev/null +++ b/public/locales/uk/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "Дошки", + "pageTitle": "Дошки", + "cards": { + "statistics": { + "apps": "Додатки", + "widgets": "Віджети", + "categories": "Категорії" + }, + "buttons": { + "view": "Дошка оголошень" + }, + "menu": { + "setAsDefault": "Встановити як дошку за замовчуванням", + "delete": { + "label": "Видалити назавжди", + "disabled": "Видалення вимкнено, оскільки старіші компоненти Homarr не дозволяють видаляти конфігурацію за замовчуванням. Видалення буде можливим у майбутньому." + } + }, + "badges": { + "fileSystem": "Файлова система", + "default": "За замовчуванням" + } + }, + "buttons": { + "create": "Створити нову дошку" + }, + "modals": { + "delete": { + "title": "Видалити дошку", + "text": "Ви впевнені, що хочете видалити цю дошку? Ця дія не може бути скасована, і ваші дані будуть безповоротно втрачені." + }, + "create": { + "title": "Створити дошку", + "text": "Після створення дошки назву не можна змінити.", + "form": { + "name": { + "label": "Ім’я" + }, + "submit": "Створити" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/index.json b/public/locales/uk/manage/index.json new file mode 100644 index 000000000..6bbae05ee --- /dev/null +++ b/public/locales/uk/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Керувати", + "hero": { + "title": "Ласкаво просимо назад, {{username}}", + "fallbackUsername": "Анонім", + "subtitle": "Ласкаво просимо до Центру подачі заявок. Організовуй, оптимізуй та перемагай!" + }, + "quickActions": { + "title": "Швидкі дії", + "boards": { + "title": "Твої дошки", + "subtitle": "Створюйте та керуйте своїми дошками" + }, + "inviteUsers": { + "title": "Запросити нового користувача", + "subtitle": "Створіть та надішліть запрошення для реєстрації" + }, + "manageUsers": { + "title": "Керування користувачами", + "subtitle": "Видаляйте користувачів та керуйте ними" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/users.json b/public/locales/uk/manage/users.json new file mode 100644 index 000000000..0101c26c2 --- /dev/null +++ b/public/locales/uk/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "Користувачі", + "pageTitle": "Керування користувачами", + "text": "За допомогою користувачів ви можете налаштувати, хто може редагувати ваші дашборди. Майбутні версії Homarr матимуть ще більш детальний контроль над дозволами та дошками.", + "buttons": { + "create": "Створити" + }, + "table": { + "header": { + "user": "Користувач" + } + }, + "tooltips": { + "deleteUser": "Видалити користувача", + "demoteAdmin": "Розжалування адміністратора", + "promoteToAdmin": "Підвищення до адміністратора" + }, + "modals": { + "delete": { + "title": "Видалити користувача {{name}}", + "text": "Ви впевнені, що хочете видалити користувача {{name}}? Це призведе до видалення даних, пов'язаних з цим обліковим записом, але не видалить жодних створених ним дашбордів." + }, + "change-role": { + "promote": { + "title": "Призначити користувача {{name}} адміністратором", + "text": "Ви впевнені, що хочете призначити користувача {{name}} адміністратором? Це дасть користувачеві доступ до всіх ресурсів вашого екземпляра Homarr." + }, + "demote": { + "title": "Знизити користувача {{name}} до користувача", + "text": "Ви впевнені, що хочете понизити користувача {{name}} до рівня користувача? Це позбавить користувача доступу до всіх ресурсів вашого екземпляра Homarr." + }, + "confirm": "Підтвердити" + } + }, + "searchDoesntMatch": "Ваш пошук не знайшов жодного запису. Будь ласка, налаштуйте фільтр." +} \ No newline at end of file diff --git a/public/locales/uk/manage/users/create.json b/public/locales/uk/manage/users/create.json new file mode 100644 index 000000000..861dfef2e --- /dev/null +++ b/public/locales/uk/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Створити користувача", + "steps": { + "account": { + "title": "Перший крок", + "text": "Створити обліковий запис", + "username": { + "label": "Логін" + }, + "email": { + "label": "Електронна пошта" + } + }, + "security": { + "title": "Другий крок", + "text": "Пароль", + "password": { + "label": "Пароль" + } + }, + "finish": { + "title": "Підтвердження", + "text": "Зберегти в базі даних", + "card": { + "title": "Перегляньте свої матеріали", + "text": "Після того, як ви внесете дані до бази даних, користувач зможе увійти в систему. Ви впевнені, що хочете зберегти цього користувача в базі даних і активувати вхід?" + }, + "table": { + "header": { + "property": "Власність", + "value": "Значення", + "username": "Логін", + "email": "Електронна пошта", + "password": "Пароль" + }, + "notSet": "Не встановлено", + "valid": "Дійсний" + }, + "failed": "Не вдалося створити користувача: {{error}}" + }, + "completed": { + "alert": { + "title": "Створено користувача", + "text": "Користувача було створено в базі даних. Тепер він може увійти в систему." + } + } + }, + "buttons": { + "generateRandomPassword": "Згенеруйте випадковий", + "createAnother": "Створіть ще один" + } +} \ No newline at end of file diff --git a/public/locales/uk/manage/users/invites.json b/public/locales/uk/manage/users/invites.json new file mode 100644 index 000000000..4fb6bf2a4 --- /dev/null +++ b/public/locales/uk/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Користувач запрошує", + "pageTitle": "Керування запрошеннями користувачів", + "description": "За допомогою запрошень ви можете запросити користувачів до вашого екземпляру Homarr. Запрошення буде дійсним лише протягом певного періоду часу і може бути використане один раз. Термін дії повинен бути від 5 хвилин до 12 місяців з моменту створення.", + "button": { + "createInvite": "Створити запрошення", + "deleteInvite": "Видалити запрошення" + }, + "table": { + "header": { + "id": "ІДЕНТИФІКАТОР", + "creator": "Творець", + "expires": "Закінчується", + "action": "Дії" + }, + "data": { + "expiresAt": "закінчився {{at}}", + "expiresIn": "в {{in}}" + } + }, + "modals": { + "create": { + "title": "Створити запрошення", + "description": "Після закінчення терміну дії запрошення буде недійсним, і одержувач запрошення не зможе створити обліковий запис.", + "form": { + "expires": "Термін придатності", + "submit": "Створити" + } + }, + "copy": { + "title": "Скопіювати запрошення", + "description": "Ваше запрошення згенеровано. Після закриття цього модального вікна ви більше не зможете скопіювати це посилання. Якщо ви більше не бажаєте запрошувати зазначену особу, ви можете видалити це запрошення в будь-який час.", + "invitationLink": "Посилання на запрошення", + "details": { + "id": "ІДЕНТИФІКАТОР", + "token": "Токен." + }, + "button": { + "close": "Скопіювати та відправити" + } + }, + "delete": { + "title": "Видалити запрошення", + "description": "Ви впевнені, що хочете видалити це запрошення? Користувачі з цим посиланням більше не зможуть створити обліковий запис за цим посиланням." + } + }, + "noInvites": "Запрошень ще немає." +} \ No newline at end of file diff --git a/public/locales/uk/modules/bookmark.json b/public/locales/uk/modules/bookmark.json index 78fc1e02e..64de5207a 100644 --- a/public/locales/uk/modules/bookmark.json +++ b/public/locales/uk/modules/bookmark.json @@ -5,8 +5,8 @@ "settings": { "title": "Налаштування обраного", "name": { - "label": "", - "info": "" + "label": "Назва віджету", + "info": "Залиште порожнім, щоб не показувати назву." }, "items": { "label": "Елементи" @@ -14,9 +14,9 @@ "layout": { "label": "Макет", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Автоматична сітка", + "horizontal": "Горизонтальний", + "vertical": "Вертикальний" } } } @@ -29,15 +29,15 @@ }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "Довжина повинна бути між {{shortest}} та {{longest}}", + "invalidLink": "Недійсне посилання", + "errorMsg": "Не збереглося, тому що виникли помилки при валідації. Будь ласка, виправте ваші дані" }, "name": "Ім’я", - "url": "", + "url": "URL", "newTab": "Відкрити в новій вкладці", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Приховати ім'я хоста", + "hideIcon": "Приховати іконку", "delete": "Видалити" } } diff --git a/public/locales/uk/modules/calendar.json b/public/locales/uk/modules/calendar.json index 546914f46..b590031e0 100644 --- a/public/locales/uk/modules/calendar.json +++ b/public/locales/uk/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Показує календар з майбутніми випусками з підтримуваних інтеграцій.", "settings": { "title": "Налаштування віджету календаря", - "useSonarrv4": { - "label": "Використовувати Sonarr v4 API" - }, - "sundayStart": { - "label": "Почати тиждень у Неділю" - }, "radarrReleaseType": { "label": "Radarr - тип релізів", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "У кінотеатрах", + "physicalRelease": "Фізичне", + "digitalRelease": "Цифрове" } }, "hideWeekDays": { - "label": "" + "label": "Приховати дні тижня" }, "showUnmonitored": { - "label": "" + "label": "Показати елементи, за якими не ведеться спостереження" }, "fontSize": { "label": "Розмір шрифту", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Дуже маленьке", + "sm": "Малий", + "md": "Середній", + "lg": "Великий", + "xl": "Дуже великий" } } } diff --git a/public/locales/uk/modules/date.json b/public/locales/uk/modules/date.json index 7b6a543df..8677fa7cb 100644 --- a/public/locales/uk/modules/date.json +++ b/public/locales/uk/modules/date.json @@ -8,24 +8,24 @@ "label": "Показувати повний час (24 години)" }, "dateFormat": { - "label": "", + "label": "Формат дати", "data": { - "hide": "" + "hide": "Сховати дату" } }, "enableTimezone": { - "label": "" + "label": "Відображати ваш часовий пояс" }, "timezoneLocation": { - "label": "" + "label": "Місцезнаходження часовий поясу" }, "titleState": { - "label": "", - "info": "", + "label": "Назва міста", + "info": "Якщо ви активуєте опцію Часовий пояс, можна показати назву міста та код часового поясу.
Ви також можете показати лише місто або взагалі не показувати жодного.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Місто та часовий пояс", + "city": "Лише місто", + "none": "Нема" } } } diff --git a/public/locales/uk/modules/dns-hole-controls.json b/public/locales/uk/modules/dns-hole-controls.json index 6971386ba..0e2f1d433 100644 --- a/public/locales/uk/modules/dns-hole-controls.json +++ b/public/locales/uk/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Контроль DNS-hole", - "description": "Керуйте PiHole або AdGuard за допомогою головної панелі" + "description": "Керуйте PiHole або AdGuard за допомогою головної панелі", + "settings": { + "title": "Налаштування керування дірками DNS", + "showToggleAllButtons": { + "label": "Показати кнопки \"Увімкнути/вимкнути все" + } + }, + "errors": { + "general": { + "title": "Не вдалося знайти дірку в DNS", + "text": "Виникла проблема з підключенням до ваших DNS-дірок. Будь ласка, перевірте вашу конфігурацію/інтеграцію." + } + } } } \ No newline at end of file diff --git a/public/locales/uk/modules/dns-hole-summary.json b/public/locales/uk/modules/dns-hole-summary.json index bc267531a..40d772826 100644 --- a/public/locales/uk/modules/dns-hole-summary.json +++ b/public/locales/uk/modules/dns-hole-summary.json @@ -10,9 +10,9 @@ "layout": { "label": "Макет", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 на 2", + "row": "Горизонтальний", + "column": "Вертикальний" } } } @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Домени в списках реклами", "queriesToday": "Запити за сьогодні", - "queriesBlockedTodayPercentage": "заблоковано сьогодні", - "queriesBlockedToday": "заблоковано сьогодні" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/uk/modules/iframe.json b/public/locales/uk/modules/iframe.json index fcdfda502..a4a8720a3 100644 --- a/public/locales/uk/modules/iframe.json +++ b/public/locales/uk/modules/iframe.json @@ -11,35 +11,35 @@ "label": "Дозволити повноекранний режим" }, "allowTransparency": { - "label": "" + "label": "Забезпечити прозорість" }, "allowScrolling": { - "label": "" + "label": "Дозволити прокрутку" }, "allowPayment": { - "label": "" + "label": "Дозволити платіж" }, "allowAutoPlay": { - "label": "" + "label": "Увімкнути автоматичне відтворення" }, "allowMicrophone": { - "label": "" + "label": "Увімкнути мікрофон" }, "allowCamera": { - "label": "" + "label": "Увімкнути камеру" }, "allowGeolocation": { - "label": "" + "label": "Дозволити геолокацію" } } }, "card": { "errors": { "noUrl": { - "title": "", + "title": "Неправильна URL-адреса", "text": "Переконайтеся, що Ви ввели правильну адресу в налаштуваннях вашого віджета" }, - "browserSupport": "" + "browserSupport": "Ваш браузер не підтримує iframe. Будь ласка, оновіть свій браузер." } } } diff --git a/public/locales/uk/modules/media-requests-list.json b/public/locales/uk/modules/media-requests-list.json index 2d7997c94..441f5f640 100644 --- a/public/locales/uk/modules/media-requests-list.json +++ b/public/locales/uk/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "Замініть посилання на зовнішній хост" }, "openInNewTab": { - "label": "" + "label": "Відкрийте посилання в новій вкладці" } } }, "noRequests": "Запитів не знайдено. Будь ласка, переконайтеся, що ви правильно налаштували свої програми.", - "pending": "На схвалення чекають {{countPendingApproval}} запитів.", - "nonePending": "Наразі немає запитів на дозвіл у черзі. Все добре!", "state": { "approved": "Схвалено", "pendingApproval": "Очікує схвалення", @@ -23,13 +21,13 @@ "tooltips": { "approve": "Запити на підтвердження", "decline": "Відхиляти запити", - "approving": "" + "approving": "Затверджую запит..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Затверджую", + "declining": "Занепад", + "request": "прохання...", + "approved": "Запит схвалено!", + "declined": "Запит відхилено!" } } diff --git a/public/locales/uk/modules/media-requests-stats.json b/public/locales/uk/modules/media-requests-stats.json index 078a0d2ad..8fc913470 100644 --- a/public/locales/uk/modules/media-requests-stats.json +++ b/public/locales/uk/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Замініть посилання на зовнішній хост" }, "openInNewTab": { - "label": "" + "label": "Відкрийте посилання в новій вкладці" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Медіа-статистика", + "pending": "Очікує схвалення", + "tvRequests": "Запити на ТБ", + "movieRequests": "Запити на фільми", + "approved": "Вже затверджено", + "totalRequests": "Всього" }, "userStats": { - "title": "", - "requests": "" + "title": "Найкращі користувачі", + "requests": "Запити: {{number}}" } } diff --git a/public/locales/uk/modules/media-server.json b/public/locales/uk/modules/media-server.json index 9123f293a..413083de2 100644 --- a/public/locales/uk/modules/media-server.json +++ b/public/locales/uk/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Налаштування віджету медіасервера" } }, - "loading": "", + "loading": "Потоки завантаження", "card": { "table": { "header": { diff --git a/public/locales/uk/modules/notebook.json b/public/locales/uk/modules/notebook.json index 3ad2a768e..ac038aa7f 100644 --- a/public/locales/uk/modules/notebook.json +++ b/public/locales/uk/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Блокнот", + "description": "Інтерактивний віджет на основі розмітки для запису нотаток!", "settings": { - "title": "", + "title": "Налаштування віджету блокнота", "showToolbar": { + "label": "Показати панель інструментів для написання націнки" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "Зміст зошита" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/uk/modules/rss.json b/public/locales/uk/modules/rss.json index 0b65dd9e3..26729a4c1 100644 --- a/public/locales/uk/modules/rss.json +++ b/public/locales/uk/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "RSS-віджет", - "description": "", + "description": "Віджет rss дозволяє відображати RSS-канали на вашій інформаційній панелі.", "settings": { "title": "Налаштування віджету RSS", "rssFeedUrl": { @@ -12,11 +12,11 @@ "label": "Інтервал оновлення (хвилини)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Дозволити форматування HTML (Небезпечно)", + "info": "Дозвіл на форматування HTML ззовні може бути небезпечним.
Будь ласка, переконайтеся, що канал надходить з надійного джерела." }, "textLinesClamp": { - "label": "" + "label": "Затискач текстових рядків" } }, "card": { diff --git a/public/locales/uk/modules/torrents-status.json b/public/locales/uk/modules/torrents-status.json index b37190d97..83986d2f9 100644 --- a/public/locales/uk/modules/torrents-status.json +++ b/public/locales/uk/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Відображати завершені торренти" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Відображати застарілі торренти" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Відмітити список", "description": "Якщо позначено опцію \"білий список\", він буде діяти як білий список. Якщо не позначено, це чорний список. Нічого не робитиме, якщо порожній" + }, + "displayRatioWithFilter": { + "label": "", + "info": "" } } }, "card": { "footer": { "error": "Помилка", - "lastUpdated": "Востаннє оновлено {{time}} тому" + "lastUpdated": "Востаннє оновлено {{time}} тому", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -59,12 +71,12 @@ }, "generic": { "title": "Трапилась неочікувана помилка", - "text": "" + "text": "Не вдається зв'язатися з вашими Torrent-клієнтами. Будь ласка, перевірте вашу конфігурацію" } }, "loading": { - "title": "", - "description": "" + "title": "Завантаження", + "description": "Встановлення з'єднання" }, "popover": { "introductionPrefix": "Керується", diff --git a/public/locales/uk/modules/weather.json b/public/locales/uk/modules/weather.json index 7ce100ea8..7ac701abe 100644 --- a/public/locales/uk/modules/weather.json +++ b/public/locales/uk/modules/weather.json @@ -8,7 +8,7 @@ "label": "Використовувати Фаренгейт" }, "displayCityName": { - "label": "" + "label": "Показувати назву міста" }, "location": { "label": "Погодна локація" @@ -33,5 +33,5 @@ "unknown": "Невідомо" } }, - "error": "" + "error": "Виникла помилка" } diff --git a/public/locales/uk/password-requirements.json b/public/locales/uk/password-requirements.json new file mode 100644 index 000000000..583014f02 --- /dev/null +++ b/public/locales/uk/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Включає кількість", + "lowercase": "Включає малу літеру", + "uppercase": "Включає велику літеру", + "special": "Включає спеціальний символ", + "length": "Містить принаймні {{count}} символів" +} \ No newline at end of file diff --git a/public/locales/uk/settings/customization/access.json b/public/locales/uk/settings/customization/access.json new file mode 100644 index 000000000..7d212ea8b --- /dev/null +++ b/public/locales/uk/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Дозволити анонімність", + "description": "Дозволити користувачам, які не ввійшли в систему, переглядати вашу дошку" + } +} \ No newline at end of file diff --git a/public/locales/uk/settings/customization/general.json b/public/locales/uk/settings/customization/general.json index 6e1b4e004..4903ddbe1 100644 --- a/public/locales/uk/settings/customization/general.json +++ b/public/locales/uk/settings/customization/general.json @@ -18,8 +18,12 @@ "description": "Налаштування фону, кольорів і додатків" }, "accessibility": { + "name": "Доступність", + "description": "Налаштування Homarr для користувачів з обмеженими можливостями" + }, + "access": { "name": "", - "description": "" + "description": "Налаштуйте, хто має доступ до вашої дошки" } } } diff --git a/public/locales/uk/settings/customization/page-appearance.json b/public/locales/uk/settings/customization/page-appearance.json index ffbb619d8..3c5adce8f 100644 --- a/public/locales/uk/settings/customization/page-appearance.json +++ b/public/locales/uk/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Крім того, налаштуйте дашборд за допомогою CSS, що рекомендується лише досвідченим користувачам", "placeholder": "Власний CSS буде оброблятися в останню чергу", "applying": "Застосувати CSS..." - }, - "buttons": { - "submit": "Надіслати" } -} +} \ No newline at end of file diff --git a/public/locales/uk/settings/general/cache-buttons.json b/public/locales/uk/settings/general/cache-buttons.json index 685994c48..1b87c03e8 100644 --- a/public/locales/uk/settings/general/cache-buttons.json +++ b/public/locales/uk/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Очищення кешу", "selector": { - "label": "", + "label": "Виберіть кеш(и) для очищення", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Пінг-запити", + "repositoryIcons": "Піктограми віддаленого/локального доступу", + "calendar&medias": "Медіа з календаря", + "weather": "Дані про погоду" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Кеш очищено.", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Очистити весь кеш", + "notificationMessage": "Весь кеш очищено" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Очистити вибрані запити", + "notificationMessageSingle": "Очищено кеш для {{value}}", + "notificationMessageMulti": "Очищено кеш для {{values}}" } } } \ No newline at end of file diff --git a/public/locales/uk/settings/general/edit-mode-toggle.json b/public/locales/uk/settings/general/edit-mode-toggle.json index a3b0f992c..e579df737 100644 --- a/public/locales/uk/settings/general/edit-mode-toggle.json +++ b/public/locales/uk/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Переключити режим редагування", + "enable": "Увімкнути режим редагування", + "disable": "Вимкнути режим редагування" }, "form": { - "label": "", - "message": "", + "label": "Змінити пароль", + "message": "Для того, щоб переключити режим редагування, вам потрібно ввести пароль, який ви ввели у змінній оточення з назвою EDIT_MODE_PASSWORD . Якщо він не встановлений, ви не зможете вмикати та вимикати режим редагування.", "submit": "Надіслати" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Успіх", + "message": "Успішно переключено режим редагування, перезавантажено сторінку..." }, "error": { "title": "Помилка", - "message": "" + "message": "Не вдалося увімкнути режим редагування, спробуйте ще раз." } } } \ No newline at end of file diff --git a/public/locales/uk/settings/general/search-engine.json b/public/locales/uk/settings/general/search-engine.json index 334e21b4a..587b04dec 100644 --- a/public/locales/uk/settings/general/search-engine.json +++ b/public/locales/uk/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Пошукова система", "configurationName": "Налаштування пошукової системи", - "custom": "", + "custom": "Нестандартний", "tips": { "generalTip": "Ви можете використовувати кілька префіксів! Додавання їх перед запитом відфільтрує результати. !s (веб), !t (торренти), !y (YouTube) і !m (медіа).", "placeholderTip": "%s можна використовувати як заповнювач для запиту." diff --git a/public/locales/uk/tools/docker.json b/public/locales/uk/tools/docker.json new file mode 100644 index 000000000..e75f23653 --- /dev/null +++ b/public/locales/uk/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "У вашому екземплярі Homarr не налаштовано Docker або він помилково завантажив контейнери. Будь ласка, зверніться до документації про те, як налаштувати інтеграцію." + } + }, + "modals": { + "selectBoard": { + "title": "Виберіть дошку", + "text": "Виберіть дошку, на яку ви хочете додати програми для вибраних контейнерів Docker.", + "form": { + "board": { + "label": "Правління" + }, + "submit": "Додавання додатків" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Додані додатки на дошку оголошень", + "message": "На дошку додано додатки для вибраних Docker-контейнерів." + }, + "error": { + "title": "Не вдалося додати додатки на дошку оголошень", + "message": "Додатки для вибраних Docker-контейнерів не вдалося додати на дошку." + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/user/preferences.json b/public/locales/uk/user/preferences.json new file mode 100644 index 000000000..07377bb3a --- /dev/null +++ b/public/locales/uk/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Уподобання", + "pageTitle": "Ваші уподобання", + "boards": { + "defaultBoard": { + "label": "Плата за замовчуванням" + } + }, + "accessibility": { + "title": "Доступність", + "disablePulse": { + "label": "Вимкнути пінг-імпульс", + "description": "За замовчуванням, індикатори пінгу в Homarr пульсують. Це може дратувати. Цей повзунок вимкне анімацію" + }, + "replaceIconsWithDots": { + "label": "Замінити точки пінгу на іконки", + "description": "Для дальтоніків точки пінгу можуть бути невпізнанними. У цьому випадку індикатори будуть замінені на піктограми" + } + }, + "localization": { + "language": { + "label": "Мова/Language" + }, + "firstDayOfWeek": { + "label": "Перший день тижня", + "options": { + "monday": "Понеділок", + "saturday": "Субота", + "sunday": "Неділя" + } + } + }, + "searchEngine": { + "title": "Пошукова система", + "custom": "Нестандартний", + "newTab": { + "label": "Відкрийте результати пошуку в новій вкладці" + }, + "autoFocus": { + "label": "Сфокусуйте рядок пошуку при завантаженні сторінки.", + "description": "Це автоматично сфокусує рядок пошуку, коли ви переходите на сторінки форуму. Це працюватиме лише на десктопних пристроях." + }, + "template": { + "label": "URL-адреса запиту", + "description": "Використовуйте %s в якості заповнювача для запиту" + } + } +} \ No newline at end of file diff --git a/public/locales/uk/zod.json b/public/locales/uk/zod.json new file mode 100644 index 000000000..f6cdea418 --- /dev/null +++ b/public/locales/uk/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Це поле є недійсним", + "required": "Це поле обов'язкове для заповнення", + "string": { + "startsWith": "Це поле повинно починатися з {{startsWith}}", + "endsWith": "Це поле повинно закінчуватися на {{endsWith}}", + "includes": "Це поле повинно містити {{includes}}" + }, + "tooSmall": { + "string": "Це поле повинно мати довжину не менше {{minimum}} символів", + "number": "Це поле повинно бути більше або дорівнювати {{minimum}}" + }, + "tooBig": { + "string": "Це поле має містити не більше {{maximum}} символів", + "number": "Це поле повинно бути менше або дорівнювати {{maximum}}" + }, + "custom": { + "passwordMatch": "Паролі повинні збігатися" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/authentication/invite.json b/public/locales/vi/authentication/invite.json new file mode 100644 index 000000000..e6e658902 --- /dev/null +++ b/public/locales/vi/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "Tạo tài khoản", + "title": "Tạo tài khoản", + "text": "Vui lòng xác định thông tin xác thực của bạn bên dưới", + "form": { + "fields": { + "username": { + "label": "Tên người dùng" + }, + "password": { + "label": "Mật khẩu" + }, + "passwordConfirmation": { + "label": "Xác nhận mật khẩu" + } + }, + "buttons": { + "submit": "Tạo tài khoản" + } + }, + "notifications": { + "loading": { + "title": "Tạo tài khoản", + "text": "Vui lòng chờ" + }, + "success": { + "title": "Tài khoản đã được tạo", + "text": "Tài khoản của bạn đã được tạo thành công" + }, + "error": { + "title": "Lỗi", + "text": "Đã xảy ra lỗi, gặp lỗi sau: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/authentication/login.json b/public/locales/vi/authentication/login.json index 145609f0f..f26c2c6f0 100644 --- a/public/locales/vi/authentication/login.json +++ b/public/locales/vi/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "Đăng nhập", "title": "Chào mừng quay trở lại!", - "text": "Vui lòng nhập mật khẩu", + "text": "Vui lòng nhập thông tin xác thực của bạn", "form": { "fields": { + "username": { + "label": "Tên người dùng" + }, "password": { - "label": "Mật khẩu", - "placeholder": "Mật khẩu của bạn" + "label": "Mật khẩu" } }, "buttons": { "submit": "Đăng nhập" - } + }, + "afterLoginRedirection": "Sau khi đăng nhập, bạn sẽ được chuyển hướng đến {{url}}" }, - "notifications": { - "checking": { - "title": "Đang kiểm tra mật khẩu", - "message": "Mật khẩu của bạn đang được kiểm tra..." - }, - "correct": { - "title": "Đăng nhập thành công, đang chuyển hướng..." - }, - "wrong": { - "title": "Mật khẩu vừa nhập không đúng, xin vui lòng thử lại." - } - } -} + "alert": "Thông tin xác thực của bạn không chính xác hoặc tài khoản này không tồn tại. Vui lòng thử lại." +} \ No newline at end of file diff --git a/public/locales/vi/boards/common.json b/public/locales/vi/boards/common.json new file mode 100644 index 000000000..836e98d81 --- /dev/null +++ b/public/locales/vi/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "Tùy chỉnh bảng" + } +} \ No newline at end of file diff --git a/public/locales/vi/boards/customize.json b/public/locales/vi/boards/customize.json new file mode 100644 index 000000000..75e3209d7 --- /dev/null +++ b/public/locales/vi/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "Tùy chỉnh {{name}} bảng", + "pageTitle": "Tùy chỉnh cho {{name}} bảng", + "backToBoard": "Quay lại bảng", + "settings": { + "appearance": { + "primaryColor": "Màu chính", + "secondaryColor": "Màu thứ cấp" + } + }, + "save": { + "button": "Lưu thay đổi", + "note": "Hãy cẩn thận, bạn có những thay đổi chưa được lưu!" + }, + "notifications": { + "pending": { + "title": "Đang lưu tùy chỉnh", + "message": "Vui lòng đợi trong khi chúng tôi lưu tùy chỉnh của bạn" + }, + "success": { + "title": "Đã lưu tùy chỉnh", + "message": "Tùy chỉnh của bạn đã được lưu thành công" + }, + "error": { + "title": "Lỗi", + "message": "Không thể lưu thay đổi" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index d1565fc33..c37ea6b9d 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -1,11 +1,17 @@ { "save": "Lưu", + "apply": "", + "insert": "", "about": "Về chúng tôi", "cancel": "Hủy", "close": "Đóng", + "back": "Mặt sau", "delete": "Xóa", "ok": "OK", "edit": "Sửa", + "next": "Kế tiếp", + "previous": "Trước", + "confirm": "Xác nhận", "enabled": "Bật", "disabled": "Tắt", "enableAll": "Bật toàn bộ", @@ -36,5 +42,14 @@ "medium": "trung bình", "large": "lớn" }, - "seeMore": "" + "seeMore": "Xem thêm...", + "position": { + "left": "Bên trái", + "center": "", + "right": "Phải" + }, + "attributes": { + "width": "Chiều rộng", + "height": "Chiều cao" + } } \ No newline at end of file diff --git a/public/locales/vi/layout/common.json b/public/locales/vi/layout/common.json index 4f4c4e6b4..5cece27e7 100644 --- a/public/locales/vi/layout/common.json +++ b/public/locales/vi/layout/common.json @@ -1,25 +1,25 @@ { "modals": { "blockedPopups": { - "title": "", - "text": "", + "title": "Cửa sổ bật lên bị chặn", + "text": "Trình duyệt của bạn đã chặn Homarr truy cập API của nó. Điều này thường xảy ra nhất do AdBlockers hoặc quyền bị từ chối. Homarr không thể tự động yêu cầu quyền.", "list": { - "browserPermission": "", - "adBlockers": "", - "otherBrowser": "" + "browserPermission": "Nhấp vào biểu tượng bên cạnh URL và kiểm tra quyền. Cho phép cửa sổ bật lên và cửa sổ", + "adBlockers": "Tắt trình chặn quảng cáo và công cụ bảo mật khỏi trình duyệt của bạn", + "otherBrowser": "Hãy thử một trình duyệt khác" } } }, "actions": { "category": { - "openAllInNewTab": "" + "openAllInNewTab": "Mở tất cả trong tab mới" } }, "menu": { - "moveUp": "", - "moveDown": "", - "addCategory": "", - "addAbove": "", - "addBelow": "" + "moveUp": "Đi lên", + "moveDown": "Đi xuống", + "addCategory": "Thêm danh mục {{location}}", + "addAbove": "bên trên", + "addBelow": "dưới" } } \ No newline at end of file diff --git a/public/locales/vi/layout/errors/access-denied.json b/public/locales/vi/layout/errors/access-denied.json new file mode 100644 index 000000000..c3934c7ba --- /dev/null +++ b/public/locales/vi/layout/errors/access-denied.json @@ -0,0 +1,5 @@ +{ + "title": "Quyền truy cập bị từ chối", + "text": "Bạn không có đủ quyền để truy cập trang này. Nếu bạn tin rằng đây không phải là cố ý, vui lòng liên hệ với quản trị viên của bạn.", + "switchAccount": "Chuyển sang tài khoản khác" +} \ No newline at end of file diff --git a/public/locales/vi/layout/header.json b/public/locales/vi/layout/header.json new file mode 100644 index 000000000..b0de249ad --- /dev/null +++ b/public/locales/vi/layout/header.json @@ -0,0 +1,30 @@ +{ + "experimentalNote": { + "label": "Đây là một tính năng thử nghiệm của Homarr. Vui lòng báo cáo mọi vấn đề trên GitHub hoặc Discord." + }, + "search": { + "label": "Tìm kiếm", + "engines": { + "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", + "movie": "Tìm kiếm {{query}} trên {{app}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "Chuyển chủ đề", + "preferences": "Sở thích của người sử dụng", + "defaultBoard": "Trang tổng quan mặc định", + "manage": "Quản lý", + "logout": "Đăng xuất từ {{username}}", + "login": "Đăng nhập" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "{{count}} kết quả hàng đầu cho {{search}}." + } + } +} \ No newline at end of file diff --git a/public/locales/vi/layout/header/actions/toggle-edit-mode.json b/public/locales/vi/layout/header/actions/toggle-edit-mode.json index 606d72e7d..af39703f7 100644 --- a/public/locales/vi/layout/header/actions/toggle-edit-mode.json +++ b/public/locales/vi/layout/header/actions/toggle-edit-mode.json @@ -8,5 +8,5 @@ "title": "Chế độ chỉnh sửa đã được kích hoạt cho kích thước <1>{{size}}", "text": "Bạn giờ có thể chỉnh sửa và thiết lập các ứng dụng. Các thay đổi sẽ không được lưu cho tới khi bạn thoát chế độ chỉnh sửa" }, - "unloadEvent": "" + "unloadEvent": "Thoát chế độ chỉnh sửa để lưu các thay đổi của bạn" } diff --git a/public/locales/vi/layout/manage.json b/public/locales/vi/layout/manage.json new file mode 100644 index 000000000..d5d0c2bd3 --- /dev/null +++ b/public/locales/vi/layout/manage.json @@ -0,0 +1,35 @@ +{ + "navigation": { + "home": { + "title": "Trang chủ" + }, + "boards": { + "title": "bảng" + }, + "users": { + "title": "Người dùng", + "items": { + "manage": "Quản lý", + "invites": "Mời" + } + }, + "help": { + "title": "Giúp đỡ", + "items": { + "documentation": "Tài liệu", + "report": "Báo cáo sự cố/lỗi", + "discord": "Bất hòa cộng đồng", + "contribute": "Đóng góp" + } + }, + "tools": { + "title": "Công cụ", + "items": { + "docker": "Docker" + } + }, + "about": { + "title": "Về chúng tôi" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/layout/modals/about.json b/public/locales/vi/layout/modals/about.json index 0c4e53eb4..faa72a606 100644 --- a/public/locales/vi/layout/modals/about.json +++ b/public/locales/vi/layout/modals/about.json @@ -1,12 +1,14 @@ { "description": "Homarr là một bảng điều khiển nuột nà, hiện đại, giúp bạn đặt tất cả các ứng dụng và dịch vụ ngay trong tầm với. Với Homarr, bạn có thể truy cập và kiểm soát mọi thứ thuận tiện từ một nơi nhất định. Homarr tích hợp liền mạch với các ứng dụng bạn đã thêm, cung cấp các thông tin quan trọng tới bạn và trao cho bạn toàn quyền kiểm soát. Cài đặt Homarr rất dễ dàng, và Homarr còn hỗ trợ nhiều phương thức triển khai nữa.", - "contact": "Gặp khó khăn hoặc có thắc mắc? Hãy liên hệ với chúng tôi!", "addToDashboard": "Thêm vào bảng điều khiển", "tip": "Mod đề cập đến các phím bổ trợ của bạn, cụ thể là phím Ctrl và Command/Super/Windows", "key": "Phím tắt", "action": "Hành động", "keybinds": "Phím tắt", - "documentation": "", + "translators": "", + "translatorsDescription": "", + "contributors": "", + "contributorsDescription": "", "actions": { "toggleTheme": "Đổi chế độ sáng/tối", "focusSearchBar": "Tập trung vào thanh tìm kiếm", @@ -15,7 +17,6 @@ }, "metrics": { "configurationSchemaVersion": "Phiên bản lược đồ cấu hình", - "configurationsCount": "Cấu hình có sẵn", "version": "Phiên bản", "nodeEnvironment": "Môi trường node", "i18n": "Bản dịch I18n đã tải", @@ -23,7 +24,7 @@ "experimental_disableEditMode": "THỬ NGHIỆM: Tắt chế độ chỉnh sửa" }, "version": { - "new": "", - "dropdown": "" + "new": "Mới: {{newVersion}}", + "dropdown": "Phiên bản {{newVersion}} có sẵn! Phiên bản hiện tại là {{currentVersion}}" } } \ No newline at end of file diff --git a/public/locales/vi/layout/modals/add-app.json b/public/locales/vi/layout/modals/add-app.json index caaa459b0..45217e905 100644 --- a/public/locales/vi/layout/modals/add-app.json +++ b/public/locales/vi/layout/modals/add-app.json @@ -13,7 +13,21 @@ }, "internalAddress": { "label": "Địa chỉ nội bộ", - "description": "Địa chỉ IP nội bộ của ứng dụng." + "description": "Địa chỉ IP nội bộ của ứng dụng.", + "troubleshoot": { + "label": "Có vấn đề?", + "header": "Dưới đây là danh sách các lỗi thường gặp và cách khắc phục:", + "lines": { + "nothingAfterPort": "Trong hầu hết nếu không phải tất cả các trường hợp, bạn không nên nhập bất kỳ đường dẫn nào sau cổng. (Ngay cả '/admin' cho pihole hoặc '/web' cho plex)", + "protocolCheck": "Luôn đảm bảo rằng URL được bắt đầu bằng http hoặc https và đảm bảo bạn đang sử dụng đúng URL.", + "preferIP": "Bạn nên sử dụng ip trực tiếp của máy hoặc vùng chứa mà bạn đang cố gắng liên lạc.", + "enablePings": "Kiểm tra xem IP có đúng không bằng cách bật ping. Tùy chỉnh Bảng -> Bố cục -> Bật ping. Một bong bóng nhỏ màu đỏ hoặc xanh lục sẽ xuất hiện trên ô ứng dụng của bạn và di chuột vào nó sẽ cung cấp cho bạn mã phản hồi (trong hầu hết các trường hợp, bong bóng màu xanh lá cây có mã 200 được mong đợi).", + "wget": "Để đảm bảo rằng homarr có thể giao tiếp với các ứng dụng khác, hãy đảm bảo wget/curl/ping IP:port của ứng dụng.", + "iframe": "Khi nói đến iframe, những iframe đó phải luôn sử dụng cùng một giao thức (http/s) như Homarr.", + "clearCache": "Một số thông tin được đăng ký trong bộ đệm, do đó quá trình tích hợp có thể không hoạt động trừ khi bạn xóa bộ đệm trong các tùy chọn chung của Homarr." + }, + "footer": "Để biết thêm cách khắc phục sự cố, hãy liên hệ với {{discord}}của chúng tôi." + } }, "externalAddress": { "label": "Địa chỉ bên ngoài", @@ -26,10 +40,10 @@ "description": "Mở ứng dụng trong tab mới thay vì tab hiện tại." }, "tooltipDescription": { - "label": "", - "description": "" + "label": "Mô tả ứng dụng", + "description": "Văn bản bạn nhập sẽ xuất hiện khi di chuột qua ứng dụng của bạn.\r\nSử dụng mục này để cung cấp cho người dùng thêm thông tin chi tiết về ứng dụng của bạn hoặc để trống nếu không có gì." }, - "customProtocolWarning": "" + "customProtocolWarning": "Sử dụng một giao thức không chuẩn. Điều này có thể yêu cầu các ứng dụng được cài đặt sẵn và có thể gây ra rủi ro bảo mật. Đảm bảo rằng địa chỉ của bạn được an toàn và đáng tin cậy." }, "network": { "statusChecker": { @@ -55,31 +69,31 @@ } }, "appNameFontSize": { - "label": "", - "description": "" + "label": "Tên ứng dụng Kích thước phông chữ", + "description": "Đặt kích thước phông chữ khi tên ứng dụng được hiển thị trên ô." }, "appNameStatus": { - "label": "", - "description": "", + "label": "Trạng thái tên ứng dụng", + "description": "Chọn nơi bạn muốn tiêu đề hiển thị, nếu có.", "dropdown": { - "normal": "", - "hover": "", - "hidden": "" + "normal": "Chỉ hiển thị tiêu đề trên ô", + "hover": "Chỉ hiển thị tiêu đề trên chú giải công cụ khi di chuột", + "hidden": "Không hiển thị chút nào" } }, "positionAppName": { - "label": "", - "description": "", + "label": "Tên ứng dụng Vị trí", + "description": "Vị trí của tên ứng dụng so với biểu tượng.", "dropdown": { - "top": "", - "right": "", - "bottom": "", - "left": "" + "top": "Đứng đầu", + "right": "Phải", + "bottom": "Đáy", + "left": "Bên trái" } }, "lineClampAppName": { - "label": "", - "description": "" + "label": "Tên ứng dụng Kẹp dòng", + "description": "Xác định số dòng mà tiêu đề của bạn phải phù hợp tối đa. Đặt 0 cho không giới hạn." } }, "integration": { @@ -104,11 +118,11 @@ }, "validation": { "popover": "Biểu mẫu của bạn chứa dữ liệu không hợp lệ, vì vậy không thể lưu nó. Vui lòng khắc phục mọi vấn đề và nhấp lại vào nút này để lưu các thay đổi của bạn", - "name": "", - "noUrl": "", - "invalidUrl": "", - "noIconUrl": "", - "noExternalUri": "", - "invalidExternalUri": "" + "name": "Tên là bắt buộc", + "noUrl": "Url là bắt buộc", + "invalidUrl": "Giá trị không phải là url hợp lệ", + "noIconUrl": "Trường này là bắt buộc", + "noExternalUri": "URI bên ngoài là bắt buộc", + "invalidExternalUri": "URI bên ngoài không phải là uri hợp lệ" } } diff --git a/public/locales/vi/manage/boards.json b/public/locales/vi/manage/boards.json new file mode 100644 index 000000000..8fdecea94 --- /dev/null +++ b/public/locales/vi/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "bảng", + "pageTitle": "bảng", + "cards": { + "statistics": { + "apps": "Ứng dụng", + "widgets": "Tiện ích", + "categories": "Danh mục" + }, + "buttons": { + "view": "Xem bảng" + }, + "menu": { + "setAsDefault": "Đặt làm bảng mặc định của bạn", + "delete": { + "label": "Xóa vĩnh viễn", + "disabled": "Tính năng xóa bị vô hiệu hóa vì các thành phần Homarr cũ hơn không cho phép xóa cấu hình mặc định. Việc xóa sẽ có thể xảy ra trong tương lai." + } + }, + "badges": { + "fileSystem": "Hệ thống tập tin", + "default": "Mặc định" + } + }, + "buttons": { + "create": "Tạo bảng mới" + }, + "modals": { + "delete": { + "title": "Xóa bảng", + "text": "Bạn có chắc chắn muốn xóa bảng này không? Hành động này không thể hoàn tác được và dữ liệu của bạn sẽ bị mất vĩnh viễn." + }, + "create": { + "title": "Tạo bảng", + "text": "Tên không thể thay đổi sau khi một bảng đã được tạo.", + "form": { + "name": { + "label": "Tên" + }, + "submit": "Tạo nên" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/index.json b/public/locales/vi/manage/index.json new file mode 100644 index 000000000..6fbbae7d0 --- /dev/null +++ b/public/locales/vi/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "Quản lý", + "hero": { + "title": "Chào mừng trở lại, {{username}}", + "fallbackUsername": "Vô danh", + "subtitle": "Chào mừng bạn đến với Trung tâm ứng dụng của bạn. Tổ chức, tối ưu hóa và chinh phục!" + }, + "quickActions": { + "title": "Hành động nhanh", + "boards": { + "title": "Bảng của bạn", + "subtitle": "Tạo và quản lý bảng của bạn" + }, + "inviteUsers": { + "title": "Mời người dùng mới", + "subtitle": "Tạo và gửi lời mời đăng ký" + }, + "manageUsers": { + "title": "Quản lý người dùng", + "subtitle": "Xóa và quản lý người dùng của bạn" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/users.json b/public/locales/vi/manage/users.json new file mode 100644 index 000000000..251a2cae8 --- /dev/null +++ b/public/locales/vi/manage/users.json @@ -0,0 +1,36 @@ +{ + "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" + }, + "table": { + "header": { + "user": "Người dùng" + } + }, + "tooltips": { + "deleteUser": "Xóa người dùng", + "demoteAdmin": "Giảm hạng quản trị viên", + "promoteToAdmin": "Thăng tiến lên quản trị viên" + }, + "modals": { + "delete": { + "title": "Xóa người dùng {{name}}", + "text": "Bạn có chắc chắn muốn xóa người dùng {{name}}không? Thao tác này sẽ xóa dữ liệu được liên kết với tài khoản này chứ không phải bất kỳ trang tổng quan nào được người dùng này tạo." + }, + "change-role": { + "promote": { + "title": "Thăng cấp người dùng {{name}} lên quản trị viên", + "text": "Bạn có chắc chắn muốn thăng cấp người dùng {{name}} lên quản trị viên không? Điều này sẽ cấp cho người dùng quyền truy cập vào tất cả các tài nguyên trên phiên bản Homarr của bạn." + }, + "demote": { + "title": "Hạ cấp người dùng {{name}} xuống người dùng", + "text": "Bạn có chắc chắn muốn hạ cấp người dùng {{name}} xuống người dùng không? Thao tác này sẽ xóa quyền truy cập của người dùng vào tất cả tài nguyên trên phiên bản Homarr của bạn." + }, + "confirm": "Xác nhận" + } + }, + "searchDoesntMatch": "Tìm kiếm của bạn không khớp với bất kỳ mục nào. Vui lòng điều chỉnh bộ lọc của bạn." +} \ No newline at end of file diff --git a/public/locales/vi/manage/users/create.json b/public/locales/vi/manage/users/create.json new file mode 100644 index 000000000..674e2f9fb --- /dev/null +++ b/public/locales/vi/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "Tạo người dùng", + "steps": { + "account": { + "title": "Bước đầu tiên", + "text": "Tạo tài khoản", + "username": { + "label": "Tên người dùng" + }, + "email": { + "label": "E-mail" + } + }, + "security": { + "title": "Bước thứ hai", + "text": "Mật khẩu", + "password": { + "label": "Mật khẩu" + } + }, + "finish": { + "title": "Xác nhận", + "text": "Lưu vào cơ sở dữ liệu", + "card": { + "title": "Xem lại thông tin đầu vào của bạn", + "text": "Sau khi bạn gửi dữ liệu của mình đến cơ sở dữ liệu, người dùng sẽ có thể đăng nhập. Bạn có chắc chắn muốn lưu trữ người dùng này trong cơ sở dữ liệu và kích hoạt đăng nhập không?" + }, + "table": { + "header": { + "property": "Tài sản", + "value": "Giá trị", + "username": "Tên người dùng", + "email": "E-mail", + "password": "Mật khẩu" + }, + "notSet": "Không được thiết lập", + "valid": "Có hiệu lực" + }, + "failed": "Tạo người dùng không thành công: {{error}}" + }, + "completed": { + "alert": { + "title": "Người dùng đã được tạo", + "text": "Người dùng đã được tạo trong cơ sở dữ liệu. Bây giờ họ có thể đăng nhập." + } + } + }, + "buttons": { + "generateRandomPassword": "Tạo ngẫu nhiên", + "createAnother": "Tạo ra một cái khác" + } +} \ No newline at end of file diff --git a/public/locales/vi/manage/users/invites.json b/public/locales/vi/manage/users/invites.json new file mode 100644 index 000000000..d95a77490 --- /dev/null +++ b/public/locales/vi/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Lời mời của người dùng", + "pageTitle": "Quản lý lời mời của người dùng", + "description": "Bằng cách sử dụng lời mời, bạn có thể mời người dùng tham gia phiên bản Homarr của mình. Lời mời sẽ chỉ có hiệu lực trong một khoảng thời gian nhất định và chỉ có thể được sử dụng một lần. Thời hạn hết hạn phải từ 5 phút đến 12 tháng sau khi tạo.", + "button": { + "createInvite": "Tạo lời mời", + "deleteInvite": "Xóa lời mời" + }, + "table": { + "header": { + "id": "NHẬN DẠNG", + "creator": "Người sáng tạo", + "expires": "Hết hạn", + "action": "hành động" + }, + "data": { + "expiresAt": "hết hạn {{at}}", + "expiresIn": "trong {{in}}" + } + }, + "modals": { + "create": { + "title": "Tạo lời mời", + "description": "Sau khi hết hạn, lời mời sẽ không còn hiệu lực và người nhận lời mời sẽ không thể tạo tài khoản.", + "form": { + "expires": "Ngày hết hạn", + "submit": "Tạo nên" + } + }, + "copy": { + "title": "Sao chép lời mời", + "description": "Lời mời của bạn đã được tạo. Sau khi phương thức này đóng, bạn sẽ không thể sao chép liên kết này nữa. Nếu bạn không muốn mời người đã nói nữa, bạn có thể xóa lời mời này bất cứ lúc nào.", + "invitationLink": "Liên kết lời mời", + "details": { + "id": "NHẬN DẠNG", + "token": "Mã thông báo" + }, + "button": { + "close": "Sao chép & Loại bỏ" + } + }, + "delete": { + "title": "Xóa lời mời", + "description": "Bạn có chắc chắn muốn xóa lời mời này không? Người dùng có liên kết này sẽ không thể tạo tài khoản bằng liên kết đó nữa." + } + }, + "noInvites": "Chưa có lời mời nào." +} \ No newline at end of file diff --git a/public/locales/vi/modules/bookmark.json b/public/locales/vi/modules/bookmark.json index 286c34c72..33c75deaf 100644 --- a/public/locales/vi/modules/bookmark.json +++ b/public/locales/vi/modules/bookmark.json @@ -5,8 +5,8 @@ "settings": { "title": "Cài đặt dấu trang", "name": { - "label": "", - "info": "" + "label": "Tên tiện ích", + "info": "Để trống để giữ tiêu đề ẩn." }, "items": { "label": "Mục" @@ -14,9 +14,9 @@ "layout": { "label": "Bố cục", "data": { - "autoGrid": "", - "horizontal": "", - "vertical": "" + "autoGrid": "Lưới tự động", + "horizontal": "Nằm ngang", + "vertical": "Thẳng đứng" } } } @@ -29,15 +29,15 @@ }, "item": { "validation": { - "length": "", - "invalidLink": "", - "errorMsg": "" + "length": "Độ dài phải nằm trong khoảng từ {{shortest}} đến {{longest}}", + "invalidLink": "Không phải là một liên kết hợp lệ", + "errorMsg": "Không lưu được vì có lỗi xác thực. Vui lòng điều chỉnh đầu vào của bạn" }, "name": "Tên", - "url": "", + "url": "URL", "newTab": "Mở trong tab mới", - "hideHostname": "", - "hideIcon": "", + "hideHostname": "Ẩn tên máy chủ", + "hideIcon": "Ẩn biểu tượng", "delete": "Xóa" } } diff --git a/public/locales/vi/modules/calendar.json b/public/locales/vi/modules/calendar.json index 18357600f..6a7c1dede 100644 --- a/public/locales/vi/modules/calendar.json +++ b/public/locales/vi/modules/calendar.json @@ -4,34 +4,28 @@ "description": "Hiển thị lịch cùng các phát hành sắp tới, từ các tích hợp được hỗ trợ.", "settings": { "title": "Cài đặt cho tiện ích lịch", - "useSonarrv4": { - "label": "Dùng Sonarr v4 API" - }, - "sundayStart": { - "label": "Đặt đầu tuần là Chủ Nhật" - }, "radarrReleaseType": { "label": "Loại phát hành Radarr", "data": { - "inCinemas": "", - "physicalRelease": "", - "digitalRelease": "" + "inCinemas": "trong rạp chiếu phim", + "physicalRelease": "Thuộc vật chất", + "digitalRelease": "Điện tử" } }, "hideWeekDays": { - "label": "" + "label": "Ẩn ngày trong tuần" }, "showUnmonitored": { - "label": "" + "label": "Hiển thị các mục không được giám sát" }, "fontSize": { - "label": "", + "label": "Cỡ chữ", "data": { - "xs": "", - "sm": "", - "md": "", - "lg": "", - "xl": "" + "xs": "Rất nhỏ", + "sm": "Bé nhỏ", + "md": "Trung bình", + "lg": "Lớn", + "xl": "Cực lớn" } } } diff --git a/public/locales/vi/modules/date.json b/public/locales/vi/modules/date.json index 9d81cf62b..717993dff 100644 --- a/public/locales/vi/modules/date.json +++ b/public/locales/vi/modules/date.json @@ -8,24 +8,24 @@ "label": "Dùng thời gian 24 giờ" }, "dateFormat": { - "label": "", + "label": "Định dạng ngày", "data": { - "hide": "" + "hide": "Ẩn ngày" } }, "enableTimezone": { - "label": "" + "label": "Hiển thị múi giờ tùy chỉnh" }, "timezoneLocation": { - "label": "" + "label": "Vị trí múi giờ" }, "titleState": { - "label": "", - "info": "", + "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.", "data": { - "both": "", - "city": "", - "none": "" + "both": "Thành phố và múi giờ", + "city": "Chỉ thành phố", + "none": "Không có" } } } diff --git a/public/locales/vi/modules/dns-hole-controls.json b/public/locales/vi/modules/dns-hole-controls.json index e2e9fe711..dcbc1a7e9 100644 --- a/public/locales/vi/modules/dns-hole-controls.json +++ b/public/locales/vi/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "Trình điều khiển DNS", - "description": "Kiểm soát PiHole hoặc AdGuard từ bảng điều khiển của bạn" + "description": "Kiểm soát PiHole hoặc AdGuard từ bảng điều khiển của bạn", + "settings": { + "title": "Cài đặt kiểm soát lỗ DNS", + "showToggleAllButtons": { + "label": "Hiển thị các nút 'Bật/Tắt tất cả'" + } + }, + "errors": { + "general": { + "title": "Không thể tìm thấy lỗ DNS", + "text": "Đã xảy ra sự cố khi kết nối với (các) Lỗ DNS của bạn. Vui lòng xác minh (các) cấu hình/tích hợp của bạn." + } + } } } \ No newline at end of file diff --git a/public/locales/vi/modules/dns-hole-summary.json b/public/locales/vi/modules/dns-hole-summary.json index a30d0ae2d..ca0ee3754 100644 --- a/public/locales/vi/modules/dns-hole-summary.json +++ b/public/locales/vi/modules/dns-hole-summary.json @@ -10,9 +10,9 @@ "layout": { "label": "Bố cục", "data": { - "grid": "", - "row": "", - "column": "" + "grid": "2 x 2", + "row": "Nằm ngang", + "column": "Thẳng đứng" } } } @@ -21,8 +21,8 @@ "metrics": { "domainsOnAdlist": "Tên miền trên danh sách quảng cáo", "queriesToday": "Truy vấn hôm nay", - "queriesBlockedTodayPercentage": "đã chặn hôm nay", - "queriesBlockedToday": "đã chặn hôm nay" + "queriesBlockedTodayPercentage": "", + "queriesBlockedToday": "" } } } diff --git a/public/locales/vi/modules/iframe.json b/public/locales/vi/modules/iframe.json index 16a5dd3b7..cee33a9e8 100644 --- a/public/locales/vi/modules/iframe.json +++ b/public/locales/vi/modules/iframe.json @@ -39,7 +39,7 @@ "title": "URL không hợp lệ", "text": "Đảm bảo rằng bạn đã nhập một địa chỉ hợp lệ trong cấu hình tiện ích" }, - "browserSupport": "" + "browserSupport": "Trình duyệt của bạn không hỗ trợ iframe. Vui lòng cập nhật trình duyệt của bạn." } } } diff --git a/public/locales/vi/modules/media-requests-list.json b/public/locales/vi/modules/media-requests-list.json index cf31d0754..3e38b703a 100644 --- a/public/locales/vi/modules/media-requests-list.json +++ b/public/locales/vi/modules/media-requests-list.json @@ -8,13 +8,11 @@ "label": "Thay thế liên kết bằng máy chủ bên ngoài" }, "openInNewTab": { - "label": "" + "label": "Mở liên kết trong tab mới" } } }, "noRequests": "Không tìm thấy yêu cầu. Hãy đảm bảo rằng bạn đã thiết lập đúng ứng dụng của mình.", - "pending": "Có {{countPendingApproval}} yêu cầu đang chờ phê duyệt.", - "nonePending": "Hiện tại không có yêu cầu nào đang chờ phê duyệt. Tốt lắm bạn!", "state": { "approved": "Đã duyệt", "pendingApproval": "Chờ duyệt", @@ -23,13 +21,13 @@ "tooltips": { "approve": "Duyệt yêu cầu", "decline": "Từ chối yêu cầu", - "approving": "" + "approving": "Đang phê duyệt yêu cầu..." }, "mutation": { - "approving": "", - "declining": "", - "request": "", - "approved": "", - "declined": "" + "approving": "Phê duyệt", + "declining": "Giảm dần", + "request": "lời yêu cầu...", + "approved": "Yêu cầu đã được chấp thuận!", + "declined": "Yêu cầu đã bị từ chối!" } } diff --git a/public/locales/vi/modules/media-requests-stats.json b/public/locales/vi/modules/media-requests-stats.json index 2de7eeae5..1549061c0 100644 --- a/public/locales/vi/modules/media-requests-stats.json +++ b/public/locales/vi/modules/media-requests-stats.json @@ -8,20 +8,20 @@ "label": "Thay thế liên kết bằng máy chủ bên ngoài" }, "openInNewTab": { - "label": "" + "label": "Mở liên kết trong tab mới" } } }, "mediaStats": { - "title": "", - "pending": "", - "tvRequests": "", - "movieRequests": "", - "approved": "", - "totalRequests": "" + "title": "Thống kê truyền thông", + "pending": "Chờ duyệt", + "tvRequests": "Yêu cầu TV", + "movieRequests": "Yêu cầu phim", + "approved": "Đã được phê duyệt", + "totalRequests": "Tổng cộng" }, "userStats": { - "title": "", - "requests": "" + "title": "Người dùng hàng đầu", + "requests": "Yêu cầu: {{number}}" } } diff --git a/public/locales/vi/modules/media-server.json b/public/locales/vi/modules/media-server.json index 88401ad80..d2a329d14 100644 --- a/public/locales/vi/modules/media-server.json +++ b/public/locales/vi/modules/media-server.json @@ -6,7 +6,7 @@ "title": "Cài đặt cho máy chủ đa phương tiện" } }, - "loading": "", + "loading": "Đang tải luồng", "card": { "table": { "header": { diff --git a/public/locales/vi/modules/notebook.json b/public/locales/vi/modules/notebook.json index 3ad2a768e..b174e558c 100644 --- a/public/locales/vi/modules/notebook.json +++ b/public/locales/vi/modules/notebook.json @@ -1,15 +1,59 @@ { "descriptor": { - "name": "", - "description": "", + "name": "Sổ tay", + "description": "Tiện ích tương tác dựa trên đánh dấu để bạn viết ra ghi chú của mình!", "settings": { - "title": "", + "title": "Cài đặt cho tiện ích sổ ghi chép", "showToolbar": { + "label": "Hiển thị thanh công cụ giúp bạn viết markdown" + }, + "allowReadOnlyCheck": { "label": "" }, "content": { - "label": "" + "label": "Nội dung của sổ ghi chép" } } + }, + "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": "" + }, + "modals": { + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "" + } } } \ No newline at end of file diff --git a/public/locales/vi/modules/rss.json b/public/locales/vi/modules/rss.json index 181762d41..ed0d383f9 100644 --- a/public/locales/vi/modules/rss.json +++ b/public/locales/vi/modules/rss.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Tiện ích RSS", - "description": "", + "description": "Tiện ích rss cho phép bạn hiển thị nguồn cấp dữ liệu RSS trên trang tổng quan của mình.", "settings": { "title": "Cài đặt cho tiện ích RSS", "rssFeedUrl": { @@ -12,8 +12,8 @@ "label": "Khoảng thời gian làm mới (bằng phút)" }, "dangerousAllowSanitizedItemContent": { - "label": "", - "info": "" + "label": "Cho phép định dạng HTML (Nguy hiểm)", + "info": "Cho phép định dạng HTML từ bên ngoài có thể nguy hiểm.
Hãy đảm bảo rằng nguồn cấp dữ liệu đến từ một nguồn đáng tin cậy." }, "textLinesClamp": { "label": "Ngắt dòng" diff --git a/public/locales/vi/modules/torrents-status.json b/public/locales/vi/modules/torrents-status.json index 3ff61d66f..099fb8ce1 100644 --- a/public/locales/vi/modules/torrents-status.json +++ b/public/locales/vi/modules/torrents-status.json @@ -10,6 +10,12 @@ "displayCompletedTorrents": { "label": "Hiển thị torrent hoàn thành" }, + "displayActiveTorrents": { + "label": "" + }, + "speedLimitOfActiveTorrents": { + "label": "" + }, "displayStaleTorrents": { "label": "Hiển thị torrent hết hạn" }, @@ -19,13 +25,19 @@ "labelFilter": { "label": "Danh sách nhãn", "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": "" } } }, "card": { "footer": { "error": "Lỗi", - "lastUpdated": "Cập nhật cuối cách đây {{time}}" + "lastUpdated": "Cập nhật cuối cách đây {{time}}", + "ratioGlobal": "", + "ratioWithFilter": "" }, "table": { "header": { @@ -59,12 +71,12 @@ }, "generic": { "title": "Đã xảy ra lỗi không mong muốn", - "text": "" + "text": "Không thể liên lạc với khách hàng Torrent của bạn. Vui lòng kiểm tra cấu hình của bạn" } }, "loading": { - "title": "", - "description": "" + "title": "Đang tải", + "description": "Thiết lập kết nối" }, "popover": { "introductionPrefix": "Quản lý bởi", diff --git a/public/locales/vi/modules/weather.json b/public/locales/vi/modules/weather.json index 116c33300..b43c20fdb 100644 --- a/public/locales/vi/modules/weather.json +++ b/public/locales/vi/modules/weather.json @@ -8,7 +8,7 @@ "label": "Hiển thị bằng Fahrenheit" }, "displayCityName": { - "label": "" + "label": "Hiển thị tên thành phố" }, "location": { "label": "Vị trí thời tiết" @@ -33,5 +33,5 @@ "unknown": "Không xác định" } }, - "error": "" + "error": "Đã xảy ra lỗi" } diff --git a/public/locales/vi/password-requirements.json b/public/locales/vi/password-requirements.json new file mode 100644 index 000000000..8bdfbb3e9 --- /dev/null +++ b/public/locales/vi/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "Bao gồm số", + "lowercase": "Bao gồm chữ thường", + "uppercase": "Bao gồm chữ in hoa", + "special": "Bao gồm ký tự đặc biệt", + "length": "Bao gồm ít nhất {{count}} ký tự" +} \ No newline at end of file diff --git a/public/locales/vi/settings/customization/access.json b/public/locales/vi/settings/customization/access.json new file mode 100644 index 000000000..b04bc93f3 --- /dev/null +++ b/public/locales/vi/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "Cho phép vô danh", + "description": "Cho phép người dùng chưa đăng nhập xem bảng của bạn" + } +} \ No newline at end of file diff --git a/public/locales/vi/settings/customization/general.json b/public/locales/vi/settings/customization/general.json index 46ca600f9..406d742f7 100644 --- a/public/locales/vi/settings/customization/general.json +++ b/public/locales/vi/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "Trợ năng", "description": "Thiết lập Homarr cho người dùng khuyết tật" + }, + "access": { + "name": "", + "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 cbd51a8e7..ff16304c0 100644 --- a/public/locales/vi/settings/customization/page-appearance.json +++ b/public/locales/vi/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "Ngoài ra có thể tùy chỉnh bảng điều khiển của bạn bằng CSS, chỉ được đề xuất cho người dùng có kinh nghiệm", "placeholder": "CSS tùy chỉnh sẽ được áp dụng sau cùng", "applying": "Đang áp dụng CSS..." - }, - "buttons": { - "submit": "Gửi" } -} +} \ No newline at end of file diff --git a/public/locales/vi/settings/general/cache-buttons.json b/public/locales/vi/settings/general/cache-buttons.json index 685994c48..f1bdba589 100644 --- a/public/locales/vi/settings/general/cache-buttons.json +++ b/public/locales/vi/settings/general/cache-buttons.json @@ -1,24 +1,24 @@ { - "title": "", + "title": "Làm sạch bộ đệm", "selector": { - "label": "", + "label": "Chọn (các) bộ đệm để xóa", "data": { - "ping": "", - "repositoryIcons": "", - "calendar&medias": "", - "weather": "" + "ping": "Truy vấn Ping", + "repositoryIcons": "Biểu tượng từ xa/cục bộ", + "calendar&medias": "Phương tiện từ Lịch", + "weather": "Dữ liệu thời tiết" } }, "buttons": { - "notificationTitle": "", + "notificationTitle": "Đã xóa bộ nhớ đệm", "clearAll": { - "text": "", - "notificationMessage": "" + "text": "Xóa tất cả bộ nhớ đệm", + "notificationMessage": "Tất cả bộ nhớ đệm đã bị xóa" }, "clearSelect": { - "text": "", - "notificationMessageSingle": "", - "notificationMessageMulti": "" + "text": "Xóa truy vấn đã chọn", + "notificationMessageSingle": "Bộ nhớ đệm cho {{value}} đã bị xóa", + "notificationMessageMulti": "Bộ nhớ đệm cho {{values}} đã bị xóa" } } } \ No newline at end of file diff --git a/public/locales/vi/settings/general/edit-mode-toggle.json b/public/locales/vi/settings/general/edit-mode-toggle.json index 42b641681..195869d8b 100644 --- a/public/locales/vi/settings/general/edit-mode-toggle.json +++ b/public/locales/vi/settings/general/edit-mode-toggle.json @@ -1,22 +1,22 @@ { "menu": { - "toggle": "", - "enable": "", - "disable": "" + "toggle": "Chuyển đổi chế độ chỉnh sửa", + "enable": "Bật chế độ chỉnh sửa", + "disable": "Tắt chế độ chỉnh sửa" }, "form": { - "label": "", - "message": "", + "label": "Chỉnh sửa mật khẩu", + "message": "Để chuyển đổi chế độ chỉnh sửa, bạn cần nhập mật khẩu bạn đã nhập vào biến môi trường có tên EDIT_MODE_PASSWORD . Nếu nó không được đặt, bạn không thể bật và tắt chế độ chỉnh sửa.", "submit": "Gửi" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Thành công", + "message": "Đã chuyển thành công chế độ chỉnh sửa, tải lại trang..." }, "error": { "title": "Lỗi", - "message": "" + "message": "Không chuyển đổi được chế độ chỉnh sửa, vui lòng thử lại." } } } \ No newline at end of file diff --git a/public/locales/vi/settings/general/search-engine.json b/public/locales/vi/settings/general/search-engine.json index 58369b681..496ab6a45 100644 --- a/public/locales/vi/settings/general/search-engine.json +++ b/public/locales/vi/settings/general/search-engine.json @@ -1,7 +1,7 @@ { "title": "Công cụ tìm kiếm", "configurationName": "Thiết lập công cụ tìm kiếm", - "custom": "", + "custom": "Phong tục", "tips": { "generalTip": "Có nhiều tiền tố để bạn sử dụng đó! Thêm chúng vào trước truy vấn của bạn để lọc kết quả. !s (Web), !t (torrent), !y (YouTube), !m (đa phương tiện).", "placeholderTip": "%s có thể được sử dụng làm phần giữ chỗ cho truy vấn." diff --git a/public/locales/vi/tools/docker.json b/public/locales/vi/tools/docker.json new file mode 100644 index 000000000..7542e70c1 --- /dev/null +++ b/public/locales/vi/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "Phiên bản Homarr của bạn không được định cấu hình Docker hoặc không thể tìm nạp vùng chứa. Vui lòng kiểm tra tài liệu về cách thiết lập tích hợp." + } + }, + "modals": { + "selectBoard": { + "title": "Chọn một bảng", + "text": "Chọn bảng nơi bạn muốn thêm ứng dụng cho vùng chứa Docker đã chọn.", + "form": { + "board": { + "label": "Bảng" + }, + "submit": "Thêm ứng dụng" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "Đã thêm ứng dụng vào bảng", + "message": "Các ứng dụng cho vùng chứa Docker đã chọn đã được thêm vào bảng." + }, + "error": { + "title": "Không thêm được ứng dụng vào bảng", + "message": "Không thể thêm ứng dụng cho vùng chứa Docker đã chọn vào bảng." + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/user/preferences.json b/public/locales/vi/user/preferences.json new file mode 100644 index 000000000..fb0c8429d --- /dev/null +++ b/public/locales/vi/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "Sở thích", + "pageTitle": "sở thích của bạn", + "boards": { + "defaultBoard": { + "label": "Bảng mặc định" + } + }, + "accessibility": { + "title": "Trợ năng", + "disablePulse": { + "label": "Tắt nhịp thở chấm ping", + "description": "Mặc địch, chấm ping trong Homarr sẽ có một nhịp co giãn. Nếu điều này gây khó chịu, tranh trượt này sẽ giúp bạn tắt chuyển động đó" + }, + "replaceIconsWithDots": { + "label": "Thay thế chấm ping bằng biểu tượng", + "description": "Với người dùng mù màu, chấm ping có thể khó nhận diện. Lựa chọn này sẽ thay thế các chấm bằng biểu tượng" + } + }, + "localization": { + "language": { + "label": "Ngôn ngữ" + }, + "firstDayOfWeek": { + "label": "Ngày đầu tiên trong tuần", + "options": { + "monday": "Thứ hai", + "saturday": "Thứ bảy", + "sunday": "Chủ nhật" + } + } + }, + "searchEngine": { + "title": "Công cụ tìm kiếm", + "custom": "Phong tục", + "newTab": { + "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.", + "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": { + "label": "URL truy vấn", + "description": "Sử dụng %s làm phần giữ chỗ cho truy vấn" + } + } +} \ No newline at end of file diff --git a/public/locales/vi/zod.json b/public/locales/vi/zod.json new file mode 100644 index 000000000..d7f8d7b46 --- /dev/null +++ b/public/locales/vi/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "Trường này không hợp lệ", + "required": "Trường này là bắt buộc", + "string": { + "startsWith": "Trường này phải bắt đầu bằng {{startsWith}}", + "endsWith": "Trường này phải kết thúc bằng {{endsWith}}", + "includes": "Trường này phải bao gồm {{includes}}" + }, + "tooSmall": { + "string": "Trường này phải dài ít nhất {{minimum}} ký tự", + "number": "Trường này phải lớn hơn hoặc bằng {{minimum}}" + }, + "tooBig": { + "string": "Trường này phải dài tối đa {{maximum}} ký tự", + "number": "Trường này phải nhỏ hơn hoặc bằng {{maximum}}" + }, + "custom": { + "passwordMatch": "mật khẩu phải trùng khớp" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/authentication/invite.json b/public/locales/zh/authentication/invite.json new file mode 100644 index 000000000..6e1d47b60 --- /dev/null +++ b/public/locales/zh/authentication/invite.json @@ -0,0 +1,35 @@ +{ + "metaTitle": "创建账号", + "title": "创建账号", + "text": "请在下面定义您的凭据", + "form": { + "fields": { + "username": { + "label": "用户名" + }, + "password": { + "label": "密码" + }, + "passwordConfirmation": { + "label": "确认密码" + } + }, + "buttons": { + "submit": "创建账号" + } + }, + "notifications": { + "loading": { + "title": "正在创建账号...", + "text": "请稍等" + }, + "success": { + "title": "账号已创建", + "text": "您的账号创建成功" + }, + "error": { + "title": "错误", + "text": "出错了,出现以下错误: {{error}}" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/authentication/login.json b/public/locales/zh/authentication/login.json index a5020aea3..e509c07c7 100644 --- a/public/locales/zh/authentication/login.json +++ b/public/locales/zh/authentication/login.json @@ -1,27 +1,20 @@ { + "metaTitle": "登录", "title": "欢迎回来!", - "text": "请输入密码", + "text": "请确认您的凭证", "form": { "fields": { + "username": { + "label": "用户名" + }, "password": { - "label": "密码", - "placeholder": "您的密码" + "label": "密码" } }, "buttons": { "submit": "登录" - } + }, + "afterLoginRedirection": "登录后,您将被重定向到 {{url}}" }, - "notifications": { - "checking": { - "title": "检查您的密码", - "message": "正在检查您的密码..." - }, - "correct": { - "title": "登录成功,正在跳转..." - }, - "wrong": { - "title": "密码错误,请重新输入。" - } - } -} + "alert": "您的凭据不正确或此账户不存在。请重试。" +} \ No newline at end of file diff --git a/public/locales/zh/boards/common.json b/public/locales/zh/boards/common.json new file mode 100644 index 000000000..1d37e1183 --- /dev/null +++ b/public/locales/zh/boards/common.json @@ -0,0 +1,5 @@ +{ + "header": { + "customize": "自定义面板" + } +} \ No newline at end of file diff --git a/public/locales/zh/boards/customize.json b/public/locales/zh/boards/customize.json new file mode 100644 index 000000000..f65d49700 --- /dev/null +++ b/public/locales/zh/boards/customize.json @@ -0,0 +1,29 @@ +{ + "metaTitle": "自定义 {{name}} 面板", + "pageTitle": "{{name}} 面板自定义中", + "backToBoard": "返回面板", + "settings": { + "appearance": { + "primaryColor": "主体色", + "secondaryColor": "辅助色" + } + }, + "save": { + "button": "保存更改", + "note": "小心,您有未保存的更改!" + }, + "notifications": { + "pending": { + "title": "自定义保存中", + "message": "请稍候,我们正在保存您的自定义" + }, + "success": { + "title": "已保存自定义", + "message": "您的自定义已成功保存" + }, + "error": { + "title": "错误", + "message": "无法保存更改" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json index 8b67cf12b..bbbd83c0d 100644 --- a/public/locales/zh/common.json +++ b/public/locales/zh/common.json @@ -3,9 +3,13 @@ "about": "关于", "cancel": "取消", "close": "关闭", + "back": "返回", "delete": "删除", "ok": "确定", "edit": "编辑", + "next": "下一步", + "previous": "上一步", + "confirm": "确认", "enabled": "已启用", "disabled": "已禁用", "enableAll": "全部启用", diff --git a/public/locales/zh/layout/common.json b/public/locales/zh/layout/common.json index 4429f9a54..45772a386 100644 --- a/public/locales/zh/layout/common.json +++ b/public/locales/zh/layout/common.json @@ -18,8 +18,8 @@ "menu": { "moveUp": "上移", "moveDown": "下移", - "addCategory": "添加分类 {{location}}", - "addAbove": "上方", - "addBelow": "下方" + "addCategory": "{{location}}添加分类", + "addAbove": "在上方", + "addBelow": "在下方" } } \ No newline at end of file diff --git a/public/locales/zh/layout/header.json b/public/locales/zh/layout/header.json new file mode 100644 index 000000000..8dd16b066 --- /dev/null +++ b/public/locales/zh/layout/header.json @@ -0,0 +1,34 @@ +{ + "experimentalNote": { + "label": "这是 Homarr 的一项实验性功能。请在 GitHubDiscord上报告任何问题。" + }, + "search": { + "label": "搜索", + "engines": { + "web": "在网上搜索 {{query}}", + "youtube": "在 YouTube 上搜索 {{query}}", + "torrent": "搜索 {{query}} Torrents", + "movie": "在 {{app}} 上搜索 {{query}}" + } + }, + "actions": { + "avatar": { + "switchTheme": "切换主题", + "preferences": "用户首选项", + "defaultBoard": "默认仪表盘", + "manage": "管理", + "about": { + "label": "关于", + "new": "新" + }, + "logout": "注销 {{username}}", + "login": "登录" + } + }, + "modals": { + "movie": { + "title": "", + "topResults": "最高 {{count}} 结果为 {{search}}。" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/layout/manage.json b/public/locales/zh/layout/manage.json new file mode 100644 index 000000000..e60b4a33b --- /dev/null +++ b/public/locales/zh/layout/manage.json @@ -0,0 +1,32 @@ +{ + "navigation": { + "home": { + "title": "首页" + }, + "boards": { + "title": "面板" + }, + "users": { + "title": "用户", + "items": { + "manage": "管理", + "invites": "邀请" + } + }, + "help": { + "title": "帮助", + "items": { + "documentation": "文档", + "report": "报告问题 / bug", + "discord": "Discord 社区", + "contribute": "贡献" + } + }, + "tools": { + "title": "工具", + "items": { + "docker": "Docker" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/boards.json b/public/locales/zh/manage/boards.json new file mode 100644 index 000000000..4cbd84d29 --- /dev/null +++ b/public/locales/zh/manage/boards.json @@ -0,0 +1,44 @@ +{ + "metaTitle": "面板", + "pageTitle": "面板", + "cards": { + "statistics": { + "apps": "应用", + "widgets": "组件", + "categories": "分类" + }, + "buttons": { + "view": "查看面板" + }, + "menu": { + "setAsDefault": "设置为默认", + "delete": { + "label": "永久删除", + "disabled": "删除功能被禁用,因为较旧的 Homarr 组件不允许删除默认配置。将来可能会删除。" + } + }, + "badges": { + "fileSystem": "文件系统", + "default": "默认" + } + }, + "buttons": { + "create": "创建新面板" + }, + "modals": { + "delete": { + "title": "删除面板", + "text": "你确定要删除这个面板吗? 此操作无法撤消,您的数据将永久丢失。" + }, + "create": { + "title": "创建面板", + "text": "面板创建成功后,不能修改名称。", + "form": { + "name": { + "label": "名称" + }, + "submit": "创建" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/index.json b/public/locales/zh/manage/index.json new file mode 100644 index 000000000..20bbf04fe --- /dev/null +++ b/public/locales/zh/manage/index.json @@ -0,0 +1,23 @@ +{ + "metaTitle": "管理", + "hero": { + "title": "欢迎回来,{{username}}!", + "fallbackUsername": "匿名", + "subtitle": "欢迎来到您的应用程序中心。组织、优化和征服!" + }, + "quickActions": { + "title": "快捷操作", + "boards": { + "title": "您的面板", + "subtitle": "创建和管理您的面板" + }, + "inviteUsers": { + "title": "邀请新用户", + "subtitle": "创建并发送注册邀请" + }, + "manageUsers": { + "title": "管理用户", + "subtitle": "删除和管理您的用户" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/users.json b/public/locales/zh/manage/users.json new file mode 100644 index 000000000..75722cca3 --- /dev/null +++ b/public/locales/zh/manage/users.json @@ -0,0 +1,36 @@ +{ + "metaTitle": "用户", + "pageTitle": "管理用户", + "text": "通过账号,您可以配置谁可以编辑您的面板。Homarr的未来版本将对权限和面板进行更精细地控制。", + "buttons": { + "create": "创建" + }, + "table": { + "header": { + "user": "用户" + } + }, + "tooltips": { + "deleteUser": "删除用户", + "demoteAdmin": "撤销管理员", + "promoteToAdmin": "提升为管理员" + }, + "modals": { + "delete": { + "title": "删除用户 {{name}}", + "text": "您确定要删除用户 {{name}} 吗?这将删除与该账户相关的数据,但不会删除该用户创建的任何仪表盘。" + }, + "change-role": { + "promote": { + "title": "将用户 {{name}} 提升为管理员", + "text": "您确定要将用户{{name}} 提升为管理员吗? 这将允许用户访问Homarr实例上的所有资源。" + }, + "demote": { + "title": "将用户 {{name}} 降级为用户", + "text": "您确定要将用户{{name}} 降级为用户吗? 这将删除用户对Homarr实例上所有资源的访问权限。" + }, + "confirm": "确认" + } + }, + "searchDoesntMatch": "您的搜索与任何条目都不匹配。请调整您的过滤器。" +} \ No newline at end of file diff --git a/public/locales/zh/manage/users/create.json b/public/locales/zh/manage/users/create.json new file mode 100644 index 000000000..46d98e097 --- /dev/null +++ b/public/locales/zh/manage/users/create.json @@ -0,0 +1,52 @@ +{ + "metaTitle": "创建用户", + "steps": { + "account": { + "title": "第一步", + "text": "创建账号", + "username": { + "label": "用户名" + }, + "email": { + "label": "邮箱" + } + }, + "security": { + "title": "第二步", + "text": "密码", + "password": { + "label": "密码" + } + }, + "finish": { + "title": "确认", + "text": "保存到数据库", + "card": { + "title": "检查您的输入", + "text": "将数据提交到数据库后,用户就可以登录了。您确定要将该用户存储在数据库中并激活登录吗?" + }, + "table": { + "header": { + "property": "属性", + "value": "参数值", + "username": "用户名", + "email": "邮箱", + "password": "密码" + }, + "notSet": "未设置", + "valid": "有效" + }, + "failed": "用户创建失败: {{error}}" + }, + "completed": { + "alert": { + "title": "用户已创建", + "text": "用户已在数据库中创建。他现在可以登录了。" + } + } + }, + "buttons": { + "generateRandomPassword": "随机生成", + "createAnother": "创建另一个" + } +} \ No newline at end of file diff --git a/public/locales/zh/manage/users/invites.json b/public/locales/zh/manage/users/invites.json new file mode 100644 index 000000000..925144768 --- /dev/null +++ b/public/locales/zh/manage/users/invites.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "用户邀请", + "pageTitle": "管理用户邀请", + "description": "使用邀请功能,可以邀请用户访问 Homarr 实例。邀请只在一定的时间范围内有效,并且只能使用一次。过期时间必须在创建后5分钟到12个月之间。", + "button": { + "createInvite": "创建邀请", + "deleteInvite": "删除邀请" + }, + "table": { + "header": { + "id": "ID", + "creator": "创建者", + "expires": "有效期", + "action": "操作" + }, + "data": { + "expiresAt": "过期 {{at}}", + "expiresIn": "在 {{in}}" + } + }, + "modals": { + "create": { + "title": "创建邀请", + "description": "过期后,邀请会失效,被邀请的收件人将无法创建账号。", + "form": { + "expires": "过期时间", + "submit": "创建" + } + }, + "copy": { + "title": "复制邀请信息", + "description": "您的邀请已生成。在此模式关闭后,您将无法再复制此链接。如果你不想再邀请这个人,你可以随时删除这个邀请。", + "invitationLink": "邀请链接", + "details": { + "id": "ID", + "token": "Token" + }, + "button": { + "close": "复制并关闭" + } + }, + "delete": { + "title": "删除邀请", + "description": "你确定要删除这个邀请吗? 使用此链接的用户将不能再使用该链接创建账号。" + } + }, + "noInvites": "还没有邀请。" +} \ No newline at end of file diff --git a/public/locales/zh/modules/bookmark.json b/public/locales/zh/modules/bookmark.json index c5d46c838..dcadff41a 100644 --- a/public/locales/zh/modules/bookmark.json +++ b/public/locales/zh/modules/bookmark.json @@ -31,7 +31,7 @@ "validation": { "length": "长度必须在 {{shortest}} 和 {{longest}} 之间", "invalidLink": "无效链接", - "errorMsg": "没有保存,因为出现了验证错误。请重新输入" + "errorMsg": "由于存在验证错误,未保存。请调整您的输入" }, "name": "名称", "url": "网址", diff --git a/public/locales/zh/modules/calendar.json b/public/locales/zh/modules/calendar.json index 80f174df5..db4529380 100644 --- a/public/locales/zh/modules/calendar.json +++ b/public/locales/zh/modules/calendar.json @@ -7,9 +7,6 @@ "useSonarrv4": { "label": "使用Sonarr v4 API" }, - "sundayStart": { - "label": "使用周日作为一周的开始" - }, "radarrReleaseType": { "label": "Radarr发布类型", "data": { diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json index e5b85a9cd..ec827e382 100644 --- a/public/locales/zh/modules/dashdot.json +++ b/public/locales/zh/modules/dashdot.json @@ -33,7 +33,7 @@ "label": "显示为文本(紧凑型)" }, "multiView": { - "label": "显示为多核视图" + "label": "显示为多驱动视图" } }, "network": { @@ -57,7 +57,7 @@ "label": "列宽度" }, "multiView": { - "label": "显示为多核视图" + "label": "显示为多核心视图" } }, "ram": { @@ -88,7 +88,7 @@ "noInformation": "无法从 Dash. 获取信息。- 你运行的是最新版本吗?", "protocolDowngrade": { "title": "检测到协议降级", - "text": "Dash 正在使用HTTP。这存在安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保 Dash 也在 HTTPS 上运行,或者将 Homarr 降级为 HTTP (不推荐)。" + "text": "与 Dash. 实例的连接使用的是HTTP。这是一个安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保 Dash. 使用的是HTTPS,或者将Homarr降级为HTTP(不推荐)。" } }, "graphs": { diff --git a/public/locales/zh/modules/dns-hole-controls.json b/public/locales/zh/modules/dns-hole-controls.json index c3a4f1cbf..7828a632f 100644 --- a/public/locales/zh/modules/dns-hole-controls.json +++ b/public/locales/zh/modules/dns-hole-controls.json @@ -1,6 +1,18 @@ { "descriptor": { "name": "DNS漏洞控制", - "description": "从您的面板控制 PiHole 或 AdGuard" + "description": "从您的面板控制 PiHole 或 AdGuard", + "settings": { + "title": "DNS 漏洞控制设置", + "showToggleAllButtons": { + "label": "显示 \"启用/禁用全部 \"按钮" + } + }, + "errors": { + "general": { + "title": "无法找到 DNS 漏洞", + "text": "到DNS漏洞的连接有问题。请验证您的配置/集成设置。" + } + } } } \ No newline at end of file diff --git a/public/locales/zh/modules/weather.json b/public/locales/zh/modules/weather.json index 68363a334..5e373fe40 100644 --- a/public/locales/zh/modules/weather.json +++ b/public/locales/zh/modules/weather.json @@ -33,5 +33,5 @@ "unknown": "未知" } }, - "error": "发生错误" + "error": "出现了一个错误" } diff --git a/public/locales/zh/password-requirements.json b/public/locales/zh/password-requirements.json new file mode 100644 index 000000000..4ddc2ff10 --- /dev/null +++ b/public/locales/zh/password-requirements.json @@ -0,0 +1,7 @@ +{ + "number": "包含数字", + "lowercase": "包括小写字母", + "uppercase": "包含大写字母", + "special": "包含特殊符号", + "length": "至少包含 {{count}} 个字符" +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/access.json b/public/locales/zh/settings/customization/access.json new file mode 100644 index 000000000..959b7e267 --- /dev/null +++ b/public/locales/zh/settings/customization/access.json @@ -0,0 +1,6 @@ +{ + "allowGuests": { + "label": "允许匿名用户", + "description": "允许未登录的用户查看您的面板" + } +} \ No newline at end of file diff --git a/public/locales/zh/settings/customization/general.json b/public/locales/zh/settings/customization/general.json index 516a51648..8d1b0ed83 100644 --- a/public/locales/zh/settings/customization/general.json +++ b/public/locales/zh/settings/customization/general.json @@ -20,6 +20,10 @@ "accessibility": { "name": "无障碍服务", "description": "为残疾和残障人士配置 Homarr" + }, + "access": { + "name": "访问", + "description": "配置谁有权访问您的面板" } } } diff --git a/public/locales/zh/settings/customization/page-appearance.json b/public/locales/zh/settings/customization/page-appearance.json index 4af02491d..d55710458 100644 --- a/public/locales/zh/settings/customization/page-appearance.json +++ b/public/locales/zh/settings/customization/page-appearance.json @@ -23,8 +23,5 @@ "description": "此外,只推荐有经验的用户使用 CSS 自定义面板", "placeholder": "自定义 CSS 将在最后应用", "applying": "应用CSS中..." - }, - "buttons": { - "submit": "提交" } -} +} \ No newline at end of file diff --git a/public/locales/zh/tools/docker.json b/public/locales/zh/tools/docker.json new file mode 100644 index 000000000..52ecf5a6d --- /dev/null +++ b/public/locales/zh/tools/docker.json @@ -0,0 +1,32 @@ +{ + "title": "Docker", + "alerts": { + "notConfigured": { + "text": "您的 Homarr 实例未配置 Docker,或无法获取容器。请查看文档,了解如何设置集成。" + } + }, + "modals": { + "selectBoard": { + "title": "选择一个面板", + "text": "选择您想要为选定的 Docker 容器添加应用的面板。", + "form": { + "board": { + "label": "面板" + }, + "submit": "添加应用" + } + } + }, + "notifications": { + "selectBoard": { + "success": { + "title": "添加应用到面板", + "message": "选定的 Docker 容器的应用已添加到面板中。" + }, + "error": { + "title": "添加应用到面板失败", + "message": "所选Docker容器的应用无法添加到面板中。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/user/preferences.json b/public/locales/zh/user/preferences.json new file mode 100644 index 000000000..b17f288d8 --- /dev/null +++ b/public/locales/zh/user/preferences.json @@ -0,0 +1,48 @@ +{ + "metaTitle": "首选项", + "pageTitle": "您的首选项", + "boards": { + "defaultBoard": { + "label": "默认面板" + } + }, + "accessibility": { + "title": "无障碍服务", + "disablePulse": { + "label": "禁用 Ping", + "description": "默认情况下,Homarr 中的 Ping 指示器会一直工作。这可能会让人感到恼火。这个滑块将停用该动画。" + }, + "replaceIconsWithDots": { + "label": "用图标替换 Ping 点", + "description": "对于色盲用户来说,Ping 点可能无法识别。 这将用图标替换指示器" + } + }, + "localization": { + "language": { + "label": "语言" + }, + "firstDayOfWeek": { + "label": "一周的第一天", + "options": { + "monday": "周一", + "saturday": "周六", + "sunday": "周日" + } + } + }, + "searchEngine": { + "title": "搜索引擎", + "custom": "自定义", + "newTab": { + "label": "在新选项卡中打开搜索结果页" + }, + "autoFocus": { + "label": "页面加载时聚焦搜索栏。", + "description": "当您导航到面板页面时,搜索栏会自动聚焦。该功能仅适用于桌面设备。" + }, + "template": { + "label": "查询网址", + "description": "使用 %s 作为查询的占位符" + } + } +} \ No newline at end of file diff --git a/public/locales/zh/zod.json b/public/locales/zh/zod.json new file mode 100644 index 000000000..8e2e503c8 --- /dev/null +++ b/public/locales/zh/zod.json @@ -0,0 +1,22 @@ +{ + "errors": { + "default": "该字段无效", + "required": "此字段为必填", + "string": { + "startsWith": "该字段必须以 {{startsWith}} 开头", + "endsWith": "该字段必须以 {{endsWith}} 结尾", + "includes": "该字段必须包含 {{includes}}" + }, + "tooSmall": { + "string": "该字段的长度必须至少为 {{minimum}} 个字符", + "number": "该字段必须大于或等于 {{minimum}}" + }, + "tooBig": { + "string": "该字段的长度不得超过 {{maximum}} 个字符", + "number": "该字段必须小于或等于 {{maximum}}" + }, + "custom": { + "passwordMatch": "两次输入的密码必须一致" + } + } +} \ No newline at end of file diff --git a/scripts/run.sh b/scripts/run.sh new file mode 100644 index 000000000..3f1651783 --- /dev/null +++ b/scripts/run.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +echo "Exporting hostname..." +export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:7575" +mv node_modules _node_modules +mv node_modules_migrate node_modules +echo "Migrating database..." +yarn ts-node src/migrate.ts & PID=$! +# Wait for migration to finish +wait $PID + +echo "Reverting to production node_modules..." +# Copy specific sqlite3 binary to node_modules +cp /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/_node_modules/better-sqlite3/build/Release/better_sqlite3.node + +# Remove node_modules and copy cached node_modules +mv node_modules node_modules_migrate +mv _node_modules node_modules +cp ./temp_package.json package.json +cp ./temp_yarn.lock yarn.lock + +echo "Starting production server..." +node /app/server.js \ No newline at end of file diff --git a/src/components/Board/Customize/Access/AccessCustomization.tsx b/src/components/Board/Customize/Access/AccessCustomization.tsx new file mode 100644 index 000000000..f1ed17c51 --- /dev/null +++ b/src/components/Board/Customize/Access/AccessCustomization.tsx @@ -0,0 +1,17 @@ +import { Stack, Switch } from '@mantine/core'; +import { useTranslation } from 'next-i18next'; +import { useBoardCustomizationFormContext } from '~/components/Board/Customize/form'; + +export const AccessCustomization = () => { + const { t } = useTranslation('settings/customization/access'); + const form = useBoardCustomizationFormContext(); + return ( + + + + ); +}; diff --git a/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx new file mode 100644 index 000000000..248f4e855 --- /dev/null +++ b/src/components/Board/Customize/Appearance/AppearanceCustomization.tsx @@ -0,0 +1,196 @@ +import { + CheckIcon, + ColorSwatch, + Group, + Input, + MantineTheme, + Slider, + Stack, + Text, + TextInput, + createStyles, + rem, + useMantineTheme, +} from '@mantine/core'; +import { useTranslation } from 'next-i18next'; +import { highlight, languages } from 'prismjs'; +import Editor from 'react-simple-code-editor'; +import { useColorTheme } from '~/tools/color'; + +import { useBoardCustomizationFormContext } from '../form'; + +export const AppearanceCustomization = () => { + const { t } = useTranslation('settings/customization/page-appearance'); + const form = useBoardCustomizationFormContext(); + + return ( + + + + + + + + + ); +}; + +type ColorSelectorProps = { + type: 'primaryColor' | 'secondaryColor'; +}; +const ColorSelector = ({ type }: ColorSelectorProps) => { + const { t } = useTranslation('boards/customize'); + const theme = useMantineTheme(); + const form = useBoardCustomizationFormContext(); + const { setPrimaryColor, setSecondaryColor } = useColorTheme(); + + const colors = Object.keys(theme.colors).map((color) => ({ + swatch: theme.colors[color][6], + color, + })); + + return ( + + + {colors.map(({ color, swatch }) => ( + { + form.getInputProps(`appearance.${type}`).onChange(color); + if (type === 'primaryColor') { + setPrimaryColor(color); + } else { + setSecondaryColor(color); + } + }} + color={swatch} + style={{ cursor: 'pointer' }} + > + {color === form.values.appearance[type] && } + + ))} + + + ); +}; + +const ShadeSelector = () => { + const form = useBoardCustomizationFormContext(); + const theme = useMantineTheme(); + const { setPrimaryShade } = useColorTheme(); + + const primaryColor = form.values.appearance.primaryColor; + const primaryShades = theme.colors[primaryColor].map((_, shade) => ({ + swatch: theme.colors[primaryColor][shade], + shade, + })); + + return ( + + + {primaryShades.map(({ shade, swatch }) => ( + { + form.getInputProps(`appearance.shade`).onChange(shade); + setPrimaryShade(shade as MantineTheme['primaryShade']); + }} + color={swatch} + style={{ cursor: 'pointer' }} + > + {shade === form.values.appearance.shade && } + + ))} + + + ); +}; + +const OpacitySlider = () => { + const { t } = useTranslation('settings/customization/opacity-selector'); + const form = useBoardCustomizationFormContext(); + + return ( + + + + ); +}; + +const opacityMarks = [ + { value: 10, label: '10%' }, + { value: 20, label: '20%' }, + { value: 30, label: '30%' }, + { value: 40, label: '40%' }, + { value: 50, label: '50%' }, + { value: 60, label: '60%' }, + { value: 70, label: '70%' }, + { value: 80, label: '80%' }, + { value: 90, label: '90%' }, + { value: 100, label: '100%' }, +]; + +const CustomCssInput = () => { + const { t } = useTranslation('settings/customization/page-appearance'); + const { classes } = useStyles(); + const form = useBoardCustomizationFormContext(); + + return ( + +
+ form.getInputProps('appearance.customCss').onChange(code)} + highlight={(code) => highlight(code, languages.extend('css', {}), 'css')} + padding={10} + style={{ + fontFamily: '"Fira code", "Fira Mono", monospace', + fontSize: 12, + minHeight: 250, + }} + /> +
+
+ ); +}; + +const useStyles = createStyles(({ colors, colorScheme, radius }) => ({ + codeEditorFooter: { + borderBottomLeftRadius: radius.sm, + borderBottomRightRadius: radius.sm, + backgroundColor: colorScheme === 'dark' ? colors.dark[7] : undefined, + }, + codeEditorRoot: { + marginTop: 4, + borderColor: colorScheme === 'dark' ? colors.dark[4] : colors.gray[4], + borderWidth: 1, + borderStyle: 'solid', + borderRadius: radius.sm, + }, + codeEditor: { + backgroundColor: colorScheme === 'dark' ? colors.dark[6] : 'white', + fontSize: 12, + + '& ::placeholder': { + color: colorScheme === 'dark' ? colors.dark[3] : colors.gray[5], + }, + }, +})); diff --git a/src/components/Board/Customize/Gridstack/GridstackCustomization.tsx b/src/components/Board/Customize/Gridstack/GridstackCustomization.tsx new file mode 100644 index 000000000..4497b3b50 --- /dev/null +++ b/src/components/Board/Customize/Gridstack/GridstackCustomization.tsx @@ -0,0 +1,37 @@ +import { Input, Slider } from '@mantine/core'; +import { useTranslation } from 'next-i18next'; +import { GridstackBreakpoints } from '~/constants/gridstack-breakpoints'; + +import { useBoardCustomizationFormContext } from '../form'; + +export const GridstackCustomization = () => { + const { t } = useTranslation('settings/customization/gridstack'); + const form = useBoardCustomizationFormContext(); + + return ( + <> + + + + + + + + + + + ); +}; diff --git a/src/components/Board/Customize/Layout/LayoutCustomization.tsx b/src/components/Board/Customize/Layout/LayoutCustomization.tsx new file mode 100644 index 000000000..248e8a18a --- /dev/null +++ b/src/components/Board/Customize/Layout/LayoutCustomization.tsx @@ -0,0 +1,42 @@ +import { Checkbox, Grid, Stack } from '@mantine/core'; +import { useTranslation } from 'next-i18next'; + +import { useBoardCustomizationFormContext } from '../form'; +import { LayoutPreview } from './LayoutPreview'; + +export const LayoutCustomization = () => { + const { t } = useTranslation('settings/common'); + const form = useBoardCustomizationFormContext(); + + return ( + + + + + + + + + + + + + + + ); +}; diff --git a/src/components/Board/Customize/Layout/LayoutPreview.tsx b/src/components/Board/Customize/Layout/LayoutPreview.tsx new file mode 100644 index 000000000..ecae8cc6f --- /dev/null +++ b/src/components/Board/Customize/Layout/LayoutPreview.tsx @@ -0,0 +1,124 @@ +import { Flex, Group, Indicator, Paper, Stack, createStyles } from '@mantine/core'; +import { Logo } from '~/components/layout/Common/Logo'; +import { createDummyArray } from '~/tools/client/arrays'; + +type LayoutPreviewProps = { + showLeftSidebar: boolean; + showRightSidebar: boolean; + showPings: boolean; +}; +export const LayoutPreview = ({ + showLeftSidebar, + showRightSidebar, + showPings, +}: LayoutPreviewProps) => { + const { classes } = useStyles(); + + return ( + + + +
+ +
+ + + + +
+
+ + + {showLeftSidebar && ( + + + {createDummyArray(5).map((_item, index) => ( + + ))} + + + )} + + + + {createDummyArray(10).map((_item, index) => ( + + ))} + + + + {showRightSidebar && ( + + + {createDummyArray(5).map((_item, index) => ( + + ))} + + + )} + +
+ ); +}; + +const useStyles = createStyles((theme) => ({ + primaryWrapper: { + flexGrow: 2, + }, + secondaryWrapper: { + flexGrow: 1, + maxWidth: 100, + }, +})); + +const BaseElement = ({ height, width }: { height: number; width: number }) => ( + ({ + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[1], + })} + h={height} + p={2} + w={width} + /> +); + +type PlaceholderElementProps = { + height: number; + width: number; + showPing: boolean; + index: number; +}; +const PlaceholderElement = ({ height, width, showPing, index }: PlaceholderElementProps) => { + if (showPing) { + return ( + + + + ); + } + + return ; +}; diff --git a/src/components/Board/Customize/PageMetadata/PageMetadataCustomization.tsx b/src/components/Board/Customize/PageMetadata/PageMetadataCustomization.tsx new file mode 100644 index 000000000..a8af57b18 --- /dev/null +++ b/src/components/Board/Customize/PageMetadata/PageMetadataCustomization.tsx @@ -0,0 +1,45 @@ +import { Grid, Stack, TextInput } from '@mantine/core'; +import { useTranslation } from 'next-i18next'; + +import { useBoardCustomizationFormContext } from '../form'; + +export const PageMetadataCustomization = () => { + const { t } = useTranslation('settings/customization/page-appearance'); + const form = useBoardCustomizationFormContext(); + return ( + + + + + + + + + + + + + + + ); +}; diff --git a/src/components/Board/Customize/form.ts b/src/components/Board/Customize/form.ts new file mode 100644 index 000000000..141eb1af4 --- /dev/null +++ b/src/components/Board/Customize/form.ts @@ -0,0 +1,9 @@ +import { createFormContext } from '@mantine/form'; +import { z } from 'zod'; +import { boardCustomizationSchema } from '~/validations/boards'; + +export const [ + BoardCustomizationFormProvider, + useBoardCustomizationFormContext, + useBoardCustomizationForm, +] = createFormContext>(); diff --git a/src/components/Config/ConfigChanger.tsx b/src/components/Config/ConfigChanger.tsx deleted file mode 100644 index 8613660ae..000000000 --- a/src/components/Config/ConfigChanger.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { Center, Dialog, Loader, Notification, Select, Tooltip } from '@mantine/core'; -import { useToggle } from '@mantine/hooks'; -import { notifications } from '@mantine/notifications'; -import { IconCheck } from '@tabler/icons-react'; -import { setCookie } from 'cookies-next'; -import { useTranslation } from 'next-i18next'; -import { useRouter } from 'next/router'; -import { useState } from 'react'; -import { api } from '~/utils/api'; - -import { useConfigContext } from '../../config/provider'; - -export default function ConfigChanger() { - const router = useRouter(); - - const { t } = useTranslation('settings/general/config-changer'); - const { name: configName, setConfigName } = useConfigContext(); - - const { data: configs, isLoading } = useConfigsQuery(); - const [activeConfig, setActiveConfig] = useState(configName); - const [isRefreshing, toggle] = useToggle(); - - const onConfigChange = (value: string) => { - setCookie('config-name', value ?? 'default', { - maxAge: 60 * 60 * 24 * 30, - sameSite: 'strict', - }); - setActiveConfig(value); - - notifications.show({ - id: 'load-data', - loading: true, - title: t('configSelect.loadingNew'), - radius: 'md', - withCloseButton: false, - message: t('configSelect.pleaseWait'), - autoClose: false, - }); - - setTimeout(() => { - notifications.update({ - id: 'load-data', - color: 'teal', - radius: 'md', - withCloseButton: false, - title: t('configSelect.loadingNew'), - message: t('configSelect.pleaseWait'), - icon: , - autoClose: 2000, - }); - }, 3000); - setTimeout(() => { - router.push(`/${value}`); - setConfigName(value); - }, 500); - }; - - // If configlist is empty, return a loading indicator - if (isLoading || !configs || configs.length === 0 || !configName) { - return ( - -
- -
-
- ); - } - - return ( - <> - ({ + value: board.name, + label: board.name, + })) ?? [] + } + {...form.getInputProps('board')} + /> + + + + + + + + ); +}; + +export const openDockerSelectBoardModal = (innerProps: InnerProps) => { + modals.openContextModal({ + modal: 'dockerSelectBoardModal', + title: ( + + <Trans i18nKey="tools/docker:modals.selectBoard.title" /> + + ), + innerProps, + }); + umami.track('Add to homarr modal') +}; diff --git a/src/components/Manage/User/Create/create-account-step.tsx b/src/components/Manage/User/Create/create-account-step.tsx new file mode 100644 index 000000000..d6fdcdc1c --- /dev/null +++ b/src/components/Manage/User/Create/create-account-step.tsx @@ -0,0 +1,73 @@ +import { Button, Card, Flex, TextInput } from '@mantine/core'; +import { useForm } from '@mantine/form'; +import { IconArrowRight, IconAt, IconUser } from '@tabler/icons-react'; +import { useTranslation } from 'next-i18next'; +import { z } from 'zod'; +import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; + +interface CreateAccountStepProps { + nextStep: ({ eMail, username }: { username: string; eMail: string }) => void; + defaultUsername: string; + defaultEmail: string; +} + +export const CreateAccountStep = ({ + defaultEmail, + defaultUsername, + nextStep, +}: CreateAccountStepProps) => { + const { t } = useTranslation('manage/users/create'); + + const { i18nZodResolver } = useI18nZodResolver(); + const form = useForm({ + initialValues: { + username: defaultUsername, + eMail: defaultEmail, + }, + validateInputOnBlur: true, + validateInputOnChange: true, + validate: i18nZodResolver(createAccountStepValidationSchema), + }); + + return ( + + } + label={t('steps.account.username.label')} + variant="filled" + mb="md" + withAsterisk + {...form.getInputProps('username')} + /> + } + label={t('steps.account.email.label')} + variant="filled" + mb="md" + {...form.getInputProps('eMail')} + /> + + + + + + ); +}; + +export const createAccountStepValidationSchema = z.object({ + username: z.string().min(1).max(100), + eMail: z.string().email().or(z.literal('')), +}); diff --git a/src/components/Manage/User/Create/review-input-step.tsx b/src/components/Manage/User/Create/review-input-step.tsx new file mode 100644 index 000000000..eb56d7efe --- /dev/null +++ b/src/components/Manage/User/Create/review-input-step.tsx @@ -0,0 +1,126 @@ +import { Alert, Button, Card, Group, Table, Text, Title } from '@mantine/core'; +import { + IconAlertTriangle, + IconAlertTriangleFilled, + IconArrowLeft, + IconCheck, + IconInfoCircle, + IconKey, + IconMail, + IconUser, +} from '@tabler/icons-react'; +import { useTranslation } from 'next-i18next'; +import { CreateAccountSchema } from '~/pages/manage/users/create'; +import { api } from '~/utils/api'; + +type ReviewInputStepProps = { + values: CreateAccountSchema; + prevStep: () => void; + nextStep: () => void; +}; + +export const ReviewInputStep = ({ values, prevStep, nextStep }: ReviewInputStepProps) => { + const { t } = useTranslation('manage/users/create'); + + const utils = api.useContext(); + const { + mutateAsync: createAsync, + isLoading, + isError, + error, + } = api.user.create.useMutation({ + onSettled: () => { + void utils.user.all.invalidate(); + }, + onSuccess: () => { + nextStep(); + }, + }); + + return ( + + {t('steps.finish.card.title')} + {t('steps.finish.card.text')} + + + + + + + + + + + + + + + + + + + + + + +
{t('steps.finish.table.header.property')}{t('steps.finish.table.header.value')}
+ + + {t('steps.finish.table.header.username')} + + {values.account.username}
+ + + {t('steps.finish.table.header.email')} + + + {values.account.eMail ? ( + {values.account.eMail} + ) : ( + + + {t('steps.finish.table.notSet')} + + )} +
+ + + {t('steps.finish.table.header.password')} + + + + + {t('steps.finish.table.valid')} + +
+ + {isError && ( + } mb="lg"> + {t('steps.finish.failed', { error: error.message })} + + )} + + + + + +
+ ); +}; diff --git a/src/components/Manage/User/Create/security-step.tsx b/src/components/Manage/User/Create/security-step.tsx new file mode 100644 index 000000000..24f8a3c6e --- /dev/null +++ b/src/components/Manage/User/Create/security-step.tsx @@ -0,0 +1,109 @@ +import { Button, Card, Flex, Group, PasswordInput, Popover } from '@mantine/core'; +import { useForm } from '@mantine/form'; +import { IconArrowLeft, IconArrowRight, IconDice, IconKey } from '@tabler/icons-react'; +import { useTranslation } from 'next-i18next'; +import { useState } from 'react'; +import { z } from 'zod'; +import { PasswordRequirements } from '~/components/Password/password-requirements'; +import { api } from '~/utils/api'; +import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; +import { passwordSchema } from '~/validations/user'; + +interface CreateAccountSecurityStepProps { + defaultPassword: string; + nextStep: ({ password }: { password: string }) => void; + prevStep: () => void; +} + +export const CreateAccountSecurityStep = ({ + defaultPassword, + nextStep, + prevStep, +}: CreateAccountSecurityStepProps) => { + const { t } = useTranslation('manage/users/create'); + + const { i18nZodResolver } = useI18nZodResolver(); + const form = useForm({ + initialValues: { + password: defaultPassword, + }, + validateInputOnBlur: true, + validateInputOnChange: true, + validate: i18nZodResolver(createAccountSecurityStepValidationSchema), + }); + + const { mutateAsync, isLoading } = api.password.generate.useMutation(); + + const [popoverOpened, setPopoverOpened] = useState(false); + + return ( + + + +
setPopoverOpened(true)} + onBlurCapture={() => setPopoverOpened(false)} + > + + } + style={{ + flexGrow: 1, + }} + label={t('steps.security.password.label')} + variant="filled" + mb="md" + withAsterisk + {...form.getInputProps('password')} + /> + + +
+
+ + + +
+ + + + + +
+ ); +}; + +export const createAccountSecurityStepValidationSchema = z.object({ + password: passwordSchema, +}); diff --git a/src/components/Manage/User/Invite/copy-invite.modal.tsx b/src/components/Manage/User/Invite/copy-invite.modal.tsx new file mode 100644 index 000000000..44551e6b1 --- /dev/null +++ b/src/components/Manage/User/Invite/copy-invite.modal.tsx @@ -0,0 +1,75 @@ +import { Button, CopyButton, Mark, Stack, Text, Title } from '@mantine/core'; +import { ContextModalProps, modals } from '@mantine/modals'; +import { Trans, useTranslation } from 'next-i18next'; +import Link from 'next/link'; +import { useRouter } from 'next/router'; +import { RouterOutputs } from '~/utils/api'; + +type InnerProps = RouterOutputs['invites']['create']; + +export const CopyInviteModal = ({ id, innerProps }: ContextModalProps) => { + const { t } = useTranslation('manage/users/invites'); + const inviteUrl = useInviteUrl(innerProps.id, innerProps.token); + + return ( + + + , + }} + /> + + + + {t('modals.copy.invitationLink')} + + + + {t('modals.copy.details.id')}: + + {innerProps.id} + + + {t('modals.copy.details.token')}: + + {innerProps.token} + + + + + {({ copy }) => ( + + )} + + + ); +}; + +const useInviteUrl = (id: string, token: string) => { + const router = useRouter(); + + return `${window.location.href.replace(router.pathname, `/auth/invite/${id}?token=${token}`)}`; +}; + +export const openCopyInviteModal = (data: InnerProps) => { + modals.openContextModal({ + modal: 'copyInviteModal', + title: ( + + <Trans i18nKey="manage/users/invites:modals.copy.title" /> + + ), + innerProps: data, + }); +}; diff --git a/src/components/Manage/User/Invite/create-invite.modal.tsx b/src/components/Manage/User/Invite/create-invite.modal.tsx new file mode 100644 index 000000000..972a210a2 --- /dev/null +++ b/src/components/Manage/User/Invite/create-invite.modal.tsx @@ -0,0 +1,89 @@ +import { Button, Group, Stack, Text, Title } from '@mantine/core'; +import { DateTimePicker } from '@mantine/dates'; +import { useForm } from '@mantine/form'; +import { ContextModalProps, modals } from '@mantine/modals'; +import dayjs from 'dayjs'; +import { Trans, useTranslation } from 'next-i18next'; +import { api } from '~/utils/api'; +import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; +import { createInviteSchema } from '~/validations/invite'; + +import { openCopyInviteModal } from './copy-invite.modal'; + +export const CreateInviteModal = ({ id }: ContextModalProps<{}>) => { + const { t } = useTranslation('manage/users/invites'); + const utils = api.useContext(); + const { isLoading, mutateAsync } = api.invites.create.useMutation({ + onSuccess: async (data) => { + await utils.invites.all.invalidate(); + modals.close(id); + + openCopyInviteModal(data); + }, + }); + + const { i18nZodResolver } = useI18nZodResolver(); + + const minDate = dayjs().add(5, 'minutes').toDate(); + const maxDate = dayjs().add(6, 'months').toDate(); + + const form = useForm({ + initialValues: { + expirationDate: dayjs().add(7, 'days').toDate(), + }, + validate: i18nZodResolver(createInviteSchema), + }); + + return ( + + {t('modals.create.description')} + + + + + + + + + ); +}; + +export const openCreateInviteModal = () => { + modals.openContextModal({ + modal: 'createInviteModal', + title: ( + + <Trans i18nKey="manage/users/invites:modals.create.title" /> + + ), + innerProps: {}, + }); +}; diff --git a/src/components/Manage/User/Invite/delete-invite.modal.tsx b/src/components/Manage/User/Invite/delete-invite.modal.tsx new file mode 100644 index 000000000..b1d709b2a --- /dev/null +++ b/src/components/Manage/User/Invite/delete-invite.modal.tsx @@ -0,0 +1,44 @@ +import { Button, Group, Stack, Text } from '@mantine/core'; +import { ContextModalProps, modals } from '@mantine/modals'; +import { useTranslation } from 'next-i18next'; +import { api } from '~/utils/api'; + +export const DeleteInviteModal = ({ id, innerProps }: ContextModalProps<{ tokenId: string }>) => { + const { t } = useTranslation('manage/users/invites'); + const utils = api.useContext(); + const { isLoading, mutateAsync: deleteAsync } = api.invites.delete.useMutation({ + onSuccess: async () => { + await utils.invites.all.invalidate(); + modals.close(id); + }, + }); + return ( + + {t('modals.delete.description')} + + + + + + + ); +}; diff --git a/src/components/Manage/User/change-user-role.modal.tsx b/src/components/Manage/User/change-user-role.modal.tsx new file mode 100644 index 000000000..45c09a7aa --- /dev/null +++ b/src/components/Manage/User/change-user-role.modal.tsx @@ -0,0 +1,59 @@ +import { Button, Group, Stack, Text, Title } from '@mantine/core'; +import { ContextModalProps, modals } from '@mantine/modals'; +import { Trans, useTranslation } from 'next-i18next'; +import { api } from '~/utils/api'; + +type InnerProps = { id: string; name: string; type: 'promote' | 'demote' }; + +export const ChangeUserRoleModal = ({ id, innerProps }: ContextModalProps) => { + const { t } = useTranslation('manage/users'); + const utils = api.useContext(); + const { isLoading, mutateAsync } = api.user.changeRole.useMutation({ + onSuccess: async () => { + await utils.user.all.invalidate(); + modals.close(id); + }, + }); + return ( + + {t(`modals.change-role.${innerProps.type}.text`, innerProps)} + + + + + + + ); +}; + +export const openRoleChangeModal = (user: InnerProps) => { + modals.openContextModal({ + modal: 'changeUserRoleModal', + title: ( + + <Trans + i18nKey={`manage/users:modals.change-role.${user.type}.title`} + values={{ name: user.name }} + /> + + ), + innerProps: user, + }); +}; diff --git a/src/components/Manage/User/delete-user.modal.tsx b/src/components/Manage/User/delete-user.modal.tsx new file mode 100644 index 000000000..adbeae1ce --- /dev/null +++ b/src/components/Manage/User/delete-user.modal.tsx @@ -0,0 +1,56 @@ +import { Button, Group, Stack, Text, Title } from '@mantine/core'; +import { ContextModalProps, modals } from '@mantine/modals'; +import { Trans, useTranslation } from 'next-i18next'; +import { api } from '~/utils/api'; + +type InnerProps = { id: string; name: string }; + +export const DeleteUserModal = ({ id, innerProps }: ContextModalProps) => { + const { t } = useTranslation('manage/users'); + const utils = api.useContext(); + const { isLoading, mutateAsync } = api.user.deleteUser.useMutation({ + onSuccess: async () => { + await utils.user.all.invalidate(); + modals.close(id); + }, + }); + return ( + + {t('modals.delete.text', innerProps)} + + + + + + + ); +}; + +export const openDeleteUserModal = (user: InnerProps) => { + modals.openContextModal({ + modal: 'deleteUserModal', + title: ( + + <Trans i18nKey="manage/users:modals.delete.title" values={{ name: user.name }} /> + + ), + innerProps: user, + }); +}; diff --git a/src/components/Onboarding/common-wrapper.tsx b/src/components/Onboarding/common-wrapper.tsx new file mode 100644 index 000000000..09df0005f --- /dev/null +++ b/src/components/Onboarding/common-wrapper.tsx @@ -0,0 +1,10 @@ +import { Card } from '@mantine/core'; +import { ReactNode } from 'react'; + +export const OnboardingStepWrapper = ({ children }: { children: ReactNode }) => { + return ( + + {children} + + ); +}; diff --git a/src/components/Onboarding/onboarding-steps.tsx b/src/components/Onboarding/onboarding-steps.tsx new file mode 100644 index 000000000..f9173d201 --- /dev/null +++ b/src/components/Onboarding/onboarding-steps.tsx @@ -0,0 +1,38 @@ +import { Stack, Stepper } from '@mantine/core'; +import { useState } from 'react'; + +import { StepCreateAccount } from './step-create-account'; +import { StepOnboardingFinished } from './step-onboarding-finished'; +import { StepUpdatePathMappings } from './step-update-path-mappings'; + +export const OnboardingSteps = ({ isUpdate }: { isUpdate: boolean }) => { + const [currentStep, setCurrentStep] = useState(0); + const nextStep = () => setCurrentStep((current) => (current < 3 ? current + 1 : current)); + const prevStep = () => setCurrentStep((current) => (current > 0 ? current - 1 : current)); + + return ( + + + {isUpdate && ( + + + + )} + + + + + + + + + ); +}; diff --git a/src/components/Onboarding/step-create-account.tsx b/src/components/Onboarding/step-create-account.tsx new file mode 100644 index 000000000..01dc4a5f8 --- /dev/null +++ b/src/components/Onboarding/step-create-account.tsx @@ -0,0 +1,113 @@ +import { Button, Card, Group, PasswordInput, Stack, Text, TextInput, Title } from '@mantine/core'; +import { useForm } from '@mantine/form'; +import { IconArrowLeft, IconArrowRight } from '@tabler/icons-react'; +import { signIn } from 'next-auth/react'; +import { useState } from 'react'; +import { z } from 'zod'; +import { api } from '~/utils/api'; +import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; +import { signUpFormSchema } from '~/validations/user'; + +import { PasswordRequirements } from '../Password/password-requirements'; +import { OnboardingStepWrapper } from './common-wrapper'; + +export const StepCreateAccount = ({ + previous, + next, +}: { + previous: () => void; + next: () => void; +}) => { + const [isSigninIn, setIsSigninIn] = useState(false); + const { mutateAsync } = api.user.createOwnerAccount.useMutation(); + const { i18nZodResolver } = useI18nZodResolver(); + + const form = useForm>({ + initialValues: { + password: '', + username: '', + passwordConfirmation: '', + }, + validate: i18nZodResolver(signUpFormSchema), + validateInputOnBlur: true, + }); + const handleSubmit = (values: z.infer) => { + setIsSigninIn(true); + void mutateAsync(values, { + onSuccess: () => { + signIn('credentials', { + redirect: false, + name: values.username, + password: values.password, + callbackUrl: '/', + }).then((response) => { + if (!response?.ok) { + setIsSigninIn(false); + return; + } + next(); + }); + }, + }); + }; + + return ( + + + Create your administrator account + + + Your administrator account must be secure, that's why we have so many rules surrounding it. +
Try not to make it adminadmin this time... +
Note: these password requirements are not forced, they are just recommendations. +
+
+ + + + + + + + + + + + + + + +
+
+ ); +}; diff --git a/src/components/Onboarding/step-onboarding-finished.tsx b/src/components/Onboarding/step-onboarding-finished.tsx new file mode 100644 index 000000000..5cd69a285 --- /dev/null +++ b/src/components/Onboarding/step-onboarding-finished.tsx @@ -0,0 +1,72 @@ +import { Divider, NavLink, Stack, Text, Title, createStyles } from '@mantine/core'; +import { + IconChevronRight, + IconDashboard, + IconExternalLink, + IconFileText, + IconManualGearbox, +} from '@tabler/icons-react'; +import Image from 'next/image'; +import Link from 'next/link'; + +import { OnboardingStepWrapper } from './common-wrapper'; + +export const StepOnboardingFinished = () => { + const { classes } = useStyles(); + return ( + + + + + Congratulations, you've set Homarr up! + + Awesome! What do you want to do next? + + + + We highly recommend you to take a look at the documentation before starting to + use Homarr if you've never used it before. + + } + className={classes.link} + icon={} + label="Check out the documentation" + variant="light" + active + /> + + } + className={classes.link} + icon={} + label="Go to your board" + variant="light" + active + /> + } + className={classes.link} + icon={} + label="Go to the management dashboard" + variant="light" + active + /> + + + + ); +}; + +const useStyles = createStyles((theme) => ({ + link: { + borderRadius: '0.4rem', + }, +})); diff --git a/src/components/Onboarding/step-update-path-mappings.tsx b/src/components/Onboarding/step-update-path-mappings.tsx new file mode 100644 index 000000000..68ab42672 --- /dev/null +++ b/src/components/Onboarding/step-update-path-mappings.tsx @@ -0,0 +1,209 @@ +import { Box, Button, Code, Group, List, Space, Tabs, TabsValue, Text, Title } from '@mantine/core'; +import { Prism } from '@mantine/prism'; +import { + IconArrowRight, + IconBrandDebian, + IconBrandDocker, + IconInfoSquareRounded, +} from '@tabler/icons-react'; +import Image from 'next/image'; +import { useState } from 'react'; + +import { OnboardingStepWrapper } from './common-wrapper'; + +const dockerRunCommand = `docker run \\ +--name homarr \\ +--restart unless-stopped \\ +-p 7575:7575 \\ +-v your-path/homarr/configs:/app/data/configs \\ +-v your-path/homarr/data:/data \\ +-v your-path/homarr/icons:/app/public/icons \\ +-d ghcr.io/ajnart/homarr:latest`; + +const dockerComposeCommand = `version: '3' +#---------------------------------------------------------------------# +# Homarr - A simple, yet powerful dashboard for your server. # +#---------------------------------------------------------------------# +services: + homarr: + container_name: homarr + image: ghcr.io/ajnart/homarr:latest + restart: unless-stopped + volumes: + - ./homarr/configs:/app/data/configs + - ./homarr/data:/data + - ./homarr/icons:/app/public/icons + ports: + - '7575:7575'`; + +const added = { color: 'green', label: '+' }; + +export const StepUpdatePathMappings = ({ next }: { next: () => void }) => { + const [selectedTab, setSelectedTab] = useState('standard_docker'); + return ( + + + Update path mappings + + + Homarr has updated the location of the saved data. We detected, that your instance might + need an update to function as expected. It is recommended, that you take a backup of your + .json configuration file on the file system and copy it, in case something goes wrong. + + + + setSelectedTab(tab)} mt="xs"> + + }> + Docker + + }> + Docker Compose + + }> + Standalone Linux / Windows + + } + > + Unraid + + }> + Others + + + + + + + + Back up your configuration. In case you didn't mount your configuration + correctly, you could risk loosing your dashboard. To back up, + go on your file system and copy the directory, containing your + default.json to your local machine. + + + + + Before you continue, check that you still have the command, that you set up Homarr + with. Otherwise, your configuration might not be loaded correctly or icons are + missing. + + + + + Run docker rm homarr, where homarr indicates the name of + your container + + + + + Run docker run ... again, that you used to create the Homarr container. + Note, that you need to add a new line: + + + {dockerRunCommand} + + + Refresh this page and click on "continue" + + + + + + + + Back up your configuration. In case you didn't mount your configuration + correctly, you could risk loosing your dashboard. To back up, + go on your file system and copy the directory, containing your + default.json to your local machine. + + + + + Navigate to the directory, where the docker-compose.yml for Homarr is + located. + + + + + Run docker compose down + + + + + Edit docker-compose.yml using text editor. Use Notepad or VSC on GUI + based systems. Use nano or vim on terminal systems. + + + {dockerComposeCommand} + + + + Run docker compose up. + + Refresh this page and click on "continue" + + + + + + You're lucky. For installation without Docker on Windows and Linux, there are no + additional steps required. However, be advised that your backups should start to include + the files located at /database too, if you run automatic backups. + + + + + + Click on your Homarr application and click "Edit" + + Scroll down and click on the link "Add another path, port, variable or device" + + + After the new modal has opened, make sure that "Path" has been selected at the top + + + In the container path, enter /data + + + In the host path, enter a new path on your host system. Choose a similar path, but the + innermost directory should be different, than your existing mounting points (eg.{' '} + /mnt/user/appdata/homarr/data) + + Click "Apply" and wait for the container to be restarted. + Refresh this page and click on "continue" + + + + + + We are sadly not able to include upgrade guides for all kind of systems. If your system + was not listed, you should mount this new mounting point in your container: + + /data + + + + {selectedTab ? ( + + + + ) : ( + + + Please select your installation method + + + )} + + ); +}; diff --git a/src/components/Password/password-requirement.tsx b/src/components/Password/password-requirement.tsx new file mode 100644 index 000000000..3e0286810 --- /dev/null +++ b/src/components/Password/password-requirement.tsx @@ -0,0 +1,24 @@ +import { Box, Text } from '@mantine/core'; +import { IconCheck, IconX } from '@tabler/icons-react'; +import { useTranslation } from 'next-i18next'; +import { minPasswordLength } from '~/validations/user'; + +export const PasswordRequirement = ({ meets, label }: { meets: boolean; label: string }) => { + const { t } = useTranslation('password-requirements'); + + return ( + + {meets ? : } + + {t(`${label}`, { + count: minPasswordLength, + })} + + + ); +}; diff --git a/src/components/Password/password-requirements.tsx b/src/components/Password/password-requirements.tsx new file mode 100644 index 000000000..4ec5cd850 --- /dev/null +++ b/src/components/Password/password-requirements.tsx @@ -0,0 +1,42 @@ +import { Progress } from '@mantine/core'; +import { minPasswordLength } from '~/validations/user'; + +import { PasswordRequirement } from './password-requirement'; + +const requirements = [ + { re: /[0-9]/, label: 'number' }, + { re: /[a-z]/, label: 'lowercase' }, + { re: /[A-Z]/, label: 'uppercase' }, + { re: /[$&+,:;=?@#|'<>.^*()%!-]/, label: 'special' }, +]; + +function getStrength(password: string) { + let score = 0; + const goal = requirements.length + 1; + + requirements.forEach((requirement) => { + if (requirement.re.test(password)) { + score += 1; + } + }); + if (password.length >= minPasswordLength) { + score += 1; + } + return (score / goal) * 100; +} + +export const PasswordRequirements = ({ value }: { value: string }) => { + const checks = requirements.map((requirement, index) => ( + + )); + + const strength = getStrength(value); + const color = strength === 100 ? 'teal' : strength > 50 ? 'yellow' : 'red'; + return ( + <> + + = minPasswordLength} /> + {checks} + + ); +}; diff --git a/src/components/Settings/Common/CacheButtons.tsx b/src/components/Settings/Common/CacheButtons.tsx deleted file mode 100644 index 409ededfc..000000000 --- a/src/components/Settings/Common/CacheButtons.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { Button, Group, MultiSelect, Stack, Title } from '@mantine/core'; -import { notifications } from '@mantine/notifications'; -import { IconTrash } from '@tabler/icons-react'; -import { useState } from 'react'; - -import { queryClient } from '../../../tools/server/configurations/tanstack/queryClient.tool'; -import { useTranslation } from 'react-i18next'; - -export function CacheButtons() { - const [value, setValue] = useState([]); - - const { t } = useTranslation('settings/general/cache-buttons') - - const data = [ - { value: 'ping', label: t('selector.data.ping') }, - { value: 'repository-icons', label: t('selector.data.repositoryIcons') }, - { value: 'calendar/medias', label: t('selector.data.calendar&medias') }, - { value: 'weather', label: t('selector.data.weather') }, - ]; - - return ( - - {t('title')} - - - - - - - ); -} diff --git a/src/components/Settings/Common/CommonSettings.tsx b/src/components/Settings/Common/CommonSettings.tsx deleted file mode 100644 index 26ccaec6e..000000000 --- a/src/components/Settings/Common/CommonSettings.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { ScrollArea, Space, Stack, Text } from '@mantine/core'; -import { useViewportSize } from '@mantine/hooks'; - -import { useConfigContext } from '../../../config/provider'; -import ConfigChanger from '../../Config/ConfigChanger'; -import { CacheButtons } from './CacheButtons'; -import ConfigActions from './Config/ConfigActions'; -import LanguageSelect from './Language/LanguageSelect'; -import { SearchEngineSelector } from './SearchEngine/SearchEngineSelector'; - -export default function CommonSettings() { - const { config } = useConfigContext(); - const { height, width } = useViewportSize(); - - if (!config) { - return ( - - No active config - - ); - } - return ( - - - - - - - - - - - ); -} diff --git a/src/components/Settings/Common/Config/ConfigActions.tsx b/src/components/Settings/Common/Config/ConfigActions.tsx deleted file mode 100644 index e3bb2941d..000000000 --- a/src/components/Settings/Common/Config/ConfigActions.tsx +++ /dev/null @@ -1,172 +0,0 @@ -import { - ActionIcon, - Alert, - Center, - Flex, - Text, - createStyles, - useMantineTheme, -} from '@mantine/core'; -import { useDisclosure } from '@mantine/hooks'; -import { openConfirmModal } from '@mantine/modals'; -import { showNotification } from '@mantine/notifications'; -import { - IconAlertTriangle, - IconCheck, - IconCopy, - IconDownload, - IconTrash, - IconX, -} from '@tabler/icons-react'; -import fileDownload from 'js-file-download'; -import { Trans, useTranslation } from 'next-i18next'; -import { useRouter } from 'next/router'; -import { api } from '~/utils/api'; - -import { useConfigContext } from '../../../../config/provider'; -import { useConfigStore } from '../../../../config/store'; -import Tip from '../../../layout/Tip'; -import { CreateConfigCopyModal } from './CreateCopyModal'; - -export default function ConfigActions() { - const { t } = useTranslation(['settings/general/config-changer', 'settings/common', 'common']); - const [createCopyModalOpened, createCopyModal] = useDisclosure(false); - const { config } = useConfigContext(); - const { mutateAsync } = useDeleteConfigMutation(); - - if (!config) return null; - - const handleDownload = () => { - fileDownload(JSON.stringify(config, null, '\t'), `${config?.configProperties.name}.json`); - }; - - const handleDeletion = async () => { - openConfirmModal({ - title: t('modal.confirmDeletion.title'), - children: ( - <> - } mb="md"> - , code: }} - /> - - {t('modal.confirmDeletion.text')} - - ), - labels: { - confirm: ( - , code: }} - /> - ), - cancel: t('common:cancel'), - }, - zIndex: 201, - onConfirm: async () => { - const response = await mutateAsync({ - name: config?.configProperties.name ?? 'default', - }); - }, - }); - }; - - const { classes } = useStyles(); - const { colors } = useMantineTheme(); - - return ( - <> - - - - - {t('buttons.download')} - - - - {t('buttons.delete.text')} - - - - {t('buttons.saveCopy')} - - - -
- {t('settings/common:tips.configTip')} -
- - ); -} - -const useDeleteConfigMutation = () => { - const { t } = useTranslation(['settings/general/config-changer']); - const router = useRouter(); - const { removeConfig } = useConfigStore(); - - return api.config.delete.useMutation({ - onError(error) { - if (error.data?.code === 'FORBIDDEN') { - showNotification({ - title: t('buttons.delete.notifications.deleteFailedDefaultConfig.title'), - icon: , - color: 'red', - autoClose: 1500, - radius: 'md', - message: t('buttons.delete.notifications.deleteFailedDefaultConfig.message'), - }); - } - showNotification({ - title: t('buttons.delete.notifications.deleteFailed.title'), - icon: , - color: 'red', - autoClose: 1500, - radius: 'md', - message: t('buttons.delete.notifications.deleteFailed.message'), - }); - }, - onSuccess(data, variables) { - showNotification({ - title: t('buttons.delete.notifications.deleted.title'), - icon: , - color: 'green', - autoClose: 1500, - radius: 'md', - message: t('buttons.delete.notifications.deleted.message'), - }); - - removeConfig(variables.name); - - router.push('/'); - }, - }); -}; - -const useStyles = createStyles(() => ({ - actionIcon: { - width: 'auto', - height: 'auto', - maxWidth: 'auto', - maxHeight: 'auto', - flexGrow: 1, - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - textAlign: 'center', - rowGap: 10, - padding: 10, - }, -})); diff --git a/src/components/Settings/Common/Config/CreateCopyModal.tsx b/src/components/Settings/Common/Config/CreateCopyModal.tsx deleted file mode 100644 index 1acdd89cc..000000000 --- a/src/components/Settings/Common/Config/CreateCopyModal.tsx +++ /dev/null @@ -1,123 +0,0 @@ -import { Button, Group, Modal, TextInput, Title } from '@mantine/core'; -import { useForm } from '@mantine/form'; -import { showNotification } from '@mantine/notifications'; -import { IconCheck, IconX } from '@tabler/icons-react'; -import { useTranslation } from 'next-i18next'; -import { useConfigContext } from '~/config/provider'; -import { api } from '~/utils/api'; - -import { useConfigStore } from '../../../../config/store'; - -interface CreateConfigCopyModalProps { - opened: boolean; - closeModal: () => void; - initialConfigName: string; -} - -export const CreateConfigCopyModal = ({ - opened, - closeModal, - initialConfigName, -}: CreateConfigCopyModalProps) => { - const { configs } = useConfigStore(); - const { config } = useConfigContext(); - const { t } = useTranslation(['settings/general/config-changer']); - - const form = useForm({ - initialValues: { - configName: initialConfigName, - }, - validate: { - configName: (value) => { - if (!value) { - return t('modal.copy.form.configName.validation.required'); - } - - const configNames = configs.map((x) => x.value.configProperties.name); - if (configNames.includes(value)) { - return t('modal.copy.form.configName.validation.notUnique'); - } - - return undefined; - }, - }, - validateInputOnChange: true, - validateInputOnBlur: true, - }); - - const { mutateAsync } = useCopyConfigMutation(); - - const handleClose = () => { - form.setFieldValue('configName', initialConfigName); - closeModal(); - }; - - const handleSubmit = async (values: typeof form.values) => { - if (!form.isValid) return; - - if (!config) { - throw new Error('config is not defiend'); - } - - const copiedConfig = config; - copiedConfig.configProperties.name = form.values.configName; - - await mutateAsync({ - name: form.values.configName, - config: copiedConfig, - }); - closeModal(); - }; - - return ( - {t('modal.copy.title')}} - > -
- - - - - -
- ); -}; - -const useCopyConfigMutation = () => { - const { t } = useTranslation(['settings/general/config-changer']); - const utils = api.useContext(); - - return api.config.save.useMutation({ - onSuccess(_data, variables) { - showNotification({ - title: t('modal.copy.events.configCopied.title'), - icon: , - color: 'green', - autoClose: 1500, - radius: 'md', - message: t('modal.copy.events.configCopied.message', { configName: variables.name }), - }); - // Invalidate a query to fetch new config - utils.config.all.invalidate(); - }, - onError(_error, variables) { - showNotification({ - title: t('modal.events.configNotCopied.title'), - icon: , - color: 'red', - autoClose: 1500, - radius: 'md', - message: t('modal.events.configNotCopied.message', { configName: variables.name }), - }); - }, - }); -}; diff --git a/src/components/Settings/Common/Credits.tsx b/src/components/Settings/Common/Credits.tsx deleted file mode 100644 index 28f245871..000000000 --- a/src/components/Settings/Common/Credits.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Anchor, Box, Collapse, Flex, Table, Text } from '@mantine/core'; -import { useDisclosure } from '@mantine/hooks'; -import { useTranslation } from 'next-i18next'; - -import { usePackageAttributesStore } from '../../../tools/client/zustands/usePackageAttributesStore'; - -export default function Credits() { - const { t } = useTranslation('settings/common'); - - return ( - - - {t('credits.madeWithLove')} - - ajnart - {' '} - and you! - - - - ); -} - -const DependencyTable = () => { - const { t } = useTranslation('settings/common'); - const [opened, { toggle }] = useDisclosure(false); - const { attributes } = usePackageAttributesStore(); - return ( - <> - - {t('credits.thirdPartyContent')} - - - - ({ - backgroundColor: - theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0], - padding: theme.spacing.xl, - borderRadius: theme.radius.md, - })} - mt="md" - > - - - - - - - - {Object.keys(attributes.dependencies).map((key, index) => ( - - - - - - - ))} -
{t('credits.thirdPartyContentTable.dependencyName')}{t('credits.thirdPartyContentTable.dependencyVersion')}
{key}{attributes.dependencies[key]}
-
-
- - ); -}; diff --git a/src/components/Settings/Common/Language/LanguageSelect.tsx b/src/components/Settings/Common/Language/LanguageSelect.tsx deleted file mode 100644 index 37dbdec9b..000000000 --- a/src/components/Settings/Common/Language/LanguageSelect.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { Group, Select, Stack, Text } from '@mantine/core'; -import { showNotification } from '@mantine/notifications'; -import { getCookie, setCookie } from 'cookies-next'; -import { useTranslation } from 'next-i18next'; -import { useRouter } from 'next/router'; -import { forwardRef, useState } from 'react'; - -import { Language, getLanguageByCode } from '../../../../tools/language'; - -export default function LanguageSelect() { - const { t, i18n } = useTranslation('settings/general/internationalization'); - const { changeLanguage } = i18n; - const configLocale = getCookie('config-locale'); - const { locale, locales, pathname, query, asPath, push } = useRouter(); - const [selectedLanguage, setSelectedLanguage] = useState( - (configLocale as string) ?? locale ?? 'en' - ); - - const data = locales - ? locales.map((localeItem) => ({ - value: localeItem, - label: getLanguageByCode(localeItem).originalName, - icon: getLanguageByCode(localeItem).emoji, - language: getLanguageByCode(localeItem), - })) - : []; - - const onChangeSelect = (value: string) => { - setSelectedLanguage(value); - - const newLanguage = getLanguageByCode(value); - changeLanguage(value) - .then(() => { - setCookie('config-locale', value, { - maxAge: 60 * 60 * 24 * 30, - sameSite: 'strict', - }); - - push( - { - pathname, - query, - }, - asPath, - { locale: value } - ); - - showNotification({ - title: 'Language changed', - message: `You changed the language to '${newLanguage.originalName}'`, - color: 'green', - autoClose: 5000, - }); - }) - .catch((err) => { - showNotification({ - title: 'Failed to change language', - message: `Failed to change to '${newLanguage.originalName}', Error:'${err}`, - color: 'red', - autoClose: 5000, - }); - }); - }; - - return ( - -